├── .gitignore ├── .gitmodules ├── .streamlit └── config.toml ├── CensorArchivalComponents.py ├── CensorArchivalComponents.yaml ├── DetectPhenology.py ├── DetectPhenology.yaml ├── LICENSE ├── LM2_fast.yaml ├── LeafMachine2.py ├── LeafMachine2.yaml ├── LeafMachine2_Reference.yaml ├── README.md ├── SpecimenCrop.py ├── SpecimenCrop.yaml ├── __init__.py ├── bin └── version.yml ├── configs ├── config_GBIF_from_user_file.yml ├── config_create_occ_img_file_with_filters.yaml ├── config_download_from_GBIF_all_images_in_file.yml ├── config_download_from_GBIF_all_images_in_filter.yml └── config_download_from_GBIF_all_images_in_filter_multiDirs.yml ├── create_desktop_shortcut.py ├── demo ├── demo.yaml ├── demo_cpu_only.yaml └── demo_images │ ├── LM_Validate_LowRes_1.jpg │ ├── LM_Validate_LowRes_10.jpg │ ├── LM_Validate_LowRes_11.jpg │ ├── LM_Validate_LowRes_12.jpg │ ├── LM_Validate_LowRes_2.jpg │ ├── LM_Validate_LowRes_3.jpg │ ├── LM_Validate_LowRes_4.jpg │ ├── LM_Validate_LowRes_5.jpg │ ├── LM_Validate_LowRes_6.jpg │ ├── LM_Validate_LowRes_7.jpg │ ├── LM_Validate_LowRes_8.jpg │ └── LM_Validate_LowRes_9.jpg ├── docs └── img │ └── SpecimenCrop_BA │ ├── BA_1_after.jpg │ ├── BA_1_after_50.jpg │ ├── BA_1_before.jpg │ ├── BA_2_after.jpg │ ├── BA_2_after_50.jpg │ └── BA_2_before.jpg ├── img └── icon.jpg ├── leafmachine2 ├── __init__.py ├── analysis │ ├── conversion_classifier.py │ ├── pixel_to_metric_predictors │ │ ├── pixel_predictions.png │ │ ├── poly_regressor.joblib │ │ └── rf_classifier.joblib │ ├── predict_pixel_to_metric_conversion_factor.py │ ├── run_supervised_image_selection.py │ ├── saved_projects_supervised_selection │ │ ├── POP.json │ │ ├── POP2.json │ │ ├── Tropical__Eschweilera_Mart_ex_DC__10_per_fullname.json │ │ └── Tropical__Eugenia_L__10_per_fullname.json │ ├── split_or_merge_large_image_batch.py │ ├── supervised_image_selection.py │ └── visualize_shape_measurements.py ├── component_detector │ ├── LICENSE │ ├── __init__.py │ ├── armature_processing.py │ ├── color_profiles │ │ ├── ColorProfile__LANDMARK.csv │ │ ├── ColorProfile__LANDMARK_ARM.csv │ │ ├── ColorProfile__PLANT.csv │ │ └── ColorProfile__PREP.csv │ ├── component_detector.py │ ├── component_detector_backup.py │ ├── data │ │ ├── Argoverse.yaml │ │ ├── GlobalWheat2020.yaml │ │ ├── Objects365.yaml │ │ ├── PLANT_Full.yaml │ │ ├── SKU-110K.yaml │ │ ├── VOC.yaml │ │ ├── VisDrone.yaml │ │ ├── coco.yaml │ │ ├── coco128.yaml │ │ ├── hyps │ │ │ ├── hyp.Objects365.yaml │ │ │ ├── hyp.VOC.yaml │ │ │ ├── hyp.scratch-high.yaml │ │ │ ├── hyp.scratch-low.yaml │ │ │ └── hyp.scratch-med.yaml │ │ ├── images │ │ │ ├── bus.jpg │ │ │ └── zidane.jpg │ │ ├── scripts │ │ │ ├── download_weights.sh │ │ │ ├── get_coco.sh │ │ │ └── get_coco128.sh │ │ └── xView.yaml │ ├── detect.py │ ├── export.py │ ├── export_torchscript.py │ ├── hubconf.py │ ├── landmark_processing.py │ ├── models │ │ ├── __init__.py │ │ ├── common.py │ │ ├── experimental.py │ │ ├── hub │ │ │ ├── anchors.yaml │ │ │ ├── yolov3-spp.yaml │ │ │ ├── yolov3-tiny.yaml │ │ │ ├── yolov3.yaml │ │ │ ├── yolov5-bifpn.yaml │ │ │ ├── yolov5-fpn.yaml │ │ │ ├── yolov5-p2.yaml │ │ │ ├── yolov5-p34.yaml │ │ │ ├── yolov5-p6.yaml │ │ │ ├── yolov5-p7.yaml │ │ │ ├── yolov5-panet.yaml │ │ │ ├── yolov5l6.yaml │ │ │ ├── yolov5m6.yaml │ │ │ ├── yolov5n6.yaml │ │ │ ├── yolov5s-ghost.yaml │ │ │ ├── yolov5s-transformer.yaml │ │ │ ├── yolov5s6.yaml │ │ │ └── yolov5x6.yaml │ │ ├── tf.py │ │ ├── yolo.py │ │ ├── yolo_torchscript.py │ │ ├── yolov5l.yaml │ │ ├── yolov5m.yaml │ │ ├── yolov5n.yaml │ │ ├── yolov5s.yaml │ │ └── yolov5x.yaml │ ├── runYOLOv5forDir.py │ ├── train.py │ ├── utils │ │ ├── __init__.py │ │ ├── activations.py │ │ ├── augmentations.py │ │ ├── augmentations_torchscript.py │ │ ├── autoanchor.py │ │ ├── autobatch.py │ │ ├── aws │ │ │ ├── __init__.py │ │ │ ├── mime.sh │ │ │ ├── resume.py │ │ │ └── userdata.sh │ │ ├── benchmarks.py │ │ ├── callbacks.py │ │ ├── dataloaders.py │ │ ├── datasets.py │ │ ├── docker │ │ │ ├── .dockerignore │ │ │ ├── Dockerfile │ │ │ └── Dockerfile-cpu │ │ ├── downloads.py │ │ ├── downloads_torchscript.py │ │ ├── flask_rest_api │ │ │ ├── README.md │ │ │ ├── example_request.py │ │ │ └── restapi.py │ │ ├── general.py │ │ ├── general_torchscript.py │ │ ├── google_app_engine │ │ │ ├── Dockerfile │ │ │ ├── additional_requirements.txt │ │ │ └── app.yaml │ │ ├── loggers │ │ │ ├── __init__.py │ │ │ └── wandb │ │ │ │ ├── README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── log_dataset.py │ │ │ │ ├── sweep.py │ │ │ │ ├── sweep.yaml │ │ │ │ └── wandb_utils.py │ │ ├── loss.py │ │ ├── metrics.py │ │ ├── plots.py │ │ ├── torch_utils.py │ │ └── torch_utils_torchscript.py │ ├── utils_check_layers.py │ ├── utils_convert_to_TorchScript.py │ └── val.py ├── downloading │ ├── download_from_GBIF_all_images_in_file.py │ ├── download_images_custom.py │ ├── dwc_downloader.py │ ├── dwc_downloader_Streamlit.py │ ├── dwc_downloader_Streamlit_run.py │ ├── mappings.py │ ├── subsample_large_GBIF_files.py │ ├── test_download_all_images_in_images_csv.py │ ├── test_proxy.py │ ├── utils_downloads (copy).py │ ├── utils_downloads.py │ ├── utils_downloads_candidate.py │ ├── utils_downloads_candidate_old.py │ └── utils_downloads_old.py ├── keypoint_detector │ ├── keypoint_models │ │ └── uniform_spaced_oriented_traces_mid15_pet5_clean_640_flipidx_pt2 │ │ │ ├── BoxF1_curve.png │ │ │ ├── BoxPR_curve.png │ │ │ ├── BoxP_curve.png │ │ │ ├── BoxR_curve.png │ │ │ ├── PoseF1_curve.png │ │ │ ├── PosePR_curve.png │ │ │ ├── PoseP_curve.png │ │ │ ├── PoseR_curve.png │ │ │ ├── args.yaml │ │ │ ├── confusion_matrix.png │ │ │ ├── confusion_matrix_normalized.png │ │ │ ├── events.out.tfevents.1711487458.ubuntu22.3102564.0 │ │ │ ├── labels.jpg │ │ │ ├── labels_correlogram.jpg │ │ │ ├── results.csv │ │ │ ├── results.png │ │ │ ├── train_batch0.jpg │ │ │ ├── train_batch1.jpg │ │ │ ├── train_batch17900.jpg │ │ │ ├── train_batch17901.jpg │ │ │ ├── train_batch17902.jpg │ │ │ ├── train_batch2.jpg │ │ │ ├── val_batch0_labels.jpg │ │ │ ├── val_batch0_pred.jpg │ │ │ ├── val_batch1_labels.jpg │ │ │ ├── val_batch1_pred.jpg │ │ │ ├── val_batch2_labels.jpg │ │ │ └── val_batch2_pred.jpg │ └── ultralytics │ │ ├── .gitignore │ │ ├── .pre-commit-config.yaml │ │ ├── CITATION.cff │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE │ │ ├── MANIFEST.in │ │ ├── README.md │ │ ├── README.zh-CN.md │ │ ├── __init__.py │ │ ├── assets │ │ ├── bus.jpg │ │ └── zidane.jpg │ │ ├── cfg │ │ ├── __init__.py │ │ ├── default.yaml │ │ ├── models │ │ │ ├── README.md │ │ │ ├── rt-detr │ │ │ │ ├── rtdetr-l.yaml │ │ │ │ └── rtdetr-x.yaml │ │ │ ├── v3 │ │ │ │ ├── yolov3-spp.yaml │ │ │ │ ├── yolov3-tiny.yaml │ │ │ │ └── yolov3.yaml │ │ │ ├── v5 │ │ │ │ ├── yolov5-p6.yaml │ │ │ │ └── yolov5.yaml │ │ │ ├── v6 │ │ │ │ └── yolov6.yaml │ │ │ └── v8 │ │ │ │ ├── yolov8-cls.yaml │ │ │ │ ├── yolov8-p2.yaml │ │ │ │ ├── yolov8-p6.yaml │ │ │ │ ├── yolov8-pose-p6.yaml │ │ │ │ ├── yolov8-pose.yaml │ │ │ │ ├── yolov8-rtdetr.yaml │ │ │ │ ├── yolov8-seg-p6.yaml │ │ │ │ ├── yolov8-seg.yaml │ │ │ │ └── yolov8.yaml │ │ └── trackers │ │ │ ├── botsort.yaml │ │ │ └── bytetrack.yaml │ │ ├── data │ │ ├── __init__.py │ │ ├── annotator.py │ │ ├── augment.py │ │ ├── base.py │ │ ├── build.py │ │ ├── converter.py │ │ ├── dataset.py │ │ ├── loaders.py │ │ ├── scripts │ │ │ ├── download_weights.sh │ │ │ ├── get_coco.sh │ │ │ ├── get_coco128.sh │ │ │ └── get_imagenet.sh │ │ └── utils.py │ │ ├── docker │ │ ├── Dockerfile │ │ ├── Dockerfile-arm64 │ │ ├── Dockerfile-conda │ │ ├── Dockerfile-cpu │ │ ├── Dockerfile-jetson │ │ ├── Dockerfile-python │ │ └── Dockerfile-runner │ │ ├── docs │ │ ├── CNAME │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── assets │ │ │ └── favicon.ico │ │ ├── build_reference.py │ │ ├── guides │ │ │ ├── azureml-quickstart.md │ │ │ ├── conda-quickstart.md │ │ │ ├── hyperparameter-tuning.md │ │ │ ├── index.md │ │ │ ├── kfold-cross-validation.md │ │ │ └── sahi-tiled-inference.md │ │ ├── help │ │ │ ├── CI.md │ │ │ ├── CLA.md │ │ │ ├── FAQ.md │ │ │ ├── code_of_conduct.md │ │ │ ├── contributing.md │ │ │ ├── environmental-health-safety.md │ │ │ ├── index.md │ │ │ └── minimum_reproducible_example.md │ │ ├── hub │ │ │ ├── app │ │ │ │ ├── android.md │ │ │ │ ├── index.md │ │ │ │ └── ios.md │ │ │ ├── datasets.md │ │ │ ├── index.md │ │ │ ├── inference_api.md │ │ │ ├── integrations.md │ │ │ ├── models.md │ │ │ ├── projects.md │ │ │ └── quickstart.md │ │ ├── index.md │ │ ├── integrations │ │ │ ├── index.md │ │ │ ├── openvino.md │ │ │ ├── ray-tune.md │ │ │ └── roboflow.md │ │ ├── models │ │ │ ├── fast-sam.md │ │ │ ├── index.md │ │ │ ├── mobile-sam.md │ │ │ ├── rtdetr.md │ │ │ ├── sam.md │ │ │ ├── yolo-nas.md │ │ │ ├── yolov3.md │ │ │ ├── yolov4.md │ │ │ ├── yolov5.md │ │ │ ├── yolov6.md │ │ │ ├── yolov7.md │ │ │ └── yolov8.md │ │ ├── modes │ │ │ ├── benchmark.md │ │ │ ├── export.md │ │ │ ├── index.md │ │ │ ├── predict.md │ │ │ ├── track.md │ │ │ ├── train.md │ │ │ └── val.md │ │ ├── overrides │ │ │ └── partials │ │ │ │ ├── comments.html │ │ │ │ └── source-file.html │ │ ├── quickstart.md │ │ ├── reference │ │ │ ├── cfg │ │ │ │ └── __init__.md │ │ │ ├── data │ │ │ │ ├── annotator.md │ │ │ │ ├── augment.md │ │ │ │ ├── base.md │ │ │ │ ├── build.md │ │ │ │ ├── converter.md │ │ │ │ ├── dataset.md │ │ │ │ ├── loaders.md │ │ │ │ └── utils.md │ │ │ ├── engine │ │ │ │ ├── exporter.md │ │ │ │ ├── model.md │ │ │ │ ├── predictor.md │ │ │ │ ├── results.md │ │ │ │ ├── trainer.md │ │ │ │ ├── tuner.md │ │ │ │ └── validator.md │ │ │ ├── hub │ │ │ │ ├── __init__.md │ │ │ │ ├── auth.md │ │ │ │ ├── session.md │ │ │ │ └── utils.md │ │ │ ├── models │ │ │ │ ├── fastsam │ │ │ │ │ ├── model.md │ │ │ │ │ ├── predict.md │ │ │ │ │ ├── prompt.md │ │ │ │ │ ├── utils.md │ │ │ │ │ └── val.md │ │ │ │ ├── nas │ │ │ │ │ ├── model.md │ │ │ │ │ ├── predict.md │ │ │ │ │ └── val.md │ │ │ │ ├── rtdetr │ │ │ │ │ ├── model.md │ │ │ │ │ ├── predict.md │ │ │ │ │ ├── train.md │ │ │ │ │ └── val.md │ │ │ │ ├── sam │ │ │ │ │ ├── amg.md │ │ │ │ │ ├── build.md │ │ │ │ │ ├── model.md │ │ │ │ │ ├── modules │ │ │ │ │ │ ├── decoders.md │ │ │ │ │ │ ├── encoders.md │ │ │ │ │ │ ├── sam.md │ │ │ │ │ │ ├── tiny_encoder.md │ │ │ │ │ │ └── transformer.md │ │ │ │ │ └── predict.md │ │ │ │ ├── utils │ │ │ │ │ ├── loss.md │ │ │ │ │ └── ops.md │ │ │ │ └── yolo │ │ │ │ │ ├── classify │ │ │ │ │ ├── predict.md │ │ │ │ │ ├── train.md │ │ │ │ │ └── val.md │ │ │ │ │ ├── detect │ │ │ │ │ ├── predict.md │ │ │ │ │ ├── train.md │ │ │ │ │ └── val.md │ │ │ │ │ ├── model.md │ │ │ │ │ ├── pose │ │ │ │ │ ├── predict.md │ │ │ │ │ ├── train.md │ │ │ │ │ └── val.md │ │ │ │ │ └── segment │ │ │ │ │ ├── predict.md │ │ │ │ │ ├── train.md │ │ │ │ │ └── val.md │ │ │ ├── nn │ │ │ │ ├── autobackend.md │ │ │ │ ├── modules │ │ │ │ │ ├── block.md │ │ │ │ │ ├── conv.md │ │ │ │ │ ├── head.md │ │ │ │ │ ├── transformer.md │ │ │ │ │ └── utils.md │ │ │ │ └── tasks.md │ │ │ ├── trackers │ │ │ │ ├── basetrack.md │ │ │ │ ├── bot_sort.md │ │ │ │ ├── byte_tracker.md │ │ │ │ ├── track.md │ │ │ │ └── utils │ │ │ │ │ ├── gmc.md │ │ │ │ │ ├── kalman_filter.md │ │ │ │ │ └── matching.md │ │ │ └── utils │ │ │ │ ├── __init__.md │ │ │ │ ├── autobatch.md │ │ │ │ ├── benchmarks.md │ │ │ │ ├── callbacks │ │ │ │ ├── base.md │ │ │ │ ├── clearml.md │ │ │ │ ├── comet.md │ │ │ │ ├── dvc.md │ │ │ │ ├── hub.md │ │ │ │ ├── mlflow.md │ │ │ │ ├── neptune.md │ │ │ │ ├── raytune.md │ │ │ │ ├── tensorboard.md │ │ │ │ └── wb.md │ │ │ │ ├── checks.md │ │ │ │ ├── dist.md │ │ │ │ ├── downloads.md │ │ │ │ ├── errors.md │ │ │ │ ├── files.md │ │ │ │ ├── instance.md │ │ │ │ ├── loss.md │ │ │ │ ├── metrics.md │ │ │ │ ├── ops.md │ │ │ │ ├── patches.md │ │ │ │ ├── plotting.md │ │ │ │ ├── tal.md │ │ │ │ ├── torch_utils.md │ │ │ │ └── tuner.md │ │ ├── robots.txt │ │ ├── stylesheets │ │ │ └── style.css │ │ ├── tasks │ │ │ ├── classify.md │ │ │ ├── detect.md │ │ │ ├── index.md │ │ │ ├── pose.md │ │ │ └── segment.md │ │ ├── usage │ │ │ ├── callbacks.md │ │ │ ├── cfg.md │ │ │ ├── cli.md │ │ │ ├── engine.md │ │ │ └── python.md │ │ └── yolov5 │ │ │ ├── environments │ │ │ ├── aws_quickstart_tutorial.md │ │ │ ├── azureml_quickstart_tutorial.md │ │ │ ├── docker_image_quickstart_tutorial.md │ │ │ └── google_cloud_quickstart_tutorial.md │ │ │ ├── index.md │ │ │ ├── quickstart_tutorial.md │ │ │ └── tutorials │ │ │ ├── architecture_description.md │ │ │ ├── clearml_logging_integration.md │ │ │ ├── comet_logging_integration.md │ │ │ ├── hyperparameter_evolution.md │ │ │ ├── model_ensembling.md │ │ │ ├── model_export.md │ │ │ ├── model_pruning_and_sparsity.md │ │ │ ├── multi_gpu_training.md │ │ │ ├── neural_magic_pruning_quantization.md │ │ │ ├── pytorch_hub_model_loading.md │ │ │ ├── roboflow_datasets_integration.md │ │ │ ├── running_on_jetson_nano.md │ │ │ ├── test_time_augmentation.md │ │ │ ├── tips_for_best_training_results.md │ │ │ ├── train_custom_data.md │ │ │ └── transfer_learning_with_frozen_layers.md │ │ ├── engine │ │ ├── __init__.py │ │ ├── exporter.py │ │ ├── model.py │ │ ├── predictor.py │ │ ├── results.py │ │ ├── trainer.py │ │ ├── tuner.py │ │ └── validator.py │ │ ├── examples │ │ ├── README.md │ │ ├── YOLOv8-CPP-Inference │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── inference.cpp │ │ │ ├── inference.h │ │ │ └── main.cpp │ │ ├── YOLOv8-ONNXRuntime-CPP │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── inference.cpp │ │ │ ├── inference.h │ │ │ └── main.cpp │ │ ├── YOLOv8-ONNXRuntime │ │ │ ├── README.md │ │ │ └── main.py │ │ ├── YOLOv8-OpenCV-ONNX-Python │ │ │ ├── README.md │ │ │ └── main.py │ │ ├── YOLOv8-SAHI-Inference-Video │ │ │ ├── readme.md │ │ │ └── yolov8_sahi.py │ │ ├── hub.ipynb │ │ └── tutorial.ipynb │ │ ├── hub │ │ ├── __init__.py │ │ ├── auth.py │ │ ├── session.py │ │ └── utils.py │ │ ├── mkdocs.yml │ │ ├── models │ │ ├── __init__.py │ │ ├── fastsam │ │ │ ├── __init__.py │ │ │ ├── model.py │ │ │ ├── predict.py │ │ │ ├── prompt.py │ │ │ ├── utils.py │ │ │ └── val.py │ │ ├── nas │ │ │ ├── __init__.py │ │ │ ├── model.py │ │ │ ├── predict.py │ │ │ └── val.py │ │ ├── rtdetr │ │ │ ├── __init__.py │ │ │ ├── model.py │ │ │ ├── predict.py │ │ │ ├── train.py │ │ │ └── val.py │ │ ├── sam │ │ │ ├── __init__.py │ │ │ ├── amg.py │ │ │ ├── build.py │ │ │ ├── model.py │ │ │ ├── modules │ │ │ │ ├── __init__.py │ │ │ │ ├── decoders.py │ │ │ │ ├── encoders.py │ │ │ │ ├── sam.py │ │ │ │ ├── tiny_encoder.py │ │ │ │ └── transformer.py │ │ │ └── predict.py │ │ ├── utils │ │ │ ├── __init__.py │ │ │ ├── loss.py │ │ │ └── ops.py │ │ └── yolo │ │ │ ├── __init__.py │ │ │ ├── classify │ │ │ ├── __init__.py │ │ │ ├── predict.py │ │ │ ├── train.py │ │ │ └── val.py │ │ │ ├── detect │ │ │ ├── __init__.py │ │ │ ├── predict.py │ │ │ ├── train.py │ │ │ └── val.py │ │ │ ├── model.py │ │ │ ├── pose │ │ │ ├── __init__.py │ │ │ ├── corner_skeleton.yaml │ │ │ ├── keypoint_detector.py │ │ │ ├── leaf_skeleton.yaml │ │ │ ├── leaf_skeleton_WK.yaml │ │ │ ├── leaf_skeleton_WK_uniform.yaml │ │ │ ├── leaf_skeleton_WK_uniform_oriented.yaml │ │ │ ├── leaf_skeleton_WK_uniform_oriented_mid15_pet5.yaml │ │ │ ├── leaf_skeleton_WK_uniform_oriented_traces.yaml │ │ │ ├── leaf_skeleton_WK_uniform_oriented_traces_mid15_pet5.yaml │ │ │ ├── predict.py │ │ │ ├── predict_corners.py │ │ │ ├── predict_corners_2.py │ │ │ ├── predict_direct.py │ │ │ ├── train (ubuntu22's conflicted copy 2023-09-16).py │ │ │ ├── train (ubuntu22's conflicted copy 2023-09-17).py │ │ │ ├── train (ubuntu22's conflicted copy 2023-09-19 1).py │ │ │ ├── train (ubuntu22's conflicted copy 2023-09-19).py │ │ │ ├── train (ubuntu22's conflicted copy 2023-11-27).py │ │ │ ├── train copy.py │ │ │ ├── train.py │ │ │ ├── train_corner_detector.py │ │ │ ├── val (ubuntu22's conflicted copy 2023-11-27).py │ │ │ └── val.py │ │ │ └── segment │ │ │ ├── __init__.py │ │ │ ├── predict.py │ │ │ ├── train.py │ │ │ └── val.py │ │ ├── nn │ │ ├── __init__.py │ │ ├── autobackend.py │ │ ├── modules │ │ │ ├── __init__.py │ │ │ ├── block.py │ │ │ ├── conv.py │ │ │ ├── head.py │ │ │ ├── transformer.py │ │ │ └── utils.py │ │ └── tasks.py │ │ ├── requirements.txt │ │ ├── setup.cfg │ │ ├── setup.py │ │ ├── trackers │ │ ├── README.md │ │ ├── __init__.py │ │ ├── basetrack.py │ │ ├── bot_sort.py │ │ ├── byte_tracker.py │ │ ├── track.py │ │ └── utils │ │ │ ├── __init__.py │ │ │ ├── gmc.py │ │ │ ├── kalman_filter.py │ │ │ └── matching.py │ │ ├── utils │ │ ├── __init__.py │ │ ├── autobatch.py │ │ ├── benchmarks.py │ │ ├── callbacks │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── clearml.py │ │ │ ├── comet.py │ │ │ ├── dvc.py │ │ │ ├── hub.py │ │ │ ├── mlflow.py │ │ │ ├── neptune.py │ │ │ ├── raytune.py │ │ │ ├── tensorboard.py │ │ │ └── wb.py │ │ ├── checks.py │ │ ├── dist.py │ │ ├── downloads.py │ │ ├── errors.py │ │ ├── files.py │ │ ├── instance.py │ │ ├── loss (ubuntu22's conflicted copy 2023-11-27).py │ │ ├── loss.py │ │ ├── metrics.py │ │ ├── ops.py │ │ ├── patches.py │ │ ├── plotting.py │ │ ├── tal.py │ │ ├── torch_utils.py │ │ └── tuner.py │ │ └── yolo │ │ ├── __init__.py │ │ ├── cfg │ │ └── __init__.py │ │ ├── data │ │ └── __init__.py │ │ ├── engine │ │ └── __init__.py │ │ ├── utils │ │ └── __init__.py │ │ └── v8 │ │ └── __init__.py ├── labeling │ ├── __init__.py │ ├── add_MAL_to_Labelbox.py │ ├── add_dataset_to_Labelbox.py │ ├── add_project_to_Labelbox.py │ ├── config_Labelbox_ontology_list.yaml │ ├── config_add_MAL_to_Labelbox.yaml │ ├── config_add_dataset_to_Labelbox.yaml │ ├── config_add_project_to_Labelbox.yaml │ ├── config_delete_from_Labelbox.yaml │ ├── config_export_bbox_labels_from_Labelbox.yaml │ ├── config_export_corners_as_segmentation_labels_from_Labelbox.yaml │ ├── config_export_keypoints_corners_labels_from_Labelbox.yaml │ ├── config_export_phase1_polygon_labels_from_Labelbox.yaml │ ├── config_export_points_labels_from_Labelbox.yaml │ ├── config_export_ruler_points_labels_from_Labelbox.yaml │ ├── config_export_segmentation_labels_from_Labelbox (DESKTOP-548UDCR's conflicted copy 2024-06-15).yaml │ ├── config_export_segmentation_labels_from_Labelbox.yaml │ ├── config_run_object_detection_for_MAL.yaml │ ├── delete_Labelbox_project_or_dataset.py │ ├── export_bbox_labels_from_Labelbox.py │ ├── export_corners_as_segmentation_labels_from_Labelbox.py │ ├── export_keypoints_corners_labels_from_Labelbox.py │ ├── export_keypoints_labels_from_Labelbox.py │ ├── export_phase1_polygon_labels_from_Labelbox.py │ ├── export_points_labels_from_Labelbox.py │ ├── export_ruler_points_labels_from_Labelbox.py │ ├── export_segmentation_labels_from_Labelbox.py │ ├── extract_labelsnap_images.py │ ├── fix_json_labelID.py │ ├── modify_bbox_labels_to_ignore_specimen8.py │ ├── run_object_detection_for_MAL.py │ ├── utils_Labelbox.py │ └── utils_images.py ├── landmarks │ ├── __init__.py │ ├── __main__.py │ ├── argparser.py │ ├── bmm.py │ ├── checkpoint_to_scripted.py │ ├── checkpoints │ │ └── .gitignore │ ├── comm.py │ ├── data.py │ ├── data_plant_stuff.py │ ├── detect.py │ ├── find_lr.py │ ├── get_image_size.py │ ├── launch_landmarks.py │ ├── locate.py │ ├── logger.py │ ├── losses.py │ ├── make_metric_plots.py │ ├── merge_landmark_files_into_one.py │ ├── metrics.py │ ├── metrics_from_results.py │ ├── models │ │ ├── __init__.py │ │ ├── unet_model.py │ │ ├── unet_parts.py │ │ └── utils.py │ ├── paint.py │ ├── test.py │ ├── train.py │ └── utils.py ├── machine │ ├── DEP__vouchervision_editor.py │ ├── DocEnTR │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── cog.yaml │ │ ├── config.py │ │ ├── demo.ipynb │ │ ├── loadData2.py │ │ ├── models │ │ │ ├── __init__.py │ │ │ └── binae.py │ │ ├── predict.py │ │ ├── process_dibco.py │ │ ├── requirements.txt │ │ ├── test.py │ │ ├── train.py │ │ └── utils.py │ ├── LM2_logger.py │ ├── LeafMachine2_Config_Builder.py │ ├── LeafMachine2_GUI.py │ ├── __init__.py │ ├── binarize_image_ML.py │ ├── build_custom_overlay.py │ ├── build_custom_overlay_OG.py │ ├── build_custom_overlay_VV.py │ ├── comm.py │ ├── config.py │ ├── conversions.py │ ├── convert_rulers.py │ ├── count_unique_species.py │ ├── create_binary_ruler_training_images.py │ ├── create_combined_occ_img_file_with_filters.py │ ├── data_image.py │ ├── data_project.py │ ├── data_project_sql.py │ ├── directory_structure.py │ ├── directory_structure_P.py │ ├── directory_structure_R.py │ ├── directory_structure_SC.py │ ├── directory_structure_VV.py │ ├── download_GBIF_from_user_file.py │ ├── fetch_data.py │ ├── general_utils.py │ ├── handle_images.py │ ├── img │ │ └── icon_VV.ico │ ├── launch_ruler.py │ ├── machine.py │ ├── machine_censor_components.py │ ├── machine_detect_phenology.py │ ├── machine_fast.py │ ├── machine_specimencrop.py │ ├── make_dir_horizontal.py │ ├── prepare_ruler_binary_data.py │ ├── query_local_GBIF_family_occurence_files.py │ ├── ruler.py │ ├── ruler_process.py │ ├── ruler_testing.py │ ├── save_data.py │ ├── save_data_LEGACY.py │ ├── squarify_imgs_in_dir.py │ ├── train_ruler_binarization_classifier.py │ ├── train_ruler_classifier.py │ ├── utils_GBIF.py │ ├── utils_castilleja.py │ ├── utils_censor_components.py │ ├── utils_detect_phenology.py │ ├── utils_ruler.py │ ├── utils_ruler_BACKUP.py │ ├── utils_ruler_BACKUP2.py │ ├── utils_ruler_WITH_OLD_CV_BOARD.py │ ├── utils_voucher_vision.py │ ├── visualize_EFDs.py │ ├── visualize_measurements.py │ └── visualize_simple_labels.py └── segmentation │ ├── detectron2 │ ├── .circleci │ │ ├── config.yml │ │ └── import-tests.sh │ ├── .clang-format │ ├── .flake8 │ ├── .gitignore │ ├── BACKUP-before-cleaning-up-efds_segment_leaves.py │ ├── LICENSE │ ├── __init__.py │ ├── configs │ │ ├── Base-RCNN-C4.yaml │ │ ├── Base-RCNN-DilatedC5.yaml │ │ ├── Base-RCNN-FPN.yaml │ │ ├── Base-RetinaNet.yaml │ │ ├── COCO-Detection │ │ │ ├── fast_rcnn_R_50_FPN_1x.yaml │ │ │ ├── faster_rcnn_R_101_C4_3x.yaml │ │ │ ├── faster_rcnn_R_101_DC5_3x.yaml │ │ │ ├── faster_rcnn_R_101_FPN_3x.yaml │ │ │ ├── faster_rcnn_R_50_C4_1x.yaml │ │ │ ├── faster_rcnn_R_50_C4_3x.yaml │ │ │ ├── faster_rcnn_R_50_DC5_1x.yaml │ │ │ ├── faster_rcnn_R_50_DC5_3x.yaml │ │ │ ├── faster_rcnn_R_50_FPN_1x.yaml │ │ │ ├── faster_rcnn_R_50_FPN_3x.yaml │ │ │ ├── faster_rcnn_X_101_32x8d_FPN_3x.yaml │ │ │ ├── fcos_R_50_FPN_1x.py │ │ │ ├── retinanet_R_101_FPN_3x.yaml │ │ │ ├── retinanet_R_50_FPN_1x.py │ │ │ ├── retinanet_R_50_FPN_1x.yaml │ │ │ ├── retinanet_R_50_FPN_3x.yaml │ │ │ ├── rpn_R_50_C4_1x.yaml │ │ │ └── rpn_R_50_FPN_1x.yaml │ │ ├── COCO-InstanceSegmentation │ │ │ ├── mask_rcnn_R_101_C4_3x.yaml │ │ │ ├── mask_rcnn_R_101_DC5_3x.yaml │ │ │ ├── mask_rcnn_R_101_FPN_3x.yaml │ │ │ ├── mask_rcnn_R_50_C4_1x.py │ │ │ ├── mask_rcnn_R_50_C4_1x.yaml │ │ │ ├── mask_rcnn_R_50_C4_3x.yaml │ │ │ ├── mask_rcnn_R_50_DC5_1x.yaml │ │ │ ├── mask_rcnn_R_50_DC5_3x.yaml │ │ │ ├── mask_rcnn_R_50_FPN_1x.py │ │ │ ├── mask_rcnn_R_50_FPN_1x.yaml │ │ │ ├── mask_rcnn_R_50_FPN_1x_giou.yaml │ │ │ ├── mask_rcnn_R_50_FPN_3x.yaml │ │ │ ├── mask_rcnn_X_101_32x8d_FPN_3x.yaml │ │ │ ├── mask_rcnn_regnetx_4gf_dds_fpn_1x.py │ │ │ └── mask_rcnn_regnety_4gf_dds_fpn_1x.py │ │ ├── COCO-Keypoints │ │ │ ├── Base-Keypoint-RCNN-FPN.yaml │ │ │ ├── keypoint_rcnn_R_101_FPN_3x.yaml │ │ │ ├── keypoint_rcnn_R_50_FPN_1x.py │ │ │ ├── keypoint_rcnn_R_50_FPN_1x.yaml │ │ │ ├── keypoint_rcnn_R_50_FPN_3x.yaml │ │ │ └── keypoint_rcnn_X_101_32x8d_FPN_3x.yaml │ │ ├── COCO-PanopticSegmentation │ │ │ ├── Base-Panoptic-FPN.yaml │ │ │ ├── panoptic_fpn_R_101_3x.yaml │ │ │ ├── panoptic_fpn_R_50_1x.py │ │ │ ├── panoptic_fpn_R_50_1x.yaml │ │ │ └── panoptic_fpn_R_50_3x.yaml │ │ ├── Cityscapes │ │ │ └── mask_rcnn_R_50_FPN.yaml │ │ ├── Detectron1-Comparisons │ │ │ ├── README.md │ │ │ ├── faster_rcnn_R_50_FPN_noaug_1x.yaml │ │ │ ├── keypoint_rcnn_R_50_FPN_1x.yaml │ │ │ └── mask_rcnn_R_50_FPN_noaug_1x.yaml │ │ ├── LVISv0.5-InstanceSegmentation │ │ │ ├── mask_rcnn_R_101_FPN_1x.yaml │ │ │ ├── mask_rcnn_R_50_FPN_1x.yaml │ │ │ └── mask_rcnn_X_101_32x8d_FPN_1x.yaml │ │ ├── LVISv1-InstanceSegmentation │ │ │ ├── mask_rcnn_R_101_FPN_1x.yaml │ │ │ ├── mask_rcnn_R_50_FPN_1x.yaml │ │ │ └── mask_rcnn_X_101_32x8d_FPN_1x.yaml │ │ ├── Misc │ │ │ ├── cascade_mask_rcnn_R_50_FPN_1x.yaml │ │ │ ├── cascade_mask_rcnn_R_50_FPN_3x.yaml │ │ │ ├── cascade_mask_rcnn_X_152_32x8d_FPN_IN5k_gn_dconv.yaml │ │ │ ├── mask_rcnn_R_50_FPN_1x_cls_agnostic.yaml │ │ │ ├── mask_rcnn_R_50_FPN_1x_dconv_c3-c5.yaml │ │ │ ├── mask_rcnn_R_50_FPN_3x_dconv_c3-c5.yaml │ │ │ ├── mask_rcnn_R_50_FPN_3x_gn.yaml │ │ │ ├── mask_rcnn_R_50_FPN_3x_syncbn.yaml │ │ │ ├── mmdet_mask_rcnn_R_50_FPN_1x.py │ │ │ ├── panoptic_fpn_R_101_dconv_cascade_gn_3x.yaml │ │ │ ├── scratch_mask_rcnn_R_50_FPN_3x_gn.yaml │ │ │ ├── scratch_mask_rcnn_R_50_FPN_9x_gn.yaml │ │ │ ├── scratch_mask_rcnn_R_50_FPN_9x_syncbn.yaml │ │ │ ├── semantic_R_50_FPN_1x.yaml │ │ │ └── torchvision_imagenet_R_50.py │ │ ├── PascalVOC-Detection │ │ │ ├── faster_rcnn_R_50_C4.yaml │ │ │ └── faster_rcnn_R_50_FPN.yaml │ │ ├── common │ │ │ ├── README.md │ │ │ ├── coco_schedule.py │ │ │ ├── data │ │ │ │ ├── coco.py │ │ │ │ ├── coco_keypoint.py │ │ │ │ ├── coco_panoptic_separated.py │ │ │ │ └── constants.py │ │ │ ├── models │ │ │ │ ├── cascade_rcnn.py │ │ │ │ ├── fcos.py │ │ │ │ ├── keypoint_rcnn_fpn.py │ │ │ │ ├── mask_rcnn_c4.py │ │ │ │ ├── mask_rcnn_fpn.py │ │ │ │ ├── mask_rcnn_vitdet.py │ │ │ │ ├── panoptic_fpn.py │ │ │ │ └── retinanet.py │ │ │ ├── optim.py │ │ │ └── train.py │ │ ├── new_baselines │ │ │ ├── mask_rcnn_R_101_FPN_100ep_LSJ.py │ │ │ ├── mask_rcnn_R_101_FPN_200ep_LSJ.py │ │ │ ├── mask_rcnn_R_101_FPN_400ep_LSJ.py │ │ │ ├── mask_rcnn_R_50_FPN_100ep_LSJ.py │ │ │ ├── mask_rcnn_R_50_FPN_200ep_LSJ.py │ │ │ ├── mask_rcnn_R_50_FPN_400ep_LSJ.py │ │ │ ├── mask_rcnn_R_50_FPN_50ep_LSJ.py │ │ │ ├── mask_rcnn_regnetx_4gf_dds_FPN_100ep_LSJ.py │ │ │ ├── mask_rcnn_regnetx_4gf_dds_FPN_200ep_LSJ.py │ │ │ ├── mask_rcnn_regnetx_4gf_dds_FPN_400ep_LSJ.py │ │ │ ├── mask_rcnn_regnety_4gf_dds_FPN_100ep_LSJ.py │ │ │ ├── mask_rcnn_regnety_4gf_dds_FPN_200ep_LSJ.py │ │ │ └── mask_rcnn_regnety_4gf_dds_FPN_400ep_LSJ.py │ │ └── quick_schedules │ │ │ ├── README.md │ │ │ ├── cascade_mask_rcnn_R_50_FPN_inference_acc_test.yaml │ │ │ ├── cascade_mask_rcnn_R_50_FPN_instant_test.yaml │ │ │ ├── fast_rcnn_R_50_FPN_inference_acc_test.yaml │ │ │ ├── fast_rcnn_R_50_FPN_instant_test.yaml │ │ │ ├── keypoint_rcnn_R_50_FPN_inference_acc_test.yaml │ │ │ ├── keypoint_rcnn_R_50_FPN_instant_test.yaml │ │ │ ├── keypoint_rcnn_R_50_FPN_normalized_training_acc_test.yaml │ │ │ ├── keypoint_rcnn_R_50_FPN_training_acc_test.yaml │ │ │ ├── mask_rcnn_R_50_C4_GCV_instant_test.yaml │ │ │ ├── mask_rcnn_R_50_C4_inference_acc_test.yaml │ │ │ ├── mask_rcnn_R_50_C4_instant_test.yaml │ │ │ ├── mask_rcnn_R_50_C4_training_acc_test.yaml │ │ │ ├── mask_rcnn_R_50_DC5_inference_acc_test.yaml │ │ │ ├── mask_rcnn_R_50_FPN_inference_acc_test.yaml │ │ │ ├── mask_rcnn_R_50_FPN_instant_test.yaml │ │ │ ├── mask_rcnn_R_50_FPN_pred_boxes_training_acc_test.yaml │ │ │ ├── mask_rcnn_R_50_FPN_training_acc_test.yaml │ │ │ ├── panoptic_fpn_R_50_inference_acc_test.yaml │ │ │ ├── panoptic_fpn_R_50_instant_test.yaml │ │ │ ├── panoptic_fpn_R_50_training_acc_test.yaml │ │ │ ├── retinanet_R_50_FPN_inference_acc_test.yaml │ │ │ ├── retinanet_R_50_FPN_instant_test.yaml │ │ │ ├── rpn_R_50_FPN_inference_acc_test.yaml │ │ │ ├── rpn_R_50_FPN_instant_test.yaml │ │ │ ├── semantic_R_50_FPN_inference_acc_test.yaml │ │ │ ├── semantic_R_50_FPN_instant_test.yaml │ │ │ └── semantic_R_50_FPN_training_acc_test.yaml │ ├── datasets │ │ ├── README.md │ │ ├── prepare_ade20k_sem_seg.py │ │ ├── prepare_cocofied_lvis.py │ │ ├── prepare_for_tests.sh │ │ └── prepare_panoptic_fpn.py │ ├── demo │ │ ├── README.md │ │ ├── demo.py │ │ └── predictor.py │ ├── detector.py │ ├── detectron2 │ │ ├── __init__.py │ │ ├── checkpoint │ │ │ ├── __init__.py │ │ │ ├── c2_model_loading.py │ │ │ ├── catalog.py │ │ │ └── detection_checkpoint.py │ │ ├── config │ │ │ ├── __init__.py │ │ │ ├── compat.py │ │ │ ├── config.py │ │ │ ├── defaults.py │ │ │ ├── instantiate.py │ │ │ └── lazy.py │ │ ├── data │ │ │ ├── __init__.py │ │ │ ├── benchmark.py │ │ │ ├── build.py │ │ │ ├── catalog.py │ │ │ ├── common.py │ │ │ ├── dataset_mapper.py │ │ │ ├── datasets │ │ │ │ ├── README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── builtin.py │ │ │ │ ├── builtin_meta.py │ │ │ │ ├── cityscapes.py │ │ │ │ ├── cityscapes_panoptic.py │ │ │ │ ├── coco.py │ │ │ │ ├── coco_panoptic.py │ │ │ │ ├── lvis.py │ │ │ │ ├── lvis_v0_5_categories.py │ │ │ │ ├── lvis_v1_categories.py │ │ │ │ ├── lvis_v1_category_image_count.py │ │ │ │ ├── pascal_voc.py │ │ │ │ └── register_coco.py │ │ │ ├── detection_utils.py │ │ │ ├── samplers │ │ │ │ ├── __init__.py │ │ │ │ ├── distributed_sampler.py │ │ │ │ └── grouped_batch_sampler.py │ │ │ └── transforms │ │ │ │ ├── __init__.py │ │ │ │ ├── augmentation.py │ │ │ │ ├── augmentation_impl.py │ │ │ │ └── transform.py │ │ ├── engine │ │ │ ├── __init__.py │ │ │ ├── defaults.py │ │ │ ├── hooks.py │ │ │ ├── launch.py │ │ │ └── train_loop.py │ │ ├── evaluation │ │ │ ├── __init__.py │ │ │ ├── cityscapes_evaluation.py │ │ │ ├── coco_evaluation.py │ │ │ ├── evaluator.py │ │ │ ├── fast_eval_api.py │ │ │ ├── lvis_evaluation.py │ │ │ ├── panoptic_evaluation.py │ │ │ ├── pascal_voc_evaluation.py │ │ │ ├── rotated_coco_evaluation.py │ │ │ ├── sem_seg_evaluation.py │ │ │ └── testing.py │ │ ├── export │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── api.py │ │ │ ├── c10.py │ │ │ ├── caffe2_export.py │ │ │ ├── caffe2_inference.py │ │ │ ├── caffe2_modeling.py │ │ │ ├── caffe2_patch.py │ │ │ ├── flatten.py │ │ │ ├── shared.py │ │ │ ├── torchscript.py │ │ │ └── torchscript_patch.py │ │ ├── layers │ │ │ ├── __init__.py │ │ │ ├── aspp.py │ │ │ ├── batch_norm.py │ │ │ ├── blocks.py │ │ │ ├── csrc │ │ │ │ ├── README.md │ │ │ │ ├── ROIAlignRotated │ │ │ │ │ ├── ROIAlignRotated.h │ │ │ │ │ ├── ROIAlignRotated_cpu.cpp │ │ │ │ │ └── ROIAlignRotated_cuda.cu │ │ │ │ ├── box_iou_rotated │ │ │ │ │ ├── box_iou_rotated.h │ │ │ │ │ ├── box_iou_rotated_cpu.cpp │ │ │ │ │ ├── box_iou_rotated_cuda.cu │ │ │ │ │ └── box_iou_rotated_utils.h │ │ │ │ ├── cocoeval │ │ │ │ │ ├── cocoeval.cpp │ │ │ │ │ └── cocoeval.h │ │ │ │ ├── cuda_version.cu │ │ │ │ ├── deformable │ │ │ │ │ ├── deform_conv.h │ │ │ │ │ ├── deform_conv_cuda.cu │ │ │ │ │ └── deform_conv_cuda_kernel.cu │ │ │ │ ├── nms_rotated │ │ │ │ │ ├── nms_rotated.h │ │ │ │ │ ├── nms_rotated_cpu.cpp │ │ │ │ │ └── nms_rotated_cuda.cu │ │ │ │ └── vision.cpp │ │ │ ├── deform_conv.py │ │ │ ├── losses.py │ │ │ ├── mask_ops.py │ │ │ ├── nms.py │ │ │ ├── roi_align.py │ │ │ ├── roi_align_rotated.py │ │ │ ├── rotated_boxes.py │ │ │ ├── shape_spec.py │ │ │ └── wrappers.py │ │ ├── model_zoo │ │ │ ├── __init__.py │ │ │ └── model_zoo.py │ │ ├── modeling │ │ │ ├── __init__.py │ │ │ ├── anchor_generator.py │ │ │ ├── backbone │ │ │ │ ├── __init__.py │ │ │ │ ├── backbone.py │ │ │ │ ├── build.py │ │ │ │ ├── fpn.py │ │ │ │ ├── mvit.py │ │ │ │ ├── regnet.py │ │ │ │ ├── resnet.py │ │ │ │ ├── swin.py │ │ │ │ ├── utils.py │ │ │ │ └── vit.py │ │ │ ├── box_regression.py │ │ │ ├── matcher.py │ │ │ ├── meta_arch │ │ │ │ ├── __init__.py │ │ │ │ ├── build.py │ │ │ │ ├── dense_detector.py │ │ │ │ ├── fcos.py │ │ │ │ ├── panoptic_fpn.py │ │ │ │ ├── rcnn.py │ │ │ │ ├── retinanet.py │ │ │ │ └── semantic_seg.py │ │ │ ├── mmdet_wrapper.py │ │ │ ├── poolers.py │ │ │ ├── postprocessing.py │ │ │ ├── proposal_generator │ │ │ │ ├── __init__.py │ │ │ │ ├── build.py │ │ │ │ ├── proposal_utils.py │ │ │ │ ├── rpn.py │ │ │ │ └── rrpn.py │ │ │ ├── roi_heads │ │ │ │ ├── __init__.py │ │ │ │ ├── box_head.py │ │ │ │ ├── cascade_rcnn.py │ │ │ │ ├── fast_rcnn.py │ │ │ │ ├── keypoint_head.py │ │ │ │ ├── mask_head.py │ │ │ │ ├── roi_heads.py │ │ │ │ └── rotated_fast_rcnn.py │ │ │ ├── sampling.py │ │ │ └── test_time_augmentation.py │ │ ├── projects │ │ │ ├── README.md │ │ │ └── __init__.py │ │ ├── solver │ │ │ ├── __init__.py │ │ │ ├── build.py │ │ │ └── lr_scheduler.py │ │ ├── structures │ │ │ ├── __init__.py │ │ │ ├── boxes.py │ │ │ ├── image_list.py │ │ │ ├── instances.py │ │ │ ├── keypoints.py │ │ │ ├── masks.py │ │ │ └── rotated_boxes.py │ │ ├── tracking │ │ │ ├── __init__.py │ │ │ ├── base_tracker.py │ │ │ ├── bbox_iou_tracker.py │ │ │ ├── hungarian_tracker.py │ │ │ ├── iou_weighted_hungarian_bbox_iou_tracker.py │ │ │ ├── utils.py │ │ │ └── vanilla_hungarian_bbox_iou_tracker.py │ │ └── utils │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── analysis.py │ │ │ ├── collect_env.py │ │ │ ├── colormap.py │ │ │ ├── comm.py │ │ │ ├── develop.py │ │ │ ├── env.py │ │ │ ├── events.py │ │ │ ├── file_io.py │ │ │ ├── logger.py │ │ │ ├── memory.py │ │ │ ├── registry.py │ │ │ ├── serialize.py │ │ │ ├── testing.py │ │ │ ├── tracing.py │ │ │ ├── video_visualizer.py │ │ │ └── visualizer.py │ ├── dev │ │ ├── README.md │ │ ├── linter.sh │ │ ├── packaging │ │ │ ├── README.md │ │ │ ├── build_all_wheels.sh │ │ │ ├── build_wheel.sh │ │ │ ├── gen_install_table.py │ │ │ ├── gen_wheel_index.sh │ │ │ └── pkg_helpers.bash │ │ ├── parse_results.sh │ │ ├── run_inference_tests.sh │ │ └── run_instant_tests.sh │ ├── docker │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── deploy.Dockerfile │ │ └── docker-compose.yml │ ├── docs │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── _static │ │ │ └── css │ │ │ │ └── custom.css │ │ ├── conf.py │ │ ├── index.rst │ │ ├── modules │ │ │ ├── checkpoint.rst │ │ │ ├── config.rst │ │ │ ├── data.rst │ │ │ ├── data_transforms.rst │ │ │ ├── engine.rst │ │ │ ├── evaluation.rst │ │ │ ├── export.rst │ │ │ ├── fvcore.rst │ │ │ ├── index.rst │ │ │ ├── layers.rst │ │ │ ├── model_zoo.rst │ │ │ ├── modeling.rst │ │ │ ├── solver.rst │ │ │ ├── structures.rst │ │ │ └── utils.rst │ │ ├── notes │ │ │ ├── benchmarks.md │ │ │ ├── changelog.md │ │ │ ├── compatibility.md │ │ │ ├── contributing.md │ │ │ └── index.rst │ │ ├── requirements.txt │ │ └── tutorials │ │ │ ├── README.md │ │ │ ├── augmentation.md │ │ │ ├── builtin_datasets.md │ │ │ ├── configs.md │ │ │ ├── data_loading.md │ │ │ ├── datasets.md │ │ │ ├── deployment.md │ │ │ ├── evaluation.md │ │ │ ├── extend.md │ │ │ ├── getting_started.md │ │ │ ├── index.rst │ │ │ ├── install.md │ │ │ ├── lazyconfigs.md │ │ │ ├── models.md │ │ │ ├── training.md │ │ │ └── write-models.md │ ├── evaluate_segmentation_to_pdf.py │ ├── fix_non_unique_polygon_ids.py │ ├── launch_landmarks.py │ ├── launch_leaf.py │ ├── leaf_config.py │ ├── leaf_config_pr.py │ ├── measure_leaf_segmentation (brlab-quardo's conflicted copy 2023-02-07).py │ ├── measure_leaf_segmentation.py │ ├── predictor_leaf.py │ ├── projects │ │ ├── DeepLab │ │ │ ├── README.md │ │ │ ├── configs │ │ │ │ └── Cityscapes-SemanticSegmentation │ │ │ │ │ ├── Base-DeepLabV3-OS16-Semantic.yaml │ │ │ │ │ ├── deeplab_v3_R_103_os16_mg124_poly_90k_bs16.yaml │ │ │ │ │ └── deeplab_v3_plus_R_103_os16_mg124_poly_90k_bs16.yaml │ │ │ ├── deeplab │ │ │ │ ├── __init__.py │ │ │ │ ├── build_solver.py │ │ │ │ ├── config.py │ │ │ │ ├── loss.py │ │ │ │ ├── lr_scheduler.py │ │ │ │ ├── resnet.py │ │ │ │ └── semantic_seg.py │ │ │ └── train_net.py │ │ ├── DensePose │ │ │ ├── README.md │ │ │ ├── apply_net.py │ │ │ ├── configs │ │ │ │ ├── Base-DensePose-RCNN-FPN.yaml │ │ │ │ ├── HRNet │ │ │ │ │ ├── densepose_rcnn_HRFPN_HRNet_w32_s1x.yaml │ │ │ │ │ ├── densepose_rcnn_HRFPN_HRNet_w40_s1x.yaml │ │ │ │ │ └── densepose_rcnn_HRFPN_HRNet_w48_s1x.yaml │ │ │ │ ├── cse │ │ │ │ │ ├── Base-DensePose-RCNN-FPN-Human.yaml │ │ │ │ │ ├── Base-DensePose-RCNN-FPN.yaml │ │ │ │ │ ├── densepose_rcnn_R_101_FPN_DL_s1x.yaml │ │ │ │ │ ├── densepose_rcnn_R_101_FPN_DL_soft_s1x.yaml │ │ │ │ │ ├── densepose_rcnn_R_101_FPN_s1x.yaml │ │ │ │ │ ├── densepose_rcnn_R_101_FPN_soft_s1x.yaml │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_DL_s1x.yaml │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_DL_soft_s1x.yaml │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_s1x.yaml │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_soft_animals_CA_finetune_16k.yaml │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_soft_animals_CA_finetune_4k.yaml │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_soft_animals_I0_finetune_16k.yaml │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_soft_animals_I0_finetune_i2m_16k.yaml │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_soft_animals_I0_finetune_m2m_16k.yaml │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_soft_animals_finetune_16k.yaml │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_soft_animals_finetune_4k.yaml │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_soft_animals_finetune_maskonly_24k.yaml │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_soft_chimps_finetune_4k.yaml │ │ │ │ │ └── densepose_rcnn_R_50_FPN_soft_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_101_FPN_DL_WC1M_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_101_FPN_DL_WC1_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_101_FPN_DL_WC2M_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_101_FPN_DL_WC2_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_101_FPN_DL_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_101_FPN_WC1M_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_101_FPN_WC1_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_101_FPN_WC2M_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_101_FPN_WC2_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_101_FPN_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_101_FPN_s1x_legacy.yaml │ │ │ │ ├── densepose_rcnn_R_50_FPN_DL_WC1M_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_50_FPN_DL_WC1_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_50_FPN_DL_WC2M_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_50_FPN_DL_WC2_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_50_FPN_DL_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_50_FPN_WC1M_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_50_FPN_WC1_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_50_FPN_WC2M_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_50_FPN_WC2_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_50_FPN_s1x.yaml │ │ │ │ ├── densepose_rcnn_R_50_FPN_s1x_legacy.yaml │ │ │ │ ├── evolution │ │ │ │ │ ├── Base-RCNN-FPN-Atop10P_CA.yaml │ │ │ │ │ ├── densepose_R_50_FPN_DL_WC1M_3x_Atop10P_CA.yaml │ │ │ │ │ ├── densepose_R_50_FPN_DL_WC1M_3x_Atop10P_CA_B_coarsesegm.yaml │ │ │ │ │ ├── densepose_R_50_FPN_DL_WC1M_3x_Atop10P_CA_B_finesegm.yaml │ │ │ │ │ ├── densepose_R_50_FPN_DL_WC1M_3x_Atop10P_CA_B_uniform.yaml │ │ │ │ │ └── densepose_R_50_FPN_DL_WC1M_3x_Atop10P_CA_B_uv.yaml │ │ │ │ └── quick_schedules │ │ │ │ │ ├── cse │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_DL_instant_test.yaml │ │ │ │ │ └── densepose_rcnn_R_50_FPN_soft_animals_finetune_instant_test.yaml │ │ │ │ │ ├── densepose_rcnn_HRFPN_HRNet_w32_instant_test.yaml │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_DL_instant_test.yaml │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_TTA_inference_acc_test.yaml │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_WC1_instant_test.yaml │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_WC2_instant_test.yaml │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_inference_acc_test.yaml │ │ │ │ │ ├── densepose_rcnn_R_50_FPN_instant_test.yaml │ │ │ │ │ └── densepose_rcnn_R_50_FPN_training_acc_test.yaml │ │ │ ├── densepose │ │ │ │ ├── __init__.py │ │ │ │ ├── config.py │ │ │ │ ├── converters │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── builtin.py │ │ │ │ │ ├── chart_output_hflip.py │ │ │ │ │ ├── chart_output_to_chart_result.py │ │ │ │ │ ├── hflip.py │ │ │ │ │ ├── segm_to_mask.py │ │ │ │ │ ├── to_chart_result.py │ │ │ │ │ └── to_mask.py │ │ │ │ ├── data │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── build.py │ │ │ │ │ ├── combined_loader.py │ │ │ │ │ ├── dataset_mapper.py │ │ │ │ │ ├── datasets │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── builtin.py │ │ │ │ │ │ ├── chimpnsee.py │ │ │ │ │ │ ├── coco.py │ │ │ │ │ │ ├── dataset_type.py │ │ │ │ │ │ └── lvis.py │ │ │ │ │ ├── image_list_dataset.py │ │ │ │ │ ├── inference_based_loader.py │ │ │ │ │ ├── meshes │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── builtin.py │ │ │ │ │ │ └── catalog.py │ │ │ │ │ ├── samplers │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── densepose_base.py │ │ │ │ │ │ ├── densepose_confidence_based.py │ │ │ │ │ │ ├── densepose_cse_base.py │ │ │ │ │ │ ├── densepose_cse_confidence_based.py │ │ │ │ │ │ ├── densepose_cse_uniform.py │ │ │ │ │ │ ├── densepose_uniform.py │ │ │ │ │ │ ├── mask_from_densepose.py │ │ │ │ │ │ └── prediction_to_gt.py │ │ │ │ │ ├── transform │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── image.py │ │ │ │ │ ├── utils.py │ │ │ │ │ └── video │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── frame_selector.py │ │ │ │ │ │ └── video_keyframe_dataset.py │ │ │ │ ├── engine │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── trainer.py │ │ │ │ ├── evaluation │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── d2_evaluator_adapter.py │ │ │ │ │ ├── densepose_coco_evaluation.py │ │ │ │ │ ├── evaluator.py │ │ │ │ │ ├── mesh_alignment_evaluator.py │ │ │ │ │ └── tensor_storage.py │ │ │ │ ├── modeling │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── build.py │ │ │ │ │ ├── confidence.py │ │ │ │ │ ├── cse │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── embedder.py │ │ │ │ │ │ ├── utils.py │ │ │ │ │ │ ├── vertex_direct_embedder.py │ │ │ │ │ │ └── vertex_feature_embedder.py │ │ │ │ │ ├── densepose_checkpoint.py │ │ │ │ │ ├── filter.py │ │ │ │ │ ├── hrfpn.py │ │ │ │ │ ├── hrnet.py │ │ │ │ │ ├── inference.py │ │ │ │ │ ├── losses │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── chart.py │ │ │ │ │ │ ├── chart_with_confidences.py │ │ │ │ │ │ ├── cse.py │ │ │ │ │ │ ├── cycle_pix2shape.py │ │ │ │ │ │ ├── cycle_shape2shape.py │ │ │ │ │ │ ├── embed.py │ │ │ │ │ │ ├── embed_utils.py │ │ │ │ │ │ ├── mask.py │ │ │ │ │ │ ├── mask_or_segm.py │ │ │ │ │ │ ├── registry.py │ │ │ │ │ │ ├── segm.py │ │ │ │ │ │ ├── soft_embed.py │ │ │ │ │ │ └── utils.py │ │ │ │ │ ├── predictors │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── chart.py │ │ │ │ │ │ ├── chart_confidence.py │ │ │ │ │ │ ├── chart_with_confidence.py │ │ │ │ │ │ ├── cse.py │ │ │ │ │ │ ├── cse_confidence.py │ │ │ │ │ │ ├── cse_with_confidence.py │ │ │ │ │ │ └── registry.py │ │ │ │ │ ├── roi_heads │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── deeplab.py │ │ │ │ │ │ ├── registry.py │ │ │ │ │ │ ├── roi_head.py │ │ │ │ │ │ └── v1convx.py │ │ │ │ │ ├── test_time_augmentation.py │ │ │ │ │ └── utils.py │ │ │ │ ├── structures │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── chart.py │ │ │ │ │ ├── chart_confidence.py │ │ │ │ │ ├── chart_result.py │ │ │ │ │ ├── cse.py │ │ │ │ │ ├── cse_confidence.py │ │ │ │ │ ├── data_relative.py │ │ │ │ │ ├── list.py │ │ │ │ │ ├── mesh.py │ │ │ │ │ └── transform_data.py │ │ │ │ ├── utils │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── dbhelper.py │ │ │ │ │ ├── logger.py │ │ │ │ │ └── transform.py │ │ │ │ └── vis │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── bounding_box.py │ │ │ │ │ ├── densepose_data_points.py │ │ │ │ │ ├── densepose_outputs_iuv.py │ │ │ │ │ ├── densepose_outputs_vertex.py │ │ │ │ │ ├── densepose_results.py │ │ │ │ │ ├── densepose_results_textures.py │ │ │ │ │ └── extractor.py │ │ │ ├── dev │ │ │ │ ├── README.md │ │ │ │ ├── run_inference_tests.sh │ │ │ │ └── run_instant_tests.sh │ │ │ ├── doc │ │ │ │ ├── BOOTSTRAPPING_PIPELINE.md │ │ │ │ ├── DENSEPOSE_CSE.md │ │ │ │ ├── DENSEPOSE_DATASETS.md │ │ │ │ ├── DENSEPOSE_IUV.md │ │ │ │ ├── GETTING_STARTED.md │ │ │ │ ├── RELEASE_2020_04.md │ │ │ │ ├── RELEASE_2021_03.md │ │ │ │ ├── RELEASE_2021_06.md │ │ │ │ ├── TOOL_APPLY_NET.md │ │ │ │ └── TOOL_QUERY_DB.md │ │ │ ├── query_db.py │ │ │ ├── setup.py │ │ │ ├── tests │ │ │ │ ├── common.py │ │ │ │ ├── test_chart_based_annotations_accumulator.py │ │ │ │ ├── test_combine_data_loader.py │ │ │ │ ├── test_cse_annotations_accumulator.py │ │ │ │ ├── test_dataset_loaded_annotations.py │ │ │ │ ├── test_frame_selector.py │ │ │ │ ├── test_image_list_dataset.py │ │ │ │ ├── test_image_resize_transform.py │ │ │ │ ├── test_model_e2e.py │ │ │ │ ├── test_setup.py │ │ │ │ ├── test_structures.py │ │ │ │ ├── test_tensor_storage.py │ │ │ │ └── test_video_keyframe_dataset.py │ │ │ └── train_net.py │ │ ├── MViTv2 │ │ │ ├── README.md │ │ │ └── configs │ │ │ │ ├── cascade_mask_rcnn_mvitv2_b_3x.py │ │ │ │ ├── cascade_mask_rcnn_mvitv2_b_in21k_3x.py │ │ │ │ ├── cascade_mask_rcnn_mvitv2_h_in21k_lsj_3x.py │ │ │ │ ├── cascade_mask_rcnn_mvitv2_l_in21k_lsj_50ep.py │ │ │ │ ├── cascade_mask_rcnn_mvitv2_s_3x.py │ │ │ │ ├── cascade_mask_rcnn_mvitv2_t_3x.py │ │ │ │ ├── common │ │ │ │ ├── coco_loader.py │ │ │ │ └── coco_loader_lsj.py │ │ │ │ └── mask_rcnn_mvitv2_t_3x.py │ │ ├── Panoptic-DeepLab │ │ │ ├── README.md │ │ │ ├── configs │ │ │ │ ├── COCO-PanopticSegmentation │ │ │ │ │ └── panoptic_deeplab_R_52_os16_mg124_poly_200k_bs64_crop_640_640_coco_dsconv.yaml │ │ │ │ └── Cityscapes-PanopticSegmentation │ │ │ │ │ ├── Base-PanopticDeepLab-OS16.yaml │ │ │ │ │ ├── panoptic_deeplab_R_52_os16_mg124_poly_90k_bs32_crop_512_1024.yaml │ │ │ │ │ └── panoptic_deeplab_R_52_os16_mg124_poly_90k_bs32_crop_512_1024_dsconv.yaml │ │ │ ├── panoptic_deeplab │ │ │ │ ├── __init__.py │ │ │ │ ├── config.py │ │ │ │ ├── dataset_mapper.py │ │ │ │ ├── panoptic_seg.py │ │ │ │ ├── post_processing.py │ │ │ │ └── target_generator.py │ │ │ └── train_net.py │ │ ├── PointRend │ │ │ ├── README.md │ │ │ ├── configs │ │ │ │ ├── InstanceSegmentation │ │ │ │ │ ├── Base-Implicit-PointRend.yaml │ │ │ │ │ ├── Base-PointRend-RCNN-FPN.yaml │ │ │ │ │ ├── implicit_pointrend_R_50_FPN_1x_coco.yaml │ │ │ │ │ ├── implicit_pointrend_R_50_FPN_3x_coco.yaml │ │ │ │ │ ├── pointrend_rcnn_R_101_FPN_3x_coco.yaml │ │ │ │ │ ├── pointrend_rcnn_R_50_FPN_1x_cityscapes.yaml │ │ │ │ │ ├── pointrend_rcnn_R_50_FPN_1x_coco.yaml │ │ │ │ │ ├── pointrend_rcnn_R_50_FPN_3x_coco.yaml │ │ │ │ │ └── pointrend_rcnn_X_101_32x8d_FPN_3x_coco.yaml │ │ │ │ └── SemanticSegmentation │ │ │ │ │ ├── Base-PointRend-Semantic-FPN.yaml │ │ │ │ │ └── pointrend_semantic_R_101_FPN_1x_cityscapes.yaml │ │ │ ├── point_rend │ │ │ │ ├── __init__.py │ │ │ │ ├── color_augmentation.py │ │ │ │ ├── config.py │ │ │ │ ├── mask_head.py │ │ │ │ ├── point_features.py │ │ │ │ ├── point_head.py │ │ │ │ ├── roi_heads.py │ │ │ │ └── semantic_seg.py │ │ │ └── train_net.py │ │ ├── PointSup │ │ │ ├── README.md │ │ │ ├── configs │ │ │ │ ├── implicit_pointrend_R_50_FPN_3x_point_sup_point_aug_coco.yaml │ │ │ │ ├── mask_rcnn_R_50_FPN_3x_point_sup_coco.yaml │ │ │ │ └── mask_rcnn_R_50_FPN_3x_point_sup_point_aug_coco.yaml │ │ │ ├── point_sup │ │ │ │ ├── __init__.py │ │ │ │ ├── config.py │ │ │ │ ├── dataset_mapper.py │ │ │ │ ├── detection_utils.py │ │ │ │ ├── mask_head.py │ │ │ │ ├── point_utils.py │ │ │ │ └── register_point_annotations.py │ │ │ ├── tools │ │ │ │ └── prepare_coco_point_annotations_without_masks.py │ │ │ └── train_net.py │ │ ├── README.md │ │ ├── Rethinking-BatchNorm │ │ │ ├── README.md │ │ │ ├── configs │ │ │ │ ├── mask_rcnn_BNhead.py │ │ │ │ ├── mask_rcnn_BNhead_batch_stats.py │ │ │ │ ├── mask_rcnn_BNhead_shuffle.py │ │ │ │ ├── mask_rcnn_SyncBNhead.py │ │ │ │ ├── retinanet_SyncBNhead.py │ │ │ │ └── retinanet_SyncBNhead_SharedTraining.py │ │ │ └── retinanet-eval-domain-specific.py │ │ ├── TensorMask │ │ │ ├── README.md │ │ │ ├── configs │ │ │ │ ├── Base-TensorMask.yaml │ │ │ │ ├── tensormask_R_50_FPN_1x.yaml │ │ │ │ └── tensormask_R_50_FPN_6x.yaml │ │ │ ├── setup.py │ │ │ ├── tensormask │ │ │ │ ├── __init__.py │ │ │ │ ├── arch.py │ │ │ │ ├── config.py │ │ │ │ └── layers │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── csrc │ │ │ │ │ ├── SwapAlign2Nat │ │ │ │ │ │ ├── SwapAlign2Nat.h │ │ │ │ │ │ └── SwapAlign2Nat_cuda.cu │ │ │ │ │ └── vision.cpp │ │ │ │ │ └── swap_align2nat.py │ │ │ ├── tests │ │ │ │ ├── __init__.py │ │ │ │ └── test_swap_align2nat.py │ │ │ └── train_net.py │ │ ├── TridentNet │ │ │ ├── README.md │ │ │ ├── configs │ │ │ │ ├── Base-TridentNet-Fast-C4.yaml │ │ │ │ ├── tridentnet_fast_R_101_C4_3x.yaml │ │ │ │ ├── tridentnet_fast_R_50_C4_1x.yaml │ │ │ │ └── tridentnet_fast_R_50_C4_3x.yaml │ │ │ ├── train_net.py │ │ │ └── tridentnet │ │ │ │ ├── __init__.py │ │ │ │ ├── config.py │ │ │ │ ├── trident_backbone.py │ │ │ │ ├── trident_conv.py │ │ │ │ ├── trident_rcnn.py │ │ │ │ └── trident_rpn.py │ │ └── ViTDet │ │ │ ├── README.md │ │ │ └── configs │ │ │ ├── COCO │ │ │ ├── cascade_mask_rcnn_mvitv2_b_in21k_100ep.py │ │ │ ├── cascade_mask_rcnn_mvitv2_h_in21k_36ep.py │ │ │ ├── cascade_mask_rcnn_mvitv2_l_in21k_50ep.py │ │ │ ├── cascade_mask_rcnn_swin_b_in21k_50ep.py │ │ │ ├── cascade_mask_rcnn_swin_l_in21k_50ep.py │ │ │ ├── cascade_mask_rcnn_vitdet_b_100ep.py │ │ │ ├── cascade_mask_rcnn_vitdet_h_75ep.py │ │ │ ├── cascade_mask_rcnn_vitdet_l_100ep.py │ │ │ ├── mask_rcnn_vitdet_b_100ep.py │ │ │ ├── mask_rcnn_vitdet_h_75ep.py │ │ │ └── mask_rcnn_vitdet_l_100ep.py │ │ │ ├── LVIS │ │ │ ├── cascade_mask_rcnn_mvitv2_b_in21k_100ep.py │ │ │ ├── cascade_mask_rcnn_mvitv2_h_in21k_50ep.py │ │ │ ├── cascade_mask_rcnn_mvitv2_l_in21k_50ep.py │ │ │ ├── cascade_mask_rcnn_swin_b_in21k_50ep.py │ │ │ ├── cascade_mask_rcnn_swin_l_in21k_50ep.py │ │ │ ├── cascade_mask_rcnn_vitdet_b_100ep.py │ │ │ ├── cascade_mask_rcnn_vitdet_h_100ep.py │ │ │ ├── cascade_mask_rcnn_vitdet_l_100ep.py │ │ │ ├── mask_rcnn_vitdet_b_100ep.py │ │ │ ├── mask_rcnn_vitdet_h_100ep.py │ │ │ └── mask_rcnn_vitdet_l_100ep.py │ │ │ └── common │ │ │ └── coco_loader_lsj.py │ ├── quick_test_to_pdf.py │ ├── segment_leaves (brlab-quardo's conflicted copy 2023-01-27).py │ ├── segment_leaves.py │ ├── segment_utils.py │ ├── setup.cfg │ ├── setup.py │ ├── tests │ │ ├── README.md │ │ ├── __init__.py │ │ ├── config │ │ │ ├── dir1 │ │ │ │ ├── bad_import.py │ │ │ │ ├── bad_import2.py │ │ │ │ ├── dir1_a.py │ │ │ │ ├── dir1_b.py │ │ │ │ └── load_rel.py │ │ │ ├── root_cfg.py │ │ │ ├── test_instantiate_config.py │ │ │ ├── test_lazy_config.py │ │ │ └── test_yacs_config.py │ │ ├── export │ │ │ └── test_c10.py │ │ ├── layers │ │ │ ├── __init__.py │ │ │ ├── test_blocks.py │ │ │ ├── test_deformable.py │ │ │ ├── test_losses.py │ │ │ ├── test_mask_ops.py │ │ │ ├── test_nms.py │ │ │ ├── test_nms_rotated.py │ │ │ ├── test_roi_align.py │ │ │ └── test_roi_align_rotated.py │ │ ├── modeling │ │ │ ├── __init__.py │ │ │ ├── test_anchor_generator.py │ │ │ ├── test_backbone.py │ │ │ ├── test_box2box_transform.py │ │ │ ├── test_fast_rcnn.py │ │ │ ├── test_matcher.py │ │ │ ├── test_mmdet.py │ │ │ ├── test_model_e2e.py │ │ │ ├── test_roi_heads.py │ │ │ ├── test_roi_pooler.py │ │ │ └── test_rpn.py │ │ ├── structures │ │ │ ├── __init__.py │ │ │ ├── test_boxes.py │ │ │ ├── test_imagelist.py │ │ │ ├── test_instances.py │ │ │ ├── test_keypoints.py │ │ │ ├── test_masks.py │ │ │ └── test_rotated_boxes.py │ │ ├── test_checkpoint.py │ │ ├── test_engine.py │ │ ├── test_events.py │ │ ├── test_export_caffe2.py │ │ ├── test_export_onnx.py │ │ ├── test_export_torchscript.py │ │ ├── test_model_analysis.py │ │ ├── test_model_zoo.py │ │ ├── test_packaging.py │ │ ├── test_registry.py │ │ ├── test_scheduler.py │ │ ├── test_solver.py │ │ ├── test_visualizer.py │ │ └── tracking │ │ │ ├── __init__.py │ │ │ ├── test_bbox_iou_tracker.py │ │ │ ├── test_hungarian_tracker.py │ │ │ ├── test_iou_weighted_hungarian_bbox_iou_tracker.py │ │ │ └── test_vanilla_hungarian_bbox_iou_tracker.py │ ├── tools │ │ ├── README.md │ │ ├── __init__.py │ │ ├── analyze_model.py │ │ ├── benchmark.py │ │ ├── convert-torchvision-to-d2.py │ │ ├── deploy │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── export_model.py │ │ │ └── torchscript_mask_rcnn.cpp │ │ ├── lazyconfig_train_net.py │ │ ├── lightning_train_net.py │ │ ├── plain_train_net.py │ │ ├── train_net.py │ │ ├── visualize_data.py │ │ └── visualize_json_results.py │ ├── train.py │ └── wandb_writer.py │ └── models │ ├── Group1_Dataset_10000_Iter_1176PTS_512Batch_smooth_l1 │ ├── cfg_output.yaml │ └── metadata.json │ ├── Group1_Dataset_10000_Iter_1176PTS_512Batch_smooth_l1_LR0005_BGR │ ├── cfg_output.yaml │ └── metadata.json │ ├── Group1_Dataset_20000_Iter_1176PTS_512Batch_smooth_l1_LR0005_BGR │ ├── cfg_output.yaml │ └── metadata.json │ ├── Group3_Dataset_100000_Iter_1176PTS_512Batch_smooth_l1_LR00025_BGR │ ├── cfg_output.yaml │ └── metadata.json │ └── GroupB_Dataset_100000_Iter_1176PTS_512Batch_smooth_l1_LR00025_BGR │ ├── cfg_output.yaml │ └── metadata.json ├── requirements.txt ├── requirements_deprecated ├── req_packages.py ├── requirements copy.txt ├── requirements_all.txt ├── requirements_cleaned.txt └── requirements_manual.txt ├── run_LeafMachine2.py ├── test.py └── test_cpu_only.py /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "leafmachine2/xmp_module"] 2 | path = leafmachine2/xmp_module 3 | url = https://github.com/adobe/XMP-Toolkit-SDK.git 4 | -------------------------------------------------------------------------------- /.streamlit/config.toml: -------------------------------------------------------------------------------- 1 | [theme] 2 | primaryColor = "#16a616" 3 | backgroundColor="#1a1a1a" 4 | secondaryBackgroundColor="#303030" 5 | textColor = "cccccc" 6 | 7 | [server] 8 | enableStaticServing = false 9 | runOnSave = true 10 | port = 8524 11 | -------------------------------------------------------------------------------- /CensorArchivalComponents.py: -------------------------------------------------------------------------------- 1 | from leafmachine2.machine.machine_censor_components import machine 2 | import os 3 | if __name__ == '__main__': 4 | # To use LeafMachine2.yaml file, set cfg_file_path = None 5 | # To switch between config files, you can provide the full path to a different config file 6 | cfg_file_path = None 7 | cfg_testing = None 8 | dir_home = os.path.dirname(__file__) 9 | print(dir_home) 10 | machine(cfg_file_path, dir_home, cfg_testing) 11 | -------------------------------------------------------------------------------- /DetectPhenology.py: -------------------------------------------------------------------------------- 1 | from leafmachine2.machine.machine_detect_phenology import machine 2 | import os 3 | if __name__ == '__main__': 4 | # To use LeafMachine2.yaml file, set cfg_file_path = None 5 | # To switch between config files, you can provide the full path to a different config file 6 | cfg_file_path = None 7 | cfg_testing = None 8 | dir_home = os.path.dirname(__file__) 9 | print(dir_home) 10 | machine(cfg_file_path, dir_home, cfg_testing) 11 | -------------------------------------------------------------------------------- /LeafMachine2.py: -------------------------------------------------------------------------------- 1 | import os 2 | from leafmachine2.machine.machine import machine 3 | 4 | ''' 5 | git ls-files | grep '\.py' | xargs wc -l 6 | ''' 7 | if __name__ == '__main__': 8 | # To use LeafMachine2.yaml file, set cfg_file_path = None 9 | # To switch between config files, you can provide the full path to a different config file 10 | cfg_file_path = None 11 | 12 | # Set LeafMachine2 dir 13 | dir_home = os.path.dirname(__file__) 14 | 15 | machine(cfg_file_path, dir_home, cfg_test=None) 16 | -------------------------------------------------------------------------------- /SpecimenCrop.py: -------------------------------------------------------------------------------- 1 | from leafmachine2.machine.machine_specimencrop import machine 2 | import os 3 | if __name__ == '__main__': 4 | # To use LeafMachine2.yaml file, set cfg_file_path = None 5 | # To switch between config files, you can provide the full path to a different config file 6 | cfg_file_path = None 7 | cfg_testing = None 8 | dir_home = os.path.dirname(__file__) 9 | print(dir_home) 10 | machine(cfg_file_path, dir_home, cfg_testing) 11 | -------------------------------------------------------------------------------- /__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/__init__.py -------------------------------------------------------------------------------- /bin/version.yml: -------------------------------------------------------------------------------- 1 | last_update: '2024-05-09' 2 | version: v-2-3 3 | -------------------------------------------------------------------------------- /configs/config_GBIF_from_user_file.yml: -------------------------------------------------------------------------------- 1 | dir_home: 'D:/Dropbox/LM2_Env/Image_Datasets/SET_Acacia' 2 | dir_destination: 'D:/Dropbox/LM2_Env/Image_Datasets/SET_Acacia/GBIF_Acacia_Armature' 3 | # Set the filename of a new csv containing the merged records from images and occ 4 | # filename_combined: 'combined_XXXXXXX.csv' 5 | filename_occ: 'armature_occurrence.txt' 6 | # option 1 7 | filename_img: 'prickles_images.txt' 8 | filename_combined: 'combined_prickles.csv' 9 | # option 2 10 | # filename_img: 'spines_images.txt' 11 | # filename_combined: 'combined_spines.csv' 12 | sample_list: '' -------------------------------------------------------------------------------- /demo/demo_images/LM_Validate_LowRes_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/demo/demo_images/LM_Validate_LowRes_1.jpg -------------------------------------------------------------------------------- /demo/demo_images/LM_Validate_LowRes_10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/demo/demo_images/LM_Validate_LowRes_10.jpg -------------------------------------------------------------------------------- /demo/demo_images/LM_Validate_LowRes_11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/demo/demo_images/LM_Validate_LowRes_11.jpg -------------------------------------------------------------------------------- /demo/demo_images/LM_Validate_LowRes_12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/demo/demo_images/LM_Validate_LowRes_12.jpg -------------------------------------------------------------------------------- /demo/demo_images/LM_Validate_LowRes_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/demo/demo_images/LM_Validate_LowRes_2.jpg -------------------------------------------------------------------------------- /demo/demo_images/LM_Validate_LowRes_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/demo/demo_images/LM_Validate_LowRes_3.jpg -------------------------------------------------------------------------------- /demo/demo_images/LM_Validate_LowRes_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/demo/demo_images/LM_Validate_LowRes_4.jpg -------------------------------------------------------------------------------- /demo/demo_images/LM_Validate_LowRes_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/demo/demo_images/LM_Validate_LowRes_5.jpg -------------------------------------------------------------------------------- /demo/demo_images/LM_Validate_LowRes_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/demo/demo_images/LM_Validate_LowRes_6.jpg -------------------------------------------------------------------------------- /demo/demo_images/LM_Validate_LowRes_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/demo/demo_images/LM_Validate_LowRes_7.jpg -------------------------------------------------------------------------------- /demo/demo_images/LM_Validate_LowRes_8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/demo/demo_images/LM_Validate_LowRes_8.jpg -------------------------------------------------------------------------------- /demo/demo_images/LM_Validate_LowRes_9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/demo/demo_images/LM_Validate_LowRes_9.jpg -------------------------------------------------------------------------------- /docs/img/SpecimenCrop_BA/BA_1_after.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/docs/img/SpecimenCrop_BA/BA_1_after.jpg -------------------------------------------------------------------------------- /docs/img/SpecimenCrop_BA/BA_1_after_50.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/docs/img/SpecimenCrop_BA/BA_1_after_50.jpg -------------------------------------------------------------------------------- /docs/img/SpecimenCrop_BA/BA_1_before.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/docs/img/SpecimenCrop_BA/BA_1_before.jpg -------------------------------------------------------------------------------- /docs/img/SpecimenCrop_BA/BA_2_after.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/docs/img/SpecimenCrop_BA/BA_2_after.jpg -------------------------------------------------------------------------------- /docs/img/SpecimenCrop_BA/BA_2_after_50.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/docs/img/SpecimenCrop_BA/BA_2_after_50.jpg -------------------------------------------------------------------------------- /docs/img/SpecimenCrop_BA/BA_2_before.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/docs/img/SpecimenCrop_BA/BA_2_before.jpg -------------------------------------------------------------------------------- /img/icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/img/icon.jpg -------------------------------------------------------------------------------- /leafmachine2/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/leafmachine2/__init__.py -------------------------------------------------------------------------------- /leafmachine2/analysis/pixel_to_metric_predictors/pixel_predictions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/leafmachine2/analysis/pixel_to_metric_predictors/pixel_predictions.png -------------------------------------------------------------------------------- /leafmachine2/analysis/pixel_to_metric_predictors/poly_regressor.joblib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/leafmachine2/analysis/pixel_to_metric_predictors/poly_regressor.joblib -------------------------------------------------------------------------------- /leafmachine2/analysis/pixel_to_metric_predictors/rf_classifier.joblib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/leafmachine2/analysis/pixel_to_metric_predictors/rf_classifier.joblib -------------------------------------------------------------------------------- /leafmachine2/analysis/run_supervised_image_selection.py: -------------------------------------------------------------------------------- 1 | import streamlit.web.cli as stcli 2 | import os, sys 3 | 4 | 5 | def resolve_path(path): 6 | resolved_path = os.path.abspath(os.path.join(os.getcwd(), path)) 7 | return resolved_path 8 | 9 | 10 | if __name__ == "__main__": 11 | dir_home = os.path.dirname(__file__) 12 | sys.argv = [ 13 | "streamlit", 14 | "run", 15 | resolve_path(os.path.join(dir_home,"supervised_image_selection.py")), 16 | "--global.developmentMode=false", 17 | "--server.port=8555", 18 | ] 19 | sys.exit(stcli.main()) -------------------------------------------------------------------------------- /leafmachine2/component_detector/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/leafmachine2/component_detector/__init__.py -------------------------------------------------------------------------------- /leafmachine2/component_detector/color_profiles/ColorProfile__LANDMARK.csv: -------------------------------------------------------------------------------- 1 | apex_angle,255,178,54 2 | base_angle,228,255,54 3 | lamina_base,52,240,233 4 | lamina_tip,246,33,255 5 | lamina_width,35,44,255 6 | lobe_tip,229,237,46 7 | midvein_trace,246,33,255 8 | petiole_tip,255,33,42 9 | petiole_trace,255,33,42 10 | -------------------------------------------------------------------------------- /leafmachine2/component_detector/color_profiles/ColorProfile__LANDMARK_ARM.csv: -------------------------------------------------------------------------------- 1 | tip,35,44,255 2 | middle,228,255,54 3 | outer,52,240,233 4 | ,,, 5 | -------------------------------------------------------------------------------- /leafmachine2/component_detector/color_profiles/ColorProfile__PLANT.csv: -------------------------------------------------------------------------------- 1 | Leaf_WHOLE,0,255,55,00ff37 2 | Leaf_PARTIAL,0,255,250,69fffc 3 | Leaflet,255,203,0,ffcb00 4 | Seed_Fruit_ONE,252,255,0,fcff00 5 | Seed_Fruit_MANY,0,0,0,0 6 | Flower_ONE,255,52,255,ff34ff 7 | Flower_MANY,154,0,255,9a00ff 8 | Bud,255,0,9,ff0009 9 | Specimen,0,0,0,ceffc4 10 | Roots,255,134,0,ff8600 11 | Wood,144,22,22,901616 12 | -------------------------------------------------------------------------------- /leafmachine2/component_detector/color_profiles/ColorProfile__PREP.csv: -------------------------------------------------------------------------------- 1 | Ruler, 255,0,70 2 | Barcode, 0,137,65 3 | Colorcard, 242,255,0 4 | Label, 0,0,255 5 | Map, 0,251,255 6 | Envelope, 163,0,89 7 | Photo, 255,205,220 8 | Attached Item, 255,172,40 9 | Weights, 140,140,140 10 | -------------------------------------------------------------------------------- /leafmachine2/component_detector/data/PLANT_Full.yaml: -------------------------------------------------------------------------------- 1 | path: ../datasets/PLANT_Full 2 | train: images/train 3 | val: images/val 4 | test: images/test 5 | nc: 11 6 | names: 7 | - leaf_whole 8 | - leaf_partial 9 | - leaflet 10 | - seed_fruit_one 11 | - seed_fruit_many 12 | - flower_one 13 | - flower_many 14 | - bud 15 | - specimen 16 | - roots 17 | - wood -------------------------------------------------------------------------------- /leafmachine2/component_detector/data/images/bus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/leafmachine2/component_detector/data/images/bus.jpg -------------------------------------------------------------------------------- /leafmachine2/component_detector/data/images/zidane.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/leafmachine2/component_detector/data/images/zidane.jpg -------------------------------------------------------------------------------- /leafmachine2/component_detector/data/scripts/download_weights.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # YOLOv5 🚀 by Ultralytics, GPL-3.0 license 3 | # Download latest models from https://github.com/ultralytics/yolov5/releases 4 | # Example usage: bash path/to/download_weights.sh 5 | # parent 6 | # └── yolov5 7 | # ├── yolov5s.pt ← downloads here 8 | # ├── yolov5m.pt 9 | # └── ... 10 | 11 | python - < /dev/null 2>&1 && { 8 | echo "This test should be run without building detectron2." 9 | exit 1 10 | } 11 | 12 | # Check that other modules are still importable, even when _C is not importable 13 | python -c "from detectron2 import modeling" 14 | python -c "from detectron2 import modeling, data" 15 | python -c "from detectron2 import evaluation, export, checkpoint" 16 | python -c "from detectron2 import utils, engine" 17 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/.flake8: -------------------------------------------------------------------------------- 1 | # This is an example .flake8 config, used when developing *Black* itself. 2 | # Keep in sync with setup.cfg which is used for source packages. 3 | 4 | [flake8] 5 | ignore = W503, E203, E221, C901, C408, E741, C407, B017, F811, C101, EXE001, EXE002 6 | max-line-length = 100 7 | max-complexity = 18 8 | select = B,C,E,F,W,T4,B9 9 | exclude = build 10 | per-file-ignores = 11 | **/__init__.py:F401,F403,E402 12 | **/configs/**.py:F401,E402 13 | configs/**.py:F401,E402 14 | **/tests/config/**.py:F401,E402 15 | tests/config/**.py:F401,E402 16 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/leafmachine2/segmentation/detectron2/__init__.py -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/Base-RCNN-C4.yaml: -------------------------------------------------------------------------------- 1 | MODEL: 2 | META_ARCHITECTURE: "GeneralizedRCNN" 3 | RPN: 4 | PRE_NMS_TOPK_TEST: 6000 5 | POST_NMS_TOPK_TEST: 1000 6 | ROI_HEADS: 7 | NAME: "Res5ROIHeads" 8 | DATASETS: 9 | TRAIN: ("coco_2017_train",) 10 | TEST: ("coco_2017_val",) 11 | SOLVER: 12 | IMS_PER_BATCH: 16 13 | BASE_LR: 0.02 14 | STEPS: (60000, 80000) 15 | MAX_ITER: 90000 16 | INPUT: 17 | MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800) 18 | VERSION: 2 19 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Detection/faster_rcnn_R_101_C4_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-C4.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | MASK_ON: False 5 | RESNETS: 6 | DEPTH: 101 7 | SOLVER: 8 | STEPS: (210000, 250000) 9 | MAX_ITER: 270000 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Detection/faster_rcnn_R_101_DC5_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-DilatedC5.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | MASK_ON: False 5 | RESNETS: 6 | DEPTH: 101 7 | SOLVER: 8 | STEPS: (210000, 250000) 9 | MAX_ITER: 270000 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Detection/faster_rcnn_R_101_FPN_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | MASK_ON: False 5 | RESNETS: 6 | DEPTH: 101 7 | SOLVER: 8 | STEPS: (210000, 250000) 9 | MAX_ITER: 270000 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Detection/faster_rcnn_R_50_C4_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-C4.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: False 5 | RESNETS: 6 | DEPTH: 50 7 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Detection/faster_rcnn_R_50_C4_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-C4.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: False 5 | RESNETS: 6 | DEPTH: 50 7 | SOLVER: 8 | STEPS: (210000, 250000) 9 | MAX_ITER: 270000 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Detection/faster_rcnn_R_50_DC5_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-DilatedC5.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: False 5 | RESNETS: 6 | DEPTH: 50 7 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Detection/faster_rcnn_R_50_DC5_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-DilatedC5.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: False 5 | RESNETS: 6 | DEPTH: 50 7 | SOLVER: 8 | STEPS: (210000, 250000) 9 | MAX_ITER: 270000 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Detection/faster_rcnn_R_50_FPN_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: False 5 | RESNETS: 6 | DEPTH: 50 7 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: False 5 | RESNETS: 6 | DEPTH: 50 7 | SOLVER: 8 | STEPS: (210000, 250000) 9 | MAX_ITER: 270000 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Detection/faster_rcnn_X_101_32x8d_FPN_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | MASK_ON: False 4 | WEIGHTS: "detectron2://ImageNetPretrained/FAIR/X-101-32x8d.pkl" 5 | PIXEL_STD: [57.375, 57.120, 58.395] 6 | RESNETS: 7 | STRIDE_IN_1X1: False # this is a C2 model 8 | NUM_GROUPS: 32 9 | WIDTH_PER_GROUP: 8 10 | DEPTH: 101 11 | SOLVER: 12 | STEPS: (210000, 250000) 13 | MAX_ITER: 270000 14 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Detection/fcos_R_50_FPN_1x.py: -------------------------------------------------------------------------------- 1 | from ..common.optim import SGD as optimizer 2 | from ..common.coco_schedule import lr_multiplier_1x as lr_multiplier 3 | from ..common.data.coco import dataloader 4 | from ..common.models.fcos import model 5 | from ..common.train import train 6 | 7 | dataloader.train.mapper.use_instance_mask = False 8 | optimizer.lr = 0.01 9 | 10 | model.backbone.bottom_up.freeze_at = 2 11 | train.init_checkpoint = "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 12 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Detection/retinanet_R_101_FPN_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RetinaNet.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | RESNETS: 5 | DEPTH: 101 6 | SOLVER: 7 | STEPS: (210000, 250000) 8 | MAX_ITER: 270000 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Detection/retinanet_R_50_FPN_1x.py: -------------------------------------------------------------------------------- 1 | from ..common.optim import SGD as optimizer 2 | from ..common.coco_schedule import lr_multiplier_1x as lr_multiplier 3 | from ..common.data.coco import dataloader 4 | from ..common.models.retinanet import model 5 | from ..common.train import train 6 | 7 | dataloader.train.mapper.use_instance_mask = False 8 | model.backbone.bottom_up.freeze_at = 2 9 | optimizer.lr = 0.01 10 | 11 | train.init_checkpoint = "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 12 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Detection/retinanet_R_50_FPN_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RetinaNet.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Detection/retinanet_R_50_FPN_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RetinaNet.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | SOLVER: 7 | STEPS: (210000, 250000) 8 | MAX_ITER: 270000 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Detection/rpn_R_50_C4_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-C4.yaml" 2 | MODEL: 3 | META_ARCHITECTURE: "ProposalNetwork" 4 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 5 | MASK_ON: False 6 | RESNETS: 7 | DEPTH: 50 8 | RPN: 9 | PRE_NMS_TOPK_TEST: 12000 10 | POST_NMS_TOPK_TEST: 2000 11 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Detection/rpn_R_50_FPN_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | META_ARCHITECTURE: "ProposalNetwork" 4 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 5 | MASK_ON: False 6 | RESNETS: 7 | DEPTH: 50 8 | RPN: 9 | POST_NMS_TOPK_TEST: 2000 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-InstanceSegmentation/mask_rcnn_R_101_C4_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-C4.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 101 7 | SOLVER: 8 | STEPS: (210000, 250000) 9 | MAX_ITER: 270000 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-InstanceSegmentation/mask_rcnn_R_101_DC5_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-DilatedC5.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 101 7 | SOLVER: 8 | STEPS: (210000, 250000) 9 | MAX_ITER: 270000 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-InstanceSegmentation/mask_rcnn_R_101_FPN_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 101 7 | SOLVER: 8 | STEPS: (210000, 250000) 9 | MAX_ITER: 270000 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-InstanceSegmentation/mask_rcnn_R_50_C4_1x.py: -------------------------------------------------------------------------------- 1 | from ..common.train import train 2 | from ..common.optim import SGD as optimizer 3 | from ..common.coco_schedule import lr_multiplier_1x as lr_multiplier 4 | from ..common.data.coco import dataloader 5 | from ..common.models.mask_rcnn_c4 import model 6 | 7 | model.backbone.freeze_at = 2 8 | train.init_checkpoint = "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-InstanceSegmentation/mask_rcnn_R_50_C4_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-C4.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 50 7 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-InstanceSegmentation/mask_rcnn_R_50_C4_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-C4.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 50 7 | SOLVER: 8 | STEPS: (210000, 250000) 9 | MAX_ITER: 270000 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-InstanceSegmentation/mask_rcnn_R_50_DC5_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-DilatedC5.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 50 7 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-InstanceSegmentation/mask_rcnn_R_50_DC5_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-DilatedC5.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 50 7 | SOLVER: 8 | STEPS: (210000, 250000) 9 | MAX_ITER: 270000 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.py: -------------------------------------------------------------------------------- 1 | from ..common.optim import SGD as optimizer 2 | from ..common.coco_schedule import lr_multiplier_1x as lr_multiplier 3 | from ..common.data.coco import dataloader 4 | from ..common.models.mask_rcnn_fpn import model 5 | from ..common.train import train 6 | 7 | model.backbone.bottom_up.freeze_at = 2 8 | train.init_checkpoint = "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 50 7 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x_giou.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 50 7 | RPN: 8 | BBOX_REG_LOSS_TYPE: "giou" 9 | BBOX_REG_LOSS_WEIGHT: 2.0 10 | ROI_BOX_HEAD: 11 | BBOX_REG_LOSS_TYPE: "giou" 12 | BBOX_REG_LOSS_WEIGHT: 10.0 13 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 50 7 | SOLVER: 8 | STEPS: (210000, 250000) 9 | MAX_ITER: 270000 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-InstanceSegmentation/mask_rcnn_X_101_32x8d_FPN_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | MASK_ON: True 4 | WEIGHTS: "detectron2://ImageNetPretrained/FAIR/X-101-32x8d.pkl" 5 | PIXEL_STD: [57.375, 57.120, 58.395] 6 | RESNETS: 7 | STRIDE_IN_1X1: False # this is a C2 model 8 | NUM_GROUPS: 32 9 | WIDTH_PER_GROUP: 8 10 | DEPTH: 101 11 | SOLVER: 12 | STEPS: (210000, 250000) 13 | MAX_ITER: 270000 14 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Keypoints/Base-Keypoint-RCNN-FPN.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | KEYPOINT_ON: True 4 | ROI_HEADS: 5 | NUM_CLASSES: 1 6 | ROI_BOX_HEAD: 7 | SMOOTH_L1_BETA: 0.5 # Keypoint AP degrades (though box AP improves) when using plain L1 loss 8 | RPN: 9 | # Detectron1 uses 2000 proposals per-batch, but this option is per-image in detectron2. 10 | # 1000 proposals per-image is found to hurt box AP. 11 | # Therefore we increase it to 1500 per-image. 12 | POST_NMS_TOPK_TRAIN: 1500 13 | DATASETS: 14 | TRAIN: ("keypoints_coco_2017_train",) 15 | TEST: ("keypoints_coco_2017_val",) 16 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Keypoints/keypoint_rcnn_R_101_FPN_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-Keypoint-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | RESNETS: 5 | DEPTH: 101 6 | SOLVER: 7 | STEPS: (210000, 250000) 8 | MAX_ITER: 270000 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Keypoints/keypoint_rcnn_R_50_FPN_1x.py: -------------------------------------------------------------------------------- 1 | from ..common.optim import SGD as optimizer 2 | from ..common.coco_schedule import lr_multiplier_1x as lr_multiplier 3 | from ..common.data.coco_keypoint import dataloader 4 | from ..common.models.keypoint_rcnn_fpn import model 5 | from ..common.train import train 6 | 7 | model.backbone.bottom_up.freeze_at = 2 8 | train.init_checkpoint = "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Keypoints/keypoint_rcnn_R_50_FPN_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-Keypoint-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Keypoints/keypoint_rcnn_R_50_FPN_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-Keypoint-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | SOLVER: 7 | STEPS: (210000, 250000) 8 | MAX_ITER: 270000 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-Keypoints/keypoint_rcnn_X_101_32x8d_FPN_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-Keypoint-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/FAIR/X-101-32x8d.pkl" 4 | PIXEL_STD: [57.375, 57.120, 58.395] 5 | RESNETS: 6 | STRIDE_IN_1X1: False # this is a C2 model 7 | NUM_GROUPS: 32 8 | WIDTH_PER_GROUP: 8 9 | DEPTH: 101 10 | SOLVER: 11 | STEPS: (210000, 250000) 12 | MAX_ITER: 270000 13 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-PanopticSegmentation/Base-Panoptic-FPN.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | META_ARCHITECTURE: "PanopticFPN" 4 | MASK_ON: True 5 | SEM_SEG_HEAD: 6 | LOSS_WEIGHT: 0.5 7 | DATASETS: 8 | TRAIN: ("coco_2017_train_panoptic_separated",) 9 | TEST: ("coco_2017_val_panoptic_separated",) 10 | DATALOADER: 11 | FILTER_EMPTY_ANNOTATIONS: False 12 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-PanopticSegmentation/panoptic_fpn_R_101_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-Panoptic-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | RESNETS: 5 | DEPTH: 101 6 | SOLVER: 7 | STEPS: (210000, 250000) 8 | MAX_ITER: 270000 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-PanopticSegmentation/panoptic_fpn_R_50_1x.py: -------------------------------------------------------------------------------- 1 | from ..common.optim import SGD as optimizer 2 | from ..common.coco_schedule import lr_multiplier_1x as lr_multiplier 3 | from ..common.data.coco_panoptic_separated import dataloader 4 | from ..common.models.panoptic_fpn import model 5 | from ..common.train import train 6 | 7 | model.backbone.bottom_up.freeze_at = 2 8 | train.init_checkpoint = "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-PanopticSegmentation/panoptic_fpn_R_50_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-Panoptic-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/COCO-PanopticSegmentation/panoptic_fpn_R_50_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-Panoptic-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | SOLVER: 7 | STEPS: (210000, 250000) 8 | MAX_ITER: 270000 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/Detectron1-Comparisons/faster_rcnn_R_50_FPN_noaug_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: False 5 | RESNETS: 6 | DEPTH: 50 7 | # Detectron1 uses smooth L1 loss with some magic beta values. 8 | # The defaults are changed to L1 loss in Detectron2. 9 | RPN: 10 | SMOOTH_L1_BETA: 0.1111 11 | ROI_BOX_HEAD: 12 | SMOOTH_L1_BETA: 1.0 13 | POOLER_SAMPLING_RATIO: 2 14 | POOLER_TYPE: "ROIAlign" 15 | INPUT: 16 | # no scale augmentation 17 | MIN_SIZE_TRAIN: (800, ) 18 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/Detectron1-Comparisons/mask_rcnn_R_50_FPN_noaug_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 50 7 | # Detectron1 uses smooth L1 loss with some magic beta values. 8 | # The defaults are changed to L1 loss in Detectron2. 9 | RPN: 10 | SMOOTH_L1_BETA: 0.1111 11 | ROI_BOX_HEAD: 12 | SMOOTH_L1_BETA: 1.0 13 | POOLER_SAMPLING_RATIO: 2 14 | POOLER_TYPE: "ROIAlign" 15 | ROI_MASK_HEAD: 16 | POOLER_SAMPLING_RATIO: 2 17 | POOLER_TYPE: "ROIAlign" 18 | INPUT: 19 | # no scale augmentation 20 | MIN_SIZE_TRAIN: (800, ) 21 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/LVISv0.5-InstanceSegmentation/mask_rcnn_R_101_FPN_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 101 7 | ROI_HEADS: 8 | NUM_CLASSES: 1230 9 | SCORE_THRESH_TEST: 0.0001 10 | INPUT: 11 | MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800) 12 | DATASETS: 13 | TRAIN: ("lvis_v0.5_train",) 14 | TEST: ("lvis_v0.5_val",) 15 | TEST: 16 | DETECTIONS_PER_IMAGE: 300 # LVIS allows up to 300 17 | DATALOADER: 18 | SAMPLER_TRAIN: "RepeatFactorTrainingSampler" 19 | REPEAT_THRESHOLD: 0.001 20 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/LVISv0.5-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 50 7 | ROI_HEADS: 8 | NUM_CLASSES: 1230 9 | SCORE_THRESH_TEST: 0.0001 10 | INPUT: 11 | MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800) 12 | DATASETS: 13 | TRAIN: ("lvis_v0.5_train",) 14 | TEST: ("lvis_v0.5_val",) 15 | TEST: 16 | DETECTIONS_PER_IMAGE: 300 # LVIS allows up to 300 17 | DATALOADER: 18 | SAMPLER_TRAIN: "RepeatFactorTrainingSampler" 19 | REPEAT_THRESHOLD: 0.001 20 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/LVISv1-InstanceSegmentation/mask_rcnn_R_101_FPN_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 101 7 | ROI_HEADS: 8 | NUM_CLASSES: 1203 9 | SCORE_THRESH_TEST: 0.0001 10 | INPUT: 11 | MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800) 12 | DATASETS: 13 | TRAIN: ("lvis_v1_train",) 14 | TEST: ("lvis_v1_val",) 15 | TEST: 16 | DETECTIONS_PER_IMAGE: 300 # LVIS allows up to 300 17 | SOLVER: 18 | STEPS: (120000, 160000) 19 | MAX_ITER: 180000 # 180000 * 16 / 100000 ~ 28.8 epochs 20 | DATALOADER: 21 | SAMPLER_TRAIN: "RepeatFactorTrainingSampler" 22 | REPEAT_THRESHOLD: 0.001 23 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/LVISv1-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 50 7 | ROI_HEADS: 8 | NUM_CLASSES: 1203 9 | SCORE_THRESH_TEST: 0.0001 10 | INPUT: 11 | MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800) 12 | DATASETS: 13 | TRAIN: ("lvis_v1_train",) 14 | TEST: ("lvis_v1_val",) 15 | TEST: 16 | DETECTIONS_PER_IMAGE: 300 # LVIS allows up to 300 17 | SOLVER: 18 | STEPS: (120000, 160000) 19 | MAX_ITER: 180000 # 180000 * 16 / 100000 ~ 28.8 epochs 20 | DATALOADER: 21 | SAMPLER_TRAIN: "RepeatFactorTrainingSampler" 22 | REPEAT_THRESHOLD: 0.001 23 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/Misc/cascade_mask_rcnn_R_50_FPN_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 50 7 | ROI_HEADS: 8 | NAME: CascadeROIHeads 9 | ROI_BOX_HEAD: 10 | CLS_AGNOSTIC_BBOX_REG: True 11 | RPN: 12 | POST_NMS_TOPK_TRAIN: 2000 13 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/Misc/cascade_mask_rcnn_R_50_FPN_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 50 7 | ROI_HEADS: 8 | NAME: CascadeROIHeads 9 | ROI_BOX_HEAD: 10 | CLS_AGNOSTIC_BBOX_REG: True 11 | RPN: 12 | POST_NMS_TOPK_TRAIN: 2000 13 | SOLVER: 14 | STEPS: (210000, 250000) 15 | MAX_ITER: 270000 16 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/Misc/mask_rcnn_R_50_FPN_1x_cls_agnostic.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 50 7 | ROI_BOX_HEAD: 8 | CLS_AGNOSTIC_BBOX_REG: True 9 | ROI_MASK_HEAD: 10 | CLS_AGNOSTIC_MASK: True 11 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/Misc/mask_rcnn_R_50_FPN_1x_dconv_c3-c5.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 50 7 | DEFORM_ON_PER_STAGE: [False, True, True, True] # on Res3,Res4,Res5 8 | DEFORM_MODULATED: False 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/Misc/mask_rcnn_R_50_FPN_3x_dconv_c3-c5.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 50 7 | DEFORM_ON_PER_STAGE: [False, True, True, True] # on Res3,Res4,Res5 8 | DEFORM_MODULATED: False 9 | SOLVER: 10 | STEPS: (210000, 250000) 11 | MAX_ITER: 270000 12 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/Misc/mask_rcnn_R_50_FPN_3x_gn.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "catalog://ImageNetPretrained/FAIR/R-50-GN" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 50 7 | NORM: "GN" 8 | STRIDE_IN_1X1: False 9 | FPN: 10 | NORM: "GN" 11 | ROI_BOX_HEAD: 12 | NAME: "FastRCNNConvFCHead" 13 | NUM_CONV: 4 14 | NUM_FC: 1 15 | NORM: "GN" 16 | ROI_MASK_HEAD: 17 | NORM: "GN" 18 | SOLVER: 19 | # 3x schedule 20 | STEPS: (210000, 250000) 21 | MAX_ITER: 270000 22 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/Misc/mask_rcnn_R_50_FPN_3x_syncbn.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 50 7 | NORM: "SyncBN" 8 | STRIDE_IN_1X1: True 9 | FPN: 10 | NORM: "SyncBN" 11 | ROI_BOX_HEAD: 12 | NAME: "FastRCNNConvFCHead" 13 | NUM_CONV: 4 14 | NUM_FC: 1 15 | NORM: "SyncBN" 16 | ROI_MASK_HEAD: 17 | NORM: "SyncBN" 18 | SOLVER: 19 | # 3x schedule 20 | STEPS: (210000, 250000) 21 | MAX_ITER: 270000 22 | TEST: 23 | PRECISE_BN: 24 | ENABLED: True 25 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/Misc/scratch_mask_rcnn_R_50_FPN_3x_gn.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "mask_rcnn_R_50_FPN_3x_gn.yaml" 2 | MODEL: 3 | # Train from random initialization. 4 | WEIGHTS: "" 5 | # It makes sense to divide by STD when training from scratch 6 | # But it seems to make no difference on the results and C2's models didn't do this. 7 | # So we keep things consistent with C2. 8 | # PIXEL_STD: [57.375, 57.12, 58.395] 9 | MASK_ON: True 10 | BACKBONE: 11 | FREEZE_AT: 0 12 | # NOTE: Please refer to Rethinking ImageNet Pre-training https://arxiv.org/abs/1811.08883 13 | # to learn what you need for training from scratch. 14 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/Misc/scratch_mask_rcnn_R_50_FPN_9x_gn.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "mask_rcnn_R_50_FPN_3x_gn.yaml" 2 | MODEL: 3 | PIXEL_STD: [57.375, 57.12, 58.395] 4 | WEIGHTS: "" 5 | MASK_ON: True 6 | RESNETS: 7 | STRIDE_IN_1X1: False 8 | BACKBONE: 9 | FREEZE_AT: 0 10 | SOLVER: 11 | # 9x schedule 12 | IMS_PER_BATCH: 64 # 4x the standard 13 | STEPS: (187500, 197500) # last 60/4==15k and last 20/4==5k 14 | MAX_ITER: 202500 # 90k * 9 / 4 15 | BASE_LR: 0.08 16 | TEST: 17 | EVAL_PERIOD: 2500 18 | # NOTE: Please refer to Rethinking ImageNet Pre-training https://arxiv.org/abs/1811.08883 19 | # to learn what you need for training from scratch. 20 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/Misc/scratch_mask_rcnn_R_50_FPN_9x_syncbn.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "mask_rcnn_R_50_FPN_3x_syncbn.yaml" 2 | MODEL: 3 | PIXEL_STD: [57.375, 57.12, 58.395] 4 | WEIGHTS: "" 5 | MASK_ON: True 6 | RESNETS: 7 | STRIDE_IN_1X1: False 8 | BACKBONE: 9 | FREEZE_AT: 0 10 | SOLVER: 11 | # 9x schedule 12 | IMS_PER_BATCH: 64 # 4x the standard 13 | STEPS: (187500, 197500) # last 60/4==15k and last 20/4==5k 14 | MAX_ITER: 202500 # 90k * 9 / 4 15 | BASE_LR: 0.08 16 | TEST: 17 | EVAL_PERIOD: 2500 18 | # NOTE: Please refer to Rethinking ImageNet Pre-training https://arxiv.org/abs/1811.08883 19 | # to learn what you need for training from scratch. 20 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/Misc/semantic_R_50_FPN_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | META_ARCHITECTURE: "SemanticSegmentor" 4 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 5 | RESNETS: 6 | DEPTH: 50 7 | DATASETS: 8 | TRAIN: ("coco_2017_train_panoptic_stuffonly",) 9 | TEST: ("coco_2017_val_panoptic_stuffonly",) 10 | INPUT: 11 | MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800) 12 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/PascalVOC-Detection/faster_rcnn_R_50_C4.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-C4.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: False 5 | RESNETS: 6 | DEPTH: 50 7 | ROI_HEADS: 8 | NUM_CLASSES: 20 9 | INPUT: 10 | MIN_SIZE_TRAIN: (480, 512, 544, 576, 608, 640, 672, 704, 736, 768, 800) 11 | MIN_SIZE_TEST: 800 12 | DATASETS: 13 | TRAIN: ('voc_2007_trainval', 'voc_2012_trainval') 14 | TEST: ('voc_2007_test',) 15 | SOLVER: 16 | STEPS: (12000, 16000) 17 | MAX_ITER: 18000 # 17.4 epochs 18 | WARMUP_ITERS: 100 19 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/PascalVOC-Detection/faster_rcnn_R_50_FPN.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: False 5 | RESNETS: 6 | DEPTH: 50 7 | ROI_HEADS: 8 | NUM_CLASSES: 20 9 | INPUT: 10 | MIN_SIZE_TRAIN: (480, 512, 544, 576, 608, 640, 672, 704, 736, 768, 800) 11 | MIN_SIZE_TEST: 800 12 | DATASETS: 13 | TRAIN: ('voc_2007_trainval', 'voc_2012_trainval') 14 | TEST: ('voc_2007_test',) 15 | SOLVER: 16 | STEPS: (12000, 16000) 17 | MAX_ITER: 18000 # 17.4 epochs 18 | WARMUP_ITERS: 100 19 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/common/README.md: -------------------------------------------------------------------------------- 1 | This directory provides definitions for a few common models, dataloaders, scheduler, 2 | and optimizers that are often used in training. 3 | The definition of these objects are provided in the form of lazy instantiation: 4 | their arguments can be edited by users before constructing the objects. 5 | 6 | They can be imported, or loaded by `model_zoo.get_config` API in users' own configs. 7 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/common/data/coco_keypoint.py: -------------------------------------------------------------------------------- 1 | from detectron2.data.detection_utils import create_keypoint_hflip_indices 2 | 3 | from .coco import dataloader 4 | 5 | dataloader.train.dataset.min_keypoints = 1 6 | dataloader.train.dataset.names = "keypoints_coco_2017_train" 7 | dataloader.test.dataset.names = "keypoints_coco_2017_val" 8 | 9 | dataloader.train.mapper.update( 10 | use_instance_mask=False, 11 | use_keypoint=True, 12 | keypoint_hflip_indices=create_keypoint_hflip_indices(dataloader.train.dataset.names), 13 | ) 14 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/common/data/constants.py: -------------------------------------------------------------------------------- 1 | constants = dict( 2 | imagenet_rgb256_mean=[123.675, 116.28, 103.53], 3 | imagenet_rgb256_std=[58.395, 57.12, 57.375], 4 | imagenet_bgr256_mean=[103.530, 116.280, 123.675], 5 | # When using pre-trained models in Detectron1 or any MSRA models, 6 | # std has been absorbed into its conv1 weights, so the std needs to be set 1. 7 | # Otherwise, you can use [57.375, 57.120, 58.395] (ImageNet std) 8 | imagenet_bgr256_std=[1.0, 1.0, 1.0], 9 | ) 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/common/models/fcos.py: -------------------------------------------------------------------------------- 1 | from detectron2.modeling.meta_arch.fcos import FCOS, FCOSHead 2 | 3 | from .retinanet import model 4 | 5 | model._target_ = FCOS 6 | 7 | del model.anchor_generator 8 | del model.box2box_transform 9 | del model.anchor_matcher 10 | del model.input_format 11 | 12 | # Use P5 instead of C5 to compute P6/P7 13 | # (Sec 2.2 of https://arxiv.org/abs/2006.09214) 14 | model.backbone.top_block.in_feature = "p5" 15 | model.backbone.top_block.in_channels = 256 16 | 17 | # New score threshold determined based on sqrt(cls_score * centerness) 18 | model.test_score_thresh = 0.2 19 | model.test_nms_thresh = 0.6 20 | 21 | model.head._target_ = FCOSHead 22 | del model.head.num_anchors 23 | model.head.norm = "GN" 24 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/common/models/panoptic_fpn.py: -------------------------------------------------------------------------------- 1 | from detectron2.config import LazyCall as L 2 | from detectron2.layers import ShapeSpec 3 | from detectron2.modeling import PanopticFPN 4 | from detectron2.modeling.meta_arch.semantic_seg import SemSegFPNHead 5 | 6 | from .mask_rcnn_fpn import model 7 | 8 | model._target_ = PanopticFPN 9 | model.sem_seg_head = L(SemSegFPNHead)( 10 | input_shape={ 11 | f: L(ShapeSpec)(stride=s, channels="${....backbone.out_channels}") 12 | for f, s in zip(["p2", "p3", "p4", "p5"], [4, 8, 16, 32]) 13 | }, 14 | ignore_value=255, 15 | num_classes=54, # COCO stuff + 1 16 | conv_dims=128, 17 | common_stride=4, 18 | loss_weight=0.5, 19 | norm="GN", 20 | ) 21 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/common/train.py: -------------------------------------------------------------------------------- 1 | # Common training-related configs that are designed for "tools/lazyconfig_train_net.py" 2 | # You can use your own instead, together with your own train_net.py 3 | train = dict( 4 | output_dir="./output", 5 | init_checkpoint="", 6 | max_iter=90000, 7 | amp=dict(enabled=False), # options for Automatic Mixed Precision 8 | ddp=dict( # options for DistributedDataParallel 9 | broadcast_buffers=False, 10 | find_unused_parameters=False, 11 | fp16_compression=False, 12 | ), 13 | checkpointer=dict(period=5000, max_to_keep=100), # options for PeriodicCheckpointer 14 | eval_period=5000, 15 | log_period=20, 16 | device="cuda" 17 | # ... 18 | ) 19 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/new_baselines/mask_rcnn_R_101_FPN_100ep_LSJ.py: -------------------------------------------------------------------------------- 1 | from .mask_rcnn_R_50_FPN_100ep_LSJ import ( 2 | dataloader, 3 | lr_multiplier, 4 | model, 5 | optimizer, 6 | train, 7 | ) 8 | 9 | model.backbone.bottom_up.stages.depth = 101 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/new_baselines/mask_rcnn_R_101_FPN_200ep_LSJ.py: -------------------------------------------------------------------------------- 1 | from .mask_rcnn_R_101_FPN_100ep_LSJ import ( 2 | dataloader, 3 | lr_multiplier, 4 | model, 5 | optimizer, 6 | train, 7 | ) 8 | 9 | train.max_iter *= 2 # 100ep -> 200ep 10 | 11 | lr_multiplier.scheduler.milestones = [ 12 | milestone * 2 for milestone in lr_multiplier.scheduler.milestones 13 | ] 14 | lr_multiplier.scheduler.num_updates = train.max_iter 15 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/new_baselines/mask_rcnn_R_101_FPN_400ep_LSJ.py: -------------------------------------------------------------------------------- 1 | from .mask_rcnn_R_101_FPN_100ep_LSJ import ( 2 | dataloader, 3 | lr_multiplier, 4 | model, 5 | optimizer, 6 | train, 7 | ) 8 | 9 | train.max_iter *= 4 # 100ep -> 400ep 10 | 11 | lr_multiplier.scheduler.milestones = [ 12 | milestone * 4 for milestone in lr_multiplier.scheduler.milestones 13 | ] 14 | lr_multiplier.scheduler.num_updates = train.max_iter 15 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/new_baselines/mask_rcnn_R_50_FPN_200ep_LSJ.py: -------------------------------------------------------------------------------- 1 | from .mask_rcnn_R_50_FPN_100ep_LSJ import ( 2 | dataloader, 3 | lr_multiplier, 4 | model, 5 | optimizer, 6 | train, 7 | ) 8 | 9 | train.max_iter *= 2 # 100ep -> 200ep 10 | 11 | lr_multiplier.scheduler.milestones = [ 12 | milestone * 2 for milestone in lr_multiplier.scheduler.milestones 13 | ] 14 | lr_multiplier.scheduler.num_updates = train.max_iter 15 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/new_baselines/mask_rcnn_R_50_FPN_400ep_LSJ.py: -------------------------------------------------------------------------------- 1 | from .mask_rcnn_R_50_FPN_100ep_LSJ import ( 2 | dataloader, 3 | lr_multiplier, 4 | model, 5 | optimizer, 6 | train, 7 | ) 8 | 9 | train.max_iter *= 4 # 100ep -> 400ep 10 | 11 | lr_multiplier.scheduler.milestones = [ 12 | milestone * 4 for milestone in lr_multiplier.scheduler.milestones 13 | ] 14 | lr_multiplier.scheduler.num_updates = train.max_iter 15 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/new_baselines/mask_rcnn_R_50_FPN_50ep_LSJ.py: -------------------------------------------------------------------------------- 1 | from .mask_rcnn_R_50_FPN_100ep_LSJ import ( 2 | dataloader, 3 | lr_multiplier, 4 | model, 5 | optimizer, 6 | train, 7 | ) 8 | 9 | train.max_iter //= 2 # 100ep -> 50ep 10 | 11 | lr_multiplier.scheduler.milestones = [ 12 | milestone // 2 for milestone in lr_multiplier.scheduler.milestones 13 | ] 14 | lr_multiplier.scheduler.num_updates = train.max_iter 15 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/new_baselines/mask_rcnn_regnetx_4gf_dds_FPN_200ep_LSJ.py: -------------------------------------------------------------------------------- 1 | from .mask_rcnn_regnetx_4gf_dds_FPN_100ep_LSJ import ( 2 | dataloader, 3 | lr_multiplier, 4 | model, 5 | optimizer, 6 | train, 7 | ) 8 | 9 | train.max_iter *= 2 # 100ep -> 200ep 10 | 11 | lr_multiplier.scheduler.milestones = [ 12 | milestone * 2 for milestone in lr_multiplier.scheduler.milestones 13 | ] 14 | lr_multiplier.scheduler.num_updates = train.max_iter 15 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/new_baselines/mask_rcnn_regnetx_4gf_dds_FPN_400ep_LSJ.py: -------------------------------------------------------------------------------- 1 | from .mask_rcnn_regnetx_4gf_dds_FPN_100ep_LSJ import ( 2 | dataloader, 3 | lr_multiplier, 4 | model, 5 | optimizer, 6 | train, 7 | ) 8 | 9 | train.max_iter *= 4 # 100ep -> 400ep 10 | 11 | lr_multiplier.scheduler.milestones = [ 12 | milestone * 4 for milestone in lr_multiplier.scheduler.milestones 13 | ] 14 | lr_multiplier.scheduler.num_updates = train.max_iter 15 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/new_baselines/mask_rcnn_regnety_4gf_dds_FPN_200ep_LSJ.py: -------------------------------------------------------------------------------- 1 | from .mask_rcnn_regnety_4gf_dds_FPN_100ep_LSJ import ( 2 | dataloader, 3 | lr_multiplier, 4 | model, 5 | optimizer, 6 | train, 7 | ) 8 | 9 | train.max_iter *= 2 # 100ep -> 200ep 10 | 11 | lr_multiplier.scheduler.milestones = [ 12 | milestone * 2 for milestone in lr_multiplier.scheduler.milestones 13 | ] 14 | lr_multiplier.scheduler.num_updates = train.max_iter 15 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/new_baselines/mask_rcnn_regnety_4gf_dds_FPN_400ep_LSJ.py: -------------------------------------------------------------------------------- 1 | from .mask_rcnn_regnety_4gf_dds_FPN_100ep_LSJ import ( 2 | dataloader, 3 | lr_multiplier, 4 | model, 5 | optimizer, 6 | train, 7 | ) 8 | 9 | train.max_iter *= 4 # 100ep -> 400ep 10 | 11 | lr_multiplier.scheduler.milestones = [ 12 | milestone * 4 for milestone in lr_multiplier.scheduler.milestones 13 | ] 14 | lr_multiplier.scheduler.num_updates = train.max_iter 15 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/README.md: -------------------------------------------------------------------------------- 1 | These are quick configs for performance or accuracy regression tracking purposes. 2 | 3 | * `*instance_test.yaml`: can train on 2 GPUs. They are used to test whether the training can 4 | successfully finish. They are not expected to produce reasonable training results. 5 | * `*inference_acc_test.yaml`: They should be run using `--eval-only`. They run inference using pre-trained models and verify 6 | the results are as expected. 7 | * `*training_acc_test.yaml`: They should be trained on 8 GPUs. They finish in about an hour and verify the training accuracy 8 | is within the normal range. 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/cascade_mask_rcnn_R_50_FPN_inference_acc_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Misc/cascade_mask_rcnn_R_50_FPN_3x.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://Misc/cascade_mask_rcnn_R_50_FPN_3x/144998488/model_final_480dd8.pkl" 4 | DATASETS: 5 | TEST: ("coco_2017_val_100",) 6 | TEST: 7 | EXPECTED_RESULTS: [["bbox", "AP", 50.18, 0.02], ["segm", "AP", 43.87, 0.02]] 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/cascade_mask_rcnn_R_50_FPN_instant_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Misc/cascade_mask_rcnn_R_50_FPN_3x.yaml" 2 | DATASETS: 3 | TRAIN: ("coco_2017_val_100",) 4 | TEST: ("coco_2017_val_100",) 5 | SOLVER: 6 | BASE_LR: 0.005 7 | STEPS: (30,) 8 | MAX_ITER: 40 9 | IMS_PER_BATCH: 4 10 | DATALOADER: 11 | NUM_WORKERS: 2 12 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/fast_rcnn_R_50_FPN_inference_acc_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../COCO-Detection/fast_rcnn_R_50_FPN_1x.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://COCO-Detection/fast_rcnn_R_50_FPN_1x/137635226/model_final_e5f7ce.pkl" 4 | DATASETS: 5 | TEST: ("coco_2017_val_100",) 6 | TEST: 7 | EXPECTED_RESULTS: [["bbox", "AP", 45.70, 0.02]] 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/fast_rcnn_R_50_FPN_instant_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../COCO-Detection/fast_rcnn_R_50_FPN_1x.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | DATASETS: 5 | TRAIN: ("coco_2017_val_100",) 6 | PROPOSAL_FILES_TRAIN: ("detectron2://COCO-Detection/rpn_R_50_FPN_1x/137258492/coco_2017_val_box_proposals_ee0dad.pkl", ) 7 | TEST: ("coco_2017_val_100",) 8 | PROPOSAL_FILES_TEST: ("detectron2://COCO-Detection/rpn_R_50_FPN_1x/137258492/coco_2017_val_box_proposals_ee0dad.pkl", ) 9 | SOLVER: 10 | BASE_LR: 0.005 11 | STEPS: (30,) 12 | MAX_ITER: 40 13 | IMS_PER_BATCH: 4 14 | DATALOADER: 15 | NUM_WORKERS: 2 16 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/keypoint_rcnn_R_50_FPN_inference_acc_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../COCO-Keypoints/keypoint_rcnn_R_50_FPN_3x.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://COCO-Keypoints/keypoint_rcnn_R_50_FPN_3x/137849621/model_final_a6e10b.pkl" 4 | DATASETS: 5 | TEST: ("keypoints_coco_2017_val_100",) 6 | TEST: 7 | EXPECTED_RESULTS: [["bbox", "AP", 52.47, 0.02], ["keypoints", "AP", 67.36, 0.02]] 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/keypoint_rcnn_R_50_FPN_instant_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | KEYPOINT_ON: True 5 | ROI_HEADS: 6 | NUM_CLASSES: 1 7 | DATASETS: 8 | TRAIN: ("keypoints_coco_2017_val_100",) 9 | TEST: ("keypoints_coco_2017_val_100",) 10 | SOLVER: 11 | BASE_LR: 0.005 12 | STEPS: (30,) 13 | MAX_ITER: 40 14 | IMS_PER_BATCH: 4 15 | DATALOADER: 16 | NUM_WORKERS: 2 17 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/mask_rcnn_R_50_C4_GCV_instant_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-C4.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | DATASETS: 6 | TRAIN: ("coco_2017_val_100",) 7 | TEST: ("coco_2017_val_100",) 8 | SOLVER: 9 | BASE_LR: 0.001 10 | STEPS: (30,) 11 | MAX_ITER: 40 12 | IMS_PER_BATCH: 4 13 | CLIP_GRADIENTS: 14 | ENABLED: True 15 | CLIP_TYPE: "value" 16 | CLIP_VALUE: 1.0 17 | DATALOADER: 18 | NUM_WORKERS: 2 19 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/mask_rcnn_R_50_C4_inference_acc_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../COCO-InstanceSegmentation/mask_rcnn_R_50_C4_3x.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_C4_3x/137849525/model_final_4ce675.pkl" 4 | DATASETS: 5 | TEST: ("coco_2017_val_100",) 6 | TEST: 7 | EXPECTED_RESULTS: [["bbox", "AP", 47.37, 0.02], ["segm", "AP", 40.99, 0.02]] 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/mask_rcnn_R_50_C4_instant_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-C4.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | DATASETS: 6 | TRAIN: ("coco_2017_val_100",) 7 | TEST: ("coco_2017_val_100",) 8 | SOLVER: 9 | BASE_LR: 0.001 10 | STEPS: (30,) 11 | MAX_ITER: 40 12 | IMS_PER_BATCH: 4 13 | DATALOADER: 14 | NUM_WORKERS: 2 15 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/mask_rcnn_R_50_C4_training_acc_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-C4.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | ROI_HEADS: 5 | BATCH_SIZE_PER_IMAGE: 256 6 | MASK_ON: True 7 | DATASETS: 8 | TRAIN: ("coco_2017_val",) 9 | TEST: ("coco_2017_val",) 10 | INPUT: 11 | MIN_SIZE_TRAIN: (600,) 12 | MAX_SIZE_TRAIN: 1000 13 | MIN_SIZE_TEST: 800 14 | MAX_SIZE_TEST: 1000 15 | SOLVER: 16 | IMS_PER_BATCH: 8 # base uses 16 17 | WARMUP_FACTOR: 0.33333 18 | WARMUP_ITERS: 100 19 | STEPS: (11000, 11600) 20 | MAX_ITER: 12000 21 | TEST: 22 | EXPECTED_RESULTS: [["bbox", "AP", 41.88, 0.7], ["segm", "AP", 33.79, 0.5]] 23 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/mask_rcnn_R_50_DC5_inference_acc_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../COCO-InstanceSegmentation/mask_rcnn_R_50_DC5_3x.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_DC5_3x/137849551/model_final_84107b.pkl" 4 | DATASETS: 5 | TEST: ("coco_2017_val_100",) 6 | TEST: 7 | EXPECTED_RESULTS: [["bbox", "AP", 47.44, 0.02], ["segm", "AP", 42.94, 0.02]] 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/mask_rcnn_R_50_FPN_inference_acc_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl" 4 | DATASETS: 5 | TEST: ("coco_2017_val_100",) 6 | TEST: 7 | EXPECTED_RESULTS: [["bbox", "AP", 47.34, 0.02], ["segm", "AP", 42.67, 0.02], ["bbox_TTA", "AP", 49.11, 0.02], ["segm_TTA", "AP", 45.04, 0.02]] 8 | AUG: 9 | ENABLED: True 10 | MIN_SIZES: (700, 800) # to save some time 11 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/mask_rcnn_R_50_FPN_instant_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | DATASETS: 6 | TRAIN: ("coco_2017_val_100",) 7 | TEST: ("coco_2017_val_100",) 8 | SOLVER: 9 | BASE_LR: 0.005 10 | STEPS: (30,) 11 | MAX_ITER: 40 12 | IMS_PER_BATCH: 4 13 | DATALOADER: 14 | NUM_WORKERS: 2 15 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/mask_rcnn_R_50_FPN_pred_boxes_training_acc_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "./mask_rcnn_R_50_FPN_training_acc_test.yaml" 2 | MODEL: 3 | ROI_BOX_HEAD: 4 | TRAIN_ON_PRED_BOXES: True 5 | TEST: 6 | EXPECTED_RESULTS: [["bbox", "AP", 42.6, 1.0], ["segm", "AP", 35.8, 0.8]] 7 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/mask_rcnn_R_50_FPN_training_acc_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | ROI_HEADS: 5 | BATCH_SIZE_PER_IMAGE: 256 6 | MASK_ON: True 7 | DATASETS: 8 | TRAIN: ("coco_2017_val",) 9 | TEST: ("coco_2017_val",) 10 | INPUT: 11 | MIN_SIZE_TRAIN: (600,) 12 | MAX_SIZE_TRAIN: 1000 13 | MIN_SIZE_TEST: 800 14 | MAX_SIZE_TEST: 1000 15 | SOLVER: 16 | WARMUP_FACTOR: 0.3333333 17 | WARMUP_ITERS: 100 18 | STEPS: (5500, 5800) 19 | MAX_ITER: 6000 20 | TEST: 21 | EXPECTED_RESULTS: [["bbox", "AP", 42.5, 1.0], ["segm", "AP", 35.8, 0.8]] 22 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/panoptic_fpn_R_50_inference_acc_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../COCO-PanopticSegmentation/panoptic_fpn_R_50_3x.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://COCO-PanopticSegmentation/panoptic_fpn_R_50_3x/139514569/model_final_c10459.pkl" 4 | DATASETS: 5 | TEST: ("coco_2017_val_100_panoptic_separated",) 6 | TEST: 7 | EXPECTED_RESULTS: [["bbox", "AP", 46.47, 0.02], ["segm", "AP", 43.39, 0.02], ["sem_seg", "mIoU", 42.55, 0.02], ["panoptic_seg", "PQ", 38.99, 0.02]] 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/panoptic_fpn_R_50_instant_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | META_ARCHITECTURE: "PanopticFPN" 4 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 5 | MASK_ON: True 6 | RESNETS: 7 | DEPTH: 50 8 | SEM_SEG_HEAD: 9 | LOSS_WEIGHT: 0.5 10 | DATASETS: 11 | TRAIN: ("coco_2017_val_100_panoptic_separated",) 12 | TEST: ("coco_2017_val_100_panoptic_separated",) 13 | SOLVER: 14 | BASE_LR: 0.005 15 | STEPS: (30,) 16 | MAX_ITER: 40 17 | IMS_PER_BATCH: 4 18 | DATALOADER: 19 | NUM_WORKERS: 1 20 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/panoptic_fpn_R_50_training_acc_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | META_ARCHITECTURE: "PanopticFPN" 4 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 5 | MASK_ON: True 6 | RESNETS: 7 | DEPTH: 50 8 | SEM_SEG_HEAD: 9 | LOSS_WEIGHT: 0.5 10 | DATASETS: 11 | TRAIN: ("coco_2017_val_panoptic_separated",) 12 | TEST: ("coco_2017_val_panoptic_separated",) 13 | SOLVER: 14 | BASE_LR: 0.01 15 | WARMUP_FACTOR: 0.001 16 | WARMUP_ITERS: 500 17 | STEPS: (5500,) 18 | MAX_ITER: 7000 19 | TEST: 20 | EXPECTED_RESULTS: [["bbox", "AP", 46.70, 1.1], ["segm", "AP", 39.0, 0.7], ["sem_seg", "mIoU", 64.73, 1.3], ["panoptic_seg", "PQ", 48.13, 0.8]] 21 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/retinanet_R_50_FPN_inference_acc_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../COCO-Detection/retinanet_R_50_FPN_3x.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://COCO-Detection/retinanet_R_50_FPN_3x/190397829/model_final_5bd44e.pkl" 4 | DATASETS: 5 | TEST: ("coco_2017_val_100",) 6 | TEST: 7 | EXPECTED_RESULTS: [["bbox", "AP", 44.45, 0.02]] 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/retinanet_R_50_FPN_instant_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../COCO-Detection/retinanet_R_50_FPN_1x.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | DATASETS: 5 | TRAIN: ("coco_2017_val_100",) 6 | TEST: ("coco_2017_val_100",) 7 | SOLVER: 8 | BASE_LR: 0.005 9 | STEPS: (30,) 10 | MAX_ITER: 40 11 | IMS_PER_BATCH: 4 12 | DATALOADER: 13 | NUM_WORKERS: 2 14 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/rpn_R_50_FPN_inference_acc_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../COCO-Detection/rpn_R_50_FPN_1x.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://COCO-Detection/rpn_R_50_FPN_1x/137258492/model_final_02ce48.pkl" 4 | DATASETS: 5 | TEST: ("coco_2017_val_100",) 6 | TEST: 7 | EXPECTED_RESULTS: [["box_proposals", "AR@1000", 58.16, 0.02]] 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/rpn_R_50_FPN_instant_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../COCO-Detection/rpn_R_50_FPN_1x.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | DATASETS: 5 | TRAIN: ("coco_2017_val_100",) 6 | TEST: ("coco_2017_val_100",) 7 | SOLVER: 8 | STEPS: (30,) 9 | MAX_ITER: 40 10 | BASE_LR: 0.005 11 | IMS_PER_BATCH: 4 12 | DATALOADER: 13 | NUM_WORKERS: 2 14 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/semantic_R_50_FPN_inference_acc_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | META_ARCHITECTURE: "SemanticSegmentor" 4 | WEIGHTS: "detectron2://semantic_R_50_FPN_1x/111802073/model_final_c18079783c55a94968edc28b7101c5f0.pkl" 5 | RESNETS: 6 | DEPTH: 50 7 | DATASETS: 8 | TEST: ("coco_2017_val_100_panoptic_stuffonly",) 9 | TEST: 10 | EXPECTED_RESULTS: [["sem_seg", "mIoU", 39.53, 0.02], ["sem_seg", "mACC", 51.50, 0.02]] 11 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/semantic_R_50_FPN_instant_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | META_ARCHITECTURE: "SemanticSegmentor" 4 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 5 | RESNETS: 6 | DEPTH: 50 7 | DATASETS: 8 | TRAIN: ("coco_2017_val_100_panoptic_stuffonly",) 9 | TEST: ("coco_2017_val_100_panoptic_stuffonly",) 10 | INPUT: 11 | MIN_SIZE_TRAIN: (640, 672, 704, 736, 768, 800) 12 | SOLVER: 13 | BASE_LR: 0.005 14 | STEPS: (30,) 15 | MAX_ITER: 40 16 | IMS_PER_BATCH: 4 17 | DATALOADER: 18 | NUM_WORKERS: 2 19 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/configs/quick_schedules/semantic_R_50_FPN_training_acc_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-RCNN-FPN.yaml" 2 | MODEL: 3 | META_ARCHITECTURE: "SemanticSegmentor" 4 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 5 | RESNETS: 6 | DEPTH: 50 7 | DATASETS: 8 | TRAIN: ("coco_2017_val_panoptic_stuffonly",) 9 | TEST: ("coco_2017_val_panoptic_stuffonly",) 10 | SOLVER: 11 | BASE_LR: 0.01 12 | WARMUP_FACTOR: 0.001 13 | WARMUP_ITERS: 300 14 | STEPS: (5500,) 15 | MAX_ITER: 7000 16 | TEST: 17 | EXPECTED_RESULTS: [["sem_seg", "mIoU", 76.51, 1.0], ["sem_seg", "mACC", 83.25, 1.0]] 18 | INPUT: 19 | # no scale augmentation 20 | MIN_SIZE_TRAIN: (800, ) 21 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/demo/README.md: -------------------------------------------------------------------------------- 1 | 2 | ## Detectron2 Demo 3 | 4 | We provide a command line tool to run a simple demo of builtin configs. 5 | The usage is explained in [GETTING_STARTED.md](../GETTING_STARTED.md). 6 | 7 | See our [blog post](https://ai.facebook.com/blog/-detectron2-a-pytorch-based-modular-object-detection-library-) 8 | for a high-quality demo generated with this tool. 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from .utils.env import setup_environment 4 | 5 | setup_environment() 6 | 7 | 8 | # This line will be programatically read/write by setup.py. 9 | # Leave them at the bottom of this file and don't touch them. 10 | __version__ = "0.6" 11 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/checkpoint/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | # File: 4 | 5 | 6 | from . import catalog as _UNUSED # register the handler 7 | from .detection_checkpoint import DetectionCheckpointer 8 | from fvcore.common.checkpoint import Checkpointer, PeriodicCheckpointer 9 | 10 | __all__ = ["Checkpointer", "PeriodicCheckpointer", "DetectionCheckpointer"] 11 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/data/datasets/README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ### Common Datasets 4 | 5 | The dataset implemented here do not need to load the data into the final format. 6 | It should provide the minimal data structure needed to use the dataset, so it can be very efficient. 7 | 8 | For example, for an image dataset, just provide the file names and labels, but don't read the images. 9 | Let the downstream decide how to read. 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/data/datasets/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | from .coco import load_coco_json, load_sem_seg, register_coco_instances, convert_to_coco_json 3 | from .coco_panoptic import register_coco_panoptic, register_coco_panoptic_separated 4 | from .lvis import load_lvis_json, register_lvis_instances, get_lvis_instances_meta 5 | from .pascal_voc import load_voc_instances, register_pascal_voc 6 | from . import builtin as _builtin # ensure the builtin datasets are registered 7 | 8 | 9 | __all__ = [k for k in globals().keys() if not k.startswith("_")] 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/data/datasets/register_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | from .coco import register_coco_instances # noqa 3 | from .coco_panoptic import register_coco_panoptic_separated # noqa 4 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/data/samplers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | from .distributed_sampler import ( 3 | InferenceSampler, 4 | RandomSubsetTrainingSampler, 5 | RepeatFactorTrainingSampler, 6 | TrainingSampler, 7 | ) 8 | 9 | from .grouped_batch_sampler import GroupedBatchSampler 10 | 11 | __all__ = [ 12 | "GroupedBatchSampler", 13 | "TrainingSampler", 14 | "RandomSubsetTrainingSampler", 15 | "InferenceSampler", 16 | "RepeatFactorTrainingSampler", 17 | ] 18 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/data/transforms/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | from fvcore.transforms.transform import Transform, TransformList # order them first 3 | from fvcore.transforms.transform import * 4 | from .transform import * 5 | from .augmentation import * 6 | from .augmentation_impl import * 7 | 8 | __all__ = [k for k in globals().keys() if not k.startswith("_")] 9 | 10 | 11 | from detectron2.utils.env import fixup_module_metadata 12 | 13 | fixup_module_metadata(__name__, globals(), __all__) 14 | del fixup_module_metadata 15 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/engine/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from .launch import * 4 | from .train_loop import * 5 | 6 | __all__ = [k for k in globals().keys() if not k.startswith("_")] 7 | 8 | 9 | # prefer to let hooks and defaults live in separate namespaces (therefore not in __all__) 10 | # but still make them available here 11 | from .hooks import * 12 | from .defaults import * 13 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/export/README.md: -------------------------------------------------------------------------------- 1 | 2 | This directory contains code to prepare a detectron2 model for deployment. 3 | Currently it supports exporting a detectron2 model to TorchScript, ONNX, or (deprecated) Caffe2 format. 4 | 5 | Please see [documentation](https://detectron2.readthedocs.io/tutorials/deployment.html) for its usage. 6 | 7 | 8 | ### Acknowledgements 9 | 10 | Thanks to Mobile Vision team at Facebook for developing the Caffe2 conversion tools. 11 | 12 | Thanks to Computing Platform Department - PAI team at Alibaba Group (@bddpqq, @chenbohua3) who 13 | help export Detectron2 models to TorchScript. 14 | 15 | Thanks to ONNX Converter team at Microsoft who help export Detectron2 models to ONNX. 16 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/layers/csrc/README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | To add a new Op: 4 | 5 | 1. Create a new directory 6 | 2. Implement new ops there 7 | 3. Delcare its Python interface in `vision.cpp`. 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/layers/shape_spec.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | from dataclasses import dataclass 4 | from typing import Optional 5 | 6 | 7 | @dataclass 8 | class ShapeSpec: 9 | """ 10 | A simple structure that contains basic shape specification about a tensor. 11 | It is often used as the auxiliary inputs/outputs of models, 12 | to complement the lack of shape inference ability among pytorch modules. 13 | """ 14 | 15 | channels: Optional[int] = None 16 | height: Optional[int] = None 17 | width: Optional[int] = None 18 | stride: Optional[int] = None 19 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/model_zoo/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | """ 3 | Model Zoo API for Detectron2: a collection of functions to create common model architectures 4 | listed in `MODEL_ZOO.md `_, 5 | and optionally load their pre-trained weights. 6 | """ 7 | 8 | from .model_zoo import get, get_config_file, get_checkpoint_url, get_config 9 | 10 | __all__ = ["get_checkpoint_url", "get", "get_config_file", "get_config"] 11 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/modeling/backbone/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | from .build import build_backbone, BACKBONE_REGISTRY # noqa F401 isort:skip 3 | 4 | from .backbone import Backbone 5 | from .fpn import FPN 6 | from .regnet import RegNet 7 | from .resnet import ( 8 | BasicStem, 9 | ResNet, 10 | ResNetBlockBase, 11 | build_resnet_backbone, 12 | make_stage, 13 | BottleneckBlock, 14 | ) 15 | from .vit import ViT, SimpleFeaturePyramid, get_vit_lr_decay_rate 16 | from .mvit import MViT 17 | from .swin import SwinTransformer 18 | 19 | __all__ = [k for k in globals().keys() if not k.startswith("_")] 20 | # TODO can expose more resnet blocks after careful consideration 21 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/modeling/meta_arch/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | 4 | from .build import META_ARCH_REGISTRY, build_model # isort:skip 5 | 6 | from .panoptic_fpn import PanopticFPN 7 | 8 | # import all the meta_arch, so they will be registered 9 | from .rcnn import GeneralizedRCNN, ProposalNetwork 10 | from .dense_detector import DenseDetector 11 | from .retinanet import RetinaNet 12 | from .fcos import FCOS 13 | from .semantic_seg import SEM_SEG_HEADS_REGISTRY, SemanticSegmentor, build_sem_seg_head 14 | 15 | 16 | __all__ = list(globals().keys()) 17 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/modeling/proposal_generator/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | from .build import PROPOSAL_GENERATOR_REGISTRY, build_proposal_generator 3 | from .rpn import RPN_HEAD_REGISTRY, build_rpn_head, RPN, StandardRPNHead 4 | 5 | __all__ = list(globals().keys()) 6 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/projects/README.md: -------------------------------------------------------------------------------- 1 | 2 | Projects live in the [`projects` directory](../../projects) under the root of this repository, but not here. 3 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/solver/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | from .build import build_lr_scheduler, build_optimizer, get_default_optimizer_params 3 | from .lr_scheduler import WarmupCosineLR, WarmupMultiStepLR, LRMultiplier, WarmupParamScheduler 4 | 5 | __all__ = [k for k in globals().keys() if not k.startswith("_")] 6 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/tracking/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | from .base_tracker import ( # noqa 3 | BaseTracker, 4 | build_tracker_head, 5 | TRACKER_HEADS_REGISTRY, 6 | ) 7 | from .bbox_iou_tracker import BBoxIOUTracker # noqa 8 | from .hungarian_tracker import BaseHungarianTracker # noqa 9 | from .iou_weighted_hungarian_bbox_iou_tracker import ( # noqa 10 | IOUWeightedHungarianBBoxIOUTracker, 11 | ) 12 | from .utils import create_prediction_pairs # noqa 13 | from .vanilla_hungarian_bbox_iou_tracker import VanillaHungarianBBoxIOUTracker # noqa 14 | 15 | __all__ = [k for k in globals().keys() if not k.startswith("_")] 16 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/utils/README.md: -------------------------------------------------------------------------------- 1 | # Utility functions 2 | 3 | This folder contain utility functions that are not used in the 4 | core library, but are useful for building models or training 5 | code using the config system. 6 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/detectron2/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/dev/README.md: -------------------------------------------------------------------------------- 1 | 2 | ## Some scripts for developers to use, include: 3 | 4 | - `linter.sh`: lint the codebase before commit. 5 | - `run_{inference,instant}_tests.sh`: run inference/training for a few iterations. 6 | Note that these tests require 2 GPUs. 7 | - `parse_results.sh`: parse results from a log file. 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/dev/packaging/README.md: -------------------------------------------------------------------------------- 1 | 2 | ## To build a cu101 wheel for release: 3 | 4 | ``` 5 | $ nvidia-docker run -it --storage-opt "size=20GB" --name pt pytorch/manylinux-cuda101 6 | # inside the container: 7 | # git clone https://github.com/facebookresearch/detectron2/ 8 | # cd detectron2 9 | # export CU_VERSION=cu101 D2_VERSION_SUFFIX= PYTHON_VERSION=3.7 PYTORCH_VERSION=1.8 10 | # ./dev/packaging/build_wheel.sh 11 | ``` 12 | 13 | ## To build all wheels for combinations of CUDA and Python 14 | ``` 15 | ./dev/packaging/build_all_wheels.sh 16 | ./dev/packaging/gen_wheel_index.sh /path/to/wheels 17 | ``` 18 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docker/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "2.3" 2 | services: 3 | detectron2: 4 | build: 5 | context: . 6 | dockerfile: Dockerfile 7 | args: 8 | USER_ID: ${USER_ID:-1000} 9 | deploy: 10 | resources: 11 | reservations: 12 | devices: 13 | - capabilities: 14 | - gpu 15 | shm_size: "8gb" 16 | ulimits: 17 | memlock: -1 18 | stack: 67108864 19 | volumes: 20 | - /tmp/.X11-unix:/tmp/.X11-unix:ro 21 | environment: 22 | - DISPLAY=$DISPLAY 23 | - NVIDIA_VISIBLE_DEVICES=all 24 | # Uncomment with proper source to access webcam from docker 25 | # devices: 26 | # - /dev/video0:/dev/video0 27 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/.gitignore: -------------------------------------------------------------------------------- 1 | _build 2 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # Copyright (c) Facebook, Inc. and its affiliates. 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SOURCEDIR = . 8 | BUILDDIR = _build 9 | 10 | # Put it first so that "make" without argument is like "make help". 11 | help: 12 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 13 | 14 | .PHONY: help Makefile 15 | 16 | # Catch-all target: route all unknown targets to Sphinx using the new 17 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 18 | %: Makefile 19 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 20 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/_static/css/custom.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * some extra css to make markdown look similar between github/sphinx 4 | */ 5 | 6 | /* 7 | * Below is for install.md: 8 | */ 9 | .rst-content code { 10 | white-space: pre; 11 | border: 0px; 12 | } 13 | 14 | .rst-content th { 15 | border: 1px solid #e1e4e5; 16 | } 17 | 18 | .rst-content th p { 19 | /* otherwise will be default 24px for regular paragraph */ 20 | margin-bottom: 0px; 21 | } 22 | 23 | .rst-content .line-block { 24 | /* otherwise will be 24px */ 25 | margin-bottom: 0px; 26 | } 27 | 28 | div.section > details { 29 | padding-bottom: 1em; 30 | } 31 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/index.rst: -------------------------------------------------------------------------------- 1 | .. detectron2 documentation master file, created by 2 | sphinx-quickstart on Sat Sep 21 13:46:45 2019. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | Welcome to detectron2's documentation! 7 | ====================================== 8 | 9 | .. toctree:: 10 | :maxdepth: 2 11 | 12 | tutorials/index 13 | notes/index 14 | modules/index 15 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/modules/checkpoint.rst: -------------------------------------------------------------------------------- 1 | detectron2.checkpoint 2 | ============================= 3 | 4 | .. automodule:: detectron2.checkpoint 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/modules/config.rst: -------------------------------------------------------------------------------- 1 | detectron2.config 2 | ========================= 3 | 4 | Related tutorials: :doc:`../tutorials/configs`, :doc:`../tutorials/extend`. 5 | 6 | .. automodule:: detectron2.config 7 | :members: 8 | :undoc-members: 9 | :show-inheritance: 10 | 11 | 12 | Yaml Config References 13 | ----------------- 14 | 15 | .. literalinclude:: ../../detectron2/config/defaults.py 16 | :language: python 17 | :linenos: 18 | :lines: 7- 19 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/modules/data_transforms.rst: -------------------------------------------------------------------------------- 1 | detectron2.data.transforms 2 | ==================================== 3 | 4 | Related tutorial: :doc:`../tutorials/augmentation`. 5 | 6 | .. automodule:: detectron2.data.transforms 7 | :members: 8 | :undoc-members: 9 | :show-inheritance: 10 | :imported-members: 11 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/modules/engine.rst: -------------------------------------------------------------------------------- 1 | detectron2.engine 2 | ========================= 3 | 4 | Related tutorial: :doc:`../tutorials/training`. 5 | 6 | .. automodule:: detectron2.engine 7 | :members: 8 | :undoc-members: 9 | :show-inheritance: 10 | 11 | 12 | detectron2.engine.defaults module 13 | --------------------------------- 14 | 15 | .. automodule:: detectron2.engine.defaults 16 | :members: 17 | :undoc-members: 18 | :show-inheritance: 19 | 20 | detectron2.engine.hooks module 21 | --------------------------------- 22 | 23 | .. automodule:: detectron2.engine.hooks 24 | :members: 25 | :undoc-members: 26 | :show-inheritance: 27 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/modules/evaluation.rst: -------------------------------------------------------------------------------- 1 | detectron2.evaluation 2 | ============================= 3 | 4 | .. automodule:: detectron2.evaluation 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/modules/export.rst: -------------------------------------------------------------------------------- 1 | detectron2.export 2 | ========================= 3 | 4 | Related tutorial: :doc:`../tutorials/deployment`. 5 | 6 | .. automodule:: detectron2.export 7 | :members: 8 | :undoc-members: 9 | :show-inheritance: 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/modules/index.rst: -------------------------------------------------------------------------------- 1 | API Documentation 2 | ================== 3 | 4 | .. toctree:: 5 | 6 | checkpoint 7 | config 8 | data 9 | data_transforms 10 | engine 11 | evaluation 12 | layers 13 | model_zoo 14 | modeling 15 | solver 16 | structures 17 | utils 18 | export 19 | fvcore 20 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/modules/layers.rst: -------------------------------------------------------------------------------- 1 | detectron2.layers 2 | ========================= 3 | 4 | .. automodule:: detectron2.layers 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/modules/model_zoo.rst: -------------------------------------------------------------------------------- 1 | detectron2.model_zoo 2 | ============================ 3 | 4 | .. automodule:: detectron2.model_zoo 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/modules/solver.rst: -------------------------------------------------------------------------------- 1 | detectron2.solver 2 | ========================= 3 | 4 | .. automodule:: detectron2.solver 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/modules/structures.rst: -------------------------------------------------------------------------------- 1 | detectron2.structures 2 | ============================= 3 | 4 | .. automodule:: detectron2.structures 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/notes/contributing.md: -------------------------------------------------------------------------------- 1 | ../../.github/CONTRIBUTING.md -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/notes/index.rst: -------------------------------------------------------------------------------- 1 | Notes 2 | ====================================== 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | 7 | benchmarks 8 | compatibility 9 | contributing 10 | changelog 11 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/requirements.txt: -------------------------------------------------------------------------------- 1 | docutils==0.16 2 | # https://github.com/sphinx-doc/sphinx/commit/7acd3ada3f38076af7b2b5c9f3b60bb9c2587a3d 3 | sphinx==3.2.0 4 | recommonmark==0.6.0 5 | sphinx_rtd_theme 6 | # Dependencies here are only those required by import 7 | termcolor 8 | numpy 9 | tqdm 10 | matplotlib 11 | termcolor 12 | yacs 13 | tabulate 14 | cloudpickle 15 | Pillow 16 | future 17 | git+https://github.com/facebookresearch/fvcore.git 18 | https://download.pytorch.org/whl/cpu/torch-1.8.1%2Bcpu-cp37-cp37m-linux_x86_64.whl 19 | https://download.pytorch.org/whl/cpu/torchvision-0.9.1%2Bcpu-cp37-cp37m-linux_x86_64.whl 20 | omegaconf>=2.1.0.dev24 21 | hydra-core>=1.1.0.dev5 22 | scipy 23 | timm 24 | fairscale 25 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/tutorials/README.md: -------------------------------------------------------------------------------- 1 | # Read the docs: 2 | 3 | The latest documentation built from this directory is available at [detectron2.readthedocs.io](https://detectron2.readthedocs.io/). 4 | Documents in this directory are not meant to be read on github. 5 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/tutorials/builtin_datasets.md: -------------------------------------------------------------------------------- 1 | ../../datasets/README.md -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/tutorials/getting_started.md: -------------------------------------------------------------------------------- 1 | ../../GETTING_STARTED.md -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/tutorials/index.rst: -------------------------------------------------------------------------------- 1 | Tutorials 2 | ====================================== 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | 7 | install 8 | getting_started 9 | builtin_datasets 10 | extend 11 | datasets 12 | data_loading 13 | augmentation 14 | models 15 | write-models 16 | training 17 | evaluation 18 | configs 19 | lazyconfigs 20 | deployment 21 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/docs/tutorials/install.md: -------------------------------------------------------------------------------- 1 | ../../INSTALL.md -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DeepLab/configs/Cityscapes-SemanticSegmentation/deeplab_v3_R_103_os16_mg124_poly_90k_bs16.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: Base-DeepLabV3-OS16-Semantic.yaml 2 | MODEL: 3 | WEIGHTS: "detectron2://DeepLab/R-103.pkl" 4 | PIXEL_MEAN: [123.675, 116.280, 103.530] 5 | PIXEL_STD: [58.395, 57.120, 57.375] 6 | BACKBONE: 7 | NAME: "build_resnet_deeplab_backbone" 8 | RESNETS: 9 | DEPTH: 101 10 | NORM: "SyncBN" 11 | RES5_MULTI_GRID: [1, 2, 4] 12 | STEM_TYPE: "deeplab" 13 | STEM_OUT_CHANNELS: 128 14 | STRIDE_IN_1X1: False 15 | SEM_SEG_HEAD: 16 | NAME: "DeepLabV3Head" 17 | NORM: "SyncBN" 18 | INPUT: 19 | FORMAT: "RGB" 20 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DeepLab/deeplab/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | from .build_solver import build_lr_scheduler 3 | from .config import add_deeplab_config 4 | from .resnet import build_resnet_deeplab_backbone 5 | from .semantic_seg import DeepLabV3Head, DeepLabV3PlusHead 6 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/HRNet/densepose_rcnn_HRFPN_HRNet_w32_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "https://1drv.ms/u/s!Aus8VCZ_C_33dYBMemi9xOUFR0w" 4 | BACKBONE: 5 | NAME: "build_hrfpn_backbone" 6 | RPN: 7 | IN_FEATURES: ['p1', 'p2', 'p3', 'p4', 'p5'] 8 | ROI_HEADS: 9 | IN_FEATURES: ['p1', 'p2', 'p3', 'p4', 'p5'] 10 | SOLVER: 11 | MAX_ITER: 130000 12 | STEPS: (100000, 120000) 13 | CLIP_GRADIENTS: 14 | ENABLED: True 15 | CLIP_TYPE: "norm" 16 | BASE_LR: 0.03 17 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/HRNet/densepose_rcnn_HRFPN_HRNet_w40_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "https://1drv.ms/u/s!Aus8VCZ_C_33ck0gvo5jfoWBOPo" 4 | BACKBONE: 5 | NAME: "build_hrfpn_backbone" 6 | RPN: 7 | IN_FEATURES: ['p1', 'p2', 'p3', 'p4', 'p5'] 8 | ROI_HEADS: 9 | IN_FEATURES: ['p1', 'p2', 'p3', 'p4', 'p5'] 10 | HRNET: 11 | STAGE2: 12 | NUM_CHANNELS: [40, 80] 13 | STAGE3: 14 | NUM_CHANNELS: [40, 80, 160] 15 | STAGE4: 16 | NUM_CHANNELS: [40, 80, 160, 320] 17 | SOLVER: 18 | MAX_ITER: 130000 19 | STEPS: (100000, 120000) 20 | CLIP_GRADIENTS: 21 | ENABLED: True 22 | CLIP_TYPE: "norm" 23 | BASE_LR: 0.03 24 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/HRNet/densepose_rcnn_HRFPN_HRNet_w48_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "https://1drv.ms/u/s!Aus8VCZ_C_33dKvqI6pBZlifgJk" 4 | BACKBONE: 5 | NAME: "build_hrfpn_backbone" 6 | RPN: 7 | IN_FEATURES: ['p1', 'p2', 'p3', 'p4', 'p5'] 8 | ROI_HEADS: 9 | IN_FEATURES: ['p1', 'p2', 'p3', 'p4', 'p5'] 10 | HRNET: 11 | STAGE2: 12 | NUM_CHANNELS: [48, 96] 13 | STAGE3: 14 | NUM_CHANNELS: [48, 96, 192] 15 | STAGE4: 16 | NUM_CHANNELS: [48, 96, 192, 384] 17 | SOLVER: 18 | MAX_ITER: 130000 19 | STEPS: (100000, 120000) 20 | CLIP_GRADIENTS: 21 | ENABLED: True 22 | CLIP_TYPE: "norm" 23 | BASE_LR: 0.03 24 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/cse/Base-DensePose-RCNN-FPN-Human.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | ROI_DENSEPOSE_HEAD: 4 | CSE: 5 | EMBEDDERS: 6 | "smpl_27554": 7 | TYPE: vertex_feature 8 | NUM_VERTICES: 27554 9 | FEATURE_DIM: 256 10 | FEATURES_TRAINABLE: False 11 | IS_TRAINABLE: True 12 | INIT_FILE: "https://dl.fbaipublicfiles.com/densepose/data/cse/lbo/phi_smpl_27554_256.pkl" 13 | DATASETS: 14 | TRAIN: 15 | - "densepose_coco_2014_train_cse" 16 | - "densepose_coco_2014_valminusminival_cse" 17 | TEST: 18 | - "densepose_coco_2014_minival_cse" 19 | CLASS_TO_MESH_NAME_MAPPING: 20 | "0": "smpl_27554" 21 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/cse/densepose_rcnn_R_101_FPN_DL_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN-Human.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | RESNETS: 5 | DEPTH: 101 6 | ROI_DENSEPOSE_HEAD: 7 | NAME: "DensePoseDeepLabHead" 8 | CSE: 9 | EMBED_LOSS_NAME: "EmbeddingLoss" 10 | SOLVER: 11 | MAX_ITER: 130000 12 | STEPS: (100000, 120000) 13 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/cse/densepose_rcnn_R_101_FPN_DL_soft_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN-Human.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | RESNETS: 5 | DEPTH: 101 6 | ROI_DENSEPOSE_HEAD: 7 | NAME: "DensePoseDeepLabHead" 8 | CSE: 9 | EMBED_LOSS_NAME: "SoftEmbeddingLoss" 10 | SOLVER: 11 | MAX_ITER: 130000 12 | STEPS: (100000, 120000) 13 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/cse/densepose_rcnn_R_101_FPN_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN-Human.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | RESNETS: 5 | DEPTH: 101 6 | ROI_DENSEPOSE_HEAD: 7 | NAME: "DensePoseV1ConvXHead" 8 | CSE: 9 | EMBED_LOSS_NAME: "EmbeddingLoss" 10 | SOLVER: 11 | MAX_ITER: 130000 12 | STEPS: (100000, 120000) 13 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/cse/densepose_rcnn_R_101_FPN_soft_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN-Human.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | RESNETS: 5 | DEPTH: 101 6 | ROI_DENSEPOSE_HEAD: 7 | NAME: "DensePoseV1ConvXHead" 8 | CSE: 9 | EMBED_LOSS_NAME: "SoftEmbeddingLoss" 10 | SOLVER: 11 | MAX_ITER: 130000 12 | STEPS: (100000, 120000) 13 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/cse/densepose_rcnn_R_50_FPN_DL_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN-Human.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | ROI_DENSEPOSE_HEAD: 7 | NAME: "DensePoseDeepLabHead" 8 | CSE: 9 | EMBED_LOSS_NAME: "EmbeddingLoss" 10 | SOLVER: 11 | MAX_ITER: 130000 12 | STEPS: (100000, 120000) 13 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/cse/densepose_rcnn_R_50_FPN_DL_soft_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN-Human.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | ROI_DENSEPOSE_HEAD: 7 | NAME: "DensePoseDeepLabHead" 8 | CSE: 9 | EMBED_LOSS_NAME: "SoftEmbeddingLoss" 10 | SOLVER: 11 | MAX_ITER: 130000 12 | STEPS: (100000, 120000) 13 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/cse/densepose_rcnn_R_50_FPN_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN-Human.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | ROI_DENSEPOSE_HEAD: 7 | NAME: "DensePoseV1ConvXHead" 8 | CSE: 9 | EMBED_LOSS_NAME: "EmbeddingLoss" 10 | SOLVER: 11 | MAX_ITER: 130000 12 | STEPS: (100000, 120000) 13 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/cse/densepose_rcnn_R_50_FPN_soft_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN-Human.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | ROI_DENSEPOSE_HEAD: 7 | NAME: "DensePoseV1ConvXHead" 8 | CSE: 9 | EMBED_LOSS_NAME: "SoftEmbeddingLoss" 10 | SOLVER: 11 | MAX_ITER: 130000 12 | STEPS: (100000, 120000) 13 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_101_FPN_DL_WC1M_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | RESNETS: 5 | DEPTH: 101 6 | ROI_DENSEPOSE_HEAD: 7 | NAME: "DensePoseDeepLabHead" 8 | UV_CONFIDENCE: 9 | ENABLED: True 10 | TYPE: "iid_iso" 11 | SEGM_CONFIDENCE: 12 | ENABLED: True 13 | POINT_REGRESSION_WEIGHTS: 0.0005 14 | SOLVER: 15 | CLIP_GRADIENTS: 16 | ENABLED: True 17 | MAX_ITER: 130000 18 | STEPS: (100000, 120000) 19 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_101_FPN_DL_WC1_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | RESNETS: 5 | DEPTH: 101 6 | ROI_DENSEPOSE_HEAD: 7 | NAME: "DensePoseDeepLabHead" 8 | UV_CONFIDENCE: 9 | ENABLED: True 10 | TYPE: "iid_iso" 11 | POINT_REGRESSION_WEIGHTS: 0.0005 12 | SOLVER: 13 | CLIP_GRADIENTS: 14 | ENABLED: True 15 | MAX_ITER: 130000 16 | STEPS: (100000, 120000) 17 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_101_FPN_DL_WC2M_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | RESNETS: 5 | DEPTH: 101 6 | ROI_DENSEPOSE_HEAD: 7 | NAME: "DensePoseDeepLabHead" 8 | UV_CONFIDENCE: 9 | ENABLED: True 10 | TYPE: "indep_aniso" 11 | SEGM_CONFIDENCE: 12 | ENABLED: True 13 | POINT_REGRESSION_WEIGHTS: 0.0005 14 | SOLVER: 15 | CLIP_GRADIENTS: 16 | ENABLED: True 17 | MAX_ITER: 130000 18 | STEPS: (100000, 120000) 19 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_101_FPN_DL_WC2_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | RESNETS: 5 | DEPTH: 101 6 | ROI_DENSEPOSE_HEAD: 7 | NAME: "DensePoseDeepLabHead" 8 | UV_CONFIDENCE: 9 | ENABLED: True 10 | TYPE: "indep_aniso" 11 | POINT_REGRESSION_WEIGHTS: 0.0005 12 | SOLVER: 13 | CLIP_GRADIENTS: 14 | ENABLED: True 15 | MAX_ITER: 130000 16 | STEPS: (100000, 120000) 17 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_101_FPN_DL_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | RESNETS: 5 | DEPTH: 101 6 | ROI_DENSEPOSE_HEAD: 7 | NAME: "DensePoseDeepLabHead" 8 | SOLVER: 9 | MAX_ITER: 130000 10 | STEPS: (100000, 120000) 11 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_101_FPN_WC1M_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | RESNETS: 5 | DEPTH: 101 6 | ROI_DENSEPOSE_HEAD: 7 | UV_CONFIDENCE: 8 | ENABLED: True 9 | TYPE: "iid_iso" 10 | SEGM_CONFIDENCE: 11 | ENABLED: True 12 | POINT_REGRESSION_WEIGHTS: 0.0005 13 | SOLVER: 14 | CLIP_GRADIENTS: 15 | ENABLED: True 16 | MAX_ITER: 130000 17 | STEPS: (100000, 120000) 18 | WARMUP_FACTOR: 0.025 19 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_101_FPN_WC1_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | RESNETS: 5 | DEPTH: 101 6 | ROI_DENSEPOSE_HEAD: 7 | UV_CONFIDENCE: 8 | ENABLED: True 9 | TYPE: "iid_iso" 10 | POINT_REGRESSION_WEIGHTS: 0.0005 11 | SOLVER: 12 | CLIP_GRADIENTS: 13 | ENABLED: True 14 | MAX_ITER: 130000 15 | STEPS: (100000, 120000) 16 | WARMUP_FACTOR: 0.025 17 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_101_FPN_WC2M_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | RESNETS: 5 | DEPTH: 101 6 | ROI_DENSEPOSE_HEAD: 7 | UV_CONFIDENCE: 8 | ENABLED: True 9 | TYPE: "indep_aniso" 10 | SEGM_CONFIDENCE: 11 | ENABLED: True 12 | POINT_REGRESSION_WEIGHTS: 0.0005 13 | SOLVER: 14 | CLIP_GRADIENTS: 15 | ENABLED: True 16 | MAX_ITER: 130000 17 | STEPS: (100000, 120000) 18 | WARMUP_FACTOR: 0.025 19 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_101_FPN_WC2_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | RESNETS: 5 | DEPTH: 101 6 | ROI_DENSEPOSE_HEAD: 7 | UV_CONFIDENCE: 8 | ENABLED: True 9 | TYPE: "indep_aniso" 10 | POINT_REGRESSION_WEIGHTS: 0.0005 11 | SOLVER: 12 | CLIP_GRADIENTS: 13 | ENABLED: True 14 | MAX_ITER: 130000 15 | STEPS: (100000, 120000) 16 | WARMUP_FACTOR: 0.025 17 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_101_FPN_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | RESNETS: 5 | DEPTH: 101 6 | SOLVER: 7 | MAX_ITER: 130000 8 | STEPS: (100000, 120000) 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_101_FPN_s1x_legacy.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | RESNETS: 5 | DEPTH: 101 6 | ROI_DENSEPOSE_HEAD: 7 | NUM_COARSE_SEGM_CHANNELS: 15 8 | POOLER_RESOLUTION: 14 9 | HEATMAP_SIZE: 56 10 | INDEX_WEIGHTS: 2.0 11 | PART_WEIGHTS: 0.3 12 | POINT_REGRESSION_WEIGHTS: 0.1 13 | DECODER_ON: False 14 | SOLVER: 15 | BASE_LR: 0.002 16 | MAX_ITER: 130000 17 | STEPS: (100000, 120000) 18 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_50_FPN_DL_WC1M_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | ROI_DENSEPOSE_HEAD: 7 | NAME: "DensePoseDeepLabHead" 8 | UV_CONFIDENCE: 9 | ENABLED: True 10 | TYPE: "iid_iso" 11 | SEGM_CONFIDENCE: 12 | ENABLED: True 13 | POINT_REGRESSION_WEIGHTS: 0.0005 14 | SOLVER: 15 | CLIP_GRADIENTS: 16 | ENABLED: True 17 | MAX_ITER: 130000 18 | STEPS: (100000, 120000) 19 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_50_FPN_DL_WC1_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | ROI_DENSEPOSE_HEAD: 7 | NAME: "DensePoseDeepLabHead" 8 | UV_CONFIDENCE: 9 | ENABLED: True 10 | TYPE: "iid_iso" 11 | POINT_REGRESSION_WEIGHTS: 0.0005 12 | SOLVER: 13 | CLIP_GRADIENTS: 14 | ENABLED: True 15 | MAX_ITER: 130000 16 | STEPS: (100000, 120000) 17 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_50_FPN_DL_WC2M_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | ROI_DENSEPOSE_HEAD: 7 | NAME: "DensePoseDeepLabHead" 8 | UV_CONFIDENCE: 9 | ENABLED: True 10 | TYPE: "indep_aniso" 11 | SEGM_CONFIDENCE: 12 | ENABLED: True 13 | POINT_REGRESSION_WEIGHTS: 0.0005 14 | SOLVER: 15 | CLIP_GRADIENTS: 16 | ENABLED: True 17 | MAX_ITER: 130000 18 | STEPS: (100000, 120000) 19 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_50_FPN_DL_WC2_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | ROI_DENSEPOSE_HEAD: 7 | NAME: "DensePoseDeepLabHead" 8 | UV_CONFIDENCE: 9 | ENABLED: True 10 | TYPE: "indep_aniso" 11 | POINT_REGRESSION_WEIGHTS: 0.0005 12 | SOLVER: 13 | CLIP_GRADIENTS: 14 | ENABLED: True 15 | MAX_ITER: 130000 16 | STEPS: (100000, 120000) 17 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_50_FPN_DL_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | ROI_DENSEPOSE_HEAD: 7 | NAME: "DensePoseDeepLabHead" 8 | SOLVER: 9 | MAX_ITER: 130000 10 | STEPS: (100000, 120000) 11 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_50_FPN_WC1M_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | ROI_DENSEPOSE_HEAD: 7 | UV_CONFIDENCE: 8 | ENABLED: True 9 | TYPE: "iid_iso" 10 | SEGM_CONFIDENCE: 11 | ENABLED: True 12 | POINT_REGRESSION_WEIGHTS: 0.0005 13 | SOLVER: 14 | CLIP_GRADIENTS: 15 | ENABLED: True 16 | CLIP_TYPE: norm 17 | CLIP_VALUE: 100.0 18 | MAX_ITER: 130000 19 | STEPS: (100000, 120000) 20 | WARMUP_FACTOR: 0.025 21 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_50_FPN_WC1_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | ROI_DENSEPOSE_HEAD: 7 | UV_CONFIDENCE: 8 | ENABLED: True 9 | TYPE: "iid_iso" 10 | POINT_REGRESSION_WEIGHTS: 0.0005 11 | SOLVER: 12 | CLIP_GRADIENTS: 13 | ENABLED: True 14 | MAX_ITER: 130000 15 | STEPS: (100000, 120000) 16 | WARMUP_FACTOR: 0.025 17 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_50_FPN_WC2M_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | ROI_DENSEPOSE_HEAD: 7 | UV_CONFIDENCE: 8 | ENABLED: True 9 | TYPE: "indep_aniso" 10 | SEGM_CONFIDENCE: 11 | ENABLED: True 12 | POINT_REGRESSION_WEIGHTS: 0.0005 13 | SOLVER: 14 | CLIP_GRADIENTS: 15 | ENABLED: True 16 | MAX_ITER: 130000 17 | STEPS: (100000, 120000) 18 | WARMUP_FACTOR: 0.025 19 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_50_FPN_WC2_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | ROI_DENSEPOSE_HEAD: 7 | UV_CONFIDENCE: 8 | ENABLED: True 9 | TYPE: "indep_aniso" 10 | POINT_REGRESSION_WEIGHTS: 0.0005 11 | SOLVER: 12 | CLIP_GRADIENTS: 13 | ENABLED: True 14 | MAX_ITER: 130000 15 | STEPS: (100000, 120000) 16 | WARMUP_FACTOR: 0.025 17 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_50_FPN_s1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | SOLVER: 7 | MAX_ITER: 130000 8 | STEPS: (100000, 120000) 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/densepose_rcnn_R_50_FPN_s1x_legacy.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | ROI_DENSEPOSE_HEAD: 7 | NUM_COARSE_SEGM_CHANNELS: 15 8 | POOLER_RESOLUTION: 14 9 | HEATMAP_SIZE: 56 10 | INDEX_WEIGHTS: 2.0 11 | PART_WEIGHTS: 0.3 12 | POINT_REGRESSION_WEIGHTS: 0.1 13 | DECODER_ON: False 14 | SOLVER: 15 | BASE_LR: 0.002 16 | MAX_ITER: 130000 17 | STEPS: (100000, 120000) 18 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/quick_schedules/cse/densepose_rcnn_R_50_FPN_DL_instant_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../../cse/Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | ROI_DENSEPOSE_HEAD: 5 | NAME: "DensePoseDeepLabHead" 6 | DATASETS: 7 | TRAIN: ("densepose_coco_2014_minival_100_cse",) 8 | TEST: ("densepose_coco_2014_minival_100_cse",) 9 | SOLVER: 10 | MAX_ITER: 40 11 | STEPS: (30,) 12 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/quick_schedules/densepose_rcnn_HRFPN_HRNet_w32_instant_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../HRNet/densepose_rcnn_HRFPN_HRNet_w32_s1x.yaml" 2 | DATASETS: 3 | TRAIN: ("densepose_coco_2014_minival_100",) 4 | TEST: ("densepose_coco_2014_minival_100",) 5 | SOLVER: 6 | MAX_ITER: 40 7 | STEPS: (30,) 8 | IMS_PER_BATCH: 2 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/quick_schedules/densepose_rcnn_R_50_FPN_DL_instant_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | ROI_DENSEPOSE_HEAD: 5 | NAME: "DensePoseDeepLabHead" 6 | DATASETS: 7 | TRAIN: ("densepose_coco_2014_minival_100",) 8 | TEST: ("densepose_coco_2014_minival_100",) 9 | SOLVER: 10 | MAX_ITER: 40 11 | STEPS: (30,) 12 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/quick_schedules/densepose_rcnn_R_50_FPN_TTA_inference_acc_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../densepose_rcnn_R_50_FPN_s1x.yaml" 2 | MODEL: 3 | WEIGHTS: "https://dl.fbaipublicfiles.com/densepose/densepose_rcnn_R_50_FPN_s1x/165712039/model_final_162be9.pkl" 4 | DATASETS: 5 | TRAIN: () 6 | TEST: ("densepose_coco_2014_minival_100",) 7 | TEST: 8 | AUG: 9 | ENABLED: True 10 | MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200) 11 | MAX_SIZE: 4000 12 | FLIP: True 13 | EXPECTED_RESULTS: [["bbox_TTA", "AP", 61.74, 0.03], ["densepose_gps_TTA", "AP", 60.22, 0.03], ["densepose_gpsm_TTA", "AP", 63.59, 0.03]] 14 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/quick_schedules/densepose_rcnn_R_50_FPN_WC1_instant_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | ROI_DENSEPOSE_HEAD: 7 | UV_CONFIDENCE: 8 | ENABLED: True 9 | TYPE: "iid_iso" 10 | POINT_REGRESSION_WEIGHTS: 0.0005 11 | DATASETS: 12 | TRAIN: ("densepose_coco_2014_minival_100",) 13 | TEST: ("densepose_coco_2014_minival_100",) 14 | SOLVER: 15 | CLIP_GRADIENTS: 16 | ENABLED: True 17 | MAX_ITER: 40 18 | STEPS: (30,) 19 | WARMUP_FACTOR: 0.025 20 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/quick_schedules/densepose_rcnn_R_50_FPN_WC2_instant_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | ROI_DENSEPOSE_HEAD: 7 | UV_CONFIDENCE: 8 | ENABLED: True 9 | TYPE: "indep_aniso" 10 | POINT_REGRESSION_WEIGHTS: 0.0005 11 | DATASETS: 12 | TRAIN: ("densepose_coco_2014_minival_100",) 13 | TEST: ("densepose_coco_2014_minival_100",) 14 | SOLVER: 15 | CLIP_GRADIENTS: 16 | ENABLED: True 17 | MAX_ITER: 40 18 | STEPS: (30,) 19 | WARMUP_FACTOR: 0.025 20 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/quick_schedules/densepose_rcnn_R_50_FPN_inference_acc_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../densepose_rcnn_R_50_FPN_s1x.yaml" 2 | MODEL: 3 | WEIGHTS: "https://dl.fbaipublicfiles.com/densepose/densepose_rcnn_R_50_FPN_s1x/165712039/model_final_162be9.pkl" 4 | DATASETS: 5 | TRAIN: () 6 | TEST: ("densepose_coco_2014_minival_100",) 7 | TEST: 8 | EXPECTED_RESULTS: [["bbox", "AP", 59.27, 0.025], ["densepose_gps", "AP", 60.11, 0.02], ["densepose_gpsm", "AP", 64.09, 0.02]] 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/quick_schedules/densepose_rcnn_R_50_FPN_instant_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | DATASETS: 5 | TRAIN: ("densepose_coco_2014_minival_100",) 6 | TEST: ("densepose_coco_2014_minival_100",) 7 | SOLVER: 8 | MAX_ITER: 40 9 | STEPS: (30,) 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/configs/quick_schedules/densepose_rcnn_R_50_FPN_training_acc_test.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../Base-DensePose-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | ROI_HEADS: 5 | NUM_CLASSES: 1 6 | DATASETS: 7 | TRAIN: ("densepose_coco_2014_minival",) 8 | TEST: ("densepose_coco_2014_minival",) 9 | SOLVER: 10 | CLIP_GRADIENTS: 11 | ENABLED: True 12 | CLIP_TYPE: norm 13 | CLIP_VALUE: 1.0 14 | MAX_ITER: 6000 15 | STEPS: (5500, 5800) 16 | TEST: 17 | EXPECTED_RESULTS: [["bbox", "AP", 76.2477, 1.0], ["densepose_gps", "AP", 79.6090, 1.5], ["densepose_gpsm", "AP", 80.0061, 1.5]] 18 | 19 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/data/datasets/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from . import builtin # ensure the builtin datasets are registered 4 | 5 | __all__ = [k for k in globals().keys() if "builtin" not in k and not k.startswith("_")] 6 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/data/datasets/dataset_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from enum import Enum 4 | 5 | 6 | class DatasetType(Enum): 7 | """ 8 | Dataset type, mostly used for datasets that contain data to bootstrap models on 9 | """ 10 | 11 | VIDEO_LIST = "video_list" 12 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/data/meshes/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved 2 | 3 | from . import builtin 4 | 5 | __all__ = [k for k in globals().keys() if "builtin" not in k and not k.startswith("_")] 6 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/data/samplers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from .densepose_uniform import DensePoseUniformSampler 4 | from .densepose_confidence_based import DensePoseConfidenceBasedSampler 5 | from .densepose_cse_uniform import DensePoseCSEUniformSampler 6 | from .densepose_cse_confidence_based import DensePoseCSEConfidenceBasedSampler 7 | from .mask_from_densepose import MaskFromDensePoseSampler 8 | from .prediction_to_gt import PredictionToGroundTruthSampler 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/data/samplers/densepose_cse_uniform.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from .densepose_cse_base import DensePoseCSEBaseSampler 4 | from .densepose_uniform import DensePoseUniformSampler 5 | 6 | 7 | class DensePoseCSEUniformSampler(DensePoseCSEBaseSampler, DensePoseUniformSampler): 8 | """ 9 | Uniform Sampler for CSE 10 | """ 11 | 12 | pass 13 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/data/transform/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from .image import ImageResizeTransform 4 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/data/video/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from .frame_selector import ( 4 | FrameSelectionStrategy, 5 | RandomKFramesSelector, 6 | FirstKFramesSelector, 7 | LastKFramesSelector, 8 | FrameTsList, 9 | FrameSelector, 10 | ) 11 | 12 | from .video_keyframe_dataset import ( 13 | VideoKeyframeDataset, 14 | video_list_from_file, 15 | list_keyframes, 16 | read_keyframes, 17 | ) 18 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/engine/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from .trainer import Trainer 4 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/evaluation/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from .evaluator import DensePoseCOCOEvaluator 4 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/modeling/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from .confidence import DensePoseConfidenceModelConfig, DensePoseUVConfidenceType 4 | from .filter import DensePoseDataFilter 5 | from .inference import densepose_inference 6 | from .utils import initialize_module_params 7 | from .build import ( 8 | build_densepose_data_filter, 9 | build_densepose_embedder, 10 | build_densepose_head, 11 | build_densepose_losses, 12 | build_densepose_predictor, 13 | ) 14 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/modeling/cse/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved 2 | 3 | from .vertex_direct_embedder import VertexDirectEmbedder 4 | from .vertex_feature_embedder import VertexFeatureEmbedder 5 | from .embedder import Embedder 6 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/modeling/losses/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from .chart import DensePoseChartLoss 4 | from .chart_with_confidences import DensePoseChartWithConfidenceLoss 5 | from .cse import DensePoseCseLoss 6 | from .registry import DENSEPOSE_LOSS_REGISTRY 7 | 8 | 9 | __all__ = [ 10 | "DensePoseChartLoss", 11 | "DensePoseChartWithConfidenceLoss", 12 | "DensePoseCseLoss", 13 | "DENSEPOSE_LOSS_REGISTRY", 14 | ] 15 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/modeling/losses/registry.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from detectron2.utils.registry import Registry 4 | 5 | DENSEPOSE_LOSS_REGISTRY = Registry("DENSEPOSE_LOSS") 6 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/modeling/predictors/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from .chart import DensePoseChartPredictor 4 | from .chart_confidence import DensePoseChartConfidencePredictorMixin 5 | from .chart_with_confidence import DensePoseChartWithConfidencePredictor 6 | from .cse import DensePoseEmbeddingPredictor 7 | from .cse_confidence import DensePoseEmbeddingConfidencePredictorMixin 8 | from .cse_with_confidence import DensePoseEmbeddingWithConfidencePredictor 9 | from .registry import DENSEPOSE_PREDICTOR_REGISTRY 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/modeling/predictors/chart_with_confidence.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from . import DensePoseChartConfidencePredictorMixin, DensePoseChartPredictor 4 | from .registry import DENSEPOSE_PREDICTOR_REGISTRY 5 | 6 | 7 | @DENSEPOSE_PREDICTOR_REGISTRY.register() 8 | class DensePoseChartWithConfidencePredictor( 9 | DensePoseChartConfidencePredictorMixin, DensePoseChartPredictor 10 | ): 11 | """ 12 | Predictor that combines chart and chart confidence estimation 13 | """ 14 | 15 | pass 16 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/modeling/predictors/cse_with_confidence.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from . import DensePoseEmbeddingConfidencePredictorMixin, DensePoseEmbeddingPredictor 4 | from .registry import DENSEPOSE_PREDICTOR_REGISTRY 5 | 6 | 7 | @DENSEPOSE_PREDICTOR_REGISTRY.register() 8 | class DensePoseEmbeddingWithConfidencePredictor( 9 | DensePoseEmbeddingConfidencePredictorMixin, DensePoseEmbeddingPredictor 10 | ): 11 | """ 12 | Predictor that combines CSE and CSE confidence estimation 13 | """ 14 | 15 | pass 16 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/modeling/predictors/registry.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from detectron2.utils.registry import Registry 4 | 5 | DENSEPOSE_PREDICTOR_REGISTRY = Registry("DENSEPOSE_PREDICTOR") 6 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/modeling/roi_heads/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from .v1convx import DensePoseV1ConvXHead 4 | from .deeplab import DensePoseDeepLabHead 5 | from .registry import ROI_DENSEPOSE_HEAD_REGISTRY 6 | from .roi_head import Decoder, DensePoseROIHeads 7 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/modeling/roi_heads/registry.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from detectron2.utils.registry import Registry 4 | 5 | ROI_DENSEPOSE_HEAD_REGISTRY = Registry("ROI_DENSEPOSE_HEAD") 6 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/modeling/utils.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | from torch import nn 4 | 5 | 6 | def initialize_module_params(module: nn.Module) -> None: 7 | for name, param in module.named_parameters(): 8 | if "bias" in name: 9 | nn.init.constant_(param, 0) 10 | elif "weight" in name: 11 | nn.init.kaiming_normal_(param, mode="fan_out", nonlinearity="relu") 12 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/leafmachine2/segmentation/detectron2/projects/DensePose/densepose/utils/__init__.py -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/utils/logger.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | import logging 3 | 4 | 5 | def verbosity_to_level(verbosity) -> int: 6 | if verbosity is not None: 7 | if verbosity == 0: 8 | return logging.WARNING 9 | elif verbosity == 1: 10 | return logging.INFO 11 | elif verbosity >= 2: 12 | return logging.DEBUG 13 | return logging.WARNING 14 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/utils/transform.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | from detectron2.data import MetadataCatalog 3 | from detectron2.utils.file_io import PathManager 4 | 5 | from densepose import DensePoseTransformData 6 | 7 | 8 | def load_for_dataset(dataset_name): 9 | path = MetadataCatalog.get(dataset_name).densepose_transform_src 10 | densepose_transform_data_fpath = PathManager.get_local_path(path) 11 | return DensePoseTransformData.load(densepose_transform_data_fpath) 12 | 13 | 14 | def load_from_cfg(cfg): 15 | return load_for_dataset(cfg.DATASETS.TEST[0]) 16 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/densepose/vis/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/leafmachine2/segmentation/detectron2/projects/DensePose/densepose/vis/__init__.py -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/dev/README.md: -------------------------------------------------------------------------------- 1 | 2 | ## Some scripts for developers to use, include: 3 | 4 | - `run_instant_tests.sh`: run training for a few iterations. 5 | - `run_inference_tests.sh`: run inference on a small dataset. 6 | - `../../dev/linter.sh`: lint the codebase before commit 7 | - `../../dev/parse_results.sh`: parse results from log file. 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/DensePose/doc/RELEASE_2020_04.md: -------------------------------------------------------------------------------- 1 | # DensePose Confidence Estimation and Model Zoo Improvements 2 | 3 | * [DensePose models with confidence estimation](doc/DENSEPOSE_IUV.md#ModelZooConfidence) 4 | * [Panoptic FPN and DeepLabV3 head implementation](doc/DENSEPOSE_IUV.md#ModelZooDeepLabV3) 5 | * Test time augmentations for DensePose 6 | * New evaluation metric (GPSm) that yields more reliable scores 7 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/MViTv2/configs/cascade_mask_rcnn_mvitv2_b_3x.py: -------------------------------------------------------------------------------- 1 | from .cascade_mask_rcnn_mvitv2_t_3x import model, dataloader, optimizer, lr_multiplier, train 2 | 3 | 4 | model.backbone.bottom_up.depth = 24 5 | model.backbone.bottom_up.last_block_indexes = (1, 4, 20, 23) 6 | model.backbone.bottom_up.drop_path_rate = 0.4 7 | 8 | train.init_checkpoint = "detectron2://ImageNetPretrained/mvitv2/MViTv2_B_in1k.pyth" 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/MViTv2/configs/cascade_mask_rcnn_mvitv2_b_in21k_3x.py: -------------------------------------------------------------------------------- 1 | from .cascade_mask_rcnn_mvitv2_b_3x import model, dataloader, optimizer, lr_multiplier, train 2 | 3 | train.init_checkpoint = "detectron2://ImageNetPretrained/mvitv2/MViTv2_B_in21k.pyth" 4 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/MViTv2/configs/cascade_mask_rcnn_mvitv2_h_in21k_lsj_3x.py: -------------------------------------------------------------------------------- 1 | from .cascade_mask_rcnn_mvitv2_b_3x import model, optimizer, train, lr_multiplier 2 | from .common.coco_loader_lsj import dataloader 3 | 4 | 5 | model.backbone.bottom_up.embed_dim = 192 6 | model.backbone.bottom_up.depth = 80 7 | model.backbone.bottom_up.num_heads = 3 8 | model.backbone.bottom_up.last_block_indexes = (3, 11, 71, 79) 9 | model.backbone.bottom_up.drop_path_rate = 0.6 10 | model.backbone.bottom_up.use_act_checkpoint = True 11 | 12 | train.init_checkpoint = "detectron2://ImageNetPretrained/mvitv2/MViTv2_H_in21k.pyth" 13 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/MViTv2/configs/cascade_mask_rcnn_mvitv2_s_3x.py: -------------------------------------------------------------------------------- 1 | from .cascade_mask_rcnn_mvitv2_t_3x import model, dataloader, optimizer, lr_multiplier, train 2 | 3 | 4 | model.backbone.bottom_up.depth = 16 5 | model.backbone.bottom_up.last_block_indexes = (0, 2, 13, 15) 6 | 7 | train.init_checkpoint = "detectron2://ImageNetPretrained/mvitv2/MViTv2_S_in1k.pyth" 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/Panoptic-DeepLab/configs/Cityscapes-PanopticSegmentation/panoptic_deeplab_R_52_os16_mg124_poly_90k_bs32_crop_512_1024.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: Base-PanopticDeepLab-OS16.yaml 2 | MODEL: 3 | WEIGHTS: "detectron2://DeepLab/R-52.pkl" 4 | PIXEL_MEAN: [123.675, 116.280, 103.530] 5 | PIXEL_STD: [58.395, 57.120, 57.375] 6 | BACKBONE: 7 | NAME: "build_resnet_deeplab_backbone" 8 | RESNETS: 9 | DEPTH: 50 10 | NORM: "SyncBN" 11 | RES5_MULTI_GRID: [1, 2, 4] 12 | STEM_TYPE: "deeplab" 13 | STEM_OUT_CHANNELS: 128 14 | STRIDE_IN_1X1: False 15 | SOLVER: 16 | MAX_ITER: 90000 17 | INPUT: 18 | FORMAT: "RGB" 19 | CROP: 20 | SIZE: (512, 1024) 21 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/Panoptic-DeepLab/panoptic_deeplab/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | from .config import add_panoptic_deeplab_config 3 | from .dataset_mapper import PanopticDeeplabDatasetMapper 4 | from .panoptic_seg import ( 5 | PanopticDeepLab, 6 | INS_EMBED_BRANCHES_REGISTRY, 7 | build_ins_embed_branch, 8 | PanopticDeepLabSemSegHead, 9 | PanopticDeepLabInsEmbedHead, 10 | ) 11 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/PointRend/configs/InstanceSegmentation/Base-PointRend-RCNN-FPN.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../../../../configs/Base-RCNN-FPN.yaml" 2 | MODEL: 3 | MASK_ON: true 4 | ROI_BOX_HEAD: 5 | TRAIN_ON_PRED_BOXES: True 6 | ROI_MASK_HEAD: 7 | POOLER_TYPE: "" # No RoI pooling, let the head process image features directly 8 | NAME: "PointRendMaskHead" 9 | FC_DIM: 1024 10 | NUM_FC: 2 11 | OUTPUT_SIDE_RESOLUTION: 7 12 | IN_FEATURES: ["p2"] # for the coarse mask head 13 | POINT_HEAD_ON: True 14 | POINT_HEAD: 15 | FC_DIM: 256 16 | NUM_FC: 3 17 | IN_FEATURES: ["p2"] 18 | INPUT: 19 | # PointRend for instance segmentation does not work with "polygon" mask_format. 20 | MASK_FORMAT: "bitmask" 21 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/PointRend/configs/InstanceSegmentation/implicit_pointrend_R_50_FPN_1x_coco.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-Implicit-PointRend.yaml" 2 | MODEL: 3 | WEIGHTS: detectron2://ImageNetPretrained/MSRA/R-50.pkl 4 | RESNETS: 5 | DEPTH: 50 6 | # To add COCO AP evaluation against the higher-quality LVIS annotations. 7 | # DATASETS: 8 | # TEST: ("coco_2017_val", "lvis_v0.5_val_cocofied") 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/PointRend/configs/InstanceSegmentation/implicit_pointrend_R_50_FPN_3x_coco.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-Implicit-PointRend.yaml" 2 | MODEL: 3 | WEIGHTS: detectron2://ImageNetPretrained/MSRA/R-50.pkl 4 | RESNETS: 5 | DEPTH: 50 6 | SOLVER: 7 | STEPS: (210000, 250000) 8 | MAX_ITER: 270000 9 | # To add COCO AP evaluation against the higher-quality LVIS annotations. 10 | # DATASETS: 11 | # TEST: ("coco_2017_val", "lvis_v0.5_val_cocofied") 12 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/PointRend/configs/InstanceSegmentation/pointrend_rcnn_R_101_FPN_3x_coco.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: Base-PointRend-RCNN-FPN.yaml 2 | MODEL: 3 | WEIGHTS: detectron2://ImageNetPretrained/MSRA/R-101.pkl 4 | MASK_ON: true 5 | RESNETS: 6 | DEPTH: 101 7 | SOLVER: 8 | STEPS: (210000, 250000) 9 | MAX_ITER: 270000 10 | # To add COCO AP evaluation against the higher-quality LVIS annotations. 11 | # DATASETS: 12 | # TEST: ("coco_2017_val", "lvis_v0.5_val_cocofied") 13 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/PointRend/configs/InstanceSegmentation/pointrend_rcnn_R_50_FPN_1x_cityscapes.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: Base-PointRend-RCNN-FPN.yaml 2 | MODEL: 3 | WEIGHTS: detectron2://ImageNetPretrained/MSRA/R-50.pkl 4 | RESNETS: 5 | DEPTH: 50 6 | ROI_HEADS: 7 | NUM_CLASSES: 8 8 | POINT_HEAD: 9 | NUM_CLASSES: 8 10 | DATASETS: 11 | TEST: ("cityscapes_fine_instance_seg_val",) 12 | TRAIN: ("cityscapes_fine_instance_seg_train",) 13 | SOLVER: 14 | BASE_LR: 0.01 15 | IMS_PER_BATCH: 8 16 | MAX_ITER: 24000 17 | STEPS: (18000,) 18 | INPUT: 19 | MAX_SIZE_TEST: 2048 20 | MAX_SIZE_TRAIN: 2048 21 | MIN_SIZE_TEST: 1024 22 | MIN_SIZE_TRAIN: (800, 832, 864, 896, 928, 960, 992, 1024) 23 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/PointRend/configs/InstanceSegmentation/pointrend_rcnn_R_50_FPN_1x_coco.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: Base-PointRend-RCNN-FPN.yaml 2 | MODEL: 3 | WEIGHTS: detectron2://ImageNetPretrained/MSRA/R-50.pkl 4 | RESNETS: 5 | DEPTH: 50 6 | # To add COCO AP evaluation against the higher-quality LVIS annotations. 7 | # DATASETS: 8 | # TEST: ("coco_2017_val", "lvis_v0.5_val_cocofied") 9 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/PointRend/configs/InstanceSegmentation/pointrend_rcnn_R_50_FPN_3x_coco.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: Base-PointRend-RCNN-FPN.yaml 2 | MODEL: 3 | WEIGHTS: detectron2://ImageNetPretrained/MSRA/R-50.pkl 4 | RESNETS: 5 | DEPTH: 50 6 | SOLVER: 7 | STEPS: (210000, 250000) 8 | MAX_ITER: 270000 9 | # To add COCO AP evaluation against the higher-quality LVIS annotations. 10 | # DATASETS: 11 | # TEST: ("coco_2017_val", "lvis_v0.5_val_cocofied") 12 | 13 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/PointRend/configs/InstanceSegmentation/pointrend_rcnn_X_101_32x8d_FPN_3x_coco.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: Base-PointRend-RCNN-FPN.yaml 2 | MODEL: 3 | MASK_ON: True 4 | WEIGHTS: "detectron2://ImageNetPretrained/FAIR/X-101-32x8d.pkl" 5 | PIXEL_STD: [57.375, 57.120, 58.395] 6 | RESNETS: 7 | STRIDE_IN_1X1: False # this is a C2 model 8 | NUM_GROUPS: 32 9 | WIDTH_PER_GROUP: 8 10 | DEPTH: 101 11 | SOLVER: 12 | STEPS: (210000, 250000) 13 | MAX_ITER: 270000 14 | # To add COCO AP evaluation against the higher-quality LVIS annotations. 15 | # DATASETS: 16 | # TEST: ("coco_2017_val", "lvis_v0.5_val_cocofied") 17 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/PointRend/configs/SemanticSegmentation/Base-PointRend-Semantic-FPN.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../../../../configs/Base-RCNN-FPN.yaml" 2 | MODEL: 3 | META_ARCHITECTURE: "SemanticSegmentor" 4 | BACKBONE: 5 | FREEZE_AT: 0 6 | SEM_SEG_HEAD: 7 | NAME: "PointRendSemSegHead" 8 | POINT_HEAD: 9 | NUM_CLASSES: 54 10 | FC_DIM: 256 11 | NUM_FC: 3 12 | IN_FEATURES: ["p2"] 13 | TRAIN_NUM_POINTS: 1024 14 | SUBDIVISION_STEPS: 2 15 | SUBDIVISION_NUM_POINTS: 8192 16 | COARSE_SEM_SEG_HEAD_NAME: "SemSegFPNHead" 17 | COARSE_PRED_EACH_LAYER: False 18 | DATASETS: 19 | TRAIN: ("coco_2017_train_panoptic_stuffonly",) 20 | TEST: ("coco_2017_val_panoptic_stuffonly",) 21 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/PointRend/point_rend/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | from .config import add_pointrend_config 3 | from .mask_head import PointRendMaskHead, ImplicitPointRendMaskHead 4 | from .semantic_seg import PointRendSemSegHead 5 | from .color_augmentation import ColorAugSSDTransform 6 | 7 | from . import roi_heads as _ # only registration 8 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/PointSup/configs/implicit_pointrend_R_50_FPN_3x_point_sup_point_aug_coco.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../../PointRend/configs/InstanceSegmentation/implicit_pointrend_R_50_FPN_3x_coco.yaml" 2 | MODEL: 3 | ROI_MASK_HEAD: 4 | NAME: "ImplicitPointRendPointSupHead" 5 | INPUT: 6 | POINT_SUP: True 7 | SAMPLE_POINTS: 5 8 | DATASETS: 9 | TRAIN: ("coco_2017_train_points_n10_v1_without_masks",) 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/PointSup/configs/mask_rcnn_R_50_FPN_3x_point_sup_coco.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "../../../configs/Base-RCNN-FPN.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: True 5 | RESNETS: 6 | DEPTH: 50 7 | ROI_MASK_HEAD: 8 | NAME: "MaskRCNNConvUpsamplePointSupHead" 9 | INPUT: 10 | POINT_SUP: True 11 | DATASETS: 12 | TRAIN: ("coco_2017_train_points_n10_v1_without_masks",) 13 | SOLVER: 14 | STEPS: (210000, 250000) 15 | MAX_ITER: 270000 16 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/PointSup/configs/mask_rcnn_R_50_FPN_3x_point_sup_point_aug_coco.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "mask_rcnn_R_50_FPN_3x_point_sup_coco.yaml" 2 | INPUT: 3 | SAMPLE_POINTS: 5 4 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/PointSup/point_sup/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved 2 | from . import register_point_annotations 3 | from .config import add_point_sup_config 4 | from .dataset_mapper import PointSupDatasetMapper 5 | from .mask_head import MaskRCNNConvUpsamplePointSupHead 6 | from .point_utils import get_point_coords_from_point_annotation 7 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/PointSup/point_sup/config.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved 3 | 4 | 5 | def add_point_sup_config(cfg): 6 | """ 7 | Add config for point supervision. 8 | """ 9 | # Use point annotation 10 | cfg.INPUT.POINT_SUP = False 11 | # Sample only part of points in each iteration. 12 | # Default: 0, use all available points. 13 | cfg.INPUT.SAMPLE_POINTS = 0 14 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/Rethinking-BatchNorm/configs/mask_rcnn_SyncBNhead.py: -------------------------------------------------------------------------------- 1 | from .mask_rcnn_BNhead import model, dataloader, lr_multiplier, optimizer, train 2 | 3 | model.roi_heads.box_head.conv_norm = model.roi_heads.mask_head.conv_norm = "SyncBN" 4 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/TensorMask/configs/tensormask_R_50_FPN_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-TensorMask.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/TensorMask/configs/tensormask_R_50_FPN_6x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-TensorMask.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | RESNETS: 5 | DEPTH: 50 6 | SOLVER: 7 | STEPS: (480000, 520000) 8 | MAX_ITER: 540000 9 | INPUT: 10 | MIN_SIZE_TRAIN_SAMPLING: "range" 11 | MIN_SIZE_TRAIN: (640, 800) 12 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/TensorMask/tensormask/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | from .config import add_tensormask_config 3 | from .arch import TensorMask 4 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/TensorMask/tensormask/layers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | from .swap_align2nat import SwapAlign2Nat, swap_align2nat 3 | 4 | __all__ = [k for k in globals().keys() if not k.startswith("_")] 5 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/TensorMask/tensormask/layers/csrc/vision.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) Facebook, Inc. and its affiliates. 2 | 3 | #include 4 | #include "SwapAlign2Nat/SwapAlign2Nat.h" 5 | 6 | namespace tensormask { 7 | 8 | PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { 9 | m.def( 10 | "swap_align2nat_forward", 11 | &SwapAlign2Nat_forward, 12 | "SwapAlign2Nat_forward"); 13 | m.def( 14 | "swap_align2nat_backward", 15 | &SwapAlign2Nat_backward, 16 | "SwapAlign2Nat_backward"); 17 | } 18 | 19 | } // namespace tensormask 20 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/TensorMask/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/TridentNet/configs/tridentnet_fast_R_101_C4_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-TridentNet-Fast-C4.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-101.pkl" 4 | MASK_ON: False 5 | RESNETS: 6 | DEPTH: 101 7 | SOLVER: 8 | STEPS: (210000, 250000) 9 | MAX_ITER: 270000 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/TridentNet/configs/tridentnet_fast_R_50_C4_1x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-TridentNet-Fast-C4.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: False 5 | RESNETS: 6 | DEPTH: 50 7 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/TridentNet/configs/tridentnet_fast_R_50_C4_3x.yaml: -------------------------------------------------------------------------------- 1 | _BASE_: "Base-TridentNet-Fast-C4.yaml" 2 | MODEL: 3 | WEIGHTS: "detectron2://ImageNetPretrained/MSRA/R-50.pkl" 4 | MASK_ON: False 5 | RESNETS: 6 | DEPTH: 50 7 | SOLVER: 8 | STEPS: (210000, 250000) 9 | MAX_ITER: 270000 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/TridentNet/tridentnet/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | from .config import add_tridentnet_config 3 | from .trident_backbone import ( 4 | TridentBottleneckBlock, 5 | build_trident_resnet_backbone, 6 | make_trident_stage, 7 | ) 8 | from .trident_rpn import TridentRPN 9 | from .trident_rcnn import TridentRes5ROIHeads, TridentStandardROIHeads 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/ViTDet/configs/COCO/cascade_mask_rcnn_swin_l_in21k_50ep.py: -------------------------------------------------------------------------------- 1 | from .cascade_mask_rcnn_swin_b_in21k_50ep import ( 2 | dataloader, 3 | lr_multiplier, 4 | model, 5 | train, 6 | optimizer, 7 | ) 8 | 9 | model.backbone.bottom_up.depths = [2, 2, 18, 2] 10 | model.backbone.bottom_up.drop_path_rate = 0.4 11 | model.backbone.bottom_up.embed_dim = 192 12 | model.backbone.bottom_up.num_heads = [6, 12, 24, 48] 13 | 14 | 15 | train.init_checkpoint = "detectron2://ImageNetPretrained/swin/swin_large_patch4_window7_224_22k.pth" 16 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/projects/ViTDet/configs/LVIS/cascade_mask_rcnn_swin_l_in21k_50ep.py: -------------------------------------------------------------------------------- 1 | from .cascade_mask_rcnn_swin_b_in21k_50ep import ( 2 | dataloader, 3 | lr_multiplier, 4 | model, 5 | train, 6 | optimizer, 7 | ) 8 | 9 | model.backbone.bottom_up.embed_dim = 192 10 | model.backbone.bottom_up.num_heads = [6, 12, 24, 48] 11 | 12 | train.init_checkpoint = "detectron2://ImageNetPretrained/swin/swin_large_patch4_window7_224_22k.pth" 13 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/tests/README.md: -------------------------------------------------------------------------------- 1 | ## Unit Tests 2 | 3 | To run the unittests, do: 4 | ``` 5 | cd detectron2 6 | python -m unittest discover -v -s ./tests 7 | ``` 8 | 9 | There are also end-to-end inference & training tests, in [dev/run_*_tests.sh](../dev). 10 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/tests/config/dir1/bad_import.py: -------------------------------------------------------------------------------- 1 | # import from directory is not allowed 2 | from . import dir1a 3 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/tests/config/dir1/bad_import2.py: -------------------------------------------------------------------------------- 1 | from .does_not_exist import x 2 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/tests/config/dir1/dir1_a.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | dir1a_str = "base_a_1" 3 | dir1a_dict = {"a": 1, "b": 2} 4 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/tests/config/dir1/dir1_b.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | from detectron2.config import LazyConfig 3 | 4 | # equivalent to relative import 5 | dir1a_str, dir1a_dict = LazyConfig.load_rel("dir1_a.py", ("dir1a_str", "dir1a_dict")) 6 | 7 | dir1b_str = dir1a_str + "_from_b" 8 | dir1b_dict = dir1a_dict 9 | 10 | # Every import is a reload: not modified by other config files 11 | assert dir1a_dict.a == 1 12 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/tests/config/dir1/load_rel.py: -------------------------------------------------------------------------------- 1 | # test that load_rel can work 2 | from detectron2.config import LazyConfig 3 | 4 | x = LazyConfig.load_rel("dir1_a.py", "dir1a_dict") 5 | assert x["a"] == 1 6 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/tests/config/root_cfg.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | from itertools import count 3 | 4 | from detectron2.config import LazyCall as L 5 | 6 | from .dir1.dir1_a import dir1a_dict, dir1a_str 7 | 8 | dir1a_dict.a = "modified" 9 | 10 | # modification above won't affect future imports 11 | from .dir1.dir1_b import dir1b_dict, dir1b_str 12 | 13 | 14 | lazyobj = L(count)(x=dir1a_str, y=dir1b_str) 15 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/tests/layers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/leafmachine2/segmentation/detectron2/tests/layers/__init__.py -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/tests/modeling/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/leafmachine2/segmentation/detectron2/tests/modeling/__init__.py -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/tests/structures/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/leafmachine2/segmentation/detectron2/tests/structures/__init__.py -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/tests/structures/test_keypoints.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | import unittest 3 | import torch 4 | 5 | from detectron2.structures.keypoints import Keypoints 6 | 7 | 8 | class TestKeypoints(unittest.TestCase): 9 | def test_cat_keypoints(self): 10 | keypoints1 = Keypoints(torch.rand(2, 21, 3)) 11 | keypoints2 = Keypoints(torch.rand(4, 21, 3)) 12 | 13 | cat_keypoints = keypoints1.cat([keypoints1, keypoints2]) 14 | self.assertTrue(torch.all(cat_keypoints.tensor[:2] == keypoints1.tensor).item()) 15 | self.assertTrue(torch.all(cat_keypoints.tensor[2:] == keypoints2.tensor).item()) 16 | 17 | 18 | if __name__ == "__main__": 19 | unittest.main() 20 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/tests/tracking/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/leafmachine2/segmentation/detectron2/tests/tracking/__init__.py -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/tools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gene-Weaver/LeafMachine2/ac612c8e6928083c809002f602193f20c460bba4/leafmachine2/segmentation/detectron2/tools/__init__.py -------------------------------------------------------------------------------- /leafmachine2/segmentation/detectron2/tools/deploy/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (c) Facebook, Inc. and its affiliates. 2 | # See https://pytorch.org/tutorials/advanced/cpp_frontend.html 3 | cmake_minimum_required(VERSION 3.12 FATAL_ERROR) 4 | project(torchscript_mask_rcnn) 5 | 6 | find_package(Torch REQUIRED) 7 | find_package(OpenCV REQUIRED) 8 | find_package(TorchVision REQUIRED) # needed by export-method=tracing/scripting 9 | 10 | add_executable(torchscript_mask_rcnn torchscript_mask_rcnn.cpp) 11 | target_link_libraries( 12 | torchscript_mask_rcnn 13 | -Wl,--no-as-needed TorchVision::TorchVision -Wl,--as-needed 14 | "${TORCH_LIBRARIES}" ${OpenCV_LIBS}) 15 | set_property(TARGET torchscript_mask_rcnn PROPERTY CXX_STANDARD 14) 16 | -------------------------------------------------------------------------------- /leafmachine2/segmentation/models/Group1_Dataset_10000_Iter_1176PTS_512Batch_smooth_l1/metadata.json: -------------------------------------------------------------------------------- 1 | {"name": "dataset_val", "json_file": "/home/brlab/Dropbox/LeafMachine2/data/segmentation_training_data/group1/val/images/POLYGONS_val.json", "image_root": "/home/brlab/Dropbox/LeafMachine2/data/segmentation_training_data/group1/val/images", "evaluator_type": "coco", "thing_colors": [[0, 255, 46], [255, 173, 0], [255, 0, 209]], "thing_classes": ["leaf", "petiole", "hole"]} -------------------------------------------------------------------------------- /leafmachine2/segmentation/models/Group1_Dataset_10000_Iter_1176PTS_512Batch_smooth_l1_LR0005_BGR/metadata.json: -------------------------------------------------------------------------------- 1 | {"name": "dataset_val", "json_file": "/home/brlab/Dropbox/LeafMachine2/data/segmentation_training_data/group1/val/images/POLYGONS_val.json", "image_root": "/home/brlab/Dropbox/LeafMachine2/data/segmentation_training_data/group1/val/images", "evaluator_type": "coco", "thing_colors": [[0, 255, 46], [255, 173, 0], [255, 0, 209]], "thing_classes": ["leaf", "petiole", "hole"]} -------------------------------------------------------------------------------- /leafmachine2/segmentation/models/Group1_Dataset_20000_Iter_1176PTS_512Batch_smooth_l1_LR0005_BGR/metadata.json: -------------------------------------------------------------------------------- 1 | {"name": "dataset_val", "json_file": "/home/brlab/Dropbox/LeafMachine2/data/segmentation_training_data/group1/val/images/POLYGONS_val.json", "image_root": "/home/brlab/Dropbox/LeafMachine2/data/segmentation_training_data/group1/val/images", "evaluator_type": "coco", "thing_colors": [[0, 255, 46], [255, 173, 0], [255, 0, 209]], "thing_classes": ["leaf", "petiole", "hole"]} -------------------------------------------------------------------------------- /leafmachine2/segmentation/models/Group3_Dataset_100000_Iter_1176PTS_512Batch_smooth_l1_LR00025_BGR/metadata.json: -------------------------------------------------------------------------------- 1 | {"name": "dataset_val", "json_file": "/home/brlab/Dropbox/LM2_Env/Image_Datasets/GroundTruth_SEG_Group3/GroundTruth_SEG_Group3/val/images/POLYGONS_val.json", "image_root": "/home/brlab/Dropbox/LM2_Env/Image_Datasets/GroundTruth_SEG_Group3/GroundTruth_SEG_Group3/val/images", "evaluator_type": "coco", "thing_colors": [[0, 255, 46], [255, 173, 0], [255, 0, 209]], "thing_classes": ["leaf", "petiole", "hole"]} -------------------------------------------------------------------------------- /leafmachine2/segmentation/models/GroupB_Dataset_100000_Iter_1176PTS_512Batch_smooth_l1_LR00025_BGR/metadata.json: -------------------------------------------------------------------------------- 1 | {"name": "dataset_val", "json_file": "/home/brlab/Dropbox/LeafMachine2/data/segmentation_training_data/groupB/val/images/POLYGONS_val.json", "image_root": "/home/brlab/Dropbox/LeafMachine2/data/segmentation_training_data/groupB/val/images", "evaluator_type": "coco", "thing_colors": [[0, 255, 46], [255, 173, 0], [255, 0, 209]], "thing_classes": ["leaf", "petiole", "hole"]} -------------------------------------------------------------------------------- /requirements_deprecated/requirements_manual.txt: -------------------------------------------------------------------------------- 1 | pip install numpy -U 2 | pip install PIL[colour] 3 | vit-pytorch==0.37.1 4 | pycococreatortools @ git+https://github.com/waspinator/pycococreator.git@fba8f4098f3c7aaa05fe119dc93bbe4063afdab8 5 | pycocotools==2.0.5 6 | opencv-contrib-python==4.7.0.68 7 | pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113 8 | -------------------------------------------------------------------------------- /run_LeafMachine2.py: -------------------------------------------------------------------------------- 1 | import streamlit.web.cli as stcli 2 | import os, sys 3 | 4 | 5 | def resolve_path(path): 6 | resolved_path = os.path.abspath(os.path.join(os.getcwd(), path)) 7 | return resolved_path 8 | 9 | 10 | if __name__ == "__main__": 11 | dir_home = os.path.dirname(__file__) 12 | sys.argv = [ 13 | "streamlit", 14 | "run", 15 | resolve_path(os.path.join(dir_home,"leafmachine2","machine", "LeafMachine2_GUI.py")), 16 | "--global.developmentMode=false", 17 | ] 18 | sys.exit(stcli.main()) --------------------------------------------------------------------------------