megadetector 5.0.7__tar.gz → 5.0.9__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.

Potentially problematic release.


This version of megadetector might be problematic. Click here for more details.

Files changed (251) hide show
  1. {megadetector-5.0.7/megadetector.egg-info → megadetector-5.0.9}/PKG-INFO +21 -17
  2. {megadetector-5.0.7 → megadetector-5.0.9}/README-package.md +19 -16
  3. {megadetector-5.0.7 → megadetector-5.0.9}/README.md +38 -33
  4. megadetector-5.0.9/api/__init__.py +0 -0
  5. megadetector-5.0.9/api/batch_processing/__init__.py +0 -0
  6. megadetector-5.0.9/api/batch_processing/api_core/__init__.py +0 -0
  7. megadetector-5.0.9/api/batch_processing/api_core/batch_service/__init__.py +0 -0
  8. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/api_core/batch_service/score.py +0 -1
  9. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/api_core/server_job_status_table.py +0 -1
  10. megadetector-5.0.9/api/batch_processing/api_core_support/__init__.py +0 -0
  11. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/api_core_support/aggregate_results_manually.py +0 -1
  12. megadetector-5.0.9/api/batch_processing/api_support/__init__.py +0 -0
  13. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/api_support/summarize_daily_activity.py +0 -1
  14. megadetector-5.0.9/api/batch_processing/data_preparation/__init__.py +0 -0
  15. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/data_preparation/manage_local_batch.py +93 -79
  16. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/data_preparation/manage_video_batch.py +8 -8
  17. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/integration/digiKam/xmp_integration.py +0 -1
  18. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/integration/eMammal/test_scripts/push_annotations_to_emammal.py +0 -1
  19. megadetector-5.0.9/api/batch_processing/postprocessing/__init__.py +0 -0
  20. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/postprocessing/add_max_conf.py +12 -12
  21. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/postprocessing/categorize_detections_by_size.py +32 -14
  22. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/postprocessing/combine_api_outputs.py +69 -55
  23. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/postprocessing/compare_batch_results.py +114 -44
  24. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/postprocessing/convert_output_format.py +62 -19
  25. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/postprocessing/load_api_results.py +17 -20
  26. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/postprocessing/md_to_coco.py +31 -21
  27. megadetector-5.0.9/api/batch_processing/postprocessing/md_to_labelme.py +330 -0
  28. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/postprocessing/merge_detections.py +40 -15
  29. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/postprocessing/postprocess_batch_results.py +270 -186
  30. megadetector-5.0.9/api/batch_processing/postprocessing/remap_detection_categories.py +170 -0
  31. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/postprocessing/render_detection_confusion_matrix.py +75 -39
  32. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/postprocessing/repeat_detection_elimination/find_repeat_detections.py +53 -44
  33. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/postprocessing/repeat_detection_elimination/remove_repeat_detections.py +25 -14
  34. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/postprocessing/repeat_detection_elimination/repeat_detections_core.py +244 -160
  35. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/postprocessing/separate_detections_into_folders.py +159 -114
  36. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/postprocessing/subset_json_detector_output.py +146 -169
  37. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/postprocessing/top_folders_to_bottom.py +77 -43
  38. megadetector-5.0.9/api/synchronous/__init__.py +0 -0
  39. megadetector-5.0.9/api/synchronous/api_core/animal_detection_api/__init__.py +0 -0
  40. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/api_backend.py +0 -2
  41. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/api_frontend.py +266 -268
  42. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/config.py +35 -35
  43. megadetector-5.0.9/api/synchronous/api_core/tests/__init__.py +0 -0
  44. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/tests/load_test.py +109 -109
  45. megadetector-5.0.9/classification/__init__.py +0 -0
  46. {megadetector-5.0.7 → megadetector-5.0.9}/classification/aggregate_classifier_probs.py +21 -24
  47. {megadetector-5.0.7 → megadetector-5.0.9}/classification/analyze_failed_images.py +11 -13
  48. {megadetector-5.0.7 → megadetector-5.0.9}/classification/cache_batchapi_outputs.py +51 -51
  49. {megadetector-5.0.7 → megadetector-5.0.9}/classification/create_classification_dataset.py +69 -68
  50. {megadetector-5.0.7 → megadetector-5.0.9}/classification/crop_detections.py +54 -53
  51. {megadetector-5.0.7 → megadetector-5.0.9}/classification/csv_to_json.py +97 -100
  52. {megadetector-5.0.7 → megadetector-5.0.9}/classification/detect_and_crop.py +105 -105
  53. {megadetector-5.0.7 → megadetector-5.0.9}/classification/evaluate_model.py +43 -42
  54. {megadetector-5.0.7 → megadetector-5.0.9}/classification/identify_mislabeled_candidates.py +47 -46
  55. {megadetector-5.0.7 → megadetector-5.0.9}/classification/json_to_azcopy_list.py +10 -10
  56. {megadetector-5.0.7 → megadetector-5.0.9}/classification/json_validator.py +72 -71
  57. {megadetector-5.0.7 → megadetector-5.0.9}/classification/map_classification_categories.py +44 -43
  58. {megadetector-5.0.7 → megadetector-5.0.9}/classification/merge_classification_detection_output.py +68 -68
  59. megadetector-5.0.9/classification/prepare_classification_script.py +194 -0
  60. {megadetector-5.0.7 → megadetector-5.0.9}/classification/prepare_classification_script_mc.py +228 -228
  61. {megadetector-5.0.7 → megadetector-5.0.9}/classification/run_classifier.py +27 -26
  62. {megadetector-5.0.7 → megadetector-5.0.9}/classification/save_mislabeled.py +30 -30
  63. {megadetector-5.0.7 → megadetector-5.0.9}/classification/train_classifier.py +20 -20
  64. {megadetector-5.0.7 → megadetector-5.0.9}/classification/train_classifier_tf.py +21 -22
  65. {megadetector-5.0.7 → megadetector-5.0.9}/classification/train_utils.py +10 -10
  66. megadetector-5.0.9/data_management/__init__.py +0 -0
  67. megadetector-5.0.9/data_management/annotations/__init__.py +0 -0
  68. megadetector-5.0.9/data_management/annotations/annotation_constants.py +34 -0
  69. megadetector-5.0.9/data_management/camtrap_dp_to_coco.py +238 -0
  70. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/cct_json_utils.py +107 -59
  71. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/cct_to_md.py +176 -158
  72. megadetector-5.0.9/data_management/cct_to_wi.py +289 -0
  73. megadetector-5.0.9/data_management/coco_to_labelme.py +272 -0
  74. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/coco_to_yolo.py +86 -62
  75. megadetector-5.0.9/data_management/databases/__init__.py +0 -0
  76. megadetector-5.0.9/data_management/databases/add_width_and_height_to_db.py +33 -0
  77. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/databases/combine_coco_camera_traps_files.py +35 -31
  78. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/databases/integrity_check_json_db.py +130 -83
  79. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/databases/subset_json_db.py +25 -16
  80. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/generate_crops_from_cct.py +27 -45
  81. megadetector-5.0.9/data_management/get_image_sizes.py +188 -0
  82. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/add_nacti_sizes.py +8 -8
  83. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/add_timestamps_to_icct.py +78 -78
  84. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/animl_results_to_md_results.py +158 -160
  85. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/auckland_doc_test_to_json.py +9 -9
  86. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/auckland_doc_to_json.py +8 -8
  87. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/awc_to_json.py +7 -7
  88. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/bellevue_to_json.py +15 -15
  89. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/cacophony-thermal-importer.py +13 -13
  90. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/carrizo_shrubfree_2018.py +8 -8
  91. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/carrizo_trail_cam_2017.py +8 -8
  92. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/cct_field_adjustments.py +9 -9
  93. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/channel_islands_to_cct.py +10 -10
  94. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/eMammal/copy_and_unzip_emammal.py +1 -0
  95. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/ena24_to_json.py +7 -7
  96. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/filenames_to_json.py +8 -8
  97. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/helena_to_cct.py +7 -7
  98. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/idaho-camera-traps.py +7 -7
  99. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/idfg_iwildcam_lila_prep.py +10 -10
  100. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/jb_csv_to_json.py +9 -9
  101. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/mcgill_to_json.py +8 -8
  102. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/missouri_to_json.py +18 -18
  103. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/nacti_fieldname_adjustments.py +10 -10
  104. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/noaa_seals_2019.py +8 -8
  105. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/pc_to_json.py +7 -7
  106. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/plot_wni_giraffes.py +7 -7
  107. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/prepare-noaa-fish-data-for-lila.py +359 -359
  108. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/prepare_zsl_imerit.py +7 -7
  109. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/rspb_to_json.py +8 -8
  110. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/save_the_elephants_survey_A.py +8 -8
  111. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/save_the_elephants_survey_B.py +9 -9
  112. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/snapshot_safari_importer.py +26 -26
  113. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/snapshot_safari_importer_reprise.py +665 -665
  114. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/snapshot_serengeti_lila.py +14 -14
  115. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/sulross_get_exif.py +8 -9
  116. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/timelapse_csv_set_to_json.py +11 -11
  117. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/ubc_to_json.py +13 -13
  118. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/umn_to_json.py +7 -7
  119. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/wellington_to_json.py +8 -8
  120. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/wi_to_json.py +9 -9
  121. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/zamba_results_to_md_results.py +181 -181
  122. megadetector-5.0.9/data_management/labelme_to_coco.py +548 -0
  123. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/labelme_to_yolo.py +103 -60
  124. megadetector-5.0.9/data_management/lila/__init__.py +0 -0
  125. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/lila/add_locations_to_island_camera_traps.py +9 -9
  126. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/lila/add_locations_to_nacti.py +147 -147
  127. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/lila/create_lila_blank_set.py +114 -31
  128. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/lila/create_lila_test_set.py +8 -8
  129. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/lila/create_links_to_md_results_files.py +106 -106
  130. megadetector-5.0.9/data_management/lila/download_lila_subset.py +177 -0
  131. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/lila/generate_lila_per_image_labels.py +56 -43
  132. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/lila/get_lila_annotation_counts.py +18 -15
  133. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/lila/get_lila_image_counts.py +11 -11
  134. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/lila/lila_common.py +103 -70
  135. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/lila/test_lila_metadata_urls.py +132 -116
  136. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/ocr_tools.py +173 -128
  137. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/read_exif.py +161 -99
  138. megadetector-5.0.9/data_management/remap_coco_categories.py +84 -0
  139. megadetector-5.0.9/data_management/remove_exif.py +66 -0
  140. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/resize_coco_dataset.py +32 -44
  141. megadetector-5.0.9/data_management/wi_download_csv_to_coco.py +246 -0
  142. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/yolo_output_to_md_output.py +86 -73
  143. megadetector-5.0.9/data_management/yolo_to_coco.py +676 -0
  144. megadetector-5.0.9/detection/__init__.py +0 -0
  145. megadetector-5.0.9/detection/detector_training/__init__.py +0 -0
  146. {megadetector-5.0.7 → megadetector-5.0.9}/detection/process_video.py +85 -33
  147. {megadetector-5.0.7 → megadetector-5.0.9}/detection/pytorch_detector.py +43 -25
  148. {megadetector-5.0.7 → megadetector-5.0.9}/detection/run_detector.py +157 -72
  149. {megadetector-5.0.7 → megadetector-5.0.9}/detection/run_detector_batch.py +189 -114
  150. {megadetector-5.0.7 → megadetector-5.0.9}/detection/run_inference_with_yolov5_val.py +118 -51
  151. {megadetector-5.0.7 → megadetector-5.0.9}/detection/run_tiled_inference.py +113 -42
  152. {megadetector-5.0.7 → megadetector-5.0.9}/detection/tf_detector.py +51 -28
  153. {megadetector-5.0.7 → megadetector-5.0.9}/detection/video_utils.py +606 -521
  154. megadetector-5.0.9/docs/source/conf.py +43 -0
  155. megadetector-5.0.9/md_utils/__init__.py +0 -0
  156. {megadetector-5.0.7 → megadetector-5.0.9}/md_utils/azure_utils.py +9 -9
  157. {megadetector-5.0.7 → megadetector-5.0.9}/md_utils/ct_utils.py +249 -70
  158. {megadetector-5.0.7 → megadetector-5.0.9}/md_utils/directory_listing.py +59 -64
  159. {megadetector-5.0.7 → megadetector-5.0.9}/md_utils/md_tests.py +968 -862
  160. megadetector-5.0.9/md_utils/path_utils.py +1044 -0
  161. {megadetector-5.0.7 → megadetector-5.0.9}/md_utils/process_utils.py +157 -133
  162. {megadetector-5.0.7 → megadetector-5.0.9}/md_utils/sas_blob_utils.py +20 -20
  163. {megadetector-5.0.7 → megadetector-5.0.9}/md_utils/split_locations_into_train_val.py +45 -32
  164. {megadetector-5.0.7 → megadetector-5.0.9}/md_utils/string_utils.py +33 -10
  165. megadetector-5.0.9/md_utils/url_utils.py +323 -0
  166. {megadetector-5.0.7 → megadetector-5.0.9}/md_utils/write_html_image_list.py +51 -35
  167. megadetector-5.0.9/md_visualization/__init__.py +0 -0
  168. {megadetector-5.0.7 → megadetector-5.0.9}/md_visualization/plot_utils.py +102 -109
  169. {megadetector-5.0.7 → megadetector-5.0.9}/md_visualization/render_images_with_thumbnails.py +34 -34
  170. megadetector-5.0.9/md_visualization/visualization_utils.py +1537 -0
  171. {megadetector-5.0.7 → megadetector-5.0.9}/md_visualization/visualize_db.py +109 -58
  172. {megadetector-5.0.7 → megadetector-5.0.9}/md_visualization/visualize_detector_output.py +61 -42
  173. {megadetector-5.0.7 → megadetector-5.0.9/megadetector.egg-info}/PKG-INFO +21 -17
  174. {megadetector-5.0.7 → megadetector-5.0.9}/megadetector.egg-info/SOURCES.txt +27 -5
  175. {megadetector-5.0.7 → megadetector-5.0.9}/megadetector.egg-info/top_level.txt +1 -0
  176. {megadetector-5.0.7 → megadetector-5.0.9}/pyproject.toml +2 -1
  177. megadetector-5.0.9/taxonomy_mapping/__init__.py +0 -0
  178. megadetector-5.0.9/taxonomy_mapping/map_lila_taxonomy_to_wi_taxonomy.py +491 -0
  179. {megadetector-5.0.7 → megadetector-5.0.9}/taxonomy_mapping/map_new_lila_datasets.py +154 -154
  180. megadetector-5.0.9/taxonomy_mapping/prepare_lila_taxonomy_release.py +142 -0
  181. {megadetector-5.0.7 → megadetector-5.0.9}/taxonomy_mapping/preview_lila_taxonomy.py +591 -591
  182. {megadetector-5.0.7 → megadetector-5.0.9}/taxonomy_mapping/retrieve_sample_image.py +12 -12
  183. {megadetector-5.0.7 → megadetector-5.0.9}/taxonomy_mapping/simple_image_download.py +11 -11
  184. {megadetector-5.0.7 → megadetector-5.0.9}/taxonomy_mapping/species_lookup.py +10 -10
  185. {megadetector-5.0.7 → megadetector-5.0.9}/taxonomy_mapping/taxonomy_csv_checker.py +18 -18
  186. {megadetector-5.0.7 → megadetector-5.0.9}/taxonomy_mapping/taxonomy_graph.py +47 -47
  187. megadetector-5.0.9/taxonomy_mapping/validate_lila_category_mappings.py +83 -0
  188. megadetector-5.0.7/api/batch_processing/postprocessing/md_to_labelme.py +0 -233
  189. megadetector-5.0.7/classification/prepare_classification_script.py +0 -191
  190. megadetector-5.0.7/data_management/annotations/annotation_constants.py +0 -47
  191. megadetector-5.0.7/data_management/cct_json_to_filename_json.py +0 -89
  192. megadetector-5.0.7/data_management/cct_to_csv.py +0 -140
  193. megadetector-5.0.7/data_management/cct_to_wi.py +0 -261
  194. megadetector-5.0.7/data_management/databases/add_width_and_height_to_db.py +0 -29
  195. megadetector-5.0.7/data_management/databases/remove_corrupted_images_from_db.py +0 -191
  196. megadetector-5.0.7/data_management/get_image_sizes.py +0 -144
  197. megadetector-5.0.7/data_management/labelme_to_coco.py +0 -398
  198. megadetector-5.0.7/data_management/lila/download_lila_subset.py +0 -175
  199. megadetector-5.0.7/data_management/remove_exif.py +0 -70
  200. megadetector-5.0.7/data_management/yolo_to_coco.py +0 -236
  201. megadetector-5.0.7/detection/detector_training/copy_checkpoints.py +0 -43
  202. megadetector-5.0.7/md_utils/path_utils.py +0 -544
  203. megadetector-5.0.7/md_utils/url_utils.py +0 -142
  204. megadetector-5.0.7/md_visualization/visualization_utils.py +0 -940
  205. megadetector-5.0.7/md_visualization/visualize_megadb.py +0 -183
  206. megadetector-5.0.7/taxonomy_mapping/map_lila_taxonomy_to_wi_taxonomy.py +0 -484
  207. megadetector-5.0.7/taxonomy_mapping/prepare_lila_taxonomy_release.py +0 -134
  208. megadetector-5.0.7/taxonomy_mapping/validate_lila_category_mappings.py +0 -76
  209. {megadetector-5.0.7 → megadetector-5.0.9}/LICENSE +0 -0
  210. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/api_core/server.py +0 -0
  211. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/api_core/server_api_config.py +0 -0
  212. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/api_core/server_app_config.py +0 -0
  213. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/api_core/server_batch_job_manager.py +0 -0
  214. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/api_core/server_orchestration.py +0 -0
  215. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/api_core/server_utils.py +0 -0
  216. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/integration/digiKam/setup.py +0 -0
  217. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/integration/eMammal/test_scripts/config_template.py +0 -0
  218. {megadetector-5.0.7 → megadetector-5.0.9}/api/batch_processing/integration/eMammal/test_scripts/select_images_for_testing.py +0 -0
  219. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/data_management/annotations/annotation_constants.py +0 -0
  220. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/detection/detector_training/copy_checkpoints.py +0 -0
  221. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/detection/detector_training/model_main_tf2.py +0 -0
  222. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/detection/process_video.py +0 -0
  223. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/detection/pytorch_detector.py +0 -0
  224. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/detection/run_detector.py +0 -0
  225. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/detection/run_detector_batch.py +0 -0
  226. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/detection/run_inference_with_yolov5_val.py +0 -0
  227. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/detection/run_tiled_inference.py +0 -0
  228. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/detection/tf_detector.py +0 -0
  229. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/detection/video_utils.py +0 -0
  230. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/md_utils/azure_utils.py +0 -0
  231. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/md_utils/ct_utils.py +0 -0
  232. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/md_utils/directory_listing.py +0 -0
  233. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/md_utils/matlab_porting_tools.py +0 -0
  234. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/md_utils/path_utils.py +0 -0
  235. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/md_utils/process_utils.py +0 -0
  236. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/md_utils/sas_blob_utils.py +0 -0
  237. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/md_utils/string_utils.py +0 -0
  238. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/md_utils/url_utils.py +0 -0
  239. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/md_utils/write_html_image_list.py +0 -0
  240. {megadetector-5.0.7 → megadetector-5.0.9}/api/synchronous/api_core/animal_detection_api/md_visualization/visualization_utils.py +0 -0
  241. {megadetector-5.0.7 → megadetector-5.0.9}/classification/efficientnet/__init__.py +0 -0
  242. {megadetector-5.0.7 → megadetector-5.0.9}/classification/efficientnet/model.py +0 -0
  243. {megadetector-5.0.7 → megadetector-5.0.9}/classification/efficientnet/utils.py +0 -0
  244. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/eMammal/eMammal_helpers.py +0 -0
  245. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/eMammal/make_eMammal_json.py +0 -0
  246. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/snapshotserengeti/make_full_SS_json.py +0 -0
  247. {megadetector-5.0.7 → megadetector-5.0.9}/data_management/importers/snapshotserengeti/make_per_season_SS_json.py +0 -0
  248. {megadetector-5.0.7 → megadetector-5.0.9}/detection/detector_training/model_main_tf2.py +0 -0
  249. {megadetector-5.0.7 → megadetector-5.0.9}/megadetector.egg-info/dependency_links.txt +0 -0
  250. {megadetector-5.0.7 → megadetector-5.0.9}/megadetector.egg-info/requires.txt +0 -0
  251. {megadetector-5.0.7 → megadetector-5.0.9}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: megadetector
