megadetector 5.0.5__py3-none-any.whl → 5.0.7__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.
- api/batch_processing/data_preparation/manage_local_batch.py +302 -263
- api/batch_processing/data_preparation/manage_video_batch.py +81 -2
- api/batch_processing/postprocessing/add_max_conf.py +1 -0
- api/batch_processing/postprocessing/categorize_detections_by_size.py +50 -19
- api/batch_processing/postprocessing/compare_batch_results.py +110 -60
- api/batch_processing/postprocessing/load_api_results.py +56 -70
- api/batch_processing/postprocessing/md_to_coco.py +1 -1
- api/batch_processing/postprocessing/md_to_labelme.py +2 -1
- api/batch_processing/postprocessing/postprocess_batch_results.py +240 -81
- api/batch_processing/postprocessing/render_detection_confusion_matrix.py +625 -0
- api/batch_processing/postprocessing/repeat_detection_elimination/find_repeat_detections.py +71 -23
- api/batch_processing/postprocessing/repeat_detection_elimination/remove_repeat_detections.py +1 -1
- api/batch_processing/postprocessing/repeat_detection_elimination/repeat_detections_core.py +227 -75
- api/batch_processing/postprocessing/subset_json_detector_output.py +132 -5
- api/batch_processing/postprocessing/top_folders_to_bottom.py +1 -1
- api/synchronous/api_core/animal_detection_api/detection/run_detector_batch.py +2 -2
- classification/prepare_classification_script.py +191 -191
- data_management/coco_to_yolo.py +68 -45
- data_management/databases/integrity_check_json_db.py +7 -5
- data_management/generate_crops_from_cct.py +3 -3
- data_management/get_image_sizes.py +8 -6
- data_management/importers/add_timestamps_to_icct.py +79 -0
- data_management/importers/animl_results_to_md_results.py +160 -0
- data_management/importers/auckland_doc_test_to_json.py +4 -4
- data_management/importers/auckland_doc_to_json.py +1 -1
- data_management/importers/awc_to_json.py +5 -5
- data_management/importers/bellevue_to_json.py +5 -5
- data_management/importers/carrizo_shrubfree_2018.py +5 -5
- data_management/importers/carrizo_trail_cam_2017.py +5 -5
- data_management/importers/cct_field_adjustments.py +2 -3
- data_management/importers/channel_islands_to_cct.py +4 -4
- data_management/importers/ena24_to_json.py +5 -5
- data_management/importers/helena_to_cct.py +10 -10
- data_management/importers/idaho-camera-traps.py +12 -12
- data_management/importers/idfg_iwildcam_lila_prep.py +8 -8
- data_management/importers/jb_csv_to_json.py +4 -4
- data_management/importers/missouri_to_json.py +1 -1
- data_management/importers/noaa_seals_2019.py +1 -1
- data_management/importers/pc_to_json.py +5 -5
- data_management/importers/prepare-noaa-fish-data-for-lila.py +4 -4
- data_management/importers/prepare_zsl_imerit.py +5 -5
- data_management/importers/rspb_to_json.py +4 -4
- data_management/importers/save_the_elephants_survey_A.py +5 -5
- data_management/importers/save_the_elephants_survey_B.py +6 -6
- data_management/importers/snapshot_safari_importer.py +9 -9
- data_management/importers/snapshot_serengeti_lila.py +9 -9
- data_management/importers/timelapse_csv_set_to_json.py +5 -7
- data_management/importers/ubc_to_json.py +4 -4
- data_management/importers/umn_to_json.py +4 -4
- data_management/importers/wellington_to_json.py +1 -1
- data_management/importers/wi_to_json.py +2 -2
- data_management/importers/zamba_results_to_md_results.py +181 -0
- data_management/labelme_to_coco.py +35 -7
- data_management/labelme_to_yolo.py +229 -0
- data_management/lila/add_locations_to_island_camera_traps.py +1 -1
- data_management/lila/add_locations_to_nacti.py +147 -0
- data_management/lila/create_lila_blank_set.py +474 -0
- data_management/lila/create_lila_test_set.py +2 -1
- data_management/lila/create_links_to_md_results_files.py +106 -0
- data_management/lila/download_lila_subset.py +46 -21
- data_management/lila/generate_lila_per_image_labels.py +23 -14
- data_management/lila/get_lila_annotation_counts.py +17 -11
- data_management/lila/lila_common.py +14 -11
- data_management/lila/test_lila_metadata_urls.py +116 -0
- data_management/ocr_tools.py +829 -0
- data_management/resize_coco_dataset.py +13 -11
- data_management/yolo_output_to_md_output.py +84 -12
- data_management/yolo_to_coco.py +38 -20
- detection/process_video.py +36 -14
- detection/pytorch_detector.py +23 -8
- detection/run_detector.py +76 -19
- detection/run_detector_batch.py +178 -63
- detection/run_inference_with_yolov5_val.py +326 -57
- detection/run_tiled_inference.py +153 -43
- detection/video_utils.py +34 -8
- md_utils/ct_utils.py +172 -1
- md_utils/md_tests.py +372 -51
- md_utils/path_utils.py +167 -39
- md_utils/process_utils.py +26 -7
- md_utils/split_locations_into_train_val.py +215 -0
- md_utils/string_utils.py +10 -0
- md_utils/url_utils.py +0 -2
- md_utils/write_html_image_list.py +9 -26
- md_visualization/plot_utils.py +12 -8
- md_visualization/visualization_utils.py +106 -7
- md_visualization/visualize_db.py +16 -8
- md_visualization/visualize_detector_output.py +208 -97
- {megadetector-5.0.5.dist-info → megadetector-5.0.7.dist-info}/METADATA +3 -6
- {megadetector-5.0.5.dist-info → megadetector-5.0.7.dist-info}/RECORD +98 -121
- {megadetector-5.0.5.dist-info → megadetector-5.0.7.dist-info}/WHEEL +1 -1
- taxonomy_mapping/map_lila_taxonomy_to_wi_taxonomy.py +1 -1
- taxonomy_mapping/map_new_lila_datasets.py +43 -39
- taxonomy_mapping/prepare_lila_taxonomy_release.py +5 -2
- taxonomy_mapping/preview_lila_taxonomy.py +27 -27
- taxonomy_mapping/species_lookup.py +33 -13
- taxonomy_mapping/taxonomy_csv_checker.py +7 -5
- api/synchronous/api_core/yolov5/detect.py +0 -252
- api/synchronous/api_core/yolov5/export.py +0 -607
- api/synchronous/api_core/yolov5/hubconf.py +0 -146
- api/synchronous/api_core/yolov5/models/__init__.py +0 -0
- api/synchronous/api_core/yolov5/models/common.py +0 -738
- api/synchronous/api_core/yolov5/models/experimental.py +0 -104
- api/synchronous/api_core/yolov5/models/tf.py +0 -574
- api/synchronous/api_core/yolov5/models/yolo.py +0 -338
- api/synchronous/api_core/yolov5/train.py +0 -670
- api/synchronous/api_core/yolov5/utils/__init__.py +0 -36
- api/synchronous/api_core/yolov5/utils/activations.py +0 -103
- api/synchronous/api_core/yolov5/utils/augmentations.py +0 -284
- api/synchronous/api_core/yolov5/utils/autoanchor.py +0 -170
- api/synchronous/api_core/yolov5/utils/autobatch.py +0 -66
- api/synchronous/api_core/yolov5/utils/aws/__init__.py +0 -0
- api/synchronous/api_core/yolov5/utils/aws/resume.py +0 -40
- api/synchronous/api_core/yolov5/utils/benchmarks.py +0 -148
- api/synchronous/api_core/yolov5/utils/callbacks.py +0 -71
- api/synchronous/api_core/yolov5/utils/dataloaders.py +0 -1087
- api/synchronous/api_core/yolov5/utils/downloads.py +0 -178
- api/synchronous/api_core/yolov5/utils/flask_rest_api/example_request.py +0 -19
- api/synchronous/api_core/yolov5/utils/flask_rest_api/restapi.py +0 -46
- api/synchronous/api_core/yolov5/utils/general.py +0 -1018
- api/synchronous/api_core/yolov5/utils/loggers/__init__.py +0 -187
- api/synchronous/api_core/yolov5/utils/loggers/wandb/__init__.py +0 -0
- api/synchronous/api_core/yolov5/utils/loggers/wandb/log_dataset.py +0 -27
- api/synchronous/api_core/yolov5/utils/loggers/wandb/sweep.py +0 -41
- api/synchronous/api_core/yolov5/utils/loggers/wandb/wandb_utils.py +0 -577
- api/synchronous/api_core/yolov5/utils/loss.py +0 -234
- api/synchronous/api_core/yolov5/utils/metrics.py +0 -355
- api/synchronous/api_core/yolov5/utils/plots.py +0 -489
- api/synchronous/api_core/yolov5/utils/torch_utils.py +0 -314
- api/synchronous/api_core/yolov5/val.py +0 -394
- md_utils/matlab_porting_tools.py +0 -97
- {megadetector-5.0.5.dist-info → megadetector-5.0.7.dist-info}/LICENSE +0 -0
- {megadetector-5.0.5.dist-info → megadetector-5.0.7.dist-info}/top_level.txt +0 -0
|
@@ -8,29 +8,30 @@ api/batch_processing/api_core/server_utils.py,sha256=oFusP1E29op5DN1nEaR-jQZgREx
|
|
|
8
8
|
api/batch_processing/api_core/batch_service/score.py,sha256=ZuPQV7O1u9QNPhWVSYxQqvYgXo9p15e-XhnUyuz0vLE,17347
|
|
9
9
|
api/batch_processing/api_core_support/aggregate_results_manually.py,sha256=8yDXbw12G8Y6SOv09tY-0hPXMNG_iRPv6mzxBiccsaU,2275
|
|
10
10
|
api/batch_processing/api_support/summarize_daily_activity.py,sha256=SmRGAMWTKXf9bDXUPsTySMiIg8K1LDkAC8KVBVH_mPg,5383
|
|
11
|
-
api/batch_processing/data_preparation/manage_local_batch.py,sha256=
|
|
12
|
-
api/batch_processing/data_preparation/manage_video_batch.py,sha256=
|
|
11
|
+
api/batch_processing/data_preparation/manage_local_batch.py,sha256=Nb9MxJyAJC2e4twWkoGfI-crSSgB9g8Ue28cbbeE5QA,88618
|
|
12
|
+
api/batch_processing/data_preparation/manage_video_batch.py,sha256=fobPIMmfvdqa1OzxsurEYCFVnUTHGrtrGBiCq3xnYHs,9668
|
|
13
13
|
api/batch_processing/integration/digiKam/setup.py,sha256=7P1X3JYrBDXmLUeLRrzxNfDkL5lo-pY8nXsp9Cz8rOI,203
|
|
14
14
|
api/batch_processing/integration/digiKam/xmp_integration.py,sha256=AbGPTe9RjjOkKdiZDSElai61QyfeiLQQqJR2fiJpymA,17775
|
|
15
15
|
api/batch_processing/integration/eMammal/test_scripts/config_template.py,sha256=UnvrgaFRBu59MuVUJa2WpG8ebcOJWcNeZEx6GWuYLzc,73
|
|
16
16
|
api/batch_processing/integration/eMammal/test_scripts/push_annotations_to_emammal.py,sha256=eIzEKiwzCfifCOCGf-jf8G4dMuzyxQMWlrFzt-Z-nVk,3608
|
|
17
17
|
api/batch_processing/integration/eMammal/test_scripts/select_images_for_testing.py,sha256=OYMu97p8vprSv03QcnS6aSxPBocn9sgaozfUqq_JpyM,1369
|
|
18
|
-
api/batch_processing/postprocessing/add_max_conf.py,sha256=
|
|
19
|
-
api/batch_processing/postprocessing/categorize_detections_by_size.py,sha256=
|
|
18
|
+
api/batch_processing/postprocessing/add_max_conf.py,sha256=y4Xr_OHRxcop3vsLWQJ56eYIemm2HHKqVfvKJonTcQA,1530
|
|
19
|
+
api/batch_processing/postprocessing/categorize_detections_by_size.py,sha256=b_O2OM44zIXewR4RjzeS2ue-32k5jE6KgjiPn8JRxAA,4877
|
|
20
20
|
api/batch_processing/postprocessing/combine_api_outputs.py,sha256=WsOV4EsK9JUCMka1_-u-vinmWc6Ko8B0PD5fmwoXHh0,8233
|
|
21
|
-
api/batch_processing/postprocessing/compare_batch_results.py,sha256=
|
|
21
|
+
api/batch_processing/postprocessing/compare_batch_results.py,sha256=65Kq6mChsPElQfjhWgLDmnO9b6igatQvXiasB2YVHno,34652
|
|
22
22
|
api/batch_processing/postprocessing/convert_output_format.py,sha256=aLboVVZdlGUNYOZhme0w8LtYrd04i15oK0apOgZaYWk,12947
|
|
23
|
-
api/batch_processing/postprocessing/load_api_results.py,sha256=
|
|
24
|
-
api/batch_processing/postprocessing/md_to_coco.py,sha256=
|
|
25
|
-
api/batch_processing/postprocessing/md_to_labelme.py,sha256=
|
|
23
|
+
api/batch_processing/postprocessing/load_api_results.py,sha256=1BwpXUUQiGJeOUDfQTiA9thNd5jbSbOU3siTO1_Dw5s,6997
|
|
24
|
+
api/batch_processing/postprocessing/md_to_coco.py,sha256=dRAkCGWtcNy_vsSTkX1h_0DZAsW6zNO7F-8XSkR8wAo,10139
|
|
25
|
+
api/batch_processing/postprocessing/md_to_labelme.py,sha256=lfheIrXqzjq6lInmlYgYq354PrVvH2SPNXKr8e3S_DQ,7075
|
|
26
26
|
api/batch_processing/postprocessing/merge_detections.py,sha256=B4QnqW9nvcEJpXzAK20TVB0t6L8c7PR5OjPy8FX-5Z8,15930
|
|
27
|
-
api/batch_processing/postprocessing/postprocess_batch_results.py,sha256=
|
|
27
|
+
api/batch_processing/postprocessing/postprocess_batch_results.py,sha256=l_uyOTTINq9GBZlHsAnPteEvA-rWmKZH-eWVcqbMPUM,73653
|
|
28
|
+
api/batch_processing/postprocessing/render_detection_confusion_matrix.py,sha256=h-a7tWNBSe3VRUg-Z4aX-ySUzrF8NfiEYWA1lHbZrmo,25040
|
|
28
29
|
api/batch_processing/postprocessing/separate_detections_into_folders.py,sha256=l5NKxDDxROc2EXt8EslrswXAZkQXgWTy5FSqCqa09Ug,28720
|
|
29
|
-
api/batch_processing/postprocessing/subset_json_detector_output.py,sha256=
|
|
30
|
-
api/batch_processing/postprocessing/top_folders_to_bottom.py,sha256=
|
|
31
|
-
api/batch_processing/postprocessing/repeat_detection_elimination/find_repeat_detections.py,sha256
|
|
32
|
-
api/batch_processing/postprocessing/repeat_detection_elimination/remove_repeat_detections.py,sha256=
|
|
33
|
-
api/batch_processing/postprocessing/repeat_detection_elimination/repeat_detections_core.py,sha256
|
|
30
|
+
api/batch_processing/postprocessing/subset_json_detector_output.py,sha256=EROwcj4K-abAwzyZjPCQocuayIVma85lV-D6WvvRMuc,26368
|
|
31
|
+
api/batch_processing/postprocessing/top_folders_to_bottom.py,sha256=etJK9DmHppMe3WqGXypuilW-n-7hOjOO9w_k1khlaVU,5476
|
|
32
|
+
api/batch_processing/postprocessing/repeat_detection_elimination/find_repeat_detections.py,sha256=fYqPZhaL-6cbpKHz96O3Ch65Y8xux2LQ2-ZlMGhOlM0,9053
|
|
33
|
+
api/batch_processing/postprocessing/repeat_detection_elimination/remove_repeat_detections.py,sha256=YdMvM814TX0ZRTnP7BfowE62PoMoCOYcJOFl69DlKhQ,2189
|
|
34
|
+
api/batch_processing/postprocessing/repeat_detection_elimination/repeat_detections_core.py,sha256=D-q20g9kLXCNB8IMyeLYxdMSvipzmgu2buEh--HJrC0,62882
|
|
34
35
|
api/synchronous/api_core/animal_detection_api/api_backend.py,sha256=PJXV0RFb6FoPBmdRug5W_5nbFwY2C_8CvDpFHjDs9w4,4934
|
|
35
36
|
api/synchronous/api_core/animal_detection_api/api_frontend.py,sha256=_FGLf5C2tXQABFEGaA2Kzq05hj_D60BaIfWLCI-Os_4,10690
|
|
36
37
|
api/synchronous/api_core/animal_detection_api/config.py,sha256=yEf7JZwRJCtHEV80kYvnNnUFJNds_AYLhomffwfFQi0,1017
|
|
@@ -38,7 +39,7 @@ api/synchronous/api_core/animal_detection_api/data_management/annotations/annota
|
|
|
38
39
|
api/synchronous/api_core/animal_detection_api/detection/process_video.py,sha256=b2xcQThAdlgirumxynHULYLviCr_q5sCDfdkKEqVFyU,22089
|
|
39
40
|
api/synchronous/api_core/animal_detection_api/detection/pytorch_detector.py,sha256=nI2xctI6FSdbWjSFHYlMT0LTH6CCATOe9DF-I8MLEpc,11505
|
|
40
41
|
api/synchronous/api_core/animal_detection_api/detection/run_detector.py,sha256=LBveNOLE3AWSTcQ1MUbbWXaQIutr9e2vtz6RG2SjlWQ,23821
|
|
41
|
-
api/synchronous/api_core/animal_detection_api/detection/run_detector_batch.py,sha256=
|
|
42
|
+
api/synchronous/api_core/animal_detection_api/detection/run_detector_batch.py,sha256=eivQu5yee5WtBmNQRQ2p636Gf8IB5slyrQL4QRZ2HeM,41849
|
|
42
43
|
api/synchronous/api_core/animal_detection_api/detection/run_inference_with_yolov5_val.py,sha256=yxMFxQQDvkydWVpM0ecopDXtPi89gaqMX0TKjyxNyjI,22118
|
|
43
44
|
api/synchronous/api_core/animal_detection_api/detection/run_tiled_inference.py,sha256=cs1IehE2DXj8Nr3CbnYMXqwcFM1vUBT1Rm5We5nlcSM,28785
|
|
44
45
|
api/synchronous/api_core/animal_detection_api/detection/tf_detector.py,sha256=xOO8kzd-Um2X_sAZyop524LM53nipv5pNx8YueGTJrc,6760
|
|
@@ -57,39 +58,6 @@ api/synchronous/api_core/animal_detection_api/md_utils/url_utils.py,sha256=aFN7_
|
|
|
57
58
|
api/synchronous/api_core/animal_detection_api/md_utils/write_html_image_list.py,sha256=myXMdOwUERZWp9p2RPu8TcStCsu2X7aJNtcomlhoeqA,7573
|
|
58
59
|
api/synchronous/api_core/animal_detection_api/md_visualization/visualization_utils.py,sha256=Up8hfM_KYyToIUhTv3sSrXGoYl8Hm57NO5t5AHMW3tk,31680
|
|
59
60
|
api/synchronous/api_core/tests/load_test.py,sha256=Xiq2JFv9mnSHehwrm-grZ1Flv9qtkW-zUrTu1cYPry8,3386
|
|
60
|
-
api/synchronous/api_core/yolov5/detect.py,sha256=qCNxiyz23NscQ9PiK9SfyvsYP4ciHNSydmC1pUwbzgY,13296
|
|
61
|
-
api/synchronous/api_core/yolov5/export.py,sha256=zhGuz5JEkN7wOrwt7TNZby2MQKXaSDD5eGVyV0x4UU4,29941
|
|
62
|
-
api/synchronous/api_core/yolov5/hubconf.py,sha256=lja94O2fNPugd766NWLohGGKe8uYL3CcoCQWqU9NRow,6465
|
|
63
|
-
api/synchronous/api_core/yolov5/train.py,sha256=xvV9cem0nnRkD74GL5b12OT1_zYfjHu_VXzGsfVkKo8,34919
|
|
64
|
-
api/synchronous/api_core/yolov5/val.py,sha256=L1W5ev0MkNpAkC1pHn6PIT_zUEzoNtGtHsk8reyJX-8,19434
|
|
65
|
-
api/synchronous/api_core/yolov5/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
66
|
-
api/synchronous/api_core/yolov5/models/common.py,sha256=3HlH4myzir6ayBakq7afJ8mFjTtefzdm85dTManKvrU,35329
|
|
67
|
-
api/synchronous/api_core/yolov5/models/experimental.py,sha256=mgAH6xBRO9KDK2wUi04NnDTBbH7BG79a601SgVuvneA,4146
|
|
68
|
-
api/synchronous/api_core/yolov5/models/tf.py,sha256=q6E1ihkzvNFO_HevsTUPpGjV5khvVxsOVgD44JEAJXg,25502
|
|
69
|
-
api/synchronous/api_core/yolov5/models/yolo.py,sha256=wCOZqYJ6rTGDDTM7e9KBWIQkzmFz4msSBjyswbtZ3FI,15354
|
|
70
|
-
api/synchronous/api_core/yolov5/utils/__init__.py,sha256=EzJ0SYWEjKTqO81GwH-CaGOHFj2U74_SzPsEfAl4-D4,1093
|
|
71
|
-
api/synchronous/api_core/yolov5/utils/activations.py,sha256=jMA9XaVgjAoRTAZqf5EYzm3Vl-5eAryuHAzDUR6NFJk,3449
|
|
72
|
-
api/synchronous/api_core/yolov5/utils/augmentations.py,sha256=OEpzoz2LsxSze3TV4MqnDTESIRSjRA2GS4zRzWKdDns,11910
|
|
73
|
-
api/synchronous/api_core/yolov5/utils/autoanchor.py,sha256=ED5gl4HWF1ECwoMQ0DIMraFXYkRrbET5oFsigfF8mM0,7443
|
|
74
|
-
api/synchronous/api_core/yolov5/utils/autobatch.py,sha256=l1h-OF7bMrrdkjBY4iINdNfXByv_X9FbLIdEA2peZMA,2600
|
|
75
|
-
api/synchronous/api_core/yolov5/utils/benchmarks.py,sha256=Gja7nJludYFVHLpB6gEn1jOrDphORI4yiYGV7IubQ3w,6325
|
|
76
|
-
api/synchronous/api_core/yolov5/utils/callbacks.py,sha256=A-pteFVbql5vPtMCfQ7GT6HL25lisTMicicLmVfPgAs,2402
|
|
77
|
-
api/synchronous/api_core/yolov5/utils/dataloaders.py,sha256=XFnQcXRCiHnFVNVy0Cas8AVwCGuZK_Bt8AuxyuffHVI,47301
|
|
78
|
-
api/synchronous/api_core/yolov5/utils/downloads.py,sha256=7yrhzoQs9pqperi9TQMXC7B1tqJMBRKtr_PR6USSiWM,7111
|
|
79
|
-
api/synchronous/api_core/yolov5/utils/general.py,sha256=bwXU8Z1S_E1VBKvTBX6XUzL16-j3SmO_ZmgseEyQdr4,41842
|
|
80
|
-
api/synchronous/api_core/yolov5/utils/loss.py,sha256=Yagud7Hc5GUbM2VRD6ghAqwPi8M7LlJjKfFw9nOz8d4,9919
|
|
81
|
-
api/synchronous/api_core/yolov5/utils/metrics.py,sha256=7A2nBrxUDH5lynMRZePALx-tTvBp6pj0I0uRsy8m8ZY,14361
|
|
82
|
-
api/synchronous/api_core/yolov5/utils/plots.py,sha256=LQ_ZuJA1xIZznRDNvglx4qjPu36QOVSrq6p9baCKafg,21021
|
|
83
|
-
api/synchronous/api_core/yolov5/utils/torch_utils.py,sha256=H5PFUbO_hCuH-BFNiLkQPeK9708ggHu1r8sDaA6LLuc,13562
|
|
84
|
-
api/synchronous/api_core/yolov5/utils/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
85
|
-
api/synchronous/api_core/yolov5/utils/aws/resume.py,sha256=GeIf_rNsmIEpmvOPQ7bZp8pF9OPy6287VjbegHlRR0g,1198
|
|
86
|
-
api/synchronous/api_core/yolov5/utils/flask_rest_api/example_request.py,sha256=t2NqIw3dksG9XZCz3-QjwtFCHBbFFIW2TKpXEZr_5bg,368
|
|
87
|
-
api/synchronous/api_core/yolov5/utils/flask_rest_api/restapi.py,sha256=lPY_R2_n1KMcT1R3G7y8d83idT2GmJ6dj5SnZYxtX-M,1410
|
|
88
|
-
api/synchronous/api_core/yolov5/utils/loggers/__init__.py,sha256=GIS8lmdizxGlqhRGgoVROnJxxQNcQhYw08dCQbtkvlQ,8095
|
|
89
|
-
api/synchronous/api_core/yolov5/utils/loggers/wandb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
90
|
-
api/synchronous/api_core/yolov5/utils/loggers/wandb/log_dataset.py,sha256=C0hoUQUinn56QBkLgCWZpNYZu6xpTKy0tTY0tC_8z44,1032
|
|
91
|
-
api/synchronous/api_core/yolov5/utils/loggers/wandb/sweep.py,sha256=psU3WRTwnzbq7P_lcdT0pyl6rI5DwR6_ALx_ECPAJj8,1213
|
|
92
|
-
api/synchronous/api_core/yolov5/utils/loggers/wandb/wandb_utils.py,sha256=BgWPOU6dFsiG-gTpyFPzsttpoui_eCAMtOklrFquuRc,27586
|
|
93
61
|
classification/aggregate_classifier_probs.py,sha256=1X5hpC2JRj790jyFEWES2RI1UbcjzhGcslhMJpvMpDM,3488
|
|
94
62
|
classification/analyze_failed_images.py,sha256=WG2ubdkClRo6-v3JqD6dQ7X0aah1L_rYry2BHzirOYE,8463
|
|
95
63
|
classification/cache_batchapi_outputs.py,sha256=EyVG8ynGSX3R7aiz6cN7mDhX7miyMg7FnMXnO2OzScQ,6400
|
|
@@ -103,7 +71,7 @@ classification/json_to_azcopy_list.py,sha256=o57wLHJPDrP9OPSY-3x81WI3mmcH1DyIOUh
|
|
|
103
71
|
classification/json_validator.py,sha256=ZizcEPpW1J26p-oGyfvcffBy2voNRKCNXKF8NtxIt5A,26618
|
|
104
72
|
classification/map_classification_categories.py,sha256=2B4K-TdE77VNw8XG1h8X7CuUvw0JSIrALdy6a1FvkXw,10738
|
|
105
73
|
classification/merge_classification_detection_output.py,sha256=2FDTauvkbMZ3putJH837Ux67HTGsCAnGCOXhnnqjt6g,20123
|
|
106
|
-
classification/prepare_classification_script.py,sha256=
|
|
74
|
+
classification/prepare_classification_script.py,sha256=7xwqws57Fkn0rmH5sADlem9trOJkiriSRwPredeIXho,5952
|
|
107
75
|
classification/prepare_classification_script_mc.py,sha256=IMCsLyGL70cViVTH0eow0sYDM9E81AsBGrctNveXP10,7440
|
|
108
76
|
classification/run_classifier.py,sha256=eBpkZzP7TtrnwOIlc99fTpe1QocmDuERaIw9mXqwAWI,9363
|
|
109
77
|
classification/save_mislabeled.py,sha256=WmOKNXgrvvIkUdehiiWHNiKc5M7q0UM2If0vea0_7K8,3466
|
|
@@ -118,108 +86,117 @@ data_management/cct_json_utils.py,sha256=JX5pJh5QLyKDhcXheUYgbRSd99uB9Ui-EfsRZ_F
|
|
|
118
86
|
data_management/cct_to_csv.py,sha256=urIL8IUByhKZ4FLLa9TKlzT6mu8upLzAPN1WNnDZdIY,3859
|
|
119
87
|
data_management/cct_to_md.py,sha256=0QtqUdUkrema2BSNTeJqHYkDuwOLc7tOQwq1KxTbtPE,4485
|
|
120
88
|
data_management/cct_to_wi.py,sha256=nJKUhLXcZXKE5tAR9UxbqCjeikfaABfB746wpv-1BmI,8336
|
|
121
|
-
data_management/coco_to_yolo.py,sha256=
|
|
122
|
-
data_management/generate_crops_from_cct.py,sha256=
|
|
123
|
-
data_management/get_image_sizes.py,sha256=
|
|
124
|
-
data_management/labelme_to_coco.py,sha256=
|
|
89
|
+
data_management/coco_to_yolo.py,sha256=8c-9cCjelKTwMOL6gQc9oAWum7UPxIr0FP_tiK8NyLc,25880
|
|
90
|
+
data_management/generate_crops_from_cct.py,sha256=m6HJ8bB4N50HYV4SXAUV43k1XJl71QZmmWZ4L-9T45Y,4283
|
|
91
|
+
data_management/get_image_sizes.py,sha256=yUCI5zQmA9G_GDaQiApwoafmO37cUi97dw-Ekh5leOE,4220
|
|
92
|
+
data_management/labelme_to_coco.py,sha256=9RpOp-IV5miJag4KInLijR7koH8eZSztKdAmArhoMx4,14204
|
|
93
|
+
data_management/labelme_to_yolo.py,sha256=XjhrmoGxyo1N-N8kueGzmy_m6FWR4SO8sNHFppoH-GQ,8480
|
|
94
|
+
data_management/ocr_tools.py,sha256=8cVJMQvzvv_6HXV8zMR4nJH72-L_f3Dy9IjIb3E32Js,29920
|
|
125
95
|
data_management/read_exif.py,sha256=HGCp5gvD8MHQ0xGGTX2_PD5JHFTdMtqjZ8ql2pt5Fn0,19036
|
|
126
96
|
data_management/remove_exif.py,sha256=_WDrKfRwK0UWCkj4SiLutGCd7-WRaKYoTgLfBWPDhGU,1555
|
|
127
|
-
data_management/resize_coco_dataset.py,sha256=
|
|
128
|
-
data_management/yolo_output_to_md_output.py,sha256=
|
|
129
|
-
data_management/yolo_to_coco.py,sha256=
|
|
97
|
+
data_management/resize_coco_dataset.py,sha256=pG1yVktPSp6Vc3DThrJO7lmo67_KvOdqEtFpwM6QjOA,7398
|
|
98
|
+
data_management/yolo_output_to_md_output.py,sha256=vxUdn4bqg0S67ozvxtnlX77X6S7nCvyZbKAyvCh_Suc,16313
|
|
99
|
+
data_management/yolo_to_coco.py,sha256=Xb9UVO-HHYrkJyxbASWJDZrZCyW3JwBPI_WN5SQHys4,8078
|
|
130
100
|
data_management/annotations/annotation_constants.py,sha256=P2CZCbAE0ImLLfaNRb1SMlP3q1fULWAIjgrYOrF9L0g,1566
|
|
131
101
|
data_management/databases/add_width_and_height_to_db.py,sha256=71mOEK3xo9gbxK1TVZzBA9nNi-1ElmBZbIPKrUm9XG0,619
|
|
132
102
|
data_management/databases/combine_coco_camera_traps_files.py,sha256=cwu_REQXdHWfVLtCvTvFEIvM7z8GwHVoawVuHcWv2aw,6888
|
|
133
|
-
data_management/databases/integrity_check_json_db.py,sha256=
|
|
103
|
+
data_management/databases/integrity_check_json_db.py,sha256=aQe36eEnhxHFpm9XGmFXCf4jsTvfXuBWMfKdIKKN4tU,14535
|
|
134
104
|
data_management/databases/remove_corrupted_images_from_db.py,sha256=Dod8UQDFveAUJlrH9Svcp_HezdILRHp74TbAl3YGf84,6138
|
|
135
105
|
data_management/databases/subset_json_db.py,sha256=UeVn3jlcpEw-K9E-QyRwxdzl7zaV80iv_u4v6kHUd_E,2749
|
|
136
106
|
data_management/importers/add_nacti_sizes.py,sha256=qsBHPyJ7MPzl0vgJX5iErZxWkTJ6QRcyLJ8GM2YBu2U,1172
|
|
137
|
-
data_management/importers/
|
|
138
|
-
data_management/importers/
|
|
139
|
-
data_management/importers/
|
|
140
|
-
data_management/importers/
|
|
107
|
+
data_management/importers/add_timestamps_to_icct.py,sha256=8XhQAIt_qw63qTMPobCKGl4O9RQZvZmhbmiSetOyNvA,2459
|
|
108
|
+
data_management/importers/animl_results_to_md_results.py,sha256=tzYaPpiUte5A1VHulAbYO9-hzUIpE1xI5lJp6hS_JoI,4899
|
|
109
|
+
data_management/importers/auckland_doc_test_to_json.py,sha256=9Fg-n_Kj2jK5iZVaPrioNkhlLNxGnrU5GS_44lsadKo,12910
|
|
110
|
+
data_management/importers/auckland_doc_to_json.py,sha256=qSjBcR7FTd5_J2LO6WOoIFxSnE2IiIIqRkhbydULV7s,5952
|
|
111
|
+
data_management/importers/awc_to_json.py,sha256=jLXmwGaq81wgH7HcpbAJoNMQP2CqkdfI1mvShdTGeqw,5307
|
|
112
|
+
data_management/importers/bellevue_to_json.py,sha256=d5QhZMrOY4hRC9vghojCulX6G8qnVrymnKDx_mUlsRE,7909
|
|
141
113
|
data_management/importers/cacophony-thermal-importer.py,sha256=0Y21Hx8Y4dMvpUpbKKMDYb0r-AqFD2k8N0Bf9q75geY,28621
|
|
142
|
-
data_management/importers/carrizo_shrubfree_2018.py,sha256=
|
|
143
|
-
data_management/importers/carrizo_trail_cam_2017.py,sha256=
|
|
144
|
-
data_management/importers/cct_field_adjustments.py,sha256=
|
|
145
|
-
data_management/importers/channel_islands_to_cct.py,sha256=
|
|
146
|
-
data_management/importers/ena24_to_json.py,sha256=
|
|
114
|
+
data_management/importers/carrizo_shrubfree_2018.py,sha256=pEdCh3z458dOnGIM_nXJIKlSb8Yv5yjr7Jjp32AwhaI,7827
|
|
115
|
+
data_management/importers/carrizo_trail_cam_2017.py,sha256=Kw0SnOMt7DwIhnSEz5wjLpJ4pMjEx5n5PNPW36vrskk,8830
|
|
116
|
+
data_management/importers/cct_field_adjustments.py,sha256=Kw1_gIxqXLovGa65jCRm9MIms6qfpqwTiOdM5unw9K8,1351
|
|
117
|
+
data_management/importers/channel_islands_to_cct.py,sha256=DmEhjm7iG11yuJUVkXhqWuAXOLYQvV3AXY8nkwyf2oY,29483
|
|
118
|
+
data_management/importers/ena24_to_json.py,sha256=XkJX0clvJREilzDByuoP6cuaOXvXnQoFkG25XoA8opU,8248
|
|
147
119
|
data_management/importers/filenames_to_json.py,sha256=wzleV-02pwNHKAVvqhkAwahIJ6La_-OCPEXTOg64ezM,10526
|
|
148
|
-
data_management/importers/helena_to_cct.py,sha256=
|
|
149
|
-
data_management/importers/idaho-camera-traps.py,sha256=
|
|
150
|
-
data_management/importers/idfg_iwildcam_lila_prep.py,sha256=
|
|
151
|
-
data_management/importers/jb_csv_to_json.py,sha256=
|
|
120
|
+
data_management/importers/helena_to_cct.py,sha256=imo-SRsib7c7NIM0vSE_6zbb3X7jA5XiIJrM6RbAoQA,8701
|
|
121
|
+
data_management/importers/idaho-camera-traps.py,sha256=xKXfrwTpdMWJM1U92eWXxKhtW57iIjB9YyS4b_nA4e0,54058
|
|
122
|
+
data_management/importers/idfg_iwildcam_lila_prep.py,sha256=emnKiw1TckZFsCI1uMgFIZUw1CERAVqufr9Tay94YAc,8166
|
|
123
|
+
data_management/importers/jb_csv_to_json.py,sha256=u3IZwDboObYlxtUSa35G8P3t_L48m2Ak5v7Fl8hCnGM,3730
|
|
152
124
|
data_management/importers/mcgill_to_json.py,sha256=ZxsNW9qFi6Kyu8SJ0BB5uK7AMuBW92QOOKXHPbIgPwY,6718
|
|
153
|
-
data_management/importers/missouri_to_json.py,sha256=
|
|
125
|
+
data_management/importers/missouri_to_json.py,sha256=y9lbLaD8bGM4m9iqGHIicyZOByeJGfZOF51RikHMSFU,14840
|
|
154
126
|
data_management/importers/nacti_fieldname_adjustments.py,sha256=57PyfOft2Ws-1AcG4_9mzOcB3uW4IFxaZ3z0LsItUUU,2045
|
|
155
|
-
data_management/importers/noaa_seals_2019.py,sha256=
|
|
156
|
-
data_management/importers/pc_to_json.py,sha256=
|
|
127
|
+
data_management/importers/noaa_seals_2019.py,sha256=wYcjhARv4IUJgawXcAnwIAOGZq5GORG8ElE_7JZSVCk,5145
|
|
128
|
+
data_management/importers/pc_to_json.py,sha256=9Nin7R47aaE5bjXjvq7A2trv2vFdJVYzhLHwLFji5Tg,10718
|
|
157
129
|
data_management/importers/plot_wni_giraffes.py,sha256=V_kAzbYjtXEBUCdSwSGsEEemLN9aVyZuKhoSZQEvkCI,3787
|
|
158
|
-
data_management/importers/prepare-noaa-fish-data-for-lila.py,sha256=
|
|
159
|
-
data_management/importers/prepare_zsl_imerit.py,sha256=
|
|
160
|
-
data_management/importers/rspb_to_json.py,sha256=
|
|
161
|
-
data_management/importers/save_the_elephants_survey_A.py,sha256=
|
|
162
|
-
data_management/importers/save_the_elephants_survey_B.py,sha256=
|
|
163
|
-
data_management/importers/snapshot_safari_importer.py,sha256=
|
|
130
|
+
data_management/importers/prepare-noaa-fish-data-for-lila.py,sha256=WIkuR4ozEeHwzQPs54jIDIbAgKf1I4taZNgpHHzh-Rc,12774
|
|
131
|
+
data_management/importers/prepare_zsl_imerit.py,sha256=9wTh9w6kyQXJoA2h0kuzzcoCF1lFNfO9eRlSTnV6unY,3754
|
|
132
|
+
data_management/importers/rspb_to_json.py,sha256=L-E4IcwvnwZ_I142dQ6BbQpAqZmNoAcVIuiwtuYGDXw,9834
|
|
133
|
+
data_management/importers/save_the_elephants_survey_A.py,sha256=OpGLHXLj1VGZQefZ1R59_mSiQ2KkKN11PyvKWWJnVbY,10639
|
|
134
|
+
data_management/importers/save_the_elephants_survey_B.py,sha256=qex23iOkUBttfDvoCeBw3NLVSbkf1xQtS8VhrvN4SgM,11167
|
|
135
|
+
data_management/importers/snapshot_safari_importer.py,sha256=h5xSAlFgxckBXmKLKrIIs9Hegq5StgGMaG5pTCPSpc8,23591
|
|
164
136
|
data_management/importers/snapshot_safari_importer_reprise.py,sha256=yRzgIYvcvMnlNL0sWv3ZUCNzo2e5_sy3k4DC18xh0Mc,22996
|
|
165
|
-
data_management/importers/snapshot_serengeti_lila.py,sha256=
|
|
137
|
+
data_management/importers/snapshot_serengeti_lila.py,sha256=mZ_hR7yHfeZFkLtuAO1U7kWRq3_wDtBE28-qXUZmBzo,33854
|
|
166
138
|
data_management/importers/sulross_get_exif.py,sha256=nc9MwF_5_Nlsv7f0W74G71G-MF5EZDZIvLqDeKvcwWc,2088
|
|
167
|
-
data_management/importers/timelapse_csv_set_to_json.py,sha256=
|
|
168
|
-
data_management/importers/ubc_to_json.py,sha256=
|
|
169
|
-
data_management/importers/umn_to_json.py,sha256=
|
|
170
|
-
data_management/importers/wellington_to_json.py,sha256=
|
|
171
|
-
data_management/importers/wi_to_json.py,sha256=
|
|
139
|
+
data_management/importers/timelapse_csv_set_to_json.py,sha256=7g1senO7SWUavktI9n214M2SwApN84TPuNTJPxHhZ3A,15902
|
|
140
|
+
data_management/importers/ubc_to_json.py,sha256=MP_whIR-CVhNPCE3vQF_tk-6_EpmxWwR40E7pOA10mI,14869
|
|
141
|
+
data_management/importers/umn_to_json.py,sha256=emUVCtNfbJmgHS22fBL8GaAMiblaJen52-IuqiFiWyI,16177
|
|
142
|
+
data_management/importers/wellington_to_json.py,sha256=QFcVfAxflUVHTMuGhXGxe3z3iMKJ0B8Nziwpx6XcoLE,7671
|
|
143
|
+
data_management/importers/wi_to_json.py,sha256=xuHFXE6tuaUnZmiFik18_3UCSCQx9abaG_2TnaRn0Xg,13656
|
|
144
|
+
data_management/importers/zamba_results_to_md_results.py,sha256=UV0Iczxf_ghR3yL8D8KUAEg1j81_BavdzWhAFtg6wHQ,5594
|
|
172
145
|
data_management/importers/eMammal/copy_and_unzip_emammal.py,sha256=gVB0drYUeCghWXFDpaJkCL0qdmFjMW75YAEEhFe38js,6080
|
|
173
146
|
data_management/importers/eMammal/eMammal_helpers.py,sha256=Sv6PBAMDdlgwiek6Q3R6Rjio2RjtA-JpfgBr_Fmr9kA,6838
|
|
174
147
|
data_management/importers/eMammal/make_eMammal_json.py,sha256=6C_-6Qk-Xhz_87DEPHA-txw90AvXrybJy1PbQXQbqwo,6987
|
|
175
148
|
data_management/importers/snapshotserengeti/make_full_SS_json.py,sha256=khE3W0pO3Uq-UCfrLW_rpzWqjLll2JoBc360XeAuUGc,4126
|
|
176
149
|
data_management/importers/snapshotserengeti/make_per_season_SS_json.py,sha256=sAwvcR2siwblgY3LfTsbH4mXOXvJZCA246QIsQWuQBA,4316
|
|
177
|
-
data_management/lila/add_locations_to_island_camera_traps.py,sha256=
|
|
178
|
-
data_management/lila/
|
|
179
|
-
data_management/lila/
|
|
180
|
-
data_management/lila/
|
|
181
|
-
data_management/lila/
|
|
150
|
+
data_management/lila/add_locations_to_island_camera_traps.py,sha256=nsIJXyw2IhOwwM9A0SCn108Fg297fRUdADXGUAN8Y34,2561
|
|
151
|
+
data_management/lila/add_locations_to_nacti.py,sha256=KVMWwSJx-gYI_J6J8y-AqsWnOTgidtebotJjYPfsj00,5017
|
|
152
|
+
data_management/lila/create_lila_blank_set.py,sha256=ScGlqalOySsmZEvYtEn4pGNxGOj0qHyxGs-F5URTmk8,16359
|
|
153
|
+
data_management/lila/create_lila_test_set.py,sha256=WxM-LuhtNiee3CLeVPxUEWsfbybgZd7oluZu6epl69A,4825
|
|
154
|
+
data_management/lila/create_links_to_md_results_files.py,sha256=f0pXY2Lyj9DtRlgFpmLqNBs2qWd--B8N6UAt8E26tcM,3916
|
|
155
|
+
data_management/lila/download_lila_subset.py,sha256=nJjzKuMOYJa2lBJcXOEZloWjbFlQW_USke49DJdNruM,5283
|
|
156
|
+
data_management/lila/generate_lila_per_image_labels.py,sha256=b0FDiYbs5BI8wdk221ysr-p1PsprfRFwMIgv65BYS6Y,17351
|
|
157
|
+
data_management/lila/get_lila_annotation_counts.py,sha256=QVSKCmeLzliFZimjzi8AClS0Gz94pDMYckjw2cOm-7E,5490
|
|
182
158
|
data_management/lila/get_lila_image_counts.py,sha256=r5p2wPL5vuKKO8DWia3Tll-EZZWFNUvax6ljaYtrKsk,3625
|
|
183
|
-
data_management/lila/lila_common.py,sha256=
|
|
184
|
-
|
|
185
|
-
detection/
|
|
186
|
-
detection/
|
|
187
|
-
detection/
|
|
188
|
-
detection/
|
|
189
|
-
detection/
|
|
159
|
+
data_management/lila/lila_common.py,sha256=vzazQR3UzvRxbxdBvRBcCbQ9pw0DUD3iWjUscV-nUvo,8785
|
|
160
|
+
data_management/lila/test_lila_metadata_urls.py,sha256=jDInoM5WD_EoahR_b5yTjrj6pkiitvj_Kz_1U0uSDzE,3966
|
|
161
|
+
detection/process_video.py,sha256=wuMoV-DJde_QlTiNAxsRjlDttiLl2e2BiJuyTQBINIE,26825
|
|
162
|
+
detection/pytorch_detector.py,sha256=WG6Q4KueBoA8lCZCdR2PrgbQAHs3HCO6MF01Ful4tfc,11992
|
|
163
|
+
detection/run_detector.py,sha256=XmQ4s-B7IlkxJye56y6uvx2vx6Ml3IBTo3Wx0SalO1Q,26036
|
|
164
|
+
detection/run_detector_batch.py,sha256=dgPwvEAOTutpuEKE6TCopjj5w9J1Eb9jOvT3lyEmoNc,46937
|
|
165
|
+
detection/run_inference_with_yolov5_val.py,sha256=tjHovM8I2YWvDsBcWV0h6hJaAjckTEN7foJ_X6IetIo,33755
|
|
166
|
+
detection/run_tiled_inference.py,sha256=mL1WxA4bWEf2TaT3xK-hXjA4_5ABBwfXx9zVbmhaWB4,33930
|
|
190
167
|
detection/tf_detector.py,sha256=xOO8kzd-Um2X_sAZyop524LM53nipv5pNx8YueGTJrc,6760
|
|
191
|
-
detection/video_utils.py,sha256=
|
|
168
|
+
detection/video_utils.py,sha256=70dx6_D9zQhAHatzHA0Bo3LreOJe98A859O243dFIvs,19425
|
|
192
169
|
detection/detector_training/copy_checkpoints.py,sha256=t2c3Q4Pf82tAp_OjSG-veIjRPrX0tJYi-bSQmGL2m4c,1091
|
|
193
170
|
detection/detector_training/model_main_tf2.py,sha256=YwNsZ7hkIFaEuwKU0rHG_VyqiR_0E01BbdlD0Yx4Smo,4936
|
|
194
171
|
md_utils/azure_utils.py,sha256=SVoQNSknYlBcpZeGrH2v3Qgm5kXxBrqM5Sx2L_Lax-I,6243
|
|
195
|
-
md_utils/ct_utils.py,sha256=
|
|
172
|
+
md_utils/ct_utils.py,sha256=CbuSL-XqI5jU9ShxEgnvIKqQF_BzbDPSTULPBmEVAnU,12908
|
|
196
173
|
md_utils/directory_listing.py,sha256=dgxMczSOEH352YXdWRuNo_ujsonRrPJXFeuS7ocpe9k,9615
|
|
197
|
-
md_utils/
|
|
198
|
-
md_utils/
|
|
199
|
-
md_utils/
|
|
200
|
-
md_utils/process_utils.py,sha256=ullaq8AIZNbUjG9ftB1kK3q8zJmfgbZdUNo1v3oXmvA,3191
|
|
174
|
+
md_utils/md_tests.py,sha256=FWqv74nBmN5772cSgRxnFZX8zZ3tikwMFr_rhvdV24Y,33316
|
|
175
|
+
md_utils/path_utils.py,sha256=g_ASvwJCeN6eGtypuwrSfCxNM7Gx15oeC6TXwJ6yYJc,16573
|
|
176
|
+
md_utils/process_utils.py,sha256=YkD38KLgceuqvMvDXIcVyzY51npUuUT3tOAjjF5Mvf8,4316
|
|
201
177
|
md_utils/sas_blob_utils.py,sha256=GpjHn33N2b-XeBAtU3xhGbTIYcBs4YrXHtbQDmlGFvY,16955
|
|
202
|
-
md_utils/
|
|
203
|
-
md_utils/
|
|
204
|
-
md_utils/
|
|
205
|
-
|
|
178
|
+
md_utils/split_locations_into_train_val.py,sha256=psiWoXkYYLLOfjVHUyOhaa3fh9mmlm7HGFthklWbMaA,9241
|
|
179
|
+
md_utils/string_utils.py,sha256=Edwa07IWu7-QTNoMmvQYNnYgpwxxNh9VhXQ8AXMX3Qg,1600
|
|
180
|
+
md_utils/url_utils.py,sha256=2Ee459ZRQ4Ms-52WRhyiEBICHACKmigrRnYRi6JtCdQ,4593
|
|
181
|
+
md_utils/write_html_image_list.py,sha256=VLbeJnrRPm-D-_KFDVAnrU3alrXUr6eOr4WOv4-ugwk,7036
|
|
182
|
+
md_visualization/plot_utils.py,sha256=eppaGgI0k73jhvOCruNrNO-VLH3EEFpFP2la_rZo57E,10712
|
|
206
183
|
md_visualization/render_images_with_thumbnails.py,sha256=XJcL5qxu5pe2LQ4MqnD-O6dM_cPxGGNoqk5U_rZzFUQ,10391
|
|
207
|
-
md_visualization/visualization_utils.py,sha256=
|
|
208
|
-
md_visualization/visualize_db.py,sha256=
|
|
209
|
-
md_visualization/visualize_detector_output.py,sha256=
|
|
184
|
+
md_visualization/visualization_utils.py,sha256=2OJKG_L70XYCCdhLGmQ5-HD9nCaHisqIJoRGIYb0L1g,35297
|
|
185
|
+
md_visualization/visualize_db.py,sha256=x6Y--RazaPvUayEch_Dr10NV0P0C7l0ZB29-vjW5WjI,18931
|
|
186
|
+
md_visualization/visualize_detector_output.py,sha256=aeg8DbwfddW5CDe84V2dt07eWMyxr4QdFcwTYbC_Lnk,15814
|
|
210
187
|
md_visualization/visualize_megadb.py,sha256=ZHFMgQv-zjXwvyT6gEfLe2BzodvBNfQYEh0b6P_59TE,6188
|
|
211
|
-
taxonomy_mapping/map_lila_taxonomy_to_wi_taxonomy.py,sha256=
|
|
212
|
-
taxonomy_mapping/map_new_lila_datasets.py,sha256=
|
|
213
|
-
taxonomy_mapping/prepare_lila_taxonomy_release.py,sha256=
|
|
214
|
-
taxonomy_mapping/preview_lila_taxonomy.py,sha256=
|
|
188
|
+
taxonomy_mapping/map_lila_taxonomy_to_wi_taxonomy.py,sha256=kFDp6r25LhYVkyrm-35TgBc2vgXXh6SmoARqO4aE9PU,16517
|
|
189
|
+
taxonomy_mapping/map_new_lila_datasets.py,sha256=rJlj-HuP9wNN2RvIlcWfqnW5N7cyiGLWglbe3FsFG0Q,4324
|
|
190
|
+
taxonomy_mapping/prepare_lila_taxonomy_release.py,sha256=Ser_lwpbYR75fMMcE49uT90t7o02dRZ7wY0GUyhzK9c,4357
|
|
191
|
+
taxonomy_mapping/preview_lila_taxonomy.py,sha256=iCcvf8dDsh1WZIZWq2ppua5wloAst6F6lphsS9vRTKQ,20144
|
|
215
192
|
taxonomy_mapping/retrieve_sample_image.py,sha256=BySUy69DeGwPiIs9Ws5vIILJCTXeVImE5AVoawOiECM,1992
|
|
216
193
|
taxonomy_mapping/simple_image_download.py,sha256=dXXVhhaR_bI-Elmk4Tmjt2ftdYzHbkuJCTzIMOJfLKs,6874
|
|
217
|
-
taxonomy_mapping/species_lookup.py,sha256=
|
|
218
|
-
taxonomy_mapping/taxonomy_csv_checker.py,sha256=
|
|
194
|
+
taxonomy_mapping/species_lookup.py,sha256=oRqaUbiH_xULH7z5mkrtaFhacxlyM8KT-V-c4FnNq4w,28303
|
|
195
|
+
taxonomy_mapping/taxonomy_csv_checker.py,sha256=xmV2SBOfQEuZBMGmXyUzbuNxvd_oXKysXkxU6-IhKJg,4874
|
|
219
196
|
taxonomy_mapping/taxonomy_graph.py,sha256=ZDm2enGanBlm8KXWvCndqmeerOp9LREaetSl-Lxy07s,12361
|
|
220
197
|
taxonomy_mapping/validate_lila_category_mappings.py,sha256=CApYVWIZ8TTJ3vvQTgfjIvWDGHpPo-Zn9jqJFaw3DNw,2314
|
|
221
|
-
megadetector-5.0.
|
|
222
|
-
megadetector-5.0.
|
|
223
|
-
megadetector-5.0.
|
|
224
|
-
megadetector-5.0.
|
|
225
|
-
megadetector-5.0.
|
|
198
|
+
megadetector-5.0.7.dist-info/LICENSE,sha256=RMa3qq-7Cyk7DdtqRj_bP1oInGFgjyHn9-PZ3PcrqIs,1100
|
|
199
|
+
megadetector-5.0.7.dist-info/METADATA,sha256=xgK96jYJkxj6kXvCzY3y8HlYb0-Oa44nmfETb2Ba7xI,7513
|
|
200
|
+
megadetector-5.0.7.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
201
|
+
megadetector-5.0.7.dist-info/top_level.txt,sha256=-mFGpqnmviVz0Vyr2GxZ_kTo_PBPNoK6h4JtqIMjZGQ,88
|
|
202
|
+
megadetector-5.0.7.dist-info/RECORD,,
|
|
@@ -15,15 +15,25 @@ import json
|
|
|
15
15
|
# Created by get_lila_category_list.py
|
|
16
16
|
input_lila_category_list_file = os.path.expanduser('~/lila/lila_categories_list/lila_dataset_to_categories.json')
|
|
17
17
|
|
|
18
|
-
output_file = os.path.expanduser('~/lila/
|
|
18
|
+
output_file = os.path.expanduser('~/lila/lila_additions_2023.12.29.csv')
|
|
19
19
|
|
|
20
20
|
datasets_to_map = [
|
|
21
|
-
|
|
22
|
-
# 'Channel Islands Camera Traps'
|
|
23
|
-
'ENA24'
|
|
21
|
+
'Trail Camera Images of New Zealand Animals'
|
|
24
22
|
]
|
|
25
23
|
|
|
26
24
|
|
|
25
|
+
#%% Initialize taxonomic lookup
|
|
26
|
+
|
|
27
|
+
from taxonomy_mapping.species_lookup import (
|
|
28
|
+
initialize_taxonomy_lookup,
|
|
29
|
+
get_preferred_taxonomic_match)
|
|
30
|
+
|
|
31
|
+
# from taxonomy_mapping.species_lookup import (
|
|
32
|
+
# get_taxonomic_info, print_taxonomy_matche)
|
|
33
|
+
|
|
34
|
+
initialize_taxonomy_lookup(force_init=False)
|
|
35
|
+
|
|
36
|
+
|
|
27
37
|
#%% Read the list of datasets
|
|
28
38
|
|
|
29
39
|
with open(input_lila_category_list_file,'r') as f:
|
|
@@ -57,46 +67,14 @@ for dataset_name in datasets_to_map:
|
|
|
57
67
|
print('Need to create {} mappings'.format(len(category_mappings)))
|
|
58
68
|
|
|
59
69
|
|
|
60
|
-
#%% Initialize taxonomic lookup
|
|
61
|
-
|
|
62
|
-
from taxonomy_mapping.species_lookup import (
|
|
63
|
-
initialize_taxonomy_lookup,
|
|
64
|
-
get_preferred_taxonomic_match)
|
|
65
|
-
|
|
66
|
-
# from taxonomy_mapping.species_lookup import (
|
|
67
|
-
# get_taxonomic_info, print_taxonomy_matche)
|
|
68
|
-
|
|
69
|
-
initialize_taxonomy_lookup()
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
#%% Manual lookup
|
|
73
|
-
|
|
74
|
-
if False:
|
|
75
|
-
|
|
76
|
-
#%%
|
|
77
|
-
|
|
78
|
-
# q = 'white-throated monkey'
|
|
79
|
-
q = 'cingulata'
|
|
80
|
-
taxonomy_preference = 'inat'
|
|
81
|
-
m = get_preferred_taxonomic_match(q,taxonomy_preference)
|
|
82
|
-
|
|
83
|
-
if m is None:
|
|
84
|
-
print('No match')
|
|
85
|
-
else:
|
|
86
|
-
if m.source != taxonomy_preference:
|
|
87
|
-
print('\n*** non-preferred match ***\n')
|
|
88
|
-
# raise ValueError('')
|
|
89
|
-
print(m.source)
|
|
90
|
-
print(m.taxonomy_string)
|
|
91
|
-
import clipboard; clipboard.copy(m.taxonomy_string)
|
|
92
|
-
|
|
93
|
-
|
|
94
70
|
#%% Match every query against our taxonomies
|
|
95
71
|
|
|
96
72
|
output_rows = []
|
|
97
73
|
|
|
98
74
|
taxonomy_preference = 'inat'
|
|
99
75
|
|
|
76
|
+
allow_non_preferred_matches = True
|
|
77
|
+
|
|
100
78
|
# mapping_string = category_mappings[1]; print(mapping_string)
|
|
101
79
|
for mapping_string in category_mappings:
|
|
102
80
|
|
|
@@ -108,7 +86,7 @@ for mapping_string in category_mappings:
|
|
|
108
86
|
|
|
109
87
|
taxonomic_match = get_preferred_taxonomic_match(query,taxonomy_preference=taxonomy_preference)
|
|
110
88
|
|
|
111
|
-
if taxonomic_match.source == taxonomy_preference:
|
|
89
|
+
if (taxonomic_match.source == taxonomy_preference) or allow_non_preferred_matches:
|
|
112
90
|
|
|
113
91
|
output_row = {
|
|
114
92
|
'dataset_name': dataset_name,
|
|
@@ -148,3 +126,29 @@ output_df = pd.DataFrame(data=output_rows, columns=[
|
|
|
148
126
|
'dataset_name', 'query', 'source', 'taxonomy_level',
|
|
149
127
|
'scientific_name', 'common_name', 'taxonomy_string'])
|
|
150
128
|
output_df.to_csv(output_file, index=None, header=True)
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
#%% Manual lookup
|
|
132
|
+
|
|
133
|
+
if False:
|
|
134
|
+
|
|
135
|
+
#%%
|
|
136
|
+
|
|
137
|
+
# q = 'white-throated monkey'
|
|
138
|
+
# q = 'cingulata'
|
|
139
|
+
# q = 'notamacropus'
|
|
140
|
+
q = 'porzana'
|
|
141
|
+
taxonomy_preference = 'inat'
|
|
142
|
+
m = get_preferred_taxonomic_match(q,taxonomy_preference)
|
|
143
|
+
# print(m.scientific_name); import clipboard; clipboard.copy(m.scientific_name)
|
|
144
|
+
|
|
145
|
+
if m is None:
|
|
146
|
+
print('No match')
|
|
147
|
+
else:
|
|
148
|
+
if m.source != taxonomy_preference:
|
|
149
|
+
print('\n*** non-preferred match ***\n')
|
|
150
|
+
# raise ValueError('')
|
|
151
|
+
print(m.source)
|
|
152
|
+
print(m.taxonomy_string)
|
|
153
|
+
# print(m.scientific_name); import clipboard; clipboard.copy(m.scientific_name)
|
|
154
|
+
import clipboard; clipboard.copy(m.taxonomy_string)
|
|
@@ -13,8 +13,9 @@ import os
|
|
|
13
13
|
import json
|
|
14
14
|
import pandas as pd
|
|
15
15
|
|
|
16
|
-
lila_taxonomy_file =
|
|
17
|
-
release_taxonomy_file = os.path.expanduser('~/lila/lila-taxonomy-mapping_release.
|
|
16
|
+
lila_taxonomy_file = 'c:/git/agentmorrisprivate/lila-taxonomy/lila-taxonomy-mapping.csv'
|
|
17
|
+
release_taxonomy_file = os.path.expanduser('~/lila/lila-taxonomy-mapping_release.csv')
|
|
18
|
+
# import clipboard; clipboard.copy(release_taxonomy_file)
|
|
18
19
|
|
|
19
20
|
# Created by get_lila_category_list.py... contains counts for each category
|
|
20
21
|
lila_dataset_to_categories_file = os.path.expanduser('~/lila/lila_categories_list/lila_dataset_to_categories.json')
|
|
@@ -129,3 +130,5 @@ for i_row,row in df.iterrows():
|
|
|
129
130
|
|
|
130
131
|
df = df.drop('source',axis=1)
|
|
131
132
|
df.to_csv(release_taxonomy_file,header=True,index=False)
|
|
133
|
+
|
|
134
|
+
print('Wrote final output to {}'.format(release_taxonomy_file))
|
|
@@ -15,11 +15,10 @@ from tqdm import tqdm
|
|
|
15
15
|
import os
|
|
16
16
|
import pandas as pd
|
|
17
17
|
|
|
18
|
-
# lila_taxonomy_file = r"
|
|
19
|
-
lila_taxonomy_file =
|
|
20
|
-
# lila_taxonomy_file = r"G:\temp\lila\lila_additions_2022.06.29.csv"
|
|
18
|
+
# lila_taxonomy_file = r"c:\git\agentmorrisprivate\lila-taxonomy\lila-taxonomy-mapping.csv"
|
|
19
|
+
lila_taxonomy_file = os.path.expanduser('~/lila/lila_additions_2023.12.29.csv')
|
|
21
20
|
|
|
22
|
-
preview_base =
|
|
21
|
+
preview_base = os.path.expanduser('~/lila/lila_taxonomy_preview')
|
|
23
22
|
os.makedirs(preview_base,exist_ok=True)
|
|
24
23
|
html_output_file = os.path.join(preview_base,'index.html')
|
|
25
24
|
|
|
@@ -172,15 +171,14 @@ for i_row,row in tqdm(df.iterrows(),total=len(df)):
|
|
|
172
171
|
|
|
173
172
|
print('\nMade {} taxonomy changes'.format(n_taxonomy_changes))
|
|
174
173
|
|
|
174
|
+
# Optionally re-write
|
|
175
175
|
if False:
|
|
176
176
|
df.to_csv(lila_taxonomy_file,header=True,index=False)
|
|
177
177
|
|
|
178
178
|
|
|
179
179
|
#%% List null mappings
|
|
180
180
|
|
|
181
|
-
#
|
|
182
|
-
# These should all be things like "unidentified" and "fire"
|
|
183
|
-
#
|
|
181
|
+
# These should all be things like "empty", "unidentified", "fire", "car", etc.
|
|
184
182
|
|
|
185
183
|
# i_row = 0; row = df.iloc[i_row]
|
|
186
184
|
for i_row,row in df.iterrows():
|
|
@@ -393,20 +391,20 @@ remapped_queries = {'papio':'papio+baboon',
|
|
|
393
391
|
|
|
394
392
|
import os
|
|
395
393
|
from taxonomy_mapping import retrieve_sample_image
|
|
394
|
+
|
|
396
395
|
scientific_name_to_paths = {}
|
|
397
396
|
image_base = os.path.join(preview_base,'images')
|
|
398
397
|
images_per_query = 15
|
|
399
398
|
min_valid_images_per_query = 3
|
|
400
399
|
min_valid_image_size = 3000
|
|
401
400
|
|
|
401
|
+
# TODO: trivially prallelizable
|
|
402
|
+
#
|
|
402
403
|
# i_row = 0; row = df.iloc[i_row]
|
|
403
404
|
for i_row,row in df.iterrows():
|
|
404
405
|
|
|
405
406
|
s = row['scientific_name']
|
|
406
407
|
|
|
407
|
-
# if s != 'mirafra':
|
|
408
|
-
# continue
|
|
409
|
-
|
|
410
408
|
if (not isinstance(s,str)) or (len(s)==0):
|
|
411
409
|
continue
|
|
412
410
|
|
|
@@ -416,17 +414,17 @@ for i_row,row in df.iterrows():
|
|
|
416
414
|
query = remapped_queries[query]
|
|
417
415
|
|
|
418
416
|
query_folder = os.path.join(image_base,query)
|
|
417
|
+
os.makedirs(query_folder,exist_ok=True)
|
|
419
418
|
|
|
420
419
|
# Check whether we already have enough images for this query
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
420
|
+
image_files = os.listdir(query_folder)
|
|
421
|
+
image_fullpaths = [os.path.join(query_folder,fn) for fn in image_files]
|
|
422
|
+
sizes = [os.path.getsize(p) for p in image_fullpaths]
|
|
423
|
+
sizes_above_threshold = [x for x in sizes if x > min_valid_image_size]
|
|
424
|
+
if len(sizes_above_threshold) > min_valid_images_per_query:
|
|
425
|
+
print('Skipping query {}, already have {} images'.format(s,len(sizes_above_threshold)))
|
|
426
|
+
continue
|
|
427
|
+
|
|
430
428
|
# Check whether we've already run this query for a previous row
|
|
431
429
|
if query in scientific_name_to_paths:
|
|
432
430
|
continue
|
|
@@ -448,14 +446,16 @@ from md_utils import path_utils
|
|
|
448
446
|
all_images = path_utils.recursive_file_list(image_base,False)
|
|
449
447
|
|
|
450
448
|
for fn in tqdm(all_images):
|
|
451
|
-
if fn.endswith('.jpeg'):
|
|
449
|
+
if fn.lower().endswith('.jpeg'):
|
|
452
450
|
new_fn = fn[0:-5] + '.jpg'
|
|
453
|
-
# print('Renaming {} to {}'.format(fn,new_fn))
|
|
454
451
|
os.rename(fn, new_fn)
|
|
455
452
|
|
|
456
453
|
|
|
457
454
|
#%% Choose representative images for each scientific name
|
|
458
455
|
|
|
456
|
+
# Specifically, sort by size, and take the largest unique sizes. Very small files tend
|
|
457
|
+
# to be bogus thumbnails, etc.
|
|
458
|
+
|
|
459
459
|
max_images_per_query = 4
|
|
460
460
|
scientific_name_to_preferred_images = {}
|
|
461
461
|
|
|
@@ -506,7 +506,7 @@ for images in scientific_name_to_preferred_images.values():
|
|
|
506
506
|
print('Using a total of {} images'.format(len(used_images)))
|
|
507
507
|
used_images_set = set(used_images)
|
|
508
508
|
|
|
509
|
-
import path_utils
|
|
509
|
+
from md_utils import path_utils
|
|
510
510
|
all_images = path_utils.recursive_file_list(image_base,False)
|
|
511
511
|
|
|
512
512
|
unused_images = []
|
|
@@ -523,7 +523,7 @@ for fn in tqdm(unused_images):
|
|
|
523
523
|
|
|
524
524
|
#%% Produce HTML preview
|
|
525
525
|
|
|
526
|
-
with open(html_output_file, 'w') as f:
|
|
526
|
+
with open(html_output_file, 'w', encoding='utf-8') as f:
|
|
527
527
|
|
|
528
528
|
f.write('<html><head></head><body>\n')
|
|
529
529
|
|
|
@@ -555,10 +555,11 @@ with open(html_output_file, 'w') as f:
|
|
|
555
555
|
f.write('<p class="speciesinfo_p" style="font-weight:bold;font-size:130%">')
|
|
556
556
|
|
|
557
557
|
if isinstance(row.scientific_name,str):
|
|
558
|
-
|
|
558
|
+
output_string = '{}: <b><u>{}</u></b> mapped to {} {} ({}) ({})</p>\n'.format(
|
|
559
559
|
row.dataset_name, row.query,
|
|
560
560
|
row.taxonomy_level, row.scientific_name, common_name_string,
|
|
561
|
-
row.common_name)
|
|
561
|
+
row.common_name)
|
|
562
|
+
f.write(output_string)
|
|
562
563
|
else:
|
|
563
564
|
f.write('{}: <b><u>{}</u></b> unmapped'.format(row.dataset_name,row.query))
|
|
564
565
|
|
|
@@ -586,6 +587,5 @@ with open(html_output_file, 'w') as f:
|
|
|
586
587
|
|
|
587
588
|
#%% Open HTML preview
|
|
588
589
|
|
|
589
|
-
from md_utils.path_utils import open_file
|
|
590
|
+
from md_utils.path_utils import open_file
|
|
590
591
|
open_file(html_output_file)
|
|
591
|
-
|