megadetector 5.0.24__py3-none-any.whl → 5.0.26__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 (41) hide show
  1. megadetector/data_management/cct_json_utils.py +15 -2
  2. megadetector/data_management/coco_to_yolo.py +53 -31
  3. megadetector/data_management/databases/combine_coco_camera_traps_files.py +7 -3
  4. megadetector/data_management/databases/integrity_check_json_db.py +2 -2
  5. megadetector/data_management/lila/add_locations_to_island_camera_traps.py +73 -69
  6. megadetector/data_management/lila/add_locations_to_nacti.py +114 -110
  7. megadetector/data_management/lila/generate_lila_per_image_labels.py +2 -2
  8. megadetector/data_management/lila/test_lila_metadata_urls.py +21 -10
  9. megadetector/data_management/remap_coco_categories.py +60 -11
  10. megadetector/data_management/{wi_to_md.py → speciesnet_to_md.py} +2 -2
  11. megadetector/data_management/yolo_to_coco.py +45 -15
  12. megadetector/detection/run_detector.py +1 -0
  13. megadetector/detection/run_detector_batch.py +5 -4
  14. megadetector/postprocessing/classification_postprocessing.py +788 -524
  15. megadetector/postprocessing/compare_batch_results.py +176 -9
  16. megadetector/postprocessing/create_crop_folder.py +420 -0
  17. megadetector/postprocessing/load_api_results.py +4 -1
  18. megadetector/postprocessing/md_to_coco.py +1 -1
  19. megadetector/postprocessing/postprocess_batch_results.py +158 -44
  20. megadetector/postprocessing/repeat_detection_elimination/find_repeat_detections.py +3 -8
  21. megadetector/postprocessing/repeat_detection_elimination/repeat_detections_core.py +2 -2
  22. megadetector/postprocessing/separate_detections_into_folders.py +20 -4
  23. megadetector/postprocessing/subset_json_detector_output.py +180 -15
  24. megadetector/postprocessing/validate_batch_results.py +13 -5
  25. megadetector/taxonomy_mapping/map_new_lila_datasets.py +6 -6
  26. megadetector/taxonomy_mapping/preview_lila_taxonomy.py +3 -58
  27. megadetector/taxonomy_mapping/species_lookup.py +45 -2
  28. megadetector/utils/ct_utils.py +76 -3
  29. megadetector/utils/directory_listing.py +4 -4
  30. megadetector/utils/gpu_test.py +21 -3
  31. megadetector/utils/md_tests.py +142 -49
  32. megadetector/utils/path_utils.py +342 -19
  33. megadetector/utils/wi_utils.py +1286 -212
  34. megadetector/visualization/visualization_utils.py +16 -4
  35. megadetector/visualization/visualize_db.py +1 -1
  36. megadetector/visualization/visualize_detector_output.py +1 -4
  37. {megadetector-5.0.24.dist-info → megadetector-5.0.26.dist-info}/METADATA +6 -3
  38. {megadetector-5.0.24.dist-info → megadetector-5.0.26.dist-info}/RECORD +41 -40
  39. {megadetector-5.0.24.dist-info → megadetector-5.0.26.dist-info}/WHEEL +1 -1
  40. {megadetector-5.0.24.dist-info → megadetector-5.0.26.dist-info/licenses}/LICENSE +0 -0
  41. {megadetector-5.0.24.dist-info → megadetector-5.0.26.dist-info}/top_level.txt +0 -0
