megadetector 5.0.21__py3-none-any.whl → 5.0.22__py3-none-any.whl

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 (36) hide show
  1. megadetector/data_management/cct_json_utils.py +143 -7
  2. megadetector/data_management/cct_to_md.py +12 -5
  3. megadetector/data_management/databases/integrity_check_json_db.py +83 -77
  4. megadetector/data_management/importers/raic_csv_to_md_results.py +416 -0
  5. megadetector/data_management/importers/zamba_results_to_md_results.py +1 -2
  6. megadetector/data_management/lila/create_lila_test_set.py +25 -11
  7. megadetector/data_management/lila/download_lila_subset.py +9 -2
  8. megadetector/data_management/lila/generate_lila_per_image_labels.py +3 -2
  9. megadetector/data_management/lila/test_lila_metadata_urls.py +5 -1
  10. megadetector/data_management/read_exif.py +10 -14
  11. megadetector/data_management/rename_images.py +1 -1
  12. megadetector/detection/process_video.py +14 -3
  13. megadetector/detection/pytorch_detector.py +15 -3
  14. megadetector/detection/run_detector.py +4 -3
  15. megadetector/detection/run_inference_with_yolov5_val.py +121 -13
  16. megadetector/detection/video_utils.py +21 -10
  17. megadetector/postprocessing/classification_postprocessing.py +1 -1
  18. megadetector/postprocessing/compare_batch_results.py +931 -142
  19. megadetector/postprocessing/detector_calibration.py +243 -45
  20. megadetector/postprocessing/md_to_coco.py +85 -20
  21. megadetector/postprocessing/postprocess_batch_results.py +0 -1
  22. megadetector/postprocessing/validate_batch_results.py +65 -15
  23. megadetector/taxonomy_mapping/map_new_lila_datasets.py +15 -12
  24. megadetector/taxonomy_mapping/prepare_lila_taxonomy_release.py +1 -1
  25. megadetector/taxonomy_mapping/preview_lila_taxonomy.py +3 -1
  26. megadetector/utils/ct_utils.py +64 -2
  27. megadetector/utils/md_tests.py +1 -1
  28. megadetector/utils/path_utils.py +14 -7
  29. megadetector/utils/process_utils.py +9 -3
  30. megadetector/utils/write_html_image_list.py +5 -1
  31. megadetector/visualization/visualization_utils.py +211 -87
  32. {megadetector-5.0.21.dist-info → megadetector-5.0.22.dist-info}/LICENSE +0 -0
  33. {megadetector-5.0.21.dist-info → megadetector-5.0.22.dist-info}/METADATA +143 -142
  34. {megadetector-5.0.21.dist-info → megadetector-5.0.22.dist-info}/RECORD +36 -35
  35. {megadetector-5.0.21.dist-info → megadetector-5.0.22.dist-info}/WHEEL +1 -1
  36. {megadetector-5.0.21.dist-info → megadetector-5.0.22.dist-info}/top_level.txt +0 -0