3
- Version: 5.0.7
3
+ Version: 5.0.9
4
4
  Summary: MegaDetector is an AI model that helps conservation folks spend less time doing boring things with camera trap images.
5
5
  Author-email: Your friendly neighborhood MegaDetector team <cameratraps@lila.science>
6
6
  Maintainer-email: Your friendly neighborhood MegaDetector team <cameratraps@lila.science>
@@ -25,6 +25,7 @@ License: MIT License
25
25
  SOFTWARE.
26
26
 
27
27
  Project-URL: Homepage, https://github.com/agentmorris/MegaDetector
28
+ Project-URL: Documentation, https://megadetector.readthedocs.io
28
29
  Project-URL: Bug Reports, https://github.com/agentmorris/MegaDetector/issues
29
30
  Project-URL: Source, https://github.com/agentmorris/MegaDetector
30
31
  Keywords: camera traps,conservation,wildlife,ai
@@ -51,16 +52,16 @@ Requires-Dist: ultralytics-yolov5==0.1.1
51
52
 
52
53
  # MegaDetector
53
54
 
54
- This package is a pip-installable version of the support/inference code for [MegaDetector](https://github.com/agentmorris/MegaDetector), an object detection model that helps conservation biologists spend less time doing boring things with camera trap images.
55
+ This package is a pip-installable version of the support/inference code for [MegaDetector](https://github.com/agentmorris/MegaDetector), an object detection model that helps conservation biologists spend less time doing boring things with camera trap images. Complete documentation for this Python package is available at <megadetector.readthedocs.io>.
55
56
 
56
- If you want to learn more about what MegaDetector is all about, head over to the [MegaDetector repo](https://github.com/agentmorris/MegaDetector).
57
+ If you aren't looking for the Python package specificaly, and you just want to learn more about what MegaDetector is all about, head over to the [MegaDetector repo](https://github.com/agentmorris/MegaDetector).
57
58
 
58
59
 
59
60
  ## Reasons you probably aren't looking for this package
60
61
 
61
62
  ### If you are an ecologist...
62
63
 
63
- If you are an ecologist looking to use MegaDetector to help you get through your camera trap images, you probably don't want this package. We recommend starting with our "[Getting started with MegaDetector](https://github.com/agentmorris/MegaDetector/blob/main/collaborations.md)" page, then digging in to the [MegaDetector User Guide](https://github.com/agentmorris/MegaDetector/blob/main/megadetector.md), which will walk you through the process of using MegaDetector. That journey will <i>not</i> involve this package.
64
+ If you are an ecologist looking to use MegaDetector to help you get through your camera trap images, you probably don't want this package. We recommend starting with our "[Getting started with MegaDetector](https://github.com/agentmorris/MegaDetector/blob/main/getting-started.md)" page, then digging in to the [MegaDetector User Guide](https://github.com/agentmorris/MegaDetector/blob/main/megadetector.md), which will walk you through the process of using MegaDetector. That journey will <i>not</i> involve this Python package.
64
65
 
65
66
  ### If you are a computer-vision-y type...
66
67
 
@@ -80,9 +81,14 @@ To install:
80
81
 
81
82
  MegaDetector model weights aren't downloaded at pip-install time, but they will be (optionally) automatically downloaded the first time you run the model.
82
83
 
83
- ### Examples of things you can do with this package
84
+ ## Package reference
84
85
 
85
- #### Run MegaDetector on one image and count the number of detections
86
+ See <megadetector.readthedocs.io>.
87
+
88
+
89
+ ## Examples of things you can do with this package
90
+
91
+ ### Run MegaDetector on one image and count the number of detections
86
92
 
87
93
  ```
88
94
  from md_utils import url_utils
@@ -95,18 +101,16 @@ temporary_filename = url_utils.download_url(image_url)
95
101
 
96
102
  image = vis_utils.load_image(temporary_filename)
97
103
 
98
- # This will automatically download MDv5a to the system temp folder;
99
- # you can also specify a filename explicitly, or set the $MDV5A
100
- # environment variable to point to the model file.
104
+ # This will automatically download MDv5a; you can also specify a filename.
101
105
  model = run_detector.load_detector('MDV5A')
102
106
 
103
107
  result = model.generate_detections_one_image(image)
104
108
 
105
109
  detections_above_threshold = [d for d in result['detections'] if d['conf'] > 0.2]
106
- print('Found {} detection above threshold'.format(len(detections_above_threshold)))
110
+ print('Found {} detections above threshold'.format(len(detections_above_threshold)))
107
111
  ```
108
112
 
109
- #### Run MegaDetector on a folder of images
113
+ ### Run MegaDetector on a folder of images
110
114
 
111
115
  ```
112
116
  from detection.run_detector_batch import load_and_run_detector_batch,write_results_to_file
@@ -120,14 +124,14 @@ output_file = os.path.expanduser('~/megadetector_output_test.json')
120
124
  # Recursively find images
121
125
  image_file_names = path_utils.find_images(image_folder,recursive=True)
122
126
 
123
- # This will automatically download MDv5a to the system temp folder;
124
- # you can also specify a filename explicitly, or set the $MDV5A
125
- # environment variable to point to the model file.
127
+ # This will automatically download MDv5a; you can also specify a filename.
126
128
  results = load_and_run_detector_batch('MDV5A', image_file_names)
127
129
 
128
- # Write results as relative filenames, this is what Timelapse
129
- # and other downstream tools expect.
130
- write_results_to_file(results,output_file,relative_path_base=image_folder)
130
+ # Write results to a format that Timelapse and other downstream tools like.
131
+ write_results_to_file(results,
132
+ output_file,
133
+ relative_path_base=image_folder,
134
+ detector_file=detector_filename)
131
135
  ```
132
136
 
133
137
  ## Contact
@@ -1,15 +1,15 @@
1
1
  # MegaDetector
2
2
 
3
- This package is a pip-installable version of the support/inference code for [MegaDetector](https://github.com/agentmorris/MegaDetector), an object detection model that helps conservation biologists spend less time doing boring things with camera trap images.
3
+ This package is a pip-installable version of the support/inference code for [MegaDetector](https://github.com/agentmorris/MegaDetector), an object detection model that helps conservation biologists spend less time doing boring things with camera trap images. Complete documentation for this Python package is available at <megadetector.readthedocs.io>.
4
4
 
5
- If you want to learn more about what MegaDetector is all about, head over to the [MegaDetector repo](https://github.com/agentmorris/MegaDetector).
5
+ If you aren't looking for the Python package specificaly, and you just want to learn more about what MegaDetector is all about, head over to the [MegaDetector repo](https://github.com/agentmorris/MegaDetector).
6
6
 
7
7
 
8
8
  ## Reasons you probably aren't looking for this package
9
9
 
10
10
  ### If you are an ecologist...
11
11
 
12
- If you are an ecologist looking to use MegaDetector to help you get through your camera trap images, you probably don't want this package. We recommend starting with our "[Getting started with MegaDetector](https://github.com/agentmorris/MegaDetector/blob/main/collaborations.md)" page, then digging in to the [MegaDetector User Guide](https://github.com/agentmorris/MegaDetector/blob/main/megadetector.md), which will walk you through the process of using MegaDetector. That journey will <i>not</i> involve this package.
12
+ If you are an ecologist looking to use MegaDetector to help you get through your camera trap images, you probably don't want this package. We recommend starting with our "[Getting started with MegaDetector](https://github.com/agentmorris/MegaDetector/blob/main/getting-started.md)" page, then digging in to the [MegaDetector User Guide](https://github.com/agentmorris/MegaDetector/blob/main/megadetector.md), which will walk you through the process of using MegaDetector. That journey will <i>not</i> involve this Python package.
13
13
 
14
14
  ### If you are a computer-vision-y type...
15
15
 
@@ -29,9 +29,14 @@ To install:
29
29
 
30
30
  MegaDetector model weights aren't downloaded at pip-install time, but they will be (optionally) automatically downloaded the first time you run the model.
31
31
 
32
- ### Examples of things you can do with this package
32
+ ## Package reference
33
33
 
34
- #### Run MegaDetector on one image and count the number of detections
34
+ See <megadetector.readthedocs.io>.
35
+
36
+
37
+ ## Examples of things you can do with this package
38
+
39
+ ### Run MegaDetector on one image and count the number of detections
35
40
 
36
41
  ```
37
42
  from md_utils import url_utils
@@ -44,18 +49,16 @@ temporary_filename = url_utils.download_url(image_url)
44
49
 
45
50
  image = vis_utils.load_image(temporary_filename)
46
51
 
47
- # This will automatically download MDv5a to the system temp folder;
48
- # you can also specify a filename explicitly, or set the $MDV5A
49
- # environment variable to point to the model file.
52
+ # This will automatically download MDv5a; you can also specify a filename.
50
53
  model = run_detector.load_detector('MDV5A')
51
54
 
52
55
  result = model.generate_detections_one_image(image)
53
56
 
54
57
  detections_above_threshold = [d for d in result['detections'] if d['conf'] > 0.2]
55
- print('Found {} detection above threshold'.format(len(detections_above_threshold)))
58
+ print('Found {} detections above threshold'.format(len(detections_above_threshold)))
56
59
  ```
57
60
 
58
- #### Run MegaDetector on a folder of images
61
+ ### Run MegaDetector on a folder of images
59
62
 
60
63
  ```
61
64
  from detection.run_detector_batch import load_and_run_detector_batch,write_results_to_file
@@ -69,14 +72,14 @@ output_file = os.path.expanduser('~/megadetector_output_test.json')
69
72
  # Recursively find images
70
73
  image_file_names = path_utils.find_images(image_folder,recursive=True)
71
74
 
72
- # This will automatically download MDv5a to the system temp folder;
73
- # you can also specify a filename explicitly, or set the $MDV5A
74
- # environment variable to point to the model file.
75
+ # This will automatically download MDv5a; you can also specify a filename.
75
76
  results = load_and_run_detector_batch('MDV5A', image_file_names)
76
77
 
77
- # Write results as relative filenames, this is what Timelapse
78
- # and other downstream tools expect.
79
- write_results_to_file(results,output_file,relative_path_base=image_folder)
78
+ # Write results to a format that Timelapse and other downstream tools like.
79
+ write_results_to_file(results,
80
+ output_file,
81
+ relative_path_base=image_folder,
82
+ detector_file=detector_filename)
80
83
  ```
81
84
 
82
85
  ## Contact
@@ -4,35 +4,16 @@
4
4
 
5
5
  ## Table of contents
6
6
 
7
- 1. [Repo overview](#repo-overview)
8
- 2. [What's MegaDetector all about?](#whats-megadetector-all-about)
7
+ 1. [What's MegaDetector all about?](#whats-megadetector-all-about)
9
8
  3. [How do I get started with MegaDetector?](#how-do-i-get-started-with-megadetector)
10
9
  4. [Who is using MegaDetector?](#who-is-using-megadetector)
11
10
  5. [Repo contents](#repo-contents)
12
11
  6. [Contact](#contact)
13
12
  7. [Gratuitous camera trap picture](#gratuitous-camera-trap-picture)
14
13
 
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 was forked from the microsoft/cameratraps repo and is 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
14
  ## What's MegaDetector all about?
32
15
 
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.
16
+ [MegaDetector](megadetector.md) is an AI 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 million images from a variety of ecosystems.
36
17
 
37
18
  Here's a &ldquo;teaser&rdquo; image of what MegaDetector output looks like:
38
19
 
@@ -41,22 +22,23 @@ Here's a &ldquo;teaser&rdquo; image of what MegaDetector output looks like:
41
22
 
42
23
  ## How do I get started with MegaDetector?
43
24
 
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
- If you're a programmer-type looking to use tools from this repo, we generally recommend cloning the repo, but there is also a [Python package](https://pypi.org/project/megadetector/) that provides access to everything in this repo (yes, you guessed it, "pip install megadetector").
25
+ * If you are looking for a convenient tool to run MegaDetector, you don't need anything from this repository: check out [EcoAssist](https://github.com/PetervanLunteren/EcoAssist?tab=readme-ov-file).
26
+ * If you're just <i>considering</i> 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](getting-started.md)" page.
27
+ * If you're already familiar with MegaDetector and you're ready to run it on your data, see the [MegaDetector User Guide](megadetector.md) for instructions on running MegaDetector.
28
+ * If you're a programmer-type looking to use tools from this repo, check out the [Python package](https://pypi.org/project/megadetector/) that provides access to everything in this repo (yes, you guessed it, "pip install megadetector").
29
+ * If you have any questions, or you want to tell us that MegaDetector was amazing/terrible on your images, <a href="mailto:cameratraps@lila.science">email us</a>!
49
30
 
50
31
  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;.
51
32
 
52
33
 
53
34
  ## Who is using MegaDetector?
54
35
 
55
- 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.
36
+ 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](getting-started.md) page.
56
37
 
57
38
  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>!
58
39
 
59
40
  * [Arizona Department of Environmental Quality](http://azdeq.gov/)
41
+ * [Biometrio.earth](https://biometrio.earth/)
60
42
  * [Blackbird Environmental](https://blackbirdenv.com/)
61
43
  * [Camelot](https://camelotproject.org/)
62
44
  * [Canadian Parks and Wilderness Society (CPAWS) Northern Alberta Chapter](https://cpawsnab.org/)
@@ -65,10 +47,10 @@ Here are a few of the organizations that have used MegaDetector... we're only li
65
47
  * [Dudek Camera Trap AI Image Toolkit (AIT)](https://dudek.com/services/wildlife-camera-trap-ai-image-processing-and-management/)
66
48
  * [EcoLogic Consultants Ltd.](https://www.consult-ecologic.com/)
67
49
  * [Estación Biológica de Doñana](http://www.ebd.csic.es/inicio)
68
- * [Idaho Department of Fish and Game](https://idfg.idaho.gov/)
69
- * [Island Conservation](https://www.islandconservation.org/)
50
+ * [Indigenous Desert Alliance](https://www.indigenousdesertalliance.com/)
70
51
  * [Myall Lakes Dingo Project](https://carnivorecoexistence.info/myall-lakes-dingo-project/)
71
52
  * [Norwegian Institute for Nature Research](https://www.nina.no/english/Home)
53
+ * [Okala](https://www.okala.io/)
72
54
  * [Point No Point Treaty Council](https://pnptc.org/)
73
55
  * [Ramat Hanadiv Nature Park](https://www.ramat-hanadiv.org.il/en/)
74
56
  * [SPEA (Portuguese Society for the Study of Birds)](https://spea.pt/en/)
@@ -94,13 +76,16 @@ Here are a few of the organizations that have used MegaDetector... we're only li
94
76
  * [Cross-Cultural Ecology Lab](https://crossculturalecology.net/), Macquarie University
95
77
  * [DC Cat Count](https://hub.dccatcount.org/), led by the Humane Rescue Alliance
96
78
  * [Department of Fish and Wildlife Sciences](https://www.uidaho.edu/cnr/departments/fish-and-wildlife-sciences), University of Idaho
79
+ * [Department of Society & Conservation](https://www.umt.edu/environment/about/departments/socon/), W.A. Franke College of Forestry & Conservation, University of Montana
97
80
  * [Department of Wildlife Ecology and Conservation](https://wec.ifas.ufl.edu/), University of Florida
98
81
  * [Ecology and Conservation of Amazonian Vertebrates Research Group](https://www.researchgate.net/lab/Fernanda-Michalski-Lab-4), Federal University of Amapá
99
82
  * [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)
100
83
  * [Graeme Shannon's Research Group](https://wildliferesearch.co.uk/group-1), Bangor University
84
+ * [Grizzly Bear Recovery Program](https://www.fws.gov/office/grizzly-bear-recovery-program), U.S. Fish & Wildlife Service
101
85
  * [Hamaarag](https://hamaarag.org.il/), The Steinhardt Museum of Natural History, Tel Aviv University
102
86
  * [Institut des Science de la Forêt Tempérée](https://isfort.uqo.ca/) (ISFORT), Université du Québec en Outaouais
103
87
  * [Lab of Dr. Bilal Habib](https://bhlab.in/about), the Wildlife Institute of India
88
+ * [Landscape Ecology Lab](https://www.concordia.ca/artsci/geography-planning-environment/research/labs/lel.html), Concordia University
104
89
  * [Mammal Spatial Ecology and Conservation Lab](https://labs.wsu.edu/dthornton/), Washington State University
105
90
  * [McLoughlin Lab in Population Ecology](http://mcloughlinlab.ca/lab/), University of Saskatchewan
106
91
  * [National Wildlife Refuge System, Southwest Region](https://www.fws.gov/about/region/southwest), U.S. Fish & Wildlife Service
@@ -111,6 +96,7 @@ Here are a few of the organizations that have used MegaDetector... we're only li
111
96
  * [Seattle Urban Carnivore Project](https://www.zoo.org/seattlecarnivores), Woodland Park Zoo
112
97
  * [Serra dos Órgãos National Park](https://www.icmbio.gov.br/parnaserradosorgaos/), ICMBio
113
98
  * [Snapshot USA](https://emammal.si.edu/snapshot-usa), Smithsonian
99
+ * [TROPECOLNET project](https://www.anabenitezlopez.com/research/global-change-biology/tropecolnet/), Museo Nacional de Ciencias Naturales
114
100
  * [Wildlife Coexistence Lab](https://wildlife.forestry.ubc.ca/), University of British Columbia
115
101
  * [Wildlife Research](https://www.dfw.state.or.us/wildlife/research/index.asp), Oregon Department of Fish and Wildlife
116
102
  * [Wildlife Division](https://www.michigan.gov/dnr/about/contact/wildlife), Michigan Department of Natural Resources
@@ -122,9 +108,12 @@ Here are a few of the organizations that have used MegaDetector... we're only li
122
108
  * [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))
123
109
  * [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/))
124
110
 
125
- * [Australian Wildlife Conservancy](https://www.australianwildlife.org/) (blog posts [1](https://www.australianwildlife.org/cutting-edge-technology-delivering-efficiency-gains-in-conservation/), [2](https://www.australianwildlife.org/efficiency-gains-at-the-cutting-edge-of-technology/))
111
+ * [Idaho Department of Fish and Game](https://idfg.idaho.gov/) ([fancy PBS video](https://www.youtube.com/watch?v=uEsL8EZKpbA&t=261s&ab_channel=OutdoorIdaho))
112
+ * [Australian Wildlife Conservancy](https://www.australianwildlife.org/) (blog posts [1](https://www.australianwildlife.org/cutting-edge-technology-delivering-efficiency-gains-in-conservation/), [2](https://www.australianwildlife.org/efficiency-gains-at-the-cutting-edge-of-technology/), [3](https://www.australianwildlife.org/federal-grant-to-fund-ai-supported-wildlife-recognisers))
126
113
  * [Bavarian Forest National Park](https://www.nationalpark-bayerischer-wald.bayern.de/english/index.htm) ([story](https://customers.microsoft.com/en-au/story/1667539539271247797-nationalparkbayerischerwald-azure-en))
114
+ * [Environs Kimberley](https://www.environskimberley.org.au) ([blog post](https://www.environskimberley.org.au/ai_megadetector))
127
115
  * [Felidae Conservation Fund](https://felidaefund.org/) ([WildePod platform](https://wildepod.org/)) ([blog post](https://abhaykashyap.com/blog/ai-powered-camera-trap-image-annotation-system/))
116
+ * [Island Conservation](https://www.islandconservation.org/) (blog posts [1](https://www.islandconservation.org/conservation-machine-learning/),[2](https://news.lenovo.com/island-conservation-machine-learning-solutions-nvidia-island-ecosystems/?sprinklrid=12869857824&linkId=356951919)) ([video](https://www.lenovo.com/content/dam/lenovo/iso/customer-references-coe/one-lenovo-customer-stories/wfh/videos/WFH-One-Lenovo-ENG-subtitles.mp4))
128
117
  * [Alberta Biodiversity Monitoring Institute (ABMI)](https://www.abmi.ca/home.html) ([WildTrax platform](https://www.wildtrax.ca/)) (blog posts [1](https://wildcams.ca/blog/the-abmi-visits-the-zoo/),[2](http://blog.abmi.ca/2023/06/14/making-wildtrax-its-not-a-kind-of-magic-behind-the-screen/))
129
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)) ([Web demo](https://cameratrap-ai.hinature.cn/home))
130
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/))
@@ -134,8 +123,9 @@ Here are a few of the organizations that have used MegaDetector... we're only li
134
123
  * [Trapper](https://trapper-project.readthedocs.io/en/latest/overview.html) ([tutorial](https://trapper-project.readthedocs.io/en/latest/tutorial.html))
135
124
 
136
125
  * [Road Ecology Center](https://roadecology.ucdavis.edu/), University of California, Davis ([Wildlife Observer Network platform](https://wildlifeobserver.net/))
137
- * [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))
126
+ * [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)) ([story](https://www.vision-systems.com/non-factory/environment-agriculture/article/14304433/the-nature-conservancy-brings-cameras-ai-to-invasive-species-prevention))
138
127
  * [San Diego Zoo Wildlife Alliance](https://science.sandiegozoo.org/) ([Animl R package](https://github.com/conservationtechlab/animl))
128
+ * [TerrOïko](https://www.terroiko.fr/) ([OCAPI platform](https://www.terroiko.fr/ocapi))
139
129
 
140
130
  Also see:
141
131
 
@@ -145,10 +135,25 @@ Also see:
145
135
 
146
136
  * The list of papers tagged "MegaDetector" on our [list of papers about ML and camera traps](https://agentmorris.github.io/camera-trap-ml-survey/#camera-trap-ml-papers)
147
137
 
138
+
148
139
  ## Repo contents
149
140
 
150
141
  This repo is organized into the following folders...
151
142
 
143
+ 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.
144
+
145
+ The core functionality provided is:
146
+
147
+ - Training and running [MegaDetector](megadetector.md).
148
+ - Training and running some [species classifiers](classification) that are used in conjunction with MegaDetector.
149
+ - Tools to [convert](data_management) frequently-used camera trap metadata formats into a common format.
150
+ - 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.
151
+ - 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.
152
+
153
+ 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.
154
+
155
+ MegaDetector was initially developed by the [Microsoft AI for Earth program](https://www.microsoft.com/en-us/ai/ai-for-earth); this repo was forked from the microsoft/cameratraps repo and is 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).
156
+
152
157
 
153
158
  ### api
154
159
 
@@ -180,7 +185,7 @@ Code for:
180
185
 
181
186
  ### detection
182
187
 
183
- Code for training, running, and evaluating MegaDetector.
188
+ Code for running models, especially MegaDetector.
184
189
 
185
190
 
186
191
  ### envs
@@ -200,7 +205,7 @@ Small utility functions for string manipulation, filename manipulation, download
200
205
 
201
206
  ### md_visualization
202
207
 
203
- Shared tools for visualizing images with ground truth and/or predicted annotations.
208
+ Tools for visualizing images with ground truth and/or predicted annotations.
204
209
 
205
210
 
206
211
  ### sandbox
File without changes
File without changes
@@ -435,6 +435,5 @@ def main():
435
435
  with open(task_output_path, 'w', encoding='utf-8') as f:
436
436
  json.dump(detections, f, ensure_ascii=False)
437
437
 
438
-
439
438
  if __name__ == '__main__':
440
439
  main()
@@ -148,6 +148,5 @@ class TestJobStatusTable(unittest.TestCase):
148
148
  item_read = table.read_job_status(job_id)
149
149
  self.assertIsNone(item_read)
150
150
 
151
-
152
151
  if __name__ == '__main__':
153
152
  unittest.main()
@@ -42,6 +42,5 @@ def main():
42
42
  output_file_urls_str = json.dumps(output_file_urls)
43
43
  print(output_file_urls_str)
44
44
 
45
-
46
45
  if __name__ == '__main__':
47
46
  main()
@@ -148,6 +148,5 @@ def main():
148
148
  send_message()
149
149
  time.sleep(24 * 60 * 60)
150
150
 
151
-
152
151
  if __name__ == '__main__':
153
152
  main()