dnt 0.2.4__tar.gz → 0.3.1.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. dnt-0.3.1.7/MANIFEST.in +6 -0
  2. {dnt-0.2.4/dnt.egg-info → dnt-0.3.1.7}/PKG-INFO +38 -11
  3. {dnt-0.2.4 → dnt-0.3.1.7}/README.md +6 -1
  4. dnt-0.3.1.7/dnt/__init__.py +5 -0
  5. dnt-0.3.1.7/dnt/analysis/__init__.py +8 -0
  6. dnt-0.3.1.7/dnt/analysis/count.py +107 -0
  7. dnt-0.3.1.7/dnt/analysis/interaction2.py +518 -0
  8. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/analysis/speed.py +0 -0
  9. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/analysis/stop.py +22 -17
  10. dnt-0.3.1.7/dnt/analysis/stop2.py +289 -0
  11. dnt-0.3.1.7/dnt/analysis/stop3.py +758 -0
  12. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/detect/__init__.py +0 -0
  13. dnt-0.3.1.7/dnt/detect/signal/detector.py +326 -0
  14. dnt-0.3.1.7/dnt/detect/timestamp.py +105 -0
  15. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/detect/yolov8/__init__.py +0 -0
  16. dnt-0.3.1.7/dnt/detect/yolov8/detector.py +319 -0
  17. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/detect/yolov8/segmentor.py +60 -2
  18. dnt-0.3.1.7/dnt/engine/__init__.py +8 -0
  19. dnt-0.3.1.7/dnt/engine/bbox_interp.py +83 -0
  20. dnt-0.3.1.7/dnt/engine/bbox_iou.py +20 -0
  21. dnt-0.3.1.7/dnt/engine/cluster.py +31 -0
  22. dnt-0.3.1.7/dnt/engine/iob.py +66 -0
  23. dnt-0.3.1.7/dnt/filter/filter.py +466 -0
  24. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/label/__init__.py +0 -0
  25. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/label/labeler.py +4 -4
  26. dnt-0.3.1.7/dnt/label/labeler2.py +605 -0
  27. {dnt-0.2.4/dnt/analysis → dnt-0.3.1.7/dnt/shared}/__init__.py +1 -3
  28. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/shared/convert.py +0 -0
  29. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/shared/data/coco.names +0 -0
  30. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/shared/data/openimages.names +0 -0
  31. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/shared/data/voc.names +0 -0
  32. dnt-0.3.1.7/dnt/shared/download.py +12 -0
  33. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/shared/files.py +0 -0
  34. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/shared/filter.py +0 -0
  35. dnt-0.3.1.7/dnt/shared/synhcro.py +150 -0
  36. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/shared/util.py +17 -4
  37. dnt-0.3.1.7/dnt/third_party/fast-reid/__init__.py +1 -0
  38. {dnt-0.2.4/dnt/track/dsort/deep_sort/deep → dnt-0.3.1.7/dnt/third_party/fast-reid/checkpoint}/__init__.py +0 -0
  39. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/Base-AGW.yml +19 -0
  40. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/Base-MGN.yml +12 -0
  41. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/Base-SBS.yml +63 -0
  42. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/Base-bagtricks.yml +76 -0
  43. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/DukeMTMC/AGW_R101-ibn.yml +12 -0
  44. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/DukeMTMC/AGW_R50-ibn.yml +11 -0
  45. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/DukeMTMC/AGW_R50.yml +7 -0
  46. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/DukeMTMC/AGW_S50.yml +11 -0
  47. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/DukeMTMC/bagtricks_R101-ibn.yml +12 -0
  48. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/DukeMTMC/bagtricks_R50-ibn.yml +11 -0
  49. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/DukeMTMC/bagtricks_R50.yml +7 -0
  50. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/DukeMTMC/bagtricks_S50.yml +11 -0
  51. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/DukeMTMC/mgn_R50-ibn.yml +11 -0
  52. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/DukeMTMC/sbs_R101-ibn.yml +12 -0
  53. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/DukeMTMC/sbs_R50-ibn.yml +11 -0
  54. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/DukeMTMC/sbs_R50.yml +7 -0
  55. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/DukeMTMC/sbs_S50.yml +11 -0
  56. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT17/AGW_R101-ibn.yml +12 -0
  57. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT17/AGW_R50-ibn.yml +11 -0
  58. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT17/AGW_R50.yml +7 -0
  59. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT17/AGW_S50.yml +11 -0
  60. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT17/bagtricks_R101-ibn.yml +12 -0
  61. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT17/bagtricks_R50-ibn.yml +11 -0
  62. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT17/bagtricks_R50.yml +7 -0
  63. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT17/bagtricks_S50.yml +11 -0
  64. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT17/mgn_R50-ibn.yml +11 -0
  65. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT17/sbs_R101-ibn.yml +12 -0
  66. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT17/sbs_R50-ibn.yml +11 -0
  67. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT17/sbs_R50.yml +7 -0
  68. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT17/sbs_S50.yml +11 -0
  69. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT20/AGW_R101-ibn.yml +12 -0
  70. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT20/AGW_R50-ibn.yml +11 -0
  71. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT20/AGW_R50.yml +7 -0
  72. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT20/AGW_S50.yml +11 -0
  73. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT20/bagtricks_R101-ibn.yml +12 -0
  74. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT20/bagtricks_R50-ibn.yml +11 -0
  75. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT20/bagtricks_R50.yml +7 -0
  76. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT20/bagtricks_S50.yml +11 -0
  77. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT20/mgn_R50-ibn.yml +11 -0
  78. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT20/sbs_R101-ibn.yml +12 -0
  79. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT20/sbs_R50-ibn.yml +11 -0
  80. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT20/sbs_R50.yml +7 -0
  81. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MOT20/sbs_S50.yml +11 -0
  82. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MSMT17/AGW_R101-ibn.yml +12 -0
  83. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MSMT17/AGW_R50-ibn.yml +11 -0
  84. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MSMT17/AGW_R50.yml +7 -0
  85. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MSMT17/AGW_S50.yml +11 -0
  86. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MSMT17/bagtricks_R101-ibn.yml +13 -0
  87. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MSMT17/bagtricks_R50-ibn.yml +12 -0
  88. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MSMT17/bagtricks_R50.yml +7 -0
  89. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MSMT17/bagtricks_S50.yml +12 -0
  90. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MSMT17/mgn_R50-ibn.yml +11 -0
  91. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MSMT17/sbs_R101-ibn.yml +12 -0
  92. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MSMT17/sbs_R50-ibn.yml +11 -0
  93. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MSMT17/sbs_R50.yml +7 -0
  94. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/MSMT17/sbs_S50.yml +11 -0
  95. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/Market1501/AGW_R101-ibn.yml +12 -0
  96. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/Market1501/AGW_R50-ibn.yml +11 -0
  97. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/Market1501/AGW_R50.yml +7 -0
  98. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/Market1501/AGW_S50.yml +11 -0
  99. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/Market1501/bagtricks_R101-ibn.yml +12 -0
  100. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/Market1501/bagtricks_R50-ibn.yml +11 -0
  101. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/Market1501/bagtricks_R50.yml +7 -0
  102. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/Market1501/bagtricks_S50.yml +11 -0
  103. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/Market1501/bagtricks_vit.yml +88 -0
  104. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/Market1501/mgn_R50-ibn.yml +11 -0
  105. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/Market1501/sbs_R101-ibn.yml +12 -0
  106. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/Market1501/sbs_R50-ibn.yml +11 -0
  107. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/Market1501/sbs_R50.yml +7 -0
  108. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/Market1501/sbs_S50.yml +11 -0
  109. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/VERIWild/bagtricks_R50-ibn.yml +35 -0
  110. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/VeRi/sbs_R50-ibn.yml +35 -0
  111. dnt-0.3.1.7/dnt/third_party/fast-reid/configs/VehicleID/bagtricks_R50-ibn.yml +36 -0
  112. {dnt-0.2.4/dnt/track/dsort/deep_sort/sort → dnt-0.3.1.7/dnt/third_party/fast-reid/configs}/__init__.py +0 -0
  113. dnt-0.3.1.7/dnt/third_party/fast-reid/fast_reid_interfece.py +175 -0
  114. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/__init__.py +6 -0
  115. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/config/__init__.py +15 -0
  116. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/config/config.py +319 -0
  117. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/config/defaults.py +329 -0
  118. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/__init__.py +17 -0
  119. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/build.py +194 -0
  120. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/common.py +58 -0
  121. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/data_utils.py +202 -0
  122. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/AirportALERT.py +50 -0
  123. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/__init__.py +43 -0
  124. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/bases.py +183 -0
  125. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/caviara.py +44 -0
  126. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/cuhk03.py +274 -0
  127. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/cuhk_sysu.py +58 -0
  128. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/dukemtmcreid.py +70 -0
  129. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/grid.py +44 -0
  130. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/iLIDS.py +45 -0
  131. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/lpw.py +49 -0
  132. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/market1501.py +89 -0
  133. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/msmt17.py +114 -0
  134. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/pes3d.py +44 -0
  135. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/pku.py +44 -0
  136. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/prai.py +43 -0
  137. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/prid.py +41 -0
  138. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/saivt.py +47 -0
  139. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/sensereid.py +47 -0
  140. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/shinpuhkan.py +48 -0
  141. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/sysu_mm.py +47 -0
  142. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/thermalworld.py +43 -0
  143. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/vehicleid.py +126 -0
  144. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/veri.py +69 -0
  145. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/veriwild.py +140 -0
  146. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/viper.py +45 -0
  147. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/datasets/wildtracker.py +59 -0
  148. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/samplers/__init__.py +18 -0
  149. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/samplers/data_sampler.py +85 -0
  150. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/samplers/imbalance_sampler.py +67 -0
  151. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/samplers/triplet_sampler.py +260 -0
  152. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/transforms/__init__.py +11 -0
  153. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/transforms/autoaugment.py +806 -0
  154. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/transforms/build.py +100 -0
  155. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/transforms/functional.py +180 -0
  156. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/data/transforms/transforms.py +161 -0
  157. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/engine/__init__.py +15 -0
  158. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/engine/defaults.py +490 -0
  159. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/engine/hooks.py +534 -0
  160. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/engine/launch.py +103 -0
  161. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/engine/train_loop.py +357 -0
  162. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/evaluation/__init__.py +6 -0
  163. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/evaluation/clas_evaluator.py +81 -0
  164. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/evaluation/evaluator.py +176 -0
  165. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/evaluation/query_expansion.py +46 -0
  166. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/evaluation/rank.py +200 -0
  167. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/evaluation/rank_cylib/__init__.py +20 -0
  168. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/evaluation/rank_cylib/setup.py +32 -0
  169. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/evaluation/rank_cylib/test_cython.py +106 -0
  170. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/evaluation/reid_evaluation.py +143 -0
  171. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/evaluation/rerank.py +73 -0
  172. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/evaluation/roc.py +90 -0
  173. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/evaluation/testing.py +88 -0
  174. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/layers/__init__.py +19 -0
  175. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/layers/activation.py +59 -0
  176. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/layers/any_softmax.py +80 -0
  177. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/layers/batch_norm.py +205 -0
  178. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/layers/context_block.py +113 -0
  179. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/layers/drop.py +161 -0
  180. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/layers/frn.py +199 -0
  181. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/layers/gather_layer.py +30 -0
  182. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/layers/helpers.py +31 -0
  183. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/layers/non_local.py +54 -0
  184. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/layers/pooling.py +124 -0
  185. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/layers/se_layer.py +25 -0
  186. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/layers/splat.py +109 -0
  187. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/layers/weight_init.py +122 -0
  188. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/__init__.py +23 -0
  189. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/__init__.py +18 -0
  190. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/build.py +27 -0
  191. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/mobilenet.py +195 -0
  192. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/mobilenetv3.py +283 -0
  193. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/osnet.py +525 -0
  194. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/__init__.py +4 -0
  195. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/config.py +396 -0
  196. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/effnet/EN-B0_dds_8gpu.yaml +27 -0
  197. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/effnet/EN-B1_dds_8gpu.yaml +27 -0
  198. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/effnet/EN-B2_dds_8gpu.yaml +27 -0
  199. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/effnet/EN-B3_dds_8gpu.yaml +27 -0
  200. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/effnet/EN-B4_dds_8gpu.yaml +27 -0
  201. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/effnet/EN-B5_dds_8gpu.yaml +27 -0
  202. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/effnet.py +281 -0
  203. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnet.py +596 -0
  204. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnetx/RegNetX-1.6GF_dds_8gpu.yaml +26 -0
  205. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnetx/RegNetX-12GF_dds_8gpu.yaml +26 -0
  206. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnetx/RegNetX-16GF_dds_8gpu.yaml +26 -0
  207. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnetx/RegNetX-200MF_dds_8gpu.yaml +26 -0
  208. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnetx/RegNetX-3.2GF_dds_8gpu.yaml +26 -0
  209. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnetx/RegNetX-32GF_dds_8gpu.yaml +26 -0
  210. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnetx/RegNetX-4.0GF_dds_8gpu.yaml +26 -0
  211. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnetx/RegNetX-400MF_dds_8gpu.yaml +26 -0
  212. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnetx/RegNetX-6.4GF_dds_8gpu.yaml +26 -0
  213. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnetx/RegNetX-600MF_dds_8gpu.yaml +26 -0
  214. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnetx/RegNetX-8.0GF_dds_8gpu.yaml +26 -0
  215. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnetx/RegNetX-800MF_dds_8gpu.yaml +26 -0
  216. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnety/RegNetY-1.6GF_dds_8gpu.yaml +27 -0
  217. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnety/RegNetY-12GF_dds_8gpu.yaml +27 -0
  218. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnety/RegNetY-16GF_dds_8gpu.yaml +27 -0
  219. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnety/RegNetY-200MF_dds_8gpu.yaml +26 -0
  220. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnety/RegNetY-3.2GF_dds_8gpu.yaml +27 -0
  221. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnety/RegNetY-32GF_dds_8gpu.yaml +27 -0
  222. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnety/RegNetY-4.0GF_dds_8gpu.yaml +27 -0
  223. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnety/RegNetY-400MF_dds_8gpu.yaml +27 -0
  224. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnety/RegNetY-6.4GF_dds_8gpu.yaml +27 -0
  225. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnety/RegNetY-600MF_dds_8gpu.yaml +27 -0
  226. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnety/RegNetY-8.0GF_dds_8gpu.yaml +27 -0
  227. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/regnet/regnety/RegNetY-800MF_dds_8gpu.yaml +27 -0
  228. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/repvgg.py +309 -0
  229. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/resnest.py +365 -0
  230. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/resnet.py +364 -0
  231. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/resnext.py +335 -0
  232. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/shufflenet.py +203 -0
  233. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/backbones/vision_transformer.py +399 -0
  234. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/heads/__init__.py +11 -0
  235. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/heads/build.py +25 -0
  236. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/heads/clas_head.py +36 -0
  237. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/heads/embedding_head.py +151 -0
  238. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/losses/__init__.py +12 -0
  239. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/losses/circle_loss.py +71 -0
  240. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/losses/cross_entroy_loss.py +54 -0
  241. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/losses/focal_loss.py +92 -0
  242. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/losses/triplet_loss.py +113 -0
  243. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/losses/utils.py +48 -0
  244. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/meta_arch/__init__.py +14 -0
  245. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/meta_arch/baseline.py +188 -0
  246. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/meta_arch/build.py +26 -0
  247. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/meta_arch/distiller.py +140 -0
  248. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/meta_arch/mgn.py +394 -0
  249. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/modeling/meta_arch/moco.py +126 -0
  250. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/solver/__init__.py +8 -0
  251. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/solver/build.py +348 -0
  252. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/solver/lr_scheduler.py +66 -0
  253. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/solver/optim/__init__.py +10 -0
  254. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/solver/optim/lamb.py +123 -0
  255. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/solver/optim/radam.py +149 -0
  256. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/solver/optim/swa.py +246 -0
  257. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/utils/__init__.py +6 -0
  258. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/utils/checkpoint.py +503 -0
  259. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/utils/collect_env.py +158 -0
  260. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/utils/comm.py +255 -0
  261. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/utils/compute_dist.py +200 -0
  262. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/utils/env.py +119 -0
  263. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/utils/events.py +461 -0
  264. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/utils/faiss_utils.py +127 -0
  265. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/utils/file_io.py +520 -0
  266. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/utils/history_buffer.py +71 -0
  267. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/utils/logger.py +211 -0
  268. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/utils/params.py +103 -0
  269. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/utils/precision_bn.py +94 -0
  270. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/utils/registry.py +66 -0
  271. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/utils/summary.py +120 -0
  272. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/utils/timer.py +68 -0
  273. dnt-0.3.1.7/dnt/third_party/fast-reid/fastreid/utils/visualizer.py +278 -0
  274. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/track/__init__.py +2 -0
  275. {dnt-0.2.4/dnt → dnt-0.3.1.7/dnt/track/botsort}/__init__.py +1 -1
  276. dnt-0.3.1.7/dnt/track/botsort/bot_tracker/__init__.py +3 -0
  277. dnt-0.3.1.7/dnt/track/botsort/bot_tracker/basetrack.py +60 -0
  278. dnt-0.3.1.7/dnt/track/botsort/bot_tracker/bot_sort.py +473 -0
  279. dnt-0.3.1.7/dnt/track/botsort/bot_tracker/gmc.py +316 -0
  280. dnt-0.3.1.7/dnt/track/botsort/bot_tracker/kalman_filter.py +269 -0
  281. dnt-0.3.1.7/dnt/track/botsort/bot_tracker/matching.py +194 -0
  282. dnt-0.3.1.7/dnt/track/botsort/bot_tracker/mc_bot_sort.py +505 -0
  283. {dnt-0.2.4/dnt/track/dsort/utils → dnt-0.3.1.7/dnt/track/botsort/bot_tracker/tracking_utils}/evaluation.py +14 -4
  284. {dnt-0.2.4/dnt/track/dsort/utils → dnt-0.3.1.7/dnt/track/botsort/bot_tracker/tracking_utils}/io.py +19 -36
  285. dnt-0.3.1.7/dnt/track/botsort/bot_tracker/tracking_utils/timer.py +37 -0
  286. dnt-0.3.1.7/dnt/track/botsort/inference.py +96 -0
  287. dnt-0.3.1.7/dnt/track/config.py +120 -0
  288. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/track/dsort/__init__.py +0 -0
  289. dnt-0.3.1.7/dnt/track/dsort/configs/bagtricks_R50.yml +7 -0
  290. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/track/dsort/configs/deep_sort.yaml +0 -0
  291. dnt-0.3.1.7/dnt/track/dsort/configs/fastreid.yaml +3 -0
  292. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/track/dsort/deep_sort/__init__.py +0 -0
  293. {dnt-0.2.4/dnt/track/dsort/utils → dnt-0.3.1.7/dnt/track/dsort/deep_sort/deep}/__init__.py +0 -0
  294. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/track/dsort/deep_sort/deep/checkpoint/ckpt.t7 +0 -0
  295. dnt-0.3.1.7/dnt/track/dsort/deep_sort/deep/feature_extractor.py +134 -0
  296. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/track/dsort/deep_sort/deep/model.py +0 -0
  297. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/track/dsort/deep_sort/deep_sort.py +31 -20
  298. dnt-0.3.1.7/dnt/track/dsort/deep_sort/sort/__init__.py +0 -0
  299. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/track/dsort/deep_sort/sort/detection.py +2 -1
  300. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/track/dsort/deep_sort/sort/iou_matching.py +0 -2
  301. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/track/dsort/deep_sort/sort/kalman_filter.py +0 -0
  302. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/track/dsort/deep_sort/sort/linear_assignment.py +0 -3
  303. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/track/dsort/deep_sort/sort/nn_matching.py +5 -5
  304. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/track/dsort/deep_sort/sort/preprocessing.py +1 -2
  305. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/track/dsort/deep_sort/sort/track.py +2 -1
  306. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/track/dsort/deep_sort/sort/tracker.py +1 -1
  307. dnt-0.3.1.7/dnt/track/dsort/dsort.py +96 -0
  308. dnt-0.3.1.7/dnt/track/re_class.py +117 -0
  309. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/track/sort/__init__.py +0 -0
  310. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/track/sort/sort.py +9 -6
  311. dnt-0.3.1.7/dnt/track/tracker.py +261 -0
  312. {dnt-0.2.4 → dnt-0.3.1.7/dnt.egg-info}/PKG-INFO +38 -11
  313. dnt-0.3.1.7/dnt.egg-info/SOURCES.txt +319 -0
  314. {dnt-0.2.4 → dnt-0.3.1.7}/dnt.egg-info/requires.txt +26 -9
  315. {dnt-0.2.4 → dnt-0.3.1.7}/setup.py +28 -11
  316. dnt-0.2.4/MANIFEST.in +0 -4
  317. dnt-0.2.4/dnt/analysis/count.py +0 -90
  318. dnt-0.2.4/dnt/analysis/yield.py +0 -9
  319. dnt-0.2.4/dnt/detect/yolov8/detector.py +0 -176
  320. dnt-0.2.4/dnt/filter/filter.py +0 -135
  321. dnt-0.2.4/dnt/shared/__init__.py +0 -4
  322. dnt-0.2.4/dnt/track/dsort/configs/fastreid.yaml +0 -3
  323. dnt-0.2.4/dnt/track/dsort/deep_sort/deep/evaluate.py +0 -15
  324. dnt-0.2.4/dnt/track/dsort/deep_sort/deep/feature_extractor.py +0 -55
  325. dnt-0.2.4/dnt/track/dsort/deep_sort/deep/original_model.py +0 -106
  326. dnt-0.2.4/dnt/track/dsort/deep_sort/deep/test.py +0 -77
  327. dnt-0.2.4/dnt/track/dsort/deep_sort/deep/train.py +0 -189
  328. dnt-0.2.4/dnt/track/dsort/dsort.py +0 -86
  329. dnt-0.2.4/dnt/track/dsort/utils/asserts.py +0 -13
  330. dnt-0.2.4/dnt/track/dsort/utils/draw.py +0 -36
  331. dnt-0.2.4/dnt/track/dsort/utils/json_logger.py +0 -383
  332. dnt-0.2.4/dnt/track/dsort/utils/log.py +0 -17
  333. dnt-0.2.4/dnt/track/dsort/utils/parser.py +0 -35
  334. dnt-0.2.4/dnt/track/dsort/utils/tools.py +0 -39
  335. dnt-0.2.4/dnt/track/tracker.py +0 -80
  336. dnt-0.2.4/dnt.egg-info/SOURCES.txt +0 -68
  337. {dnt-0.2.4 → dnt-0.3.1.7}/LICENSE +0 -0
  338. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/analysis/position.py +0 -0
  339. {dnt-0.2.4 → dnt-0.3.1.7}/dnt/filter/__init__.py +0 -0
  340. {dnt-0.2.4 → dnt-0.3.1.7}/dnt.egg-info/dependency_links.txt +0 -0
  341. {dnt-0.2.4 → dnt-0.3.1.7}/dnt.egg-info/top_level.txt +0 -0
  342. {dnt-0.2.4 → dnt-0.3.1.7}/setup.cfg +0 -0
