megadetector 5.0.12__py3-none-any.whl → 5.0.13__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 (40) hide show
  1. megadetector/api/batch_processing/api_core/server.py +1 -1
  2. megadetector/api/batch_processing/api_core/server_api_config.py +0 -1
  3. megadetector/api/batch_processing/api_core/server_job_status_table.py +0 -3
  4. megadetector/api/batch_processing/api_core/server_utils.py +0 -4
  5. megadetector/api/batch_processing/integration/eMammal/test_scripts/push_annotations_to_emammal.py +0 -1
  6. megadetector/api/synchronous/api_core/animal_detection_api/api_frontend.py +0 -3
  7. megadetector/classification/efficientnet/utils.py +0 -3
  8. megadetector/data_management/camtrap_dp_to_coco.py +0 -2
  9. megadetector/data_management/cct_json_utils.py +15 -6
  10. megadetector/data_management/coco_to_labelme.py +12 -1
  11. megadetector/data_management/databases/integrity_check_json_db.py +43 -27
  12. megadetector/data_management/importers/cacophony-thermal-importer.py +1 -4
  13. megadetector/data_management/ocr_tools.py +0 -4
  14. megadetector/data_management/read_exif.py +171 -43
  15. megadetector/data_management/rename_images.py +187 -0
  16. megadetector/data_management/wi_download_csv_to_coco.py +3 -2
  17. megadetector/data_management/yolo_output_to_md_output.py +7 -2
  18. megadetector/detection/process_video.py +360 -216
  19. megadetector/detection/pytorch_detector.py +17 -3
  20. megadetector/detection/run_inference_with_yolov5_val.py +527 -357
  21. megadetector/detection/tf_detector.py +3 -0
  22. megadetector/detection/video_utils.py +122 -30
  23. megadetector/postprocessing/categorize_detections_by_size.py +16 -14
  24. megadetector/postprocessing/classification_postprocessing.py +716 -0
  25. megadetector/postprocessing/compare_batch_results.py +101 -93
  26. megadetector/postprocessing/merge_detections.py +18 -7
  27. megadetector/postprocessing/postprocess_batch_results.py +133 -127
  28. megadetector/postprocessing/repeat_detection_elimination/repeat_detections_core.py +236 -232
  29. megadetector/postprocessing/subset_json_detector_output.py +66 -62
  30. megadetector/taxonomy_mapping/preview_lila_taxonomy.py +0 -2
  31. megadetector/utils/ct_utils.py +5 -4
  32. megadetector/utils/md_tests.py +311 -115
  33. megadetector/utils/path_utils.py +1 -0
  34. megadetector/utils/process_utils.py +6 -3
  35. megadetector/visualization/visualize_db.py +79 -77
  36. {megadetector-5.0.12.dist-info → megadetector-5.0.13.dist-info}/LICENSE +0 -0
  37. {megadetector-5.0.12.dist-info → megadetector-5.0.13.dist-info}/METADATA +2 -2
  38. {megadetector-5.0.12.dist-info → megadetector-5.0.13.dist-info}/RECORD +40 -38
  39. {megadetector-5.0.12.dist-info → megadetector-5.0.13.dist-info}/top_level.txt +0 -0
  40. {megadetector-5.0.12.dist-info → megadetector-5.0.13.dist-info}/WHEEL +0 -0
