megadetector 5.0.10__tar.gz → 5.0.12__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of megadetector might be problematic. Click here for more details.
- {megadetector-5.0.10 → megadetector-5.0.12}/LICENSE +0 -0
- {megadetector-5.0.10/megadetector.egg-info → megadetector-5.0.12}/PKG-INFO +12 -11
- {megadetector-5.0.10 → megadetector-5.0.12}/README-package.md +10 -9
- {megadetector-5.0.10 → megadetector-5.0.12}/README.md +31 -26
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/__init__.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/__init__.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/api_core/__init__.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/api_core/batch_service/__init__.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/api_core/batch_service/score.py +2 -2
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/api_core/server.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/api_core/server_api_config.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/api_core/server_app_config.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/api_core/server_batch_job_manager.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/api_core/server_job_status_table.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/api_core/server_orchestration.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/api_core/server_utils.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/api_core_support/__init__.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/api_core_support/aggregate_results_manually.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/api_support/__init__.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/api_support/summarize_daily_activity.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/data_preparation/__init__.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/integration/digiKam/setup.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/integration/digiKam/xmp_integration.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/integration/eMammal/test_scripts/config_template.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/integration/eMammal/test_scripts/push_annotations_to_emammal.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/integration/eMammal/test_scripts/select_images_for_testing.py +0 -0
- {megadetector-5.0.10/api/batch_processing/postprocessing → megadetector-5.0.12/megadetector/api/synchronous}/__init__.py +0 -0
- {megadetector-5.0.10/api/synchronous → megadetector-5.0.12/megadetector/api/synchronous/api_core/animal_detection_api}/__init__.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/synchronous/api_core/animal_detection_api/api_backend.py +1 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/synchronous/api_core/animal_detection_api/api_frontend.py +1 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/synchronous/api_core/animal_detection_api/config.py +0 -0
- {megadetector-5.0.10/api/synchronous/api_core/animal_detection_api → megadetector-5.0.12/megadetector/api/synchronous/api_core/tests}/__init__.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/synchronous/api_core/tests/load_test.py +0 -0
- {megadetector-5.0.10/api/synchronous/api_core/tests → megadetector-5.0.12/megadetector/classification}/__init__.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/aggregate_classifier_probs.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/analyze_failed_images.py +3 -3
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/cache_batchapi_outputs.py +1 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/create_classification_dataset.py +1 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/crop_detections.py +1 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/csv_to_json.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/detect_and_crop.py +5 -5
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/efficientnet/__init__.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/evaluate_model.py +1 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/identify_mislabeled_candidates.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/json_to_azcopy_list.py +2 -2
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/json_validator.py +13 -9
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/map_classification_categories.py +1 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/merge_classification_detection_output.py +1 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/prepare_classification_script.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/prepare_classification_script_mc.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/run_classifier.py +2 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/save_mislabeled.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/train_classifier.py +8 -6
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/train_classifier_tf.py +10 -9
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/train_utils.py +3 -2
- {megadetector-5.0.10/classification → megadetector-5.0.12/megadetector/data_management}/__init__.py +0 -0
- {megadetector-5.0.10/data_management → megadetector-5.0.12/megadetector/data_management/annotations}/__init__.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/annotations/annotation_constants.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/camtrap_dp_to_coco.py +4 -3
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/cct_json_utils.py +2 -2
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/cct_to_md.py +1 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/cct_to_wi.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/coco_to_labelme.py +1 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/coco_to_yolo.py +1 -1
- {megadetector-5.0.10/data_management/annotations → megadetector-5.0.12/megadetector/data_management/databases}/__init__.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/databases/add_width_and_height_to_db.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/databases/combine_coco_camera_traps_files.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/databases/integrity_check_json_db.py +2 -2
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/databases/subset_json_db.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/generate_crops_from_cct.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/get_image_sizes.py +4 -3
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/add_nacti_sizes.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/add_timestamps_to_icct.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/animl_results_to_md_results.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/auckland_doc_test_to_json.py +6 -5
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/auckland_doc_to_json.py +4 -3
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/awc_to_json.py +6 -4
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/bellevue_to_json.py +3 -3
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/cacophony-thermal-importer.py +4 -4
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/carrizo_shrubfree_2018.py +5 -4
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/carrizo_trail_cam_2017.py +8 -6
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/cct_field_adjustments.py +2 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/channel_islands_to_cct.py +2 -2
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/eMammal/copy_and_unzip_emammal.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/eMammal/eMammal_helpers.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/eMammal/make_eMammal_json.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/ena24_to_json.py +6 -5
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/filenames_to_json.py +2 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/helena_to_cct.py +7 -6
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/idaho-camera-traps.py +6 -6
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/idfg_iwildcam_lila_prep.py +4 -4
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/jb_csv_to_json.py +1 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/mcgill_to_json.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/missouri_to_json.py +4 -3
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/nacti_fieldname_adjustments.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/noaa_seals_2019.py +2 -2
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/pc_to_json.py +5 -5
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/plot_wni_giraffes.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/prepare-noaa-fish-data-for-lila.py +3 -3
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/prepare_zsl_imerit.py +3 -3
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/rspb_to_json.py +2 -2
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/save_the_elephants_survey_A.py +4 -4
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/save_the_elephants_survey_B.py +6 -9
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/snapshot_safari_importer.py +4 -4
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/snapshot_safari_importer_reprise.py +2 -2
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/snapshot_serengeti_lila.py +4 -4
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/snapshotserengeti/make_full_SS_json.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/snapshotserengeti/make_per_season_SS_json.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/sulross_get_exif.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/timelapse_csv_set_to_json.py +3 -3
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/ubc_to_json.py +3 -3
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/umn_to_json.py +2 -2
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/wellington_to_json.py +3 -3
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/wi_to_json.py +3 -2
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/importers/zamba_results_to_md_results.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/labelme_to_coco.py +6 -7
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/labelme_to_yolo.py +2 -2
- {megadetector-5.0.10/data_management/databases → megadetector-5.0.12/megadetector/data_management/lila}/__init__.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/lila/add_locations_to_island_camera_traps.py +4 -4
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/lila/add_locations_to_nacti.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/lila/create_lila_blank_set.py +10 -9
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/lila/create_lila_test_set.py +3 -2
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/lila/create_links_to_md_results_files.py +1 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/lila/download_lila_subset.py +5 -4
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/lila/generate_lila_per_image_labels.py +6 -5
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/lila/get_lila_annotation_counts.py +2 -2
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/lila/get_lila_image_counts.py +2 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/lila/lila_common.py +5 -5
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/lila/test_lila_metadata_urls.py +2 -2
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/ocr_tools.py +6 -6
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/read_exif.py +2 -2
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/remap_coco_categories.py +1 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/remove_exif.py +1 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/resize_coco_dataset.py +4 -4
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/wi_download_csv_to_coco.py +3 -3
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/yolo_output_to_md_output.py +5 -5
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/data_management/yolo_to_coco.py +9 -9
- {megadetector-5.0.10/data_management/lila → megadetector-5.0.12/megadetector/detection}/__init__.py +0 -0
- {megadetector-5.0.10/detection → megadetector-5.0.12/megadetector/detection/detector_training}/__init__.py +0 -0
- {megadetector-5.0.10/api/synchronous/api_core/animal_detection_api → megadetector-5.0.12/megadetector}/detection/detector_training/model_main_tf2.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/detection/process_video.py +9 -10
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/detection/pytorch_detector.py +12 -8
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/detection/run_detector.py +6 -6
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/detection/run_detector_batch.py +12 -12
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/detection/run_inference_with_yolov5_val.py +12 -12
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/detection/run_tiled_inference.py +8 -9
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/detection/tf_detector.py +3 -2
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/detection/video_utils.py +2 -2
- {megadetector-5.0.10/detection/detector_training → megadetector-5.0.12/megadetector/postprocessing}/__init__.py +0 -0
- {megadetector-5.0.10/api/batch_processing → megadetector-5.0.12/megadetector}/postprocessing/add_max_conf.py +1 -1
- {megadetector-5.0.10/api/batch_processing → megadetector-5.0.12/megadetector}/postprocessing/categorize_detections_by_size.py +1 -1
- {megadetector-5.0.10/api/batch_processing → megadetector-5.0.12/megadetector}/postprocessing/combine_api_outputs.py +1 -1
- {megadetector-5.0.10/api/batch_processing → megadetector-5.0.12/megadetector}/postprocessing/compare_batch_results.py +5 -5
- {megadetector-5.0.10/api/batch_processing → megadetector-5.0.12/megadetector}/postprocessing/convert_output_format.py +4 -5
- {megadetector-5.0.10/api/batch_processing → megadetector-5.0.12/megadetector}/postprocessing/load_api_results.py +1 -1
- {megadetector-5.0.10/api/batch_processing → megadetector-5.0.12/megadetector}/postprocessing/md_to_coco.py +3 -3
- {megadetector-5.0.10/api/batch_processing → megadetector-5.0.12/megadetector}/postprocessing/md_to_labelme.py +3 -3
- {megadetector-5.0.10/api/batch_processing → megadetector-5.0.12/megadetector}/postprocessing/merge_detections.py +1 -1
- {megadetector-5.0.10/api/batch_processing → megadetector-5.0.12/megadetector}/postprocessing/postprocess_batch_results.py +19 -21
- {megadetector-5.0.10/api/batch_processing → megadetector-5.0.12/megadetector}/postprocessing/remap_detection_categories.py +1 -1
- {megadetector-5.0.10/api/batch_processing → megadetector-5.0.12/megadetector}/postprocessing/render_detection_confusion_matrix.py +5 -6
- {megadetector-5.0.10/api/batch_processing → megadetector-5.0.12/megadetector}/postprocessing/repeat_detection_elimination/find_repeat_detections.py +3 -3
- {megadetector-5.0.10/api/batch_processing → megadetector-5.0.12/megadetector}/postprocessing/repeat_detection_elimination/remove_repeat_detections.py +3 -2
- {megadetector-5.0.10/api/batch_processing → megadetector-5.0.12/megadetector}/postprocessing/repeat_detection_elimination/repeat_detections_core.py +11 -11
- {megadetector-5.0.10/api/batch_processing → megadetector-5.0.12/megadetector}/postprocessing/separate_detections_into_folders.py +3 -4
- {megadetector-5.0.10/api/batch_processing → megadetector-5.0.12/megadetector}/postprocessing/subset_json_detector_output.py +2 -2
- {megadetector-5.0.10/api/batch_processing → megadetector-5.0.12/megadetector}/postprocessing/top_folders_to_bottom.py +1 -1
- {megadetector-5.0.10/md_utils → megadetector-5.0.12/megadetector/taxonomy_mapping}/__init__.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/taxonomy_mapping/map_lila_taxonomy_to_wi_taxonomy.py +2 -2
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/taxonomy_mapping/map_new_lila_datasets.py +2 -6
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/taxonomy_mapping/prepare_lila_taxonomy_release.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/taxonomy_mapping/preview_lila_taxonomy.py +6 -7
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/taxonomy_mapping/retrieve_sample_image.py +1 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/taxonomy_mapping/simple_image_download.py +2 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/taxonomy_mapping/species_lookup.py +1 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/taxonomy_mapping/taxonomy_csv_checker.py +1 -1
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/taxonomy_mapping/taxonomy_graph.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/taxonomy_mapping/validate_lila_category_mappings.py +1 -1
- {megadetector-5.0.10/md_visualization → megadetector-5.0.12/megadetector/utils}/__init__.py +0 -0
- {megadetector-5.0.10/md_utils → megadetector-5.0.12/megadetector/utils}/azure_utils.py +7 -3
- {megadetector-5.0.10/md_utils → megadetector-5.0.12/megadetector/utils}/ct_utils.py +0 -0
- {megadetector-5.0.10/md_utils → megadetector-5.0.12/megadetector/utils}/directory_listing.py +1 -1
- {megadetector-5.0.10/md_utils → megadetector-5.0.12/megadetector/utils}/md_tests.py +29 -29
- {megadetector-5.0.10/md_utils → megadetector-5.0.12/megadetector/utils}/path_utils.py +0 -0
- {megadetector-5.0.10/md_utils → megadetector-5.0.12/megadetector/utils}/process_utils.py +0 -0
- {megadetector-5.0.10/md_utils → megadetector-5.0.12/megadetector/utils}/sas_blob_utils.py +0 -0
- {megadetector-5.0.10/md_utils → megadetector-5.0.12/megadetector/utils}/split_locations_into_train_val.py +1 -1
- {megadetector-5.0.10/md_utils → megadetector-5.0.12/megadetector/utils}/string_utils.py +0 -0
- {megadetector-5.0.10/md_utils → megadetector-5.0.12/megadetector/utils}/url_utils.py +0 -0
- {megadetector-5.0.10/md_utils → megadetector-5.0.12/megadetector/utils}/write_html_image_list.py +1 -1
- {megadetector-5.0.10/taxonomy_mapping → megadetector-5.0.12/megadetector/visualization}/__init__.py +0 -0
- {megadetector-5.0.10/md_visualization → megadetector-5.0.12/megadetector/visualization}/plot_utils.py +0 -0
- {megadetector-5.0.10/md_visualization → megadetector-5.0.12/megadetector/visualization}/render_images_with_thumbnails.py +3 -3
- {megadetector-5.0.10/md_visualization → megadetector-5.0.12/megadetector/visualization}/visualization_utils.py +6 -7
- {megadetector-5.0.10/md_visualization → megadetector-5.0.12/megadetector/visualization}/visualize_db.py +3 -4
- {megadetector-5.0.10/md_visualization → megadetector-5.0.12/megadetector/visualization}/visualize_detector_output.py +9 -10
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector.egg-info}/PKG-INFO +12 -11
- megadetector-5.0.12/megadetector.egg-info/SOURCES.txt +203 -0
- {megadetector-5.0.10 → megadetector-5.0.12}/megadetector.egg-info/dependency_links.txt +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12}/megadetector.egg-info/requires.txt +0 -0
- megadetector-5.0.12/megadetector.egg-info/top_level.txt +1 -0
- {megadetector-5.0.10 → megadetector-5.0.12}/pyproject.toml +3 -8
- {megadetector-5.0.10 → megadetector-5.0.12}/setup.cfg +0 -0
- megadetector-5.0.10/api/batch_processing/data_preparation/manage_local_batch.py +0 -2391
- megadetector-5.0.10/api/batch_processing/data_preparation/manage_video_batch.py +0 -327
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/data_management/annotations/annotation_constants.py +0 -47
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/detection/detector_training/copy_checkpoints.py +0 -43
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/detection/process_video.py +0 -543
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/detection/pytorch_detector.py +0 -304
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/detection/run_detector.py +0 -627
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/detection/run_detector_batch.py +0 -1029
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/detection/run_inference_with_yolov5_val.py +0 -581
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/detection/run_tiled_inference.py +0 -754
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/detection/tf_detector.py +0 -165
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/detection/video_utils.py +0 -495
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/md_utils/azure_utils.py +0 -174
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/md_utils/ct_utils.py +0 -262
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/md_utils/directory_listing.py +0 -251
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/md_utils/matlab_porting_tools.py +0 -97
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/md_utils/path_utils.py +0 -416
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/md_utils/process_utils.py +0 -110
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/md_utils/sas_blob_utils.py +0 -509
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/md_utils/string_utils.py +0 -59
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/md_utils/url_utils.py +0 -144
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/md_utils/write_html_image_list.py +0 -226
- megadetector-5.0.10/api/synchronous/api_core/animal_detection_api/md_visualization/visualization_utils.py +0 -841
- megadetector-5.0.10/detection/detector_training/model_main_tf2.py +0 -114
- megadetector-5.0.10/docs/source/conf.py +0 -43
- megadetector-5.0.10/megadetector.egg-info/SOURCES.txt +0 -228
- megadetector-5.0.10/megadetector.egg-info/top_level.txt +0 -9
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/efficientnet/model.py +0 -0
- {megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/efficientnet/utils.py +0 -0
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: megadetector
|
|
3
|
-
Version: 5.0.
|
|
3
|
+
Version: 5.0.12
|
|
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>
|
|
@@ -28,7 +28,7 @@ Project-URL: Homepage, https://github.com/agentmorris/MegaDetector
|
|
|
28
28
|
Project-URL: Documentation, https://megadetector.readthedocs.io
|
|
29
29
|
Project-URL: Bug Reports, https://github.com/agentmorris/MegaDetector/issues
|
|
30
30
|
Project-URL: Source, https://github.com/agentmorris/MegaDetector
|
|
31
|
-
Keywords: camera traps,conservation,wildlife,ai
|
|
31
|
+
Keywords: camera traps,conservation,wildlife,ai,megadetector
|
|
32
32
|
Classifier: Development Status :: 3 - Alpha
|
|
33
33
|
Classifier: License :: OSI Approved :: MIT License
|
|
34
34
|
Classifier: Programming Language :: Python :: 3
|
|
@@ -52,9 +52,9 @@ Requires-Dist: ultralytics-yolov5==0.1.1
|
|
|
52
52
|
|
|
53
53
|
# MegaDetector
|
|
54
54
|
|
|
55
|
-
This package is a pip-installable version of the support/inference code for [MegaDetector](https://github.com/agentmorris/MegaDetector), an object detection model that helps conservation biologists spend less time doing boring things with camera trap images. Complete documentation for this Python package is available at [megadetector.readthedocs.io](https://megadetector.readthedocs.io).
|
|
55
|
+
This package is a pip-installable version of the support/inference code for [MegaDetector](https://github.com/agentmorris/MegaDetector/?tab=readme-ov-file#megadetector), an object detection model that helps conservation biologists spend less time doing boring things with camera trap images. Complete documentation for this Python package is available at [megadetector.readthedocs.io](https://megadetector.readthedocs.io).
|
|
56
56
|
|
|
57
|
-
If you aren't looking for the Python package specificaly, and you just want to learn more about what MegaDetector is all about, head over to the [MegaDetector repo](https://github.com/agentmorris/MegaDetector).
|
|
57
|
+
If you aren't looking for the Python package specificaly, and you just want to learn more about what MegaDetector is all about, head over to the [MegaDetector repo](https://github.com/agentmorris/MegaDetector/?tab=readme-ov-file#megadetector).
|
|
58
58
|
|
|
59
59
|
|
|
60
60
|
## Reasons you probably aren't looking for this package
|
|
@@ -69,7 +69,7 @@ If you are a computer-vision-y person looking to run or fine-tune MegaDetector p
|
|
|
69
69
|
|
|
70
70
|
## Reasons you might want to use this package
|
|
71
71
|
|
|
72
|
-
If you want to programmatically interact with the postprocessing tools from the MegaDetector repo, or programmatically run MegaDetector in a way that produces [Timelapse](https://saul.cpsc.ucalgary.ca/timelapse)-friendly output (i.e., output in the standard [MegaDetector output format](https://github.com/agentmorris/MegaDetector/tree/main/api/batch_processing#megadetector-batch-output-format)), this package might be for you.
|
|
72
|
+
If you want to programmatically interact with the postprocessing tools from the MegaDetector repo, or programmatically run MegaDetector in a way that produces [Timelapse](https://saul.cpsc.ucalgary.ca/timelapse)-friendly output (i.e., output in the standard [MegaDetector output format](https://github.com/agentmorris/MegaDetector/tree/main/megadetector/api/batch_processing#megadetector-batch-output-format)), this package might be for you.
|
|
73
73
|
|
|
74
74
|
Although even if that describes you, you <i>still</i> might be better off cloning the MegaDetector repo. Pip-installability requires that some dependencies be newer than what was available at the time MDv5 was trained, so results are <i>very slightly</i> different than results produced in the "official" environment. These differences <i>probably</i> don't matter much, but they have not been formally characterized.
|
|
75
75
|
|
|
@@ -83,7 +83,7 @@ MegaDetector model weights aren't downloaded at pip-install time, but they will
|
|
|
83
83
|
|
|
84
84
|
## Package reference
|
|
85
85
|
|
|
86
|
-
See
|
|
86
|
+
See [megadetector.readthedocs.io](https://megadetector.readthedocs.io).
|
|
87
87
|
|
|
88
88
|
|
|
89
89
|
## Examples of things you can do with this package
|
|
@@ -91,9 +91,9 @@ See <megadetector.readthedocs.io>.
|
|
|
91
91
|
### Run MegaDetector on one image and count the number of detections
|
|
92
92
|
|
|
93
93
|
```
|
|
94
|
-
from
|
|
95
|
-
from
|
|
96
|
-
from detection import run_detector
|
|
94
|
+
from megadetector.utils import url_utils
|
|
95
|
+
from megadetector.visualization import visualization_utils as vis_utils
|
|
96
|
+
from megadetector.detection import run_detector
|
|
97
97
|
|
|
98
98
|
# This is the image at the bottom of this page, it has one animal in it
|
|
99
99
|
image_url = 'https://github.com/agentmorris/MegaDetector/raw/main/images/orinoquia-thumb-web.jpg'
|
|
@@ -113,8 +113,9 @@ print('Found {} detections above threshold'.format(len(detections_above_threshol
|
|
|
113
113
|
### Run MegaDetector on a folder of images
|
|
114
114
|
|
|
115
115
|
```
|
|
116
|
-
from detection.run_detector_batch import
|
|
117
|
-
|
|
116
|
+
from megadetector.detection.run_detector_batch import \
|
|
117
|
+
load_and_run_detector_batch,write_results_to_file
|
|
118
|
+
from megadetector.utils import path_utils
|
|
118
119
|
import os
|
|
119
120
|
|
|
120
121
|
# Pick a folder to run MD on recursively, and an output file
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# MegaDetector
|
|
2
2
|
|
|
3
|
-
This package is a pip-installable version of the support/inference code for [MegaDetector](https://github.com/agentmorris/MegaDetector), an object detection model that helps conservation biologists spend less time doing boring things with camera trap images. Complete documentation for this Python package is available at [megadetector.readthedocs.io](https://megadetector.readthedocs.io).
|
|
3
|
+
This package is a pip-installable version of the support/inference code for [MegaDetector](https://github.com/agentmorris/MegaDetector/?tab=readme-ov-file#megadetector), an object detection model that helps conservation biologists spend less time doing boring things with camera trap images. Complete documentation for this Python package is available at [megadetector.readthedocs.io](https://megadetector.readthedocs.io).
|
|
4
4
|
|
|
5
|
-
If you aren't looking for the Python package specificaly, and you just want to learn more about what MegaDetector is all about, head over to the [MegaDetector repo](https://github.com/agentmorris/MegaDetector).
|
|
5
|
+
If you aren't looking for the Python package specificaly, and you just want to learn more about what MegaDetector is all about, head over to the [MegaDetector repo](https://github.com/agentmorris/MegaDetector/?tab=readme-ov-file#megadetector).
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
## Reasons you probably aren't looking for this package
|
|
@@ -17,7 +17,7 @@ If you are a computer-vision-y person looking to run or fine-tune MegaDetector p
|
|
|
17
17
|
|
|
18
18
|
## Reasons you might want to use this package
|
|
19
19
|
|
|
20
|
-
If you want to programmatically interact with the postprocessing tools from the MegaDetector repo, or programmatically run MegaDetector in a way that produces [Timelapse](https://saul.cpsc.ucalgary.ca/timelapse)-friendly output (i.e., output in the standard [MegaDetector output format](https://github.com/agentmorris/MegaDetector/tree/main/api/batch_processing#megadetector-batch-output-format)), this package might be for you.
|
|
20
|
+
If you want to programmatically interact with the postprocessing tools from the MegaDetector repo, or programmatically run MegaDetector in a way that produces [Timelapse](https://saul.cpsc.ucalgary.ca/timelapse)-friendly output (i.e., output in the standard [MegaDetector output format](https://github.com/agentmorris/MegaDetector/tree/main/megadetector/api/batch_processing#megadetector-batch-output-format)), this package might be for you.
|
|
21
21
|
|
|
22
22
|
Although even if that describes you, you <i>still</i> might be better off cloning the MegaDetector repo. Pip-installability requires that some dependencies be newer than what was available at the time MDv5 was trained, so results are <i>very slightly</i> different than results produced in the "official" environment. These differences <i>probably</i> don't matter much, but they have not been formally characterized.
|
|
23
23
|
|
|
@@ -31,7 +31,7 @@ MegaDetector model weights aren't downloaded at pip-install time, but they will
|
|
|
31
31
|
|
|
32
32
|
## Package reference
|
|
33
33
|
|
|
34
|
-
See
|
|
34
|
+
See [megadetector.readthedocs.io](https://megadetector.readthedocs.io).
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
## Examples of things you can do with this package
|
|
@@ -39,9 +39,9 @@ See <megadetector.readthedocs.io>.
|
|
|
39
39
|
### Run MegaDetector on one image and count the number of detections
|
|
40
40
|
|
|
41
41
|
```
|
|
42
|
-
from
|
|
43
|
-
from
|
|
44
|
-
from detection import run_detector
|
|
42
|
+
from megadetector.utils import url_utils
|
|
43
|
+
from megadetector.visualization import visualization_utils as vis_utils
|
|
44
|
+
from megadetector.detection import run_detector
|
|
45
45
|
|
|
46
46
|
# This is the image at the bottom of this page, it has one animal in it
|
|
47
47
|
image_url = 'https://github.com/agentmorris/MegaDetector/raw/main/images/orinoquia-thumb-web.jpg'
|
|
@@ -61,8 +61,9 @@ print('Found {} detections above threshold'.format(len(detections_above_threshol
|
|
|
61
61
|
### Run MegaDetector on a folder of images
|
|
62
62
|
|
|
63
63
|
```
|
|
64
|
-
from detection.run_detector_batch import
|
|
65
|
-
|
|
64
|
+
from megadetector.detection.run_detector_batch import \
|
|
65
|
+
load_and_run_detector_batch,write_results_to_file
|
|
66
|
+
from megadetector.utils import path_utils
|
|
66
67
|
import os
|
|
67
68
|
|
|
68
69
|
# Pick a folder to run MD on recursively, and an output file
|
|
@@ -147,25 +147,40 @@ The core functionality provided is:
|
|
|
147
147
|
- Training and running [MegaDetector](megadetector.md).
|
|
148
148
|
- Training and running some [species classifiers](classification) that are used in conjunction with MegaDetector.
|
|
149
149
|
- Tools to [convert](data_management) frequently-used camera trap metadata formats into a common format.
|
|
150
|
-
- A [batch processing API](https://github.com/agentmorris/MegaDetector/tree/main/api/batch_processing) that runs MegaDetector on large image collections, to accelerate population surveys.
|
|
151
|
-
- A [real-time API](https://github.com/agentmorris/MegaDetector/tree/main/api/synchronous) that runs MegaDetector (and some species classifiers) synchronously, primarily to support biosecurity applications.
|
|
150
|
+
- A [batch processing API](https://github.com/agentmorris/MegaDetector/tree/main/megadetector/api/batch_processing) that runs MegaDetector on large image collections, to accelerate population surveys.
|
|
151
|
+
- A [real-time API](https://github.com/agentmorris/MegaDetector/tree/main/megadetector/api/synchronous) that runs MegaDetector (and some species classifiers) synchronously, primarily to support biosecurity applications.
|
|
152
152
|
|
|
153
153
|
This repo does not host the data used to train MegaDetector, but we work with our collaborators to make data and annotations available whenever possible on [lila.science](http://lila.science). See the [MegaDetector training data](megadetector.md#can-you-share-the-training-data) section to learn more about the data used to train MegaDetector.
|
|
154
154
|
|
|
155
155
|
MegaDetector was initially developed by the [Microsoft AI for Earth program](https://www.microsoft.com/en-us/ai/ai-for-earth); this repo was forked from the microsoft/cameratraps repo and is maintained by the original MegaDetector developers (who are no longer at Microsoft, but are absolutely fantastically eternally grateful to Microsoft for the investment and commitment that made MegaDetector happen).
|
|
156
156
|
|
|
157
157
|
|
|
158
|
-
###
|
|
158
|
+
### megadetector/detection
|
|
159
159
|
|
|
160
|
-
Code for
|
|
160
|
+
Code for running models, especially MegaDetector.
|
|
161
161
|
|
|
162
162
|
|
|
163
|
-
###
|
|
163
|
+
### megadetector/postprocessing
|
|
164
|
+
|
|
165
|
+
Code for common operations one might do after running MegaDetector, e.g. [generating preview pages to summarize your results](https://github.com/agentmorris/MegaDetector/blob/main/megadetector/postprocessing/postprocess_batch_results.py), [separating images into different folders based on AI results](https://github.com/agentmorris/MegaDetector/blob/main/megadetector/postprocessing/separate_detections_into_folders.py), or [converting results to a different format](https://github.com/agentmorris/MegaDetector/blob/main/megadetector/postprocessing/convert_output_format.py).
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
### megadetector/utils
|
|
169
|
+
|
|
170
|
+
Small utility functions for string manipulation, filename manipulation, downloading files from URLs, etc. Mostly adapted from the [ai4eutils](https://github.com/microsoft/ai4eutils) repo.
|
|
164
171
|
|
|
165
|
-
Old code that we didn't <i>quite</i> want to delete, but is basically obsolete.
|
|
166
172
|
|
|
173
|
+
### megadetector/visualization
|
|
167
174
|
|
|
168
|
-
|
|
175
|
+
Tools for visualizing images with ground truth and/or predicted annotations.
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
### megadetector/api
|
|
179
|
+
|
|
180
|
+
Code for hosting our models as an API, either for synchronous operation (i.e., for real-time inference) or as a batch process (for large biodiversity surveys).
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
### megadetector/classification
|
|
169
184
|
|
|
170
185
|
Experimental code for training species classifiers on new data sets, generally trained on MegaDetector crops. Currently the main pipeline described in this folder relies on a large database of labeled images that is not publicly available; therefore, this folder is not yet set up to facilitate training of your own classifiers. However, it is useful for <i>users</i> of the classifiers that we train, and contains some useful starting points if you are going to take a "DIY" approach to training classifiers on cropped images.
|
|
171
186
|
|
|
@@ -174,18 +189,18 @@ All that said, here's another "teaser image" of what you get at the end of train
|
|
|
174
189
|
<img src="images/warthog_classifications.jpg" width="700"><br/>Image credit University of Minnesota, from the Snapshot Safari program.
|
|
175
190
|
|
|
176
191
|
|
|
177
|
-
###
|
|
192
|
+
### megadetector/taxonomy_mapping
|
|
178
193
|
|
|
179
|
-
Code
|
|
194
|
+
Code to facilitate mapping data-set-specific category names (e.g. "lion", which means very different things in Idaho vs. South Africa) to a standard taxonomy.
|
|
180
195
|
|
|
181
|
-
* Converting frequently-used metadata formats to [COCO Camera Traps](https://github.com/agentmorris/MegaDetector/blob/main/data_management/README.md#coco-cameratraps-format) format
|
|
182
|
-
* Converting the output of AI models (especially [YOLOv5](https://github.com/agentmorris/MegaDetector/blob/main/api/batch_processing/postprocessing/convert_output_format.py)) to the format used for AI results throughout this repo
|
|
183
|
-
* Creating, visualizing, and editing COCO Camera Traps .json databases
|
|
184
196
|
|
|
197
|
+
### megadetector/data_management
|
|
185
198
|
|
|
186
|
-
|
|
199
|
+
Code for:
|
|
187
200
|
|
|
188
|
-
|
|
201
|
+
* Converting frequently-used metadata formats to [COCO Camera Traps](https://github.com/agentmorris/MegaDetector/blob/main/megadetector/data_management/README.md#coco-cameratraps-format) format
|
|
202
|
+
* Converting the output of AI models (especially YOLOv5) to the format used for AI results throughout this repo
|
|
203
|
+
* Creating, visualizing, and editing COCO Camera Traps .json databases
|
|
189
204
|
|
|
190
205
|
|
|
191
206
|
### envs
|
|
@@ -198,14 +213,9 @@ Environment files... specifically .yml files for mamba/conda environments (these
|
|
|
198
213
|
Media used in documentation.
|
|
199
214
|
|
|
200
215
|
|
|
201
|
-
###
|
|
202
|
-
|
|
203
|
-
Small utility functions for string manipulation, filename manipulation, downloading files from URLs, etc. Mostly adapted from the [ai4eutils](https://github.com/microsoft/ai4eutils) repo.
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
### md_visualization
|
|
216
|
+
### archive
|
|
207
217
|
|
|
208
|
-
|
|
218
|
+
Old code that we didn't <i>quite</i> want to delete, but is basically obsolete.
|
|
209
219
|
|
|
210
220
|
|
|
211
221
|
### sandbox
|
|
@@ -213,11 +223,6 @@ Tools for visualizing images with ground truth and/or predicted annotations.
|
|
|
213
223
|
Random things that don't fit in any other directory, but aren't quite deprecated. Mostly postprocessing scripts that were built for a single use case but could potentially be useful in the future.
|
|
214
224
|
|
|
215
225
|
|
|
216
|
-
### taxonomy_mapping
|
|
217
|
-
|
|
218
|
-
Code to facilitate mapping data-set-specific category names (e.g. "lion", which means very different things in Idaho vs. South Africa) to a standard taxonomy.
|
|
219
|
-
|
|
220
|
-
|
|
221
226
|
### test_images
|
|
222
227
|
|
|
223
228
|
A handful of images from [LILA](https://lila.science) that facilitate testing and debugging.
|
|
File without changes
|
|
File without changes
|
{megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/api_core/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
@@ -19,7 +19,7 @@ print('score.py, tf.test.is_gpu_available:', tf.test.is_gpu_available())
|
|
|
19
19
|
PRINT_EVERY = 500
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
#%% Helper functions *copied* from ct_utils.py and
|
|
22
|
+
#%% Helper functions *copied* from ct_utils.py and visualization/visualization_utils.py
|
|
23
23
|
|
|
24
24
|
IMAGE_ROTATIONS = {
|
|
25
25
|
3: 180,
|
|
@@ -237,7 +237,7 @@ class TFDetector:
|
|
|
237
237
|
image_id: a path to identify the image; will be in the "file" field of the output object
|
|
238
238
|
detection_threshold: confidence above which to include the detection proposal
|
|
239
239
|
Returns:
|
|
240
|
-
A dict with the following fields, see the 'images' key in https://github.com/agentmorris/MegaDetector/tree/
|
|
240
|
+
A dict with the following fields, see the 'images' key in https://github.com/agentmorris/MegaDetector/tree/main/megadetector/api/batch_processing#batch-processing-api-output-format
|
|
241
241
|
- 'file' (always present)
|
|
242
242
|
- 'max_detection_conf'
|
|
243
243
|
- 'detections', which is a list of detection objects containing keys 'category', 'conf' and 'bbox'
|
{megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/batch_processing/api_core/server.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -18,7 +18,7 @@ from io import BytesIO
|
|
|
18
18
|
|
|
19
19
|
from detection.run_detector import load_detector, convert_to_tf_coords
|
|
20
20
|
import config
|
|
21
|
-
import
|
|
21
|
+
import visualization.visualization_utils as vis_utils
|
|
22
22
|
|
|
23
23
|
#%% Initialization
|
|
24
24
|
|
|
@@ -21,7 +21,7 @@ from io import BytesIO
|
|
|
21
21
|
from flask import Flask, Response, jsonify, make_response, request
|
|
22
22
|
from requests_toolbelt.multipart.encoder import MultipartEncoder
|
|
23
23
|
|
|
24
|
-
import
|
|
24
|
+
import visualization.visualization_utils as vis_utils
|
|
25
25
|
import config
|
|
26
26
|
|
|
27
27
|
|
|
File without changes
|
|
File without changes
|
{megadetector-5.0.10 → megadetector-5.0.12/megadetector}/api/synchronous/api_core/tests/load_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/analyze_failed_images.py
RENAMED
|
@@ -18,9 +18,9 @@ from PIL import Image, ImageFile
|
|
|
18
18
|
import requests
|
|
19
19
|
from tqdm import tqdm
|
|
20
20
|
|
|
21
|
-
from data_management.megadb.megadb_utils import MegadbUtils
|
|
22
|
-
from
|
|
23
|
-
from
|
|
21
|
+
from megadetector.data_management.megadb.megadb_utils import MegadbUtils
|
|
22
|
+
from megadetector.utils import path_utils
|
|
23
|
+
from megadetector.utils import sas_blob_utils
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
#%% Example usage
|
|
@@ -9,7 +9,7 @@ This script takes as input a detections JSON file, usually the output of
|
|
|
9
9
|
detection/run_tf_detector_batch.py or the output of the Batch API in the
|
|
10
10
|
"Batch processing API output format".
|
|
11
11
|
|
|
12
|
-
See https://github.com/agentmorris/MegaDetector/tree/
|
|
12
|
+
See https://github.com/agentmorris/MegaDetector/tree/main/megadetector/api/batch_processing.
|
|
13
13
|
|
|
14
14
|
The script can crop images that are either available locally or that need to be
|
|
15
15
|
downloaded from an Azure Blob Storage container.
|
|
File without changes
|
|
@@ -113,11 +113,11 @@ from tqdm import tqdm
|
|
|
113
113
|
|
|
114
114
|
from api.batch_processing.data_preparation.prepare_api_submission import (
|
|
115
115
|
BatchAPIResponseError, Task, TaskStatus, divide_list_into_tasks)
|
|
116
|
-
from classification.cache_batchapi_outputs import cache_detections
|
|
117
|
-
from classification.crop_detections import load_and_crop
|
|
118
|
-
from data_management.megadb import megadb_utils
|
|
119
|
-
from
|
|
120
|
-
from
|
|
116
|
+
from megadetector.classification.cache_batchapi_outputs import cache_detections
|
|
117
|
+
from megadetector.classification.crop_detections import load_and_crop
|
|
118
|
+
from megadetector.data_management.megadb import megadb_utils
|
|
119
|
+
from megadetector.utils import path_utils
|
|
120
|
+
from megadetector.utils import sas_blob_utils
|
|
121
121
|
|
|
122
122
|
|
|
123
123
|
#%% Example usage
|
{megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/efficientnet/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/json_to_azcopy_list.py
RENAMED
|
@@ -16,8 +16,8 @@ import os
|
|
|
16
16
|
|
|
17
17
|
from tqdm import tqdm
|
|
18
18
|
|
|
19
|
-
from data_management.megadb import megadb_utils
|
|
20
|
-
from
|
|
19
|
+
from megadetector.data_management.megadb import megadb_utils
|
|
20
|
+
from megadetector.utils import sas_blob_utils
|
|
21
21
|
|
|
22
22
|
images_dir = ''
|
|
23
23
|
queried_images_json_path = 'run_idfg2/queried_images.json'
|
|
@@ -65,26 +65,30 @@ exist in Azure Blob Storage. In total, we output the following files:
|
|
|
65
65
|
|
|
66
66
|
"""
|
|
67
67
|
|
|
68
|
+
#%% Imports
|
|
69
|
+
|
|
68
70
|
from __future__ import annotations
|
|
69
71
|
|
|
70
72
|
import argparse
|
|
71
|
-
from collections import defaultdict
|
|
72
|
-
from collections.abc import Container, Iterable, Mapping, MutableMapping
|
|
73
|
-
from concurrent import futures
|
|
74
|
-
from datetime import datetime
|
|
75
73
|
import json
|
|
76
74
|
import os
|
|
77
75
|
import pprint
|
|
78
76
|
import random
|
|
79
|
-
from typing import Any
|
|
80
77
|
|
|
81
78
|
import pandas as pd
|
|
82
|
-
|
|
83
|
-
from md_utils import sas_blob_utils
|
|
79
|
+
|
|
84
80
|
from tqdm import tqdm
|
|
81
|
+
from collections import defaultdict
|
|
82
|
+
from collections.abc import Container, Iterable, Mapping, MutableMapping
|
|
83
|
+
from concurrent import futures
|
|
84
|
+
from datetime import datetime
|
|
85
|
+
from typing import Any
|
|
86
|
+
|
|
87
|
+
from megadetector.utils import path_utils
|
|
88
|
+
from megadetector.utils import sas_blob_utils
|
|
85
89
|
|
|
86
|
-
from data_management.megadb import megadb_utils
|
|
87
|
-
from taxonomy_mapping.taxonomy_graph import (
|
|
90
|
+
from megadetector.data_management.megadb import megadb_utils
|
|
91
|
+
from megadetector.taxonomy_mapping.taxonomy_graph import (
|
|
88
92
|
build_taxonomy_graph, dag_to_tree, TaxonNode)
|
|
89
93
|
|
|
90
94
|
|
|
File without changes
|
|
File without changes
|
|
@@ -25,6 +25,7 @@ from __future__ import annotations
|
|
|
25
25
|
import argparse
|
|
26
26
|
import json
|
|
27
27
|
import os
|
|
28
|
+
|
|
28
29
|
from tqdm import tqdm
|
|
29
30
|
from typing import Any
|
|
30
31
|
from collections.abc import Callable, Sequence
|
|
@@ -36,7 +37,7 @@ import torch.utils
|
|
|
36
37
|
import torchvision as tv
|
|
37
38
|
from torchvision.datasets.folder import default_loader
|
|
38
39
|
|
|
39
|
-
from classification import train_classifier
|
|
40
|
+
from megadetector.classification import train_classifier
|
|
40
41
|
|
|
41
42
|
|
|
42
43
|
#%% Example usage
|
|
File without changes
|
|
@@ -16,28 +16,30 @@ During training, start tensorboard from within the classification/ directory:
|
|
|
16
16
|
|
|
17
17
|
from __future__ import annotations
|
|
18
18
|
|
|
19
|
+
import json
|
|
20
|
+
import os
|
|
19
21
|
import argparse
|
|
22
|
+
|
|
20
23
|
from collections import defaultdict
|
|
21
24
|
from collections.abc import Callable, Mapping, MutableMapping, Sequence
|
|
22
25
|
from datetime import datetime
|
|
23
|
-
import json
|
|
24
|
-
import os
|
|
25
26
|
from typing import Any
|
|
26
27
|
|
|
27
28
|
import numpy as np
|
|
28
29
|
import PIL.Image
|
|
29
30
|
import sklearn.metrics
|
|
31
|
+
import tqdm
|
|
32
|
+
|
|
30
33
|
import torch
|
|
31
34
|
from torch.utils import tensorboard
|
|
32
35
|
import torchvision as tv
|
|
33
36
|
from torchvision.datasets.folder import default_loader
|
|
34
|
-
import tqdm
|
|
35
37
|
|
|
36
|
-
from classification import efficientnet, evaluate_model
|
|
37
|
-
from classification.train_utils import (
|
|
38
|
+
from megadetector.classification import efficientnet, evaluate_model
|
|
39
|
+
from megadetector.classification.train_utils import (
|
|
38
40
|
HeapItem, recall_from_confusion_matrix, add_to_heap, fig_to_img,
|
|
39
41
|
imgs_with_confidences, load_dataset_csv, prefix_all_keys)
|
|
40
|
-
from
|
|
42
|
+
from megadetector.visualization import plot_utils
|
|
41
43
|
|
|
42
44
|
|
|
43
45
|
#%% Example usage
|
{megadetector-5.0.10 → megadetector-5.0.12/megadetector}/classification/train_classifier_tf.py
RENAMED
|
@@ -16,25 +16,26 @@ During training, start tensorboard from within the classification/ directory:
|
|
|
16
16
|
|
|
17
17
|
from __future__ import annotations
|
|
18
18
|
|
|
19
|
-
import argparse
|
|
20
|
-
from collections import defaultdict
|
|
21
|
-
from collections.abc import Callable, Mapping, MutableMapping, Sequence
|
|
22
|
-
from datetime import datetime
|
|
23
|
-
import json
|
|
24
19
|
import os
|
|
25
|
-
|
|
20
|
+
import json
|
|
26
21
|
import uuid
|
|
22
|
+
import argparse
|
|
27
23
|
|
|
24
|
+
import tqdm
|
|
28
25
|
import numpy as np
|
|
29
26
|
import sklearn.metrics
|
|
30
27
|
import tensorflow as tf
|
|
28
|
+
|
|
29
|
+
from collections import defaultdict
|
|
30
|
+
from collections.abc import Callable, Mapping, MutableMapping, Sequence
|
|
31
|
+
from datetime import datetime
|
|
32
|
+
from typing import Any, Optional
|
|
31
33
|
from tensorboard.plugins.hparams import api as hp
|
|
32
|
-
import tqdm
|
|
33
34
|
|
|
34
|
-
from classification.train_utils import (
|
|
35
|
+
from megadetector.classification.train_utils import (
|
|
35
36
|
HeapItem, recall_from_confusion_matrix, add_to_heap, fig_to_img,
|
|
36
37
|
imgs_with_confidences, load_dataset_csv, prefix_all_keys)
|
|
37
|
-
from
|
|
38
|
+
from megadetector.visualization import plot_utils
|
|
38
39
|
|
|
39
40
|
AUTOTUNE = tf.data.experimental.AUTOTUNE
|
|
40
41
|
|
|
@@ -13,12 +13,10 @@ especially be agnostic to PyTorch vs. TensorFlow.
|
|
|
13
13
|
|
|
14
14
|
from __future__ import annotations
|
|
15
15
|
|
|
16
|
-
from collections.abc import Mapping, Sequence
|
|
17
16
|
import dataclasses
|
|
18
17
|
import heapq
|
|
19
18
|
import io
|
|
20
19
|
import json
|
|
21
|
-
from typing import Any, Optional
|
|
22
20
|
|
|
23
21
|
import matplotlib.figure
|
|
24
22
|
import numpy as np
|
|
@@ -26,6 +24,9 @@ import pandas as pd
|
|
|
26
24
|
import PIL.Image
|
|
27
25
|
import scipy.interpolate
|
|
28
26
|
|
|
27
|
+
from collections.abc import Mapping, Sequence
|
|
28
|
+
from typing import Any, Optional
|
|
29
|
+
|
|
29
30
|
|
|
30
31
|
#%% Classes
|
|
31
32
|
|
{megadetector-5.0.10/classification → megadetector-5.0.12/megadetector/data_management}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|