megadetector 5.0.22__tar.gz → 5.0.24__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.22 → megadetector-5.0.24}/LICENSE +0 -0
- {megadetector-5.0.22/megadetector.egg-info → megadetector-5.0.24}/PKG-INFO +129 -143
- {megadetector-5.0.22 → megadetector-5.0.24}/README-package.md +3 -18
- {megadetector-5.0.22 → megadetector-5.0.24}/README.md +3 -3
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/api_core/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/api_core/batch_service/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/api_core/batch_service/score.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/api_core/server.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/api_core/server_api_config.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/api_core/server_app_config.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/api_core/server_batch_job_manager.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/api_core/server_job_status_table.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/api_core/server_orchestration.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/api_core/server_utils.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/api_core_support/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/api_core_support/aggregate_results_manually.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/api_support/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/api_support/summarize_daily_activity.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/data_preparation/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/integration/digiKam/setup.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/integration/digiKam/xmp_integration.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/integration/eMammal/test_scripts/config_template.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/integration/eMammal/test_scripts/push_annotations_to_emammal.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/integration/eMammal/test_scripts/select_images_for_testing.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/synchronous/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/synchronous/api_core/animal_detection_api/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/synchronous/api_core/animal_detection_api/api_backend.py +2 -3
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/synchronous/api_core/animal_detection_api/api_frontend.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/synchronous/api_core/animal_detection_api/config.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/synchronous/api_core/tests/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/synchronous/api_core/tests/load_test.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/aggregate_classifier_probs.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/analyze_failed_images.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/cache_batchapi_outputs.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/create_classification_dataset.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/crop_detections.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/csv_to_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/detect_and_crop.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/efficientnet/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/efficientnet/model.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/efficientnet/utils.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/evaluate_model.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/identify_mislabeled_candidates.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/json_to_azcopy_list.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/json_validator.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/map_classification_categories.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/merge_classification_detection_output.py +2 -2
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/prepare_classification_script.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/prepare_classification_script_mc.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/run_classifier.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/save_mislabeled.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/train_classifier.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/train_classifier_tf.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/train_utils.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/annotations/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/annotations/annotation_constants.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/camtrap_dp_to_coco.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/cct_json_utils.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/cct_to_md.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/cct_to_wi.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/coco_to_labelme.py +2 -1
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/coco_to_yolo.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/databases/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/databases/add_width_and_height_to_db.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/databases/combine_coco_camera_traps_files.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/databases/integrity_check_json_db.py +15 -14
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/databases/subset_json_db.py +49 -21
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/generate_crops_from_cct.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/get_image_sizes.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/add_nacti_sizes.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/add_timestamps_to_icct.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/animl_results_to_md_results.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/auckland_doc_test_to_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/auckland_doc_to_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/awc_to_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/bellevue_to_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/cacophony-thermal-importer.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/carrizo_shrubfree_2018.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/carrizo_trail_cam_2017.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/cct_field_adjustments.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/channel_islands_to_cct.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/eMammal/copy_and_unzip_emammal.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/eMammal/eMammal_helpers.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/eMammal/make_eMammal_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/ena24_to_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/filenames_to_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/helena_to_cct.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/idaho-camera-traps.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/idfg_iwildcam_lila_prep.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/import_desert_lion_conservation_camera_traps.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/jb_csv_to_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/mcgill_to_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/missouri_to_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/nacti_fieldname_adjustments.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/noaa_seals_2019.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/osu-small-animals-to-json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/pc_to_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/plot_wni_giraffes.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/prepare_zsl_imerit.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/raic_csv_to_md_results.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/rspb_to_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/save_the_elephants_survey_A.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/save_the_elephants_survey_B.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/snapshot_safari_importer.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/snapshot_serengeti_lila.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/snapshotserengeti/make_full_SS_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/snapshotserengeti/make_per_season_SS_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/sulross_get_exif.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/timelapse_csv_set_to_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/ubc_to_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/umn_to_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/wellington_to_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/wi_to_json.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/importers/zamba_results_to_md_results.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/labelme_to_coco.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/labelme_to_yolo.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/lila/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/lila/add_locations_to_island_camera_traps.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/lila/add_locations_to_nacti.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/lila/create_lila_blank_set.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/lila/create_lila_test_set.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/lila/create_links_to_md_results_files.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/lila/download_lila_subset.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/lila/generate_lila_per_image_labels.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/lila/get_lila_annotation_counts.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/lila/get_lila_image_counts.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/lila/lila_common.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/lila/test_lila_metadata_urls.py +0 -0
- megadetector-5.0.24/megadetector/data_management/mewc_to_md.py +340 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/ocr_tools.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/read_exif.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/remap_coco_categories.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/remove_exif.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/rename_images.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/resize_coco_dataset.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/wi_download_csv_to_coco.py +0 -0
- megadetector-5.0.24/megadetector/data_management/wi_to_md.py +41 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/yolo_output_to_md_output.py +15 -8
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/yolo_to_coco.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/detection/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/detection/process_video.py +24 -7
- megadetector-5.0.24/megadetector/detection/pytorch_detector.py +1055 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/detection/run_detector.py +340 -146
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/detection/run_detector_batch.py +306 -70
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/detection/run_inference_with_yolov5_val.py +61 -4
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/detection/run_tiled_inference.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/detection/tf_detector.py +6 -1
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/detection/video_utils.py +0 -0
- {megadetector-5.0.22/megadetector/detection/detector_training → megadetector-5.0.24/megadetector/postprocessing}/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/add_max_conf.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/categorize_detections_by_size.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/classification_postprocessing.py +0 -0
- megadetector-5.0.22/megadetector/postprocessing/combine_api_outputs.py → megadetector-5.0.24/megadetector/postprocessing/combine_batch_outputs.py +10 -13
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/compare_batch_results.py +68 -6
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/convert_output_format.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/detector_calibration.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/load_api_results.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/md_to_coco.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/md_to_labelme.py +7 -7
- megadetector-5.0.24/megadetector/postprocessing/md_to_wi.py +40 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/merge_detections.py +1 -1
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/postprocess_batch_results.py +10 -3
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/remap_detection_categories.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/render_detection_confusion_matrix.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/repeat_detection_elimination/find_repeat_detections.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/repeat_detection_elimination/remove_repeat_detections.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/repeat_detection_elimination/repeat_detections_core.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/separate_detections_into_folders.py +32 -4
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/subset_json_detector_output.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/top_folders_to_bottom.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/postprocessing/validate_batch_results.py +9 -4
- {megadetector-5.0.22/megadetector/postprocessing → megadetector-5.0.24/megadetector/taxonomy_mapping}/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/taxonomy_mapping/map_lila_taxonomy_to_wi_taxonomy.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/taxonomy_mapping/map_new_lila_datasets.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/taxonomy_mapping/prepare_lila_taxonomy_release.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/taxonomy_mapping/preview_lila_taxonomy.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/taxonomy_mapping/retrieve_sample_image.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/taxonomy_mapping/simple_image_download.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/taxonomy_mapping/species_lookup.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/taxonomy_mapping/taxonomy_csv_checker.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/taxonomy_mapping/taxonomy_graph.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/taxonomy_mapping/validate_lila_category_mappings.py +0 -0
- {megadetector-5.0.22/megadetector/taxonomy_mapping → megadetector-5.0.24/megadetector/utils}/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/utils/azure_utils.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/utils/ct_utils.py +172 -57
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/utils/directory_listing.py +0 -0
- megadetector-5.0.24/megadetector/utils/gpu_test.py +107 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/utils/md_tests.py +363 -108
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/utils/path_utils.py +9 -2
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/utils/process_utils.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/utils/sas_blob_utils.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/utils/split_locations_into_train_val.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/utils/string_utils.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/utils/url_utils.py +0 -0
- megadetector-5.0.24/megadetector/utils/wi_utils.py +1794 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/utils/write_html_image_list.py +0 -0
- {megadetector-5.0.22/megadetector/utils → megadetector-5.0.24/megadetector/visualization}/__init__.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/visualization/plot_utils.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/visualization/render_images_with_thumbnails.py +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/visualization/visualization_utils.py +82 -16
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/visualization/visualize_db.py +25 -7
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector/visualization/visualize_detector_output.py +60 -13
- {megadetector-5.0.22 → megadetector-5.0.24/megadetector.egg-info}/PKG-INFO +129 -143
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector.egg-info/SOURCES.txt +6 -4
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector.egg-info/dependency_links.txt +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector.egg-info/requires.txt +8 -3
- {megadetector-5.0.22 → megadetector-5.0.24}/megadetector.egg-info/top_level.txt +0 -0
- {megadetector-5.0.22 → megadetector-5.0.24}/pyproject.toml +31 -11
- {megadetector-5.0.22 → megadetector-5.0.24}/setup.cfg +4 -4
- megadetector-5.0.22/megadetector/detection/detector_training/model_main_tf2.py +0 -114
- megadetector-5.0.22/megadetector/detection/pytorch_detector.py +0 -374
- megadetector-5.0.22/megadetector/utils/torch_test.py +0 -32
- megadetector-5.0.22/megadetector/visualization/__init__.py +0 -0
|
File without changes
|
|
@@ -1,143 +1,129 @@
|
|
|
1
|
-
Metadata-Version: 2.2
|
|
2
|
-
Name: megadetector
|
|
3
|
-
Version: 5.0.
|
|
4
|
-
Summary: MegaDetector is an AI model that helps conservation folks spend less time doing boring things with camera trap images.
|
|
5
|
-
Author-email: Your friendly neighborhood MegaDetector team <cameratraps@lila.science>
|
|
6
|
-
Maintainer-email: Your friendly neighborhood MegaDetector team <cameratraps@lila.science>
|
|
7
|
-
License: MIT License
|
|
8
|
-
|
|
9
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
11
|
-
in the Software without restriction, including without limitation the rights
|
|
12
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
14
|
-
furnished to do so, subject to the following conditions:
|
|
15
|
-
|
|
16
|
-
The above copyright notice and this permission notice shall be included in all
|
|
17
|
-
copies or substantial portions of the Software.
|
|
18
|
-
|
|
19
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
21
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
25
|
-
SOFTWARE.
|
|
26
|
-
|
|
27
|
-
Project-URL: Homepage, https://github.com/agentmorris/MegaDetector
|
|
28
|
-
Project-URL: Documentation, https://megadetector.readthedocs.io
|
|
29
|
-
Project-URL: Bug Reports, https://github.com/agentmorris/MegaDetector/issues
|
|
30
|
-
Project-URL: Source, https://github.com/agentmorris/MegaDetector
|
|
31
|
-
Keywords: camera traps,conservation,wildlife,ai,megadetector
|
|
32
|
-
Classifier:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
Requires-Dist: Pillow>=9.5
|
|
39
|
-
Requires-Dist: tqdm>=4.64.0
|
|
40
|
-
Requires-Dist: jsonpickle>=3.0.2
|
|
41
|
-
Requires-Dist: humanfriendly>=10.0
|
|
42
|
-
Requires-Dist:
|
|
43
|
-
Requires-Dist:
|
|
44
|
-
Requires-Dist:
|
|
45
|
-
Requires-Dist:
|
|
46
|
-
Requires-Dist:
|
|
47
|
-
Requires-Dist:
|
|
48
|
-
Requires-Dist:
|
|
49
|
-
Requires-Dist:
|
|
50
|
-
Requires-Dist:
|
|
51
|
-
Requires-Dist: ultralytics-yolov5==0.1.1
|
|
52
|
-
Requires-Dist:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
##
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
# Write results to a format that Timelapse and other downstream tools like.
|
|
131
|
-
write_results_to_file(results,
|
|
132
|
-
output_file,
|
|
133
|
-
relative_path_base=image_folder,
|
|
134
|
-
detector_file=detector_filename)
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
## Contact
|
|
138
|
-
|
|
139
|
-
Contact <a href="cameratraps@lila.science">cameratraps@lila.science</a> with questions.
|
|
140
|
-
|
|
141
|
-
## Gratuitous animal picture
|
|
142
|
-
|
|
143
|
-
<img src="https://github.com/agentmorris/MegaDetector/raw/main/images/orinoquia-thumb-web_detections.jpg"><br/>Image credit University of Minnesota, from the [Orinoquía Camera Traps](http://lila.science/datasets/orinoquia-camera-traps/) data set.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
|
+
Name: megadetector
|
|
3
|
+
Version: 5.0.24
|
|
4
|
+
Summary: MegaDetector is an AI model that helps conservation folks spend less time doing boring things with camera trap images.
|
|
5
|
+
Author-email: Your friendly neighborhood MegaDetector team <cameratraps@lila.science>
|
|
6
|
+
Maintainer-email: Your friendly neighborhood MegaDetector team <cameratraps@lila.science>
|
|
7
|
+
License: MIT License
|
|
8
|
+
|
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
11
|
+
in the Software without restriction, including without limitation the rights
|
|
12
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
14
|
+
furnished to do so, subject to the following conditions:
|
|
15
|
+
|
|
16
|
+
The above copyright notice and this permission notice shall be included in all
|
|
17
|
+
copies or substantial portions of the Software.
|
|
18
|
+
|
|
19
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
21
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
25
|
+
SOFTWARE.
|
|
26
|
+
|
|
27
|
+
Project-URL: Homepage, https://github.com/agentmorris/MegaDetector
|
|
28
|
+
Project-URL: Documentation, https://megadetector.readthedocs.io
|
|
29
|
+
Project-URL: Bug Reports, https://github.com/agentmorris/MegaDetector/issues
|
|
30
|
+
Project-URL: Source, https://github.com/agentmorris/MegaDetector
|
|
31
|
+
Keywords: camera traps,conservation,wildlife,ai,megadetector
|
|
32
|
+
Classifier: Programming Language :: Python :: 3
|
|
33
|
+
Requires-Python: <=3.13,>=3.9
|
|
34
|
+
Description-Content-Type: text/markdown
|
|
35
|
+
License-File: LICENSE
|
|
36
|
+
Requires-Dist: mkl==2024.0; sys_platform != "darwin"
|
|
37
|
+
Requires-Dist: numpy<2.0,>=1.26.4
|
|
38
|
+
Requires-Dist: Pillow>=9.5
|
|
39
|
+
Requires-Dist: tqdm>=4.64.0
|
|
40
|
+
Requires-Dist: jsonpickle>=3.0.2
|
|
41
|
+
Requires-Dist: humanfriendly>=10.0
|
|
42
|
+
Requires-Dist: matplotlib>=3.8.0
|
|
43
|
+
Requires-Dist: opencv-python>=4.8.0
|
|
44
|
+
Requires-Dist: requests>=2.31.0
|
|
45
|
+
Requires-Dist: pyqtree>=1.0.0
|
|
46
|
+
Requires-Dist: scikit-learn>=1.3.1
|
|
47
|
+
Requires-Dist: pandas>=2.1.1
|
|
48
|
+
Requires-Dist: python-dateutil
|
|
49
|
+
Requires-Dist: send2trash
|
|
50
|
+
Requires-Dist: dill
|
|
51
|
+
Requires-Dist: ultralytics-yolov5==0.1.1
|
|
52
|
+
Requires-Dist: yolov9pip==0.0.4
|
|
53
|
+
Requires-Dist: python-dateutil
|
|
54
|
+
|
|
55
|
+
# MegaDetector
|
|
56
|
+
|
|
57
|
+
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).
|
|
58
|
+
|
|
59
|
+
If you aren't looking for the Python package specifically, and you just want to learn more about what MegaDetector is all about, head over to the [MegaDetector repo](https://github.com/agentmorris/MegaDetector/?tab=readme-ov-file#megadetector).
|
|
60
|
+
|
|
61
|
+
## Installation
|
|
62
|
+
|
|
63
|
+
Install with:
|
|
64
|
+
|
|
65
|
+
`pip install megadetector`
|
|
66
|
+
|
|
67
|
+
MegaDetector model weights aren't downloaded at the time you install the package, but they will be (optionally) automatically downloaded the first time you run the model.
|
|
68
|
+
|
|
69
|
+
## Package reference
|
|
70
|
+
|
|
71
|
+
See [megadetector.readthedocs.io](https://megadetector.readthedocs.io).
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
## Examples of things you can do with this package
|
|
75
|
+
|
|
76
|
+
### Run MegaDetector on one image and count the number of detections
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
from megadetector.utils import url_utils
|
|
80
|
+
from megadetector.visualization import visualization_utils as vis_utils
|
|
81
|
+
from megadetector.detection import run_detector
|
|
82
|
+
|
|
83
|
+
# This is the image at the bottom of this page, it has one animal in it
|
|
84
|
+
image_url = 'https://github.com/agentmorris/MegaDetector/raw/main/images/orinoquia-thumb-web.jpg'
|
|
85
|
+
temporary_filename = url_utils.download_url(image_url)
|
|
86
|
+
|
|
87
|
+
image = vis_utils.load_image(temporary_filename)
|
|
88
|
+
|
|
89
|
+
# This will automatically download MDv5a; you can also specify a filename.
|
|
90
|
+
model = run_detector.load_detector('MDV5A')
|
|
91
|
+
|
|
92
|
+
result = model.generate_detections_one_image(image)
|
|
93
|
+
|
|
94
|
+
detections_above_threshold = [d for d in result['detections'] if d['conf'] > 0.2]
|
|
95
|
+
print('Found {} detections above threshold'.format(len(detections_above_threshold)))
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Run MegaDetector on a folder of images
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
from megadetector.detection.run_detector_batch import \
|
|
102
|
+
load_and_run_detector_batch, write_results_to_file
|
|
103
|
+
from megadetector.utils import path_utils
|
|
104
|
+
import os
|
|
105
|
+
|
|
106
|
+
# Pick a folder to run MD on recursively, and an output file
|
|
107
|
+
image_folder = os.path.expanduser('~/megadetector_test_images')
|
|
108
|
+
output_file = os.path.expanduser('~/megadetector_output_test.json')
|
|
109
|
+
|
|
110
|
+
# Recursively find images
|
|
111
|
+
image_file_names = path_utils.find_images(image_folder,recursive=True)
|
|
112
|
+
|
|
113
|
+
# This will automatically download MDv5a; you can also specify a filename.
|
|
114
|
+
results = load_and_run_detector_batch('MDV5A', image_file_names)
|
|
115
|
+
|
|
116
|
+
# Write results to a format that Timelapse and other downstream tools like.
|
|
117
|
+
write_results_to_file(results,
|
|
118
|
+
output_file,
|
|
119
|
+
relative_path_base=image_folder,
|
|
120
|
+
detector_file=detector_filename)
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Contact
|
|
124
|
+
|
|
125
|
+
Contact <a href="cameratraps@lila.science">cameratraps@lila.science</a> with questions.
|
|
126
|
+
|
|
127
|
+
## Gratuitous animal picture
|
|
128
|
+
|
|
129
|
+
<img src="https://github.com/agentmorris/MegaDetector/raw/main/images/orinoquia-thumb-web_detections.jpg"><br/>Image credit University of Minnesota, from the [Orinoquía Camera Traps](http://lila.science/datasets/orinoquia-camera-traps/) data set.
|
|
@@ -4,28 +4,13 @@ This package is a pip-installable version of the support/inference code for [Meg
|
|
|
4
4
|
|
|
5
5
|
If you aren't looking for the Python package specifically, and you just want to learn more about what MegaDetector is all about, head over to the [MegaDetector repo](https://github.com/agentmorris/MegaDetector/?tab=readme-ov-file#megadetector).
|
|
6
6
|
|
|
7
|
+
## Installation
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
### If you are an ecologist...
|
|
11
|
-
|
|
12
|
-
If you are an ecologist looking to use MegaDetector to help you get through your camera trap images, you probably don't want this package, or at least you probably don't want to start at this page. We recommend starting with our "[Getting started with MegaDetector](https://github.com/agentmorris/MegaDetector/blob/main/getting-started.md)" page, then digging in to the [MegaDetector User Guide](https://github.com/agentmorris/MegaDetector/blob/main/megadetector.md), which will walk you through the process of using MegaDetector.
|
|
13
|
-
|
|
14
|
-
### If you are a computer-vision-y type...
|
|
15
|
-
|
|
16
|
-
If you are a computer-vision-y person looking to run or fine-tune MegaDetector programmatically, you probably don't want this package. MegaDetector is just a fine-tuned version of [YOLOv5](https://github.com/ultralytics/yolov5), and the [ultralytics](https://github.com/ultralytics/ultralytics/) package (from the developers of YOLOv5) has a zillion bells and whistles for both inference and fine-tuning that this package doesn't.
|
|
17
|
-
|
|
18
|
-
## Reasons you might want to use this package
|
|
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/megadetector/api/batch_processing#megadetector-batch-output-format)), this package might be for you.
|
|
21
|
-
|
|
22
|
-
## If I haven't talked you out of using this package...
|
|
23
|
-
|
|
24
|
-
To install:
|
|
9
|
+
Install with:
|
|
25
10
|
|
|
26
11
|
`pip install megadetector`
|
|
27
12
|
|
|
28
|
-
MegaDetector model weights aren't downloaded at
|
|
13
|
+
MegaDetector model weights aren't downloaded at the time you install the package, but they will be (optionally) automatically downloaded the first time you run the model.
|
|
29
14
|
|
|
30
15
|
## Package reference
|
|
31
16
|
|
|
@@ -23,7 +23,7 @@ Here's a “teaser” image of what MegaDetector output looks like:
|
|
|
23
23
|
|
|
24
24
|
## How do I get started with MegaDetector?
|
|
25
25
|
|
|
26
|
-
* If you are looking for a convenient tool to run MegaDetector, you don't need anything from this repository: check out [
|
|
26
|
+
* If you are looking for a convenient tool to run MegaDetector, you don't need anything from this repository: check out [AddaxAI](https://addaxdatascience.com/addaxai/) (formerly EcoAssist), a GUI-based tool for running AI models (including MegaDetector) on camera trap images.
|
|
27
27
|
* If you're just <i>considering</i> the use of AI in your workflow, and you aren't even sure yet whether MegaDetector would be useful to you, we recommend reading the "[getting started with MegaDetector](getting-started.md)" page.
|
|
28
28
|
* If you're already familiar with MegaDetector and you're ready to run it on your data, see the [MegaDetector User Guide](megadetector.md) for instructions on running MegaDetector.
|
|
29
29
|
* If you're a programmer-type looking to use tools from this repo, check out the [MegaDetector Python package](https://pypi.org/project/megadetector/) that provides access to everything in this repo (yes, you guessed it, "pip install megadetector").
|
|
@@ -141,7 +141,7 @@ Also see:
|
|
|
141
141
|
|
|
142
142
|
* The [list of MD-related GUIs, platforms, and GitHub repos](https://github.com/agentmorris/MegaDetector/blob/main/megadetector.md#is-there-a-gui) within the MegaDetector User Guide
|
|
143
143
|
|
|
144
|
-
* [Peter's map of EcoAssist users](https://addaxdatascience.com/
|
|
144
|
+
* [Peter's map of AddaxAI (formerly EcoAssist) users](https://addaxdatascience.com/addaxai/) (who are also MegaDetector users!)
|
|
145
145
|
|
|
146
146
|
* The list of papers tagged "MegaDetector" on our [list of papers about ML and camera traps](https://agentmorris.github.io/camera-trap-ml-survey/#camera-trap-ml-papers)
|
|
147
147
|
|
|
@@ -262,6 +262,6 @@ Code written on or before April 28, 2023 is [copyright Microsoft](https://github
|
|
|
262
262
|
|
|
263
263
|
## Contributing
|
|
264
264
|
|
|
265
|
-
This project welcomes contributions, as pull requests, issues, or suggestions by [email](mailto:cameratraps@lila.science). We have a [list](https://github.com/agentmorris/MegaDetector/issues/84) of issues that we're hoping to address, many of which would be good starting points for new contributors. We also depend on other open-source tools that help users run MegaDetector (
|
|
265
|
+
This project welcomes contributions, as pull requests, issues, or suggestions by [email](mailto:cameratraps@lila.science). We have a [list](https://github.com/agentmorris/MegaDetector/issues/84) of issues that we're hoping to address, many of which would be good starting points for new contributors. We also depend on other open-source tools that help users run MegaDetector (particularly [AddaxAI](https://github.com/PetervanLunteren/AddaxAI) (formerly EcoAssist), and open-source tools that help users work with MegaDetector results (particularly [Timelapse](https://github.com/saulgreenberg/Timelapse)). If you are looking to get involved in GUI development, reach out to the developers of those tools as well!
|
|
266
266
|
|
|
267
267
|
If you are interesting in getting involved in the conservation technology space, and MegaDetector just happens to be the first page you landed on, and none of our open issues are getting you fired up, don't fret! Head over to the [WILDLABS discussion forums](https://wildlabs.net/discussions) and let the community know you're a developer looking to get involved. Someone needs your help!
|
|
File without changes
|
|
File without changes
|
{megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/batch_processing/api_core/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{megadetector-5.0.22 → megadetector-5.0.24}/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
|
|
@@ -14,9 +14,8 @@ import redis
|
|
|
14
14
|
import argparse
|
|
15
15
|
import PIL
|
|
16
16
|
|
|
17
|
-
from
|
|
18
|
-
|
|
19
|
-
from detection.run_detector import load_detector, convert_to_tf_coords
|
|
17
|
+
from detection.run_detector import load_detector
|
|
18
|
+
from utils.ct_utils import convert_xywh_to_xyxy as convert_to_tf_coords
|
|
20
19
|
import config
|
|
21
20
|
import visualization.visualization_utils as vis_utils
|
|
22
21
|
|
|
File without changes
|
|
File without changes
|
{megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/synchronous/api_core/tests/__init__.py
RENAMED
|
File without changes
|
{megadetector-5.0.22 → megadetector-5.0.24}/megadetector/api/synchronous/api_core/tests/load_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/analyze_failed_images.py
RENAMED
|
File without changes
|
{megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/cache_batchapi_outputs.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/efficientnet/__init__.py
RENAMED
|
File without changes
|
{megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/efficientnet/model.py
RENAMED
|
File without changes
|
{megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/efficientnet/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/json_to_azcopy_list.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -70,7 +70,7 @@ from typing import Any
|
|
|
70
70
|
import pandas as pd
|
|
71
71
|
from tqdm import tqdm
|
|
72
72
|
|
|
73
|
-
from megadetector.utils.ct_utils import
|
|
73
|
+
from megadetector.utils.ct_utils import round_float
|
|
74
74
|
|
|
75
75
|
|
|
76
76
|
#%% Example usage
|
|
@@ -124,7 +124,7 @@ def row_to_classification_list(row: Mapping[str, Any],
|
|
|
124
124
|
|
|
125
125
|
# filter out confidences below the threshold, and set precision to 4
|
|
126
126
|
result = [
|
|
127
|
-
(k,
|
|
127
|
+
(k, round_float(conf, precision=4))
|
|
128
128
|
for k, conf in result if conf >= threshold
|
|
129
129
|
]
|
|
130
130
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{megadetector-5.0.22 → megadetector-5.0.24}/megadetector/classification/train_classifier_tf.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/annotations/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/camtrap_dp_to_coco.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -18,6 +18,7 @@ from tqdm import tqdm
|
|
|
18
18
|
from collections import defaultdict
|
|
19
19
|
|
|
20
20
|
from megadetector.visualization.visualization_utils import open_image
|
|
21
|
+
from megadetector.detection.run_detector import FAILURE_IMAGE_OPEN
|
|
21
22
|
|
|
22
23
|
|
|
23
24
|
#%% Functions
|
|
@@ -145,7 +146,7 @@ def coco_to_labelme(coco_data,image_base,overwrite=False,bypass_image_size_check
|
|
|
145
146
|
except Exception:
|
|
146
147
|
print('Warning: cannot open image {}'.format(im_full_path))
|
|
147
148
|
if 'failure' not in im:
|
|
148
|
-
im['failure'] =
|
|
149
|
+
im['failure'] = FAILURE_IMAGE_OPEN
|
|
149
150
|
|
|
150
151
|
# ...if we need to read w/h information
|
|
151
152
|
|
|
File without changes
|
{megadetector-5.0.22 → megadetector-5.0.24}/megadetector/data_management/databases/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|