@@ -1,142 +1,143 @@
1
- Metadata-Version: 2.1
2
- Name: megadetector
3
- Version: 5.0.21
4
- Summary: MegaDetector is an AI model that helps conservation folks spend less time doing boring things with camera trap images.
5
- Author-email: Your friendly neighborhood MegaDetector team <cameratraps@lila.science>
6
- Maintainer-email: Your friendly neighborhood MegaDetector team <cameratraps@lila.science>
7
- License: MIT License
8
-
9
- Permission is hereby granted, free of charge, to any person obtaining a copy
10
- of this software and associated documentation files (the "Software"), to deal
11
- in the Software without restriction, including without limitation the rights
12
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
- copies of the Software, and to permit persons to whom the Software is
14
- furnished to do so, subject to the following conditions:
15
-
16
- The above copyright notice and this permission notice shall be included in all
17
- copies or substantial portions of the Software.
18
-
19
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25
- SOFTWARE.
26
-
27
- Project-URL: Homepage, https://github.com/agentmorris/MegaDetector
28
- Project-URL: Documentation, https://megadetector.readthedocs.io
29
- Project-URL: Bug Reports, https://github.com/agentmorris/MegaDetector/issues
30
- Project-URL: Source, https://github.com/agentmorris/MegaDetector
31
- Keywords: camera traps,conservation,wildlife,ai,megadetector
32
- Classifier: Development Status :: 3 - Alpha
33
- Classifier: License :: OSI Approved :: MIT License
34
- Classifier: Programming Language :: Python :: 3
35
- Requires-Python: <3.12,>=3.9
36
- Description-Content-Type: text/markdown
37
- License-File: LICENSE
38
- Requires-Dist: Pillow >=9.5
39
- Requires-Dist: tqdm >=4.64.0
40
- Requires-Dist: jsonpickle >=3.0.2
41
- Requires-Dist: humanfriendly >=10.0
42
- Requires-Dist: numpy <1.24,>=1.22
43
- Requires-Dist: matplotlib >=3.8.0
44
- Requires-Dist: opencv-python >=4.8.0
45
- Requires-Dist: requests >=2.31.0
46
- Requires-Dist: pyqtree >=1.0.0
47
- Requires-Dist: seaborn >=0.12.2
48
- Requires-Dist: scikit-learn >=1.3.1
49
- Requires-Dist: pandas >=2.1.1
50
- Requires-Dist: PyYAML >=6.0.1
51
- Requires-Dist: ultralytics-yolov5 ==0.1.1
52
-
53
- # MegaDetector
54
-
55
- This package is a pip-installable version of the support/inference code for [MegaDetector](https://github.com/agentmorris/MegaDetector/?tab=readme-ov-file#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](https://megadetector.readthedocs.io).
56
-
57
- If you aren't looking for the Python package specifically, and you just want to learn more about what MegaDetector is all about, head over to the [MegaDetector repo](https://github.com/agentmorris/MegaDetector/?tab=readme-ov-file#megadetector).
58
-
59
-
60
- ## Reasons you might not be looking for this package
61
-
62
- ### If you are an ecologist...
63
-
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, or at least you probably don't want to start at this page. 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.
65
-
66
- ### If you are a computer-vision-y type...
67
-
68
- If you are a computer-vision-y person looking to run or fine-tune MegaDetector programmatically, you probably don't want this package. MegaDetector is just a fine-tuned version of [YOLOv5](https://github.com/ultralytics/yolov5), and the [ultralytics](https://github.com/ultralytics/ultralytics/) package (from the developers of YOLOv5) has a zillion bells and whistles for both inference and fine-tuning that this package doesn't.
69
-
70
- ## Reasons you might want to use this package
71
-
72
- If you want to programmatically interact with the postprocessing tools from the MegaDetector repo, or programmatically run MegaDetector in a way that produces [Timelapse](https://saul.cpsc.ucalgary.ca/timelapse)-friendly output (i.e., output in the standard [MegaDetector output format](https://github.com/agentmorris/MegaDetector/tree/main/megadetector/api/batch_processing#megadetector-batch-output-format)), this package might be for you.
73
-
74
- ## If I haven't talked you out of using this package...
75
-
76
- To install:
77
-
78
- `pip install megadetector`
79
-
80
- MegaDetector model weights aren't downloaded at pip-install time, but they will be (optionally) automatically downloaded the first time you run the model.
81
-
82
- ## Package reference
83
-
84
- See [megadetector.readthedocs.io](https://megadetector.readthedocs.io).
85
-
86
-
87
- ## Examples of things you can do with this package
88
-
89
- ### Run MegaDetector on one image and count the number of detections
90
-
91
- ```
92
- from megadetector.utils import url_utils
93
- from megadetector.visualization import visualization_utils as vis_utils
94
- from megadetector.detection import run_detector
95
-
96
- # This is the image at the bottom of this page, it has one animal in it
97
- image_url = 'https://github.com/agentmorris/MegaDetector/raw/main/images/orinoquia-thumb-web.jpg'
98
- temporary_filename = url_utils.download_url(image_url)
99
-
100
- image = vis_utils.load_image(temporary_filename)
101
-
102
- # This will automatically download MDv5a; you can also specify a filename.
103
- model = run_detector.load_detector('MDV5A')
104
-
105
- result = model.generate_detections_one_image(image)
106
-
107
- detections_above_threshold = [d for d in result['detections'] if d['conf'] > 0.2]
108
- print('Found {} detections above threshold'.format(len(detections_above_threshold)))
109
- ```
110
-
111
- ### Run MegaDetector on a folder of images
112
-
113
- ```
114
- from megadetector.detection.run_detector_batch import \
115
- load_and_run_detector_batch, write_results_to_file
116
- from megadetector.utils import path_utils
117
- import os
118
-
119
- # Pick a folder to run MD on recursively, and an output file
120
- image_folder = os.path.expanduser('~/megadetector_test_images')
121
- output_file = os.path.expanduser('~/megadetector_output_test.json')
122
-
123
- # Recursively find images
124
- image_file_names = path_utils.find_images(image_folder,recursive=True)
125
-
126
- # This will automatically download MDv5a; you can also specify a filename.
127
- results = load_and_run_detector_batch('MDV5A', image_file_names)
128
-
129
- # Write results to a format that Timelapse and other downstream tools like.
130
- write_results_to_file(results,
131
- output_file,
132
- relative_path_base=image_folder,
133
- detector_file=detector_filename)
134
- ```
135
-
136
- ## Contact
137
-
138
- Contact <a href="cameratraps@lila.science">cameratraps@lila.science</a> with questions.
139
-
140
- ## Gratuitous animal picture
141
-
142
- <img src="https://github.com/agentmorris/MegaDetector/raw/main/images/orinoquia-thumb-web_detections.jpg"><br/>Image credit University of Minnesota, from the [Orinoquía Camera Traps](http://lila.science/datasets/orinoquia-camera-traps/) data set.
1
+ Metadata-Version: 2.2
2
+ Name: megadetector
3
+ Version: 5.0.22
4
+ Summary: MegaDetector is an AI model that helps conservation folks spend less time doing boring things with camera trap images.
5
+ Author-email: Your friendly neighborhood MegaDetector team <cameratraps@lila.science>
6
+ Maintainer-email: Your friendly neighborhood MegaDetector team <cameratraps@lila.science>
7
+ License: MIT License
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in all
17
+ copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25
+ SOFTWARE.
26
+
27
+ Project-URL: Homepage, https://github.com/agentmorris/MegaDetector
28
+ Project-URL: Documentation, https://megadetector.readthedocs.io
29
+ Project-URL: Bug Reports, https://github.com/agentmorris/MegaDetector/issues
30
+ Project-URL: Source, https://github.com/agentmorris/MegaDetector
31
+ Keywords: camera traps,conservation,wildlife,ai,megadetector
32
+ Classifier: Development Status :: 3 - Alpha
33
+ Classifier: License :: OSI Approved :: MIT License
34
+ Classifier: Programming Language :: Python :: 3
35
+ Requires-Python: <3.12,>=3.9
36
+ Description-Content-Type: text/markdown
37
+ License-File: LICENSE
38
+ Requires-Dist: Pillow>=9.5
39
+ Requires-Dist: tqdm>=4.64.0
40
+ Requires-Dist: jsonpickle>=3.0.2
41
+ Requires-Dist: humanfriendly>=10.0
42
+ Requires-Dist: numpy<1.24,>=1.22
43
+ Requires-Dist: matplotlib>=3.8.0
44
+ Requires-Dist: opencv-python>=4.8.0
45
+ Requires-Dist: requests>=2.31.0
46
+ Requires-Dist: pyqtree>=1.0.0
47
+ Requires-Dist: seaborn>=0.12.2
48
+ Requires-Dist: scikit-learn>=1.3.1
49
+ Requires-Dist: pandas>=2.1.1
50
+ Requires-Dist: PyYAML>=6.0.1
51
+ Requires-Dist: ultralytics-yolov5==0.1.1
52
+ Requires-Dist: python-dateutil
53
+
54
+ # MegaDetector
55
+
56
+ This package is a pip-installable version of the support/inference code for [MegaDetector](https://github.com/agentmorris/MegaDetector/?tab=readme-ov-file#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](https://megadetector.readthedocs.io).
57
+
58
+ If you aren't looking for the Python package specifically, and you just want to learn more about what MegaDetector is all about, head over to the [MegaDetector repo](https://github.com/agentmorris/MegaDetector/?tab=readme-ov-file#megadetector).
59
+
60
+
61
+ ## Reasons you might not be looking for this package
62
+
63
+ ### If you are an ecologist...
64
+
65
+ 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, or at least you probably don't want to start at this page. 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.
66
+
67
+ ### If you are a computer-vision-y type...
68
+
69
+ If you are a computer-vision-y person looking to run or fine-tune MegaDetector programmatically, you probably don't want this package. MegaDetector is just a fine-tuned version of [YOLOv5](https://github.com/ultralytics/yolov5), and the [ultralytics](https://github.com/ultralytics/ultralytics/) package (from the developers of YOLOv5) has a zillion bells and whistles for both inference and fine-tuning that this package doesn't.
70
+
71
+ ## Reasons you might want to use this package
72
+
73
+ If you want to programmatically interact with the postprocessing tools from the MegaDetector repo, or programmatically run MegaDetector in a way that produces [Timelapse](https://saul.cpsc.ucalgary.ca/timelapse)-friendly output (i.e., output in the standard [MegaDetector output format](https://github.com/agentmorris/MegaDetector/tree/main/megadetector/api/batch_processing#megadetector-batch-output-format)), this package might be for you.
74
+
75
+ ## If I haven't talked you out of using this package...
76
+
77
+ To install:
78
+
79
+ `pip install megadetector`
80
+
81
+ 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
+ ## Package reference
84
+
85
+ See [megadetector.readthedocs.io](https://megadetector.readthedocs.io).
86
+
87
+
88
+ ## Examples of things you can do with this package
89
+
90
+ ### Run MegaDetector on one image and count the number of detections
91
+
92
+ ```
93
+ from megadetector.utils import url_utils
94
+ from megadetector.visualization import visualization_utils as vis_utils
95
+ from megadetector.detection import run_detector
96
+
97
+ # This is the image at the bottom of this page, it has one animal in it
98
+ image_url = 'https://github.com/agentmorris/MegaDetector/raw/main/images/orinoquia-thumb-web.jpg'
99
+ temporary_filename = url_utils.download_url(image_url)
100
+
101
+ image = vis_utils.load_image(temporary_filename)
102
+
103
+ # This will automatically download MDv5a; you can also specify a filename.
104
+ model = run_detector.load_detector('MDV5A')
105
+
106
+ result = model.generate_detections_one_image(image)
107
+
108
+ detections_above_threshold = [d for d in result['detections'] if d['conf'] > 0.2]
109
+ print('Found {} detections above threshold'.format(len(detections_above_threshold)))
110
+ ```
111
+
112
+ ### Run MegaDetector on a folder of images
113
+
114
+ ```
115
+ from megadetector.detection.run_detector_batch import \
116
+ load_and_run_detector_batch, write_results_to_file
117
+ from megadetector.utils import path_utils
118
+ import os
119
+
120
+ # Pick a folder to run MD on recursively, and an output file
121
+ image_folder = os.path.expanduser('~/megadetector_test_images')
122
+ output_file = os.path.expanduser('~/megadetector_output_test.json')
123
+
124
+ # Recursively find images
125
+ image_file_names = path_utils.find_images(image_folder,recursive=True)
126
+
127
+ # This will automatically download MDv5a; you can also specify a filename.
128
+ results = load_and_run_detector_batch('MDV5A', image_file_names)
129
+
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)
135
+ ```
136
+
137
+ ## Contact
138
+
139
+ Contact <a href="cameratraps@lila.science">cameratraps@lila.science</a> with questions.
140
+
141
+ ## Gratuitous animal picture
142
+
143
+ <img src="https://github.com/agentmorris/MegaDetector/raw/main/images/orinoquia-thumb-web_detections.jpg"><br/>Image credit University of Minnesota, from the [Orinoquía Camera Traps](http://lila.science/datasets/orinoquia-camera-traps/) data set.
@@ -53,8 +53,8 @@ megadetector/classification/efficientnet/model.py,sha256=qJHWV9-rYKa4E_TIee5N_Oj
53
53
  megadetector/classification/efficientnet/utils.py,sha256=dzrDrQQcvINdJFbODmrHQMUaM0RaUbct52zcSprseAg,24693
54
54
  megadetector/data_management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
55
  megadetector/data_management/camtrap_dp_to_coco.py,sha256=WC5u5nK5BwXpV26_pGy6CppQryJMgsJ9NtDbGIRQqLg,8629
56
- megadetector/data_management/cct_json_utils.py,sha256=LuNbxU5EAslWanC08PTKzwzCUmesGnbbJhZ1e2dCgnI,15140
57
- megadetector/data_management/cct_to_md.py,sha256=zgMU2_NjPs5nPGDKf0n1ouJdyiAsgR4Q9wj-Q9Y-c88,5070
56
+ megadetector/data_management/cct_json_utils.py,sha256=d1jDmL5wioypt4Ny6BRBNg6iUBaqpq2E2xf162n6zGo,19520
57
+ megadetector/data_management/cct_to_md.py,sha256=Q6ika31wwHLdRcdH_0QFs2o5elu44rhF4UEJ-u3edpk,5441
58
58
  megadetector/data_management/cct_to_wi.py,sha256=hnFErIlBDmhZtBv21kDW14MSdHlUjwtCGn2vnG-cN34,9771
59
59
  megadetector/data_management/coco_to_labelme.py,sha256=Uql6f1TaMmKIZClCcqUB1bPxokdXgyAKsQm5pk5foKk,8986
60
60
  megadetector/data_management/coco_to_yolo.py,sha256=rTDOh3XdoOoo7HCSH7obT3xpQgiSykf71ba8uOXfnxc,28121
@@ -63,10 +63,10 @@ megadetector/data_management/get_image_sizes.py,sha256=2b6arj4gvoN-9f61lC3t1zAFF
63
63
  megadetector/data_management/labelme_to_coco.py,sha256=8RUXALXbLpmS7UYUet4BAe9JVSDW7ojwDDpxYs072ZI,21231
64
64
  megadetector/data_management/labelme_to_yolo.py,sha256=dRePSOwU_jiCr0EakDQCz1Ct-ZHDxDglUk4HbM1LfWc,10034
65
65
  megadetector/data_management/ocr_tools.py,sha256=T9ClY3B-blnK3-UF1vpVdageknYsykm_6FAfqn0kliU,32529
66
- megadetector/data_management/read_exif.py,sha256=iW3oQz4vKHnSe1nY38Pp-bXlQ5EUO49ttnhvO-0Pcqk,30508
66
+ megadetector/data_management/read_exif.py,sha256=TIPf1OHFhuDq7M2H9MxcEEvN17G0dpJTriRTtiqIvxA,30474
67
67
  megadetector/data_management/remap_coco_categories.py,sha256=xXWv0QhTjkUfc9RKtAZanK77HMSq_21mFg_34KFD6hw,2903
68
68
  megadetector/data_management/remove_exif.py,sha256=vIWnJfw1i9JgyQKUDGEzzqkHro4ndykIPFWhtkm6RAU,2502
69
- megadetector/data_management/rename_images.py,sha256=AG3YIxXEYdGmK4G-rv0_XZIylPqOZpS6gfEkydF6oDg,6918
69
+ megadetector/data_management/rename_images.py,sha256=ikIj_b5DY1rgaAn9n_IbwsnugAolczFNivh4xzfLPy8,6915
70
70
  megadetector/data_management/resize_coco_dataset.py,sha256=AaiV7efIcNnqsXsnQckmHq2G__7ZQHBV_jN6rhZfMjo,6810
71
71
  megadetector/data_management/wi_download_csv_to_coco.py,sha256=ilnJZhNZK-FGUR-AfUSWjIDUk9Gytgxw7IOK_N8WKLE,8350
72
72
  megadetector/data_management/yolo_output_to_md_output.py,sha256=VuU9G6QOeAXOa7JsuHjSYhE3Y7MjEd2bPtceugOOILY,17920
@@ -76,7 +76,7 @@ megadetector/data_management/annotations/annotation_constants.py,sha256=1597MpAr
76
76
  megadetector/data_management/databases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
77
  megadetector/data_management/databases/add_width_and_height_to_db.py,sha256=X7A_iniGwlkhZ0jUNm564GT_mH2_RJGLD0aGP9cBhY0,749
78
78
  megadetector/data_management/databases/combine_coco_camera_traps_files.py,sha256=oeELrMgxhsJ6aNBxPQyu4CmsdtYnzS5GKZEV8U-XUdk,6693
79
- megadetector/data_management/databases/integrity_check_json_db.py,sha256=A8AAlpfAbbthUH3ZOQrvRjzliMl2RS8g764Nk7Ypuqk,17109
79
+ megadetector/data_management/databases/integrity_check_json_db.py,sha256=h1jPDx9EuWLN1mMzedLMhDuLGqAcNA4rvFqjXE0_1vg,17602
80
80
  megadetector/data_management/databases/subset_json_db.py,sha256=JK71qSUpUZe7cJquyt2xEzirDoZq1Lrr2X0cgtHKBpA,3219
81
81
  megadetector/data_management/importers/add_nacti_sizes.py,sha256=jjGTpd36g5w7nLIeOatXRwu1Uti2GiGgP3-61QSg8oA,1156
82
82
  megadetector/data_management/importers/add_timestamps_to_icct.py,sha256=5l1TkWq3X4Mxed7zlZ07U1RQcjbzBnwcoftNiaruigM,2364
@@ -105,6 +105,7 @@ megadetector/data_management/importers/osu-small-animals-to-json.py,sha256=wBbnY
105
105
  megadetector/data_management/importers/pc_to_json.py,sha256=VmVvY5Fr8jMLmRkDZI9CuyLvrNuLrspJA9Q8Auxbw1A,10762
106
106
  megadetector/data_management/importers/plot_wni_giraffes.py,sha256=KdEjbItDOXbXj0fr0celfMp7z31Rr3S29SLWBCMY-4M,3772
107
107
  megadetector/data_management/importers/prepare_zsl_imerit.py,sha256=ohrUaTXIGg1M4_liptWaPa-4g3yNvc1E4o_knfHSE-8,3775
108
+ megadetector/data_management/importers/raic_csv_to_md_results.py,sha256=37ycjxUcLPannopea5shCIpFnsUcROOx_0BpuQ0Pu6Q,15921
108
109
  megadetector/data_management/importers/rspb_to_json.py,sha256=y03v1d1un9mI3HZRCZinMB1pEkNvTb70S7Qkr3F76qg,9841
109
110
  megadetector/data_management/importers/save_the_elephants_survey_A.py,sha256=lugw8m5Nh2Fhs-FYo9L0mDL3_29nAweLxEul6GekdkI,10669
110
111
  megadetector/data_management/importers/save_the_elephants_survey_B.py,sha256=SWClXENsIePwifP8eJeRsj3kh3Bztl6Kzc_BdqNZvFw,11172
@@ -116,7 +117,7 @@ megadetector/data_management/importers/ubc_to_json.py,sha256=UhZ2P6WlLioLEPkfo7N
116
117
  megadetector/data_management/importers/umn_to_json.py,sha256=wCVgvz1x7gL67s1Avyx0NwBvwSjhNMcAwOnDHR0O5G0,16185
117
118
  megadetector/data_management/importers/wellington_to_json.py,sha256=TQivUZSgD-PeudGRAsgmsYznxDVaOPbbV4V9scnmZFg,7688
118
119
  megadetector/data_management/importers/wi_to_json.py,sha256=tdscGc8SQdRbtjsUVQyCBcxR7_TjPNb_A6OLLUhOe9I,13663
119
- megadetector/data_management/importers/zamba_results_to_md_results.py,sha256=L0E_zwPyN8Lvn1ukOw95TQ-APM7fBki_2_eKJhC3HkE,5381
120
+ megadetector/data_management/importers/zamba_results_to_md_results.py,sha256=DD13mDXAscQQekNSoTOFYROBfNdrLPVJnb_B32esesI,5300
120
121
  megadetector/data_management/importers/eMammal/copy_and_unzip_emammal.py,sha256=CoP8rZOuLDIIL5jajB4WLnMhum19Ol-UT4W25FiF3zE,6085
121
122
  megadetector/data_management/importers/eMammal/eMammal_helpers.py,sha256=Sv6PBAMDdlgwiek6Q3R6Rjio2RjtA-JpfgBr_Fmr9kA,6838
122
123
  megadetector/data_management/importers/eMammal/make_eMammal_json.py,sha256=6C_-6Qk-Xhz_87DEPHA-txw90AvXrybJy1PbQXQbqwo,6987
@@ -126,52 +127,52 @@ megadetector/data_management/lila/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
126
127
  megadetector/data_management/lila/add_locations_to_island_camera_traps.py,sha256=OQ-wn2YX0V96aw1EJxUAMYRnkv9G-dvHBU8ULQF-Tus,2583
127
128
  megadetector/data_management/lila/add_locations_to_nacti.py,sha256=S4ty7lARf2O13_GWTX1pFYyixPCNecqUj6jpO3hOV2w,4849
128
129
  megadetector/data_management/lila/create_lila_blank_set.py,sha256=SBwpM0-pycW37TESXaJlc2oo_qIxYJoOzHhmmnBHWWI,19826
129
- megadetector/data_management/lila/create_lila_test_set.py,sha256=DjivKgsFJlO1IHezXrwAGpiCAhLVmvPnv2nJYpv1ABU,4835
130
+ megadetector/data_management/lila/create_lila_test_set.py,sha256=nnjaxbK-5uIP7hUT8rqlnWepKXauGEQsRS5-H8rOVrA,5184
130
131
  megadetector/data_management/lila/create_links_to_md_results_files.py,sha256=MvaPBAgdwoxaNrRaKZ8mGaOCky1BYXlrT08tPG9BrpM,3803
131
- megadetector/data_management/lila/download_lila_subset.py,sha256=rh09kphSCVPlUGuYY-CkSyd8dy0pBUdth6uHkZ84sEo,5345
132
- megadetector/data_management/lila/generate_lila_per_image_labels.py,sha256=WRfqYW0cyan_-2OHy4YudoUC8ojjslfBHS_iA8JLaPo,18150
132
+ megadetector/data_management/lila/download_lila_subset.py,sha256=0tzz43-uBA6fEPoxH7xy1yDXmwgwYcb5Wm11F6zZQtw,5477
133
+ megadetector/data_management/lila/generate_lila_per_image_labels.py,sha256=JZH_u5ckYODAO4yHWQ_dkI-Sq5hgj5rO82iisG7e-Lg,18239
133
134
  megadetector/data_management/lila/get_lila_annotation_counts.py,sha256=DWysGF5y7E_RYEoAyvR5RUPTOZVbauTxfAwFcIbn5sc,5622
134
135
  megadetector/data_management/lila/get_lila_image_counts.py,sha256=UxXS5RDnSA_WbxE92qN-N7p-qR-jbyTsTZ7duLo06us,3620
135
136
  megadetector/data_management/lila/lila_common.py,sha256=74ecaGItH4AtCYeY1WSejLIcylhJPCJ1y97gYYL34PM,11080
136
- megadetector/data_management/lila/test_lila_metadata_urls.py,sha256=iMpoz9Y6fcVz9whTJpo2f6EuTCiptUix2UV6khyKn9I,4688
137
+ megadetector/data_management/lila/test_lila_metadata_urls.py,sha256=qKyZAb17Va9rfLdNwiOBER02yhUwquOSR9VURtxzugY,4784
137
138
  megadetector/detection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
- megadetector/detection/process_video.py,sha256=4Fwt9utPjctSUMe8YnJzgoEsu_WHehe7MKIR3s81hC8,53242
139
- megadetector/detection/pytorch_detector.py,sha256=StOnaspDBkMeePiTyq5ZEcFUDBEddq36nigHXbF-zAQ,14029
140
- megadetector/detection/run_detector.py,sha256=r_RKrrz6ppKe9cLvuN9Q3OUhv032wC7uESQ_vxJZ1iw,32029
139
+ megadetector/detection/process_video.py,sha256=EizrKUuLZdtJdr9DE5oeqwk6Kst1RdvFxlwBneOEnU8,53569
140
+ megadetector/detection/pytorch_detector.py,sha256=Tm1o03PhI7oVBZ1_BINBKTWVHp2EdT42vF7h0gI_hJ0,14566
141
+ megadetector/detection/run_detector.py,sha256=fq5WLOAGJ0mSGfVL4-uLj2VUH-Tp1h1-zo_MW27MW4g,32077
141
142
  megadetector/detection/run_detector_batch.py,sha256=a98fzorcGtQaOYa5AGW2XPoJpbHeJWO5prqwzxVoPaI,62055
142
- megadetector/detection/run_inference_with_yolov5_val.py,sha256=2miU2QZG_zp3rEPyoKf2XozuMpW6zAW4bAoyg6hSe-k,48691
143
+ megadetector/detection/run_inference_with_yolov5_val.py,sha256=wMDkSm24L8-XIFb1Mi3jpr4mX5H0h39uYWJYsgPd8Q8,53436
143
144
  megadetector/detection/run_tiled_inference.py,sha256=vw0713eNuMiEOjHfweQl58zPHNxPOMdFWZ8bTDLhlMY,37883
144
145
  megadetector/detection/tf_detector.py,sha256=5V94a0gR6WmGPacKm59hl1eYEZI8cG04frF4EvHrmzU,8285
145
- megadetector/detection/video_utils.py,sha256=TmUIcnnqk3VEXtk9MXHKAvixqCCVMvj5HHuBOmPBNDk,43036
146
+ megadetector/detection/video_utils.py,sha256=XqaaF8YQX-goSzHEoHasmkuNF7DrbFDil0Xd9KjHb5Q,43821
146
147
  megadetector/detection/detector_training/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
147
148
  megadetector/detection/detector_training/model_main_tf2.py,sha256=YwNsZ7hkIFaEuwKU0rHG_VyqiR_0E01BbdlD0Yx4Smo,4936
148
149
  megadetector/postprocessing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
149
150
  megadetector/postprocessing/add_max_conf.py,sha256=qTE1_0RwGAy6jLDkHrIo2pS84yNbUV11s4IZuAYGdIU,1514
150
151
  megadetector/postprocessing/categorize_detections_by_size.py,sha256=YdapcvjA6Dz2dPa2AFf1Dwyl7C-OmmP4G4OjhTOuaF4,5797
151
- megadetector/postprocessing/classification_postprocessing.py,sha256=8uvlA0Gc8nakM5IE5Pud7WZfmF5kEhcYvxgQXcI9kl0,30429
152
+ megadetector/postprocessing/classification_postprocessing.py,sha256=SJah7xrVN06W_jmKdEF_-ykcaKE6fDTGHFhOz4rYi8g,30430
152
153
  megadetector/postprocessing/combine_api_outputs.py,sha256=zBGpSLbcQUiLYxgJrjZXjBwc2dOwAytV30UFnroP2Fg,8536
153
- megadetector/postprocessing/compare_batch_results.py,sha256=7O5c6-JsIDpuIGobks_R9j8MPuiZQRnEtNnJQsJqICM,38918
154
+ megadetector/postprocessing/compare_batch_results.py,sha256=DJk0mkhgHM9AVLDLCrAhHggfW3IimlziU80SNN0xi84,75179
154
155
  megadetector/postprocessing/convert_output_format.py,sha256=HwThfK76UPEAGa3KQbJ_tMKIrUvJ3JhKoQVWJt9dPBk,15447
155
- megadetector/postprocessing/detector_calibration.py,sha256=WHIj-i91geXZjNV2Am2783PL2iGAebkeVFJZhc1K6uY,12702
156
+ megadetector/postprocessing/detector_calibration.py,sha256=rzAsiUJhw8Y4RxSK1SMnsdjI3MYkFA9NP5vJ7CNsX0I,21820
156
157
  megadetector/postprocessing/load_api_results.py,sha256=FqcaiPMuqTojZOV3Jn14pJESpuwjWGbZtcvJuVXUaDM,6861
157
- megadetector/postprocessing/md_to_coco.py,sha256=AhlI2w2kOu1Y1b4yliyu81WsMBxYXcBJ0YAF5laX9v8,12406
158
+ megadetector/postprocessing/md_to_coco.py,sha256=wleD9Fq2zvQ5ubwfV3KUsDmgpiLnBXh5XvjjYk7YIH8,15971
158
159
  megadetector/postprocessing/md_to_labelme.py,sha256=hejMKVxaz_xdtsGDPTQkeWuis7gzT-VOrL2Qf8ym1x0,11703
159
160
  megadetector/postprocessing/merge_detections.py,sha256=AEMgMivhph1vph_t_Qv85d9iHynT2nvq7otN4KGrDLU,17776
160
- megadetector/postprocessing/postprocess_batch_results.py,sha256=JnH3bezK9lm5Sljlsxgp9_JFUgUzcjRDjRRbLOYy7qk,79879
161
+ megadetector/postprocessing/postprocess_batch_results.py,sha256=Ln1fCqdc2_sFpxeKN_DuoyuaOd8okABMtiYbcxi33AU,79878
161
162
  megadetector/postprocessing/remap_detection_categories.py,sha256=d9IYTa0i_KbbrarJc_mczABmdwypscl5-KpK8Hx_z8o,6640
162
163
  megadetector/postprocessing/render_detection_confusion_matrix.py,sha256=_wsk4W0PbNiqmFuHy-EA0Z07B1tQLMsdCTPatnHAdZw,27382
163
164
  megadetector/postprocessing/separate_detections_into_folders.py,sha256=k42gxnL8hbBiV0e2T-jmFrhxzIxnhi57Nx9cDSSL5s0,31218
164
165
  megadetector/postprocessing/subset_json_detector_output.py,sha256=PDgb6cnsFm9d4E7_sMVIguLIU7s79uFQa2CRCxAO0F4,27064
165
166
  megadetector/postprocessing/top_folders_to_bottom.py,sha256=Dqk-KZXiRlIYlmLZmk6aUapmaaLJUKOf8wK1kxt9W6A,6283
166
- megadetector/postprocessing/validate_batch_results.py,sha256=bC2wSuR1ir3gW-VF6zFq6TqoMIxDXIK4eyTM8oBq6u8,8598
167
+ megadetector/postprocessing/validate_batch_results.py,sha256=JGkefSpiXy1SEfJ6cjW1Wg7ABsIcz4VMojTqdpY6PpE,11224
167
168
  megadetector/postprocessing/repeat_detection_elimination/find_repeat_detections.py,sha256=e4Y9CyMyd-bLN3il8tu76vI0nVYHZlhZr6vcL0J4zQ0,9832
168
169
  megadetector/postprocessing/repeat_detection_elimination/remove_repeat_detections.py,sha256=tARPxuY0OyQgpKU2XqiQPko3f-hHnWuISB8ZlZgXwxI,2819
169
170
  megadetector/postprocessing/repeat_detection_elimination/repeat_detections_core.py,sha256=vEmWLSSv0_rxDwhjz_S9YaKZ_LM2tADTz2JYb_zUCnc,67923
170
171
  megadetector/taxonomy_mapping/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
171
172
  megadetector/taxonomy_mapping/map_lila_taxonomy_to_wi_taxonomy.py,sha256=6D_YHTeWTs6O8S9ABog2t9-wfQSh9dW2k9XTqXUZKfo,17927
172
- megadetector/taxonomy_mapping/map_new_lila_datasets.py,sha256=g--BMaLkFvkXyBs48od1fEX0T9BgpxlJicGeSHKeNUU,4150
173
- megadetector/taxonomy_mapping/prepare_lila_taxonomy_release.py,sha256=-BpstFpmO_HcyEKaQt8bGsX5bcdPSPpR7S5ZQyhXwwo,4800
174
- megadetector/taxonomy_mapping/preview_lila_taxonomy.py,sha256=SpZzL5Ibsz34bc6gPQ2vrgD8EHBmHxrr7b4PFAT9_IE,19580
173
+ megadetector/taxonomy_mapping/map_new_lila_datasets.py,sha256=ELv_3KYUQBWDQH1ikhXenyPm-tYmKn8fARbNECqLgJs,4242
174
+ megadetector/taxonomy_mapping/prepare_lila_taxonomy_release.py,sha256=kemgxFTriz92Z4fJL0FSimmhhLtC3nBZuZ-Cy9cl1kM,4812
175
+ megadetector/taxonomy_mapping/preview_lila_taxonomy.py,sha256=eL5nax3zEtNtfX5urk55A4iR_5S-oH0Bwn_qwBMl3tA,19612
175
176
  megadetector/taxonomy_mapping/retrieve_sample_image.py,sha256=4cfWsLRwS_EwAmQr2p5tA_W6glBK71tSjPfaHxUZQWs,1979
176
177
  megadetector/taxonomy_mapping/simple_image_download.py,sha256=wLhyMSocX_JhDGA6yLbEfpysz8MMI8YFJWaxyA-GZ9c,6932
177
178
  megadetector/taxonomy_mapping/species_lookup.py,sha256=HZ7fyhap9CNdhdmq-id8dMnIa9TPMA3557rsamAkWkU,28329
@@ -180,25 +181,25 @@ megadetector/taxonomy_mapping/taxonomy_graph.py,sha256=ayrTFseVaIMbtMXhnjWCkZdxI
180
181
  megadetector/taxonomy_mapping/validate_lila_category_mappings.py,sha256=1qyZr23bvZSVUYLQnO1XAtIZ4jdpARA5dxt8euKVyOA,2527
181
182
  megadetector/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
183
  megadetector/utils/azure_utils.py,sha256=0BdnkG2hW-X0yFpsJqmBhOd2wysz_LvhuyImPJMVPJs,6271
183
- megadetector/utils/ct_utils.py,sha256=Ecac5CLEIrEi89JFuoqdOMxiOdmbno106a1MT2SVdJY,19956
184
+ megadetector/utils/ct_utils.py,sha256=Sv4vUwDou9-fr2hRZu2EmOhj4EBZwrGEbV0QEYQs53o,21526
184
185
  megadetector/utils/directory_listing.py,sha256=r4rg2xA4O9ZVxVtzPZzXIXa0DOEukAJMTTNcNSiQcuM,9668
185
- megadetector/utils/md_tests.py,sha256=DvGfRZXpes4bg8S_-btA2NEW8X7k8vXfRaOZewauVxM,61189
186
- megadetector/utils/path_utils.py,sha256=Kn7Ro37MapRW78_eraK_V_4_I-V8H9pgtvTDL4q7_a8,40571
187
- megadetector/utils/process_utils.py,sha256=2SdFVxqob-YUW2BTjUEavNuRH3jA4V05fbKMtrVSd3c,5635
186
+ megadetector/utils/md_tests.py,sha256=gQXUlcXbCgtAafqeXAmSsueUneEEMqEVCoWUH4c_k4s,61190
187
+ megadetector/utils/path_utils.py,sha256=W5Md6VM2v6UDGdmyR9fHMN6bTIVT-2FECfmUMZd1BAY,40877
188
+ megadetector/utils/process_utils.py,sha256=K7-ZW_bJbMgeDBLDhYHMV84urM8H7L6IddQS5z3UgBw,5824
188
189
  megadetector/utils/sas_blob_utils.py,sha256=k76EcMmJc_otrEHcfV2fxAC6fNhxU88FxM3ddSYrsKU,16917
189
190
  megadetector/utils/split_locations_into_train_val.py,sha256=jvaDu1xKB51L3Xq2nXQo0XtXRjNRf8RglBApl1g6gHo,10101
190
191
  megadetector/utils/string_utils.py,sha256=ZQapJodzvTDyQhjZgMoMl3-9bqnKAUlORpws8Db9AkA,2050
191
192
  megadetector/utils/torch_test.py,sha256=aEYE-1vGt5PujD0bHAVRTJiLrKFlGWpS8zeYhqEYZLY,853
192
193
  megadetector/utils/url_utils.py,sha256=yybWwJ-vl2A6Fci66i-xt_dl3Uqh72Ylnb8XOT2Grog,14835
193
- megadetector/utils/write_html_image_list.py,sha256=zz98QFQlUIb-kKC-I7llf4EXbNh3PULZBtCZpfMVMfM,9148
194
+ megadetector/utils/write_html_image_list.py,sha256=MhVAAv6th9Q2fldtE8hp_hHWFgJ_pcKJEk3YiK6dWY4,9415
194
195
  megadetector/visualization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
195
196
  megadetector/visualization/plot_utils.py,sha256=lOfU3uPrcuHZagV_1SN8erT8PujIepocgw6KZ17Ej6c,10671
196
197
  megadetector/visualization/render_images_with_thumbnails.py,sha256=kgJYW8BsqRO4C7T3sqItdBuSkZ64I1vOtIWAsVG4XBI,10589
197
- megadetector/visualization/visualization_utils.py,sha256=1_xUzuiA-GTD7XNsRwZiemXjQZooOa4p4_nqMd9u6F4,66269
198
+ megadetector/visualization/visualization_utils.py,sha256=KsQKxANzCqLoLrI5b-5U5LEGhJIKH0YNNJQOym9DE3M,72779
198
199
  megadetector/visualization/visualize_db.py,sha256=tswoWqyAo_S5RW76yvPEEWkUVEzn2NJrX1lfDl2jqY4,24392
199
200
  megadetector/visualization/visualize_detector_output.py,sha256=LY8QgDWpWlXVLZJUskvT29CdkNvIlEsFTk4DC_lS6pk,17052
200
- megadetector-5.0.21.dist-info/LICENSE,sha256=RMa3qq-7Cyk7DdtqRj_bP1oInGFgjyHn9-PZ3PcrqIs,1100
201
- megadetector-5.0.21.dist-info/METADATA,sha256=Spj46ZROGJbmTdn_D-pOTHFAODg1npXS8xyiErghlKo,7468
202
- megadetector-5.0.21.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
203
- megadetector-5.0.21.dist-info/top_level.txt,sha256=wf9DXa8EwiOSZ4G5IPjakSxBPxTDjhYYnqWRfR-zS4M,13
204
- megadetector-5.0.21.dist-info/RECORD,,
201
+ megadetector-5.0.22.dist-info/LICENSE,sha256=RMa3qq-7Cyk7DdtqRj_bP1oInGFgjyHn9-PZ3PcrqIs,1100
202
+ megadetector-5.0.22.dist-info/METADATA,sha256=f8OKhVhNxpXvY_i9sshe9Og8Z7pPA4m5e_MOmIzp-Rs,7632
203
+ megadetector-5.0.22.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
204
+ megadetector-5.0.22.dist-info/top_level.txt,sha256=wf9DXa8EwiOSZ4G5IPjakSxBPxTDjhYYnqWRfR-zS4M,13
205
+ megadetector-5.0.22.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.3.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5