OTVision 0.5.3__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 (236) hide show
  1. otvision-0.5.3/.editorconfig +11 -0
  2. otvision-0.5.3/.flake8 +7 -0
  3. otvision-0.5.3/.github/dependabot.yml +25 -0
  4. otvision-0.5.3/.github/workflows/build-nightly.yml +28 -0
  5. otvision-0.5.3/.github/workflows/build-release.yml +29 -0
  6. otvision-0.5.3/.github/workflows/linter.yml +43 -0
  7. otvision-0.5.3/.github/workflows/release-pypi.yml +55 -0
  8. otvision-0.5.3/.github/workflows/release-testpypi.yml +56 -0
  9. otvision-0.5.3/.github/workflows/test.yml +25 -0
  10. otvision-0.5.3/.gitignore +182 -0
  11. otvision-0.5.3/.pre-commit-config.yaml +94 -0
  12. otvision-0.5.3/.vscode/launch.json +89 -0
  13. otvision-0.5.3/.vscode/scripts/build_debug_env.cmd +15 -0
  14. otvision-0.5.3/.vscode/scripts/build_debug_env.sh +14 -0
  15. otvision-0.5.3/.vscode/scripts/teardown_debug_env.cmd +6 -0
  16. otvision-0.5.3/.vscode/scripts/teardown_debug_env.sh +5 -0
  17. otvision-0.5.3/.vscode/settings.json +29 -0
  18. otvision-0.5.3/.vscode/tasks.json +31 -0
  19. otvision-0.5.3/.yamllint.yaml +34 -0
  20. otvision-0.5.3/LICENSE +674 -0
  21. otvision-0.5.3/OTVision/__init__.py +30 -0
  22. otvision-0.5.3/OTVision/application/__init__.py +0 -0
  23. otvision-0.5.3/OTVision/application/configure_logger.py +23 -0
  24. otvision-0.5.3/OTVision/application/detect/__init__.py +0 -0
  25. otvision-0.5.3/OTVision/application/detect/get_detect_cli_args.py +9 -0
  26. otvision-0.5.3/OTVision/application/detect/update_detect_config_with_cli_args.py +95 -0
  27. otvision-0.5.3/OTVision/application/get_config.py +25 -0
  28. otvision-0.5.3/OTVision/config.py +754 -0
  29. otvision-0.5.3/OTVision/convert/__init__.py +0 -0
  30. otvision-0.5.3/OTVision/convert/convert.py +318 -0
  31. otvision-0.5.3/OTVision/dataformat.py +70 -0
  32. otvision-0.5.3/OTVision/detect/__init__.py +0 -0
  33. otvision-0.5.3/OTVision/detect/builder.py +48 -0
  34. otvision-0.5.3/OTVision/detect/cli.py +166 -0
  35. otvision-0.5.3/OTVision/detect/detect.py +296 -0
  36. otvision-0.5.3/OTVision/detect/otdet.py +103 -0
  37. otvision-0.5.3/OTVision/detect/plugin_av/__init__.py +0 -0
  38. otvision-0.5.3/OTVision/detect/plugin_av/rotate_frame.py +37 -0
  39. otvision-0.5.3/OTVision/detect/yolo.py +277 -0
  40. otvision-0.5.3/OTVision/domain/__init__.py +0 -0
  41. otvision-0.5.3/OTVision/domain/cli.py +42 -0
  42. otvision-0.5.3/OTVision/helpers/__init__.py +0 -0
  43. otvision-0.5.3/OTVision/helpers/date.py +26 -0
  44. otvision-0.5.3/OTVision/helpers/files.py +538 -0
  45. otvision-0.5.3/OTVision/helpers/formats.py +139 -0
  46. otvision-0.5.3/OTVision/helpers/log.py +131 -0
  47. otvision-0.5.3/OTVision/helpers/machine.py +71 -0
  48. otvision-0.5.3/OTVision/helpers/video.py +54 -0
  49. otvision-0.5.3/OTVision/track/__init__.py +0 -0
  50. otvision-0.5.3/OTVision/track/iou.py +282 -0
  51. otvision-0.5.3/OTVision/track/iou_util.py +140 -0
  52. otvision-0.5.3/OTVision/track/preprocess.py +451 -0
  53. otvision-0.5.3/OTVision/track/track.py +422 -0
  54. otvision-0.5.3/OTVision/transform/__init__.py +0 -0
  55. otvision-0.5.3/OTVision/transform/get_homography.py +156 -0
  56. otvision-0.5.3/OTVision/transform/reference_points_picker.py +462 -0
  57. otvision-0.5.3/OTVision/transform/transform.py +352 -0
  58. otvision-0.5.3/OTVision/version.py +13 -0
  59. otvision-0.5.3/OTVision/view/__init__.py +0 -0
  60. otvision-0.5.3/OTVision/view/helpers/OTC.ico +0 -0
  61. otvision-0.5.3/OTVision/view/view.py +90 -0
  62. otvision-0.5.3/OTVision/view/view_convert.py +128 -0
  63. otvision-0.5.3/OTVision/view/view_detect.py +146 -0
  64. otvision-0.5.3/OTVision/view/view_helpers.py +417 -0
  65. otvision-0.5.3/OTVision/view/view_track.py +131 -0
  66. otvision-0.5.3/OTVision/view/view_transform.py +140 -0
  67. otvision-0.5.3/OTVision.bat +4 -0
  68. otvision-0.5.3/PKG-INFO +47 -0
  69. otvision-0.5.3/README.md +12 -0
  70. otvision-0.5.3/clean-up-repository.sh +6 -0
  71. otvision-0.5.3/config.yml +46 -0
  72. otvision-0.5.3/convert.py +231 -0
  73. otvision-0.5.3/detect.py +72 -0
  74. otvision-0.5.3/export_models.py +478 -0
  75. otvision-0.5.3/install.cmd +15 -0
  76. otvision-0.5.3/install.sh +24 -0
  77. otvision-0.5.3/install_dev.cmd +6 -0
  78. otvision-0.5.3/install_dev.sh +13 -0
  79. otvision-0.5.3/pyproject.toml +62 -0
  80. otvision-0.5.3/reference_points_picker.py +84 -0
  81. otvision-0.5.3/requirements-dev.txt +15 -0
  82. otvision-0.5.3/requirements.txt +16 -0
  83. otvision-0.5.3/tests/__init__.py +0 -0
  84. otvision-0.5.3/tests/application/__init__.py +0 -0
  85. otvision-0.5.3/tests/application/detect/__init__.py +0 -0
  86. otvision-0.5.3/tests/application/detect/test_get_detect_cli_args.py +23 -0
  87. otvision-0.5.3/tests/application/detect/test_update_detect_config_with_cli_args.py +105 -0
  88. otvision-0.5.3/tests/application/test_get_config.py +69 -0
  89. otvision-0.5.3/tests/cli/custom_cli_test_config.yaml +48 -0
  90. otvision-0.5.3/tests/cli/test_convert_cli.py +211 -0
  91. otvision-0.5.3/tests/cli/test_detect_cli.py +335 -0
  92. otvision-0.5.3/tests/cli/test_track_cli.py +232 -0
  93. otvision-0.5.3/tests/conftest.py +21 -0
  94. otvision-0.5.3/tests/convert/__init__.py +0 -0
  95. otvision-0.5.3/tests/convert/test_convert.py +370 -0
  96. otvision-0.5.3/tests/data/Testvideo_CamView.png +0 -0
  97. otvision-0.5.3/tests/data/Testvideo_CamView_Cars-Cyclist.png +0 -0
  98. otvision-0.5.3/tests/data/Testvideo_CamView_Cars-Truck.png +0 -0
  99. otvision-0.5.3/tests/data/Testvideo_CamView_refpts.png +0 -0
  100. otvision-0.5.3/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.gpkg +0 -0
  101. otvision-0.5.3/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264 +0 -0
  102. otvision-0.5.3/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4 +0 -0
  103. otvision-0.5.3/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
  104. otvision-0.5.3/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otrfpts +42 -0
  105. otvision-0.5.3/tests/data/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
  106. otvision-0.5.3/tests/data/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.gpkg +0 -0
  107. otvision-0.5.3/tests/data/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.h264 +0 -0
  108. otvision-0.5.3/tests/data/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mp4 +0 -0
  109. otvision-0.5.3/tests/data/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
  110. otvision-0.5.3/tests/data/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otrfpts +42 -0
  111. otvision-0.5.3/tests/data/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
  112. otvision-0.5.3/tests/data/Testvideo_FR20.otrfpts +42 -0
  113. otvision-0.5.3/tests/data/Testvideo_Satellite.jpg +0 -0
  114. otvision-0.5.3/tests/data/Testvideo_Satellite_far.jpg +0 -0
  115. otvision-0.5.3/tests/data/convert/default/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264 +0 -0
  116. otvision-0.5.3/tests/data/convert/default/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4 +0 -0
  117. otvision-0.5.3/tests/data/convert/default/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.h264 +0 -0
  118. otvision-0.5.3/tests/data/convert/default/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mp4 +0 -0
  119. otvision-0.5.3/tests/data/convert/fail_fps_from_filename/Testvideo_Cars-Cyclist_F20_2020-01-01_00-00-00.h264 +0 -0
  120. otvision-0.5.3/tests/data/convert/fail_fps_from_filename/Testvideo_Cars-Truck_2020-01-01_00-00-00.h264 +0 -0
  121. otvision-0.5.3/tests/data/convert/fps_from_filename/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264 +0 -0
  122. otvision-0.5.3/tests/data/convert/fps_from_filename/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4 +0 -0
  123. otvision-0.5.3/tests/data/convert/fps_from_filename/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.h264 +0 -0
  124. otvision-0.5.3/tests/data/convert/fps_from_filename/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mp4 +0 -0
  125. otvision-0.5.3/tests/data/convert/input_fps_20/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264 +0 -0
  126. otvision-0.5.3/tests/data/convert/input_fps_20/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4 +0 -0
  127. otvision-0.5.3/tests/data/convert/input_fps_20/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.h264 +0 -0
  128. otvision-0.5.3/tests/data/convert/input_fps_20/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mp4 +0 -0
  129. otvision-0.5.3/tests/data/convert/input_fps_40/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264 +0 -0
  130. otvision-0.5.3/tests/data/convert/input_fps_40/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4 +0 -0
  131. otvision-0.5.3/tests/data/convert/input_fps_40/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.h264 +0 -0
  132. otvision-0.5.3/tests/data/convert/input_fps_40/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mp4 +0 -0
  133. otvision-0.5.3/tests/data/convert/output_filetype_avi/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.avi +0 -0
  134. otvision-0.5.3/tests/data/convert/output_filetype_avi/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264 +0 -0
  135. otvision-0.5.3/tests/data/convert/output_filetype_avi/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.avi +0 -0
  136. otvision-0.5.3/tests/data/convert/output_filetype_avi/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.h264 +0 -0
  137. otvision-0.5.3/tests/data/convert/output_filetype_mkv/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264 +0 -0
  138. otvision-0.5.3/tests/data/convert/output_filetype_mkv/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mkv +0 -0
  139. otvision-0.5.3/tests/data/convert/output_filetype_mkv/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.h264 +0 -0
  140. otvision-0.5.3/tests/data/convert/output_filetype_mkv/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mkv +0 -0
  141. otvision-0.5.3/tests/data/convert/output_filetype_mov/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264 +0 -0
  142. otvision-0.5.3/tests/data/convert/output_filetype_mov/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mov +0 -0
  143. otvision-0.5.3/tests/data/convert/output_filetype_mov/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.h264 +0 -0
  144. otvision-0.5.3/tests/data/convert/output_filetype_mov/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mov +0 -0
  145. otvision-0.5.3/tests/data/convert/output_filetype_mp4/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264 +0 -0
  146. otvision-0.5.3/tests/data/convert/output_filetype_mp4/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4 +0 -0
  147. otvision-0.5.3/tests/data/convert/output_filetype_mp4/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.h264 +0 -0
  148. otvision-0.5.3/tests/data/convert/output_filetype_mp4/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mp4 +0 -0
  149. otvision-0.5.3/tests/data/convert/rotation/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00_rotate.h264 +0 -0
  150. otvision-0.5.3/tests/data/convert/rotation/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00_rotate.mov +0 -0
  151. otvision-0.5.3/tests/data/convert/rotation/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00_rotate.mp4 +0 -0
  152. otvision-0.5.3/tests/data/convert/rotation/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00_rotate.h264 +0 -0
  153. otvision-0.5.3/tests/data/convert/rotation/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00_rotate.mov +0 -0
  154. otvision-0.5.3/tests/data/convert/rotation/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00_rotate.mp4 +0 -0
  155. otvision-0.5.3/tests/data/detect/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4 +0 -0
  156. otvision-0.5.3/tests/data/detect/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.mp4 +0 -0
  157. otvision-0.5.3/tests/data/detect/default/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
  158. otvision-0.5.3/tests/data/detect/default/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
  159. otvision-0.5.3/tests/data/detect/rotated-Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4 +0 -0
  160. otvision-0.5.3/tests/data/log/_otvision_logs/test.log +5 -0
  161. otvision-0.5.3/tests/data/track/default/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
  162. otvision-0.5.3/tests/data/track/default/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
  163. otvision-0.5.3/tests/data/track/default/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
  164. otvision-0.5.3/tests/data/track/default/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
  165. otvision-0.5.3/tests/data/track/sigma_h_0_2/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
  166. otvision-0.5.3/tests/data/track/sigma_h_0_2/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
  167. otvision-0.5.3/tests/data/track/sigma_h_0_2/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
  168. otvision-0.5.3/tests/data/track/sigma_h_0_2/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
  169. otvision-0.5.3/tests/data/track/sigma_h_0_6/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
  170. otvision-0.5.3/tests/data/track/sigma_h_0_6/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
  171. otvision-0.5.3/tests/data/track/sigma_h_0_6/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
  172. otvision-0.5.3/tests/data/track/sigma_h_0_6/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
  173. otvision-0.5.3/tests/data/track/sigma_iou_0_2/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
  174. otvision-0.5.3/tests/data/track/sigma_iou_0_2/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
  175. otvision-0.5.3/tests/data/track/sigma_iou_0_2/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
  176. otvision-0.5.3/tests/data/track/sigma_iou_0_2/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
  177. otvision-0.5.3/tests/data/track/sigma_iou_0_6/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
  178. otvision-0.5.3/tests/data/track/sigma_iou_0_6/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
  179. otvision-0.5.3/tests/data/track/sigma_iou_0_6/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
  180. otvision-0.5.3/tests/data/track/sigma_iou_0_6/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
  181. otvision-0.5.3/tests/data/track/sigma_l_0_1/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
  182. otvision-0.5.3/tests/data/track/sigma_l_0_1/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
  183. otvision-0.5.3/tests/data/track/sigma_l_0_1/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
  184. otvision-0.5.3/tests/data/track/sigma_l_0_1/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
  185. otvision-0.5.3/tests/data/track/sigma_l_0_5/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
  186. otvision-0.5.3/tests/data/track/sigma_l_0_5/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
  187. otvision-0.5.3/tests/data/track/sigma_l_0_5/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
  188. otvision-0.5.3/tests/data/track/sigma_l_0_5/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
  189. otvision-0.5.3/tests/data/track/t_min_10/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
  190. otvision-0.5.3/tests/data/track/t_min_10/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
  191. otvision-0.5.3/tests/data/track/t_min_10/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
  192. otvision-0.5.3/tests/data/track/t_min_10/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
  193. otvision-0.5.3/tests/data/track/t_min_3/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
  194. otvision-0.5.3/tests/data/track/t_min_3/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
  195. otvision-0.5.3/tests/data/track/t_min_3/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
  196. otvision-0.5.3/tests/data/track/t_min_3/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
  197. otvision-0.5.3/tests/data/track/t_miss_max_25/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
  198. otvision-0.5.3/tests/data/track/t_miss_max_25/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
  199. otvision-0.5.3/tests/data/track/t_miss_max_25/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
  200. otvision-0.5.3/tests/data/track/t_miss_max_25/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
  201. otvision-0.5.3/tests/data/track/t_miss_max_75/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet +0 -0
  202. otvision-0.5.3/tests/data/track/t_miss_max_75/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
  203. otvision-0.5.3/tests/data/track/t_miss_max_75/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otdet +0 -0
  204. otvision-0.5.3/tests/data/track/t_miss_max_75/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
  205. otvision-0.5.3/tests/data/transform/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.gpkg +0 -0
  206. otvision-0.5.3/tests/data/transform/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otrfpts +42 -0
  207. otvision-0.5.3/tests/data/transform/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.ottrk +0 -0
  208. otvision-0.5.3/tests/data/transform/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.gpkg +0 -0
  209. otvision-0.5.3/tests/data/transform/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.otrfpts +42 -0
  210. otvision-0.5.3/tests/data/transform/Testvideo_Cars-Truck_FR20_2020-01-01_00-00-00.ottrk +0 -0
  211. otvision-0.5.3/tests/data/transform/Testvideo_FR20.otrfpts +42 -0
  212. otvision-0.5.3/tests/data/yolov8m.mlpackage/Data/com.apple.CoreML/model.mlmodel +0 -0
  213. otvision-0.5.3/tests/data/yolov8m.mlpackage/Data/com.apple.CoreML/weights/weight.bin +0 -0
  214. otvision-0.5.3/tests/data/yolov8m.mlpackage/Manifest.json +18 -0
  215. otvision-0.5.3/tests/detect/__init__.py +0 -0
  216. otvision-0.5.3/tests/detect/detect_test.py +597 -0
  217. otvision-0.5.3/tests/detect/plugin_av/__init__.py +0 -0
  218. otvision-0.5.3/tests/detect/plugin_av/test_rotate_frame.py +30 -0
  219. otvision-0.5.3/tests/detect/test_odet.py +217 -0
  220. otvision-0.5.3/tests/detect/yolo_test.py +135 -0
  221. otvision-0.5.3/tests/helpers/__init__.py +0 -0
  222. otvision-0.5.3/tests/helpers/files_test.py +203 -0
  223. otvision-0.5.3/tests/helpers/formats_test.py +71 -0
  224. otvision-0.5.3/tests/log/__init__.py +0 -0
  225. otvision-0.5.3/tests/log/log_maker.py +46 -0
  226. otvision-0.5.3/tests/log/test_log.py +107 -0
  227. otvision-0.5.3/tests/test_config.py +37 -0
  228. otvision-0.5.3/tests/track/__init__.py +0 -0
  229. otvision-0.5.3/tests/track/test_preprocess.py +550 -0
  230. otvision-0.5.3/tests/track/test_track.py +248 -0
  231. otvision-0.5.3/tests/transform/__init__.py +0 -0
  232. otvision-0.5.3/tests/transform/test_transform.py +165 -0
  233. otvision-0.5.3/track.py +242 -0
  234. otvision-0.5.3/transform.py +187 -0
  235. otvision-0.5.3/update_precommit.py +260 -0
  236. otvision-0.5.3/view.py +25 -0