@@ -0,0 +1,6 @@
1
+ recursive-include dnt *.py
2
+ recursive-include dnt *.yaml
3
+ recursive-include dnt *.yml
4
+ recursive-include dnt *.names
5
+ recursive-include dnt *.t7
6
+ recursive-exclude __pycache__ *
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: dnt
3
- Version: 0.2.4
3
+ Version: 0.3.1.7
4
4
  Summary: A Python tool for video-based traffic analytiscs
5
5
  Home-page: https://its.cutr.usf.edu/dnt/
6
6
  Author: Zhenyu Wang
@@ -13,24 +13,51 @@ Classifier: License :: OSI Approved :: MIT License
13
13
  Classifier: Programming Language :: Python :: 3
14
14
  Requires-Python: >=3.9
15
15
  License-File: LICENSE
16
- Requires-Dist: numpy
17
- Requires-Dist: pandas
18
- Requires-Dist: matplotlib
19
16
  Requires-Dist: torch
20
17
  Requires-Dist: torchvision
21
18
  Requires-Dist: torchaudio
22
- Requires-Dist: ultralytics
19
+ Requires-Dist: ultralytics>=8.2
20
+ Requires-Dist: cython
21
+ Requires-Dist: cython_bbox
23
22
  Requires-Dist: easydict
