megadetector 5.0.0__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 (865) hide show
  1. megadetector-5.0.0/.gitignore +61 -0
  2. megadetector-5.0.0/LICENSE +19 -0
  3. megadetector-5.0.0/PKG-INFO +270 -0
  4. megadetector-5.0.0/README.md +220 -0
  5. megadetector-5.0.0/__init__.py +0 -0
  6. megadetector-5.0.0/api/README.md +22 -0
  7. megadetector-5.0.0/api/batch_processing/README.md +309 -0
  8. megadetector-5.0.0/api/batch_processing/api_core/README.md +87 -0
  9. megadetector-5.0.0/api/batch_processing/api_core/azure_batch.ipynb +443 -0
  10. megadetector-5.0.0/api/batch_processing/api_core/batch_service/Dockerfile +5 -0
  11. megadetector-5.0.0/api/batch_processing/api_core/batch_service/score.py +440 -0
  12. megadetector-5.0.0/api/batch_processing/api_core/environment-batch-api.yml +22 -0
  13. megadetector-5.0.0/api/batch_processing/api_core/server.py +294 -0
  14. megadetector-5.0.0/api/batch_processing/api_core/server_api_config.py +98 -0
  15. megadetector-5.0.0/api/batch_processing/api_core/server_app_config.py +55 -0
  16. megadetector-5.0.0/api/batch_processing/api_core/server_batch_job_manager.py +220 -0
  17. megadetector-5.0.0/api/batch_processing/api_core/server_job_status_table.py +153 -0
  18. megadetector-5.0.0/api/batch_processing/api_core/server_orchestration.py +360 -0
  19. megadetector-5.0.0/api/batch_processing/api_core/server_utils.py +92 -0
  20. megadetector-5.0.0/api/batch_processing/api_core/start_batch_api.sh +63 -0
  21. megadetector-5.0.0/api/batch_processing/api_core_support/aggregate_results_manually.py +47 -0
  22. megadetector-5.0.0/api/batch_processing/api_support/create_batch_pool.ipynb +383 -0
  23. megadetector-5.0.0/api/batch_processing/api_support/start_summarize_daily_activities.sh +31 -0
  24. megadetector-5.0.0/api/batch_processing/api_support/summarize_daily_activity.py +153 -0
  25. megadetector-5.0.0/api/batch_processing/data_preparation/README.md +5 -0
  26. megadetector-5.0.0/api/batch_processing/data_preparation/manage_local_batch.ipynb +2664 -0
  27. megadetector-5.0.0/api/batch_processing/data_preparation/manage_local_batch.py +2183 -0
  28. megadetector-5.0.0/api/batch_processing/data_preparation/manage_video_batch.py +171 -0
  29. megadetector-5.0.0/api/batch_processing/data_preparation/prepare_api_submission.py +565 -0
  30. megadetector-5.0.0/api/batch_processing/images/Postman_screenshot.png +0 -0
  31. megadetector-5.0.0/api/batch_processing/images/SAS_screenshot.png +0 -0
  32. megadetector-5.0.0/api/batch_processing/images/task_endpoint_response.png +0 -0
  33. megadetector-5.0.0/api/batch_processing/integration/README.md +30 -0
  34. megadetector-5.0.0/api/batch_processing/integration/digiKam/.gitignore +1 -0
  35. megadetector-5.0.0/api/batch_processing/integration/digiKam/README.md +59 -0
  36. megadetector-5.0.0/api/batch_processing/integration/digiKam/images/aiforearth.png +0 -0
  37. megadetector-5.0.0/api/batch_processing/integration/digiKam/images/bg.png +0 -0
  38. megadetector-5.0.0/api/batch_processing/integration/digiKam/images/digikam.png +0 -0
  39. megadetector-5.0.0/api/batch_processing/integration/digiKam/images/screenshot.png +0 -0
  40. megadetector-5.0.0/api/batch_processing/integration/digiKam/setup.py +6 -0
  41. megadetector-5.0.0/api/batch_processing/integration/digiKam/xmp_integration.py +466 -0
  42. megadetector-5.0.0/api/batch_processing/integration/eMammal/README.md +70 -0
  43. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/App.xaml +9 -0
  44. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/App.xaml.cs +17 -0
  45. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/Category.cs +16 -0
  46. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/Common.cs +131 -0
  47. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/Constants.cs +65 -0
  48. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/ImageTaxa.cs +17 -0
  49. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/JsonData.cs +52 -0
  50. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/Properties/AssemblyInfo.cs +55 -0
  51. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/Properties/Resources.Designer.cs +71 -0
  52. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/Properties/Resources.resx +117 -0
  53. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/Properties/Settings.Designer.cs +30 -0
  54. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/Properties/Settings.settings +7 -0
  55. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/app.config +34 -0
  56. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/eMammal-integration-application.csproj +182 -0
  57. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/eMammal-integration-application.sln +25 -0
  58. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/eMammalIntegration.cs +314 -0
  59. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/eMammalIntegrationWindow.xaml +95 -0
  60. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/eMammalIntegrationWindow.xaml.cs +565 -0
  61. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/eMammalMySQLOps.cs +315 -0
  62. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/favicon.ico +0 -0
  63. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/images/MS-AIforEarth.JPG +0 -0
  64. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/images/elephants-277329_1280.jpg +0 -0
  65. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/nlog.config +18 -0
  66. megadetector-5.0.0/api/batch_processing/integration/eMammal/WPF-integration-app/packages.config +17 -0
  67. megadetector-5.0.0/api/batch_processing/integration/eMammal/eMammal-Client-App-Troubleshooting.md +23 -0
  68. megadetector-5.0.0/api/batch_processing/integration/eMammal/images/MYSQL-installer.jpg +0 -0
  69. megadetector-5.0.0/api/batch_processing/integration/eMammal/images/app-config-add-password.jpg +0 -0
  70. megadetector-5.0.0/api/batch_processing/integration/eMammal/images/eMammal-integration-app-category-mapping.jpg +0 -0
  71. megadetector-5.0.0/api/batch_processing/integration/eMammal/images/eMammal-integration-app-processing-complete.jpg +0 -0
  72. megadetector-5.0.0/api/batch_processing/integration/eMammal/images/eMammal-integration-app-project-details.jpg +0 -0
  73. megadetector-5.0.0/api/batch_processing/integration/eMammal/images/error-invoking-method.jpg +0 -0
  74. megadetector-5.0.0/api/batch_processing/integration/eMammal/images/failed-to-launch-JVM.jpg +0 -0
  75. megadetector-5.0.0/api/batch_processing/integration/eMammal/images/mysql-change-port.jpg +0 -0
  76. megadetector-5.0.0/api/batch_processing/integration/eMammal/images/mysql-ready-to-configure.jpg +0 -0
  77. megadetector-5.0.0/api/batch_processing/integration/eMammal/images/mysql-select-custom.jpg +0 -0
  78. megadetector-5.0.0/api/batch_processing/integration/eMammal/images/mysql-select-stand-alone-configure.jpg +0 -0
  79. megadetector-5.0.0/api/batch_processing/integration/eMammal/images/mysql-server5-7-28-option.jpg +0 -0
  80. megadetector-5.0.0/api/batch_processing/integration/eMammal/images/mysql-server5-7-29-option.jpg +0 -0
  81. megadetector-5.0.0/api/batch_processing/integration/eMammal/images/successful-deployment.jpg +0 -0
  82. megadetector-5.0.0/api/batch_processing/integration/eMammal/images/verified-push.jpg +0 -0
  83. megadetector-5.0.0/api/batch_processing/integration/eMammal/test_scripts/config_template.py +5 -0
  84. megadetector-5.0.0/api/batch_processing/integration/eMammal/test_scripts/push_annotations_to_emammal.py +127 -0
  85. megadetector-5.0.0/api/batch_processing/integration/eMammal/test_scripts/select_images_for_testing.py +55 -0
  86. megadetector-5.0.0/api/batch_processing/integration/images/add_disk.png +0 -0
  87. megadetector-5.0.0/api/batch_processing/integration/images/create_disk_dropdown.jpg +0 -0
  88. megadetector-5.0.0/api/batch_processing/integration/images/create_disk_dropdown.png +0 -0
  89. megadetector-5.0.0/api/batch_processing/integration/images/create_disk_save.png +0 -0
  90. megadetector-5.0.0/api/batch_processing/integration/images/create_managed_disk.jpg +0 -0
  91. megadetector-5.0.0/api/batch_processing/integration/images/create_managed_disk_dialog.png +0 -0
  92. megadetector-5.0.0/api/batch_processing/integration/images/initialize_disk.png +0 -0
  93. megadetector-5.0.0/api/batch_processing/integration/images/select_disk.png +0 -0
  94. megadetector-5.0.0/api/batch_processing/integration/images/select_vm.jpg +0 -0
  95. megadetector-5.0.0/api/batch_processing/integration/images/tl_boxes.jpg +0 -0
  96. megadetector-5.0.0/api/batch_processing/integration/images/tl_confidence.jpg +0 -0
  97. megadetector-5.0.0/api/batch_processing/integration/images/tl_template.jpg +0 -0
  98. megadetector-5.0.0/api/batch_processing/integration/images/vm_1_azure_dashboard.png +0 -0
  99. megadetector-5.0.0/api/batch_processing/integration/images/vm_2_create_vm.png +0 -0
  100. megadetector-5.0.0/api/batch_processing/integration/images/vm_3_subscription_and_name.png +0 -0
  101. megadetector-5.0.0/api/batch_processing/integration/images/vm_4_image_size_port.png +0 -0
  102. megadetector-5.0.0/api/batch_processing/integration/images/vm_5_vm_homepage.png +0 -0
  103. megadetector-5.0.0/api/batch_processing/integration/images/vm_6_connect_popup.png +0 -0
  104. megadetector-5.0.0/api/batch_processing/integration/images/vm_7_networking.png +0 -0
  105. megadetector-5.0.0/api/batch_processing/integration/images/vm_8_static_ip.png +0 -0
  106. megadetector-5.0.0/api/batch_processing/integration/remote_desktop.md +154 -0
  107. megadetector-5.0.0/api/batch_processing/integration/timelapse.md +27 -0
  108. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/App.config +6 -0
  109. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/CameraTrapJsonManagerApp.csproj +104 -0
  110. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/CameraTrapJsonManagerApp.sln +25 -0
  111. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/Form.Designer.cs +613 -0
  112. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/Form.cs +499 -0
  113. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/Form.resx +1382 -0
  114. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/JsonData.cs +62 -0
  115. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/Program.cs +32 -0
  116. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/ProgressDetails.cs +29 -0
  117. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/Properties/AssemblyInfo.cs +36 -0
  118. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/Properties/Resources.Designer.cs +63 -0
  119. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/Properties/Resources.resx +117 -0
  120. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/Properties/Settings.Designer.cs +26 -0
  121. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/Properties/Settings.settings +7 -0
  122. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/StaticFunctions.cs +16 -0
  123. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/SubsetJsonDetectorOutput.cs +717 -0
  124. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/SubsetJsonDetectorOutputOptions.cs +59 -0
  125. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/ai for earth logo.ico +0 -0
  126. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/packages.config +2 -0
  127. megadetector-5.0.0/api/batch_processing/postprocessing/CameraTrapJsonManagerApp.md +150 -0
  128. megadetector-5.0.0/api/batch_processing/postprocessing/README.md +79 -0
  129. megadetector-5.0.0/api/batch_processing/postprocessing/add_max_conf.py +58 -0
  130. megadetector-5.0.0/api/batch_processing/postprocessing/categorize_detections_by_size.py +114 -0
  131. megadetector-5.0.0/api/batch_processing/postprocessing/combine_api_outputs.py +224 -0
  132. megadetector-5.0.0/api/batch_processing/postprocessing/compare_batch_results.py +556 -0
  133. megadetector-5.0.0/api/batch_processing/postprocessing/convert_output_format.py +306 -0
  134. megadetector-5.0.0/api/batch_processing/postprocessing/images/CameraTrapJsonManagerApp.jpg +0 -0
  135. megadetector-5.0.0/api/batch_processing/postprocessing/images/false_positive.jpg +0 -0
  136. megadetector-5.0.0/api/batch_processing/postprocessing/images/gray_box.jpg +0 -0
  137. megadetector-5.0.0/api/batch_processing/postprocessing/images/mixed_positive.jpg +0 -0
  138. megadetector-5.0.0/api/batch_processing/postprocessing/images/possible_positive.jpg +0 -0
  139. megadetector-5.0.0/api/batch_processing/postprocessing/images/rde_tiles_all_fps.jpg +0 -0
  140. megadetector-5.0.0/api/batch_processing/postprocessing/images/rde_tiles_cool_image.jpg +0 -0
  141. megadetector-5.0.0/api/batch_processing/postprocessing/images/rde_tiles_hidden_tp.jpg +0 -0
  142. megadetector-5.0.0/api/batch_processing/postprocessing/images/rde_tiles_primary_tp.jpg +0 -0
  143. megadetector-5.0.0/api/batch_processing/postprocessing/images/rde_tiles_sleeping_elk.jpg +0 -0
  144. megadetector-5.0.0/api/batch_processing/postprocessing/images/true_positive.jpg +0 -0
  145. megadetector-5.0.0/api/batch_processing/postprocessing/load_api_results.py +216 -0
  146. megadetector-5.0.0/api/batch_processing/postprocessing/merge_detections.py +238 -0
  147. megadetector-5.0.0/api/batch_processing/postprocessing/postprocess_batch_results.py +1589 -0
  148. megadetector-5.0.0/api/batch_processing/postprocessing/repeat_detection_elimination/README.md +190 -0
  149. megadetector-5.0.0/api/batch_processing/postprocessing/repeat_detection_elimination/find_repeat_detections.py +154 -0
  150. megadetector-5.0.0/api/batch_processing/postprocessing/repeat_detection_elimination/remove_repeat_detections.py +71 -0
  151. megadetector-5.0.0/api/batch_processing/postprocessing/repeat_detection_elimination/repeat_detections_core.py +1386 -0
  152. megadetector-5.0.0/api/batch_processing/postprocessing/separate_detections_into_folders.py +688 -0
  153. megadetector-5.0.0/api/batch_processing/postprocessing/subset_json_detector_output.py +592 -0
  154. megadetector-5.0.0/api/batch_processing/postprocessing/top_folders_to_bottom.py +189 -0
  155. megadetector-5.0.0/api/synchronous/README.md +115 -0
  156. megadetector-5.0.0/api/synchronous/api_core/Dockerfile +96 -0
  157. megadetector-5.0.0/api/synchronous/api_core/animal_detection_api/.gitignore +5 -0
  158. megadetector-5.0.0/api/synchronous/api_core/animal_detection_api/api_backend.py +154 -0
  159. megadetector-5.0.0/api/synchronous/api_core/animal_detection_api/api_frontend.py +268 -0
  160. megadetector-5.0.0/api/synchronous/api_core/animal_detection_api/config.py +35 -0
  161. megadetector-5.0.0/api/synchronous/api_core/animal_detection_api/model/.gitkeep +0 -0
  162. megadetector-5.0.0/api/synchronous/api_core/animal_detection_api/temp/.gitkeep +0 -0
  163. megadetector-5.0.0/api/synchronous/api_core/build_docker.sh +32 -0
  164. megadetector-5.0.0/api/synchronous/api_core/requirements.txt +4 -0
  165. megadetector-5.0.0/api/synchronous/api_core/startup.sh +2 -0
  166. megadetector-5.0.0/api/synchronous/api_core/supervisord.conf +27 -0
  167. megadetector-5.0.0/api/synchronous/api_core/tests/load_test.py +110 -0
  168. megadetector-5.0.0/api/synchronous/camera_trap_flask_api_test.ipynb +210 -0
  169. megadetector-5.0.0/api/synchronous/images/postman_api_key.jpg +0 -0
  170. megadetector-5.0.0/api/synchronous/images/postman_formdata_images.jpg +0 -0
  171. megadetector-5.0.0/api/synchronous/images/postman_url_params.jpg +0 -0
  172. megadetector-5.0.0/archive/MLDebugTemplate.tdb +0 -0
  173. megadetector-5.0.0/archive/README.md +3 -0
  174. megadetector-5.0.0/archive/active_learning/.gitignore +8 -0
  175. megadetector-5.0.0/archive/active_learning/DL/Engine.py +252 -0
  176. megadetector-5.0.0/archive/active_learning/DL/__init__.py +1 -0
  177. megadetector-5.0.0/archive/active_learning/DL/losses.py +136 -0
  178. megadetector-5.0.0/archive/active_learning/DL/networks.py +104 -0
  179. megadetector-5.0.0/archive/active_learning/DL/sqlite_data_loader.py +257 -0
  180. megadetector-5.0.0/archive/active_learning/DL/utils.py +435 -0
  181. megadetector-5.0.0/archive/active_learning/Database/DB_models.py +104 -0
  182. megadetector-5.0.0/archive/active_learning/Database/__init__.py +0 -0
  183. megadetector-5.0.0/archive/active_learning/Database/add_oracle_to_db.py +77 -0
  184. megadetector-5.0.0/archive/active_learning/Database/initialize_pretrain_db.py +165 -0
  185. megadetector-5.0.0/archive/active_learning/Database/initialize_target_db.py +108 -0
  186. megadetector-5.0.0/archive/active_learning/Database/initialize_target_db_from_classification_dataset.py +122 -0
  187. megadetector-5.0.0/archive/active_learning/README.md +20 -0
  188. megadetector-5.0.0/archive/active_learning/active_learning_methods/__init__.py +14 -0
  189. megadetector-5.0.0/archive/active_learning/active_learning_methods/bandit_discrete.py +125 -0
  190. megadetector-5.0.0/archive/active_learning/active_learning_methods/confidence_sampling.py +60 -0
  191. megadetector-5.0.0/archive/active_learning/active_learning_methods/constants.py +131 -0
  192. megadetector-5.0.0/archive/active_learning/active_learning_methods/entropy_sampling.py +62 -0
  193. megadetector-5.0.0/archive/active_learning/active_learning_methods/graph_density.py +92 -0
  194. megadetector-5.0.0/archive/active_learning/active_learning_methods/hierarchical_clustering_AL.py +362 -0
  195. megadetector-5.0.0/archive/active_learning/active_learning_methods/informative_diverse.py +101 -0
  196. megadetector-5.0.0/archive/active_learning/active_learning_methods/kcenter_greedy.py +123 -0
  197. megadetector-5.0.0/archive/active_learning/active_learning_methods/margin_AL.py +64 -0
  198. megadetector-5.0.0/archive/active_learning/active_learning_methods/mixture_of_samplers.py +110 -0
  199. megadetector-5.0.0/archive/active_learning/active_learning_methods/represent_cluster_centers.py +78 -0
  200. megadetector-5.0.0/archive/active_learning/active_learning_methods/sampling_def.py +54 -0
  201. megadetector-5.0.0/archive/active_learning/active_learning_methods/simulate_batch.py +261 -0
  202. megadetector-5.0.0/archive/active_learning/active_learning_methods/uniform_sampling.py +61 -0
  203. megadetector-5.0.0/archive/active_learning/active_learning_methods/utils/__init__.py +14 -0
  204. megadetector-5.0.0/archive/active_learning/active_learning_methods/utils/tree.py +158 -0
  205. megadetector-5.0.0/archive/active_learning/active_learning_methods/utils/tree_test.py +79 -0
  206. megadetector-5.0.0/archive/active_learning/active_learning_methods/wrapper_sampler_def.py +50 -0
  207. megadetector-5.0.0/archive/active_learning/archive/UI.py +181 -0
  208. megadetector-5.0.0/archive/active_learning/archive/UIComponents/DBObjects.py +78 -0
  209. megadetector-5.0.0/archive/active_learning/archive/UIComponents/GridWidget.py +177 -0
  210. megadetector-5.0.0/archive/active_learning/archive/UIComponents/ImageView.py +69 -0
  211. megadetector-5.0.0/archive/active_learning/archive/UIComponents/SpeciesWidget.py +97 -0
  212. megadetector-5.0.0/archive/active_learning/archive/UIComponents/Tag.py +315 -0
  213. megadetector-5.0.0/archive/active_learning/archive/UIComponents/__init__.py +1 -0
  214. megadetector-5.0.0/archive/active_learning/archive/data_loader.py +139 -0
  215. megadetector-5.0.0/archive/active_learning/archive/filebased_main.py +179 -0
  216. megadetector-5.0.0/archive/active_learning/archive/filebased_run_dirty.py +400 -0
  217. megadetector-5.0.0/archive/active_learning/archive/good_run.py +344 -0
  218. megadetector-5.0.0/archive/active_learning/archive/import_folder.py +71 -0
  219. megadetector-5.0.0/archive/active_learning/archive/init.py +119 -0
  220. megadetector-5.0.0/archive/active_learning/archive/job_template.tmpl +13 -0
  221. megadetector-5.0.0/archive/active_learning/archive/jobs_info_both.txt +15 -0
  222. megadetector-5.0.0/archive/active_learning/archive/make_active_learning_classification_dataset.py +210 -0
  223. megadetector-5.0.0/archive/active_learning/archive/multicpu_copy.py +66 -0
  224. megadetector-5.0.0/archive/active_learning/archive/plot_active.py +20 -0
  225. megadetector-5.0.0/archive/active_learning/archive/run_backup.py +485 -0
  226. megadetector-5.0.0/archive/active_learning/archive/run_bk.py +247 -0
  227. megadetector-5.0.0/archive/active_learning/archive/sqlite_data_loader_bk.py +168 -0
  228. megadetector-5.0.0/archive/active_learning/data_preprocessing/crop_images_from_batch_api_detections.py +132 -0
  229. megadetector-5.0.0/archive/active_learning/data_preprocessing/crop_images_from_coco_bboxes.py +87 -0
  230. megadetector-5.0.0/archive/active_learning/data_preprocessing/prepare_AL_classification_dataset_subset.py +74 -0
  231. megadetector-5.0.0/archive/active_learning/data_preprocessing/prepare_crops_subset.py +95 -0
  232. megadetector-5.0.0/archive/active_learning/deep_learning/__init__.py +1 -0
  233. megadetector-5.0.0/archive/active_learning/deep_learning/active_learning_manager.py +51 -0
  234. megadetector-5.0.0/archive/active_learning/deep_learning/data_loader.py +159 -0
  235. megadetector-5.0.0/archive/active_learning/deep_learning/engine.py +172 -0
  236. megadetector-5.0.0/archive/active_learning/deep_learning/losses.py +54 -0
  237. megadetector-5.0.0/archive/active_learning/deep_learning/networks.py +50 -0
  238. megadetector-5.0.0/archive/active_learning/deep_learning/utils.py +319 -0
  239. megadetector-5.0.0/archive/active_learning/experiments/extract_features.py +245 -0
  240. megadetector-5.0.0/archive/active_learning/experiments/notebooks/ImageSimilarity.ipynb +658 -0
  241. megadetector-5.0.0/archive/active_learning/experiments/output/triplet_resnet50_1499_temp/anchor_img.png +0 -0
  242. megadetector-5.0.0/archive/active_learning/experiments/output/triplet_resnet50_1499_temp/img0.png +0 -0
  243. megadetector-5.0.0/archive/active_learning/experiments/output/triplet_resnet50_1499_temp/img1.png +0 -0
  244. megadetector-5.0.0/archive/active_learning/experiments/output/triplet_resnet50_1499_temp/img2.png +0 -0
  245. megadetector-5.0.0/archive/active_learning/experiments/output/triplet_resnet50_1499_temp/img3.png +0 -0
  246. megadetector-5.0.0/archive/active_learning/experiments/output/triplet_resnet50_1499_temp/img4.png +0 -0
  247. megadetector-5.0.0/archive/active_learning/experiments/output/triplet_resnet50_1499_temp/img5.png +0 -0
  248. megadetector-5.0.0/archive/active_learning/experiments/output/triplet_resnet50_1499_temp/img6.png +0 -0
  249. megadetector-5.0.0/archive/active_learning/experiments/output/triplet_resnet50_1499_temp/img7.png +0 -0
  250. megadetector-5.0.0/archive/active_learning/experiments/output/triplet_resnet50_1499_temp/img8.png +0 -0
  251. megadetector-5.0.0/archive/active_learning/experiments/output/triplet_resnet50_1499_temp/img9.png +0 -0
  252. megadetector-5.0.0/archive/active_learning/experiments/sampling_methods.py +95 -0
  253. megadetector-5.0.0/archive/active_learning/experiments/visualize_feature_maps.py +125 -0
  254. megadetector-5.0.0/archive/active_learning/labeling_tool/README.md +35 -0
  255. megadetector-5.0.0/archive/active_learning/labeling_tool/class_lists/missouricameratraps.txt +20 -0
  256. megadetector-5.0.0/archive/active_learning/labeling_tool/class_lists/wpzurbanwildlandcarnivoreproject.txt +44 -0
  257. megadetector-5.0.0/archive/active_learning/labeling_tool/labeling_tool.png +0 -0
  258. megadetector-5.0.0/archive/active_learning/labeling_tool/runapp.py +575 -0
  259. megadetector-5.0.0/archive/active_learning/labeling_tool/static/css/bootstrap.css +9030 -0
  260. megadetector-5.0.0/archive/active_learning/labeling_tool/static/css/bootstrap.min.css +7 -0
  261. megadetector-5.0.0/archive/active_learning/labeling_tool/static/html/index.html +541 -0
  262. megadetector-5.0.0/archive/active_learning/labeling_tool/static/img/placeholder.JPG +0 -0
  263. megadetector-5.0.0/archive/active_learning/labeling_tool/static/js/bootstrap.bundle.min.js +7 -0
  264. megadetector-5.0.0/archive/active_learning/labeling_tool/static/js/jquery-3.3.1.min.js +2 -0
  265. megadetector-5.0.0/archive/active_learning/labeling_tool/static/js/yall.min.js +1 -0
  266. megadetector-5.0.0/archive/active_learning/main.py +205 -0
  267. megadetector-5.0.0/archive/active_learning/overview.md +63 -0
  268. megadetector-5.0.0/archive/active_learning/run.py +236 -0
  269. megadetector-5.0.0/archive/active_learning/run_active_learning.py +136 -0
  270. megadetector-5.0.0/archive/active_learning/sampling_methods/__init__.py +14 -0
  271. megadetector-5.0.0/archive/active_learning/sampling_methods/bandit_discrete.py +125 -0
  272. megadetector-5.0.0/archive/active_learning/sampling_methods/confidence_sampling.py +60 -0
  273. megadetector-5.0.0/archive/active_learning/sampling_methods/constants.py +131 -0
  274. megadetector-5.0.0/archive/active_learning/sampling_methods/entropy_sampling.py +62 -0
  275. megadetector-5.0.0/archive/active_learning/sampling_methods/graph_density.py +92 -0
  276. megadetector-5.0.0/archive/active_learning/sampling_methods/hierarchical_clustering_AL.py +362 -0
  277. megadetector-5.0.0/archive/active_learning/sampling_methods/informative_diverse.py +101 -0
  278. megadetector-5.0.0/archive/active_learning/sampling_methods/kcenter_greedy.py +123 -0
  279. megadetector-5.0.0/archive/active_learning/sampling_methods/margin_AL.py +64 -0
  280. megadetector-5.0.0/archive/active_learning/sampling_methods/mixture_of_samplers.py +110 -0
  281. megadetector-5.0.0/archive/active_learning/sampling_methods/represent_cluster_centers.py +78 -0
  282. megadetector-5.0.0/archive/active_learning/sampling_methods/sampling_def.py +54 -0
  283. megadetector-5.0.0/archive/active_learning/sampling_methods/simulate_batch.py +261 -0
  284. megadetector-5.0.0/archive/active_learning/sampling_methods/uniform_sampling.py +61 -0
  285. megadetector-5.0.0/archive/active_learning/sampling_methods/utils/__init__.py +13 -0
  286. megadetector-5.0.0/archive/active_learning/sampling_methods/utils/tree.py +159 -0
  287. megadetector-5.0.0/archive/active_learning/sampling_methods/utils/tree_test.py +80 -0
  288. megadetector-5.0.0/archive/active_learning/sampling_methods/wrapper_sampler_def.py +50 -0
  289. megadetector-5.0.0/archive/active_learning/submit_jobs.py +30 -0
  290. megadetector-5.0.0/archive/active_learning/test_dataset.py +45 -0
  291. megadetector-5.0.0/archive/active_learning/train_embedding.py +158 -0
  292. megadetector-5.0.0/archive/classification_marcel/README.md +399 -0
  293. megadetector-5.0.0/archive/classification_marcel/TUTORIAL.md +490 -0
  294. megadetector-5.0.0/archive/classification_marcel/api_apply_classifier_single_node.py +299 -0
  295. megadetector-5.0.0/archive/classification_marcel/detect_and_predict_image.py +579 -0
  296. megadetector-5.0.0/archive/classification_marcel/environment-classifier.yml +26 -0
  297. megadetector-5.0.0/archive/classification_marcel/eval_frozen_graph.py +80 -0
  298. megadetector-5.0.0/archive/classification_marcel/eval_two_class_pr.py +127 -0
  299. megadetector-5.0.0/archive/classification_marcel/export_inference_graph_definition.py +163 -0
  300. megadetector-5.0.0/archive/classification_marcel/export_inference_graph_serengeti.sh +20 -0
  301. megadetector-5.0.0/archive/classification_marcel/freeze_graph.py +512 -0
  302. megadetector-5.0.0/archive/classification_marcel/generate_html_sample.py +165 -0
  303. megadetector-5.0.0/archive/classification_marcel/generate_sample_predictions.py +123 -0
  304. megadetector-5.0.0/archive/classification_marcel/obscured_image_classifier/generate_obscured_dataset.py +56 -0
  305. megadetector-5.0.0/archive/classification_marcel/obscured_image_classifier/train_obscured_inception_v4.sh +63 -0
  306. megadetector-5.0.0/archive/classification_marcel/predict_image.py +72 -0
  307. megadetector-5.0.0/archive/classification_marcel/sample_output/aardwolf___S2___T12___T12_R2___S2_T12_R2_PICT0590.JPG +0 -0
  308. megadetector-5.0.0/archive/classification_marcel/sample_output/aardwolf___S2___T12___T12_R2___S2_T12_R2_PICT0590.txt +7 -0
  309. megadetector-5.0.0/archive/classification_marcel/sample_output/caracal___S1___P10___P10_R1___S1_P10_R1_PICT0120.JPG +0 -0
  310. megadetector-5.0.0/archive/classification_marcel/sample_output/caracal___S1___P10___P10_R1___S1_P10_R1_PICT0120.txt +7 -0
  311. megadetector-5.0.0/archive/classification_marcel/sample_output/civet___S1___H06___H06_R3___S1_H06_R3_PICT0736_1.JPG +0 -0
  312. megadetector-5.0.0/archive/classification_marcel/sample_output/civet___S1___H06___H06_R3___S1_H06_R3_PICT0736_1.txt +7 -0
  313. megadetector-5.0.0/archive/classification_marcel/sample_output/leopard___S1___H06___H06_R4___S1_H06_R4_PICT1296_0.JPG +0 -0
  314. megadetector-5.0.0/archive/classification_marcel/sample_output/leopard___S1___H06___H06_R4___S1_H06_R4_PICT1296_0.txt +7 -0
  315. megadetector-5.0.0/archive/classification_marcel/sample_output/mongoose___S1___R11___R11_R1___S1_R11_R1_PICT0101_1.JPG +0 -0
  316. megadetector-5.0.0/archive/classification_marcel/sample_output/mongoose___S1___R11___R11_R1___S1_R11_R1_PICT0101_1.txt +7 -0
  317. megadetector-5.0.0/archive/classification_marcel/sample_output/ostrich___S6___P05___P05_R1___S6_P05_R1_IMAG0118.JPG +0 -0
  318. megadetector-5.0.0/archive/classification_marcel/sample_output/ostrich___S6___P05___P05_R1___S6_P05_R1_IMAG0118.txt +7 -0
  319. megadetector-5.0.0/archive/classification_marcel/sample_output/porcupine___S1___H06___H06_R4___S1_H06_R4_PICT1178_1.JPG +0 -0
  320. megadetector-5.0.0/archive/classification_marcel/sample_output/porcupine___S1___H06___H06_R4___S1_H06_R4_PICT1178_1.txt +7 -0
  321. megadetector-5.0.0/archive/classification_marcel/sample_output/topi___S5___T10___T10_R3___S5_T10_R3_IMAG0176_1.JPG +0 -0
  322. megadetector-5.0.0/archive/classification_marcel/sample_output/topi___S5___T10___T10_R3___S5_T10_R3_IMAG0176_1.txt +7 -0
  323. megadetector-5.0.0/archive/classification_marcel/sample_output/wildcat___S2___D03___D03_R4___S2_D03_R4_PICT0414.JPG +0 -0
  324. megadetector-5.0.0/archive/classification_marcel/sample_output/wildcat___S2___D03___D03_R4___S2_D03_R4_PICT0414.txt +7 -0
  325. megadetector-5.0.0/archive/classification_marcel/sample_output/zorilla___S2___K13___K13_R1___S2_K13_R1_PICT0664.JPG +0 -0
  326. megadetector-5.0.0/archive/classification_marcel/sample_output/zorilla___S2___K13___K13_R1___S2_K13_R1_PICT0664.txt +7 -0
  327. megadetector-5.0.0/archive/classification_marcel/tf-slim/BUILD +820 -0
  328. megadetector-5.0.0/archive/classification_marcel/tf-slim/WORKSPACE +0 -0
  329. megadetector-5.0.0/archive/classification_marcel/tf-slim/__init__.py +0 -0
  330. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/__init__.py +1 -0
  331. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/build_imagenet_data.py +704 -0
  332. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/cct.py +84 -0
  333. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/cifar10.py +98 -0
  334. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/dataset_factory.py +75 -0
  335. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/dataset_utils.py +150 -0
  336. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/download_and_convert_cifar10.py +198 -0
  337. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/download_and_convert_flowers.py +211 -0
  338. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/download_and_convert_imagenet.sh +103 -0
  339. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/download_and_convert_mnist.py +221 -0
  340. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/download_imagenet.sh +99 -0
  341. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/flowers.py +98 -0
  342. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/idfg.py +84 -0
  343. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/imagenet.py +198 -0
  344. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/imagenet_2012_validation_synset_labels.txt +50000 -0
  345. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/imagenet_lsvrc_2015_synsets.txt +1000 -0
  346. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/imagenet_metadata.txt +21842 -0
  347. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/mnist.py +98 -0
  348. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/nacti.py +84 -0
  349. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/obscured.py +84 -0
  350. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/obscured_large.py +84 -0
  351. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/preprocess_imagenet_validation_data.py +83 -0
  352. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/process_bounding_boxes.py +253 -0
  353. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/rspb.py +84 -0
  354. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/serengeti.py +86 -0
  355. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/wellington.py +84 -0
  356. megadetector-5.0.0/archive/classification_marcel/tf-slim/datasets/wiitigers.py +84 -0
  357. megadetector-5.0.0/archive/classification_marcel/tf-slim/deployment/__init__.py +1 -0
  358. megadetector-5.0.0/archive/classification_marcel/tf-slim/deployment/model_deploy.py +677 -0
  359. megadetector-5.0.0/archive/classification_marcel/tf-slim/deployment/model_deploy_test.py +572 -0
  360. megadetector-5.0.0/archive/classification_marcel/tf-slim/download_and_convert_data.py +73 -0
  361. megadetector-5.0.0/archive/classification_marcel/tf-slim/eval_image_classifier.py +197 -0
  362. megadetector-5.0.0/archive/classification_marcel/tf-slim/export_inference_graph.py +156 -0
  363. megadetector-5.0.0/archive/classification_marcel/tf-slim/export_inference_graph_test.py +44 -0
  364. megadetector-5.0.0/archive/classification_marcel/tf-slim/filter_tf_output.sh +4 -0
  365. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/__init__.py +1 -0
  366. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/alexnet.py +138 -0
  367. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/alexnet_test.py +180 -0
  368. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/cifarnet.py +117 -0
  369. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/cyclegan.py +278 -0
  370. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/cyclegan_test.py +112 -0
  371. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/dcgan.py +202 -0
  372. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/dcgan_test.py +120 -0
  373. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/i3d.py +177 -0
  374. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/i3d_test.py +149 -0
  375. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/i3d_utils.py +287 -0
  376. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/inception.py +37 -0
  377. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/inception_resnet_v2.py +406 -0
  378. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/inception_resnet_v2_test.py +334 -0
  379. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/inception_utils.py +82 -0
  380. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/inception_v1.py +329 -0
  381. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/inception_v1_test.py +265 -0
  382. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/inception_v2.py +572 -0
  383. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/inception_v2_test.py +379 -0
  384. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/inception_v3.py +579 -0
  385. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/inception_v3_test.py +346 -0
  386. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/inception_v4.py +337 -0
  387. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/inception_v4_test.py +283 -0
  388. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/lenet.py +97 -0
  389. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/mobilenet/README.md +73 -0
  390. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/mobilenet/__init__.py +0 -0
  391. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/mobilenet/conv_blocks.py +358 -0
  392. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/mobilenet/madds_top1_accuracy.png +0 -0
  393. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/mobilenet/mnet_v1_vs_v2_pixel1_latency.png +0 -0
  394. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/mobilenet/mobilenet.py +467 -0
  395. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/mobilenet/mobilenet_example.ipynb +445 -0
  396. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/mobilenet/mobilenet_v2.py +216 -0
  397. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/mobilenet/mobilenet_v2_test.py +189 -0
  398. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/mobilenet_v1.md +136 -0
  399. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/mobilenet_v1.png +0 -0
  400. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/mobilenet_v1.py +476 -0
  401. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/mobilenet_v1_eval.py +152 -0
  402. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/mobilenet_v1_test.py +534 -0
  403. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/mobilenet_v1_train.py +212 -0
  404. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/nasnet/README.md +64 -0
  405. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/nasnet/__init__.py +1 -0
  406. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/nasnet/nasnet.py +547 -0
  407. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/nasnet/nasnet_test.py +410 -0
  408. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/nasnet/nasnet_utils.py +524 -0
  409. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/nasnet/nasnet_utils_test.py +62 -0
  410. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/nasnet/pnasnet.py +280 -0
  411. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/nasnet/pnasnet_test.py +256 -0
  412. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/nets_factory.py +159 -0
  413. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/nets_factory_test.py +81 -0
  414. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/overfeat.py +131 -0
  415. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/overfeat_test.py +178 -0
  416. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/pix2pix.py +295 -0
  417. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/pix2pix_test.py +156 -0
  418. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/resnet_utils.py +275 -0
  419. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/resnet_v1.py +375 -0
  420. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/resnet_v1_test.py +555 -0
  421. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/resnet_v2.py +337 -0
  422. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/resnet_v2_test.py +475 -0
  423. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/s3dg.py +599 -0
  424. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/s3dg_test.py +150 -0
  425. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/vgg.py +302 -0
  426. megadetector-5.0.0/archive/classification_marcel/tf-slim/nets/vgg_test.py +583 -0
  427. megadetector-5.0.0/archive/classification_marcel/tf-slim/preprocessing/__init__.py +1 -0
  428. megadetector-5.0.0/archive/classification_marcel/tf-slim/preprocessing/cifarnet_preprocessing.py +128 -0
  429. megadetector-5.0.0/archive/classification_marcel/tf-slim/preprocessing/inception_preprocessing.py +318 -0
  430. megadetector-5.0.0/archive/classification_marcel/tf-slim/preprocessing/lenet_preprocessing.py +44 -0
  431. megadetector-5.0.0/archive/classification_marcel/tf-slim/preprocessing/preprocessing_factory.py +85 -0
  432. megadetector-5.0.0/archive/classification_marcel/tf-slim/preprocessing/vgg_preprocessing.py +365 -0
  433. megadetector-5.0.0/archive/classification_marcel/tf-slim/scripts/export_mobilenet.sh +132 -0
  434. megadetector-5.0.0/archive/classification_marcel/tf-slim/scripts/finetune_inception_resnet_v2_on_flowers.sh +109 -0
  435. megadetector-5.0.0/archive/classification_marcel/tf-slim/scripts/finetune_inception_v1_on_flowers.sh +104 -0
  436. megadetector-5.0.0/archive/classification_marcel/tf-slim/scripts/finetune_inception_v3_on_flowers.sh +106 -0
  437. megadetector-5.0.0/archive/classification_marcel/tf-slim/scripts/finetune_resnet_v1_50_on_flowers.sh +104 -0
  438. megadetector-5.0.0/archive/classification_marcel/tf-slim/scripts/train_cifarnet_on_cifar10.sh +64 -0
  439. megadetector-5.0.0/archive/classification_marcel/tf-slim/scripts/train_lenet_on_mnist.sh +63 -0
  440. megadetector-5.0.0/archive/classification_marcel/tf-slim/setup.py +27 -0
  441. megadetector-5.0.0/archive/classification_marcel/tf-slim/slim_walkthrough.ipynb +1141 -0
  442. megadetector-5.0.0/archive/classification_marcel/tf-slim/train_image_classifier.py +591 -0
  443. megadetector-5.0.0/archive/classification_marcel/training_scripts/eval_cct_inception_v4.sh +15 -0
  444. megadetector-5.0.0/archive/classification_marcel/training_scripts/eval_cct_mobilenet_v2.sh +14 -0
  445. megadetector-5.0.0/archive/classification_marcel/training_scripts/eval_nacti_inception_v4.sh +15 -0
  446. megadetector-5.0.0/archive/classification_marcel/training_scripts/eval_serengeti_inception_v4.sh +15 -0
  447. megadetector-5.0.0/archive/classification_marcel/training_scripts/eval_well_inception_v4.sh +14 -0
  448. megadetector-5.0.0/archive/classification_marcel/training_scripts/train_cct_inception_v4.sh +62 -0
  449. megadetector-5.0.0/archive/classification_marcel/training_scripts/train_cct_mobilenet_v2.sh +48 -0
  450. megadetector-5.0.0/archive/classification_marcel/training_scripts/train_idfg_inception_v4.sh +63 -0
  451. megadetector-5.0.0/archive/classification_marcel/training_scripts/train_nacti_inception_v4.sh +62 -0
  452. megadetector-5.0.0/archive/classification_marcel/training_scripts/train_rspb_inception_v4.sh +63 -0
  453. megadetector-5.0.0/archive/classification_marcel/training_scripts/train_serengeti_inception_v4.sh +68 -0
  454. megadetector-5.0.0/archive/classification_marcel/training_scripts/train_well_inception_v4.sh +63 -0
  455. megadetector-5.0.0/archive/classification_marcel/training_scripts/train_wiitigers_inception_v4.sh +63 -0
  456. megadetector-5.0.0/archive/classification_marcel/tutorial_images/S1_R10_R1_PICT1199_1.JPG +0 -0
  457. megadetector-5.0.0/archive/classification_marcel/tutorial_images/gazelleThomsons___S2___L12___L12_R1___S2_L12_R1_PICT2280.JPG +0 -0
  458. megadetector-5.0.0/archive/classification_marcel/tutorial_images/serengeti_class_distribution.png +0 -0
  459. megadetector-5.0.0/archive/data_management/annotations/convert_imerit_json_to_coco_json.py +392 -0
  460. megadetector-5.0.0/archive/data_management/annotations/plot_bounding_boxes.py +182 -0
  461. megadetector-5.0.0/archive/data_management/annotations/plot_imerit_annotations.py +235 -0
  462. megadetector-5.0.0/archive/data_management/annotations/utils/create_new_annotation_json.py +173 -0
  463. megadetector-5.0.0/archive/data_management/annotations/utils/filter_database.py +98 -0
  464. megadetector-5.0.0/archive/data_management/annotations/utils/find_images_for_classes.py +61 -0
  465. megadetector-5.0.0/archive/data_management/annotations/utils/get_annotation_tool_link.py +67 -0
  466. megadetector-5.0.0/archive/data_management/annotations/utils/make_ss_annotation_image_folder.py +106 -0
  467. megadetector-5.0.0/archive/data_management/make_oneclass_json.py +123 -0
  468. megadetector-5.0.0/archive/data_management/tfrecords/create_classification_tfrecords_from_json.py +81 -0
  469. megadetector-5.0.0/archive/data_management/tfrecords/make_tfrecords_cis_trans.py +147 -0
  470. megadetector-5.0.0/archive/data_management/tfrecords/make_tfrecords_from_json.py +141 -0
  471. megadetector-5.0.0/archive/data_management/tfrecords/make_tfrecords_from_vott.py +296 -0
  472. megadetector-5.0.0/archive/data_management/tfrecords/utils/eMammal_make_splits.py +131 -0
  473. megadetector-5.0.0/archive/data_management/tfrecords/utils/eMammal_make_tfrecords_train_val_test.py +123 -0
  474. megadetector-5.0.0/archive/data_management/tfrecords/utils/inspect_and_upload_tfrecords.ipynb +193 -0
  475. megadetector-5.0.0/archive/detection/detector_eval/detection_eval_mdv2_mdv3.ipynb +528 -0
  476. megadetector-5.0.0/archive/detection/detector_eval/detection_eval_utils.py +72 -0
  477. megadetector-5.0.0/archive/detection/detector_eval/evaluate_detections.py +202 -0
  478. megadetector-5.0.0/archive/detection/eval/analyze_detection.py +152 -0
  479. megadetector-5.0.0/archive/detection/eval/analyze_image_detection.py +186 -0
  480. megadetector-5.0.0/archive/detection/eval/analyze_image_detection_one_guess_per_image.py +197 -0
  481. megadetector-5.0.0/archive/detection/eval/analyze_image_detection_using_confidence.py +112 -0
  482. megadetector-5.0.0/archive/detection/eval/analyze_sequence_detection.py +210 -0
  483. megadetector-5.0.0/archive/detection/eval/analyze_sequence_detection_one_guess_per_sequence.py +220 -0
  484. megadetector-5.0.0/archive/detection/eval/analyze_sequence_detection_using_confidence.py +119 -0
  485. megadetector-5.0.0/archive/detection/eval/compare_species_detection.py +63 -0
  486. megadetector-5.0.0/archive/detection/eval/compare_species_detection_with_and_without_deer.py +77 -0
  487. megadetector-5.0.0/archive/detection/eval/detection_day_vs_night.py +43 -0
  488. megadetector-5.0.0/archive/detection/eval/detection_with_objects_images_and_sequences.py +50 -0
  489. megadetector-5.0.0/archive/detection/eval/detection_with_objects_images_and_sequences_with_confidence.py +63 -0
  490. megadetector-5.0.0/archive/detection/eval/per_location_detection.py +127 -0
  491. megadetector-5.0.0/archive/detection/eval/per_species_detection.py +143 -0
  492. megadetector-5.0.0/archive/detection/eval/util/run_eval_eMammal.sh +13 -0
  493. megadetector-5.0.0/archive/detection/eval/utils.py +114 -0
  494. megadetector-5.0.0/archive/detection/run_balanced_inference.sh +17 -0
  495. megadetector-5.0.0/archive/detection/run_eccv_train_inference.sh +17 -0
  496. megadetector-5.0.0/archive/detection/run_emammal_val_inference.sh +17 -0
  497. megadetector-5.0.0/archive/detection/run_export_model.sh +16 -0
  498. megadetector-5.0.0/archive/detection/run_inference_all.sh +37 -0
  499. megadetector-5.0.0/archive/detection/run_small_balanced_inference.sh +17 -0
  500. megadetector-5.0.0/archive/detection/run_training.sh +11 -0
  501. megadetector-5.0.0/archive/expected_output_DRAFT.json +982 -0
  502. megadetector-5.0.0/archive/generate_lila_sas_urls.py +70 -0
  503. megadetector-5.0.0/archive/manage_api_submission.md +159 -0
  504. megadetector-5.0.0/archive/manage_api_submission.py +1002 -0
  505. megadetector-5.0.0/archive/megadb/README.md +164 -0
  506. megadetector-5.0.0/archive/megadb/converters/cct_to_megadb.py +400 -0
  507. megadetector-5.0.0/archive/megadb/converters/megadb_coords_to_abs.py +149 -0
  508. megadetector-5.0.0/archive/megadb/converters/megadb_to_cct.py +210 -0
  509. megadetector-5.0.0/archive/megadb/download_images.py +335 -0
  510. megadetector-5.0.0/archive/megadb/importer_notebooks/annotation_batch_12_wcs_and_snapshot_safari.ipynb +2229 -0
  511. megadetector-5.0.0/archive/megadb/importer_notebooks/bnf_20190624and0815_round2.ipynb +1228 -0
  512. megadetector-5.0.0/archive/megadb/importer_notebooks/create_splits.ipynb +2081 -0
  513. megadetector-5.0.0/archive/megadb/importer_notebooks/example_importer.ipynb +325 -0
  514. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_IDFG_SWWLF_2019.ipynb +781 -0
  515. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_IDFG_SWWLF_2020.ipynb +1035 -0
  516. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_alka_squirrels.ipynb +575 -0
  517. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_amapa_1819.ipynb +1045 -0
  518. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_au_nt_gov_kerr.ipynb +918 -0
  519. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_auckland_doc_2019.ipynb +753 -0
  520. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_awc_202103.ipynb +716 -0
  521. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_channel_islands_tnc.ipynb +532 -0
  522. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_emammal.ipynb +908 -0
  523. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_ena24.ipynb +194 -0
  524. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_fws_butler_redrock.ipynb +488 -0
  525. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_fws_hawaii_kauai_forest_birds_a24s.ipynb +919 -0
  526. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_fws_hawaii_kauai_forest_birds_training.ipynb +450 -0
  527. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_fws_lehnen_mice.ipynb +445 -0
  528. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_island_conservation.ipynb +414 -0
  529. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_islandconservation_midway_2020.ipynb +712 -0
  530. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_islandconservation_rodents_2020.ipynb +433 -0
  531. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_parkscanada_garrow_201920_trains.ipynb +738 -0
  532. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_rspb.ipynb +205 -0
  533. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_rspb_atkinson.ipynb +491 -0
  534. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_rspb_gola_2020.ipynb +1385 -0
  535. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_saola.ipynb +703 -0
  536. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_saola_private.ipynb +696 -0
  537. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_snapshot_safari.ipynb +1039 -0
  538. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_ste_survey_a.ipynb +133 -0
  539. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_ste_survey_b.ipynb +133 -0
  540. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_sul_ross_2018.ipynb +400 -0
  541. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_sul_ross_2019_spring.ipynb +600 -0
  542. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_ubc.ipynb +355 -0
  543. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_umn_gomez.ipynb +691 -0
  544. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_uw_gardner.ipynb +714 -0
  545. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_wellington_nz.ipynb +644 -0
  546. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_wps_210101.ipynb +381 -0
  547. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_wpz_wolverine_labeled.ipynb +793 -0
  548. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_add_wpz_wolverine_unlabeled.ipynb +445 -0
  549. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_combine_sul_ross_kitfox.ipynb +771 -0
  550. megadetector-5.0.0/archive/megadb/importer_notebooks/megadb_initial_datasets.ipynb +3681 -0
  551. megadetector-5.0.0/archive/megadb/megadb_utils.py +146 -0
  552. megadetector-5.0.0/archive/megadb/query_and_upsert_examples/query_for_data.ipynb +394 -0
  553. megadetector-5.0.0/archive/megadb/query_and_upsert_examples/upsert_items.ipynb +187 -0
  554. megadetector-5.0.0/archive/megadb/query_and_upsert_examples/useful_queries.ipynb +758 -0
  555. megadetector-5.0.0/archive/megadb/run_query.py +136 -0
  556. megadetector-5.0.0/archive/megadb/schema/datasets_schema.json +102 -0
  557. megadetector-5.0.0/archive/megadb/schema/datasets_schema_check.py +54 -0
  558. megadetector-5.0.0/archive/megadb/schema/example.json +192 -0
  559. megadetector-5.0.0/archive/megadb/schema/sequences_schema.json +215 -0
  560. megadetector-5.0.0/archive/megadb/schema/sequences_schema_check.py +120 -0
  561. megadetector-5.0.0/archive/megadb/split_images.py +122 -0
  562. megadetector-5.0.0/archive/megadb/update_datasets_table_sas.ipynb +164 -0
  563. megadetector-5.0.0/archive/prepare_api_output_for_timelapse.py +200 -0
  564. megadetector-5.0.0/archive/pyproject-poetry.toml +80 -0
  565. megadetector-5.0.0/archive/runapp.py +573 -0
  566. megadetector-5.0.0/archive/yolov5_output_to_api_output.ipynb +203 -0
  567. megadetector-5.0.0/citation.cff +24 -0
  568. megadetector-5.0.0/classification/README.md +819 -0
  569. megadetector-5.0.0/classification/aggregate_classifier_probs.py +91 -0
  570. megadetector-5.0.0/classification/analyze_classifier_results.ipynb +317 -0
  571. megadetector-5.0.0/classification/analyze_failed_images.py +208 -0
  572. megadetector-5.0.0/classification/cache_batchapi_outputs.py +182 -0
  573. megadetector-5.0.0/classification/create_classification_dataset.py +601 -0
  574. megadetector-5.0.0/classification/crop_detections.py +487 -0
  575. megadetector-5.0.0/classification/csv_to_json.py +200 -0
  576. megadetector-5.0.0/classification/detect_and_crop.py +823 -0
  577. megadetector-5.0.0/classification/efficientnet/LICENSE +202 -0
  578. megadetector-5.0.0/classification/efficientnet/__init__.py +9 -0
  579. megadetector-5.0.0/classification/efficientnet/model.py +415 -0
  580. megadetector-5.0.0/classification/efficientnet/utils.py +610 -0
  581. megadetector-5.0.0/classification/evaluate_model.py +495 -0
  582. megadetector-5.0.0/classification/identify_mislabeled_candidates.py +122 -0
  583. megadetector-5.0.0/classification/inspect_dataset.ipynb +477 -0
  584. megadetector-5.0.0/classification/json_to_azcopy_list.py +54 -0
  585. megadetector-5.0.0/classification/json_validator.py +655 -0
  586. megadetector-5.0.0/classification/map_classification_categories.py +248 -0
  587. megadetector-5.0.0/classification/megaclassifier_label_spec.ipynb +647 -0
  588. megadetector-5.0.0/classification/merge_classification_detection_output.py +479 -0
  589. megadetector-5.0.0/classification/prepare_classification_script.py +189 -0
  590. megadetector-5.0.0/classification/prepare_classification_script_mc.py +226 -0
  591. megadetector-5.0.0/classification/run_classifier.py +260 -0
  592. megadetector-5.0.0/classification/save_mislabeled.py +94 -0
  593. megadetector-5.0.0/classification/train_classifier.py +816 -0
  594. megadetector-5.0.0/classification/train_classifier_tf.py +698 -0
  595. megadetector-5.0.0/classification/train_utils.py +298 -0
  596. megadetector-5.0.0/collaborations.md +101 -0
  597. megadetector-5.0.0/ct_utils.py +258 -0
  598. megadetector-5.0.0/data_management/README.md +122 -0
  599. megadetector-5.0.0/data_management/annotations/README.md +18 -0
  600. megadetector-5.0.0/data_management/annotations/add_bounding_boxes_to_json.py +265 -0
  601. megadetector-5.0.0/data_management/annotations/add_bounding_boxes_to_megadb.py +183 -0
  602. megadetector-5.0.0/data_management/annotations/annotation_constants.py +46 -0
  603. megadetector-5.0.0/data_management/cct_json_to_filename_json.py +84 -0
  604. megadetector-5.0.0/data_management/cct_json_utils.py +346 -0
  605. megadetector-5.0.0/data_management/cct_to_csv.py +133 -0
  606. megadetector-5.0.0/data_management/cct_to_md.py +163 -0
  607. megadetector-5.0.0/data_management/cct_to_wi.py +261 -0
  608. megadetector-5.0.0/data_management/coco_to_yolo.py +373 -0
  609. megadetector-5.0.0/data_management/databases/add_url_to_database.py +21 -0
  610. megadetector-5.0.0/data_management/databases/add_width_and_height_to_database.py +24 -0
  611. megadetector-5.0.0/data_management/databases/analyze_json_database.py +180 -0
  612. megadetector-5.0.0/data_management/databases/classification/convert_api_detections_to_pickle.py +38 -0
  613. megadetector-5.0.0/data_management/databases/classification/convert_json_detections_to_pickle.py +55 -0
  614. megadetector-5.0.0/data_management/databases/classification/convert_pickle_to_detection_json.py +80 -0
  615. megadetector-5.0.0/data_management/databases/classification/cropped_camera_trap_dataset_statistics.py +71 -0
  616. megadetector-5.0.0/data_management/databases/classification/make_classification_dataset.py +594 -0
  617. megadetector-5.0.0/data_management/databases/combine_coco_camera_traps_files.py +188 -0
  618. megadetector-5.0.0/data_management/databases/combine_two_json_files.py +82 -0
  619. megadetector-5.0.0/data_management/databases/integrity_check_json_db.py +433 -0
  620. megadetector-5.0.0/data_management/databases/make_detection_db_for_viewing.py +89 -0
  621. megadetector-5.0.0/data_management/databases/remove_corrupted_images_from_database.py +196 -0
  622. megadetector-5.0.0/data_management/databases/subset_json_db.py +102 -0
  623. megadetector-5.0.0/data_management/generate_crops_from_cct.py +174 -0
  624. megadetector-5.0.0/data_management/get_image_sizes.py +142 -0
  625. megadetector-5.0.0/data_management/importers/auckland_doc_test_to_json.py +370 -0
  626. megadetector-5.0.0/data_management/importers/auckland_doc_to_json.py +198 -0
  627. megadetector-5.0.0/data_management/importers/awc_to_json.py +187 -0
  628. megadetector-5.0.0/data_management/importers/bellevue_to_json.py +272 -0
  629. megadetector-5.0.0/data_management/importers/bnf_to_json.ipynb +1025 -0
  630. megadetector-5.0.0/data_management/importers/carrizo_shrubfree_2018.py +266 -0
  631. megadetector-5.0.0/data_management/importers/carrizo_trail_cam_2017.py +285 -0
  632. megadetector-5.0.0/data_management/importers/cct_field_adjustments.py +56 -0
  633. megadetector-5.0.0/data_management/importers/channel_islands_to_cct.py +911 -0
  634. megadetector-5.0.0/data_management/importers/eMammal/0_eMammal_label_stats.ipynb +621 -0
  635. megadetector-5.0.0/data_management/importers/eMammal/1_eMammal_COCO_format_database.ipynb +399 -0
  636. megadetector-5.0.0/data_management/importers/eMammal/2_check_iMerit_annotations_eMammal.ipynb +371 -0
  637. megadetector-5.0.0/data_management/importers/eMammal/3_prepare_iMerit_job.ipynb +803 -0
  638. megadetector-5.0.0/data_management/importers/eMammal/4_database_stats_and_viz.ipynb +619 -0
  639. megadetector-5.0.0/data_management/importers/eMammal/copy_and_unzip_emammal.py +179 -0
  640. megadetector-5.0.0/data_management/importers/eMammal/eMammal_helpers.py +249 -0
  641. megadetector-5.0.0/data_management/importers/eMammal/make_eMammal_json.py +223 -0
  642. megadetector-5.0.0/data_management/importers/ena24_to_json.py +273 -0
  643. megadetector-5.0.0/data_management/importers/filenames_to_json.py +383 -0
  644. megadetector-5.0.0/data_management/importers/helena_to_cct.py +280 -0
  645. megadetector-5.0.0/data_management/importers/idaho-camera-traps.py +1405 -0
  646. megadetector-5.0.0/data_management/importers/idfg_iwildcam_lila_prep.py +292 -0
  647. megadetector-5.0.0/data_management/importers/jb_csv_to_json.py +148 -0
  648. megadetector-5.0.0/data_management/importers/mcgill_to_json.py +248 -0
  649. megadetector-5.0.0/data_management/importers/missouri_to_json.py +798 -0
  650. megadetector-5.0.0/data_management/importers/nacti_fieldname_adjustments.py +77 -0
  651. megadetector-5.0.0/data_management/importers/noaa_seals_2019.py +173 -0
  652. megadetector-5.0.0/data_management/importers/pc_to_json.py +363 -0
  653. megadetector-5.0.0/data_management/importers/peaceparks_to_embedded_json.ipynb +279 -0
  654. megadetector-5.0.0/data_management/importers/plot_wni_giraffes.py +121 -0
  655. megadetector-5.0.0/data_management/importers/prepare-noaa-fish-data-for-lila.py +353 -0
  656. megadetector-5.0.0/data_management/importers/prepare_zsl_imerit.py +123 -0
  657. megadetector-5.0.0/data_management/importers/rspb_to_json.py +354 -0
  658. megadetector-5.0.0/data_management/importers/save_the_elephants_survey_A.py +318 -0
  659. megadetector-5.0.0/data_management/importers/save_the_elephants_survey_B.py +330 -0
  660. megadetector-5.0.0/data_management/importers/snapshot_safari_importer.py +756 -0
  661. megadetector-5.0.0/data_management/importers/snapshot_safari_importer_reprise.py +624 -0
  662. megadetector-5.0.0/data_management/importers/snapshot_serengeti_lila.py +1065 -0
  663. megadetector-5.0.0/data_management/importers/snapshotserengeti/make_full_SS_json.py +150 -0
  664. megadetector-5.0.0/data_management/importers/snapshotserengeti/make_per_season_SS_json.py +153 -0
  665. megadetector-5.0.0/data_management/importers/sulross_get_exif.py +57 -0
  666. megadetector-5.0.0/data_management/importers/sulross_to_json.ipynb +628 -0
  667. megadetector-5.0.0/data_management/importers/timelapse_csv_set_to_json.py +492 -0
  668. megadetector-5.0.0/data_management/importers/ubc_to_json.py +397 -0
  669. megadetector-5.0.0/data_management/importers/umn_to_json.py +505 -0
  670. megadetector-5.0.0/data_management/importers/wellington_to_json.py +220 -0
  671. megadetector-5.0.0/data_management/importers/wi_to_json.py +439 -0
  672. megadetector-5.0.0/data_management/lila/create_lila_test_set.py +153 -0
  673. megadetector-5.0.0/data_management/lila/download_lila_subset.py +347 -0
  674. megadetector-5.0.0/data_management/lila/generate_lila_per_image_labels.py +452 -0
  675. megadetector-5.0.0/data_management/lila/get_lila_category_counts.py +112 -0
  676. megadetector-5.0.0/data_management/lila/get_lila_category_list.py +162 -0
  677. megadetector-5.0.0/data_management/lila/lila_common.py +167 -0
  678. megadetector-5.0.0/data_management/md_to_coco_starter_code.py +212 -0
  679. megadetector-5.0.0/data_management/read_exif.py +489 -0
  680. megadetector-5.0.0/data_management/remove_exif.py +68 -0
  681. megadetector-5.0.0/data_management/yolo_output_to_md_output.py +323 -0
  682. megadetector-5.0.0/data_management/yolo_to_coco.py +224 -0
  683. megadetector-5.0.0/detection/README.md +119 -0
  684. megadetector-5.0.0/detection/detector_training/aml_mdv4.ipynb +657 -0
  685. megadetector-5.0.0/detection/detector_training/copy_checkpoints.py +37 -0
  686. megadetector-5.0.0/detection/detector_training/experiments/benchmark/190904/pipeline_cct-20.config +142 -0
  687. megadetector-5.0.0/detection/detector_training/experiments/benchmark/190904/pipeline_ss1.config +135 -0
  688. megadetector-5.0.0/detection/detector_training/experiments/benchmark/label_map.pbtxt +8 -0
  689. megadetector-5.0.0/detection/detector_training/experiments/eMammal_animal_human_detector/detector_label_map.pbtxt +8 -0
  690. megadetector-5.0.0/detection/detector_training/experiments/eMammal_animal_human_detector/ssdlite_mobilenetv2_coco_weights/ssdlite_mobilenetv2_coco_weights.config +211 -0
  691. megadetector-5.0.0/detection/detector_training/experiments/eMammal_animal_human_detector/ssdlite_mobilenetv2_coco_weights/ssdlite_mobilenetv2_coco_weights_eval.config +186 -0
  692. megadetector-5.0.0/detection/detector_training/experiments/megadetector_v3/190425/pipeline.config +135 -0
  693. megadetector-5.0.0/detection/detector_training/experiments/megadetector_v3/190726_retinanet/pipeline.config +188 -0
  694. megadetector-5.0.0/detection/detector_training/experiments/megadetector_v3/label_map.pbtxt +8 -0
  695. megadetector-5.0.0/detection/detector_training/experiments/megadetector_v4/label_map.pbtxt +12 -0
  696. megadetector-5.0.0/detection/detector_training/experiments/megadetector_v4/pipeline_aug.config +170 -0
  697. megadetector-5.0.0/detection/detector_training/experiments/megadetector_v4/pipeline_baseline.config +166 -0
  698. megadetector-5.0.0/detection/detector_training/experiments/megadetector_v4/pipeline_hardneg.config +171 -0
  699. megadetector-5.0.0/detection/detector_training/experiments/megadetector_v5/label_map.pbtxt +12 -0
  700. megadetector-5.0.0/detection/detector_training/experiments/megadetector_v5/pipeline_efficientdet_d2.config +212 -0
  701. megadetector-5.0.0/detection/detector_training/experiments/megadetector_v5/pipeline_efficientdet_d3.config +216 -0
  702. megadetector-5.0.0/detection/detector_training/experiments/megadetector_v5/pipeline_efficientdet_d4.config +208 -0
  703. megadetector-5.0.0/detection/detector_training/experiments/megadetector_v5/pipeline_efficientdet_d5.config +211 -0
  704. megadetector-5.0.0/detection/detector_training/experiments/megadetector_v5/pipeline_efficientdet_d7.config +213 -0
  705. megadetector-5.0.0/detection/detector_training/experiments/megadetector_v5_yolo/data_camtrap_coco_inat.yml +11 -0
  706. megadetector-5.0.0/detection/detector_training/experiments/megadetector_v5_yolo/data_camtrap_images_only.yml +10 -0
  707. megadetector-5.0.0/detection/detector_training/experiments/megadetector_v5_yolo/hyp_mosaic.yml +34 -0
  708. megadetector-5.0.0/detection/detector_training/experiments/megadetector_v5_yolo/hyp_no_mosaic.yml +34 -0
  709. megadetector-5.0.0/detection/detector_training/model_main_tf2.py +114 -0
  710. megadetector-5.0.0/detection/megadetector_colab.ipynb +365 -0
  711. megadetector-5.0.0/detection/process_video.py +499 -0
  712. megadetector-5.0.0/detection/pytorch_detector.py +211 -0
  713. megadetector-5.0.0/detection/run_detector.py +589 -0
  714. megadetector-5.0.0/detection/run_detector_batch.py +832 -0
  715. megadetector-5.0.0/detection/run_inference_with_yolov5_val.py +520 -0
  716. megadetector-5.0.0/detection/tf_detector.py +163 -0
  717. megadetector-5.0.0/detection/video_utils.py +486 -0
  718. megadetector-5.0.0/download_megadetector_timing_benchmark_set.bat +2 -0
  719. megadetector-5.0.0/environment-classifier-training.yml +55 -0
  720. megadetector-5.0.0/environment-classifier.yml +52 -0
  721. megadetector-5.0.0/environment-detector-m1.yml +38 -0
  722. megadetector-5.0.0/environment-detector-mac-nomkl.yml +37 -0
  723. megadetector-5.0.0/environment-detector-mac.yml +37 -0
  724. megadetector-5.0.0/environment-detector-opencv-headless.yml +39 -0
  725. megadetector-5.0.0/environment-detector-unpinned.yml +36 -0
  726. megadetector-5.0.0/environment-detector.yml +38 -0
  727. megadetector-5.0.0/environment.yml +37 -0
  728. megadetector-5.0.0/images/anaconda-prompt-base.jpg +0 -0
  729. megadetector-5.0.0/images/anaconda-prompt-ct.jpg +0 -0
  730. megadetector-5.0.0/images/ase-anonymous-connection.jpg +0 -0
  731. megadetector-5.0.0/images/ase-anonymous-url.jpg +0 -0
  732. megadetector-5.0.0/images/ase-connection-icon.png +0 -0
  733. megadetector-5.0.0/images/ase-connection-method.jpg +0 -0
  734. megadetector-5.0.0/images/ase-container.png +0 -0
  735. megadetector-5.0.0/images/ase-empty-container.jpg +0 -0
  736. megadetector-5.0.0/images/ase-sas-url.jpg +0 -0
  737. megadetector-5.0.0/images/channel-islands-thumb.jpg +0 -0
  738. megadetector-5.0.0/images/detector_example.jpg +0 -0
  739. megadetector-5.0.0/images/failure-examples/sample-arc-01.jpg +0 -0
  740. megadetector-5.0.0/images/failure-examples/sample-arc-02.jpg +0 -0
  741. megadetector-5.0.0/images/failure-examples/sample-arc-04.jpg +0 -0
  742. megadetector-5.0.0/images/failure-examples/sample-cfz-01.jpg +0 -0
  743. megadetector-5.0.0/images/failure-examples/sample-cfz-02.jpg +0 -0
  744. megadetector-5.0.0/images/failure-examples/sample-cfz-03.jpg +0 -0
  745. megadetector-5.0.0/images/failure-examples/sample-crocdocs-01.jpg +0 -0
  746. megadetector-5.0.0/images/failure-examples/sample-crocdocs-02.jpg +0 -0
  747. megadetector-5.0.0/images/failure-examples/sample-crocdocs-03.jpg +0 -0
  748. megadetector-5.0.0/images/failure-examples/sample-crocdocs-04.jpg +0 -0
  749. megadetector-5.0.0/images/failure-examples/sample-crocdocs-05.jpg +0 -0
  750. megadetector-5.0.0/images/failure-examples/sample-crocdocs-06.jpg +0 -0
  751. megadetector-5.0.0/images/failure-examples/sample-crocdocs-07.jpg +0 -0
  752. megadetector-5.0.0/images/failure-examples/sample-crocdocs-08.jpg +0 -0
  753. megadetector-5.0.0/images/failure-examples/sample-dzf-01.jpg +0 -0
  754. megadetector-5.0.0/images/failure-examples/sample-dzf-02.jpg +0 -0
  755. megadetector-5.0.0/images/failure-examples/sample-dzf-07.jpg +0 -0
  756. megadetector-5.0.0/images/failure-examples/sample-dzf-101.jpg +0 -0
  757. megadetector-5.0.0/images/failure-examples/sample-dzf-102.jpg +0 -0
  758. megadetector-5.0.0/images/failure-examples/sample-dzf-103.jpg +0 -0
  759. megadetector-5.0.0/images/failure-examples/sample-dzf-104.jpg +0 -0
  760. megadetector-5.0.0/images/failure-examples/sample-dzf-105.jpg +0 -0
  761. megadetector-5.0.0/images/failure-examples/sample-dzf-11.jpg +0 -0
  762. megadetector-5.0.0/images/failure-examples/sample-sdsucheeseman-01.jpg +0 -0
  763. megadetector-5.0.0/images/failure-examples/sample-sdsucheeseman-02.jpg +0 -0
  764. megadetector-5.0.0/images/failure-examples/sample-sdsucheeseman-03.jpg +0 -0
  765. megadetector-5.0.0/images/failure-examples/sample-snapshotsafari-01.jpg +0 -0
  766. megadetector-5.0.0/images/failure-examples/sample-snapshotsafari-02.jpg +0 -0
  767. megadetector-5.0.0/images/failure-examples/sample-snapshotsafari-03.jpg +0 -0
  768. megadetector-5.0.0/images/failure-examples/sample-snapshotsafari-04.jpg +0 -0
  769. megadetector-5.0.0/images/failure-examples/sample-ufldwec-01.jpg +0 -0
  770. megadetector-5.0.0/images/failure-examples/sample-ufldwec-02.jpg +0 -0
  771. megadetector-5.0.0/images/failure-examples/sample-ufldwec-03.jpg +0 -0
  772. megadetector-5.0.0/images/failure-examples/sample-usgsfcsc-03_detections.jpg +0 -0
  773. megadetector-5.0.0/images/failure-examples/sample-usgsfcsc-04_detections.jpg +0 -0
  774. megadetector-5.0.0/images/failure-examples/sample-usgsfcsc-05_detections.jpg +0 -0
  775. megadetector-5.0.0/images/idaho-camera-traps.jpg +0 -0
  776. megadetector-5.0.0/images/nacti.jpg +0 -0
  777. megadetector-5.0.0/images/orinoquia-thumb-web.jpg +0 -0
  778. megadetector-5.0.0/images/pheasant_web.jpg +0 -0
  779. megadetector-5.0.0/images/rclone_remotes.jpg +0 -0
  780. megadetector-5.0.0/images/recognitionInTimelapse.jpg +0 -0
  781. megadetector-5.0.0/images/swg-camera-traps-connected.png +0 -0
  782. megadetector-5.0.0/images/swg-camera-traps-open.jpg +0 -0
  783. megadetector-5.0.0/images/warthog_classifications.jpg +0 -0
  784. megadetector-5.0.0/md_utils/README.md +7 -0
  785. megadetector-5.0.0/md_utils/azure_utils.py +174 -0
  786. megadetector-5.0.0/md_utils/directory_listing.py +251 -0
  787. megadetector-5.0.0/md_utils/gDrive_download.py +420 -0
  788. megadetector-5.0.0/md_utils/matlab_porting_tools.py +95 -0
  789. megadetector-5.0.0/md_utils/path_utils.py +330 -0
  790. megadetector-5.0.0/md_utils/process_utils.py +110 -0
  791. megadetector-5.0.0/md_utils/sas_blob_utils.py +509 -0
  792. megadetector-5.0.0/md_utils/string_utils.py +59 -0
  793. megadetector-5.0.0/md_utils/url_utils.py +114 -0
  794. megadetector-5.0.0/md_utils/write_html_image_list.py +229 -0
  795. megadetector-5.0.0/md_visualization/README.md +14 -0
  796. megadetector-5.0.0/md_visualization/plot_utils.py +291 -0
  797. megadetector-5.0.0/md_visualization/render_images_with_thumbnails.py +275 -0
  798. megadetector-5.0.0/md_visualization/visualization_utils.py +757 -0
  799. megadetector-5.0.0/md_visualization/visualize_db.py +464 -0
  800. megadetector-5.0.0/md_visualization/visualize_detector_output.py +262 -0
  801. megadetector-5.0.0/md_visualization/visualize_incoming_annotations.py +158 -0
  802. megadetector-5.0.0/md_visualization/visualize_megadb.py +166 -0
  803. megadetector-5.0.0/megadetector-challenges.md +160 -0
  804. megadetector-5.0.0/megadetector.md +734 -0
  805. megadetector-5.0.0/pyproject.toml +58 -0
  806. megadetector-5.0.0/requirements.hatch.txt +30 -0
  807. megadetector-5.0.0/requirements.txt +45 -0
  808. megadetector-5.0.0/sandbox/README.md +3 -0
  809. megadetector-5.0.0/sandbox/aggregate_video.py +111 -0
  810. megadetector-5.0.0/sandbox/ocr_sandbox.py +482 -0
  811. megadetector-5.0.0/sandbox/rde_debug.py +59 -0
  812. megadetector-5.0.0/sandbox/separate_detections_by_size.py +128 -0
  813. megadetector-5.0.0/sandbox/snapshot-safari-pr-analysis.py +474 -0
  814. megadetector-5.0.0/sandbox/tile_images.py +125 -0
  815. megadetector-5.0.0/sandbox/torch_test.py +11 -0
  816. megadetector-5.0.0/sandbox/umn-pr-analysis.py +489 -0
  817. megadetector-5.0.0/sandbox/video_json_to_csv.py +77 -0
  818. megadetector-5.0.0/taxonomy_mapping/README.md +25 -0
  819. megadetector-5.0.0/taxonomy_mapping/lila_to_wi_supplementary_mapping_file.csv +45 -0
  820. megadetector-5.0.0/taxonomy_mapping/map_lila_categories.py +75 -0
  821. megadetector-5.0.0/taxonomy_mapping/map_lila_taxonomy_to_wi_taxonomy.py +441 -0
  822. megadetector-5.0.0/taxonomy_mapping/map_new_lila_datasets.py +146 -0
  823. megadetector-5.0.0/taxonomy_mapping/megadb_taxonomy_to_lila_taxonomy.py +176 -0
  824. megadetector-5.0.0/taxonomy_mapping/prepare_lila_taxonomy_release.py +129 -0
  825. megadetector-5.0.0/taxonomy_mapping/preview_lila_taxonomy.py +587 -0
  826. megadetector-5.0.0/taxonomy_mapping/process_species_by_dataset.py +526 -0
  827. megadetector-5.0.0/taxonomy_mapping/retrieve_sample_image.py +66 -0
  828. megadetector-5.0.0/taxonomy_mapping/simple_image_download.py +198 -0
  829. megadetector-5.0.0/taxonomy_mapping/species_by_dataset.py +310 -0
  830. megadetector-5.0.0/taxonomy_mapping/species_lookup.py +808 -0
  831. megadetector-5.0.0/taxonomy_mapping/taxonomy_csv_checker.py +139 -0
  832. megadetector-5.0.0/taxonomy_mapping/taxonomy_graph.py +320 -0
  833. megadetector-5.0.0/taxonomy_mapping/visualize_taxonomy.ipynb +281 -0
  834. megadetector-5.0.0/test_images/README.md +3 -0
  835. megadetector-5.0.0/test_images/test_images/caltech_camera_traps_58a022a4-23d2-11e8-a6a3-ec086b02610b.jpg +0 -0
  836. megadetector-5.0.0/test_images/test_images/caltech_camera_traps_5a0e37cc-23d2-11e8-a6a3-ec086b02610b.jpg +0 -0
  837. megadetector-5.0.0/test_images/test_images/channel_islands_camera_traps_loc-h500ee05127658_007_194.jpg +0 -0
  838. megadetector-5.0.0/test_images/test_images/channel_islands_camera_traps_loc-h500ee07133550_010_643.jpg +0 -0
  839. megadetector-5.0.0/test_images/test_images/ena24_7904.jpg +0 -0
  840. megadetector-5.0.0/test_images/test_images/idaho_camera_traps_loc_0044_loc_0044_im_005629.jpg +0 -0
  841. megadetector-5.0.0/test_images/test_images/idaho_camera_traps_loc_0062_loc_0062_im_004678.jpg +0 -0
  842. megadetector-5.0.0/test_images/test_images/island_conservation_camera_traps_dominicanrepublic_camara04_cam0425abril2015_dominicanrepublic_cam0425abril2015_20130824_043601_sunp5152.jpg +0 -0
  843. megadetector-5.0.0/test_images/test_images/island_conservation_camera_traps_palau_cam10a_cam10a12122018_palau_cam10a12122018_20181108_174532_rcnx1035.jpg +0 -0
  844. megadetector-5.0.0/test_images/test_images/missouri_camera_traps_Set1_1.02-Agouti_SEQ89823_SEQ89823_IMG_0002.JPG +0 -0
  845. megadetector-5.0.0/test_images/test_images/missouri_camera_traps_Set1_1.63-European_Hare_SEQ76872_SEQ76872_IMG_0007.JPG +0 -0
  846. megadetector-5.0.0/test_images/test_images/nacti_part1_sub198_FL-16_09_03_2015_FL-16_0089498.jpg +0 -0
  847. megadetector-5.0.0/test_images/test_images/nacti_part3_sub308_CA-11_0001325.jpg +0 -0
  848. megadetector-5.0.0/test_images/test_images/snapshot_camdeboo_CDB_S1_A05_A05_R2_CDB_S1_A05_R2_IMAG0084.JPG +0 -0
  849. megadetector-5.0.0/test_images/test_images/snapshot_camdeboo_CDB_S1_C07_C07_R2_CDB_S1_C07_R2_IMAG5656.JPG +0 -0
  850. megadetector-5.0.0/test_images/test_images/snapshot_enonkishu_ENO_S1_B05_B05_R2_ENO_S1_B05_R2_IMAG0624.JPG +0 -0
  851. megadetector-5.0.0/test_images/test_images/snapshot_enonkishu_ENO_S1_D05_D05_R1_ENO_S1_D05_R1_IMAG1321.JPG +0 -0
  852. megadetector-5.0.0/test_images/test_images/snapshot_karoo_KAR_S1_C04_C04_R1_KAR_S1_C04_R1_IMAG5873.JPG +0 -0
  853. megadetector-5.0.0/test_images/test_images/snapshot_karoo_KAR_S1_E03_E03_R1_KAR_S1_E03_R1_IMAG0440.JPG +0 -0
  854. megadetector-5.0.0/test_images/test_images/snapshot_kgalagadi_KGA_S1_B06_B06_R1_KGA_S1_B06_R1_IMAG2032.JPG +0 -0
  855. megadetector-5.0.0/test_images/test_images/snapshot_kgalagadi_KGA_S1_B09_B09_R1_KGA_S1_B09_R1_IMAG0634.JPG +0 -0
  856. megadetector-5.0.0/test_images/test_images/snapshot_kruger_KRU_S1_25_25_R1_KRU_S1_25_R1_IMAG0012.JPG +0 -0
  857. megadetector-5.0.0/test_images/test_images/snapshot_kruger_KRU_S1_3_3_R1_KRU_S1_3_R1_IMAG0713.JPG +0 -0
  858. megadetector-5.0.0/test_images/test_images/snapshot_mountain_zebra_MTZ_S1_E05_E05_R3_MTZ_S1_E05_R3_IMAG1169.JPG +0 -0
  859. megadetector-5.0.0/test_images/test_images/snapshot_mountain_zebra_MTZ_S1_F04_F04_R1_MTZ_S1_F04_R1_IMAG1143.JPG +0 -0
  860. megadetector-5.0.0/test_images/test_images/snapshot_serengeti_S10_D12_D12_R2_S10_D12_R2_IMAG4854.JPG +0 -0
  861. megadetector-5.0.0/test_images/test_images/snapshot_serengeti_S5_U10_U10_R4_S5_U10_R4_IMAG3595.JPG +0 -0
  862. megadetector-5.0.0/test_images/test_images/wcs_camera_traps_animals_0090_1439.jpg +0 -0
  863. megadetector-5.0.0/test_images/test_images/wcs_camera_traps_animals_0245_1477.jpg +0 -0
  864. megadetector-5.0.0/test_images/test_images/wellington_camera_traps_121016192402044a1132.JPG +0 -0
  865. megadetector-5.0.0/test_images/test_images/wellington_camera_traps_261215104310005bs372.JPG +0 -0