@@ -353,13 +353,14 @@ def resize_image(image, target_width=-1, target_height=-1, output_file=None,
353
353
  def crop_image(detections, image, confidence_threshold=0.15, expansion=0):
354
354
  """
355
355
  Crops detections above [confidence_threshold] from the PIL image [image],
356
- returning a list of PIL Images.
356
+ returning a list of PIL Images, preserving the order of [detections].
357
357
 
358
358
  Args:
359
359
  detections (list): a list of dictionaries with keys 'conf' and 'bbox';
360
360
  boxes are length-four arrays formatted as [x,y,w,h], normalized,
361
361
  upper-left origin (this is the standard MD detection format)
362
- image (Image): the PIL Image object from which we should crop detections
362
+ image (Image or str): the PIL Image object from which we should crop detections,
363
+ or an image filename
363
364
  confidence_threshold (float, optional): only crop detections above this threshold
364
365
  expansion (int, optional): a number of pixels to include on each side of a cropped
365
366
  detection
@@ -370,6 +371,9 @@ def crop_image(detections, image, confidence_threshold=0.15, expansion=0):
370
371
 
371
372
  ret_images = []
372
373
 
374
+ if isinstance(image,str):
375
+ image = load_image(image)
376
+
373
377
  for detection in detections:
374
378
 
375
379
  score = float(detection['conf'])
@@ -406,6 +410,8 @@ def crop_image(detections, image, confidence_threshold=0.15, expansion=0):
406
410
 
407
411
  return ret_images
408
412
 
413
+ # ...def crop_image(...)
414
+
409
415
 
410
416
  def blur_detections(image,detections,blur_radius=40):
411
417
  """
@@ -440,7 +446,12 @@ def blur_detections(image,detections,blur_radius=40):
440
446
  # Crop the region, blur it, and paste it back
441
447
  region = image.crop((left, top, right, bottom))
442
448
  blurred_region = region.filter(ImageFilter.GaussianBlur(radius=blur_radius))
443
- image.paste(blurred_region, (left, top))
449
+ image.paste(blurred_region, (left, top))
450
+
451
+ # ...for each detection
452
+
453
+ # ...def blur_detections(...)
454
+
444
455
 
445
456
  def render_detection_bounding_boxes(detections,
446
457
  image,
@@ -1563,7 +1574,8 @@ def parallel_get_image_sizes(filenames,
1563
1574
  Retrieve image sizes for a list or folder of images
1564
1575
 
1565
1576
  Args:
1566
- filenames (list or str): a list of image filenames or a folder
1577
+ filenames (list or str): a list of image filenames or a folder. Non-image files and
1578
+ unreadable images will be returned with a file size of None.
1567
1579
  max_workers (int, optional): the number of parallel workers to use; set to <=1 to disable
1568
1580
  parallelization
1569
1581
  use_threads (bool, optional): whether to use threads (True) or processes (False) for
@@ -51,7 +51,7 @@ class DbVizOptions:
51
51
  #: Target size for rendering; set either dimension to -1 to preserve aspect ratio.
52
52
  #:
53
53
  #: If viz_size is None or (-1,-1), the original image size is used.
54
- self.viz_size = (800, -1)
54
+ self.viz_size = (1000, -1)
55
55
 
56
56
  #: HTML rendering options; see write_html_image_list for details
57
57
  #:
@@ -216,10 +216,7 @@ def visualize_detector_output(detector_output_path,
216
216
  num_images = len(images)
217
217
  print(f'Detector output file contains {num_images} entries.')
218
218
 
219
- if sample > 0:
220
- assert num_images >= sample, (
221
- f'Sample size {sample} greater than number of entries '
222
- f'({num_images}) in detector result.')
219
+ if (sample > 0) and (num_images > sample):
223
220
 
224
221
  if random_seed is not None:
225
222
  images = sorted(images, key=lambda x: x['file'])
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: megadetector
3
- Version: 5.0.24
3
+ Version: 5.0.26
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>
@@ -30,7 +30,7 @@ Project-URL: Bug Reports, https://github.com/agentmorris/MegaDetector/issues
30
30
  Project-URL: Source, https://github.com/agentmorris/MegaDetector
31
31
  Keywords: camera traps,conservation,wildlife,ai,megadetector
32
32
  Classifier: Programming Language :: Python :: 3
33
- Requires-Python: <=3.13,>=3.9
33
+ Requires-Python: <3.14,>=3.9
34
34
  Description-Content-Type: text/markdown
35
35
  License-File: LICENSE
36
36
  Requires-Dist: mkl==2024.0; sys_platform != "darwin"
@@ -51,6 +51,7 @@ Requires-Dist: dill
51
51
  Requires-Dist: ultralytics-yolov5==0.1.1
52
52
  Requires-Dist: yolov9pip==0.0.4
53
53
  Requires-Dist: python-dateutil
54
+ Dynamic: license-file
54
55
 
55
56
  # MegaDetector
56
57
 
@@ -58,6 +59,8 @@ This package is a pip-installable version of the support/inference code for [Meg
58
59
 
59
60
  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).
60
61
 
62
+ If you don't want to run MegaDetector, and you just want to use the utilities in this package - postprocessing, manipulating large volumes of camera trap images, etc. - you may want to check out the [megadetector-utils](https://pypi.org/project/megadetector-utils/) package, which is identical to this one, but excludes all of the PyTorch/YOLO dependencies, and is thus approximately one zillion times smaller.
63
+
61
64
  ## Installation
62
65
 
63
66
  Install with:
@@ -53,11 +53,11 @@ 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=d1jDmL5wioypt4Ny6BRBNg6iUBaqpq2E2xf162n6zGo,19520
56
+ megadetector/data_management/cct_json_utils.py,sha256=DV4DX2gjkdR88d4KJAppuX830dqxwxcmQrqJrxEE9Z0,20150
57
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=bDDuVzTcHdeDXt08hHC5ClqDfloexmp0LO2TH-6ltfg,9049
60
- megadetector/data_management/coco_to_yolo.py,sha256=rTDOh3XdoOoo7HCSH7obT3xpQgiSykf71ba8uOXfnxc,28121
60
+ megadetector/data_management/coco_to_yolo.py,sha256=0Z4gmE_OcORflaOR-zQ0YmGvKf4Gk5zBVmVgiZ0QIdg,29425
61
61
  megadetector/data_management/generate_crops_from_cct.py,sha256=Esq2Vlvp1AQvD8bmtC15OvoTZTHASBfcIVIuisxXT08,4383
62
62
  megadetector/data_management/get_image_sizes.py,sha256=2b6arj4gvoN-9f61lC3t1zAFFwYFxfb2iL83Tstoiik,6602
63
63
  megadetector/data_management/labelme_to_coco.py,sha256=8RUXALXbLpmS7UYUet4BAe9JVSDW7ojwDDpxYs072ZI,21231
@@ -65,20 +65,20 @@ megadetector/data_management/labelme_to_yolo.py,sha256=dRePSOwU_jiCr0EakDQCz1Ct-
65
65
  megadetector/data_management/mewc_to_md.py,sha256=FQ57B0nJ6V0ZxmfvkWUNQ2fY9JZoHNwQ5W0aLwiY-Ds,13398
66
66
  megadetector/data_management/ocr_tools.py,sha256=T9ClY3B-blnK3-UF1vpVdageknYsykm_6FAfqn0kliU,32529
67
67
  megadetector/data_management/read_exif.py,sha256=TIPf1OHFhuDq7M2H9MxcEEvN17G0dpJTriRTtiqIvxA,30474
68
- megadetector/data_management/remap_coco_categories.py,sha256=xXWv0QhTjkUfc9RKtAZanK77HMSq_21mFg_34KFD6hw,2903
68
+ megadetector/data_management/remap_coco_categories.py,sha256=xbU3JW6o25YL8vV83KsOzK6_u1gGGbWDo1G0eOj4ncE,5123
69
69
  megadetector/data_management/remove_exif.py,sha256=vIWnJfw1i9JgyQKUDGEzzqkHro4ndykIPFWhtkm6RAU,2502
70
70
  megadetector/data_management/rename_images.py,sha256=ikIj_b5DY1rgaAn9n_IbwsnugAolczFNivh4xzfLPy8,6915
71
71
  megadetector/data_management/resize_coco_dataset.py,sha256=AaiV7efIcNnqsXsnQckmHq2G__7ZQHBV_jN6rhZfMjo,6810
72
+ megadetector/data_management/speciesnet_to_md.py,sha256=VKi51sZyal08qBNNHX-63PjV0_B9JSg2hyPc0Dn5crs,1422
72
73
  megadetector/data_management/wi_download_csv_to_coco.py,sha256=ilnJZhNZK-FGUR-AfUSWjIDUk9Gytgxw7IOK_N8WKLE,8350
73
- megadetector/data_management/wi_to_md.py,sha256=SGZOyiYvCHud2eeatqjvvpHfDLVwTyC6S5QA-D28qII,1398
74
74
  megadetector/data_management/yolo_output_to_md_output.py,sha256=0ewFhTxdv8H5jaTv4kTpoxdzmOYFHbizvja41VCA_Ls,18307
75
- megadetector/data_management/yolo_to_coco.py,sha256=TzAagQ2ATbB_tn1oZxrHCWsrFGO_OhfZmi-3X45WdDU,26180
75
+ megadetector/data_management/yolo_to_coco.py,sha256=IbSsY1lJz5yOC8AkIJGpOMUIx8ol-ktsZ2EsI7P4Woc,27616
76
76
  megadetector/data_management/annotations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
77
  megadetector/data_management/annotations/annotation_constants.py,sha256=1597MpAr_HdidIHoDFj4RgUO3K5e2Xm2bGafGeonR2k,953
78
78
  megadetector/data_management/databases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
79
  megadetector/data_management/databases/add_width_and_height_to_db.py,sha256=X7A_iniGwlkhZ0jUNm564GT_mH2_RJGLD0aGP9cBhY0,749
80
- megadetector/data_management/databases/combine_coco_camera_traps_files.py,sha256=oeELrMgxhsJ6aNBxPQyu4CmsdtYnzS5GKZEV8U-XUdk,6693
81
- megadetector/data_management/databases/integrity_check_json_db.py,sha256=WoW8MFiRjAjiHWfUdhGeRskIWgXvHrpmBPPI9px7nlk,17713
80
+ megadetector/data_management/databases/combine_coco_camera_traps_files.py,sha256=g1j8vc8d4bm5m3ts5ZI3TrOOs2FzZ575QY0akyMrClI,6889
81
+ megadetector/data_management/databases/integrity_check_json_db.py,sha256=FUyw-cUEuQtg27y2N7GuZsh-HPTbfn7H3b3ws8FYG4Y,17717
82
82
  megadetector/data_management/databases/subset_json_db.py,sha256=0tKB_twdEsXxj9w2KOfQmXv4Hhbvbq3Aes2UMQG9yYU,4272
83
83
  megadetector/data_management/importers/add_nacti_sizes.py,sha256=jjGTpd36g5w7nLIeOatXRwu1Uti2GiGgP3-61QSg8oA,1156
84
84
  megadetector/data_management/importers/add_timestamps_to_icct.py,sha256=5l1TkWq3X4Mxed7zlZ07U1RQcjbzBnwcoftNiaruigM,2364
@@ -126,22 +126,22 @@ megadetector/data_management/importers/eMammal/make_eMammal_json.py,sha256=6C_-6
126
126
  megadetector/data_management/importers/snapshotserengeti/make_full_SS_json.py,sha256=khE3W0pO3Uq-UCfrLW_rpzWqjLll2JoBc360XeAuUGc,4126
127
127
  megadetector/data_management/importers/snapshotserengeti/make_per_season_SS_json.py,sha256=sAwvcR2siwblgY3LfTsbH4mXOXvJZCA246QIsQWuQBA,4316
128
128
  megadetector/data_management/lila/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
- megadetector/data_management/lila/add_locations_to_island_camera_traps.py,sha256=OQ-wn2YX0V96aw1EJxUAMYRnkv9G-dvHBU8ULQF-Tus,2583
130
- megadetector/data_management/lila/add_locations_to_nacti.py,sha256=S4ty7lARf2O13_GWTX1pFYyixPCNecqUj6jpO3hOV2w,4849
129
+ megadetector/data_management/lila/add_locations_to_island_camera_traps.py,sha256=0vLRoxVT4gbEWEDEM9_qDyKm7DW_J7lVEbJDih0U7cY,2930
130
+ megadetector/data_management/lila/add_locations_to_nacti.py,sha256=PJWuzVKswjEviehlNqACmNWFefhwTh9qeTubTtoq6eo,5394
131
131
  megadetector/data_management/lila/create_lila_blank_set.py,sha256=SBwpM0-pycW37TESXaJlc2oo_qIxYJoOzHhmmnBHWWI,19826
132
132
  megadetector/data_management/lila/create_lila_test_set.py,sha256=nnjaxbK-5uIP7hUT8rqlnWepKXauGEQsRS5-H8rOVrA,5184
133
133
  megadetector/data_management/lila/create_links_to_md_results_files.py,sha256=MvaPBAgdwoxaNrRaKZ8mGaOCky1BYXlrT08tPG9BrpM,3803
134
134
  megadetector/data_management/lila/download_lila_subset.py,sha256=0tzz43-uBA6fEPoxH7xy1yDXmwgwYcb5Wm11F6zZQtw,5477
135
- megadetector/data_management/lila/generate_lila_per_image_labels.py,sha256=JZH_u5ckYODAO4yHWQ_dkI-Sq5hgj5rO82iisG7e-Lg,18239
135
+ megadetector/data_management/lila/generate_lila_per_image_labels.py,sha256=bwixmPdgVDHyX-OsNfZkCK5jkumf4x3k5tvSFv1iRzI,18240
136
136
  megadetector/data_management/lila/get_lila_annotation_counts.py,sha256=DWysGF5y7E_RYEoAyvR5RUPTOZVbauTxfAwFcIbn5sc,5622
137
137
  megadetector/data_management/lila/get_lila_image_counts.py,sha256=UxXS5RDnSA_WbxE92qN-N7p-qR-jbyTsTZ7duLo06us,3620
138
138
  megadetector/data_management/lila/lila_common.py,sha256=74ecaGItH4AtCYeY1WSejLIcylhJPCJ1y97gYYL34PM,11080
139
- megadetector/data_management/lila/test_lila_metadata_urls.py,sha256=qKyZAb17Va9rfLdNwiOBER02yhUwquOSR9VURtxzugY,4784
139
+ megadetector/data_management/lila/test_lila_metadata_urls.py,sha256=TPNkULZM3zeOLucD-KSGwD8tHsmGY1uHbCBV2_vPpY0,5080
140
140
  megadetector/detection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
141
  megadetector/detection/process_video.py,sha256=SGCp98nYI-1LZnTwrTOFhiGs1PpFjrebsI078D2KC-Q,54470
142
142
  megadetector/detection/pytorch_detector.py,sha256=fpeAcWvSUsH4agQp1nq-yD-vtOkbz8b6M2ohvD_AzEs,45331
143
- megadetector/detection/run_detector.py,sha256=LSmbm-8PfYsyPTgFjtwGRYwjqCFkk2x_qi7y3AI_wxk,39211
144
- megadetector/detection/run_detector_batch.py,sha256=PXzyaJkDTOuGN9adfZVsSLjaD6-XnJWStNkZrsEKziI,72968
143
+ megadetector/detection/run_detector.py,sha256=7Q6db9HzMLrsYtarR73_JEL9ESNCLtW28JP7cVrtTtw,39242
144
+ megadetector/detection/run_detector_batch.py,sha256=2HrzCtQO1abILB_GnqhYiafdzIxW0X339m-ctY1cs_o,73052
145
145
  megadetector/detection/run_inference_with_yolov5_val.py,sha256=Ofu9B4yOmWso-S6JYalK0f_CvsG5tr2gkW_-rDskMD0,55291
146
146
  megadetector/detection/run_tiled_inference.py,sha256=vw0713eNuMiEOjHfweQl58zPHNxPOMdFWZ8bTDLhlMY,37883
147
147
  megadetector/detection/tf_detector.py,sha256=t9O6J7r1wHOkKbrwchducdJrAHSw38DDA7rF7_0urn0,8522
@@ -149,59 +149,60 @@ megadetector/detection/video_utils.py,sha256=XqaaF8YQX-goSzHEoHasmkuNF7DrbFDil0X
149
149
  megadetector/postprocessing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
150
150
  megadetector/postprocessing/add_max_conf.py,sha256=qTE1_0RwGAy6jLDkHrIo2pS84yNbUV11s4IZuAYGdIU,1514
151
151
  megadetector/postprocessing/categorize_detections_by_size.py,sha256=YdapcvjA6Dz2dPa2AFf1Dwyl7C-OmmP4G4OjhTOuaF4,5797
152
- megadetector/postprocessing/classification_postprocessing.py,sha256=SJah7xrVN06W_jmKdEF_-ykcaKE6fDTGHFhOz4rYi8g,30430
152
+ megadetector/postprocessing/classification_postprocessing.py,sha256=kzTt83ZwqT5J4DxXQLPsgFxjeaRta3Q2rajm-I84uh4,40405
153
153
  megadetector/postprocessing/combine_batch_outputs.py,sha256=va6v1ZZzbQlq16S3gEqHKI5RbBuwRQ6ZoLAdDbIWYOQ,8416
154
- megadetector/postprocessing/compare_batch_results.py,sha256=O6J32C5O3gPTe9P6ZU-1E4ECsARIP7v621Cipl-pELw,77737
154
+ megadetector/postprocessing/compare_batch_results.py,sha256=dtRbutrJQNb0e9VO5bOQXMpPTj-rYJqrqrE3AaM6-NU,85613
155
155
  megadetector/postprocessing/convert_output_format.py,sha256=HwThfK76UPEAGa3KQbJ_tMKIrUvJ3JhKoQVWJt9dPBk,15447
156
+ megadetector/postprocessing/create_crop_folder.py,sha256=VIjgg_NIS3VkojjdTYFRxSusWDur0F9gr2lgzO4fbiw,16146
156
157
  megadetector/postprocessing/detector_calibration.py,sha256=rzAsiUJhw8Y4RxSK1SMnsdjI3MYkFA9NP5vJ7CNsX0I,21820
157
- megadetector/postprocessing/load_api_results.py,sha256=FqcaiPMuqTojZOV3Jn14pJESpuwjWGbZtcvJuVXUaDM,6861
158
- megadetector/postprocessing/md_to_coco.py,sha256=wleD9Fq2zvQ5ubwfV3KUsDmgpiLnBXh5XvjjYk7YIH8,15971
158
+ megadetector/postprocessing/load_api_results.py,sha256=rHH3brs7R2_p5bLcIoryVldRMQ4b32CMK4-0Kiej_SI,6971
159
+ megadetector/postprocessing/md_to_coco.py,sha256=VfAXHSFZsMfzu1ppetZGDEG9ennJouIuUmFHuJdNtQY,15967
159
160
  megadetector/postprocessing/md_to_labelme.py,sha256=DDCsQpxZXQxWjPlsg1DM5yE33Fc_c8KatuDgt66Q8rQ,11696
160
161
  megadetector/postprocessing/md_to_wi.py,sha256=Yq-WdbWPcwkGkF5Iw7c6Ua6Ky723jYwJWY8Kl_KfgRE,1271
161
162
  megadetector/postprocessing/merge_detections.py,sha256=GfoDtDUdOyv9M4p8tTzUuaEPsgnmHu1pgnPsvSUfOq0,17778
162
- megadetector/postprocessing/postprocess_batch_results.py,sha256=baJioCU6sB4iAtLV_mMMecqKZlgb-ycYQx-NLsS2gw0,80175
163
+ megadetector/postprocessing/postprocess_batch_results.py,sha256=uwMhxn6f4lOGg5ibIwV_D6Oam7TH9UIrXrcHxwIMaj4,85469
163
164
  megadetector/postprocessing/remap_detection_categories.py,sha256=d9IYTa0i_KbbrarJc_mczABmdwypscl5-KpK8Hx_z8o,6640
164
165
  megadetector/postprocessing/render_detection_confusion_matrix.py,sha256=_wsk4W0PbNiqmFuHy-EA0Z07B1tQLMsdCTPatnHAdZw,27382
165
- megadetector/postprocessing/separate_detections_into_folders.py,sha256=8ISxkZJ3KCCONdbi2NrJsHoAP34t_Z_qwUEeZ_SfElQ,32893
166
- megadetector/postprocessing/subset_json_detector_output.py,sha256=PDgb6cnsFm9d4E7_sMVIguLIU7s79uFQa2CRCxAO0F4,27064
166
+ megadetector/postprocessing/separate_detections_into_folders.py,sha256=ua7mBe1Vg4-_JC6ZBhqPfv6uMBqfpIR4o_cmZo-2obY,33836
167
+ megadetector/postprocessing/subset_json_detector_output.py,sha256=NcoQANmCrw3A07LFfWEOhdP6-V1SHpHmQwGE8SFggQ4,33993
167
168
  megadetector/postprocessing/top_folders_to_bottom.py,sha256=Dqk-KZXiRlIYlmLZmk6aUapmaaLJUKOf8wK1kxt9W6A,6283
168
- megadetector/postprocessing/validate_batch_results.py,sha256=sEPxRPGD7AuDWveJAAfly4MR8Xr-xT5NRM88FxYJx_Q,11420
169
- megadetector/postprocessing/repeat_detection_elimination/find_repeat_detections.py,sha256=e4Y9CyMyd-bLN3il8tu76vI0nVYHZlhZr6vcL0J4zQ0,9832
169
+ megadetector/postprocessing/validate_batch_results.py,sha256=_ptSqmtEd8VhHHho5wG7wN7_-hCWvZOKj7tMt9PkaB4,11586
170
+ megadetector/postprocessing/repeat_detection_elimination/find_repeat_detections.py,sha256=VstahP4-XIA9tAIn0RlWyUoJEVtEyaukImNBkhexGBo,9538
170
171
  megadetector/postprocessing/repeat_detection_elimination/remove_repeat_detections.py,sha256=tARPxuY0OyQgpKU2XqiQPko3f-hHnWuISB8ZlZgXwxI,2819
171
- megadetector/postprocessing/repeat_detection_elimination/repeat_detections_core.py,sha256=vEmWLSSv0_rxDwhjz_S9YaKZ_LM2tADTz2JYb_zUCnc,67923
172
+ megadetector/postprocessing/repeat_detection_elimination/repeat_detections_core.py,sha256=JDHhkDEmrdUZsVnf9LC4ZZVd9jYmMKdUwdbzMz-F400,67923
172
173
  megadetector/taxonomy_mapping/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
173
174
  megadetector/taxonomy_mapping/map_lila_taxonomy_to_wi_taxonomy.py,sha256=6D_YHTeWTs6O8S9ABog2t9-wfQSh9dW2k9XTqXUZKfo,17927
174
- megadetector/taxonomy_mapping/map_new_lila_datasets.py,sha256=ELv_3KYUQBWDQH1ikhXenyPm-tYmKn8fARbNECqLgJs,4242
175
+ megadetector/taxonomy_mapping/map_new_lila_datasets.py,sha256=q6GZ3uUhFaLaGrVPvViZcyzbZJARR3Q557oGV8h0D9Y,4245
175
176
  megadetector/taxonomy_mapping/prepare_lila_taxonomy_release.py,sha256=kemgxFTriz92Z4fJL0FSimmhhLtC3nBZuZ-Cy9cl1kM,4812
176
- megadetector/taxonomy_mapping/preview_lila_taxonomy.py,sha256=eL5nax3zEtNtfX5urk55A4iR_5S-oH0Bwn_qwBMl3tA,19612
177
+ megadetector/taxonomy_mapping/preview_lila_taxonomy.py,sha256=X0keNAaM3l22XPf9ohRdYfob539Fnl7X4PeftZNLjXE,17795
177
178
  megadetector/taxonomy_mapping/retrieve_sample_image.py,sha256=4cfWsLRwS_EwAmQr2p5tA_W6glBK71tSjPfaHxUZQWs,1979
178
179
  megadetector/taxonomy_mapping/simple_image_download.py,sha256=wLhyMSocX_JhDGA6yLbEfpysz8MMI8YFJWaxyA-GZ9c,6932
179
- megadetector/taxonomy_mapping/species_lookup.py,sha256=HZ7fyhap9CNdhdmq-id8dMnIa9TPMA3557rsamAkWkU,28329
180
+ megadetector/taxonomy_mapping/species_lookup.py,sha256=Z7nVoyh7bi8dHT0cJ7U6lEyi2xJOQra_rlv-DREZ_-U,29811
180
181
  megadetector/taxonomy_mapping/taxonomy_csv_checker.py,sha256=A_zPwzY-ERz6xawxgk2Tpfsycl-1sDcjUiuaXXBppi8,4850
181
182
  megadetector/taxonomy_mapping/taxonomy_graph.py,sha256=ayrTFseVaIMbtMXhnjWCkZdxI5SAVe_BUtnanGewQpU,12263
182
183
  megadetector/taxonomy_mapping/validate_lila_category_mappings.py,sha256=1qyZr23bvZSVUYLQnO1XAtIZ4jdpARA5dxt8euKVyOA,2527
183
184
  megadetector/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
184
185
  megadetector/utils/azure_utils.py,sha256=0BdnkG2hW-X0yFpsJqmBhOd2wysz_LvhuyImPJMVPJs,6271
185
- megadetector/utils/ct_utils.py,sha256=se4sy5f_vpcZiY6b1NCGidhVY31nkI2re2wotlahX9Q,24848
186
- megadetector/utils/directory_listing.py,sha256=r4rg2xA4O9ZVxVtzPZzXIXa0DOEukAJMTTNcNSiQcuM,9668
187
- megadetector/utils/gpu_test.py,sha256=AgBVs-RA04s8o5_T9I-6-DLCOLYjVn8u1cmcEbe1yOk,3229
188
- megadetector/utils/md_tests.py,sha256=LWcFC82DB53ColP5mJHzK_hLL4Xi8CF2TR2m2Tw-AYU,72118
189
- megadetector/utils/path_utils.py,sha256=kr6cWC0v-JcprDtoi8hA8WocZ6xfVHjAcF3S34kBr8g,41184
186
+ megadetector/utils/ct_utils.py,sha256=Yr8NNg9KWo6dVc1dEMS6rZP0zb-HlqkgfnkxfkARRLE,27366
187
+ megadetector/utils/directory_listing.py,sha256=42t8lDz8V3vPkGTGUd-UnSw2xKpqfpvb4BT-6xVAUmY,9689
188
+ megadetector/utils/gpu_test.py,sha256=1NxvyJrD4mq_uuCysT0q9pSJyR-gpdQogB6O8TP4E2Q,3665
189
+ megadetector/utils/md_tests.py,sha256=bMloXfts_sxG4vTEZq5pmUJ8-WLnsoU8mYkdz732YrE,75028
190
+ megadetector/utils/path_utils.py,sha256=LDnFIbuajlc_iIlG4CzOoFml-RsyqFRBLKdPxvoQJz8,51659
190
191
  megadetector/utils/process_utils.py,sha256=K7-ZW_bJbMgeDBLDhYHMV84urM8H7L6IddQS5z3UgBw,5824
191
192
  megadetector/utils/sas_blob_utils.py,sha256=k76EcMmJc_otrEHcfV2fxAC6fNhxU88FxM3ddSYrsKU,16917
192
193
  megadetector/utils/split_locations_into_train_val.py,sha256=jvaDu1xKB51L3Xq2nXQo0XtXRjNRf8RglBApl1g6gHo,10101
193
194
  megadetector/utils/string_utils.py,sha256=ZQapJodzvTDyQhjZgMoMl3-9bqnKAUlORpws8Db9AkA,2050
194
195
  megadetector/utils/url_utils.py,sha256=yybWwJ-vl2A6Fci66i-xt_dl3Uqh72Ylnb8XOT2Grog,14835
195
- megadetector/utils/wi_utils.py,sha256=qOW2Oz8NM09l6Ow_CMgatmwdPd1gdMx_saUDQlNekpY,71622
196
+ megadetector/utils/wi_utils.py,sha256=SNXF2GnBvzKrGw1dUexty9dLIyPBMgeARQb79e5yf7c,115008
196
197
  megadetector/utils/write_html_image_list.py,sha256=MhVAAv6th9Q2fldtE8hp_hHWFgJ_pcKJEk3YiK6dWY4,9415
197
198
  megadetector/visualization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
198
199
  megadetector/visualization/plot_utils.py,sha256=lOfU3uPrcuHZagV_1SN8erT8PujIepocgw6KZ17Ej6c,10671
199
200
  megadetector/visualization/render_images_with_thumbnails.py,sha256=kgJYW8BsqRO4C7T3sqItdBuSkZ64I1vOtIWAsVG4XBI,10589
200
- megadetector/visualization/visualization_utils.py,sha256=io156_DC_0icNbFDrYxAE6wFQ1lsQXI12nV675tsxCE,75353
201
- megadetector/visualization/visualize_db.py,sha256=hnJEIBRWf7_HjTEiUmzS59_8kK0usb8mczZMDv1N4r8,25279
202
- megadetector/visualization/visualize_detector_output.py,sha256=HARxyrXa2_vb6xhEEiourF-Kw4arDv0kxfyMLeKa874,19242
203
- megadetector-5.0.24.dist-info/LICENSE,sha256=RMa3qq-7Cyk7DdtqRj_bP1oInGFgjyHn9-PZ3PcrqIs,1100
204
- megadetector-5.0.24.dist-info/METADATA,sha256=FJ_IDN-d14tzO_PGurannavVh0ReSELtBQIAEQIBQEI,5889
205
- megadetector-5.0.24.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
206
- megadetector-5.0.24.dist-info/top_level.txt,sha256=wf9DXa8EwiOSZ4G5IPjakSxBPxTDjhYYnqWRfR-zS4M,13
207
- megadetector-5.0.24.dist-info/RECORD,,
201
+ megadetector/visualization/visualization_utils.py,sha256=WU6S8J3be2jmBgEbXsLaX7wtJV6on0YytTLK4xHxoFE,75688
202
+ megadetector/visualization/visualize_db.py,sha256=h1NSK_4ZR_NlwBn2JrYyCOv9C7_iqmLWWOk4T6YkyXw,25280
203
+ megadetector/visualization/visualize_detector_output.py,sha256=oubAksx2V7YtBC34g5y4UOH0SVnIINGWjuvuacAaUBE,19112
204
+ megadetector-5.0.26.dist-info/licenses/LICENSE,sha256=RMa3qq-7Cyk7DdtqRj_bP1oInGFgjyHn9-PZ3PcrqIs,1100
205
+ megadetector-5.0.26.dist-info/METADATA,sha256=_qmWZ4UzSc6YJvBwSkmqou7YbOih--E26eEjB_Mdvuk,6322
206
+ megadetector-5.0.26.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
207
+ megadetector-5.0.26.dist-info/top_level.txt,sha256=wf9DXa8EwiOSZ4G5IPjakSxBPxTDjhYYnqWRfR-zS4M,13
208
+ megadetector-5.0.26.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5