23
+ Requires-Dist: faiss-cpu
24
24
  Requires-Dist: filterpy
25
+ Requires-Dist: gdown
26
+ Requires-Dist: geopandas
27
+ Requires-Dist: h5py
28
+ Requires-Dist: lapx
29
+ Requires-Dist: loguru
25
30
  Requires-Dist: matplotlib
31
+ Requires-Dist: motmetrics
32
+ Requires-Dist: ninja
33
+ Requires-Dist: numpy
26
34
  Requires-Dist: numpy_indexed
27
- Requires-Dist: opencv-python
28
35
  Requires-Dist: opencv-contrib-python
36
+ Requires-Dist: opencv-python
29
37
  Requires-Dist: pandas
30
- Requires-Dist: geopandas
31
- Requires-Dist: shapely
32
- Requires-Dist: scipy
33
- Requires-Dist: scikit-learn
38
+ Requires-Dist: Pillow
39
+ Requires-Dist: prettytable
40
+ Requires-Dist: pycocotools
41
+ Requires-Dist: pyyaml
34
42
  Requires-Dist: scikit-image
43
+ Requires-Dist: scikit-learn
44
+ Requires-Dist: scipy
45
+ Requires-Dist: shapely
46
+ Requires-Dist: sympy
47
+ Requires-Dist: tabulate
48
+ Requires-Dist: tensorboard
49
+ Requires-Dist: termcolor
50
+ Requires-Dist: thop
35
51
  Requires-Dist: tqdm