@@ -0,0 +1,61 @@
1
+ ################################################################################
2
+ # This .gitignore file was automatically created by Microsoft(R) Visual Studio.
3
+ ################################################################################
4
+
5
+ # Byte-compiled / optimized / DLL files
6
+ __pycache__/
7
+ *.py[cod]
8
+ *$py.class
9
+
10
+ # C extensions
11
+ *.so
12
+
13
+ # Jupyter Notebook
14
+ .ipynb_checkpoints
15
+
16
+ # mypy
17
+ .mypy_cache/
18
+ .dmypy.json
19
+ dmypy.json
20
+
21
+ # Apple directory
22
+ *.DS_Store
23
+
24
+ # IDEs
25
+ *.idea/
26
+ *.project
27
+ .spyderproject
28
+ .spyproject
29
+ .vscode
30
+
31
+ # Demo files
32
+ demo/aadconfig.py
33
+ demo/apiconfig.py
34
+ demo/CameraTrapAssets
35
+ demo/static/uploads
36
+ demo/static/results
37
+ .webassets-cache/
38
+
39
+ # CameraTrapJsonFileProcessingApp
40
+ api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/.vs/
41
+ api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/bin/
42
+ api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/obj/
43
+ api/batch_processing/postprocessing/CameraTrapJsonFileProcessingApp/packages/
44
+
45
+ # TF and PyTorch model files
46
+ *.pb
47
+ *.pt
48
+
49
+ # batch processing API config files
50
+ api_config*.py
51
+
52
+ # Other
53
+ *.pth
54
+ *.o
55
+ debug.log
56
+ *.swp
57
+
58
+ # Things created when building the sync API
59
+ yolov5
60
+ api/synchronous/api_core/animal_detection_api/detection
61
+
@@ -0,0 +1,19 @@
1
+ MIT License
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
@@ -0,0 +1,270 @@
1
+ Metadata-Version: 2.1
2
+ Name: megadetector
3
+ Version: 5.0.0
4
+ Summary: MegaDetector is an AI model that helps conservation folks spend less time doing boring things with camera trap images.
5
+ Project-URL: Homepage, https://github.com/agentmorris/MegaDetector
6
+ Project-URL: Bug Reports, https://github.com/agentmorris/MegaDetector/issues
7
+ Project-URL: Source, https://github.com/agentmorris/MegaDetector
8
+ Author-email: Your friendly neighborhood MegaDetector team <cameratraps@lila.science>
9
+ Maintainer-email: Your friendly neighborhood MegaDetector team <cameratraps@lila.science>
10
+ License: MIT License
11
+
12
+ Permission is hereby granted, free of charge, to any person obtaining a copy
13
+ of this software and associated documentation files (the "Software"), to deal
14
+ in the Software without restriction, including without limitation the rights
15
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16
+ copies of the Software, and to permit persons to whom the Software is
17
+ furnished to do so, subject to the following conditions:
18
+
19
+ The above copyright notice and this permission notice shall be included in all
20
+ copies or substantial portions of the Software.
21
+
22
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28
+ SOFTWARE.
29
+ License-File: LICENSE
30
+ Keywords: ai,camera traps,conservation,wildlife
31
+ Classifier: Development Status :: 3 - Alpha
32
+ Classifier: License :: OSI Approved :: MIT License
33
+ Classifier: Programming Language :: Python :: 3
34
+ Classifier: Programming Language :: Python :: 3.9
35
+ Requires-Python: <3.10,>=3.9
36
+ Requires-Dist: humanfriendly==10.0
37
+ Requires-Dist: jsonpickle==3.0.0
38
+ Requires-Dist: matplotlib==3.7.1
39
+ Requires-Dist: numpy==1.23.5
40
+ Requires-Dist: opencv-python==4.5.5.64
41
+ Requires-Dist: pandas==2.0.1
42
+ Requires-Dist: pillow==9.1.0
43
+ Requires-Dist: pyqtree==1.0.0
44
+ Requires-Dist: pyyaml==6.0
45
+ Requires-Dist: requests==2.29.0
46
+ Requires-Dist: scikit-learn==1.2.2
47
+ Requires-Dist: seaborn==0.12.2
48
+ Requires-Dist: tqdm==4.65.0
49
+ Description-Content-Type: text/markdown
50
+
51
+ # MegaDetector
52
+
53
+ ...helping conservation biologists spend less time doing boring things with camera trap images.
54
+
55
+ ## Table of contents
56
+
57
+ 1. [Repo overview](#repo-overview)
58
+ 2. [What's MegaDetector all about?](#whats-megadetector-all-about)
59
+ 3. [How do I get started with MegaDetector?](#how-do-i-get-started-with-megadetector)
60
+ 4. [Who is using MegaDetector?](#who-is-using-megadetector)
61
+ 5. [Repo contents](#repo-contents)
62
+ 6. [Contact](#contact)
63
+ 7. [Gratuitous camera trap picture](#gratuitous-camera-trap-picture)
64
+
65
+
66
+ ## Repo overview
67
+
68
+ This repo contains the tools for training and running [MegaDetector](megadetector.md), an object detection model that does a pretty good job finding animals, people, and vehicles (and therefore is pretty good at finding empty images) in camera trap images in a variety of terrestrial ecosystems.
69
+
70
+ The core functionality provided is:
71
+
72
+ - Training and running [MegaDetector](megadetector.md).
73
+ - Training and running some [species classifiers](classification) that are used in conjunction with MegaDetector.
74
+ - Tools to [convert](data_management) frequently-used camera trap metadata formats into a common format.
75
+ - A [batch processing API](https://github.com/agentmorris/MegaDetector/tree/main/api/batch_processing) that runs MegaDetector on large image collections, to accelerate population surveys.
76
+ - A [real-time API](https://github.com/agentmorris/MegaDetector/tree/main/api/synchronous) that runs MegaDetector (and some species classifiers) synchronously, primarily to support biosecurity applications.
77
+
78
+ MegaDetector was initially developed by the [Microsoft AI for Earth program](https://www.microsoft.com/en-us/ai/ai-for-earth); this repo is derived from the [microsoft/cameratraps](https://github.com/microsoft/cameratraps) repo and maintained by the original MegaDetector developers (who are no longer at Microsoft, but are absolutely fantastically eternally grateful to Microsoft for the investment and commitment that made MegaDetector happen).
79
+
80
+
81
+ ## What's MegaDetector all about?
82
+
83
+ [MegaDetector](megadetector.md) is an object detection model that identifies animals, people, and vehicles in camera trap images (which also makes it useful for eliminating blank images). This model is trained on several hundred thousand bounding boxes from a variety of ecosystems. Lots more information &ndash; including download links and instructions for running the model &ndash; is available in the [MegaDetector User Guide](megadetector.md).
84
+
85
+ This repo does not host the data used to train MegaDetector, but we work with our collaborators to make data and annotations available whenever possible on [lila.science](http://lila.science). See the [MegaDetector training data](megadetector.md#can-you-share-the-training-data) section to learn more about the data used to train MegaDetector.
86
+
87
+ Here's a &ldquo;teaser&rdquo; image of what MegaDetector output looks like:
88
+
89
+ ![Red bounding box on fox](images/detector_example.jpg)<br/>Image credit University of Washington.
90
+
91
+
92
+ ## How do I get started with MegaDetector?
93
+
94
+ If you're just considering the use of AI in your workflow, and you aren't even sure yet whether MegaDetector would be useful to you, we recommend reading the "[getting started with MegaDetector](collaborations.md)" page.
95
+
96
+ If you're already familiar with MegaDetector and you're ready to run it on your data (and you have some familiarity with running Python code), see the [MegaDetector User Guide](megadetector.md) for instructions on downloading and running MegaDetector.
97
+
98
+ MegaDetector is just one of many tools that aims to make conservation biologists more efficient with AI. If you want to learn about other ways to use AI to accelerate camera trap workflows, check out our of the field, affectionately titled &ldquo;[Everything I know about machine learning and camera traps](https://agentmorris.github.io/camera-trap-ml-survey/)&rdquo;.
99
+
100
+
101
+ ## Who is using MegaDetector?
102
+
103
+ We work with ecologists all over the world to help them spend less time annotating images and more time thinking about conservation. You can read a little more about how this works on our [getting started with MegaDetector](collaborations.md) page.
104
+
105
+ Here are a few of the organizations that have used MegaDetector... we're only listing organizations who (a) we know about and (b) have given us permission to refer to them here (or have posted publicly about their use of MegaDetector), so if you're using MegaDetector or other tools from this repo and would like to be added to this list, <a href="mailto:cameratraps@lila.science">email us</a>!
106
+
107
+ * [Arizona Department of Environmental Quality](http://azdeq.gov/)
108
+ * [Blackbird Environmental](https://blackbirdenv.com/)
109
+ * [Camelot](https://camelotproject.org/)
110
+ * [Canadian Parks and Wilderness Society (CPAWS) Northern Alberta Chapter](https://cpawsnab.org/)
111
+ * [Conservation X Labs](https://conservationxlabs.com/)
112
+ * [Czech University of Life Sciences Prague](https://www.czu.cz/en)
113
+ * [Dudek Camera Trap AI Image Toolkit (AIT)](https://dudek.com/services/wildlife-camera-trap-ai-image-processing-and-management/)
114
+ * [EcoLogic Consultants Ltd.](https://www.consult-ecologic.com/)
115
+ * [Estación Biológica de Doñana](http://www.ebd.csic.es/inicio)
116
+ * [Idaho Department of Fish and Game](https://idfg.idaho.gov/)
117
+ * [Island Conservation](https://www.islandconservation.org/)
118
+ * [Myall Lakes Dingo Project](https://carnivorecoexistence.info/myall-lakes-dingo-project/)
119
+ * [Point No Point Treaty Council](https://pnptc.org/)
120
+ * [Ramat Hanadiv Nature Park](https://www.ramat-hanadiv.org.il/en/)
121
+ * [SPEA (Portuguese Society for the Study of Birds)](https://spea.pt/en/)
122
+ * [Synthetaic](https://www.synthetaic.com/)
123
+ * [Taronga Conservation Society](https://taronga.org.au/)
124
+ * [The Nature Conservancy in Wyoming](https://www.nature.org/en-us/about-us/where-we-work/united-states/wyoming/)
125
+ * [TrapTagger](https://wildeyeconservation.org/trap-tagger-about/)
126
+ * [Upper Yellowstone Watershed Group](https://www.upperyellowstone.org/)
127
+
128
+ * [Applied Conservation Macro Ecology Lab](http://www.acmelab.ca/), University of Victoria
129
+ * [Banff National Park Resource Conservation](https://www.pc.gc.ca/en/pn-np/ab/banff/nature/conservation), Parks Canada
130
+ * [Blumstein Lab](https://blumsteinlab.eeb.ucla.edu/), UCLA
131
+ * [Borderlands Research Institute](https://bri.sulross.edu/), Sul Ross State University
132
+ * [Capitol Reef National Park](https://www.nps.gov/care/index.htm) / Utah Valley University
133
+ * [Center for Biodiversity and Conservation](https://www.amnh.org/research/center-for-biodiversity-conservation), American Museum of Natural History
134
+ * [Centre for Ecosystem Science](https://www.unsw.edu.au/research/), UNSW Sydney
135
+ * [Cross-Cultural Ecology Lab](https://crossculturalecology.net/), Macquarie University
136
+ * [DC Cat Count](https://hub.dccatcount.org/), led by the Humane Rescue Alliance
137
+ * [Department of Fish and Wildlife Sciences](https://www.uidaho.edu/cnr/departments/fish-and-wildlife-sciences), University of Idaho
138
+ * [Department of Wildlife Ecology and Conservation](https://wec.ifas.ufl.edu/), University of Florida
139
+ * [Ecology and Conservation of Amazonian Vertebrates Research Group](https://www.researchgate.net/lab/Fernanda-Michalski-Lab-4), Federal University of Amapá
140
+ * [Gola Forest Programma](https://www.rspb.org.uk/our-work/conservation/projects/scientific-support-for-the-gola-forest-programme/), Royal Society for the Protection of Birds (RSPB)
141
+ * [Graeme Shannon's Research Group](https://wildliferesearch.co.uk/group-1), Bangor University
142
+ * [Hamaarag](https://hamaarag.org.il/), The Steinhardt Museum of Natural History, Tel Aviv University
143
+ * [Institut des Science de la Forêt Tempérée](https://isfort.uqo.ca/) (ISFORT), Université du Québec en Outaouais
144
+ * [Lab of Dr. Bilal Habib](https://bhlab.in/about), the Wildlife Institute of India
145
+ * [Mammal Spatial Ecology and Conservation Lab](https://labs.wsu.edu/dthornton/), Washington State University
146
+ * [McLoughlin Lab in Population Ecology](http://mcloughlinlab.ca/lab/), University of Saskatchewan
147
+ * [National Wildlife Refuge System, Southwest Region](https://www.fws.gov/about/region/southwest), U.S. Fish & Wildlife Service
148
+ * [Northern Great Plains Program](https://nationalzoo.si.edu/news/restoring-americas-prairie), Smithsonian
149
+ * [Quantitative Ecology Lab](https://depts.washington.edu/sefsqel/), University of Washington
150
+ * [Santa Monica Mountains Recreation Area](https://www.nps.gov/samo/index.htm), National Park Service
151
+ * [Seattle Urban Carnivore Project](https://www.zoo.org/seattlecarnivores), Woodland Park Zoo
152
+ * [Serra dos Órgãos National Park](https://www.icmbio.gov.br/parnaserradosorgaos/), ICMBio
153
+ * [Snapshot USA](https://emammal.si.edu/snapshot-usa), Smithsonian
154
+ * [Wildlife Coexistence Lab](https://wildlife.forestry.ubc.ca/), University of British Columbia
155
+ * [Wildlife Research](https://www.dfw.state.or.us/wildlife/research/index.asp), Oregon Department of Fish and Wildlife
156
+ * [Wildlife Division](https://www.michigan.gov/dnr/about/contact/wildlife), Michigan Department of Natural Resources
157
+
158
+ * Department of Ecology, TU Berlin
159
+ * Ghost Cat Analytics
160
+ * Protected Areas Unit, Canadian Wildlife Service
161
+
162
+ * [School of Natural Sciences](https://www.utas.edu.au/natural-sciences), University of Tasmania ([story](https://www.utas.edu.au/about/news-and-stories/articles/2022/1204-innovative-camera-network-keeps-close-eye-on-tassie-wildlife))
163
+ * [Kenai National Wildlife Refuge](https://www.fws.gov/refuge/kenai), U.S. Fish & Wildlife Service ([story](https://www.peninsulaclarion.com/sports/refuge-notebook-new-technology-increases-efficiency-of-refuge-cameras/))
164
+
165
+ * [Australian Wildlife Conservancy](https://www.australianwildlife.org/) ([blog](https://www.australianwildlife.org/cutting-edge-technology-delivering-efficiency-gains-in-conservation/), [blog](https://www.australianwildlife.org/efficiency-gains-at-the-cutting-edge-of-technology/))
166
+ * [Felidae Conservation Fund](https://felidaefund.org/) ([WildePod platform](https://wildepod.org/)) ([blog post](https://abhaykashyap.com/blog/ai-powered-camera-trap-image-annotation-system/))
167
+ * [Alberta Biodiversity Monitoring Institute (ABMI)](https://www.abmi.ca/home.html) ([WildTrax platform](https://www.wildtrax.ca/)) ([blog post](https://wildcams.ca/blog/the-abmi-visits-the-zoo/))
168
+ * [Shan Shui Conservation Center](http://en.shanshui.org/) ([blog post](https://mp.weixin.qq.com/s/iOIQF3ckj0-rEG4yJgerYw?fbclid=IwAR0alwiWbe3udIcFvqqwm7y5qgr9hZpjr871FZIa-ErGUukZ7yJ3ZhgCevs)) ([translated blog post](https://mp-weixin-qq-com.translate.goog/s/iOIQF3ckj0-rEG4yJgerYw?fbclid=IwAR0alwiWbe3udIcFvqqwm7y5qgr9hZpjr871FZIa-ErGUukZ7yJ3ZhgCevs&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp))
169
+ * [Irvine Ranch Conservancy](http://www.irconservancy.org/) ([story](https://www.ocregister.com/2022/03/30/ai-software-is-helping-researchers-focus-on-learning-about-ocs-wild-animals/))
170
+ * [Wildlife Protection Solutions](https://wildlifeprotectionsolutions.org/) ([story](https://customers.microsoft.com/en-us/story/1384184517929343083-wildlife-protection-solutions-nonprofit-ai-for-earth), [story](https://www.enterpriseai.news/2023/02/20/ai-helps-wildlife-protection-solutions-safeguard-endangered-species/))
171
+
172
+ * [Road Ecology Center](https://roadecology.ucdavis.edu/), University of California, Davis ([Wildlife Observer Network platform](https://wildlifeobserver.net/))
173
+ * [The Nature Conservancy in California](https://www.nature.org/en-us/about-us/where-we-work/united-states/california/) ([Animl platform](https://github.com/tnc-ca-geo/animl-frontend))
174
+ * [San Diego Zoo Wildlife Alliance](https://science.sandiegozoo.org/) ([Animl R package](https://github.com/conservationtechlab/animl))
175
+
176
+
177
+ ## Repo contents
178
+
179
+ This repo is organized into the following folders...
180
+
181
+
182
+ ### api
183
+
184
+ Code for hosting our models as an API, either for synchronous operation (i.e., for real-time inference) or as a batch process (for large biodiversity surveys). Common operations one might do after running MegaDetector &ndash; e.g. [generating preview pages to summarize your results](https://github.com/agentmorris/MegaDetector/blob/main/api/batch_processing/postprocessing/postprocess_batch_results.py), [separating images into different folders based on AI results](https://github.com/agentmorris/MegaDetector/blob/main/api/batch_processing/postprocessing/separate_detections_into_folders.py), or [converting results to a different format](https://github.com/agentmorris/MegaDetector/blob/main/api/batch_processing/postprocessing/convert_output_format.py) &ndash; also live in this folder, within the [api/batch_processing/postprocessing](https://github.com/agentmorris/MegaDetector/tree/main/api/batch_processing/postprocessing) folder.
185
+
186
+
187
+ ### archive
188
+
189
+ Old code that we didn't <i>quite</i> want to delete, but is basically obsolete.
190
+
191
+
192
+ ### classification
193
+
194
+ Experimental code for training species classifiers on new data sets, generally trained on MegaDetector crops. Currently the main pipeline described in this folder relies on a large database of labeled images that is not publicly available; therefore, this folder is not yet set up to facilitate training of your own classifiers. However, it is useful for <i>users</i> of the classifiers that we train, and contains some useful starting points if you are going to take a "DIY" approach to training classifiers on cropped images.
195
+
196
+ All that said, here's another "teaser image" of what you get at the end of training and running a classifier:
197
+
198
+ <img src="images/warthog_classifications.jpg" width="700"><br/>Image credit University of Minnesota, from the Snapshot Safari program.
199
+
200
+
201
+ ### data_management
202
+
203
+ Code for:
204
+
205
+ * Converting frequently-used metadata formats to [COCO Camera Traps](https://github.com/agentmorris/MegaDetector/blob/main/data_management/README.md#coco-cameratraps-format) format
206
+ * Converting the output of AI models (especially [YOLOv5](https://github.com/agentmorris/MegaDetector/blob/main/api/batch_processing/postprocessing/convert_output_format.py)) to the format used for AI results throughout this repo
207
+ * Creating, visualizing, and editing COCO Camera Traps .json databases
208
+
209
+
210
+ ### detection
211
+
212
+ Code for training, running, and evaluating MegaDetector.
213
+
214
+
215
+ ### images
216
+
217
+ Media used in documentation.
218
+
219
+
220
+ ### md_utils
221
+
222
+ Small utility functions for string manipulation, filename manipulation, downloading files from URLs, etc. Mostly adapted from the [ai4eutils](https://github.com/microsoft/ai4eutils) repo.
223
+
224
+
225
+ ### md_visualization
226
+
227
+ Shared tools for visualizing images with ground truth and/or predicted annotations.
228
+
229
+
230
+ ### sandbox
231
+
232
+ Random things that don't fit in any other directory, but aren't quite deprecated. Mostly postprocessing scripts that were built for a single use case but could potentially be useful in the future.
233
+
234
+
235
+ ### taxonomy-mapping
236
+
237
+ Code to facilitate mapping data-set-specific category names (e.g. "lion", which means very different things in Idaho vs. South Africa) to a standard taxonomy.
238
+
239
+
240
+ ### test_images
241
+
242
+ A handful of images from [LILA](https://lila.science) that facilitate testing and debugging.
243
+
244
+
245
+ ## Contact
246
+
247
+ For questions about this repo, contact [cameratraps@lila.science](mailto:cameratraps@lila.science).
248
+
249
+ You can also chat with us and the broader camera trap AI community on the [AI for Conservation forum at WILDLABS](https://wildlabs.net/groups/ai-conservation) or the [AI for Conservation Slack group](https://aiforconservation.slack.com).
250
+
251
+
252
+ ## Gratuitous camera trap picture
253
+
254
+ ![Bird flying above water](images/nacti.jpg)<br/>Image credit USDA, from the [NACTI](http://lila.science/datasets/nacti) data set.
255
+
256
+ You will find lots more gratuitous camera trap pictures sprinkled about this repo. It's like a scavenger hunt.
257
+
258
+
259
+ ## License
260
+
261
+ This repository is licensed with the [MIT license](https://opensource.org/license/mit/).
262
+
263
+ Code written on or before April 28, 2023 is [copyright Microsoft](https://github.com/Microsoft/dotnet/blob/main/LICENSE).
264
+
265
+
266
+ ## Contributing
267
+
268
+ This project welcomes contributions, as pull requests, issues, or suggestions by [email](mailto:cameratraps@lila.science). We have a [list](https://github.com/agentmorris/MegaDetector/issues/84) of issues that we're hoping to address, many of which would be good starting points for new contributors. We also depend on other open-source tools that help users run MegaDetector (e.g. [EcoAssist](https://github.com/PetervanLunteren/EcoAssist) and [CamTrap Detector](https://github.com/bencevans/camtrap-detector)) and work with MegaDetector results (e.g. [Timelapse](https://github.com/saulgreenberg/Timelapse)); if you are looking to get involved in GUI development, reach out to the developers of those tools as well!
269
+
270
+ If you are interesting in getting involved in the conservation technology space, and MegaDetector just happens to be the first page you landed on, and none of our open issues are getting you fired up, don't fret! Head over to the [WILDLABS discussion forums](https://wildlabs.net/discussions) and let the community know you're a developer looking to get involved. Someone needs your help!
@@ -0,0 +1,220 @@
1
+ # MegaDetector
2
+
3
+ ...helping conservation biologists spend less time doing boring things with camera trap images.
4
+
5
+ ## Table of contents
6
+
7
+ 1. [Repo overview](#repo-overview)
8
+ 2. [What's MegaDetector all about?](#whats-megadetector-all-about)
9
+ 3. [How do I get started with MegaDetector?](#how-do-i-get-started-with-megadetector)
10
+ 4. [Who is using MegaDetector?](#who-is-using-megadetector)
11
+ 5. [Repo contents](#repo-contents)
12
+ 6. [Contact](#contact)
13
+ 7. [Gratuitous camera trap picture](#gratuitous-camera-trap-picture)
14
+
15
+
16
+ ## Repo overview
17
+
18
+ This repo contains the tools for training and running [MegaDetector](megadetector.md), an object detection model that does a pretty good job finding animals, people, and vehicles (and therefore is pretty good at finding empty images) in camera trap images in a variety of terrestrial ecosystems.
19
+
20
+ The core functionality provided is:
21
+
22
+ - Training and running [MegaDetector](megadetector.md).
23
+ - Training and running some [species classifiers](classification) that are used in conjunction with MegaDetector.
24
+ - Tools to [convert](data_management) frequently-used camera trap metadata formats into a common format.
25
+ - A [batch processing API](https://github.com/agentmorris/MegaDetector/tree/main/api/batch_processing) that runs MegaDetector on large image collections, to accelerate population surveys.
26
+ - A [real-time API](https://github.com/agentmorris/MegaDetector/tree/main/api/synchronous) that runs MegaDetector (and some species classifiers) synchronously, primarily to support biosecurity applications.
27
+
28
+ MegaDetector was initially developed by the [Microsoft AI for Earth program](https://www.microsoft.com/en-us/ai/ai-for-earth); this repo is derived from the [microsoft/cameratraps](https://github.com/microsoft/cameratraps) repo and maintained by the original MegaDetector developers (who are no longer at Microsoft, but are absolutely fantastically eternally grateful to Microsoft for the investment and commitment that made MegaDetector happen).
29
+
30
+
31
+ ## What's MegaDetector all about?
32
+
33
+ [MegaDetector](megadetector.md) is an object detection model that identifies animals, people, and vehicles in camera trap images (which also makes it useful for eliminating blank images). This model is trained on several hundred thousand bounding boxes from a variety of ecosystems. Lots more information &ndash; including download links and instructions for running the model &ndash; is available in the [MegaDetector User Guide](megadetector.md).
34
+
35
+ This repo does not host the data used to train MegaDetector, but we work with our collaborators to make data and annotations available whenever possible on [lila.science](http://lila.science). See the [MegaDetector training data](megadetector.md#can-you-share-the-training-data) section to learn more about the data used to train MegaDetector.
36
+
37
+ Here's a &ldquo;teaser&rdquo; image of what MegaDetector output looks like:
38
+
39
+ ![Red bounding box on fox](images/detector_example.jpg)<br/>Image credit University of Washington.
40
+
41
+
42
+ ## How do I get started with MegaDetector?
43
+
44
+ If you're just considering the use of AI in your workflow, and you aren't even sure yet whether MegaDetector would be useful to you, we recommend reading the "[getting started with MegaDetector](collaborations.md)" page.
45
+
46
+ If you're already familiar with MegaDetector and you're ready to run it on your data (and you have some familiarity with running Python code), see the [MegaDetector User Guide](megadetector.md) for instructions on downloading and running MegaDetector.
47
+
48
+ MegaDetector is just one of many tools that aims to make conservation biologists more efficient with AI. If you want to learn about other ways to use AI to accelerate camera trap workflows, check out our of the field, affectionately titled &ldquo;[Everything I know about machine learning and camera traps](https://agentmorris.github.io/camera-trap-ml-survey/)&rdquo;.
49
+
50
+
51
+ ## Who is using MegaDetector?
52
+
53
+ We work with ecologists all over the world to help them spend less time annotating images and more time thinking about conservation. You can read a little more about how this works on our [getting started with MegaDetector](collaborations.md) page.
54
+
55
+ Here are a few of the organizations that have used MegaDetector... we're only listing organizations who (a) we know about and (b) have given us permission to refer to them here (or have posted publicly about their use of MegaDetector), so if you're using MegaDetector or other tools from this repo and would like to be added to this list, <a href="mailto:cameratraps@lila.science">email us</a>!
56
+
57
+ * [Arizona Department of Environmental Quality](http://azdeq.gov/)
58
+ * [Blackbird Environmental](https://blackbirdenv.com/)
59
+ * [Camelot](https://camelotproject.org/)
60
+ * [Canadian Parks and Wilderness Society (CPAWS) Northern Alberta Chapter](https://cpawsnab.org/)
61
+ * [Conservation X Labs](https://conservationxlabs.com/)
62
+ * [Czech University of Life Sciences Prague](https://www.czu.cz/en)
63
+ * [Dudek Camera Trap AI Image Toolkit (AIT)](https://dudek.com/services/wildlife-camera-trap-ai-image-processing-and-management/)
64
+ * [EcoLogic Consultants Ltd.](https://www.consult-ecologic.com/)
65
+ * [Estación Biológica de Doñana](http://www.ebd.csic.es/inicio)
66
+ * [Idaho Department of Fish and Game](https://idfg.idaho.gov/)
67
+ * [Island Conservation](https://www.islandconservation.org/)
68
+ * [Myall Lakes Dingo Project](https://carnivorecoexistence.info/myall-lakes-dingo-project/)
69
+ * [Point No Point Treaty Council](https://pnptc.org/)
70
+ * [Ramat Hanadiv Nature Park](https://www.ramat-hanadiv.org.il/en/)
71
+ * [SPEA (Portuguese Society for the Study of Birds)](https://spea.pt/en/)
72
+ * [Synthetaic](https://www.synthetaic.com/)
73
+ * [Taronga Conservation Society](https://taronga.org.au/)
74
+ * [The Nature Conservancy in Wyoming](https://www.nature.org/en-us/about-us/where-we-work/united-states/wyoming/)
75
+ * [TrapTagger](https://wildeyeconservation.org/trap-tagger-about/)
76
+ * [Upper Yellowstone Watershed Group](https://www.upperyellowstone.org/)
77
+
78
+ * [Applied Conservation Macro Ecology Lab](http://www.acmelab.ca/), University of Victoria
79
+ * [Banff National Park Resource Conservation](https://www.pc.gc.ca/en/pn-np/ab/banff/nature/conservation), Parks Canada
80
+ * [Blumstein Lab](https://blumsteinlab.eeb.ucla.edu/), UCLA
81
+ * [Borderlands Research Institute](https://bri.sulross.edu/), Sul Ross State University
82
+ * [Capitol Reef National Park](https://www.nps.gov/care/index.htm) / Utah Valley University
83
+ * [Center for Biodiversity and Conservation](https://www.amnh.org/research/center-for-biodiversity-conservation), American Museum of Natural History
84
+ * [Centre for Ecosystem Science](https://www.unsw.edu.au/research/), UNSW Sydney
85
+ * [Cross-Cultural Ecology Lab](https://crossculturalecology.net/), Macquarie University
86
+ * [DC Cat Count](https://hub.dccatcount.org/), led by the Humane Rescue Alliance
87
+ * [Department of Fish and Wildlife Sciences](https://www.uidaho.edu/cnr/departments/fish-and-wildlife-sciences), University of Idaho
88
+ * [Department of Wildlife Ecology and Conservation](https://wec.ifas.ufl.edu/), University of Florida
89
+ * [Ecology and Conservation of Amazonian Vertebrates Research Group](https://www.researchgate.net/lab/Fernanda-Michalski-Lab-4), Federal University of Amapá
90
+ * [Gola Forest Programma](https://www.rspb.org.uk/our-work/conservation/projects/scientific-support-for-the-gola-forest-programme/), Royal Society for the Protection of Birds (RSPB)
91
+ * [Graeme Shannon's Research Group](https://wildliferesearch.co.uk/group-1), Bangor University
92
+ * [Hamaarag](https://hamaarag.org.il/), The Steinhardt Museum of Natural History, Tel Aviv University
93
+ * [Institut des Science de la Forêt Tempérée](https://isfort.uqo.ca/) (ISFORT), Université du Québec en Outaouais
94
+ * [Lab of Dr. Bilal Habib](https://bhlab.in/about), the Wildlife Institute of India
95
+ * [Mammal Spatial Ecology and Conservation Lab](https://labs.wsu.edu/dthornton/), Washington State University
96
+ * [McLoughlin Lab in Population Ecology](http://mcloughlinlab.ca/lab/), University of Saskatchewan
97
+ * [National Wildlife Refuge System, Southwest Region](https://www.fws.gov/about/region/southwest), U.S. Fish & Wildlife Service
98
+ * [Northern Great Plains Program](https://nationalzoo.si.edu/news/restoring-americas-prairie), Smithsonian
99
+ * [Quantitative Ecology Lab](https://depts.washington.edu/sefsqel/), University of Washington
100
+ * [Santa Monica Mountains Recreation Area](https://www.nps.gov/samo/index.htm), National Park Service
101
+ * [Seattle Urban Carnivore Project](https://www.zoo.org/seattlecarnivores), Woodland Park Zoo
102
+ * [Serra dos Órgãos National Park](https://www.icmbio.gov.br/parnaserradosorgaos/), ICMBio
103
+ * [Snapshot USA](https://emammal.si.edu/snapshot-usa), Smithsonian
104
+ * [Wildlife Coexistence Lab](https://wildlife.forestry.ubc.ca/), University of British Columbia
105
+ * [Wildlife Research](https://www.dfw.state.or.us/wildlife/research/index.asp), Oregon Department of Fish and Wildlife
106
+ * [Wildlife Division](https://www.michigan.gov/dnr/about/contact/wildlife), Michigan Department of Natural Resources
107
+
108
+ * Department of Ecology, TU Berlin
109
+ * Ghost Cat Analytics
110
+ * Protected Areas Unit, Canadian Wildlife Service
111
+
112
+ * [School of Natural Sciences](https://www.utas.edu.au/natural-sciences), University of Tasmania ([story](https://www.utas.edu.au/about/news-and-stories/articles/2022/1204-innovative-camera-network-keeps-close-eye-on-tassie-wildlife))
113
+ * [Kenai National Wildlife Refuge](https://www.fws.gov/refuge/kenai), U.S. Fish & Wildlife Service ([story](https://www.peninsulaclarion.com/sports/refuge-notebook-new-technology-increases-efficiency-of-refuge-cameras/))
114
+
115
+ * [Australian Wildlife Conservancy](https://www.australianwildlife.org/) ([blog](https://www.australianwildlife.org/cutting-edge-technology-delivering-efficiency-gains-in-conservation/), [blog](https://www.australianwildlife.org/efficiency-gains-at-the-cutting-edge-of-technology/))
116
+ * [Felidae Conservation Fund](https://felidaefund.org/) ([WildePod platform](https://wildepod.org/)) ([blog post](https://abhaykashyap.com/blog/ai-powered-camera-trap-image-annotation-system/))
117
+ * [Alberta Biodiversity Monitoring Institute (ABMI)](https://www.abmi.ca/home.html) ([WildTrax platform](https://www.wildtrax.ca/)) ([blog post](https://wildcams.ca/blog/the-abmi-visits-the-zoo/))
118
+ * [Shan Shui Conservation Center](http://en.shanshui.org/) ([blog post](https://mp.weixin.qq.com/s/iOIQF3ckj0-rEG4yJgerYw?fbclid=IwAR0alwiWbe3udIcFvqqwm7y5qgr9hZpjr871FZIa-ErGUukZ7yJ3ZhgCevs)) ([translated blog post](https://mp-weixin-qq-com.translate.goog/s/iOIQF3ckj0-rEG4yJgerYw?fbclid=IwAR0alwiWbe3udIcFvqqwm7y5qgr9hZpjr871FZIa-ErGUukZ7yJ3ZhgCevs&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp))
119
+ * [Irvine Ranch Conservancy](http://www.irconservancy.org/) ([story](https://www.ocregister.com/2022/03/30/ai-software-is-helping-researchers-focus-on-learning-about-ocs-wild-animals/))
120
+ * [Wildlife Protection Solutions](https://wildlifeprotectionsolutions.org/) ([story](https://customers.microsoft.com/en-us/story/1384184517929343083-wildlife-protection-solutions-nonprofit-ai-for-earth), [story](https://www.enterpriseai.news/2023/02/20/ai-helps-wildlife-protection-solutions-safeguard-endangered-species/))
121
+
122
+ * [Road Ecology Center](https://roadecology.ucdavis.edu/), University of California, Davis ([Wildlife Observer Network platform](https://wildlifeobserver.net/))
123
+ * [The Nature Conservancy in California](https://www.nature.org/en-us/about-us/where-we-work/united-states/california/) ([Animl platform](https://github.com/tnc-ca-geo/animl-frontend))
124
+ * [San Diego Zoo Wildlife Alliance](https://science.sandiegozoo.org/) ([Animl R package](https://github.com/conservationtechlab/animl))
125
+
126
+
127
+ ## Repo contents
128
+
129
+ This repo is organized into the following folders...
130
+
131
+
132
+ ### api
133
+
134
+ Code for hosting our models as an API, either for synchronous operation (i.e., for real-time inference) or as a batch process (for large biodiversity surveys). Common operations one might do after running MegaDetector &ndash; e.g. [generating preview pages to summarize your results](https://github.com/agentmorris/MegaDetector/blob/main/api/batch_processing/postprocessing/postprocess_batch_results.py), [separating images into different folders based on AI results](https://github.com/agentmorris/MegaDetector/blob/main/api/batch_processing/postprocessing/separate_detections_into_folders.py), or [converting results to a different format](https://github.com/agentmorris/MegaDetector/blob/main/api/batch_processing/postprocessing/convert_output_format.py) &ndash; also live in this folder, within the [api/batch_processing/postprocessing](https://github.com/agentmorris/MegaDetector/tree/main/api/batch_processing/postprocessing) folder.
135
+
136
+
137
+ ### archive
138
+
139
+ Old code that we didn't <i>quite</i> want to delete, but is basically obsolete.
140
+
141
+
142
+ ### classification
143
+
144
+ Experimental code for training species classifiers on new data sets, generally trained on MegaDetector crops. Currently the main pipeline described in this folder relies on a large database of labeled images that is not publicly available; therefore, this folder is not yet set up to facilitate training of your own classifiers. However, it is useful for <i>users</i> of the classifiers that we train, and contains some useful starting points if you are going to take a "DIY" approach to training classifiers on cropped images.
145
+
146
+ All that said, here's another "teaser image" of what you get at the end of training and running a classifier:
147
+
148
+ <img src="images/warthog_classifications.jpg" width="700"><br/>Image credit University of Minnesota, from the Snapshot Safari program.
149
+
150
+
151
+ ### data_management
152
+
153
+ Code for:
154
+
155
+ * Converting frequently-used metadata formats to [COCO Camera Traps](https://github.com/agentmorris/MegaDetector/blob/main/data_management/README.md#coco-cameratraps-format) format
156
+ * Converting the output of AI models (especially [YOLOv5](https://github.com/agentmorris/MegaDetector/blob/main/api/batch_processing/postprocessing/convert_output_format.py)) to the format used for AI results throughout this repo
157
+ * Creating, visualizing, and editing COCO Camera Traps .json databases
158
+
159
+
160
+ ### detection
161
+
162
+ Code for training, running, and evaluating MegaDetector.
163
+
164
+
165
+ ### images
166
+
167
+ Media used in documentation.
168
+
169
+
170
+ ### md_utils
171
+
172
+ Small utility functions for string manipulation, filename manipulation, downloading files from URLs, etc. Mostly adapted from the [ai4eutils](https://github.com/microsoft/ai4eutils) repo.
173
+
174
+
175
+ ### md_visualization
176
+
177
+ Shared tools for visualizing images with ground truth and/or predicted annotations.
178
+
179
+
180
+ ### sandbox
181
+
182
+ Random things that don't fit in any other directory, but aren't quite deprecated. Mostly postprocessing scripts that were built for a single use case but could potentially be useful in the future.
183
+
184
+
185
+ ### taxonomy-mapping
186
+
187
+ Code to facilitate mapping data-set-specific category names (e.g. "lion", which means very different things in Idaho vs. South Africa) to a standard taxonomy.
188
+
189
+
190
+ ### test_images
191
+
192
+ A handful of images from [LILA](https://lila.science) that facilitate testing and debugging.
193
+
194
+
195
+ ## Contact
196
+
197
+ For questions about this repo, contact [cameratraps@lila.science](mailto:cameratraps@lila.science).
198
+
199
+ You can also chat with us and the broader camera trap AI community on the [AI for Conservation forum at WILDLABS](https://wildlabs.net/groups/ai-conservation) or the [AI for Conservation Slack group](https://aiforconservation.slack.com).
200
+
201
+
202
+ ## Gratuitous camera trap picture
203
+
204
+ ![Bird flying above water](images/nacti.jpg)<br/>Image credit USDA, from the [NACTI](http://lila.science/datasets/nacti) data set.
205
+
206
+ You will find lots more gratuitous camera trap pictures sprinkled about this repo. It's like a scavenger hunt.
207
+
208
+
209
+ ## License
210
+
211
+ This repository is licensed with the [MIT license](https://opensource.org/license/mit/).
212
+
213
+ Code written on or before April 28, 2023 is [copyright Microsoft](https://github.com/Microsoft/dotnet/blob/main/LICENSE).
214
+
215
+
216
+ ## Contributing
217
+
218
+ This project welcomes contributions, as pull requests, issues, or suggestions by [email](mailto:cameratraps@lila.science). We have a [list](https://github.com/agentmorris/MegaDetector/issues/84) of issues that we're hoping to address, many of which would be good starting points for new contributors. We also depend on other open-source tools that help users run MegaDetector (e.g. [EcoAssist](https://github.com/PetervanLunteren/EcoAssist) and [CamTrap Detector](https://github.com/bencevans/camtrap-detector)) and work with MegaDetector results (e.g. [Timelapse](https://github.com/saulgreenberg/Timelapse)); if you are looking to get involved in GUI development, reach out to the developers of those tools as well!
219
+
220
+ If you are interesting in getting involved in the conservation technology space, and MegaDetector just happens to be the first page you landed on, and none of our open issues are getting you fired up, don't fret! Head over to the [WILDLABS discussion forums](https://wildlabs.net/discussions) and let the community know you're a developer looking to get involved. Someone needs your help!
File without changes
@@ -0,0 +1,22 @@
1
+ # MegaDetector APIs
2
+
3
+ Though many users run MegaDetector locally, we also package MegaDetector and associated inference scripts into two APIs that can process camera trap images in a variety of scenarios. This folder contains the source code of the APIs, documentation on how to set them up, and tools for working with the output they produce. We don't currently operate any public API instances.
4
+
5
+
6
+ ### Synchronous API
7
+
8
+ This API is intended for real-time scenarios where a small number of images are processed at a time and latency is a priority. See documentation [here](synchronous).
9
+
10
+
11
+ ### Batch processing API
12
+
13
+ This API runs MegaDetector on lots of images (typically millions) and distributes the work over potentially many nodes using [Azure Batch](https://azure.microsoft.com/en-us/services/batch/). See documentation [here](batch_processing).
14
+
15
+ The [batch_processing](batch_processing) folder also contains lots of postprocessing scripts (results preview, format conversion, etc.) that were originally used with batch API output, but are now used almost exclusively with local inference output (from [run_detector_batch.py](https://github.com/agentmorris/MegaDetector/blob/main/detection/run_detector_batch.py)), which uses the same output format.
16
+
17
+
18
+ ### Gratuitous camera trap picture
19
+
20
+ ![cat in camera trap](../images/orinoquia-thumb-web.jpg)<br/>Image credit University of Minnesota, from the [Orinoquía Camera Traps](http://lila.science/datasets/orinoquia-camera-traps/) data set.
21
+
22
+