@@ -0,0 +1,11 @@
1
+ # EditorConfig is awesome: http://EditorConfig.org
2
+ # top-most EditorConfig file
3
+ root = true
4
+
5
+ # Unix-style newlines at the bottom of every file
6
+ [*]
7
+ charset = utf-8
8
+
9
+ # Tab indentation
10
+ indent_style = space
11
+ indent_size = 2
otvision-0.5.3/.flake8 ADDED
@@ -0,0 +1,7 @@
1
+ [flake8]
2
+ max-line-length=88
3
+ docstring-convention=google
4
+ extend-ignore=E203
5
+ exclude=
6
+ venv
7
+ .venv
@@ -0,0 +1,25 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "pip" # See documentation for possible values
9
+ directory: "/" # Location of package manifests
10
+ schedule:
11
+ interval: "weekly"
12
+ day: "sunday"
13
+ reviewers:
14
+ - "briemla"
15
+ assignees:
16
+ - "briemla"
17
+ - package-ecosystem: "github-actions" # See documentation for possible values
18
+ directory: "/" # Location of package manifests
19
+ schedule:
20
+ interval: "weekly"
21
+ day: "sunday"
22
+ reviewers:
23
+ - "briemla"
24
+ assignees:
25
+ - "briemla"
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: Build Nightly Version
3
+
4
+ on:
5
+ # Creates Nightly Release of main
6
+ # Needs: secrets.PLATOMO_BUILDER_ACCESS
7
+ push:
8
+ branches:
9
+ - main
10
+
11
+ permissions: read-all
12
+
13
+ jobs:
14
+ test:
15
+ uses: "./.github/workflows/test.yml"
16
+ create_nightly:
17
+ permissions:
18
+ contents: write
19
+ needs: test
20
+ uses: "platomo/GitHub-workflows/.github/workflows/reusable-create-release-with-assets.yml@main"
21
+ secrets:
22
+ PLATOMO_BUILDER_ACCESS: ${{ secrets.PLATOMO_BUILDER_ACCESS }}
23
+ with:
24
+ package-path: OTVision
25
+ package-version: nightly
26
+ draft-release: false
27
+ pre-release: true
28
+ delete-existing: true
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: Build Release Version
3
+
4
+ on:
5
+ # Create release if tag is pushed to main.
6
+ # Needs: secrets.PLATOMO_BUILDER_ACCESS
7
+ push:
8
+ tags:
9
+ - "v*.*.*"
10
+
11
+ permissions: read-all
12
+
13
+ jobs:
14
+ test:
15
+ if: endsWith(github.event.base_ref, 'main')
16
+ uses: "./.github/workflows/test.yml"
17
+ create_release:
18
+ permissions:
19
+ contents: write
20
+ needs: test
21
+ uses: "platomo/GitHub-workflows/.github/workflows/reusable-create-release-with-assets.yml@main"
22
+ secrets:
23
+ PLATOMO_BUILDER_ACCESS: ${{ secrets.PLATOMO_BUILDER_ACCESS }}
24
+ with:
25
+ package-path: OTVision
26
+ package-version: ${{ github.ref_name }}
27
+ draft-release: false
28
+ pre-release: false
29
+ delete-existing: false
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: super-linter
3
+ #
4
+ # Documentation:
5
+ # https://help.github.com/en/articles/workflow-syntax-for-github-actions
6
+ #
7
+
8
+ on: pull_request
9
+
10
+ permissions:
11
+ contents: read
12
+ packages: read
13
+ # To report GitHub Actions status checks
14
+ statuses: write
15
+
16
+ jobs:
17
+ lint:
18
+ name: Lint many languages with super-linter
19
+ runs-on: ubuntu-latest
20
+ steps:
21
+ - name: Checkout Code
22
+ uses: actions/checkout@v4
23
+ with:
24
+ # super-linter needs the full git history to get the
25
+ # list of files that changed across commits
26
+ fetch-depth: 0
27
+ - name: Lint Code Base
28
+ uses: github/super-linter/slim@v7
29
+ env:
30
+ VALIDATE_ALL_CODEBASE: false
31
+ DEFAULT_BRANCH: main
32
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
33
+ VALIDATE_GO_RELEASER: false
34
+ VALIDATE_PYTHON_PYLINT: false
35
+ VALIDATE_PYTHON_MYPY: false
36
+ VALIDATE_JSCPD: false
37
+ VALIDATE_PYTHON_BLACK: false
38
+ VALIDATE_PYTHON_PYINK: false
39
+
40
+ LINTER_RULES_PATH: /
41
+ PYTHON_FLAKE8_CONFIG_FILE: .flake8
42
+ PYTHON_ISORT_CONFIG_FILE: pyproject.toml
43
+ YAML_CONFIG_FILE: .yamllint.yaml
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: Publish to PyPI
3
+
4
+ on:
5
+ push:
6
+ tags:
7
+ - "v*.*.*"
8
+
9
+ permissions: read-all
10
+
11
+ env:
12
+ out_dir: "dist/"
13
+
14
+ jobs:
15
+ test:
16
+ if: endsWith(github.event.base_ref, 'main')
17
+ uses: "./.github/workflows/test.yml"
18
+ publish-to-pypi:
19
+ runs-on: ubuntu-latest
20
+ needs:
21
+ - test
22
+ environment:
23
+ name: pypi
24
+ url: https://pypi.org/p/OTVision
25
+ permissions:
26
+ id-token: write # IMPORTANT: mandatory for trusted publishing
27
+ steps:
28
+ - name: Checkout code
29
+ uses: actions/checkout@v4
30
+ - name: Set up Python
31
+ uses: actions/setup-python@v5
32
+ with:
33
+ python-version: "3.12"
34
+ - name: Update Python Package Version
35
+ uses: platomo/update-version-py-action@v1.0.0
36
+ with:
37
+ version: ${{ github.ref_name }}
38
+ file-path: "OTVision"
39
+ - name: Install pypa/build
40
+ shell: bash
41
+ run: |
42
+ python3 -m pip install build --user
43
+
44
+ - name: Build a binary wheel and a source tarball
45
+ shell: bash
46
+ run: python -m build --outdir ${{ env.out_dir }}
47
+
48
+ - name: Store the distribution packages
49
+ uses: actions/upload-artifact@v4
50
+ with:
51
+ name: python-package-distributions
52
+ path: ${{ env.out_dir }}
53
+
54
+ - name: Publish distribution
55
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: Publish to TestPyPI
3
+
4
+ on:
5
+ push:
6
+ branches:
7
+ - main
8
+
9
+ permissions: read-all
10
+
11
+ env:
12
+ out_dir: "dist/"
13
+
14
+ jobs:
15
+ test:
16
+ uses: "./.github/workflows/test.yml"
17
+ publish-to-testpypi:
18
+ runs-on: ubuntu-latest
19
+ needs:
20
+ - test
21
+ environment:
22
+ name: testpypi
23
+ url: https://test.pypi.org/p/OTVision
24
+ permissions:
25
+ id-token: write # IMPORTANT: mandatory for trusted publishing
26
+ steps:
27
+ - name: Checkout code
28
+ uses: actions/checkout@v4
29
+ - name: Set up Python
30
+ uses: actions/setup-python@v5
31
+ with:
32
+ python-version: "3.12"
33
+ - name: Update Python Package Version
34
+ uses: platomo/update-version-py-action@v1.0.1
35
+ with:
36
+ version: nightly
37
+ file-path: "OTVision"
38
+ - name: Install pypa/build
39
+ shell: bash
40
+ run: |
41
+ python3 -m pip install build --user
42
+
43
+ - name: Build a binary wheel and a source tarball
44
+ shell: bash
45
+ run: python -m build --outdir ${{ env.out_dir }}
46
+
47
+ - name: Store the distribution packages
48
+ uses: actions/upload-artifact@v4
49
+ with:
50
+ name: python-package-distributions
51
+ path: ${{ env.out_dir }}
52
+
53
+ - name: Publish distribution
54
+ uses: pypa/gh-action-pypi-publish@release/v1
55
+ with:
56
+ repository-url: ${{ vars.PYPI_REPO_URL }}
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: Test
3
+
4
+ on:
5
+ # Run tests each time a PR is opened or changed.
6
+ # Allow other Workflows (e.g. build workflows) to call this workflow.
7
+ pull_request:
8
+ workflow_call:
9
+
10
+ permissions: read-all
11
+
12
+ jobs:
13
+ test:
14
+ name: Run Python tests on multiple OS and Python versions
15
+ strategy:
16
+ fail-fast: True
17
+ matrix:
18
+ os: [ubuntu-latest, windows-latest]
19
+ py: ["3.11"]
20
+ uses: "platomo/GitHub-workflows/.github/workflows/reusable-python-tests.yml@main"
21
+ with:
22
+ os: ${{ matrix.os }}
23
+ py-version: ${{ matrix.py }}
24
+ test_path: OTVision
25
+ ffmpeg-required: True
@@ -0,0 +1,182 @@
1
+ # OTVision
2
+ OTVision/user.conf
3
+ *yolov5*.pt
4
+ obj_train_data/*
5
+ *ffmpeg.exe
6
+ *ffmpeg.zip
7
+ tests/resources/
8
+ *.log
9
+ !test.log
10
+ *.otvision.yaml
11
+
12
+ # Byte-compiled / optimized / DLL files
13
+ __pycache__/
14
+ *.py[cod]
15
+ *$py.class
16
+
17
+ # C extensions
18
+ *.so
19
+
20
+ # Distribution / packaging
21
+ .Python
22
+ build/
23
+ develop-eggs/
24
+ dist/
25
+ downloads/
26
+ eggs/
27
+ .eggs/
28
+ lib/
29
+ lib64/
30
+ parts/
31
+ sdist/
32
+ var/
33
+ wheels/
34
+ share/python-wheels/
35
+ *.egg-info/
36
+ .installed.cfg
37
+ *.egg
38
+ MANIFEST
39
+
40
+ # PyInstaller
41
+ # Usually these files are written by a python script from a template
42
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
43
+ *.manifest
44
+ *.spec
45
+
46
+ # Installer logs
47
+ pip-log.txt
48
+ pip-delete-this-directory.txt
49
+
50
+ # Unit test / coverage reports
51
+ htmlcov/
52
+ .tox/
53
+ .nox/
54
+ .coverage
55
+ .coverage.*
56
+ .cache
57
+ nosetests.xml
58
+ coverage.xml
59
+ *.cover
60
+ *.py,cover
61
+ .hypothesis/
62
+ .pytest_cache/
63
+ cover/
64
+
65
+ # Translations
66
+ *.mo
67
+ *.pot
68
+
69
+ # Django stuff:
70
+ local_settings.py
71
+ db.sqlite3
72
+ db.sqlite3-journal
73
+
74
+ # Flask stuff:
75
+ instance/
76
+ .webassets-cache
77
+
78
+ # Scrapy stuff:
79
+ .scrapy
80
+
81
+ # Sphinx documentation
82
+ docs/_build/
83
+
84
+ # PyBuilder
85
+ .pybuilder/
86
+ target/
87
+
88
+ # Jupyter Notebook
89
+ .ipynb_checkpoints
90
+
91
+ # IPython
92
+ profile_default/
93
+ ipython_config.py
94
+
95
+ # pyenv
96
+ # For a library or package, you might want to ignore these files since the code is
97
+ # intended to run in multiple environments; otherwise, check them in:
98
+ # .python-version
99
+
100
+ # pipenv
101
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
102
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
103
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
104
+ # install all needed dependencies.
105
+ #Pipfile.lock
106
+
107
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
108
+ __pypackages__/
109
+
110
+ # Celery stuff
111
+ celerybeat-schedule
112
+ celerybeat.pid
113
+
114
+ # SageMath parsed files
115
+ *.sage.py
116
+
117
+ # Environments
118
+ .env
119
+ .venv
120
+ env/
121
+ venv/
122
+ ENV/
123
+ env.bak/
124
+ venv.bak/
125
+
126
+ # Spyder project settings
127
+ .spyderproject
128
+ .spyproject
129
+
130
+ # Rope project settings
131
+ .ropeproject
132
+
133
+ # mkdocs documentation
134
+ /site
135
+
136
+ # mypy
137
+ .mypy_cache/
138
+ .dmypy.json
139
+ dmypy.json
140
+
141
+ # Pyre type checker
142
+ .pyre/
143
+
144
+ # pytype static type analyzer
145
+ .pytype/
146
+
147
+ # Cython debug symbols
148
+ cython_debug/
149
+
150
+ # IDEA Ignores #
151
+ *.iml
152
+ *.ipr
153
+ *.iws
154
+ .idea/
155
+ out/
156
+ local.properties
157
+
158
+ # OS generated files #
159
+ .DS_Store
160
+ .DS_Store?
161
+ ehthumbs.db
162
+ Icon?
163
+ Thumbs.db
164
+
165
+ # Visual Studio Code
166
+ .vscode/*
167
+ !.vscode/settings.json
168
+ !.vscode/tasks.json
169
+ !.vscode/launch.json
170
+ !.vscode/extensions.json
171
+ !.vscode/scripts
172
+ *.code-workspace
173
+
174
+ # Local History for Visual Studio Code
175
+ .history/
176
+
177
+ # Vim
178
+ .vim
179
+
180
+ #data
181
+ /data/*
182
+ /*.mlpackage
@@ -0,0 +1,94 @@
1
+ ---
2
+ repos:
3
+ - repo: https://github.com/pre-commit/pre-commit-hooks
4
+ rev: v4.6.0
5
+ hooks:
6
+ - id: check-yaml
7
+ - id: check-json
8
+ - id: end-of-file-fixer
9
+ exclude_types:
10
+ - json
11
+ - id: trailing-whitespace
12
+ - id: no-commit-to-branch
13
+ - id: debug-statements
14
+ - id: requirements-txt-fixer
15
+ - id: check-executables-have-shebangs
16
+ - id: detect-private-key
17
+ - repo: local
18
+ hooks:
19
+ - id: update-type-stubs
20
+ name: Check for Type Stubs and Update Config
21
+ entry: ./update_precommit.py
22
+ language: system
23
+ files: ^requirements.*\.txt$
24
+ stages:
25
+ - commit
26
+ - repo: https://github.com/PyCQA/flake8
27
+ rev: 7.1.1
28
+ hooks:
29
+ - id: flake8
30
+ - repo: https://github.com/pycqa/isort
31
+ rev: 5.13.2
32
+ hooks:
33
+ - id: isort
34
+ args:
35
+ - --profile
36
+ - black
37
+ - repo: https://github.com/psf/black
38
+ rev: 24.8.0
39
+ hooks:
40
+ - id: black
41
+ - repo: https://github.com/pre-commit/mirrors-mypy
42
+ rev: v1.11.1
43
+ hooks:
44
+ - id: mypy
45
+ entry: mypy .
46
+ additional_dependencies:
47
+ - av==13.0.0
48
+ - black==24.8.0
49
+ - coremltools==8.2;
50
+ - fire==0.7.0
51
+ - hatch-requirements-txt==0.4.1
52
+ - ijson==3.3.0
53
+ - interrogate==1.5.0
54
+ - isort==5.13.2
55
+ - moviepy==1.0.3
56
+ - mypy==1.11.1
57
+ - numpy==1.26.4
58
+ - opencv-python==4.9.0.80
59
+ - pandas-stubs==2.2.2.240807
60
+ - pandas==2.2.2
61
+ - pre-commit==3.8.0
62
+ - pytest-cov==5.0.0
63
+ - pytest==8.3.3
64
+ - torch==2.3.1
65
+ - torchvision==0.18.1
66
+ - twine==6.1.0
67
+ - types-PyYAML
68
+ - types-flake8
69
+ - types-geopandas
70
+ - types-jsonschema
71
+ - types-setuptools
72
+ - types-tqdm
73
+ - types-ujson
74
+ - ultralytics==8.3.74
75
+ - yamllint==1.35.1
76
+ always_run: true
77
+ pass_filenames: false
78
+ - repo: https://github.com/adrienverge/yamllint.git
79
+ rev: v1.35.1
80
+ hooks:
81
+ - id: yamllint
82
+ args:
83
+ - -c=./.yamllint.yaml
84
+ - repo: https://github.com/koalaman/shellcheck-precommit
85
+ rev: v0.10.0
86
+ hooks:
87
+ - id: shellcheck
88
+ - repo: https://github.com/pecigonzalo/pre-commit-shfmt
89
+ rev: v2.2.0
90
+ hooks:
91
+ - id: shell-fmt-docker
92
+ args:
93
+ - -i
94
+ - "2"
@@ -0,0 +1,89 @@
1
+ {
2
+ "version": "0.2.0",
3
+ "configurations": [
4
+ {
5
+ "name": "Python: Current File",
6
+ "type": "python",
7
+ "request": "launch",
8
+ "program": "${file}",
9
+ "console": "integratedTerminal",
10
+ "justMyCode": false
11
+ },
12
+ {
13
+ "name": "Python: OTVision GUI",
14
+ "type": "python",
15
+ "request": "launch",
16
+ "program": "${workspaceFolder}/view.py",
17
+ "console": "integratedTerminal",
18
+ "justMyCode": false
19
+ },
20
+ {
21
+ "name": "Python: Convert",
22
+ "type": "python",
23
+ "request": "launch",
24
+ "preLaunchTask": "Build detect debug environment",
25
+ "postDebugTask": "Tear down debug environment",
26
+ "program": "${workspaceFolder}/convert.py",
27
+ "args": [
28
+ "--path",
29
+ ".tmp/debug/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264"
30
+ ],
31
+ "windows": {
32
+ "args": [
33
+ "--path",
34
+ ".tmp\\debug\\Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264"
35
+ ]
36
+ },
37
+ "console": "integratedTerminal",
38
+ "justMyCode": false
39
+ },
40
+ {
41
+ "name": "Python: Detect",
42
+ "type": "python",
43
+ "request": "launch",
44
+ "preLaunchTask": "Build detect debug environment",
45
+ "postDebugTask": "Tear down debug environment",
46
+ "program": "${workspaceFolder}/detect.py",
47
+ "args": [
48
+ "--path",
49
+ ".tmp/debug/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4",
50
+ "--weights",
51
+ "yolov8s",
52
+ "--expected_duration",
53
+ "3"
54
+ ],
55
+ "windows": {
56
+ "args": [
57
+ "--path",
58
+ ".tmp\\debug\\Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4",
59
+ "--weights",
60
+ "yolov8s",
61
+ "--expected_duration",
62
+ "3"
63
+ ]
64
+ },
65
+ "console": "integratedTerminal",
66
+ "justMyCode": false
67
+ },
68
+ {
69
+ "name": "Python: Track",
70
+ "type": "python",
71
+ "request": "launch",
72
+ "preLaunchTask": "Build detect debug environment",
73
+ "postDebugTask": "Tear down debug environment",
74
+ "program": "${workspaceFolder}/track.py",
75
+ "args": [
76
+ "--paths",
77
+ ".tmp/debug/Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet"
78
+ ],
79
+ "windows": {
80
+ "args": [
81
+ "--path",
82
+ ".tmp\\debug\\Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet"
83
+ ]
84
+ },
85
+ "console": "integratedTerminal",
86
+ "justMyCode": false
87
+ }
88
+ ]
89
+ }
@@ -0,0 +1,15 @@
1
+ echo Setup debug environment.
2
+ @echo off
3
+ set "CURRENT_DIR=%cd%"
4
+ set H264_FILENAME=Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264
5
+ set MP4_FILENAME=Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4
6
+ set OTDET_FILENAME=Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet
7
+ set H264_FILE=%CURRENT_DIR%\tests\data\%H264_FILENAME%
8
+ set MP4_FILE=%CURRENT_DIR%\tests\data\%MP4_FILENAME%
9
+ set OTDET_FILE=%CURRENT_DIR%\tests\data\%OTDET_FILENAME%
10
+ set TMP_DEBUG_DIR=%CURRENT_DIR%\.tmp\debug\
11
+
12
+ mkdir %TMP_DEBUG_DIR%
13
+ xcopy /i /q %H264_FILE% %TMP_DEBUG_DIR%
14
+ xcopy /i /q %MP4_FILE% %TMP_DEBUG_DIR%
15
+ xcopy /i /q %OTDET_FILE% %TMP_DEBUG_DIR%
@@ -0,0 +1,14 @@
1
+ #!/bin/bash
2
+ CURRENT_DIR=$(pwd)
3
+ H264_FILENAME="Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.h264"
4
+ MP4_FILENAME="Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.mp4"
5
+ OTDET_FILENAME="Testvideo_Cars-Cyclist_FR20_2020-01-01_00-00-00.otdet"
6
+ H264_FILE="$CURRENT_DIR/tests/data/$H264_FILENAME"
7
+ MP4_FILE="$CURRENT_DIR/tests/data/$MP4_FILENAME"
8
+ OTDET_FILE="$CURRENT_DIR/tests/data/$OTDET_FILENAME"
9
+ TMP_DEBUG_DIR="$CURRENT_DIR/.tmp/debug/"
10
+
11
+ mkdir -p "$TMP_DEBUG_DIR"
12
+ cp "$H264_FILE" "$TMP_DEBUG_DIR"$H264_FILENAME
13
+ cp "$MP4_FILE" "$TMP_DEBUG_DIR"$MP4_FILENAME
14
+ cp "$OTDET_FILE" "$TMP_DEBUG_DIR"$OTDET_FILENAME
@@ -0,0 +1,6 @@
1
+ echo Tear down debug environment.
2
+ @echo off
3
+ set "CURRENT_DIR=%cd%"
4
+ set TMP_DIR=%CURRENT_DIR%\.tmp\
5
+
6
+ rmdir /s /q "%TMP_DIR%"
@@ -0,0 +1,5 @@
1
+ #!/bin/bash
2
+ CURRENT_DIR=$(pwd)
3
+ TMP_DIR="$CURRENT_DIR/.tmp/"
4
+
5
+ rm -rf "$TMP_DIR"