@@ -747,6 +747,7 @@ def parallel_get_file_sizes(filenames, max_workers=16,
747
747
  use_threads (bool, optional): whether to use threads (True) or processes (False) for
748
748
  parallel copying; ignored if max_workers <= 1
749
749
  verbose (bool, optional): enable additionald debug output
750
+ recursive (bool, optional): enumerate recursively, only relevant if [filenames] is a folder.
750
751
 
751
752
  Returns:
752
753
  dict: dictionary mapping filenames to file sizes in bytes
@@ -15,8 +15,6 @@ Includes handy example code for doing this on multiple processes/threads.
15
15
  import os
16
16
  import subprocess
17
17
 
18
- os.environ["PYTHONUNBUFFERED"] = "1"
19
-
20
18
  def execute(cmd,encoding=None,errors=None,env=None,verbose=False):
21
19
  """
22
20
  Run [cmd] (a single string) in a shell, yielding each line of output to the caller.
@@ -37,6 +35,8 @@ def execute(cmd,encoding=None,errors=None,env=None,verbose=False):
37
35
  int: the command's return code, always zero, otherwise a CalledProcessError is raised
38
36
  """
39
37
 
38
+ os.environ["PYTHONUNBUFFERED"] = "1"
39
+
40
40
  if verbose:
41
41
  if encoding is not None:
42
42
  print('Launching child process with non-default encoding {}'.format(encoding))
@@ -59,7 +59,8 @@ def execute(cmd,encoding=None,errors=None,env=None,verbose=False):
59
59
  return return_code
60
60
 
61
61
 
62
- def execute_and_print(cmd,print_output=True,encoding=None,errors=None,env=None,verbose=False):
62
+ def execute_and_print(cmd,print_output=True,encoding=None,errors=None,
63
+ env=None,verbose=False,catch_exceptions=True):
63
64
  """
64
65
  Run [cmd] (a single string) in a shell, capturing and printing output. Returns
65
66
  a dictionary with fields "status" and "output".
@@ -91,6 +92,8 @@ def execute_and_print(cmd,print_output=True,encoding=None,errors=None,env=None,v
91
92
  print(s,end='',flush=True)
92
93
  to_return['status'] = 0
93
94
  except subprocess.CalledProcessError as cpe:
95
+ if not catch_exceptions:
96
+ raise
94
97
  print('execute_and_print caught error: {} ({})'.format(cpe.output,str(cpe)))
95
98
  to_return['status'] = cpe.returncode
96
99
  to_return['output'] = output
@@ -40,86 +40,88 @@ class DbVizOptions:
40
40
  Parameters controlling the behavior of visualize_db().
41
41
  """
42
42
 
43
- #: Number of images to sample from the database, or None to visualize all images
44
- num_to_visualize = None
45
-
46
- #: Target size for rendering; set either dimension to -1 to preserve aspect ratio.
47
- #:
48
- #: If viz_size is None or (-1,-1), the original image size is used.
49
- viz_size = (800, -1)
50
-
51
- #: HTML rendering options; see write_html_image_list for details
52
- #:
53
- #:The most relevant option one might want to set here is:
54
- #:
55
- #: htmlOptions['maxFiguresPerHtmlFile']
56
- #:
57
- #: ...which can be used to paginate previews to a number of images that will load well
58
- #: in a browser (5000 is a reasonable limit).
59
- htmlOptions = write_html_image_list()
60
-
61
- #: Whether to sort images by filename (True) or randomly (False)
62
- sort_by_filename = True
63
-
64
- #: Only show images that contain bounding boxes
65
- trim_to_images_with_bboxes = False
66
-
67
- #: Random seed to use for sampling images
68
- random_seed = 0
69
-
70
- #: Should we include Web search links for each category name?
71
- add_search_links = False
72
-
73
- #: Should each thumbnail image link back to the original image?
74
- include_image_links = False
75
-
76
- #: Should there be a text link back to each original image?
77
- include_filename_links = False
78
-
79
- #: Line width in pixels
80
- box_thickness = 4
81
-
82
- #: Number of pixels to expand each bounding box
83
- box_expansion = 0
84
-
85
- #: Only include images that contain annotations with these class names (not IDs)
86
- #:
87
- #: Mutually exclusive with classes_to_exclude
88
- classes_to_include = None
89
-
90
- #: Exclude images that contain annotations with these class names (not IDs)
91
- #:
92
- #: Mutually exclusive with classes_to_include
93
- classes_to_exclude = None
94
-
95
- #: Special tag used to say "show me all images with multiple categories"
96
- #:
97
- #: :meta private:
98
- multiple_categories_tag = '*multiple*'
99
-
100
- #: We sometimes flatten image directories by replacing a path separator with
101
- #: another character. Leave blank for the typical case where this isn't necessary.
102
- pathsep_replacement = '' # '~'
103
-
104
- #: Parallelize rendering across multiple workers
105
- parallelize_rendering = False
106
-
107
- #: In theory, whether to parallelize with threads (True) or processes (False), but
108
- #: process-based parallelization in this function is currently unsupported
109
- parallelize_rendering_with_threads = True
110
-
111
- #: Number of workers to use for parallelization; ignored if parallelize_rendering
112
- #: is False
113
- parallelize_rendering_n_cores = 25
43
+ def __init__(self):
44
+
45
+ #: Number of images to sample from the database, or None to visualize all images
46
+ self.num_to_visualize = None
47
+
48
+ #: Target size for rendering; set either dimension to -1 to preserve aspect ratio.
49
+ #:
50
+ #: If viz_size is None or (-1,-1), the original image size is used.
51
+ self.viz_size = (800, -1)
52
+
53
+ #: HTML rendering options; see write_html_image_list for details
54
+ #:
55
+ #:The most relevant option one might want to set here is:
56
+ #:
57
+ #: htmlOptions['maxFiguresPerHtmlFile']
58
+ #:
59
+ #: ...which can be used to paginate previews to a number of images that will load well
60
+ #: in a browser (5000 is a reasonable limit).
61
+ self.htmlOptions = write_html_image_list()
62
+
63
+ #: Whether to sort images by filename (True) or randomly (False)
64
+ self.sort_by_filename = True
65
+
66
+ #: Only show images that contain bounding boxes
67
+ self.trim_to_images_with_bboxes = False
68
+
69
+ #: Random seed to use for sampling images
70
+ self.random_seed = 0
71
+
72
+ #: Should we include Web search links for each category name?
73
+ self.add_search_links = False
114
74
 
115
- #: Should we show absolute (True) or relative (False) paths for each image?
116
- show_full_paths = False
75
+ #: Should each thumbnail image link back to the original image?
76
+ self.include_image_links = False
77
+
78
+ #: Should there be a text link back to each original image?
79
+ self.include_filename_links = False
80
+
81
+ #: Line width in pixels
82
+ self.box_thickness = 4
83
+
84
+ #: Number of pixels to expand each bounding box
85
+ self.box_expansion = 0
86
+
87
+ #: Only include images that contain annotations with these class names (not IDs)
88
+ #:
89
+ #: Mutually exclusive with classes_to_exclude
90
+ self.classes_to_include = None
91
+
92
+ #: Exclude images that contain annotations with these class names (not IDs)
93
+ #:
94
+ #: Mutually exclusive with classes_to_include
95
+ self.classes_to_exclude = None
96
+
97
+ #: Special tag used to say "show me all images with multiple categories"
98
+ #:
99
+ #: :meta private:
100
+ self.multiple_categories_tag = '*multiple*'
117
101
 
118
- #: Set to False to skip existing images
119
- force_rendering = True
102
+ #: We sometimes flatten image directories by replacing a path separator with
103
+ #: another character. Leave blank for the typical case where this isn't necessary.
104
+ self.pathsep_replacement = '' # '~'
120
105
 
121
- #: Enable additionald debug console output
122
- verbose = False
106
+ #: Parallelize rendering across multiple workers
107
+ self.parallelize_rendering = False
108
+
109
+ #: In theory, whether to parallelize with threads (True) or processes (False), but
110
+ #: process-based parallelization in this function is currently unsupported
111
+ self.parallelize_rendering_with_threads = True
112
+
113
+ #: Number of workers to use for parallelization; ignored if parallelize_rendering
114
+ #: is False
115
+ self.parallelize_rendering_n_cores = 25
116
+
117
+ #: Should we show absolute (True) or relative (False) paths for each image?
118
+ self.show_full_paths = False
119
+
120
+ #: Set to False to skip existing images
121
+ self.force_rendering = True
122
+
123
+ #: Enable additionald debug console output
124
+ self.verbose = False
123
125
 
124
126
 
125
127
  #%% Helper functions
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: megadetector
3
- Version: 5.0.12
3
+ Version: 5.0.13
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>
@@ -114,7 +114,7 @@ print('Found {} detections above threshold'.format(len(detections_above_threshol
114
114
 
115
115
  ```
116
116
  from megadetector.detection.run_detector_batch import \
117
- load_and_run_detector_batch,write_results_to_file
117
+ load_and_run_detector_batch, write_results_to_file
118
118
  from megadetector.utils import path_utils
119
119
  import os
120
120
 
@@ -1,13 +1,13 @@
1
1
  megadetector/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  megadetector/api/batch_processing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  megadetector/api/batch_processing/api_core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- megadetector/api/batch_processing/api_core/server.py,sha256=BNqM5EK29B0haCW7rdeOzVqcCJDziZiD0Etc1mPs56c,11668
5
- megadetector/api/batch_processing/api_core/server_api_config.py,sha256=G8X5wgqEXPrWWQpgDI9ua-JktiUgy9mOpEltXSIazLQ,3318
4
+ megadetector/api/batch_processing/api_core/server.py,sha256=-g6hfaSp7dUaT-2-bUSXkLE-MJnig3gZ3W_GbNkoAE0,11618
5
+ megadetector/api/batch_processing/api_core/server_api_config.py,sha256=AjmLStXYoMMwxZJSephYROEprcSkG5RPlOr7Zho9xLk,3277
6
6
  megadetector/api/batch_processing/api_core/server_app_config.py,sha256=tQCFsFv0wJCegHfnu-Za3okdXwEd4U522hiM0YGNkMY,1860
7
7
  megadetector/api/batch_processing/api_core/server_batch_job_manager.py,sha256=K7fMFBJA8Z1SkA4eBM-nymcq7VQjwZ6ZRaNnNKFlat8,10324
8
- megadetector/api/batch_processing/api_core/server_job_status_table.py,sha256=3fJrdyeoVLGbbbdKy7cAVL_ZHbCmCQ2o5D26jBBQRJo,6239
8
+ megadetector/api/batch_processing/api_core/server_job_status_table.py,sha256=P621Df7RTTKqW8VlxnCqkBtIO4Ko5bSS6WbU0ETzPGY,5984
9
9
  megadetector/api/batch_processing/api_core/server_orchestration.py,sha256=LYHABzhOvP0NrM1VIjI6Vwb95YZ5xjQ52mUJW8oIOQ0,17003
10
- megadetector/api/batch_processing/api_core/server_utils.py,sha256=oFusP1E29op5DN1nEaR-jQZgRExqMDdzmRL6BHj8EDk,3314
10
+ megadetector/api/batch_processing/api_core/server_utils.py,sha256=uJvnW50lSE_LnRtEyrFI2dbVSecmGudaRhUH6NcAx1M,3100
11
11
  megadetector/api/batch_processing/api_core/batch_service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  megadetector/api/batch_processing/api_core/batch_service/score.py,sha256=_hjUBIe0s9wmpmQwwDg-fd7tJMCn8735zJcgF15mTFo,17354
13
13
  megadetector/api/batch_processing/api_core_support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -18,12 +18,12 @@ megadetector/api/batch_processing/data_preparation/__init__.py,sha256=47DEQpj8HB
18
18
  megadetector/api/batch_processing/integration/digiKam/setup.py,sha256=7P1X3JYrBDXmLUeLRrzxNfDkL5lo-pY8nXsp9Cz8rOI,203
19
19
  megadetector/api/batch_processing/integration/digiKam/xmp_integration.py,sha256=zk5s7dD-FIkNnRxECT-0TAuBw7R__Or5_ft7Ha3iqMM,17774
20
20
  megadetector/api/batch_processing/integration/eMammal/test_scripts/config_template.py,sha256=UnvrgaFRBu59MuVUJa2WpG8ebcOJWcNeZEx6GWuYLzc,73
21
- megadetector/api/batch_processing/integration/eMammal/test_scripts/push_annotations_to_emammal.py,sha256=_mfKTNfLtQKaOK5YuG5mTm_Q_24_0K4wR3eLzJwXVPs,3607
21
+ megadetector/api/batch_processing/integration/eMammal/test_scripts/push_annotations_to_emammal.py,sha256=keqru1Ktbrj6J6TBEUm3e5N0Ps_0G2X4u4YVavWvDiU,3576
22
22
  megadetector/api/batch_processing/integration/eMammal/test_scripts/select_images_for_testing.py,sha256=OYMu97p8vprSv03QcnS6aSxPBocn9sgaozfUqq_JpyM,1369
23
23
  megadetector/api/synchronous/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
24
  megadetector/api/synchronous/api_core/animal_detection_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
25
  megadetector/api/synchronous/api_core/animal_detection_api/api_backend.py,sha256=6fo9k1byFZdxeHzov-qNFD1ZMClXPIG-BBUlZlbHoMw,4929
26
- megadetector/api/synchronous/api_core/animal_detection_api/api_frontend.py,sha256=aV522pnD__xtk902JHULOrLrq0lVM7JTC5AUKNPmtBk,10417
26
+ megadetector/api/synchronous/api_core/animal_detection_api/api_frontend.py,sha256=f16J7OBN87Tv0vVIIpXlyyVDeT6qYXDe5Kpr5XGqhdQ,10233
27
27
  megadetector/api/synchronous/api_core/animal_detection_api/config.py,sha256=05fVcLx0KK3wWFi62Mr-m_soewVn81qqeObUh-a2mrA,982
28
28
  megadetector/api/synchronous/api_core/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
29
  megadetector/api/synchronous/api_core/tests/load_test.py,sha256=bxyk3Oufl0V79vRsCPeRtWlE2o2KRtVgiqs7TSyP-iU,3277
@@ -50,32 +50,33 @@ megadetector/classification/train_classifier_tf.py,sha256=aounVoV20Iz1X5VZzKfJEa
50
50
  megadetector/classification/train_utils.py,sha256=5XnwPGtIjtDFu4xend8BH97zYhulUhF0BJHA-uYzojg,11333
51
51
  megadetector/classification/efficientnet/__init__.py,sha256=e-jfknjzCc5a0CSW-TaZ2vi0SPU1OMIsayoz2s94QAo,182
52
52
  megadetector/classification/efficientnet/model.py,sha256=qJHWV9-rYKa4E_TIee5N_OjRhqDdM-icPpoMap3Q5HM,17040
53
- megadetector/classification/efficientnet/utils.py,sha256=TF5S2cn2lvlCO2dFhdFPdzjbBBs-SyZGZmEx_dsJMbo,24846
53
+ megadetector/classification/efficientnet/utils.py,sha256=dzrDrQQcvINdJFbODmrHQMUaM0RaUbct52zcSprseAg,24693
54
54
  megadetector/data_management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
- megadetector/data_management/camtrap_dp_to_coco.py,sha256=DLiGrSdndiEIUi1lF-kc-HsQVt3ouCWOQ3sthDw-Ais,8635
56
- megadetector/data_management/cct_json_utils.py,sha256=eCyypfQ1K21IoPDp3aYumm9WyiprNoqZAlMN8AVVKls,14795
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
57
  megadetector/data_management/cct_to_md.py,sha256=BvQ24XlYhgMYFcsvo6btR1k1UsiPL1vBoxegooJbxdA,5070
58
58
  megadetector/data_management/cct_to_wi.py,sha256=hnFErIlBDmhZtBv21kDW14MSdHlUjwtCGn2vnG-cN34,9771
59
- megadetector/data_management/coco_to_labelme.py,sha256=7HIk8N3gkGz85hffTYvzoPMw_XaCbAjvyruoMoxiFU8,8314
59
+ megadetector/data_management/coco_to_labelme.py,sha256=Uql6f1TaMmKIZClCcqUB1bPxokdXgyAKsQm5pk5foKk,8986
60
60
  megadetector/data_management/coco_to_yolo.py,sha256=rTDOh3XdoOoo7HCSH7obT3xpQgiSykf71ba8uOXfnxc,28121
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
64
64
  megadetector/data_management/labelme_to_yolo.py,sha256=dRePSOwU_jiCr0EakDQCz1Ct-ZHDxDglUk4HbM1LfWc,10034
65
- megadetector/data_management/ocr_tools.py,sha256=sdOu1hCnQrohtoKDhSdMcmQPKrTp9EpbFRfXx0Bph74,32562
66
- megadetector/data_management/read_exif.py,sha256=bMMzZYP8p5Ey1MglJo3fz2NeSV1l90GiTWQGxalKfNw,22765
65
+ megadetector/data_management/ocr_tools.py,sha256=T9ClY3B-blnK3-UF1vpVdageknYsykm_6FAfqn0kliU,32529
66
+ megadetector/data_management/read_exif.py,sha256=BgV5SMZbPUoBdh0Mxljwzat_zO7B4xiD1liddbGV8gE,27635
67
67
  megadetector/data_management/remap_coco_categories.py,sha256=xXWv0QhTjkUfc9RKtAZanK77HMSq_21mFg_34KFD6hw,2903
68
68
  megadetector/data_management/remove_exif.py,sha256=9YwMUliszhVzkkUcotpRKA-a3h5WdQF1taQ594Bgm60,1666
69
+ megadetector/data_management/rename_images.py,sha256=AG3YIxXEYdGmK4G-rv0_XZIylPqOZpS6gfEkydF6oDg,6918
69
70
  megadetector/data_management/resize_coco_dataset.py,sha256=AaiV7efIcNnqsXsnQckmHq2G__7ZQHBV_jN6rhZfMjo,6810
70
- megadetector/data_management/wi_download_csv_to_coco.py,sha256=8UJRlu1JAhKcIl-wydq54k037htCMrXBZVDHDYMZm8A,8340
71
- megadetector/data_management/yolo_output_to_md_output.py,sha256=cxIeEcqhPOdLGYnNcT-yYnFg-yXD5wIcYJX5TGNWeEg,17305
71
+ megadetector/data_management/wi_download_csv_to_coco.py,sha256=ilnJZhNZK-FGUR-AfUSWjIDUk9Gytgxw7IOK_N8WKLE,8350
72
+ megadetector/data_management/yolo_output_to_md_output.py,sha256=VZtatLoryeh2pbh1fRAJe-ao7vtoNn6ACyRbAk-2Mlg,17561
72
73
  megadetector/data_management/yolo_to_coco.py,sha256=G9XiB9D8PWaCq_kc61pKe2GkkuKwdJ7K7zsbGShb_jw,25176
73
74
  megadetector/data_management/annotations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
75
  megadetector/data_management/annotations/annotation_constants.py,sha256=1597MpAr_HdidIHoDFj4RgUO3K5e2Xm2bGafGeonR2k,953
75
76
  megadetector/data_management/databases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
77
  megadetector/data_management/databases/add_width_and_height_to_db.py,sha256=X7A_iniGwlkhZ0jUNm564GT_mH2_RJGLD0aGP9cBhY0,749
77
78
  megadetector/data_management/databases/combine_coco_camera_traps_files.py,sha256=oeELrMgxhsJ6aNBxPQyu4CmsdtYnzS5GKZEV8U-XUdk,6693
78
- megadetector/data_management/databases/integrity_check_json_db.py,sha256=RNUz6A24UwBzRIbolzXIPic3Q5LFaaCHcAJP1arap2I,16305
79
+ megadetector/data_management/databases/integrity_check_json_db.py,sha256=A8AAlpfAbbthUH3ZOQrvRjzliMl2RS8g764Nk7Ypuqk,17109
79
80
  megadetector/data_management/databases/subset_json_db.py,sha256=JK71qSUpUZe7cJquyt2xEzirDoZq1Lrr2X0cgtHKBpA,3219
80
81
  megadetector/data_management/importers/add_nacti_sizes.py,sha256=jjGTpd36g5w7nLIeOatXRwu1Uti2GiGgP3-61QSg8oA,1156
81
82
  megadetector/data_management/importers/add_timestamps_to_icct.py,sha256=5l1TkWq3X4Mxed7zlZ07U1RQcjbzBnwcoftNiaruigM,2364
@@ -84,7 +85,7 @@ megadetector/data_management/importers/auckland_doc_test_to_json.py,sha256=tT4Xn
84
85
  megadetector/data_management/importers/auckland_doc_to_json.py,sha256=EoNsAJvzTwcgHspE05eO0LHazMVYM7-yzFBit0FiJWk,5970
85
86
  megadetector/data_management/importers/awc_to_json.py,sha256=e1HjShGS2WC-l99FV89g1u0o2v5990Vh9XsjIukg6qQ,5327
86
87
  megadetector/data_management/importers/bellevue_to_json.py,sha256=oJMSF0r_snRXtppiwFy4vvP8gErEw6_7Kv1UJs59QLo,7919
87
- megadetector/data_management/importers/cacophony-thermal-importer.py,sha256=YauLjRDwMaML3MpVJvon308bcO14r956iClKNwDsIDs,28640
88
+ megadetector/data_management/importers/cacophony-thermal-importer.py,sha256=4o7gyX-uUlS3rkQZlOUGMaaUVT_pdTizcuXw4rvDrE4,28577
88
89
  megadetector/data_management/importers/carrizo_shrubfree_2018.py,sha256=ah14pfzLuDUph--qUqRqvWszOFY245rsIfAgCEF7F_I,7858
89
90
  megadetector/data_management/importers/carrizo_trail_cam_2017.py,sha256=gwpL0sM82A6UBn2qWilP15D-1lOzQchZuhxXMzZ_7Ws,8862
90
91
  megadetector/data_management/importers/cct_field_adjustments.py,sha256=wQmcntZNpHYRGjZvOcXqPxhAGdn1pDZa1pAXgTAyKmI,1348
@@ -134,40 +135,41 @@ megadetector/data_management/lila/get_lila_image_counts.py,sha256=UxXS5RDnSA_Wbx
134
135
  megadetector/data_management/lila/lila_common.py,sha256=IEnGoyRgcqbek1qJ1gFE83p1Pg_5kaMS-nQI25lRWIs,10132
135
136
  megadetector/data_management/lila/test_lila_metadata_urls.py,sha256=2zKNjgqC3kxdFfyvQC3KTlpc9lf2iMzecHQBf--r_Tk,4438
136
137
  megadetector/detection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
137
- megadetector/detection/process_video.py,sha256=Fufvtmmuf6huWdwet1d035BJHq2Sq7muIgLNVGS8Y0Y,29912
138
- megadetector/detection/pytorch_detector.py,sha256=-sI1Bm4acNLDi63RaiPpuEM8_RDwDQ2LWHBVTtkr2RM,12727
138
+ megadetector/detection/process_video.py,sha256=5uyJdARkEHfpeL8ASE3XS72WjNGkMqj6GH63joWxMSs,35622
139
+ megadetector/detection/pytorch_detector.py,sha256=gLhCTvBYa1X54cobxle-G9L5MlHDk0UUn353TEtmu4M,13557
139
140
  megadetector/detection/run_detector.py,sha256=CxwCqE-T5ioQ1kb5Tn4HvzBMK0gvJwaAOl8HfDTWiVY,29745
140
141
  megadetector/detection/run_detector_batch.py,sha256=MQ8cEVg92aTmysapPuj3JAr92HfnuopCHbDGoMZA7ko,52132
141
- megadetector/detection/run_inference_with_yolov5_val.py,sha256=e0LRZ8J1VI3G3eVL6_y19i2j77ZUsLl-mf3i7oLde7U,36946
142
+ megadetector/detection/run_inference_with_yolov5_val.py,sha256=u9i1ndwl_k0DsiAWYQcYrrrB9D9Wt56_k6iGTAetUaM,46786
142
143
  megadetector/detection/run_tiled_inference.py,sha256=vw0713eNuMiEOjHfweQl58zPHNxPOMdFWZ8bTDLhlMY,37883
143
- megadetector/detection/tf_detector.py,sha256=5tdGXgF7bkeDJaXe4U34HD5z97xVzDpmYWqNK2AVf1o,7562
144
- megadetector/detection/video_utils.py,sha256=vdetbPCHKccJZNt4sREVcHil6WyMgU3QXNWe4mgSJLg,22773
144
+ megadetector/detection/tf_detector.py,sha256=-Yr42X06HwGvYDflYbdBI8dND5ahBCzu-xXSfdWd6ag,7651
145
+ megadetector/detection/video_utils.py,sha256=4dQGEVk7rJ7bOrCHobrAMVwb-xE-Nu0cYptxLxPSW7w,27245
145
146
  megadetector/detection/detector_training/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
146
147
  megadetector/detection/detector_training/model_main_tf2.py,sha256=YwNsZ7hkIFaEuwKU0rHG_VyqiR_0E01BbdlD0Yx4Smo,4936
147
148
  megadetector/postprocessing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
148
149
  megadetector/postprocessing/add_max_conf.py,sha256=qTE1_0RwGAy6jLDkHrIo2pS84yNbUV11s4IZuAYGdIU,1514
149
- megadetector/postprocessing/categorize_detections_by_size.py,sha256=RFTQrVM8FhIcwevBFKOiBv2epY4GzWHf-kIXyhyAUX8,5688
150
+ megadetector/postprocessing/categorize_detections_by_size.py,sha256=YdapcvjA6Dz2dPa2AFf1Dwyl7C-OmmP4G4OjhTOuaF4,5797
151
+ megadetector/postprocessing/classification_postprocessing.py,sha256=8uvlA0Gc8nakM5IE5Pud7WZfmF5kEhcYvxgQXcI9kl0,30429
150
152
  megadetector/postprocessing/combine_api_outputs.py,sha256=xCJHEKca8YW-mupEr0yNNwwSBeL9NvcV1w3VtEzN4lk,8535
151
- megadetector/postprocessing/compare_batch_results.py,sha256=qLEqVpqaGa6tbEfToEZNyATaqXMvgBc7bLwgykAGpz4,38261
153
+ megadetector/postprocessing/compare_batch_results.py,sha256=7O5c6-JsIDpuIGobks_R9j8MPuiZQRnEtNnJQsJqICM,38918
152
154
  megadetector/postprocessing/convert_output_format.py,sha256=IGCWoIJ1Z9RUI9yqpbL3t5KThDiElM3czmiTyXty72c,15002
153
155
  megadetector/postprocessing/load_api_results.py,sha256=FqcaiPMuqTojZOV3Jn14pJESpuwjWGbZtcvJuVXUaDM,6861
154
156
  megadetector/postprocessing/md_to_coco.py,sha256=t8zHN3QmwxuvcQKxLd_yMSjwncxy7YEoq2EGr0kwBDs,11049
155
157
  megadetector/postprocessing/md_to_labelme.py,sha256=hejMKVxaz_xdtsGDPTQkeWuis7gzT-VOrL2Qf8ym1x0,11703
156
- megadetector/postprocessing/merge_detections.py,sha256=cpAeyWJjC6_Mf0wv9Qxo_zxp_xfgmrMIfeEhCEBKVe4,17173
157
- megadetector/postprocessing/postprocess_batch_results.py,sha256=fl3a7Mc4l0OgRA5BLT_GgaC9WuDcoyf3hNW9fXIZeI4,77376
158
+ megadetector/postprocessing/merge_detections.py,sha256=AEMgMivhph1vph_t_Qv85d9iHynT2nvq7otN4KGrDLU,17776
159
+ megadetector/postprocessing/postprocess_batch_results.py,sha256=ucFW2WsuoxIgEC62CrgOLCOTO3LxIZ-LPCYRJ9xjais,78178
158
160
  megadetector/postprocessing/remap_detection_categories.py,sha256=d9IYTa0i_KbbrarJc_mczABmdwypscl5-KpK8Hx_z8o,6640
159
161
  megadetector/postprocessing/render_detection_confusion_matrix.py,sha256=_wsk4W0PbNiqmFuHy-EA0Z07B1tQLMsdCTPatnHAdZw,27382
160
162
  megadetector/postprocessing/separate_detections_into_folders.py,sha256=k42gxnL8hbBiV0e2T-jmFrhxzIxnhi57Nx9cDSSL5s0,31218
161
- megadetector/postprocessing/subset_json_detector_output.py,sha256=64nEOilaB0_B8o-unh7PCjyUkfDPQDcl2QGOuzkw5OI,26424
163
+ megadetector/postprocessing/subset_json_detector_output.py,sha256=TIXIWEv0nh4cXvhMLcM_ZryM5ly1NOTkWopM2RjEpqQ,26822
162
164
  megadetector/postprocessing/top_folders_to_bottom.py,sha256=Dqk-KZXiRlIYlmLZmk6aUapmaaLJUKOf8wK1kxt9W6A,6283
163
165
  megadetector/postprocessing/repeat_detection_elimination/find_repeat_detections.py,sha256=e4Y9CyMyd-bLN3il8tu76vI0nVYHZlhZr6vcL0J4zQ0,9832
164
166
  megadetector/postprocessing/repeat_detection_elimination/remove_repeat_detections.py,sha256=tARPxuY0OyQgpKU2XqiQPko3f-hHnWuISB8ZlZgXwxI,2819
165
- megadetector/postprocessing/repeat_detection_elimination/repeat_detections_core.py,sha256=qj9gcvXu_xdpvzIuPVyHfGegOO5R0bdYtXlI9gKrFcM,66513
167
+ megadetector/postprocessing/repeat_detection_elimination/repeat_detections_core.py,sha256=_RX0Gtb8YQPYdfQDGIvg1RvyqsdyanmEg1pqVmheHlg,67776
166
168
  megadetector/taxonomy_mapping/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
169
  megadetector/taxonomy_mapping/map_lila_taxonomy_to_wi_taxonomy.py,sha256=6D_YHTeWTs6O8S9ABog2t9-wfQSh9dW2k9XTqXUZKfo,17927
168
170
  megadetector/taxonomy_mapping/map_new_lila_datasets.py,sha256=M-hRnQuqh5QhW-7LmTvYRex1Y2izQFSgEzb92gqqx1M,4062
169
171
  megadetector/taxonomy_mapping/prepare_lila_taxonomy_release.py,sha256=N9TUgg3_2u4hc5OBRydvEpweC3RIJ9ry5bXoi1BXLAY,4676
170
- megadetector/taxonomy_mapping/preview_lila_taxonomy.py,sha256=eYl7tjvSlEH7F7UsRm8YlljQAdITEQvjQb-1NyYbQK8,19583
172
+ megadetector/taxonomy_mapping/preview_lila_taxonomy.py,sha256=3e-e3rurissksHgRCrc-_oLJSy2KCxcvwtAQM7L2E1U,19549
171
173
  megadetector/taxonomy_mapping/retrieve_sample_image.py,sha256=4cfWsLRwS_EwAmQr2p5tA_W6glBK71tSjPfaHxUZQWs,1979
172
174
  megadetector/taxonomy_mapping/simple_image_download.py,sha256=_1dEGn4356mdQAy9yzkH5DntPO7-nQyYo2zm08ODpJc,6852
173
175
  megadetector/taxonomy_mapping/species_lookup.py,sha256=B5arfF1OVICtTokVOtJcN8W2SxGmq46AO0SfA11Upt8,28291
@@ -176,11 +178,11 @@ megadetector/taxonomy_mapping/taxonomy_graph.py,sha256=ayrTFseVaIMbtMXhnjWCkZdxI
176
178
  megadetector/taxonomy_mapping/validate_lila_category_mappings.py,sha256=1qyZr23bvZSVUYLQnO1XAtIZ4jdpARA5dxt8euKVyOA,2527
177
179
  megadetector/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
178
180
  megadetector/utils/azure_utils.py,sha256=0BdnkG2hW-X0yFpsJqmBhOd2wysz_LvhuyImPJMVPJs,6271
179
- megadetector/utils/ct_utils.py,sha256=mppmjTtRNGgnp0IBoXUPy5uNAanxpgPteVW5ACUi3vg,17847
181
+ megadetector/utils/ct_utils.py,sha256=RTMc0UszYuW9QpMo-qetaWder1mFWIzkMLL2UM6PYdY,17960
180
182
  megadetector/utils/directory_listing.py,sha256=r4rg2xA4O9ZVxVtzPZzXIXa0DOEukAJMTTNcNSiQcuM,9668
181
- megadetector/utils/md_tests.py,sha256=FTNB-_5_gICkvbQZ9_m5aPoHc-5PeWokkKvFJ47qTcM,36018
182
- megadetector/utils/path_utils.py,sha256=kVkz70tZM2RpNpuquqFCydL6ca5n3Grwh0Un2lHpXCA,35948
183
- megadetector/utils/process_utils.py,sha256=uNzbijLk4lRqj2uU9zlUN8VuDeM4J7aLR2eb2O2-9ys,5226
183
+ megadetector/utils/md_tests.py,sha256=sD6HW_E5hqNcj-rjDVKlcwzBOT8W0WAY9khG3ofpvQE,44322
184
+ megadetector/utils/path_utils.py,sha256=E57sjmSzZ5FWd5aQvLiP7VvjVoyKa1S5yL0Oz-CdxRs,36049
185
+ megadetector/utils/process_utils.py,sha256=pSReAq30XGit_uTy5a-YeQ9_DlYIGMreQZ_kRAcvnJc,5330
184
186
  megadetector/utils/sas_blob_utils.py,sha256=k76EcMmJc_otrEHcfV2fxAC6fNhxU88FxM3ddSYrsKU,16917
185
187
  megadetector/utils/split_locations_into_train_val.py,sha256=jvaDu1xKB51L3Xq2nXQo0XtXRjNRf8RglBApl1g6gHo,10101
186
188
  megadetector/utils/string_utils.py,sha256=ZQapJodzvTDyQhjZgMoMl3-9bqnKAUlORpws8Db9AkA,2050
@@ -190,10 +192,10 @@ megadetector/visualization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
190
192
  megadetector/visualization/plot_utils.py,sha256=lOfU3uPrcuHZagV_1SN8erT8PujIepocgw6KZ17Ej6c,10671
191
193
  megadetector/visualization/render_images_with_thumbnails.py,sha256=kgJYW8BsqRO4C7T3sqItdBuSkZ64I1vOtIWAsVG4XBI,10589
192
194
  megadetector/visualization/visualization_utils.py,sha256=BIb1uCDD6TlHLDM_2uA-4lzcVcdiFLeKu8kuY2fct6g,62150
193
- megadetector/visualization/visualize_db.py,sha256=l7U4emtNdLGTWU5gB7i7O9yOmvLDBCeZMOAGeKu36rk,20798
195
+ megadetector/visualization/visualize_db.py,sha256=3FhOtn3GHvNsomwSpsSEzYe58lF9B4Ob3MEi_xplrdo,21256
194
196
  megadetector/visualization/visualize_detector_output.py,sha256=dFpQdLnbULO8wPGeN2z0muYNtHglUDsH-LeqdbYa6DY,17096
195
- megadetector-5.0.12.dist-info/LICENSE,sha256=RMa3qq-7Cyk7DdtqRj_bP1oInGFgjyHn9-PZ3PcrqIs,1100
196
- megadetector-5.0.12.dist-info/METADATA,sha256=Hc-G5FqXVt5T1zxOx6qR5E4qpbinZvxBXVKnEqxkkeU,7892
197
- megadetector-5.0.12.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
198
- megadetector-5.0.12.dist-info/top_level.txt,sha256=wf9DXa8EwiOSZ4G5IPjakSxBPxTDjhYYnqWRfR-zS4M,13
199
- megadetector-5.0.12.dist-info/RECORD,,
197
+ megadetector-5.0.13.dist-info/LICENSE,sha256=RMa3qq-7Cyk7DdtqRj_bP1oInGFgjyHn9-PZ3PcrqIs,1100
198
+ megadetector-5.0.13.dist-info/METADATA,sha256=F1YjjxKHnVp17PDYDGPDmFfntKjltACiD7dg8Kq1584,7893
199
+ megadetector-5.0.13.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
200
+ megadetector-5.0.13.dist-info/top_level.txt,sha256=wf9DXa8EwiOSZ4G5IPjakSxBPxTDjhYYnqWRfR-zS4M,13
201
+ megadetector-5.0.13.dist-info/RECORD,,