36
52
  Requires-Dist: vidgear
53
+ Requires-Dist: yacs
54
+ Dynamic: author
55
+ Dynamic: author-email
56
+ Dynamic: classifier
57
+ Dynamic: home-page
58
+ Dynamic: keywords
59
+ Dynamic: license
60
+ Dynamic: license-file
61
+ Dynamic: requires-dist
62
+ Dynamic: requires-python
63
+ Dynamic: summary
@@ -15,8 +15,13 @@ This tool can generate vehicel trajectories using real-time object detection and
15
15
  * Libarary: pytorch (>=1.12 with cuda), pandas, tqdm, numpy, scipy, matplotlib, ultralytics
16
16
 
17
17
  ### Installing
18
-
19
18
  ```
19
+ Setup enviroment:
20
+
21
+ python3.x -m venv dnt (you may replace dnt with you specified name; python version >3.9)
22
+ sudo apt-get install python3.x-dev
23
+ pip install python-dev-tools
24
+
20
25
  pip install torch==1.12.0+cu116 torchvision==0.13.0+cu116 torchaudio==0.12.0 --extra-index-url https://download.pytorch.org/whl/cu116
21
26
  pip install dnt
22
27
  ```
@@ -0,0 +1,5 @@
1
+ import sys, os
2
+ sys.path.append(os.path.dirname(__file__))
3
+ sys.path.append(os.path.join(os.path.dirname(__file__), 'third_party/fast-reid'))
4
+
5
+ __version__='0.3.1.7'
@@ -0,0 +1,8 @@
1
+ import os
2
+ import sys
3
+
4
+ sys.path.append(os.path.dirname(__file__))
5
+
6
+ from stop3 import StopAnalyzer
7
+ from count import Count
8
+ from interaction2 import YieldAnalyzer
@@ -0,0 +1,107 @@
1
+ # pylint: disable=too-many-arguments
2
+ '''
3
+ This script is used to count the number of tracks that passing a reference line for post-analysis
4
+ last modified: 2021-09-30
5
+ '''
6
+ from shapely.geometry import Polygon, LineString
7
+ import geopandas as gpd
8
+ import pandas as pd
9
+ from tqdm import tqdm
10
+ import numpy as np
11
+
12
+ class Count:
13
+ '''
14
+ Count tracks that passing a reference line for post-analysis
15
+ Methods:
16
+ __init__(): initialize the class
17
+ count_tracks_by_line():
18
+ count tracks that passing a reference line for post-analysis
19
+ '''
20
+ def __init__(self) -> None:
21
+ self.track_fields = ['frame', 'track_id', 'x', 'y', 'w', 'h', 'r1', 'r2', 'r3', 'r4']
22
+
23
+ def count_tracks_by_line(self,
24
+ tracks:pd.DataFrame=None,
25
+ track_file:str=None,
26
+ line: LineString=None,
27
+ video_index:int=None,
28
+ video_tot:int=None,
29
+ verbose:bool=True) -> pd.DataFrame:
30
+ '''
31
+ Count tracks that passing a reference line for post-analysis
32
+ Inputs:
33
+ tracks - a DataFrame of tracks, if None (default), read track_file
34
+ track_file - a txt file contains tracks,
35
+ line - the reference line, LineString(pointA, pointB)
36
+ video_index - the index of video for processing
37
+ video_tot - the total number of videos
38
+ verbose - if True, show progress bar
39
+ Return:
40
+ A DataFrame of track_id, frame, direction, count
41
+ '''
42
+ # Load tracks
43
+ if tracks is None:
44
+ tracks = pd.read_csv(track_file, header=None)
45
+ if len(tracks.columns) != len(self.track_fields):
46
+ raise Exception("The tracks format is incorrect!")
47
+ tracks.columns = self.track_fields
48
+ track_ids = tracks['track_id'].unique()
49
+
50
+ # Create a GeoDataFrame of tracks
51
+ geo = tracks.apply(lambda track: Polygon([(track['x'], track['y']),
52
+ (track['x'] + track['w'], track['y']),
53
+ (track['x'] + track['w'], track['y'] + track['h']),
54
+ (track['x'], track['y'] + track['h'])]),
55
+ axis =1)
56
+ geo_tracks = gpd.GeoDataFrame(tracks, geometry=geo)
57
+ point_a = np.array(line.coords[0])
58
+ point_b = np.array(line.coords[1])
59
+
60
+ # Interate through all tracks
61
+ if verbose:
62
+ pbar = tqdm(total=len(track_ids), unit=' tracks')
63
+ if video_index and video_tot:
64
+ pbar.set_description_str("Counting {} of {}".format(video_index, video_tot))
65
+ else:
66
+ pbar.set_description_str("Counting")
67
+ intersected_tracks = []
68
+ intersected_frames = []
69
+ intersected_direct = []
70
+
71
+ for track_id in track_ids:
72
+ selected = geo_tracks.loc[(geo_tracks['track_id']==track_id)].copy()
73
+ if len(selected)>0:
74
+ selected['intersected'] = line.intersects(selected.geometry).values.tolist()
75
+ intersected = selected.loc[(selected['intersected']==True)].copy()
76
+ if len(intersected) > 0:
77
+ intersected.sort_values(by='frame', inplace=True)
78
+ if not track_id in intersected_tracks:
79
+ intersected_tracks.append(track_id)
80
+ frame_pos = int(len(intersected)/2)
81
+ intersected_frames.append(intersected['frame'].values[frame_pos])
82
+
83
+ # center point of the first frame
84
+ point_c = np.array((intersected.iloc[0]['x'] + intersected.iloc[0]['w']/2,
85
+ intersected.iloc[0]['y'] + intersected.iloc[0]['h']/2))
86
+ d = 2 # right
87
+ if np.cross(point_c-point_a, point_b-point_a) < 0:
88
+ d = 1 # left
89
+ intersected_direct.append(d)
90
+ if verbose:
91
+ pbar.update()
92
+
93
+ if verbose:
94
+ pbar.close()
95
+
96
+ results = pd.DataFrame(
97
+ {
98
+ 'track_id': intersected_tracks,
99
+ 'frame': intersected_frames,
100
+ 'direction': intersected_direct,
101
+ }
102
+ )
103
+ results.sort_values(by='frame', inplace=True)
104
+ results = results.reset_index(drop=True)
105
+ results['count'] = results.index + 1
106
+
107
+ return results