├── README.md ├── data └── train │ ├── boxes │ └── airplane235.npy │ ├── img │ └── airplane235.png │ └── onehotmask │ └── airplane235.npy ├── environment.yml ├── modifiedimpad.py ├── segment_anything.egg-info └── PKG-INFO ├── segment_anything ├── __init__.py ├── automatic_mask_generator.py ├── build_sam.py ├── build_sam_baseline.py ├── modeling │ ├── __init__.py │ ├── common.py │ ├── image_encoder.py │ ├── mask_decoder.py │ ├── mask_decoder_hq.py │ ├── prompt_encoder.py │ ├── sam.py │ ├── tiny_vit_sam.py │ └── transformer.py ├── predictor.py └── utils │ ├── __init__.py │ ├── amg.py │ ├── onnx.py │ └── transforms.py └── train ├── inference.py ├── mmdet ├── __init__.py ├── apis │ ├── __init__.py │ ├── det_inferencer.py │ └── inference.py ├── configs │ ├── _base_ │ │ ├── datasets │ │ │ ├── coco_detection.py │ │ │ ├── coco_instance.py │ │ │ ├── coco_instance_semantic.py │ │ │ ├── coco_panoptic.py │ │ │ └── mot_challenge.py │ │ ├── default_runtime.py │ │ ├── models │ │ │ ├── cascade_mask_rcnn_r50_fpn.py │ │ │ ├── cascade_rcnn_r50_fpn.py │ │ │ ├── faster_rcnn_r50_fpn.py │ │ │ ├── mask_rcnn_r50_caffe_c4.py │ │ │ ├── mask_rcnn_r50_fpn.py │ │ │ └── retinanet_r50_fpn.py │ │ └── schedules │ │ │ ├── schedule_1x.py │ │ │ └── schedule_2x.py │ ├── cascade_rcnn │ │ ├── cascade_mask_rcnn_r50_fpn_1x_coco.py │ │ └── cascade_rcnn_r50_fpn_1x_coco.py │ ├── common │ │ ├── lsj_100e_coco_detection.py │ │ ├── lsj_100e_coco_instance.py │ │ ├── lsj_200e_coco_detection.py │ │ ├── lsj_200e_coco_instance.py │ │ ├── ms_3x_coco.py │ │ ├── ms_3x_coco_instance.py │ │ ├── ms_90k_coco.py │ │ ├── ms_poly_3x_coco_instance.py │ │ ├── ms_poly_90k_coco_instance.py │ │ ├── ssj_270_coco_instance.py │ │ └── ssj_scp_270k_coco_instance.py │ ├── deformable_detr │ │ ├── deformable_detr_r50_16xb2_50e_coco.py │ │ ├── deformable_detr_refine_r50_16xb2_50e_coco.py │ │ └── deformable_detr_refine_twostage_r50_16xb2_50e_coco.py │ ├── detr │ │ ├── detr_r101_8xb2_500e_coco.py │ │ ├── detr_r18_8xb2_500e_coco.py │ │ ├── detr_r50_8xb2_150e_coco.py │ │ └── detr_r50_8xb2_500e_coco.py │ ├── dino │ │ ├── dino_4scale_r50_8xb2_12e_coco.py │ │ ├── dino_4scale_r50_8xb2_24e_coco.py │ │ ├── dino_4scale_r50_8xb2_36e_coco.py │ │ ├── dino_4scale_r50_improved_8xb2_12e_coco.py │ │ ├── dino_5scale_swin_l_8xb2_12e_coco.py │ │ └── dino_5scale_swin_l_8xb2_36e_coco.py │ ├── faster_rcnn │ │ └── faster_rcnn_r50_fpn_1x_coco.py │ ├── mask_rcnn │ │ ├── mask_rcnn_r101_caffe_fpn_1x_coco.py │ │ ├── mask_rcnn_r101_caffe_fpn_ms_poly_3x_coco.py │ │ ├── mask_rcnn_r101_fpn_1x_coco.py │ │ ├── mask_rcnn_r101_fpn_2x_coco.py │ │ ├── mask_rcnn_r101_fpn_8xb8_amp_lsj_200e_coco.py │ │ ├── mask_rcnn_r101_fpn_ms_poly_3x_coco.py │ │ ├── mask_rcnn_r18_fpn_8xb8_amp_lsj_200e_coco.py │ │ ├── mask_rcnn_r50_caffe_c4_1x_coco.py │ │ ├── mask_rcnn_r50_caffe_fpn_1x_coco.py │ │ ├── mask_rcnn_r50_caffe_fpn_ms_1x_coco.py │ │ ├── mask_rcnn_r50_caffe_fpn_ms_poly_1x_coco.py │ │ ├── mask_rcnn_r50_caffe_fpn_ms_poly_2x_coco.py │ │ ├── mask_rcnn_r50_caffe_fpn_ms_poly_3x_coco.py │ │ ├── mask_rcnn_r50_caffe_fpn_poly_1x_coco_v1.py │ │ ├── mask_rcnn_r50_fpn_1x_coco.py │ │ ├── mask_rcnn_r50_fpn_1x_wandb_coco.py │ │ ├── mask_rcnn_r50_fpn_2x_coco.py │ │ ├── mask_rcnn_r50_fpn_8xb8_amp_lsj_200e_coco.py │ │ ├── mask_rcnn_r50_fpn_amp_1x_coco.py │ │ ├── mask_rcnn_r50_fpn_ms_poly_-3x_coco.py │ │ ├── mask_rcnn_r50_fpn_poly_1x_coco.py │ │ ├── mask_rcnn_x101_32x4d_fpn_1x_coco.py │ │ ├── mask_rcnn_x101_32x4d_fpn_2x_coco.py │ │ ├── mask_rcnn_x101_32x4d_fpn_ms_poly_3x_coco.py │ │ ├── mask_rcnn_x101_32x8d_fpn_1x_coco.py │ │ ├── mask_rcnn_x101_32x8d_fpn_ms_poly_1x_coco.py │ │ ├── mask_rcnn_x101_32x8d_fpn_ms_poly_3x_coco.py │ │ ├── mask_rcnn_x101_64_4d_fpn_1x_coco.py │ │ ├── mask_rcnn_x101_64x4d_fpn_2x_coco.py │ │ └── mask_rcnn_x101_64x4d_fpn_ms_poly_3x_coco.py │ ├── maskformer │ │ ├── maskformer_r50_ms_16xb1_75e_coco.py │ │ └── maskformer_swin_l_p4_w12_64xb1_ms_300e_coco.py │ ├── panoptic_fpn │ │ ├── panoptic_fpn_r101_fpn_1x_coco.py │ │ ├── panoptic_fpn_r101_fpn_ms_3x_coco.py │ │ ├── panoptic_fpn_r50_fpn_1x_coco.py │ │ └── panoptic_fpn_r50_fpn_ms_3x_coco.py │ ├── qdtrack │ │ ├── qdtrack_faster_rcnn_r50_fpn_4e_base.py │ │ └── qdtrack_faster_rcnn_r50_fpn_8xb2-4e_mot17halftrain_test-mot17halfval.py │ ├── retinanet │ │ ├── retinanet_r50_fpn_1x_coco.py │ │ └── retinanet_tta.py │ └── rtmdet │ │ ├── rtmdet_ins_l_8xb32_300e_coco.py │ │ ├── rtmdet_ins_m_8xb32_300e_coco.py │ │ ├── rtmdet_ins_s_8xb32_300e_coco.py │ │ ├── rtmdet_ins_tiny_8xb32_300e_coco.py │ │ ├── rtmdet_ins_x_8xb16_300e_coco.py │ │ ├── rtmdet_l_8xb32_300e_coco.py │ │ ├── rtmdet_m_8xb32_300e_coco.py │ │ ├── rtmdet_s_8xb32_300e_coco.py │ │ ├── rtmdet_tiny_8xb32_300e_coco.py │ │ ├── rtmdet_tta.py │ │ └── rtmdet_x_8xb32_300e_coco.py ├── datasets │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-310.pyc │ │ ├── __init__.cpython-312.pyc │ │ ├── ade20k.cpython-310.pyc │ │ ├── ade20k.cpython-312.pyc │ │ ├── base_det_dataset.cpython-310.pyc │ │ ├── base_det_dataset.cpython-312.pyc │ │ ├── base_semseg_dataset.cpython-310.pyc │ │ ├── base_semseg_dataset.cpython-312.pyc │ │ ├── base_video_dataset.cpython-310.pyc │ │ ├── base_video_dataset.cpython-312.pyc │ │ ├── cityscapes.cpython-310.pyc │ │ ├── cityscapes.cpython-312.pyc │ │ ├── coco.cpython-310.pyc │ │ ├── coco.cpython-312.pyc │ │ ├── coco_caption.cpython-310.pyc │ │ ├── coco_caption.cpython-312.pyc │ │ ├── coco_panoptic.cpython-310.pyc │ │ ├── coco_panoptic.cpython-312.pyc │ │ ├── coco_semantic.cpython-310.pyc │ │ ├── coco_semantic.cpython-312.pyc │ │ ├── crowdhuman.cpython-310.pyc │ │ ├── crowdhuman.cpython-312.pyc │ │ ├── dataset_wrappers.cpython-310.pyc │ │ ├── dataset_wrappers.cpython-312.pyc │ │ ├── deepfashion.cpython-310.pyc │ │ ├── deepfashion.cpython-312.pyc │ │ ├── dod.cpython-310.pyc │ │ ├── dod.cpython-312.pyc │ │ ├── dsdl.cpython-310.pyc │ │ ├── dsdl.cpython-312.pyc │ │ ├── flickr30k.cpython-310.pyc │ │ ├── flickr30k.cpython-312.pyc │ │ ├── isaid.cpython-310.pyc │ │ ├── isaid.cpython-312.pyc │ │ ├── lvis.cpython-310.pyc │ │ ├── lvis.cpython-312.pyc │ │ ├── mdetr_style_refcoco.cpython-310.pyc │ │ ├── mdetr_style_refcoco.cpython-312.pyc │ │ ├── mot_challenge_dataset.cpython-310.pyc │ │ ├── mot_challenge_dataset.cpython-312.pyc │ │ ├── objects365.cpython-310.pyc │ │ ├── objects365.cpython-312.pyc │ │ ├── odvg.cpython-310.pyc │ │ ├── odvg.cpython-312.pyc │ │ ├── openimages.cpython-310.pyc │ │ ├── openimages.cpython-312.pyc │ │ ├── refcoco.cpython-310.pyc │ │ ├── refcoco.cpython-312.pyc │ │ ├── reid_dataset.cpython-310.pyc │ │ ├── reid_dataset.cpython-312.pyc │ │ ├── utils.cpython-310.pyc │ │ ├── utils.cpython-312.pyc │ │ ├── v3det.cpython-310.pyc │ │ ├── v3det.cpython-312.pyc │ │ ├── voc.cpython-310.pyc │ │ ├── voc.cpython-312.pyc │ │ ├── wider_face.cpython-310.pyc │ │ ├── wider_face.cpython-312.pyc │ │ ├── xml_style.cpython-310.pyc │ │ ├── xml_style.cpython-312.pyc │ │ ├── youtube_vis_dataset.cpython-310.pyc │ │ └── youtube_vis_dataset.cpython-312.pyc │ ├── ade20k.py │ ├── api_wrappers │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-310.pyc │ │ │ ├── __init__.cpython-312.pyc │ │ │ ├── coco_api.cpython-310.pyc │ │ │ ├── coco_api.cpython-312.pyc │ │ │ ├── cocoeval_mp.cpython-310.pyc │ │ │ └── cocoeval_mp.cpython-312.pyc │ │ ├── coco_api.py │ │ └── cocoeval_mp.py │ ├── base_det_dataset.py │ ├── base_semseg_dataset.py │ ├── base_video_dataset.py │ ├── cityscapes.py │ ├── coco.py │ ├── coco_caption.py │ ├── coco_panoptic.py │ ├── coco_semantic.py │ ├── crowdhuman.py │ ├── dataset_wrappers.py │ ├── deepfashion.py │ ├── dod.py │ ├── dsdl.py │ ├── flickr30k.py │ ├── isaid.py │ ├── lvis.py │ ├── mdetr_style_refcoco.py │ ├── mot_challenge_dataset.py │ ├── objects365.py │ ├── odvg.py │ ├── openimages.py │ ├── refcoco.py │ ├── reid_dataset.py │ ├── samplers │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-310.pyc │ │ │ ├── __init__.cpython-312.pyc │ │ │ ├── batch_sampler.cpython-310.pyc │ │ │ ├── batch_sampler.cpython-312.pyc │ │ │ ├── class_aware_sampler.cpython-310.pyc │ │ │ ├── class_aware_sampler.cpython-312.pyc │ │ │ ├── custom_sample_size_sampler.cpython-310.pyc │ │ │ ├── custom_sample_size_sampler.cpython-312.pyc │ │ │ ├── multi_data_sampler.cpython-310.pyc │ │ │ ├── multi_data_sampler.cpython-312.pyc │ │ │ ├── multi_source_sampler.cpython-310.pyc │ │ │ ├── multi_source_sampler.cpython-312.pyc │ │ │ ├── track_img_sampler.cpython-310.pyc │ │ │ └── track_img_sampler.cpython-312.pyc │ │ ├── batch_sampler.py │ │ ├── class_aware_sampler.py │ │ ├── custom_sample_size_sampler.py │ │ ├── multi_data_sampler.py │ │ ├── multi_source_sampler.py │ │ └── track_img_sampler.py │ ├── transforms │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-310.pyc │ │ │ ├── __init__.cpython-312.pyc │ │ │ ├── augment_wrappers.cpython-310.pyc │ │ │ ├── augment_wrappers.cpython-312.pyc │ │ │ ├── colorspace.cpython-310.pyc │ │ │ ├── colorspace.cpython-312.pyc │ │ │ ├── formatting.cpython-310.pyc │ │ │ ├── formatting.cpython-312.pyc │ │ │ ├── frame_sampling.cpython-310.pyc │ │ │ ├── frame_sampling.cpython-312.pyc │ │ │ ├── geometric.cpython-310.pyc │ │ │ ├── geometric.cpython-312.pyc │ │ │ ├── instaboost.cpython-310.pyc │ │ │ ├── instaboost.cpython-312.pyc │ │ │ ├── loading.cpython-310.pyc │ │ │ ├── loading.cpython-312.pyc │ │ │ ├── text_transformers.cpython-310.pyc │ │ │ ├── text_transformers.cpython-312.pyc │ │ │ ├── transformers_glip.cpython-310.pyc │ │ │ ├── transformers_glip.cpython-312.pyc │ │ │ ├── transforms.cpython-310.pyc │ │ │ ├── transforms.cpython-312.pyc │ │ │ ├── wrappers.cpython-310.pyc │ │ │ └── wrappers.cpython-312.pyc │ │ ├── augment_wrappers.py │ │ ├── colorspace.py │ │ ├── formatting.py │ │ ├── frame_sampling.py │ │ ├── geometric.py │ │ ├── instaboost.py │ │ ├── loading.py │ │ ├── text_transformers.py │ │ ├── transformers_glip.py │ │ ├── transforms.py │ │ └── wrappers.py │ ├── utils.py │ ├── v3det.py │ ├── voc.py │ ├── wider_face.py │ ├── xml_style.py │ └── youtube_vis_dataset.py ├── engine │ ├── __init__.py │ ├── hooks │ │ ├── __init__.py │ │ ├── checkloss_hook.py │ │ ├── mean_teacher_hook.py │ │ ├── memory_profiler_hook.py │ │ ├── num_class_check_hook.py │ │ ├── pipeline_switch_hook.py │ │ ├── set_epoch_info_hook.py │ │ ├── sync_norm_hook.py │ │ ├── utils.py │ │ ├── visualization_hook.py │ │ └── yolox_mode_switch_hook.py │ ├── optimizers │ │ ├── __init__.py │ │ └── layer_decay_optimizer_constructor.py │ ├── runner │ │ ├── __init__.py │ │ └── loops.py │ └── schedulers │ │ ├── __init__.py │ │ └── quadratic_warmup.py ├── evaluation │ ├── __init__.py │ ├── evaluator │ │ ├── __init__.py │ │ └── multi_datasets_evaluator.py │ ├── functional │ │ ├── __init__.py │ │ ├── bbox_overlaps.py │ │ ├── cityscapes_utils.py │ │ ├── class_names.py │ │ ├── mean_ap.py │ │ ├── panoptic_utils.py │ │ ├── recall.py │ │ ├── ytvis.py │ │ └── ytviseval.py │ └── metrics │ │ ├── __init__.py │ │ ├── base_video_metric.py │ │ ├── cityscapes_metric.py │ │ ├── coco_caption_metric.py │ │ ├── coco_metric.py │ │ ├── coco_occluded_metric.py │ │ ├── coco_panoptic_metric.py │ │ ├── coco_video_metric.py │ │ ├── crowdhuman_metric.py │ │ ├── dod_metric.py │ │ ├── dump_det_results.py │ │ ├── dump_odvg_results.py │ │ ├── dump_proposals_metric.py │ │ ├── flickr30k_metric.py │ │ ├── grefcoco_metric.py │ │ ├── lvis_metric.py │ │ ├── mot_challenge_metric.py │ │ ├── openimages_metric.py │ │ ├── ov_coco_metric.py │ │ ├── refexp_metric.py │ │ ├── refseg_metric.py │ │ ├── reid_metric.py │ │ ├── semseg_metric.py │ │ ├── voc_metric.py │ │ └── youtube_vis_metric.py ├── models │ ├── __init__.py │ ├── backbones │ │ ├── __init__.py │ │ ├── csp_darknet.py │ │ ├── cspnext.py │ │ ├── darknet.py │ │ ├── detectors_resnet.py │ │ ├── detectors_resnext.py │ │ ├── efficientnet.py │ │ ├── hourglass.py │ │ ├── hrnet.py │ │ ├── mobilenet_v2.py │ │ ├── pvt.py │ │ ├── regnet.py │ │ ├── res2net.py │ │ ├── resnest.py │ │ ├── resnet.py │ │ ├── resnext.py │ │ ├── ssd_vgg.py │ │ ├── swin.py │ │ └── trident_resnet.py │ ├── data_preprocessors │ │ ├── __init__.py │ │ ├── data_preprocessor.py │ │ ├── reid_data_preprocessor.py │ │ └── track_data_preprocessor.py │ ├── dense_heads │ │ ├── __init__.py │ │ ├── anchor_free_head.py │ │ ├── anchor_head.py │ │ ├── atss_head.py │ │ ├── atss_vlfusion_head.py │ │ ├── autoassign_head.py │ │ ├── base_dense_head.py │ │ ├── base_mask_head.py │ │ ├── boxinst_head.py │ │ ├── cascade_rpn_head.py │ │ ├── centernet_head.py │ │ ├── centernet_update_head.py │ │ ├── centripetal_head.py │ │ ├── condinst_head.py │ │ ├── conditional_detr_head.py │ │ ├── corner_head.py │ │ ├── dab_detr_head.py │ │ ├── ddod_head.py │ │ ├── ddq_detr_head.py │ │ ├── deformable_detr_head.py │ │ ├── dense_test_mixins.py │ │ ├── detr_head.py │ │ ├── dino_head.py │ │ ├── embedding_rpn_head.py │ │ ├── fcos_head.py │ │ ├── fovea_head.py │ │ ├── free_anchor_retina_head.py │ │ ├── fsaf_head.py │ │ ├── ga_retina_head.py │ │ ├── ga_rpn_head.py │ │ ├── gfl_head.py │ │ ├── grounding_dino_head.py │ │ ├── guided_anchor_head.py │ │ ├── lad_head.py │ │ ├── ld_head.py │ │ ├── mask2former_head.py │ │ ├── maskformer_head.py │ │ ├── nasfcos_head.py │ │ ├── paa_head.py │ │ ├── pisa_retinanet_head.py │ │ ├── pisa_ssd_head.py │ │ ├── reppoints_head.py │ │ ├── retina_head.py │ │ ├── retina_sepbn_head.py │ │ ├── rpn_head.py │ │ ├── rtmdet_head.py │ │ ├── rtmdet_ins_head.py │ │ ├── sabl_retina_head.py │ │ ├── solo_head.py │ │ ├── solov2_head.py │ │ ├── ssd_head.py │ │ ├── tood_head.py │ │ ├── vfnet_head.py │ │ ├── yolact_head.py │ │ ├── yolo_head.py │ │ ├── yolof_head.py │ │ └── yolox_head.py │ ├── detectors │ │ ├── __init__.py │ │ ├── atss.py │ │ ├── autoassign.py │ │ ├── base.py │ │ ├── base_detr.py │ │ ├── boxinst.py │ │ ├── cascade_rcnn.py │ │ ├── centernet.py │ │ ├── condinst.py │ │ ├── conditional_detr.py │ │ ├── cornernet.py │ │ ├── crowddet.py │ │ ├── d2_wrapper.py │ │ ├── dab_detr.py │ │ ├── ddod.py │ │ ├── ddq_detr.py │ │ ├── deformable_detr.py │ │ ├── detr.py │ │ ├── dino.py │ │ ├── fast_rcnn.py │ │ ├── faster_rcnn.py │ │ ├── fcos.py │ │ ├── fovea.py │ │ ├── fsaf.py │ │ ├── gfl.py │ │ ├── glip.py │ │ ├── grid_rcnn.py │ │ ├── grounding_dino.py │ │ ├── htc.py │ │ ├── kd_one_stage.py │ │ ├── lad.py │ │ ├── mask2former.py │ │ ├── mask_rcnn.py │ │ ├── mask_scoring_rcnn.py │ │ ├── maskformer.py │ │ ├── nasfcos.py │ │ ├── paa.py │ │ ├── panoptic_fpn.py │ │ ├── panoptic_two_stage_segmentor.py │ │ ├── point_rend.py │ │ ├── queryinst.py │ │ ├── reppoints_detector.py │ │ ├── retinanet.py │ │ ├── rpn.py │ │ ├── rtmdet.py │ │ ├── scnet.py │ │ ├── semi_base.py │ │ ├── single_stage.py │ │ ├── single_stage_instance_seg.py │ │ ├── soft_teacher.py │ │ ├── solo.py │ │ ├── solov2.py │ │ ├── sparse_rcnn.py │ │ ├── tood.py │ │ ├── trident_faster_rcnn.py │ │ ├── two_stage.py │ │ ├── vfnet.py │ │ ├── yolact.py │ │ ├── yolo.py │ │ ├── yolof.py │ │ └── yolox.py │ ├── language_models │ │ ├── __init__.py │ │ └── bert.py │ ├── layers │ │ ├── __init__.py │ │ ├── activations.py │ │ ├── bbox_nms.py │ │ ├── brick_wrappers.py │ │ ├── conv_upsample.py │ │ ├── csp_layer.py │ │ ├── dropblock.py │ │ ├── ema.py │ │ ├── inverted_residual.py │ │ ├── matrix_nms.py │ │ ├── msdeformattn_pixel_decoder.py │ │ ├── normed_predictor.py │ │ ├── pixel_decoder.py │ │ ├── positional_encoding.py │ │ ├── res_layer.py │ │ ├── se_layer.py │ │ └── transformer │ │ │ ├── __init__.py │ │ │ ├── conditional_detr_layers.py │ │ │ ├── dab_detr_layers.py │ │ │ ├── ddq_detr_layers.py │ │ │ ├── deformable_detr_layers.py │ │ │ ├── detr_layers.py │ │ │ ├── dino_layers.py │ │ │ ├── grounding_dino_layers.py │ │ │ ├── mask2former_layers.py │ │ │ └── utils.py │ ├── losses │ │ ├── __init__.py │ │ ├── accuracy.py │ │ ├── ae_loss.py │ │ ├── balanced_l1_loss.py │ │ ├── cross_entropy_loss.py │ │ ├── ddq_detr_aux_loss.py │ │ ├── dice_loss.py │ │ ├── eqlv2_loss.py │ │ ├── focal_loss.py │ │ ├── gaussian_focal_loss.py │ │ ├── gfocal_loss.py │ │ ├── ghm_loss.py │ │ ├── iou_loss.py │ │ ├── kd_loss.py │ │ ├── l2_loss.py │ │ ├── margin_loss.py │ │ ├── mse_loss.py │ │ ├── multipos_cross_entropy_loss.py │ │ ├── pisa_loss.py │ │ ├── seesaw_loss.py │ │ ├── smooth_l1_loss.py │ │ ├── triplet_loss.py │ │ ├── utils.py │ │ └── varifocal_loss.py │ ├── mot │ │ ├── __init__.py │ │ ├── base.py │ │ ├── bytetrack.py │ │ ├── deep_sort.py │ │ ├── ocsort.py │ │ ├── qdtrack.py │ │ └── strongsort.py │ ├── necks │ │ ├── __init__.py │ │ ├── bfp.py │ │ ├── channel_mapper.py │ │ ├── cspnext_pafpn.py │ │ ├── ct_resnet_neck.py │ │ ├── dilated_encoder.py │ │ ├── dyhead.py │ │ ├── fpg.py │ │ ├── fpn.py │ │ ├── fpn_carafe.py │ │ ├── fpn_dropblock.py │ │ ├── hrfpn.py │ │ ├── nas_fpn.py │ │ ├── nasfcos_fpn.py │ │ ├── pafpn.py │ │ ├── rfp.py │ │ ├── ssd_neck.py │ │ ├── ssh.py │ │ ├── yolo_neck.py │ │ └── yolox_pafpn.py │ ├── reid │ │ ├── __init__.py │ │ ├── base_reid.py │ │ ├── fc_module.py │ │ ├── gap.py │ │ └── linear_reid_head.py │ ├── roi_heads │ │ ├── __init__.py │ │ ├── base_roi_head.py │ │ ├── bbox_heads │ │ │ ├── __init__.py │ │ │ ├── bbox_head.py │ │ │ ├── convfc_bbox_head.py │ │ │ ├── dii_head.py │ │ │ ├── double_bbox_head.py │ │ │ ├── multi_instance_bbox_head.py │ │ │ ├── sabl_head.py │ │ │ └── scnet_bbox_head.py │ │ ├── cascade_roi_head.py │ │ ├── double_roi_head.py │ │ ├── dynamic_roi_head.py │ │ ├── grid_roi_head.py │ │ ├── htc_roi_head.py │ │ ├── mask_heads │ │ │ ├── __init__.py │ │ │ ├── coarse_mask_head.py │ │ │ ├── dynamic_mask_head.py │ │ │ ├── fcn_mask_head.py │ │ │ ├── feature_relay_head.py │ │ │ ├── fused_semantic_head.py │ │ │ ├── global_context_head.py │ │ │ ├── grid_head.py │ │ │ ├── htc_mask_head.py │ │ │ ├── mask_point_head.py │ │ │ ├── maskiou_head.py │ │ │ ├── scnet_mask_head.py │ │ │ └── scnet_semantic_head.py │ │ ├── mask_scoring_roi_head.py │ │ ├── multi_instance_roi_head.py │ │ ├── pisa_roi_head.py │ │ ├── point_rend_roi_head.py │ │ ├── roi_extractors │ │ │ ├── __init__.py │ │ │ ├── base_roi_extractor.py │ │ │ ├── generic_roi_extractor.py │ │ │ └── single_level_roi_extractor.py │ │ ├── scnet_roi_head.py │ │ ├── shared_heads │ │ │ ├── __init__.py │ │ │ └── res_layer.py │ │ ├── sparse_roi_head.py │ │ ├── standard_roi_head.py │ │ ├── test_mixins.py │ │ └── trident_roi_head.py │ ├── seg_heads │ │ ├── __init__.py │ │ ├── base_semantic_head.py │ │ ├── panoptic_fpn_head.py │ │ └── panoptic_fusion_heads │ │ │ ├── __init__.py │ │ │ ├── base_panoptic_fusion_head.py │ │ │ ├── heuristic_fusion_head.py │ │ │ └── maskformer_fusion_head.py │ ├── task_modules │ │ ├── __init__.py │ │ ├── assigners │ │ │ ├── __init__.py │ │ │ ├── approx_max_iou_assigner.py │ │ │ ├── assign_result.py │ │ │ ├── atss_assigner.py │ │ │ ├── base_assigner.py │ │ │ ├── center_region_assigner.py │ │ │ ├── dynamic_soft_label_assigner.py │ │ │ ├── grid_assigner.py │ │ │ ├── hungarian_assigner.py │ │ │ ├── iou2d_calculator.py │ │ │ ├── match_cost.py │ │ │ ├── max_iou_assigner.py │ │ │ ├── multi_instance_assigner.py │ │ │ ├── point_assigner.py │ │ │ ├── region_assigner.py │ │ │ ├── sim_ota_assigner.py │ │ │ ├── task_aligned_assigner.py │ │ │ ├── topk_hungarian_assigner.py │ │ │ └── uniform_assigner.py │ │ ├── builder.py │ │ ├── coders │ │ │ ├── __init__.py │ │ │ ├── base_bbox_coder.py │ │ │ ├── bucketing_bbox_coder.py │ │ │ ├── delta_xywh_bbox_coder.py │ │ │ ├── distance_point_bbox_coder.py │ │ │ ├── legacy_delta_xywh_bbox_coder.py │ │ │ ├── pseudo_bbox_coder.py │ │ │ ├── tblr_bbox_coder.py │ │ │ └── yolo_bbox_coder.py │ │ ├── prior_generators │ │ │ ├── __init__.py │ │ │ ├── anchor_generator.py │ │ │ ├── point_generator.py │ │ │ └── utils.py │ │ ├── samplers │ │ │ ├── __init__.py │ │ │ ├── base_sampler.py │ │ │ ├── combined_sampler.py │ │ │ ├── instance_balanced_pos_sampler.py │ │ │ ├── iou_balanced_neg_sampler.py │ │ │ ├── mask_pseudo_sampler.py │ │ │ ├── mask_sampling_result.py │ │ │ ├── multi_instance_random_sampler.py │ │ │ ├── multi_instance_sampling_result.py │ │ │ ├── ohem_sampler.py │ │ │ ├── pseudo_sampler.py │ │ │ ├── random_sampler.py │ │ │ ├── sampling_result.py │ │ │ └── score_hlr_sampler.py │ │ └── tracking │ │ │ ├── __init__.py │ │ │ ├── aflink.py │ │ │ ├── camera_motion_compensation.py │ │ │ ├── interpolation.py │ │ │ ├── kalman_filter.py │ │ │ └── similarity.py │ ├── test_time_augs │ │ ├── __init__.py │ │ ├── det_tta.py │ │ └── merge_augs.py │ ├── trackers │ │ ├── __init__.py │ │ ├── base_tracker.py │ │ ├── byte_tracker.py │ │ ├── masktrack_rcnn_tracker.py │ │ ├── ocsort_tracker.py │ │ ├── quasi_dense_tracker.py │ │ ├── sort_tracker.py │ │ └── strongsort_tracker.py │ ├── tracking_heads │ │ ├── __init__.py │ │ ├── mask2former_track_head.py │ │ ├── quasi_dense_embed_head.py │ │ ├── quasi_dense_track_head.py │ │ ├── roi_embed_head.py │ │ └── roi_track_head.py │ ├── utils │ │ ├── __init__.py │ │ ├── gaussian_target.py │ │ ├── image.py │ │ ├── make_divisible.py │ │ ├── misc.py │ │ ├── panoptic_gt_processing.py │ │ ├── point_sample.py │ │ ├── vlfuse_helper.py │ │ └── wbf.py │ └── vis │ │ ├── __init__.py │ │ ├── mask2former_vis.py │ │ └── masktrack_rcnn.py ├── registry.py ├── rossamdataset.py ├── structures │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-310.pyc │ │ ├── __init__.cpython-312.pyc │ │ ├── det_data_sample.cpython-310.pyc │ │ ├── det_data_sample.cpython-312.pyc │ │ ├── reid_data_sample.cpython-310.pyc │ │ ├── reid_data_sample.cpython-312.pyc │ │ ├── track_data_sample.cpython-310.pyc │ │ └── track_data_sample.cpython-312.pyc │ ├── bbox │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-310.pyc │ │ │ ├── __init__.cpython-312.pyc │ │ │ ├── base_boxes.cpython-310.pyc │ │ │ ├── base_boxes.cpython-312.pyc │ │ │ ├── bbox_overlaps.cpython-310.pyc │ │ │ ├── bbox_overlaps.cpython-312.pyc │ │ │ ├── box_type.cpython-310.pyc │ │ │ ├── box_type.cpython-312.pyc │ │ │ ├── horizontal_boxes.cpython-310.pyc │ │ │ ├── horizontal_boxes.cpython-312.pyc │ │ │ ├── transforms.cpython-310.pyc │ │ │ └── transforms.cpython-312.pyc │ │ ├── base_boxes.py │ │ ├── bbox_overlaps.py │ │ ├── box_type.py │ │ ├── horizontal_boxes.py │ │ └── transforms.py │ ├── det_data_sample.py │ ├── mask │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-310.pyc │ │ │ ├── __init__.cpython-312.pyc │ │ │ ├── mask_target.cpython-310.pyc │ │ │ ├── mask_target.cpython-312.pyc │ │ │ ├── structures.cpython-310.pyc │ │ │ ├── structures.cpython-312.pyc │ │ │ ├── utils.cpython-310.pyc │ │ │ └── utils.cpython-312.pyc │ │ ├── mask_target.py │ │ ├── structures.py │ │ └── utils.py │ ├── reid_data_sample.py │ └── track_data_sample.py ├── testing │ ├── __init__.py │ ├── _fast_stop_training_hook.py │ └── _utils.py ├── utils │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-310.pyc │ │ ├── __init__.cpython-312.pyc │ │ ├── collect_env.cpython-310.pyc │ │ ├── collect_env.cpython-312.pyc │ │ ├── compat_config.cpython-310.pyc │ │ ├── compat_config.cpython-312.pyc │ │ ├── dist_utils.cpython-310.pyc │ │ ├── dist_utils.cpython-312.pyc │ │ ├── logger.cpython-310.pyc │ │ ├── logger.cpython-312.pyc │ │ ├── memory.cpython-310.pyc │ │ ├── memory.cpython-312.pyc │ │ ├── misc.cpython-310.pyc │ │ ├── misc.cpython-312.pyc │ │ ├── mot_error_visualize.cpython-310.pyc │ │ ├── mot_error_visualize.cpython-312.pyc │ │ ├── replace_cfg_vals.cpython-310.pyc │ │ ├── replace_cfg_vals.cpython-312.pyc │ │ ├── setup_env.cpython-310.pyc │ │ ├── setup_env.cpython-312.pyc │ │ ├── split_batch.cpython-310.pyc │ │ ├── split_batch.cpython-312.pyc │ │ ├── typing_utils.cpython-310.pyc │ │ └── typing_utils.cpython-312.pyc │ ├── benchmark.py │ ├── collect_env.py │ ├── compat_config.py │ ├── contextmanagers.py │ ├── dist_utils.py │ ├── large_image.py │ ├── logger.py │ ├── memory.py │ ├── misc.py │ ├── mot_error_visualize.py │ ├── profiling.py │ ├── replace_cfg_vals.py │ ├── setup_env.py │ ├── split_batch.py │ ├── typing_utils.py │ ├── util_mixins.py │ └── util_random.py ├── version.py └── visualization │ ├── __init__.py │ ├── local_visualizer.py │ └── palette.py ├── segment_anything_training ├── __init__.py ├── build_sam.py ├── modeling │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-310.pyc │ │ ├── __init__.cpython-312.pyc │ │ ├── __init__.cpython-38.pyc │ │ ├── common.cpython-310.pyc │ │ ├── common.cpython-312.pyc │ │ ├── common.cpython-38.pyc │ │ ├── image_encoder.cpython-310.pyc │ │ ├── image_encoder.cpython-312.pyc │ │ ├── image_encoder.cpython-38.pyc │ │ ├── mask_decoder.cpython-310.pyc │ │ ├── mask_decoder.cpython-312.pyc │ │ ├── mask_decoder.cpython-38.pyc │ │ ├── prompt_encoder.cpython-310.pyc │ │ ├── prompt_encoder.cpython-312.pyc │ │ ├── prompt_encoder.cpython-38.pyc │ │ ├── sam.cpython-310.pyc │ │ ├── sam.cpython-312.pyc │ │ ├── sam.cpython-38.pyc │ │ ├── transformer.cpython-310.pyc │ │ ├── transformer.cpython-312.pyc │ │ └── transformer.cpython-38.pyc │ ├── common.py │ ├── image_encoder.py │ ├── mask_decoder.py │ ├── prompt_encoder.py │ ├── sam.py │ └── transformer.py └── utils │ ├── __init__.py │ └── transforms.py ├── train.py └── utils ├── loss_mask.py └── misc.py /data/train/boxes/airplane235.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/data/train/boxes/airplane235.npy -------------------------------------------------------------------------------- /data/train/img/airplane235.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/data/train/img/airplane235.png -------------------------------------------------------------------------------- /data/train/onehotmask/airplane235.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/data/train/onehotmask/airplane235.npy -------------------------------------------------------------------------------- /segment_anything.egg-info/PKG-INFO: -------------------------------------------------------------------------------- 1 | Metadata-Version: 2.1 2 | Name: segment_anything 3 | Version: 1.0 4 | License-File: LICENSE 5 | Provides-Extra: all 6 | Requires-Dist: matplotlib; extra == "all" 7 | Requires-Dist: pycocotools; extra == "all" 8 | Requires-Dist: opencv-python; extra == "all" 9 | Requires-Dist: onnx; extra == "all" 10 | Requires-Dist: onnxruntime; extra == "all" 11 | Requires-Dist: timm; extra == "all" 12 | Provides-Extra: dev 13 | Requires-Dist: flake8; extra == "dev" 14 | Requires-Dist: isort; extra == "dev" 15 | Requires-Dist: black; extra == "dev" 16 | Requires-Dist: mypy; extra == "dev" 17 | -------------------------------------------------------------------------------- /segment_anything/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. 2 | # All rights reserved. 3 | 4 | # This source code is licensed under the license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | from .build_sam import ( 8 | build_sam, 9 | build_sam_vit_h, 10 | build_sam_vit_l, 11 | build_sam_vit_b, 12 | sam_model_registry, 13 | ) 14 | from .build_sam_baseline import sam_model_registry_baseline 15 | from .predictor import SamPredictor 16 | from .automatic_mask_generator import SamAutomaticMaskGenerator 17 | -------------------------------------------------------------------------------- /segment_anything/modeling/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. 2 | # All rights reserved. 3 | 4 | # This source code is licensed under the license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | from .sam import Sam 8 | from .image_encoder import ImageEncoderViT 9 | from .mask_decoder_hq import MaskDecoderHQ 10 | from .mask_decoder import MaskDecoder 11 | from .prompt_encoder import PromptEncoder 12 | from .transformer import TwoWayTransformer 13 | from .tiny_vit_sam import TinyViT 14 | -------------------------------------------------------------------------------- /segment_anything/modeling/common.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. 2 | # All rights reserved. 3 | 4 | # This source code is licensed under the license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | import torch 8 | import torch.nn as nn 9 | 10 | from typing import Type 11 | 12 | 13 | class MLPBlock(nn.Module): 14 | def __init__( 15 | self, 16 | embedding_dim: int, 17 | mlp_dim: int, 18 | act: Type[nn.Module] = nn.GELU, 19 | ) -> None: 20 | super().__init__() 21 | self.lin1 = nn.Linear(embedding_dim, mlp_dim) 22 | self.lin2 = nn.Linear(mlp_dim, embedding_dim) 23 | self.act = act() 24 | 25 | def forward(self, x: torch.Tensor) -> torch.Tensor: 26 | return self.lin2(self.act(self.lin1(x))) 27 | 28 | 29 | # From https://github.com/facebookresearch/detectron2/blob/main/detectron2/layers/batch_norm.py # noqa 30 | # Itself from https://github.com/facebookresearch/ConvNeXt/blob/d1fa8f6fef0a165b27399986cc2bdacc92777e40/models/convnext.py#L119 # noqa 31 | class LayerNorm2d(nn.Module): 32 | def __init__(self, num_channels: int, eps: float = 1e-6) -> None: 33 | super().__init__() 34 | self.weight = nn.Parameter(torch.ones(num_channels)) 35 | self.bias = nn.Parameter(torch.zeros(num_channels)) 36 | self.eps = eps 37 | 38 | def forward(self, x: torch.Tensor) -> torch.Tensor: 39 | u = x.mean(1, keepdim=True) 40 | s = (x - u).pow(2).mean(1, keepdim=True) 41 | x = (x - u) / torch.sqrt(s + self.eps) 42 | x = self.weight[:, None, None] * x + self.bias[:, None, None] 43 | return x 44 | -------------------------------------------------------------------------------- /segment_anything/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. 2 | # All rights reserved. 3 | 4 | # This source code is licensed under the license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | -------------------------------------------------------------------------------- /train/mmdet/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | import mmcv 3 | import mmengine 4 | from mmengine.utils import digit_version 5 | 6 | from .version import __version__, version_info 7 | 8 | mmcv_minimum_version = '2.0.0rc4' 9 | mmcv_maximum_version = '2.2.1' 10 | mmcv_version = digit_version(mmcv.__version__) 11 | 12 | mmengine_minimum_version = '0.7.1' 13 | mmengine_maximum_version = '1.0.0' 14 | mmengine_version = digit_version(mmengine.__version__) 15 | 16 | assert (mmcv_version >= digit_version(mmcv_minimum_version) 17 | and mmcv_version < digit_version(mmcv_maximum_version)), \ 18 | f'MMCV=={mmcv.__version__} is used but incompatible. ' \ 19 | f'Please install mmcv>={mmcv_minimum_version}, <{mmcv_maximum_version}.' 20 | 21 | assert (mmengine_version >= digit_version(mmengine_minimum_version) 22 | and mmengine_version < digit_version(mmengine_maximum_version)), \ 23 | f'MMEngine=={mmengine.__version__} is used but incompatible. ' \ 24 | f'Please install mmengine>={mmengine_minimum_version}, ' \ 25 | f'<{mmengine_maximum_version}.' 26 | 27 | __all__ = ['__version__', 'version_info', 'digit_version'] 28 | -------------------------------------------------------------------------------- /train/mmdet/apis/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .det_inferencer import DetInferencer 3 | from .inference import (async_inference_detector, inference_detector, 4 | inference_mot, init_detector, init_track_model) 5 | 6 | __all__ = [ 7 | 'init_detector', 'async_inference_detector', 'inference_detector', 8 | 'DetInferencer', 'inference_mot', 'init_track_model' 9 | ] 10 | -------------------------------------------------------------------------------- /train/mmdet/configs/_base_/default_runtime.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.hooks import (CheckpointHook, DistSamplerSeedHook, IterTimerHook, 3 | LoggerHook, ParamSchedulerHook) 4 | from mmengine.runner import LogProcessor 5 | from mmengine.visualization import LocalVisBackend 6 | 7 | from mmdet.engine.hooks import DetVisualizationHook 8 | from mmdet.visualization import DetLocalVisualizer 9 | 10 | default_scope = None 11 | 12 | default_hooks = dict( 13 | timer=dict(type=IterTimerHook), 14 | logger=dict(type=LoggerHook, interval=50), 15 | param_scheduler=dict(type=ParamSchedulerHook), 16 | checkpoint=dict(type=CheckpointHook, interval=1), 17 | sampler_seed=dict(type=DistSamplerSeedHook), 18 | visualization=dict(type=DetVisualizationHook)) 19 | 20 | env_cfg = dict( 21 | cudnn_benchmark=False, 22 | mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0), 23 | dist_cfg=dict(backend='nccl'), 24 | ) 25 | 26 | vis_backends = [dict(type=LocalVisBackend)] 27 | visualizer = dict( 28 | type=DetLocalVisualizer, vis_backends=vis_backends, name='visualizer') 29 | log_processor = dict(type=LogProcessor, window_size=50, by_epoch=True) 30 | 31 | log_level = 'INFO' 32 | load_from = None 33 | resume = False 34 | -------------------------------------------------------------------------------- /train/mmdet/configs/_base_/schedules/schedule_1x.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.optim.optimizer.optimizer_wrapper import OptimWrapper 3 | from mmengine.optim.scheduler.lr_scheduler import LinearLR, MultiStepLR 4 | from mmengine.runner.loops import EpochBasedTrainLoop, TestLoop, ValLoop 5 | from torch.optim.sgd import SGD 6 | 7 | # training schedule for 1x 8 | train_cfg = dict(type=EpochBasedTrainLoop, max_epochs=12, val_interval=1) 9 | val_cfg = dict(type=ValLoop) 10 | test_cfg = dict(type=TestLoop) 11 | 12 | # learning rate 13 | param_scheduler = [ 14 | dict(type=LinearLR, start_factor=0.001, by_epoch=False, begin=0, end=500), 15 | dict( 16 | type=MultiStepLR, 17 | begin=0, 18 | end=12, 19 | by_epoch=True, 20 | milestones=[8, 11], 21 | gamma=0.1) 22 | ] 23 | 24 | # optimizer 25 | optim_wrapper = dict( 26 | type=OptimWrapper, 27 | optimizer=dict(type=SGD, lr=0.02, momentum=0.9, weight_decay=0.0001)) 28 | 29 | # Default setting for scaling LR automatically 30 | # - `enable` means enable scaling LR automatically 31 | # or not by default. 32 | # - `base_batch_size` = (8 GPUs) x (2 samples per GPU). 33 | auto_scale_lr = dict(enable=False, base_batch_size=16) 34 | -------------------------------------------------------------------------------- /train/mmdet/configs/_base_/schedules/schedule_2x.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.optim.optimizer.optimizer_wrapper import OptimWrapper 3 | from mmengine.optim.scheduler.lr_scheduler import LinearLR, MultiStepLR 4 | from mmengine.runner.loops import EpochBasedTrainLoop, TestLoop, ValLoop 5 | from torch.optim.sgd import SGD 6 | 7 | # training schedule for 1x 8 | train_cfg = dict(type=EpochBasedTrainLoop, max_epochs=24, val_interval=1) 9 | val_cfg = dict(type=ValLoop) 10 | test_cfg = dict(type=TestLoop) 11 | 12 | # learning rate 13 | param_scheduler = [ 14 | dict(type=LinearLR, start_factor=0.001, by_epoch=False, begin=0, end=500), 15 | dict( 16 | type=MultiStepLR, 17 | begin=0, 18 | end=24, 19 | by_epoch=True, 20 | milestones=[16, 22], 21 | gamma=0.1) 22 | ] 23 | 24 | # optimizer 25 | optim_wrapper = dict( 26 | type=OptimWrapper, 27 | optimizer=dict(type=SGD, lr=0.02, momentum=0.9, weight_decay=0.0001)) 28 | 29 | # Default setting for scaling LR automatically 30 | # - `enable` means enable scaling LR automatically 31 | # or not by default. 32 | # - `base_batch_size` = (8 GPUs) x (2 samples per GPU). 33 | auto_scale_lr = dict(enable=False, base_batch_size=16) 34 | -------------------------------------------------------------------------------- /train/mmdet/configs/cascade_rcnn/cascade_mask_rcnn_r50_fpn_1x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .._base_.datasets.coco_instance import * 11 | from .._base_.default_runtime import * 12 | from .._base_.models.cascade_mask_rcnn_r50_fpn import * 13 | from .._base_.schedules.schedule_1x import * 14 | -------------------------------------------------------------------------------- /train/mmdet/configs/cascade_rcnn/cascade_rcnn_r50_fpn_1x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .._base_.datasets.coco_detection import * 11 | from .._base_.default_runtime import * 12 | from .._base_.models.cascade_rcnn_r50_fpn import * 13 | from .._base_.schedules.schedule_1x import * 14 | -------------------------------------------------------------------------------- /train/mmdet/configs/common/lsj_200e_coco_detection.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .lsj_100e_coco_detection import * 11 | 12 | # 8x25=200e 13 | train_dataloader.update(dict(dataset=dict(times=8))) 14 | 15 | # learning rate 16 | param_scheduler = [ 17 | dict(type=LinearLR, start_factor=0.067, by_epoch=False, begin=0, end=1000), 18 | dict( 19 | type=MultiStepLR, 20 | begin=0, 21 | end=25, 22 | by_epoch=True, 23 | milestones=[22, 24], 24 | gamma=0.1) 25 | ] 26 | -------------------------------------------------------------------------------- /train/mmdet/configs/common/lsj_200e_coco_instance.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .lsj_100e_coco_instance import * 11 | 12 | # 8x25=200e 13 | train_dataloader.update(dict(dataset=dict(times=8))) 14 | 15 | # learning rate 16 | param_scheduler = [ 17 | dict(type=LinearLR, start_factor=0.067, by_epoch=False, begin=0, end=1000), 18 | dict( 19 | type=MultiStepLR, 20 | begin=0, 21 | end=25, 22 | by_epoch=True, 23 | milestones=[22, 24], 24 | gamma=0.1) 25 | ] 26 | -------------------------------------------------------------------------------- /train/mmdet/configs/deformable_detr/deformable_detr_refine_r50_16xb2_50e_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .deformable_detr_r50_16xb2_50e_coco import * 11 | 12 | model.update(dict(with_box_refine=True)) 13 | -------------------------------------------------------------------------------- /train/mmdet/configs/deformable_detr/deformable_detr_refine_twostage_r50_16xb2_50e_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .deformable_detr_refine_r50_16xb2_50e_coco import * 11 | 12 | model.update(dict(as_two_stage=True)) 13 | -------------------------------------------------------------------------------- /train/mmdet/configs/detr/detr_r101_8xb2_500e_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.config import read_base 3 | from mmengine.model.weight_init import PretrainedInit 4 | 5 | with read_base(): 6 | from .detr_r50_8xb2_500e_coco import * 7 | 8 | model.update( 9 | dict( 10 | backbone=dict( 11 | depth=101, 12 | init_cfg=dict( 13 | type=PretrainedInit, checkpoint='torchvision://resnet101')))) 14 | -------------------------------------------------------------------------------- /train/mmdet/configs/detr/detr_r18_8xb2_500e_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.config import read_base 3 | from mmengine.model.weight_init import PretrainedInit 4 | 5 | with read_base(): 6 | from .detr_r50_8xb2_500e_coco import * 7 | 8 | model.update( 9 | dict( 10 | backbone=dict( 11 | depth=18, 12 | init_cfg=dict( 13 | type=PretrainedInit, checkpoint='torchvision://resnet18')), 14 | neck=dict(in_channels=[512]))) 15 | -------------------------------------------------------------------------------- /train/mmdet/configs/detr/detr_r50_8xb2_500e_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.config import read_base 3 | from mmengine.optim.scheduler.lr_scheduler import MultiStepLR 4 | from mmengine.runner.loops import EpochBasedTrainLoop 5 | 6 | with read_base(): 7 | from .detr_r50_8xb2_150e_coco import * 8 | 9 | # learning policy 10 | max_epochs = 500 11 | train_cfg.update( 12 | type=EpochBasedTrainLoop, max_epochs=max_epochs, val_interval=10) 13 | 14 | param_scheduler = [ 15 | dict( 16 | type=MultiStepLR, 17 | begin=0, 18 | end=max_epochs, 19 | by_epoch=True, 20 | milestones=[334], 21 | gamma=0.1) 22 | ] 23 | 24 | # only keep latest 2 checkpoints 25 | default_hooks.update(checkpoint=dict(max_keep_ckpts=2)) 26 | -------------------------------------------------------------------------------- /train/mmdet/configs/dino/dino_4scale_r50_8xb2_24e_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.config import read_base 3 | from mmengine.runner.loops import EpochBasedTrainLoop 4 | 5 | with read_base(): 6 | from .dino_4scale_r50_8xb2_12e_coco import * 7 | 8 | max_epochs = 24 9 | train_cfg.update( 10 | dict(type=EpochBasedTrainLoop, max_epochs=max_epochs, val_interval=1)) 11 | 12 | param_scheduler[0].update(dict(milestones=[20])) 13 | -------------------------------------------------------------------------------- /train/mmdet/configs/dino/dino_4scale_r50_8xb2_36e_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.config import read_base 3 | from mmengine.runner.loops import EpochBasedTrainLoop 4 | 5 | with read_base(): 6 | from .dino_4scale_r50_8xb2_12e_coco import * 7 | 8 | max_epochs = 36 9 | train_cfg.update( 10 | dict(type=EpochBasedTrainLoop, max_epochs=max_epochs, val_interval=1)) 11 | 12 | param_scheduler[0].update(dict(milestones=[30])) 13 | -------------------------------------------------------------------------------- /train/mmdet/configs/dino/dino_4scale_r50_improved_8xb2_12e_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.config import read_base 3 | 4 | with read_base(): 5 | from .dino_4scale_r50_8xb2_12e_coco import * 6 | 7 | # from deformable detr hyper 8 | model.update( 9 | dict( 10 | backbone=dict(frozen_stages=-1), 11 | bbox_head=dict(loss_cls=dict(loss_weight=2.0)), 12 | positional_encoding=dict(offset=-0.5, temperature=10000), 13 | dn_cfg=dict(group_cfg=dict(num_dn_queries=300)))) 14 | 15 | # optimizer 16 | optim_wrapper.update( 17 | dict( 18 | optimizer=dict(lr=0.0002), 19 | paramwise_cfg=dict( 20 | custom_keys={ 21 | 'backbone': dict(lr_mult=0.1), 22 | 'sampling_offsets': dict(lr_mult=0.1), 23 | 'reference_points': dict(lr_mult=0.1) 24 | }))) 25 | -------------------------------------------------------------------------------- /train/mmdet/configs/dino/dino_5scale_swin_l_8xb2_12e_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.config import read_base 3 | from mmengine.model.weight_init import PretrainedInit 4 | 5 | from mmdet.models import SwinTransformer 6 | 7 | with read_base(): 8 | from .dino_4scale_r50_8xb2_12e_coco import * 9 | 10 | pretrained = 'https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_large_patch4_window12_384_22k.pth' # noqa 11 | num_levels = 5 12 | model.merge( 13 | dict( 14 | num_feature_levels=num_levels, 15 | backbone=dict( 16 | _delete_=True, 17 | type=SwinTransformer, 18 | pretrain_img_size=384, 19 | embed_dims=192, 20 | depths=[2, 2, 18, 2], 21 | num_heads=[6, 12, 24, 48], 22 | window_size=12, 23 | mlp_ratio=4, 24 | qkv_bias=True, 25 | qk_scale=None, 26 | drop_rate=0., 27 | attn_drop_rate=0., 28 | drop_path_rate=0.2, 29 | patch_norm=True, 30 | out_indices=(0, 1, 2, 3), 31 | # Please only add indices that would be used 32 | # in FPN, otherwise some parameter will not be used 33 | with_cp=True, 34 | convert_weights=True, 35 | init_cfg=dict(type=PretrainedInit, checkpoint=pretrained)), 36 | neck=dict(in_channels=[192, 384, 768, 1536], num_outs=num_levels), 37 | encoder=dict( 38 | layer_cfg=dict(self_attn_cfg=dict(num_levels=num_levels))), 39 | decoder=dict( 40 | layer_cfg=dict(cross_attn_cfg=dict(num_levels=num_levels))))) 41 | -------------------------------------------------------------------------------- /train/mmdet/configs/dino/dino_5scale_swin_l_8xb2_36e_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.config import read_base 3 | from mmengine.runner.loops import EpochBasedTrainLoop 4 | 5 | with read_base(): 6 | from .dino_5scale_swin_l_8xb2_12e_coco import * 7 | 8 | max_epochs = 36 9 | train_cfg.update( 10 | dict(type=EpochBasedTrainLoop, max_epochs=max_epochs, val_interval=1)) 11 | 12 | param_scheduler[0].update(dict(milestones=[27, 33])) 13 | -------------------------------------------------------------------------------- /train/mmdet/configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .._base_.datasets.coco_detection import * 11 | from .._base_.default_runtime import * 12 | from .._base_.models.faster_rcnn_r50_fpn import * 13 | from .._base_.schedules.schedule_1x import * 14 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r101_caffe_fpn_1x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .mask_rcnn_r50_fpn_poly_1x_coco import * 11 | 12 | from mmengine.model.weight_init import PretrainedInit 13 | 14 | model = dict( 15 | backbone=dict( 16 | depth=101, 17 | init_cfg=dict( 18 | type=PretrainedInit, 19 | checkpoint='open-mmlab://detectron2/resnet101_caffe'))) 20 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r101_caffe_fpn_ms_poly_3x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from ..common.ms_poly_3x_coco_instance import * 11 | from .._base_.models.mask_rcnn_r50_fpn import * 12 | 13 | from mmengine.model.weight_init import PretrainedInit 14 | 15 | model = dict( 16 | # use caffe img_norm 17 | data_preprocessor=dict( 18 | mean=[103.530, 116.280, 123.675], 19 | std=[1.0, 1.0, 1.0], 20 | bgr_to_rgb=False), 21 | backbone=dict( 22 | depth=101, 23 | norm_cfg=dict(requires_grad=False), 24 | norm_eval=True, 25 | style='caffe', 26 | init_cfg=dict( 27 | type=PretrainedInit, 28 | checkpoint='open-mmlab://detectron2/resnet101_caffe'))) 29 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r101_fpn_1x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .._base_.models.mask_rcnn_r50_fpn import * 11 | 12 | from mmengine.model.weight_init import PretrainedInit 13 | 14 | model = dict( 15 | backbone=dict( 16 | depth=101, 17 | init_cfg=dict( 18 | type=PretrainedInit, checkpoint='torchvision://resnet101'))) 19 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r101_fpn_2x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .mask_rcnn_r50_fpn_2x_coco import * 11 | 12 | from mmengine.model.weight_init import PretrainedInit 13 | 14 | model = dict( 15 | backbone=dict( 16 | depth=101, 17 | init_cfg=dict( 18 | type=PretrainedInit, checkpoint='torchvision://resnet101'))) 19 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r101_fpn_8xb8_amp_lsj_200e_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .mask_rcnn_r18_fpn_8xb8_amp_lsj_200e_coco import * 11 | 12 | from mmengine.model.weight_init import PretrainedInit 13 | 14 | model = dict( 15 | backbone=dict( 16 | depth=101, 17 | init_cfg=dict( 18 | type=PretrainedInit, checkpoint='torchvision://resnet101'))) 19 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r101_fpn_ms_poly_3x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from ..common.ms_poly_3x_coco_instance import * 11 | from .._base_.models.mask_rcnn_r50_fpn import * 12 | 13 | from mmengine.model.weight_init import PretrainedInit 14 | 15 | model = dict( 16 | backbone=dict( 17 | depth=101, 18 | init_cfg=dict( 19 | type=PretrainedInit, checkpoint='torchvision://resnet101'))) 20 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r18_fpn_8xb8_amp_lsj_200e_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .mask_rcnn_r50_fpn_8xb8_amp_lsj_200e_coco import * 11 | 12 | from mmengine.model.weight_init import PretrainedInit 13 | 14 | model = dict( 15 | backbone=dict( 16 | depth=18, 17 | init_cfg=dict( 18 | type=PretrainedInit, checkpoint='torchvision://resnet18')), 19 | neck=dict(in_channels=[64, 128, 256, 512])) 20 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r50_caffe_c4_1x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .._base_.datasets.coco_instance import * 11 | from .._base_.default_runtime import * 12 | from .._base_.models.mask_rcnn_r50_caffe_c4 import * 13 | from .._base_.schedules.schedule_1x import * 14 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r50_caffe_fpn_1x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .mask_rcnn_r50_fpn_1x_coco import * 11 | 12 | from mmengine.model.weight_init import PretrainedInit 13 | 14 | model = dict( 15 | # use caffe img_norm 16 | data_preprocessor=dict( 17 | mean=[103.530, 116.280, 123.675], 18 | std=[1.0, 1.0, 1.0], 19 | bgr_to_rgb=False), 20 | backbone=dict( 21 | norm_cfg=dict(requires_grad=False), 22 | style='caffe', 23 | init_cfg=dict( 24 | type=PretrainedInit, 25 | checkpoint='open-mmlab://detectron2/resnet50_caffe'))) 26 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r50_caffe_fpn_ms_1x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .mask_rcnn_r50_fpn_1x_coco import * 11 | 12 | from mmcv.transforms import RandomChoiceResize 13 | from mmengine.model.weight_init import PretrainedInit 14 | 15 | model = dict( 16 | # use caffe img_norm 17 | data_preprocessor=dict( 18 | mean=[103.530, 116.280, 123.675], 19 | std=[1.0, 1.0, 1.0], 20 | bgr_to_rgb=False), 21 | backbone=dict( 22 | norm_cfg=dict(requires_grad=False), 23 | style='caffe', 24 | init_cfg=dict( 25 | type=PretrainedInit, 26 | checkpoint='open-mmlab://detectron2/resnet50_caffe'))) 27 | 28 | train_pipeline = [ 29 | dict(type=LoadImageFromFile, backend_args={{_base_.backend_args}}), 30 | dict(type=LoadAnnotations, with_bbox=True, with_mask=True), 31 | dict( 32 | type=RandomChoiceResize, 33 | scales=[(1333, 640), (1333, 672), (1333, 704), (1333, 736), 34 | (1333, 768), (1333, 800)], 35 | keep_ratio=True), 36 | dict(type=RandomFlip, prob=0.5), 37 | dict(type=PackDetInputs), 38 | ] 39 | 40 | train_dataloader.update(dict(dataset=dict(pipeline=train_pipeline))) 41 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r50_caffe_fpn_ms_poly_1x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .mask_rcnn_r50_fpn_1x_coco import * 11 | 12 | from mmcv.transforms import RandomChoiceResize 13 | from mmengine.model.weight_init import PretrainedInit 14 | 15 | model = dict( 16 | # use caffe img_norm 17 | data_preprocessor=dict( 18 | mean=[103.530, 116.280, 123.675], 19 | std=[1.0, 1.0, 1.0], 20 | bgr_to_rgb=False), 21 | backbone=dict( 22 | norm_cfg=dict(requires_grad=False), 23 | style='caffe', 24 | init_cfg=dict( 25 | type=PretrainedInit, 26 | checkpoint='open-mmlab://detectron2/resnet50_caffe'))) 27 | train_pipeline = [ 28 | dict(type=LoadImageFromFile, backend_args={{_base_.backend_args}}), 29 | dict( 30 | type=LoadAnnotations, with_bbox=True, with_mask=True, poly2mask=False), 31 | dict( 32 | type=RandomChoiceResize, 33 | scales=[(1333, 640), (1333, 672), (1333, 704), (1333, 736), 34 | (1333, 768), (1333, 800)], 35 | keep_ratio=True), 36 | dict(type=RandomFlip, prob=0.5), 37 | dict(type=PackDetInputs) 38 | ] 39 | 40 | train_dataloader.update(dict(dataset=dict(pipeline=train_pipeline))) 41 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r50_caffe_fpn_ms_poly_2x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .mask_rcnn_r50_caffe_fpn_ms_poly_1x_coco import * 11 | 12 | train_cfg = dict(max_epochs=24) 13 | # learning rate 14 | param_scheduler = [ 15 | dict(type=LinearLR, start_factor=0.001, by_epoch=False, begin=0, end=500), 16 | dict( 17 | type=MultiStepLR, 18 | begin=0, 19 | end=24, 20 | by_epoch=True, 21 | milestones=[16, 22], 22 | gamma=0.1) 23 | ] 24 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r50_caffe_fpn_ms_poly_3x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .mask_rcnn_r50_caffe_fpn_ms_poly_1x_coco import * 11 | 12 | train_cfg = dict(max_epochs=36) 13 | # learning rate 14 | param_scheduler = [ 15 | dict(type=LinearLR, start_factor=0.001, by_epoch=False, begin=0, end=500), 16 | dict( 17 | type=MultiStepLR, 18 | begin=0, 19 | end=24, 20 | by_epoch=True, 21 | milestones=[28, 34], 22 | gamma=0.1) 23 | ] 24 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r50_caffe_fpn_poly_1x_coco_v1.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .mask_rcnn_r50_fpn_1x_coco import * 11 | 12 | from mmengine.model.weight_init import PretrainedInit 13 | 14 | from mmdet.models.losses import SmoothL1Loss 15 | 16 | model = dict( 17 | # use caffe img_norm 18 | data_preprocessor=dict( 19 | mean=[103.530, 116.280, 123.675], 20 | std=[1.0, 1.0, 1.0], 21 | bgr_to_rgb=False), 22 | backbone=dict( 23 | norm_cfg=dict(requires_grad=False), 24 | style='caffe', 25 | init_cfg=dict( 26 | type=PretrainedInit, 27 | checkpoint='open-mmlab://detectron2/resnet50_caffe')), 28 | rpn_head=dict( 29 | loss_bbox=dict(type=SmoothL1Loss, beta=1.0 / 9.0, loss_weight=1.0)), 30 | roi_head=dict( 31 | bbox_roi_extractor=dict( 32 | roi_layer=dict( 33 | type=RoIAlign, output_size=7, sampling_ratio=2, 34 | aligned=False)), 35 | bbox_head=dict( 36 | loss_bbox=dict(type=SmoothL1Loss, beta=1.0, loss_weight=1.0)), 37 | mask_roi_extractor=dict( 38 | roi_layer=dict( 39 | type=RoIAlign, output_size=14, sampling_ratio=2, 40 | aligned=False)))) 41 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r50_fpn_1x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .._base_.datasets.coco_instance import * 11 | from .._base_.default_runtime import * 12 | from .._base_.models.mask_rcnn_r50_fpn import * 13 | from .._base_.schedules.schedule_1x import * 14 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r50_fpn_1x_wandb_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .._base_.datasets.coco_instance import * 11 | from .._base_.default_runtime import * 12 | from .._base_.models.mask_rcnn_r50_fpn import * 13 | from .._base_.schedules.schedule_1x import * 14 | 15 | from mmengine.visualization import LocalVisBackend, WandbVisBackend 16 | 17 | vis_backends.update(dict(type=WandbVisBackend)) 18 | vis_backends.update(dict(type=LocalVisBackend)) 19 | visualizer.update(dict(vis_backends=vis_backends)) 20 | 21 | # MMEngine support the following two ways, users can choose 22 | # according to convenience 23 | # Copyright (c) OpenMMLab. All rights reserved. 24 | 25 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 26 | # mmcv >= 2.0.1 27 | # mmengine >= 0.8.0 28 | 29 | default_hooks.update(dict(checkpoint=dict(interval=4))) 30 | 31 | train_cfg.update(dict(val_interval=2)) 32 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r50_fpn_2x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .._base_.datasets.coco_instance import * 11 | from .._base_.default_runtime import * 12 | from .._base_.models.mask_rcnn_r50_fpn import * 13 | from .._base_.schedules.schedule_2x import * 14 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r50_fpn_8xb8_amp_lsj_200e_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r50_fpn_amp_1x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .mask_rcnn_r50_fpn_1x_coco import * 11 | 12 | from mmengine.optim.optimizer.amp_optimizer_wrapper import AmpOptimWrapper 13 | 14 | optim_wrapper.update(dict(type=AmpOptimWrapper)) 15 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r50_fpn_ms_poly_-3x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .._base_.models.mask_rcnn_r50_fpn import * 11 | from ..common.ms_poly_3x_coco_instance import * 12 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_r50_fpn_poly_1x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .._base_.datasets.coco_instance import * 11 | from .._base_.default_runtime import * 12 | from .._base_.models.mask_rcnn_r50_fpn import * 13 | from .._base_.schedules.schedule_1x import * 14 | 15 | train_pipeline = [ 16 | dict(type=LoadImageFromFile, backend_args=backend_args), 17 | dict( 18 | type=LoadAnnotations, with_bbox=True, with_mask=True, poly2mask=False), 19 | dict(type=Resize, scale=(1333, 800), keep_ratio=True), 20 | dict(type=RandomFlip, prob=0.5), 21 | dict(type=PackDetInputs), 22 | ] 23 | train_dataloader.update(dict(dataset=dict(pipeline=train_pipeline))) 24 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_x101_32x4d_fpn_1x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .mask_rcnn_r101_fpn_1x_coco import * 11 | 12 | from mmengine.model.weight_init import PretrainedInit 13 | 14 | from mmdet.models.backbones.resnext import ResNeXt 15 | 16 | model = dict( 17 | backbone=dict( 18 | type=ResNeXt, 19 | depth=101, 20 | groups=32, 21 | base_width=4, 22 | num_stages=4, 23 | out_indices=(0, 1, 2, 3), 24 | frozen_stages=1, 25 | norm_cfg=dict(type=BatchNorm2d, requires_grad=True), 26 | style='pytorch', 27 | init_cfg=dict( 28 | type=PretrainedInit, checkpoint='open-mmlab://resnext101_32x4d'))) 29 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_x101_32x4d_fpn_2x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .mask_rcnn_r50_fpn_2x_coco import * 11 | 12 | from mmengine.model.weight_init import PretrainedInit 13 | 14 | from mmdet.models import ResNeXt 15 | 16 | model = dict( 17 | backbone=dict( 18 | type=ResNeXt, 19 | depth=101, 20 | groups=32, 21 | base_width=4, 22 | num_stages=4, 23 | out_indices=(0, 1, 2, 3), 24 | frozen_stages=1, 25 | norm_cfg=dict(type=BatchNorm2d, requires_grad=True), 26 | style='pytorch', 27 | init_cfg=dict( 28 | type=PretrainedInit, checkpoint='open-mmlab://resnext101_32x4d'))) 29 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_x101_32x4d_fpn_ms_poly_3x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from ..common.ms_poly_3x_coco_instance import * 11 | from .._base_.models.mask_rcnn_r50_fpn import * 12 | 13 | from mmengine.model.weight_init import PretrainedInit 14 | 15 | from mmdet.models.backbones import ResNeXt 16 | 17 | model = dict( 18 | backbone=dict( 19 | type=ResNeXt, 20 | depth=101, 21 | groups=32, 22 | base_width=4, 23 | num_stages=4, 24 | out_indices=(0, 1, 2, 3), 25 | frozen_stages=1, 26 | norm_cfg=dict(type=BatchNorm2d, requires_grad=True), 27 | style='pytorch', 28 | init_cfg=dict( 29 | type=PretrainedInit, checkpoint='open-mmlab://resnext101_32x4d'))) 30 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_x101_32x8d_fpn_1x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .mask_rcnn_x101_32x4d_fpn_1x_coco import * 11 | 12 | model = dict( 13 | # ResNeXt-101-32x8d model trained with Caffe2 at FB, 14 | # so the mean and std need to be changed. 15 | data_preprocessor=dict( 16 | mean=[103.530, 116.280, 123.675], 17 | std=[57.375, 57.120, 58.395], 18 | bgr_to_rgb=False), 19 | backbone=dict( 20 | type=ResNeXt, 21 | depth=101, 22 | groups=32, 23 | base_width=8, 24 | num_stages=4, 25 | out_indices=(0, 1, 2, 3), 26 | frozen_stages=1, 27 | norm_cfg=dict(type=BatchNorm2d, requires_grad=False), 28 | style='pytorch', 29 | init_cfg=dict( 30 | type=PretrainedInit, 31 | checkpoint='open-mmlab://detectron2/resnext101_32x8d'))) 32 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_x101_32x8d_fpn_ms_poly_3x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from ..common.ms_poly_3x_coco_instance import * 11 | from .._base_.models.mask_rcnn_r50_fpn import * 12 | 13 | from mmdet.models.backbones import ResNeXt 14 | 15 | model = dict( 16 | # ResNeXt-101-32x8d model trained with Caffe2 at FB, 17 | # so the mean and std need to be changed. 18 | data_preprocessor=dict( 19 | mean=[103.530, 116.280, 123.675], 20 | std=[57.375, 57.120, 58.395], 21 | bgr_to_rgb=False), 22 | backbone=dict( 23 | type=ResNeXt, 24 | depth=101, 25 | groups=32, 26 | base_width=8, 27 | num_stages=4, 28 | out_indices=(0, 1, 2, 3), 29 | frozen_stages=1, 30 | norm_cfg=dict(type=BatchNorm2d, requires_grad=False), 31 | style='pytorch', 32 | init_cfg=dict( 33 | type=PretrainedInit, 34 | checkpoint='open-mmlab://detectron2/resnext101_32x8d'))) 35 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_x101_64_4d_fpn_1x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .mask_rcnn_x101_32x4d_fpn_1x_coco import * 11 | 12 | model = dict( 13 | backbone=dict( 14 | type=ResNeXt, 15 | depth=101, 16 | groups=64, 17 | base_width=4, 18 | num_stages=4, 19 | out_indices=(0, 1, 2, 3), 20 | frozen_stages=1, 21 | norm_cfg=dict(type=BatchNorm2d, requires_grad=True), 22 | style='pytorch', 23 | init_cfg=dict( 24 | type=PretrainedInit, checkpoint='open-mmlab://resnext101_64x4d'))) 25 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_x101_64x4d_fpn_2x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .mask_rcnn_x101_32x4d_fpn_2x_coco import * 11 | 12 | model = dict( 13 | backbone=dict( 14 | type=ResNeXt, 15 | depth=101, 16 | groups=64, 17 | base_width=4, 18 | num_stages=4, 19 | out_indices=(0, 1, 2, 3), 20 | frozen_stages=1, 21 | norm_cfg=dict(type=BatchNorm2d, requires_grad=True), 22 | style='pytorch', 23 | init_cfg=dict( 24 | type=PretrainedInit, checkpoint='open-mmlab://resnext101_64x4d'))) 25 | -------------------------------------------------------------------------------- /train/mmdet/configs/mask_rcnn/mask_rcnn_x101_64x4d_fpn_ms_poly_3x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from ..common.ms_poly_3x_coco_instance import * 11 | from .._base_.models.mask_rcnn_r50_fpn import * 12 | 13 | from mmdet.models.backbones import ResNeXt 14 | 15 | model = dict( 16 | backbone=dict( 17 | type=ResNeXt, 18 | depth=101, 19 | groups=64, 20 | base_width=4, 21 | num_stages=4, 22 | out_indices=(0, 1, 2, 3), 23 | frozen_stages=1, 24 | norm_cfg=dict(type=BatchNorm2d, requires_grad=True), 25 | style='pytorch', 26 | init_cfg=dict( 27 | type=PretrainedInit, checkpoint='open-mmlab://resnext101_64x4d'))) 28 | -------------------------------------------------------------------------------- /train/mmdet/configs/panoptic_fpn/panoptic_fpn_r101_fpn_1x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.config import read_base 3 | from mmengine.model.weight_init import PretrainedInit 4 | 5 | with read_base(): 6 | from .panoptic_fpn_r50_fpn_1x_coco import * 7 | 8 | model.update( 9 | dict( 10 | backbone=dict( 11 | depth=101, 12 | init_cfg=dict( 13 | type=PretrainedInit, checkpoint='torchvision://resnet101')))) 14 | -------------------------------------------------------------------------------- /train/mmdet/configs/panoptic_fpn/panoptic_fpn_r101_fpn_ms_3x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.config import read_base 3 | from mmengine.model.weight_init import PretrainedInit 4 | 5 | with read_base(): 6 | from .panoptic_fpn_r50_fpn_ms_3x_coco import * 7 | 8 | model.update( 9 | dict( 10 | backbone=dict( 11 | depth=101, 12 | init_cfg=dict( 13 | type=PretrainedInit, checkpoint='torchvision://resnet101')))) 14 | -------------------------------------------------------------------------------- /train/mmdet/configs/panoptic_fpn/panoptic_fpn_r50_fpn_ms_3x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.config import read_base 3 | from mmengine.optim.scheduler.lr_scheduler import LinearLR, MultiStepLR 4 | 5 | with read_base(): 6 | from .panoptic_fpn_r50_fpn_1x_coco import * 7 | 8 | from mmcv.transforms import RandomResize 9 | from mmcv.transforms.loading import LoadImageFromFile 10 | 11 | from mmdet.datasets.transforms.formatting import PackDetInputs 12 | from mmdet.datasets.transforms.loading import LoadPanopticAnnotations 13 | from mmdet.datasets.transforms.transforms import RandomFlip 14 | 15 | # In mstrain 3x config, img_scale=[(1333, 640), (1333, 800)], 16 | # multiscale_mode='range' 17 | train_pipeline = [ 18 | dict(type=LoadImageFromFile), 19 | dict( 20 | type=LoadPanopticAnnotations, 21 | with_bbox=True, 22 | with_mask=True, 23 | with_seg=True), 24 | dict(type=RandomResize, scale=[(1333, 640), (1333, 800)], keep_ratio=True), 25 | dict(type=RandomFlip, prob=0.5), 26 | dict(type=PackDetInputs) 27 | ] 28 | 29 | train_dataloader.update(dict(dataset=dict(pipeline=train_pipeline))) 30 | 31 | # TODO: Use RepeatDataset to speed up training 32 | # training schedule for 3x 33 | train_cfg.update(dict(max_epochs=36, val_interval=3)) 34 | 35 | # learning rate 36 | param_scheduler = [ 37 | dict(type=LinearLR, start_factor=0.001, by_epoch=False, begin=0, end=500), 38 | dict( 39 | type=MultiStepLR, 40 | begin=0, 41 | end=36, 42 | by_epoch=True, 43 | milestones=[24, 33], 44 | gamma=0.1) 45 | ] 46 | -------------------------------------------------------------------------------- /train/mmdet/configs/qdtrack/qdtrack_faster_rcnn_r50_fpn_8xb2-4e_mot17halftrain_test-mot17halfval.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.config import read_base 3 | 4 | with read_base(): 5 | from .._base_.datasets.mot_challenge import * 6 | from .qdtrack_faster_rcnn_r50_fpn_4e_base import * 7 | 8 | from mmdet.evaluation import CocoVideoMetric, MOTChallengeMetric 9 | 10 | # evaluator 11 | val_evaluator = [ 12 | dict(type=CocoVideoMetric, metric=['bbox'], classwise=True), 13 | dict(type=MOTChallengeMetric, metric=['HOTA', 'CLEAR', 'Identity']) 14 | ] 15 | -------------------------------------------------------------------------------- /train/mmdet/configs/retinanet/retinanet_r50_fpn_1x_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .._base_.models.retinanet_r50_fpn import * 11 | from .._base_.datasets.coco_detection import * 12 | from .._base_.schedules.schedule_1x import * 13 | from .._base_.default_runtime import * 14 | from .retinanet_tta import * 15 | 16 | from torch.optim.sgd import SGD 17 | 18 | # optimizer 19 | optim_wrapper.update( 20 | dict(optimizer=dict(type=SGD, lr=0.01, momentum=0.9, weight_decay=0.0001))) 21 | -------------------------------------------------------------------------------- /train/mmdet/configs/retinanet/retinanet_tta.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmcv.transforms.loading import LoadImageFromFile 3 | from mmcv.transforms.processing import TestTimeAug 4 | 5 | from mmdet.datasets.transforms.formatting import PackDetInputs 6 | from mmdet.datasets.transforms.loading import LoadAnnotations 7 | from mmdet.datasets.transforms.transforms import RandomFlip, Resize 8 | from mmdet.models.test_time_augs.det_tta import DetTTAModel 9 | 10 | tta_model = dict( 11 | type=DetTTAModel, 12 | tta_cfg=dict(nms=dict(type='nms', iou_threshold=0.5), max_per_img=100)) 13 | 14 | img_scales = [(1333, 800), (666, 400), (2000, 1200)] 15 | tta_pipeline = [ 16 | dict(type=LoadImageFromFile, backend_args=None), 17 | dict( 18 | type=TestTimeAug, 19 | transforms=[ 20 | [dict(type=Resize, scale=s, keep_ratio=True) for s in img_scales], 21 | [dict(type=RandomFlip, prob=1.), 22 | dict(type=RandomFlip, prob=0.)], 23 | [dict(type=LoadAnnotations, with_bbox=True)], 24 | [ 25 | dict( 26 | type=PackDetInputs, 27 | meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 28 | 'scale_factor', 'flip', 'flip_direction')) 29 | ] 30 | ]) 31 | ] 32 | -------------------------------------------------------------------------------- /train/mmdet/configs/rtmdet/rtmdet_ins_m_8xb32_300e_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .rtmdet_ins_l_8xb32_300e_coco import * 11 | 12 | model.update( 13 | dict( 14 | backbone=dict(deepen_factor=0.67, widen_factor=0.75), 15 | neck=dict( 16 | in_channels=[192, 384, 768], out_channels=192, num_csp_blocks=2), 17 | bbox_head=dict(in_channels=192, feat_channels=192))) 18 | -------------------------------------------------------------------------------- /train/mmdet/configs/rtmdet/rtmdet_ins_x_8xb16_300e_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .rtmdet_ins_l_8xb32_300e_coco import * 11 | from mmengine.optim.scheduler.lr_scheduler import CosineAnnealingLR, LinearLR 12 | 13 | model.update( 14 | dict( 15 | backbone=dict(deepen_factor=1.33, widen_factor=1.25), 16 | neck=dict( 17 | in_channels=[320, 640, 1280], out_channels=320, num_csp_blocks=4), 18 | bbox_head=dict(in_channels=320, feat_channels=320))) 19 | 20 | base_lr = 0.002 21 | 22 | # optimizer 23 | optim_wrapper.update(dict(optimizer=dict(lr=base_lr))) 24 | 25 | # learning rate 26 | param_scheduler = [ 27 | dict( 28 | type=LinearLR, start_factor=1.0e-5, by_epoch=False, begin=0, end=1000), 29 | dict( 30 | # use cosine lr from 150 to 300 epoch 31 | type=CosineAnnealingLR, 32 | eta_min=base_lr * 0.05, 33 | begin=max_epochs // 2, 34 | end=max_epochs, 35 | T_max=max_epochs // 2, 36 | by_epoch=True, 37 | convert_to_iter_based=True), 38 | ] 39 | -------------------------------------------------------------------------------- /train/mmdet/configs/rtmdet/rtmdet_m_8xb32_300e_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .rtmdet_l_8xb32_300e_coco import * 11 | 12 | model.update( 13 | dict( 14 | backbone=dict(deepen_factor=0.67, widen_factor=0.75), 15 | neck=dict( 16 | in_channels=[192, 384, 768], out_channels=192, num_csp_blocks=2), 17 | bbox_head=dict(in_channels=192, feat_channels=192))) 18 | -------------------------------------------------------------------------------- /train/mmdet/configs/rtmdet/rtmdet_tta.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmcv.transforms.loading import LoadImageFromFile 3 | from mmcv.transforms.processing import TestTimeAug 4 | 5 | from mmdet.datasets.transforms.formatting import PackDetInputs 6 | from mmdet.datasets.transforms.loading import LoadAnnotations 7 | from mmdet.datasets.transforms.transforms import Pad, RandomFlip, Resize 8 | from mmdet.models.test_time_augs.det_tta import DetTTAModel 9 | 10 | tta_model = dict( 11 | type=DetTTAModel, 12 | tta_cfg=dict(nms=dict(type='nms', iou_threshold=0.6), max_per_img=100)) 13 | 14 | img_scales = [(640, 640), (320, 320), (960, 960)] 15 | 16 | tta_pipeline = [ 17 | dict(type=LoadImageFromFile, backend_args=None), 18 | dict( 19 | type=TestTimeAug, 20 | transforms=[ 21 | [dict(type=Resize, scale=s, keep_ratio=True) for s in img_scales], 22 | [ 23 | # ``RandomFlip`` must be placed before ``Pad``, otherwise 24 | # bounding box coordinates after flipping cannot be 25 | # recovered correctly. 26 | dict(type=RandomFlip, prob=1.), 27 | dict(type=RandomFlip, prob=0.) 28 | ], 29 | [ 30 | dict( 31 | type=Pad, 32 | size=(960, 960), 33 | pad_val=dict(img=(114, 114, 114))), 34 | ], 35 | [dict(type=LoadAnnotations, with_bbox=True)], 36 | [ 37 | dict( 38 | type=PackDetInputs, 39 | meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 40 | 'scale_factor', 'flip', 'flip_direction')) 41 | ] 42 | ]) 43 | ] 44 | -------------------------------------------------------------------------------- /train/mmdet/configs/rtmdet/rtmdet_x_8xb32_300e_coco.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | # Please refer to https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#a-pure-python-style-configuration-file-beta for more details. # noqa 4 | # mmcv >= 2.0.1 5 | # mmengine >= 0.8.0 6 | 7 | from mmengine.config import read_base 8 | 9 | with read_base(): 10 | from .rtmdet_l_8xb32_300e_coco import * 11 | 12 | model.update( 13 | dict( 14 | backbone=dict(deepen_factor=1.33, widen_factor=1.25), 15 | neck=dict( 16 | in_channels=[320, 640, 1280], out_channels=320, num_csp_blocks=4), 17 | bbox_head=dict(in_channels=320, feat_channels=320))) 18 | -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/__init__.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/__init__.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/ade20k.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/ade20k.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/ade20k.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/ade20k.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/base_det_dataset.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/base_det_dataset.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/base_det_dataset.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/base_det_dataset.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/base_semseg_dataset.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/base_semseg_dataset.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/base_semseg_dataset.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/base_semseg_dataset.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/base_video_dataset.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/base_video_dataset.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/base_video_dataset.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/base_video_dataset.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/cityscapes.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/cityscapes.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/cityscapes.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/cityscapes.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/coco.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/coco.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/coco.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/coco.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/coco_caption.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/coco_caption.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/coco_caption.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/coco_caption.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/coco_panoptic.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/coco_panoptic.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/coco_panoptic.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/coco_panoptic.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/coco_semantic.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/coco_semantic.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/coco_semantic.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/coco_semantic.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/crowdhuman.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/crowdhuman.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/crowdhuman.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/crowdhuman.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/dataset_wrappers.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/dataset_wrappers.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/dataset_wrappers.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/dataset_wrappers.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/deepfashion.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/deepfashion.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/deepfashion.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/deepfashion.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/dod.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/dod.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/dod.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/dod.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/dsdl.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/dsdl.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/dsdl.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/dsdl.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/flickr30k.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/flickr30k.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/flickr30k.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/flickr30k.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/isaid.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/isaid.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/isaid.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/isaid.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/lvis.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/lvis.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/lvis.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/lvis.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/mdetr_style_refcoco.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/mdetr_style_refcoco.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/mdetr_style_refcoco.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/mdetr_style_refcoco.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/mot_challenge_dataset.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/mot_challenge_dataset.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/mot_challenge_dataset.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/mot_challenge_dataset.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/objects365.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/objects365.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/objects365.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/objects365.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/odvg.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/odvg.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/odvg.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/odvg.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/openimages.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/openimages.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/openimages.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/openimages.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/refcoco.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/refcoco.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/refcoco.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/refcoco.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/reid_dataset.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/reid_dataset.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/reid_dataset.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/reid_dataset.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/utils.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/utils.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/utils.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/utils.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/v3det.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/v3det.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/v3det.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/v3det.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/voc.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/voc.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/voc.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/voc.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/wider_face.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/wider_face.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/wider_face.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/wider_face.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/xml_style.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/xml_style.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/xml_style.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/xml_style.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/youtube_vis_dataset.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/youtube_vis_dataset.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/__pycache__/youtube_vis_dataset.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/__pycache__/youtube_vis_dataset.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/api_wrappers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .coco_api import COCO, COCOeval, COCOPanoptic 3 | from .cocoeval_mp import COCOevalMP 4 | 5 | __all__ = ['COCO', 'COCOeval', 'COCOPanoptic', 'COCOevalMP'] 6 | -------------------------------------------------------------------------------- /train/mmdet/datasets/api_wrappers/__pycache__/__init__.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/api_wrappers/__pycache__/__init__.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/api_wrappers/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/api_wrappers/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/api_wrappers/__pycache__/coco_api.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/api_wrappers/__pycache__/coco_api.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/api_wrappers/__pycache__/coco_api.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/api_wrappers/__pycache__/coco_api.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/api_wrappers/__pycache__/cocoeval_mp.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/api_wrappers/__pycache__/cocoeval_mp.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/api_wrappers/__pycache__/cocoeval_mp.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/api_wrappers/__pycache__/cocoeval_mp.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/coco_caption.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from pathlib import Path 3 | from typing import List 4 | 5 | import mmengine 6 | from mmengine.dataset import BaseDataset 7 | from mmengine.fileio import get_file_backend 8 | 9 | from mmdet.registry import DATASETS 10 | 11 | 12 | @DATASETS.register_module() 13 | class CocoCaptionDataset(BaseDataset): 14 | """COCO2014 Caption dataset.""" 15 | 16 | def load_data_list(self) -> List[dict]: 17 | """Load data list.""" 18 | img_prefix = self.data_prefix['img_path'] 19 | annotations = mmengine.load(self.ann_file) 20 | file_backend = get_file_backend(img_prefix) 21 | 22 | data_list = [] 23 | for ann in annotations: 24 | data_info = { 25 | 'img_id': Path(ann['image']).stem.split('_')[-1], 26 | 'img_path': file_backend.join_path(img_prefix, ann['image']), 27 | 'gt_caption': ann['caption'], 28 | } 29 | 30 | data_list.append(data_info) 31 | 32 | return data_list 33 | -------------------------------------------------------------------------------- /train/mmdet/datasets/deepfashion.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import DATASETS 3 | from .coco import CocoDataset 4 | 5 | 6 | @DATASETS.register_module() 7 | class DeepFashionDataset(CocoDataset): 8 | """Dataset for DeepFashion.""" 9 | 10 | METAINFO = { 11 | 'classes': ('top', 'skirt', 'leggings', 'dress', 'outer', 'pants', 12 | 'bag', 'neckwear', 'headwear', 'eyeglass', 'belt', 13 | 'footwear', 'hair', 'skin', 'face'), 14 | # palette is a list of color tuples, which is used for visualization. 15 | 'palette': [(0, 192, 64), (0, 64, 96), (128, 192, 192), (0, 64, 64), 16 | (0, 192, 224), (0, 192, 192), (128, 192, 64), (0, 192, 96), 17 | (128, 32, 192), (0, 0, 224), (0, 0, 64), (0, 160, 192), 18 | (128, 0, 96), (128, 0, 192), (0, 32, 192)] 19 | } 20 | -------------------------------------------------------------------------------- /train/mmdet/datasets/isaid.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import DATASETS 3 | from .coco import CocoDataset 4 | 5 | 6 | @DATASETS.register_module() 7 | class iSAIDDataset(CocoDataset): 8 | """Dataset for iSAID instance segmentation. 9 | 10 | iSAID: A Large-scale Dataset for Instance Segmentation 11 | in Aerial Images. 12 | 13 | For more detail, please refer to "projects/iSAID/README.md" 14 | """ 15 | 16 | METAINFO = dict( 17 | classes=('background', 'ship', 'store_tank', 'baseball_diamond', 18 | 'tennis_court', 'basketball_court', 'Ground_Track_Field', 19 | 'Bridge', 'Large_Vehicle', 'Small_Vehicle', 'Helicopter', 20 | 'Swimming_pool', 'Roundabout', 'Soccer_ball_field', 'plane', 21 | 'Harbor'), 22 | palette=[(0, 0, 0), (0, 0, 63), (0, 63, 63), (0, 63, 0), (0, 63, 127), 23 | (0, 63, 191), (0, 63, 255), (0, 127, 63), (0, 127, 127), 24 | (0, 0, 127), (0, 0, 191), (0, 0, 255), (0, 191, 127), 25 | (0, 127, 191), (0, 127, 255), (0, 100, 155)]) 26 | -------------------------------------------------------------------------------- /train/mmdet/datasets/samplers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .batch_sampler import (AspectRatioBatchSampler, 3 | MultiDataAspectRatioBatchSampler, 4 | TrackAspectRatioBatchSampler) 5 | from .class_aware_sampler import ClassAwareSampler 6 | from .custom_sample_size_sampler import CustomSampleSizeSampler 7 | from .multi_data_sampler import MultiDataSampler 8 | from .multi_source_sampler import GroupMultiSourceSampler, MultiSourceSampler 9 | from .track_img_sampler import TrackImgSampler 10 | 11 | __all__ = [ 12 | 'ClassAwareSampler', 'AspectRatioBatchSampler', 'MultiSourceSampler', 13 | 'GroupMultiSourceSampler', 'TrackImgSampler', 14 | 'TrackAspectRatioBatchSampler', 'MultiDataSampler', 15 | 'MultiDataAspectRatioBatchSampler', 'CustomSampleSizeSampler' 16 | ] 17 | -------------------------------------------------------------------------------- /train/mmdet/datasets/samplers/__pycache__/__init__.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/samplers/__pycache__/__init__.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/samplers/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/samplers/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/samplers/__pycache__/batch_sampler.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/samplers/__pycache__/batch_sampler.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/samplers/__pycache__/batch_sampler.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/samplers/__pycache__/batch_sampler.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/samplers/__pycache__/class_aware_sampler.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/samplers/__pycache__/class_aware_sampler.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/samplers/__pycache__/class_aware_sampler.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/samplers/__pycache__/class_aware_sampler.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/samplers/__pycache__/custom_sample_size_sampler.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/samplers/__pycache__/custom_sample_size_sampler.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/samplers/__pycache__/custom_sample_size_sampler.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/samplers/__pycache__/custom_sample_size_sampler.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/samplers/__pycache__/multi_data_sampler.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/samplers/__pycache__/multi_data_sampler.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/samplers/__pycache__/multi_data_sampler.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/samplers/__pycache__/multi_data_sampler.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/samplers/__pycache__/multi_source_sampler.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/samplers/__pycache__/multi_source_sampler.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/samplers/__pycache__/multi_source_sampler.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/samplers/__pycache__/multi_source_sampler.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/samplers/__pycache__/track_img_sampler.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/samplers/__pycache__/track_img_sampler.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/samplers/__pycache__/track_img_sampler.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/samplers/__pycache__/track_img_sampler.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/__init__.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/__init__.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/augment_wrappers.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/augment_wrappers.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/augment_wrappers.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/augment_wrappers.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/colorspace.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/colorspace.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/colorspace.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/colorspace.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/formatting.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/formatting.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/formatting.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/formatting.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/frame_sampling.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/frame_sampling.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/frame_sampling.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/frame_sampling.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/geometric.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/geometric.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/geometric.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/geometric.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/instaboost.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/instaboost.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/instaboost.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/instaboost.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/loading.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/loading.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/loading.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/loading.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/text_transformers.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/text_transformers.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/text_transformers.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/text_transformers.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/transformers_glip.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/transformers_glip.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/transformers_glip.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/transformers_glip.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/transforms.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/transforms.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/transforms.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/transforms.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/wrappers.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/wrappers.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/transforms/__pycache__/wrappers.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/datasets/transforms/__pycache__/wrappers.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/datasets/v3det.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | import os.path 3 | from typing import Optional 4 | 5 | import mmengine 6 | 7 | from mmdet.registry import DATASETS 8 | from .coco import CocoDataset 9 | 10 | 11 | @DATASETS.register_module() 12 | class V3DetDataset(CocoDataset): 13 | """Dataset for V3Det.""" 14 | 15 | METAINFO = { 16 | 'classes': None, 17 | 'palette': None, 18 | } 19 | 20 | def __init__( 21 | self, 22 | *args, 23 | metainfo: Optional[dict] = None, 24 | data_root: str = '', 25 | label_file='annotations/category_name_13204_v3det_2023_v1.txt', # noqa 26 | **kwargs) -> None: 27 | class_names = tuple( 28 | mmengine.list_from_file(os.path.join(data_root, label_file))) 29 | if metainfo is None: 30 | metainfo = {'classes': class_names} 31 | super().__init__( 32 | *args, data_root=data_root, metainfo=metainfo, **kwargs) 33 | -------------------------------------------------------------------------------- /train/mmdet/datasets/voc.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import DATASETS 3 | from .xml_style import XMLDataset 4 | 5 | 6 | @DATASETS.register_module() 7 | class VOCDataset(XMLDataset): 8 | """Dataset for PASCAL VOC.""" 9 | 10 | METAINFO = { 11 | 'classes': 12 | ('aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 13 | 'chair', 'cow', 'diningtable', 'dog', 'horse', 'motorbike', 'person', 14 | 'pottedplant', 'sheep', 'sofa', 'train', 'tvmonitor'), 15 | # palette is a list of color tuples, which is used for visualization. 16 | 'palette': [(106, 0, 228), (119, 11, 32), (165, 42, 42), (0, 0, 192), 17 | (197, 226, 255), (0, 60, 100), (0, 0, 142), (255, 77, 255), 18 | (153, 69, 1), (120, 166, 157), (0, 182, 199), 19 | (0, 226, 252), (182, 182, 255), (0, 0, 230), (220, 20, 60), 20 | (163, 255, 0), (0, 82, 0), (3, 95, 161), (0, 80, 100), 21 | (183, 130, 88)] 22 | } 23 | 24 | def __init__(self, **kwargs): 25 | super().__init__(**kwargs) 26 | if 'VOC2007' in self.sub_data_root: 27 | self._metainfo['dataset_type'] = 'VOC2007' 28 | elif 'VOC2012' in self.sub_data_root: 29 | self._metainfo['dataset_type'] = 'VOC2012' 30 | else: 31 | self._metainfo['dataset_type'] = None 32 | -------------------------------------------------------------------------------- /train/mmdet/engine/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .hooks import * # noqa: F401, F403 3 | from .optimizers import * # noqa: F401, F403 4 | from .runner import * # noqa: F401, F403 5 | from .schedulers import * # noqa: F401, F403 6 | -------------------------------------------------------------------------------- /train/mmdet/engine/hooks/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .checkloss_hook import CheckInvalidLossHook 3 | from .mean_teacher_hook import MeanTeacherHook 4 | from .memory_profiler_hook import MemoryProfilerHook 5 | from .num_class_check_hook import NumClassCheckHook 6 | from .pipeline_switch_hook import PipelineSwitchHook 7 | from .set_epoch_info_hook import SetEpochInfoHook 8 | from .sync_norm_hook import SyncNormHook 9 | from .utils import trigger_visualization_hook 10 | from .visualization_hook import (DetVisualizationHook, 11 | GroundingVisualizationHook, 12 | TrackVisualizationHook) 13 | from .yolox_mode_switch_hook import YOLOXModeSwitchHook 14 | 15 | __all__ = [ 16 | 'YOLOXModeSwitchHook', 'SyncNormHook', 'CheckInvalidLossHook', 17 | 'SetEpochInfoHook', 'MemoryProfilerHook', 'DetVisualizationHook', 18 | 'NumClassCheckHook', 'MeanTeacherHook', 'trigger_visualization_hook', 19 | 'PipelineSwitchHook', 'TrackVisualizationHook', 20 | 'GroundingVisualizationHook' 21 | ] 22 | -------------------------------------------------------------------------------- /train/mmdet/engine/hooks/checkloss_hook.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from typing import Optional 3 | 4 | import torch 5 | from mmengine.hooks import Hook 6 | from mmengine.runner import Runner 7 | 8 | from mmdet.registry import HOOKS 9 | 10 | 11 | @HOOKS.register_module() 12 | class CheckInvalidLossHook(Hook): 13 | """Check invalid loss hook. 14 | 15 | This hook will regularly check whether the loss is valid 16 | during training. 17 | 18 | Args: 19 | interval (int): Checking interval (every k iterations). 20 | Default: 50. 21 | """ 22 | 23 | def __init__(self, interval: int = 50) -> None: 24 | self.interval = interval 25 | 26 | def after_train_iter(self, 27 | runner: Runner, 28 | batch_idx: int, 29 | data_batch: Optional[dict] = None, 30 | outputs: Optional[dict] = None) -> None: 31 | """Regularly check whether the loss is valid every n iterations. 32 | 33 | Args: 34 | runner (:obj:`Runner`): The runner of the training process. 35 | batch_idx (int): The index of the current batch in the train loop. 36 | data_batch (dict, Optional): Data from dataloader. 37 | Defaults to None. 38 | outputs (dict, Optional): Outputs from model. Defaults to None. 39 | """ 40 | if self.every_n_train_iters(runner, self.interval): 41 | assert torch.isfinite(outputs['loss']), \ 42 | runner.logger.info('loss become infinite or NaN!') 43 | -------------------------------------------------------------------------------- /train/mmdet/engine/hooks/set_epoch_info_hook.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.hooks import Hook 3 | from mmengine.model.wrappers import is_model_wrapper 4 | 5 | from mmdet.registry import HOOKS 6 | 7 | 8 | @HOOKS.register_module() 9 | class SetEpochInfoHook(Hook): 10 | """Set runner's epoch information to the model.""" 11 | 12 | def before_train_epoch(self, runner): 13 | epoch = runner.epoch 14 | model = runner.model 15 | if is_model_wrapper(model): 16 | model = model.module 17 | model.set_epoch(epoch) 18 | -------------------------------------------------------------------------------- /train/mmdet/engine/hooks/sync_norm_hook.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from collections import OrderedDict 3 | 4 | from mmengine.dist import get_dist_info 5 | from mmengine.hooks import Hook 6 | from torch import nn 7 | 8 | from mmdet.registry import HOOKS 9 | from mmdet.utils import all_reduce_dict 10 | 11 | 12 | def get_norm_states(module: nn.Module) -> OrderedDict: 13 | """Get the state_dict of batch norms in the module.""" 14 | async_norm_states = OrderedDict() 15 | for name, child in module.named_modules(): 16 | if isinstance(child, nn.modules.batchnorm._NormBase): 17 | for k, v in child.state_dict().items(): 18 | async_norm_states['.'.join([name, k])] = v 19 | return async_norm_states 20 | 21 | 22 | @HOOKS.register_module() 23 | class SyncNormHook(Hook): 24 | """Synchronize Norm states before validation, currently used in YOLOX.""" 25 | 26 | def before_val_epoch(self, runner): 27 | """Synchronizing norm.""" 28 | module = runner.model 29 | _, world_size = get_dist_info() 30 | if world_size == 1: 31 | return 32 | norm_states = get_norm_states(module) 33 | if len(norm_states) == 0: 34 | return 35 | # TODO: use `all_reduce_dict` in mmengine 36 | norm_states = all_reduce_dict(norm_states, op='mean') 37 | module.load_state_dict(norm_states, strict=False) 38 | -------------------------------------------------------------------------------- /train/mmdet/engine/hooks/utils.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | def trigger_visualization_hook(cfg, args): 3 | default_hooks = cfg.default_hooks 4 | if 'visualization' in default_hooks: 5 | visualization_hook = default_hooks['visualization'] 6 | # Turn on visualization 7 | visualization_hook['draw'] = True 8 | if args.show: 9 | visualization_hook['show'] = True 10 | visualization_hook['wait_time'] = args.wait_time 11 | if args.show_dir: 12 | visualization_hook['test_out_dir'] = args.show_dir 13 | else: 14 | raise RuntimeError( 15 | 'VisualizationHook must be included in default_hooks.' 16 | 'refer to usage ' 17 | '"visualization=dict(type=\'VisualizationHook\')"') 18 | 19 | return cfg 20 | -------------------------------------------------------------------------------- /train/mmdet/engine/optimizers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .layer_decay_optimizer_constructor import \ 3 | LearningRateDecayOptimizerConstructor 4 | 5 | __all__ = ['LearningRateDecayOptimizerConstructor'] 6 | -------------------------------------------------------------------------------- /train/mmdet/engine/runner/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .loops import TeacherStudentValLoop 3 | 4 | __all__ = ['TeacherStudentValLoop'] 5 | -------------------------------------------------------------------------------- /train/mmdet/engine/runner/loops.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.model import is_model_wrapper 3 | from mmengine.runner import ValLoop 4 | 5 | from mmdet.registry import LOOPS 6 | 7 | 8 | @LOOPS.register_module() 9 | class TeacherStudentValLoop(ValLoop): 10 | """Loop for validation of model teacher and student.""" 11 | 12 | def run(self): 13 | """Launch validation for model teacher and student.""" 14 | self.runner.call_hook('before_val') 15 | self.runner.call_hook('before_val_epoch') 16 | self.runner.model.eval() 17 | 18 | model = self.runner.model 19 | if is_model_wrapper(model): 20 | model = model.module 21 | assert hasattr(model, 'teacher') 22 | assert hasattr(model, 'student') 23 | 24 | predict_on = model.semi_test_cfg.get('predict_on', None) 25 | multi_metrics = dict() 26 | for _predict_on in ['teacher', 'student']: 27 | model.semi_test_cfg['predict_on'] = _predict_on 28 | for idx, data_batch in enumerate(self.dataloader): 29 | self.run_iter(idx, data_batch) 30 | # compute metrics 31 | metrics = self.evaluator.evaluate(len(self.dataloader.dataset)) 32 | multi_metrics.update( 33 | {'/'.join((_predict_on, k)): v 34 | for k, v in metrics.items()}) 35 | model.semi_test_cfg['predict_on'] = predict_on 36 | 37 | self.runner.call_hook('after_val_epoch', metrics=multi_metrics) 38 | self.runner.call_hook('after_val') 39 | -------------------------------------------------------------------------------- /train/mmdet/engine/schedulers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .quadratic_warmup import (QuadraticWarmupLR, QuadraticWarmupMomentum, 3 | QuadraticWarmupParamScheduler) 4 | 5 | __all__ = [ 6 | 'QuadraticWarmupParamScheduler', 'QuadraticWarmupMomentum', 7 | 'QuadraticWarmupLR' 8 | ] 9 | -------------------------------------------------------------------------------- /train/mmdet/evaluation/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .evaluator import * # noqa: F401,F403 3 | from .functional import * # noqa: F401,F403 4 | from .metrics import * # noqa: F401,F403 5 | -------------------------------------------------------------------------------- /train/mmdet/evaluation/evaluator/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .multi_datasets_evaluator import MultiDatasetsEvaluator 3 | 4 | __all__ = ['MultiDatasetsEvaluator'] 5 | -------------------------------------------------------------------------------- /train/mmdet/evaluation/functional/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .bbox_overlaps import bbox_overlaps 3 | from .cityscapes_utils import evaluateImgLists 4 | from .class_names import (cityscapes_classes, coco_classes, 5 | coco_panoptic_classes, dataset_aliases, get_classes, 6 | imagenet_det_classes, imagenet_vid_classes, 7 | objects365v1_classes, objects365v2_classes, 8 | oid_challenge_classes, oid_v6_classes, voc_classes) 9 | from .mean_ap import average_precision, eval_map, print_map_summary 10 | from .panoptic_utils import (INSTANCE_OFFSET, pq_compute_multi_core, 11 | pq_compute_single_core) 12 | from .recall import (eval_recalls, plot_iou_recall, plot_num_recall, 13 | print_recall_summary) 14 | from .ytvis import YTVIS 15 | from .ytviseval import YTVISeval 16 | 17 | __all__ = [ 18 | 'voc_classes', 'imagenet_det_classes', 'imagenet_vid_classes', 19 | 'coco_classes', 'cityscapes_classes', 'dataset_aliases', 'get_classes', 20 | 'average_precision', 'eval_map', 'print_map_summary', 'eval_recalls', 21 | 'print_recall_summary', 'plot_num_recall', 'plot_iou_recall', 22 | 'oid_v6_classes', 'oid_challenge_classes', 'INSTANCE_OFFSET', 23 | 'pq_compute_single_core', 'pq_compute_multi_core', 'bbox_overlaps', 24 | 'objects365v1_classes', 'objects365v2_classes', 'coco_panoptic_classes', 25 | 'evaluateImgLists', 'YTVIS', 'YTVISeval' 26 | ] 27 | -------------------------------------------------------------------------------- /train/mmdet/evaluation/metrics/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .base_video_metric import BaseVideoMetric 3 | from .cityscapes_metric import CityScapesMetric 4 | from .coco_caption_metric import COCOCaptionMetric 5 | from .coco_metric import CocoMetric 6 | from .coco_occluded_metric import CocoOccludedSeparatedMetric 7 | from .coco_panoptic_metric import CocoPanopticMetric 8 | from .coco_video_metric import CocoVideoMetric 9 | from .crowdhuman_metric import CrowdHumanMetric 10 | from .dod_metric import DODCocoMetric 11 | from .dump_det_results import DumpDetResults 12 | from .dump_odvg_results import DumpODVGResults 13 | from .dump_proposals_metric import DumpProposals 14 | from .flickr30k_metric import Flickr30kMetric 15 | from .grefcoco_metric import gRefCOCOMetric 16 | from .lvis_metric import LVISMetric 17 | from .mot_challenge_metric import MOTChallengeMetric 18 | from .openimages_metric import OpenImagesMetric 19 | from .ov_coco_metric import OVCocoMetric 20 | from .refexp_metric import RefExpMetric 21 | from .refseg_metric import RefSegMetric 22 | from .reid_metric import ReIDMetrics 23 | from .semseg_metric import SemSegMetric 24 | from .voc_metric import VOCMetric 25 | from .youtube_vis_metric import YouTubeVISMetric 26 | 27 | __all__ = [ 28 | 'CityScapesMetric', 'CocoMetric', 'CocoPanopticMetric', 'OpenImagesMetric', 29 | 'VOCMetric', 'LVISMetric', 'CrowdHumanMetric', 'DumpProposals', 30 | 'CocoOccludedSeparatedMetric', 'DumpDetResults', 'BaseVideoMetric', 31 | 'MOTChallengeMetric', 'CocoVideoMetric', 'ReIDMetrics', 'YouTubeVISMetric', 32 | 'COCOCaptionMetric', 'SemSegMetric', 'RefSegMetric', 'RefExpMetric', 33 | 'gRefCOCOMetric', 'DODCocoMetric', 'DumpODVGResults', 'Flickr30kMetric', 34 | 'OVCocoMetric' 35 | ] 36 | -------------------------------------------------------------------------------- /train/mmdet/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .backbones import * # noqa: F401,F403 3 | from .data_preprocessors import * # noqa: F401,F403 4 | from .dense_heads import * # noqa: F401,F403 5 | from .detectors import * # noqa: F401,F403 6 | from .language_models import * # noqa: F401,F403 7 | from .layers import * # noqa: F401,F403 8 | from .losses import * # noqa: F401,F403 9 | from .mot import * # noqa: F401,F403 10 | from .necks import * # noqa: F401,F403 11 | from .reid import * # noqa: F401,F403 12 | from .roi_heads import * # noqa: F401,F403 13 | from .seg_heads import * # noqa: F401,F403 14 | from .task_modules import * # noqa: F401,F403 15 | from .test_time_augs import * # noqa: F401,F403 16 | from .trackers import * # noqa: F401,F403 17 | from .tracking_heads import * # noqa: F401,F403 18 | from .vis import * # noqa: F401,F403 19 | -------------------------------------------------------------------------------- /train/mmdet/models/backbones/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .csp_darknet import CSPDarknet 3 | from .cspnext import CSPNeXt 4 | from .darknet import Darknet 5 | from .detectors_resnet import DetectoRS_ResNet 6 | from .detectors_resnext import DetectoRS_ResNeXt 7 | from .efficientnet import EfficientNet 8 | from .hourglass import HourglassNet 9 | from .hrnet import HRNet 10 | from .mobilenet_v2 import MobileNetV2 11 | from .pvt import PyramidVisionTransformer, PyramidVisionTransformerV2 12 | from .regnet import RegNet 13 | from .res2net import Res2Net 14 | from .resnest import ResNeSt 15 | from .resnet import ResNet, ResNetV1d 16 | from .resnext import ResNeXt 17 | from .ssd_vgg import SSDVGG 18 | from .swin import SwinTransformer 19 | from .trident_resnet import TridentResNet 20 | 21 | __all__ = [ 22 | 'RegNet', 'ResNet', 'ResNetV1d', 'ResNeXt', 'SSDVGG', 'HRNet', 23 | 'MobileNetV2', 'Res2Net', 'HourglassNet', 'DetectoRS_ResNet', 24 | 'DetectoRS_ResNeXt', 'Darknet', 'ResNeSt', 'TridentResNet', 'CSPDarknet', 25 | 'SwinTransformer', 'PyramidVisionTransformer', 26 | 'PyramidVisionTransformerV2', 'EfficientNet', 'CSPNeXt' 27 | ] 28 | -------------------------------------------------------------------------------- /train/mmdet/models/data_preprocessors/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .data_preprocessor import (BatchFixedSizePad, BatchResize, 3 | BatchSyncRandomResize, BoxInstDataPreprocessor, 4 | DetDataPreprocessor, 5 | MultiBranchDataPreprocessor) 6 | from .reid_data_preprocessor import ReIDDataPreprocessor 7 | from .track_data_preprocessor import TrackDataPreprocessor 8 | 9 | __all__ = [ 10 | 'DetDataPreprocessor', 'BatchSyncRandomResize', 'BatchFixedSizePad', 11 | 'MultiBranchDataPreprocessor', 'BatchResize', 'BoxInstDataPreprocessor', 12 | 'TrackDataPreprocessor', 'ReIDDataPreprocessor' 13 | ] 14 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/boxinst.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .single_stage_instance_seg import SingleStageInstanceSegmentor 5 | 6 | 7 | @MODELS.register_module() 8 | class BoxInst(SingleStageInstanceSegmentor): 9 | """Implementation of `BoxInst `_""" 10 | 11 | def __init__(self, 12 | backbone: ConfigType, 13 | neck: ConfigType, 14 | bbox_head: ConfigType, 15 | mask_head: ConfigType, 16 | train_cfg: OptConfigType = None, 17 | test_cfg: OptConfigType = None, 18 | data_preprocessor: OptConfigType = None, 19 | init_cfg: OptMultiConfig = None) -> None: 20 | super().__init__( 21 | backbone=backbone, 22 | neck=neck, 23 | bbox_head=bbox_head, 24 | mask_head=mask_head, 25 | train_cfg=train_cfg, 26 | test_cfg=test_cfg, 27 | data_preprocessor=data_preprocessor, 28 | init_cfg=init_cfg) 29 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/cascade_rcnn.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .two_stage import TwoStageDetector 5 | 6 | 7 | @MODELS.register_module() 8 | class CascadeRCNN(TwoStageDetector): 9 | r"""Implementation of `Cascade R-CNN: Delving into High Quality Object 10 | Detection `_""" 11 | 12 | def __init__(self, 13 | backbone: ConfigType, 14 | neck: OptConfigType = None, 15 | rpn_head: OptConfigType = None, 16 | roi_head: OptConfigType = None, 17 | train_cfg: OptConfigType = None, 18 | test_cfg: OptConfigType = None, 19 | data_preprocessor: OptConfigType = None, 20 | init_cfg: OptMultiConfig = None) -> None: 21 | super().__init__( 22 | backbone=backbone, 23 | neck=neck, 24 | rpn_head=rpn_head, 25 | roi_head=roi_head, 26 | train_cfg=train_cfg, 27 | test_cfg=test_cfg, 28 | data_preprocessor=data_preprocessor, 29 | init_cfg=init_cfg) 30 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/centernet.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .single_stage import SingleStageDetector 5 | 6 | 7 | @MODELS.register_module() 8 | class CenterNet(SingleStageDetector): 9 | """Implementation of CenterNet(Objects as Points) 10 | 11 | . 12 | """ 13 | 14 | def __init__(self, 15 | backbone: ConfigType, 16 | neck: ConfigType, 17 | bbox_head: ConfigType, 18 | train_cfg: OptConfigType = None, 19 | test_cfg: OptConfigType = None, 20 | data_preprocessor: OptConfigType = None, 21 | init_cfg: OptMultiConfig = None) -> None: 22 | super().__init__( 23 | backbone=backbone, 24 | neck=neck, 25 | bbox_head=bbox_head, 26 | train_cfg=train_cfg, 27 | test_cfg=test_cfg, 28 | data_preprocessor=data_preprocessor, 29 | init_cfg=init_cfg) 30 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/condinst.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .single_stage_instance_seg import SingleStageInstanceSegmentor 5 | 6 | 7 | @MODELS.register_module() 8 | class CondInst(SingleStageInstanceSegmentor): 9 | """Implementation of `CondInst `_""" 10 | 11 | def __init__(self, 12 | backbone: ConfigType, 13 | neck: ConfigType, 14 | bbox_head: ConfigType, 15 | mask_head: ConfigType, 16 | train_cfg: OptConfigType = None, 17 | test_cfg: OptConfigType = None, 18 | data_preprocessor: OptConfigType = None, 19 | init_cfg: OptMultiConfig = None) -> None: 20 | super().__init__( 21 | backbone=backbone, 22 | neck=neck, 23 | bbox_head=bbox_head, 24 | mask_head=mask_head, 25 | train_cfg=train_cfg, 26 | test_cfg=test_cfg, 27 | data_preprocessor=data_preprocessor, 28 | init_cfg=init_cfg) 29 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/cornernet.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .single_stage import SingleStageDetector 5 | 6 | 7 | @MODELS.register_module() 8 | class CornerNet(SingleStageDetector): 9 | """CornerNet. 10 | 11 | This detector is the implementation of the paper `CornerNet: Detecting 12 | Objects as Paired Keypoints `_ . 13 | """ 14 | 15 | def __init__(self, 16 | backbone: ConfigType, 17 | neck: ConfigType, 18 | bbox_head: ConfigType, 19 | train_cfg: OptConfigType = None, 20 | test_cfg: OptConfigType = None, 21 | data_preprocessor: OptConfigType = None, 22 | init_cfg: OptMultiConfig = None) -> None: 23 | super().__init__( 24 | backbone=backbone, 25 | neck=neck, 26 | bbox_head=bbox_head, 27 | train_cfg=train_cfg, 28 | test_cfg=test_cfg, 29 | data_preprocessor=data_preprocessor, 30 | init_cfg=init_cfg) 31 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/fast_rcnn.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .two_stage import TwoStageDetector 5 | 6 | 7 | @MODELS.register_module() 8 | class FastRCNN(TwoStageDetector): 9 | """Implementation of `Fast R-CNN `_""" 10 | 11 | def __init__(self, 12 | backbone: ConfigType, 13 | roi_head: ConfigType, 14 | train_cfg: ConfigType, 15 | test_cfg: ConfigType, 16 | neck: OptConfigType = None, 17 | data_preprocessor: OptConfigType = None, 18 | init_cfg: OptMultiConfig = None) -> None: 19 | super().__init__( 20 | backbone=backbone, 21 | neck=neck, 22 | roi_head=roi_head, 23 | train_cfg=train_cfg, 24 | test_cfg=test_cfg, 25 | init_cfg=init_cfg, 26 | data_preprocessor=data_preprocessor) 27 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/faster_rcnn.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .two_stage import TwoStageDetector 5 | 6 | 7 | @MODELS.register_module() 8 | class FasterRCNN(TwoStageDetector): 9 | """Implementation of `Faster R-CNN `_""" 10 | 11 | def __init__(self, 12 | backbone: ConfigType, 13 | rpn_head: ConfigType, 14 | roi_head: ConfigType, 15 | train_cfg: ConfigType, 16 | test_cfg: ConfigType, 17 | neck: OptConfigType = None, 18 | data_preprocessor: OptConfigType = None, 19 | init_cfg: OptMultiConfig = None) -> None: 20 | super().__init__( 21 | backbone=backbone, 22 | neck=neck, 23 | rpn_head=rpn_head, 24 | roi_head=roi_head, 25 | train_cfg=train_cfg, 26 | test_cfg=test_cfg, 27 | init_cfg=init_cfg, 28 | data_preprocessor=data_preprocessor) 29 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/fsaf.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .single_stage import SingleStageDetector 5 | 6 | 7 | @MODELS.register_module() 8 | class FSAF(SingleStageDetector): 9 | """Implementation of `FSAF `_""" 10 | 11 | def __init__(self, 12 | backbone: ConfigType, 13 | neck: ConfigType, 14 | bbox_head: ConfigType, 15 | train_cfg: OptConfigType = None, 16 | test_cfg: OptConfigType = None, 17 | data_preprocessor: OptConfigType = None, 18 | init_cfg: OptMultiConfig = None): 19 | super().__init__( 20 | backbone=backbone, 21 | neck=neck, 22 | bbox_head=bbox_head, 23 | train_cfg=train_cfg, 24 | test_cfg=test_cfg, 25 | data_preprocessor=data_preprocessor, 26 | init_cfg=init_cfg) 27 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/grid_rcnn.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .two_stage import TwoStageDetector 5 | 6 | 7 | @MODELS.register_module() 8 | class GridRCNN(TwoStageDetector): 9 | """Grid R-CNN. 10 | 11 | This detector is the implementation of: 12 | - Grid R-CNN (https://arxiv.org/abs/1811.12030) 13 | - Grid R-CNN Plus: Faster and Better (https://arxiv.org/abs/1906.05688) 14 | """ 15 | 16 | def __init__(self, 17 | backbone: ConfigType, 18 | rpn_head: ConfigType, 19 | roi_head: ConfigType, 20 | train_cfg: ConfigType, 21 | test_cfg: ConfigType, 22 | neck: OptConfigType = None, 23 | data_preprocessor: OptConfigType = None, 24 | init_cfg: OptMultiConfig = None) -> None: 25 | super().__init__( 26 | backbone=backbone, 27 | neck=neck, 28 | rpn_head=rpn_head, 29 | roi_head=roi_head, 30 | train_cfg=train_cfg, 31 | test_cfg=test_cfg, 32 | data_preprocessor=data_preprocessor, 33 | init_cfg=init_cfg) 34 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/htc.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from .cascade_rcnn import CascadeRCNN 4 | 5 | 6 | @MODELS.register_module() 7 | class HybridTaskCascade(CascadeRCNN): 8 | """Implementation of `HTC `_""" 9 | 10 | def __init__(self, **kwargs) -> None: 11 | super().__init__(**kwargs) 12 | 13 | @property 14 | def with_semantic(self) -> bool: 15 | """bool: whether the detector has a semantic head""" 16 | return self.roi_head.with_semantic 17 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/mask2former.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .maskformer import MaskFormer 5 | 6 | 7 | @MODELS.register_module() 8 | class Mask2Former(MaskFormer): 9 | r"""Implementation of `Masked-attention Mask 10 | Transformer for Universal Image Segmentation 11 | `_.""" 12 | 13 | def __init__(self, 14 | backbone: ConfigType, 15 | neck: OptConfigType = None, 16 | panoptic_head: OptConfigType = None, 17 | panoptic_fusion_head: OptConfigType = None, 18 | train_cfg: OptConfigType = None, 19 | test_cfg: OptConfigType = None, 20 | data_preprocessor: OptConfigType = None, 21 | init_cfg: OptMultiConfig = None): 22 | super().__init__( 23 | backbone=backbone, 24 | neck=neck, 25 | panoptic_head=panoptic_head, 26 | panoptic_fusion_head=panoptic_fusion_head, 27 | train_cfg=train_cfg, 28 | test_cfg=test_cfg, 29 | data_preprocessor=data_preprocessor, 30 | init_cfg=init_cfg) 31 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/mask_rcnn.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.config import ConfigDict 3 | 4 | from mmdet.registry import MODELS 5 | from mmdet.utils import OptConfigType, OptMultiConfig 6 | from .two_stage import TwoStageDetector 7 | 8 | 9 | @MODELS.register_module() 10 | class MaskRCNN(TwoStageDetector): 11 | """Implementation of `Mask R-CNN `_""" 12 | 13 | def __init__(self, 14 | backbone: ConfigDict, 15 | rpn_head: ConfigDict, 16 | roi_head: ConfigDict, 17 | train_cfg: ConfigDict, 18 | test_cfg: ConfigDict, 19 | neck: OptConfigType = None, 20 | data_preprocessor: OptConfigType = None, 21 | init_cfg: OptMultiConfig = None) -> None: 22 | super().__init__( 23 | backbone=backbone, 24 | neck=neck, 25 | rpn_head=rpn_head, 26 | roi_head=roi_head, 27 | train_cfg=train_cfg, 28 | test_cfg=test_cfg, 29 | init_cfg=init_cfg, 30 | data_preprocessor=data_preprocessor) 31 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/mask_scoring_rcnn.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .two_stage import TwoStageDetector 5 | 6 | 7 | @MODELS.register_module() 8 | class MaskScoringRCNN(TwoStageDetector): 9 | """Mask Scoring RCNN. 10 | 11 | https://arxiv.org/abs/1903.00241 12 | """ 13 | 14 | def __init__(self, 15 | backbone: ConfigType, 16 | rpn_head: ConfigType, 17 | roi_head: ConfigType, 18 | train_cfg: ConfigType, 19 | test_cfg: ConfigType, 20 | neck: OptConfigType = None, 21 | data_preprocessor: OptConfigType = None, 22 | init_cfg: OptMultiConfig = None) -> None: 23 | super().__init__( 24 | backbone=backbone, 25 | neck=neck, 26 | rpn_head=rpn_head, 27 | roi_head=roi_head, 28 | train_cfg=train_cfg, 29 | test_cfg=test_cfg, 30 | data_preprocessor=data_preprocessor, 31 | init_cfg=init_cfg) 32 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/panoptic_fpn.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .panoptic_two_stage_segmentor import TwoStagePanopticSegmentor 5 | 6 | 7 | @MODELS.register_module() 8 | class PanopticFPN(TwoStagePanopticSegmentor): 9 | r"""Implementation of `Panoptic feature pyramid 10 | networks `_""" 11 | 12 | def __init__( 13 | self, 14 | backbone: ConfigType, 15 | neck: OptConfigType = None, 16 | rpn_head: OptConfigType = None, 17 | roi_head: OptConfigType = None, 18 | train_cfg: OptConfigType = None, 19 | test_cfg: OptConfigType = None, 20 | data_preprocessor: OptConfigType = None, 21 | init_cfg: OptMultiConfig = None, 22 | # for panoptic segmentation 23 | semantic_head: OptConfigType = None, 24 | panoptic_fusion_head: OptMultiConfig = None) -> None: 25 | super().__init__( 26 | backbone=backbone, 27 | neck=neck, 28 | rpn_head=rpn_head, 29 | roi_head=roi_head, 30 | train_cfg=train_cfg, 31 | test_cfg=test_cfg, 32 | data_preprocessor=data_preprocessor, 33 | init_cfg=init_cfg, 34 | semantic_head=semantic_head, 35 | panoptic_fusion_head=panoptic_fusion_head) 36 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/point_rend.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.config import ConfigDict 3 | 4 | from mmdet.registry import MODELS 5 | from mmdet.utils import OptConfigType, OptMultiConfig 6 | from .two_stage import TwoStageDetector 7 | 8 | 9 | @MODELS.register_module() 10 | class PointRend(TwoStageDetector): 11 | """PointRend: Image Segmentation as Rendering 12 | 13 | This detector is the implementation of 14 | `PointRend `_. 15 | 16 | """ 17 | 18 | def __init__(self, 19 | backbone: ConfigDict, 20 | rpn_head: ConfigDict, 21 | roi_head: ConfigDict, 22 | train_cfg: ConfigDict, 23 | test_cfg: ConfigDict, 24 | neck: OptConfigType = None, 25 | data_preprocessor: OptConfigType = None, 26 | init_cfg: OptMultiConfig = None) -> None: 27 | super().__init__( 28 | backbone=backbone, 29 | neck=neck, 30 | rpn_head=rpn_head, 31 | roi_head=roi_head, 32 | train_cfg=train_cfg, 33 | test_cfg=test_cfg, 34 | init_cfg=init_cfg, 35 | data_preprocessor=data_preprocessor) 36 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/queryinst.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .sparse_rcnn import SparseRCNN 5 | 6 | 7 | @MODELS.register_module() 8 | class QueryInst(SparseRCNN): 9 | r"""Implementation of 10 | `Instances as Queries `_""" 11 | 12 | def __init__(self, 13 | backbone: ConfigType, 14 | rpn_head: ConfigType, 15 | roi_head: ConfigType, 16 | train_cfg: ConfigType, 17 | test_cfg: ConfigType, 18 | neck: OptConfigType = None, 19 | data_preprocessor: OptConfigType = None, 20 | init_cfg: OptMultiConfig = None) -> None: 21 | super().__init__( 22 | backbone=backbone, 23 | neck=neck, 24 | rpn_head=rpn_head, 25 | roi_head=roi_head, 26 | train_cfg=train_cfg, 27 | test_cfg=test_cfg, 28 | data_preprocessor=data_preprocessor, 29 | init_cfg=init_cfg) 30 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/reppoints_detector.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .single_stage import SingleStageDetector 5 | 6 | 7 | @MODELS.register_module() 8 | class RepPointsDetector(SingleStageDetector): 9 | """RepPoints: Point Set Representation for Object Detection. 10 | 11 | This detector is the implementation of: 12 | - RepPoints detector (https://arxiv.org/pdf/1904.11490) 13 | """ 14 | 15 | def __init__(self, 16 | backbone: ConfigType, 17 | neck: ConfigType, 18 | bbox_head: ConfigType, 19 | train_cfg: OptConfigType = None, 20 | test_cfg: OptConfigType = None, 21 | data_preprocessor: OptConfigType = None, 22 | init_cfg: OptMultiConfig = None): 23 | super().__init__( 24 | backbone=backbone, 25 | neck=neck, 26 | bbox_head=bbox_head, 27 | train_cfg=train_cfg, 28 | test_cfg=test_cfg, 29 | data_preprocessor=data_preprocessor, 30 | init_cfg=init_cfg) 31 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/retinanet.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .single_stage import SingleStageDetector 5 | 6 | 7 | @MODELS.register_module() 8 | class RetinaNet(SingleStageDetector): 9 | """Implementation of `RetinaNet `_""" 10 | 11 | def __init__(self, 12 | backbone: ConfigType, 13 | neck: ConfigType, 14 | bbox_head: ConfigType, 15 | train_cfg: OptConfigType = None, 16 | test_cfg: OptConfigType = None, 17 | data_preprocessor: OptConfigType = None, 18 | init_cfg: OptMultiConfig = None) -> None: 19 | super().__init__( 20 | backbone=backbone, 21 | neck=neck, 22 | bbox_head=bbox_head, 23 | train_cfg=train_cfg, 24 | test_cfg=test_cfg, 25 | data_preprocessor=data_preprocessor, 26 | init_cfg=init_cfg) 27 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/scnet.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from .cascade_rcnn import CascadeRCNN 4 | 5 | 6 | @MODELS.register_module() 7 | class SCNet(CascadeRCNN): 8 | """Implementation of `SCNet `_""" 9 | 10 | def __init__(self, **kwargs) -> None: 11 | super().__init__(**kwargs) 12 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/solo.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .single_stage_instance_seg import SingleStageInstanceSegmentor 5 | 6 | 7 | @MODELS.register_module() 8 | class SOLO(SingleStageInstanceSegmentor): 9 | """`SOLO: Segmenting Objects by Locations 10 | `_ 11 | 12 | """ 13 | 14 | def __init__(self, 15 | backbone: ConfigType, 16 | neck: OptConfigType = None, 17 | bbox_head: OptConfigType = None, 18 | mask_head: OptConfigType = None, 19 | train_cfg: OptConfigType = None, 20 | test_cfg: OptConfigType = None, 21 | data_preprocessor: OptConfigType = None, 22 | init_cfg: OptMultiConfig = None): 23 | super().__init__( 24 | backbone=backbone, 25 | neck=neck, 26 | bbox_head=bbox_head, 27 | mask_head=mask_head, 28 | train_cfg=train_cfg, 29 | test_cfg=test_cfg, 30 | data_preprocessor=data_preprocessor, 31 | init_cfg=init_cfg) 32 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/solov2.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .single_stage_instance_seg import SingleStageInstanceSegmentor 5 | 6 | 7 | @MODELS.register_module() 8 | class SOLOv2(SingleStageInstanceSegmentor): 9 | """`SOLOv2: Dynamic and Fast Instance Segmentation 10 | `_ 11 | 12 | """ 13 | 14 | def __init__(self, 15 | backbone: ConfigType, 16 | neck: OptConfigType = None, 17 | bbox_head: OptConfigType = None, 18 | mask_head: OptConfigType = None, 19 | train_cfg: OptConfigType = None, 20 | test_cfg: OptConfigType = None, 21 | data_preprocessor: OptConfigType = None, 22 | init_cfg: OptMultiConfig = None): 23 | super().__init__( 24 | backbone=backbone, 25 | neck=neck, 26 | bbox_head=bbox_head, 27 | mask_head=mask_head, 28 | train_cfg=train_cfg, 29 | test_cfg=test_cfg, 30 | data_preprocessor=data_preprocessor, 31 | init_cfg=init_cfg) 32 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/sparse_rcnn.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .two_stage import TwoStageDetector 5 | 6 | 7 | @MODELS.register_module() 8 | class SparseRCNN(TwoStageDetector): 9 | r"""Implementation of `Sparse R-CNN: End-to-End Object Detection with 10 | Learnable Proposals `_""" 11 | 12 | def __init__(self, 13 | backbone: ConfigType, 14 | neck: OptConfigType = None, 15 | rpn_head: OptConfigType = None, 16 | roi_head: OptConfigType = None, 17 | train_cfg: OptConfigType = None, 18 | test_cfg: OptConfigType = None, 19 | data_preprocessor: OptConfigType = None, 20 | init_cfg: OptMultiConfig = None) -> None: 21 | super().__init__( 22 | backbone=backbone, 23 | neck=neck, 24 | rpn_head=rpn_head, 25 | roi_head=roi_head, 26 | train_cfg=train_cfg, 27 | test_cfg=test_cfg, 28 | data_preprocessor=data_preprocessor, 29 | init_cfg=init_cfg) 30 | assert self.with_rpn, 'Sparse R-CNN and QueryInst ' \ 31 | 'do not support external proposals' 32 | -------------------------------------------------------------------------------- /train/mmdet/models/detectors/yolact.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import MODELS 3 | from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig 4 | from .single_stage_instance_seg import SingleStageInstanceSegmentor 5 | 6 | 7 | @MODELS.register_module() 8 | class YOLACT(SingleStageInstanceSegmentor): 9 | """Implementation of `YOLACT `_""" 10 | 11 | def __init__(self, 12 | backbone: ConfigType, 13 | neck: ConfigType, 14 | bbox_head: ConfigType, 15 | mask_head: ConfigType, 16 | train_cfg: OptConfigType = None, 17 | test_cfg: OptConfigType = None, 18 | data_preprocessor: OptConfigType = None, 19 | init_cfg: OptMultiConfig = None) -> None: 20 | super().__init__( 21 | backbone=backbone, 22 | neck=neck, 23 | bbox_head=bbox_head, 24 | mask_head=mask_head, 25 | train_cfg=train_cfg, 26 | test_cfg=test_cfg, 27 | data_preprocessor=data_preprocessor, 28 | init_cfg=init_cfg) 29 | -------------------------------------------------------------------------------- /train/mmdet/models/language_models/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .bert import BertModel 3 | 4 | __all__ = ['BertModel'] 5 | -------------------------------------------------------------------------------- /train/mmdet/models/layers/activations.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | import torch 3 | import torch.nn as nn 4 | from mmengine.utils import digit_version 5 | 6 | from mmdet.registry import MODELS 7 | 8 | if digit_version(torch.__version__) >= digit_version('1.7.0'): 9 | from torch.nn import SiLU 10 | else: 11 | 12 | class SiLU(nn.Module): 13 | """Sigmoid Weighted Liner Unit.""" 14 | 15 | def __init__(self, inplace=True): 16 | super().__init__() 17 | 18 | def forward(self, inputs) -> torch.Tensor: 19 | return inputs * torch.sigmoid(inputs) 20 | 21 | 22 | MODELS.register_module(module=SiLU, name='SiLU') 23 | -------------------------------------------------------------------------------- /train/mmdet/models/mot/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .base import BaseMOTModel 3 | from .bytetrack import ByteTrack 4 | from .deep_sort import DeepSORT 5 | from .ocsort import OCSORT 6 | from .qdtrack import QDTrack 7 | from .strongsort import StrongSORT 8 | 9 | __all__ = [ 10 | 'BaseMOTModel', 'ByteTrack', 'QDTrack', 'DeepSORT', 'StrongSORT', 'OCSORT' 11 | ] 12 | -------------------------------------------------------------------------------- /train/mmdet/models/necks/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .bfp import BFP 3 | from .channel_mapper import ChannelMapper 4 | from .cspnext_pafpn import CSPNeXtPAFPN 5 | from .ct_resnet_neck import CTResNetNeck 6 | from .dilated_encoder import DilatedEncoder 7 | from .dyhead import DyHead 8 | from .fpg import FPG 9 | from .fpn import FPN 10 | from .fpn_carafe import FPN_CARAFE 11 | from .fpn_dropblock import FPN_DropBlock 12 | from .hrfpn import HRFPN 13 | from .nas_fpn import NASFPN 14 | from .nasfcos_fpn import NASFCOS_FPN 15 | from .pafpn import PAFPN 16 | from .rfp import RFP 17 | from .ssd_neck import SSDNeck 18 | from .ssh import SSH 19 | from .yolo_neck import YOLOV3Neck 20 | from .yolox_pafpn import YOLOXPAFPN 21 | 22 | __all__ = [ 23 | 'FPN', 'BFP', 'ChannelMapper', 'HRFPN', 'NASFPN', 'FPN_CARAFE', 'PAFPN', 24 | 'NASFCOS_FPN', 'RFP', 'YOLOV3Neck', 'FPG', 'DilatedEncoder', 25 | 'CTResNetNeck', 'SSDNeck', 'YOLOXPAFPN', 'DyHead', 'CSPNeXtPAFPN', 'SSH', 26 | 'FPN_DropBlock' 27 | ] 28 | -------------------------------------------------------------------------------- /train/mmdet/models/reid/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .base_reid import BaseReID 3 | from .fc_module import FcModule 4 | from .gap import GlobalAveragePooling 5 | from .linear_reid_head import LinearReIDHead 6 | 7 | __all__ = ['BaseReID', 'GlobalAveragePooling', 'LinearReIDHead', 'FcModule'] 8 | -------------------------------------------------------------------------------- /train/mmdet/models/reid/gap.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | import torch 3 | import torch.nn as nn 4 | from mmengine.model import BaseModule 5 | 6 | from mmdet.registry import MODELS 7 | 8 | 9 | @MODELS.register_module() 10 | class GlobalAveragePooling(BaseModule): 11 | """Global Average Pooling neck. 12 | 13 | Note that we use `view` to remove extra channel after pooling. We do not 14 | use `squeeze` as it will also remove the batch dimension when the tensor 15 | has a batch dimension of size 1, which can lead to unexpected errors. 16 | """ 17 | 18 | def __init__(self, kernel_size=None, stride=None): 19 | super(GlobalAveragePooling, self).__init__() 20 | if kernel_size is None and stride is None: 21 | self.gap = nn.AdaptiveAvgPool2d((1, 1)) 22 | else: 23 | self.gap = nn.AvgPool2d(kernel_size, stride) 24 | 25 | def forward(self, inputs): 26 | if isinstance(inputs, tuple): 27 | outs = tuple([self.gap(x) for x in inputs]) 28 | outs = tuple([ 29 | out.view(x.size(0), 30 | torch.tensor(out.size()[1:]).prod()) 31 | for out, x in zip(outs, inputs) 32 | ]) 33 | elif isinstance(inputs, torch.Tensor): 34 | outs = self.gap(inputs) 35 | outs = outs.view( 36 | inputs.size(0), 37 | torch.tensor(outs.size()[1:]).prod()) 38 | else: 39 | raise TypeError('neck inputs should be tuple or torch.tensor') 40 | return outs 41 | -------------------------------------------------------------------------------- /train/mmdet/models/roi_heads/bbox_heads/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .bbox_head import BBoxHead 3 | from .convfc_bbox_head import (ConvFCBBoxHead, Shared2FCBBoxHead, 4 | Shared4Conv1FCBBoxHead) 5 | from .dii_head import DIIHead 6 | from .double_bbox_head import DoubleConvFCBBoxHead 7 | from .multi_instance_bbox_head import MultiInstanceBBoxHead 8 | from .sabl_head import SABLHead 9 | from .scnet_bbox_head import SCNetBBoxHead 10 | 11 | __all__ = [ 12 | 'BBoxHead', 'ConvFCBBoxHead', 'Shared2FCBBoxHead', 13 | 'Shared4Conv1FCBBoxHead', 'DoubleConvFCBBoxHead', 'SABLHead', 'DIIHead', 14 | 'SCNetBBoxHead', 'MultiInstanceBBoxHead' 15 | ] 16 | -------------------------------------------------------------------------------- /train/mmdet/models/roi_heads/mask_heads/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .coarse_mask_head import CoarseMaskHead 3 | from .dynamic_mask_head import DynamicMaskHead 4 | from .fcn_mask_head import FCNMaskHead 5 | from .feature_relay_head import FeatureRelayHead 6 | from .fused_semantic_head import FusedSemanticHead 7 | from .global_context_head import GlobalContextHead 8 | from .grid_head import GridHead 9 | from .htc_mask_head import HTCMaskHead 10 | from .mask_point_head import MaskPointHead 11 | from .maskiou_head import MaskIoUHead 12 | from .scnet_mask_head import SCNetMaskHead 13 | from .scnet_semantic_head import SCNetSemanticHead 14 | 15 | __all__ = [ 16 | 'FCNMaskHead', 'HTCMaskHead', 'FusedSemanticHead', 'GridHead', 17 | 'MaskIoUHead', 'CoarseMaskHead', 'MaskPointHead', 'SCNetMaskHead', 18 | 'SCNetSemanticHead', 'GlobalContextHead', 'FeatureRelayHead', 19 | 'DynamicMaskHead' 20 | ] 21 | -------------------------------------------------------------------------------- /train/mmdet/models/roi_heads/mask_heads/scnet_mask_head.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.models.layers import ResLayer, SimplifiedBasicBlock 3 | from mmdet.registry import MODELS 4 | from .fcn_mask_head import FCNMaskHead 5 | 6 | 7 | @MODELS.register_module() 8 | class SCNetMaskHead(FCNMaskHead): 9 | """Mask head for `SCNet `_. 10 | 11 | Args: 12 | conv_to_res (bool, optional): if True, change the conv layers to 13 | ``SimplifiedBasicBlock``. 14 | """ 15 | 16 | def __init__(self, conv_to_res: bool = True, **kwargs) -> None: 17 | super().__init__(**kwargs) 18 | self.conv_to_res = conv_to_res 19 | if conv_to_res: 20 | assert self.conv_kernel_size == 3 21 | self.num_res_blocks = self.num_convs // 2 22 | self.convs = ResLayer( 23 | SimplifiedBasicBlock, 24 | self.in_channels, 25 | self.conv_out_channels, 26 | self.num_res_blocks, 27 | conv_cfg=self.conv_cfg, 28 | norm_cfg=self.norm_cfg) 29 | -------------------------------------------------------------------------------- /train/mmdet/models/roi_heads/mask_heads/scnet_semantic_head.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.models.layers import ResLayer, SimplifiedBasicBlock 3 | from mmdet.registry import MODELS 4 | from .fused_semantic_head import FusedSemanticHead 5 | 6 | 7 | @MODELS.register_module() 8 | class SCNetSemanticHead(FusedSemanticHead): 9 | """Mask head for `SCNet `_. 10 | 11 | Args: 12 | conv_to_res (bool, optional): if True, change the conv layers to 13 | ``SimplifiedBasicBlock``. 14 | """ 15 | 16 | def __init__(self, conv_to_res: bool = True, **kwargs) -> None: 17 | super().__init__(**kwargs) 18 | self.conv_to_res = conv_to_res 19 | if self.conv_to_res: 20 | num_res_blocks = self.num_convs // 2 21 | self.convs = ResLayer( 22 | SimplifiedBasicBlock, 23 | self.in_channels, 24 | self.conv_out_channels, 25 | num_res_blocks, 26 | conv_cfg=self.conv_cfg, 27 | norm_cfg=self.norm_cfg) 28 | self.num_convs = num_res_blocks 29 | -------------------------------------------------------------------------------- /train/mmdet/models/roi_heads/roi_extractors/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .base_roi_extractor import BaseRoIExtractor 3 | from .generic_roi_extractor import GenericRoIExtractor 4 | from .single_level_roi_extractor import SingleRoIExtractor 5 | 6 | __all__ = ['BaseRoIExtractor', 'SingleRoIExtractor', 'GenericRoIExtractor'] 7 | -------------------------------------------------------------------------------- /train/mmdet/models/roi_heads/shared_heads/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .res_layer import ResLayer 3 | 4 | __all__ = ['ResLayer'] 5 | -------------------------------------------------------------------------------- /train/mmdet/models/seg_heads/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .panoptic_fpn_head import PanopticFPNHead # noqa: F401,F403 3 | from .panoptic_fusion_heads import * # noqa: F401,F403 4 | -------------------------------------------------------------------------------- /train/mmdet/models/seg_heads/panoptic_fusion_heads/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .base_panoptic_fusion_head import \ 3 | BasePanopticFusionHead # noqa: F401,F403 4 | from .heuristic_fusion_head import HeuristicFusionHead # noqa: F401,F403 5 | from .maskformer_fusion_head import MaskFormerFusionHead # noqa: F401,F403 6 | -------------------------------------------------------------------------------- /train/mmdet/models/seg_heads/panoptic_fusion_heads/base_panoptic_fusion_head.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from abc import ABCMeta, abstractmethod 3 | 4 | from mmengine.model import BaseModule 5 | 6 | from mmdet.registry import MODELS 7 | from mmdet.utils import OptConfigType, OptMultiConfig 8 | 9 | 10 | @MODELS.register_module() 11 | class BasePanopticFusionHead(BaseModule, metaclass=ABCMeta): 12 | """Base class for panoptic heads.""" 13 | 14 | def __init__(self, 15 | num_things_classes: int = 80, 16 | num_stuff_classes: int = 53, 17 | test_cfg: OptConfigType = None, 18 | loss_panoptic: OptConfigType = None, 19 | init_cfg: OptMultiConfig = None, 20 | **kwargs) -> None: 21 | super().__init__(init_cfg=init_cfg) 22 | self.num_things_classes = num_things_classes 23 | self.num_stuff_classes = num_stuff_classes 24 | self.num_classes = num_things_classes + num_stuff_classes 25 | self.test_cfg = test_cfg 26 | 27 | if loss_panoptic: 28 | self.loss_panoptic = MODELS.build(loss_panoptic) 29 | else: 30 | self.loss_panoptic = None 31 | 32 | @property 33 | def with_loss(self) -> bool: 34 | """bool: whether the panoptic head contains loss function.""" 35 | return self.loss_panoptic is not None 36 | 37 | @abstractmethod 38 | def loss(self, **kwargs): 39 | """Loss function.""" 40 | 41 | @abstractmethod 42 | def predict(self, **kwargs): 43 | """Predict function.""" 44 | -------------------------------------------------------------------------------- /train/mmdet/models/task_modules/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .assigners import * # noqa: F401,F403 3 | from .builder import (ANCHOR_GENERATORS, BBOX_ASSIGNERS, BBOX_CODERS, 4 | BBOX_SAMPLERS, IOU_CALCULATORS, MATCH_COSTS, 5 | PRIOR_GENERATORS, build_anchor_generator, build_assigner, 6 | build_bbox_coder, build_iou_calculator, build_match_cost, 7 | build_prior_generator, build_sampler) 8 | from .coders import * # noqa: F401,F403 9 | from .prior_generators import * # noqa: F401,F403 10 | from .samplers import * # noqa: F401,F403 11 | from .tracking import * # noqa: F401,F403 12 | 13 | __all__ = [ 14 | 'ANCHOR_GENERATORS', 'PRIOR_GENERATORS', 'BBOX_ASSIGNERS', 'BBOX_SAMPLERS', 15 | 'MATCH_COSTS', 'BBOX_CODERS', 'IOU_CALCULATORS', 'build_anchor_generator', 16 | 'build_prior_generator', 'build_assigner', 'build_sampler', 17 | 'build_iou_calculator', 'build_match_cost', 'build_bbox_coder' 18 | ] 19 | -------------------------------------------------------------------------------- /train/mmdet/models/task_modules/assigners/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .approx_max_iou_assigner import ApproxMaxIoUAssigner 3 | from .assign_result import AssignResult 4 | from .atss_assigner import ATSSAssigner 5 | from .base_assigner import BaseAssigner 6 | from .center_region_assigner import CenterRegionAssigner 7 | from .dynamic_soft_label_assigner import DynamicSoftLabelAssigner 8 | from .grid_assigner import GridAssigner 9 | from .hungarian_assigner import HungarianAssigner 10 | from .iou2d_calculator import BboxOverlaps2D, BboxOverlaps2D_GLIP 11 | from .match_cost import (BBoxL1Cost, BinaryFocalLossCost, ClassificationCost, 12 | CrossEntropyLossCost, DiceCost, FocalLossCost, 13 | IoUCost) 14 | from .max_iou_assigner import MaxIoUAssigner 15 | from .multi_instance_assigner import MultiInstanceAssigner 16 | from .point_assigner import PointAssigner 17 | from .region_assigner import RegionAssigner 18 | from .sim_ota_assigner import SimOTAAssigner 19 | from .task_aligned_assigner import TaskAlignedAssigner 20 | from .topk_hungarian_assigner import TopkHungarianAssigner 21 | from .uniform_assigner import UniformAssigner 22 | 23 | __all__ = [ 24 | 'BaseAssigner', 'BinaryFocalLossCost', 'MaxIoUAssigner', 25 | 'ApproxMaxIoUAssigner', 'AssignResult', 'PointAssigner', 'ATSSAssigner', 26 | 'CenterRegionAssigner', 'GridAssigner', 'HungarianAssigner', 27 | 'RegionAssigner', 'UniformAssigner', 'SimOTAAssigner', 28 | 'TaskAlignedAssigner', 'TopkHungarianAssigner', 'BBoxL1Cost', 29 | 'ClassificationCost', 'CrossEntropyLossCost', 'DiceCost', 'FocalLossCost', 30 | 'IoUCost', 'BboxOverlaps2D', 'DynamicSoftLabelAssigner', 31 | 'MultiInstanceAssigner', 'BboxOverlaps2D_GLIP' 32 | ] 33 | -------------------------------------------------------------------------------- /train/mmdet/models/task_modules/assigners/base_assigner.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from abc import ABCMeta, abstractmethod 3 | from typing import Optional 4 | 5 | from mmengine.structures import InstanceData 6 | 7 | 8 | class BaseAssigner(metaclass=ABCMeta): 9 | """Base assigner that assigns boxes to ground truth boxes.""" 10 | 11 | @abstractmethod 12 | def assign(self, 13 | pred_instances: InstanceData, 14 | gt_instances: InstanceData, 15 | gt_instances_ignore: Optional[InstanceData] = None, 16 | **kwargs): 17 | """Assign boxes to either a ground truth boxes or a negative boxes.""" 18 | -------------------------------------------------------------------------------- /train/mmdet/models/task_modules/coders/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .base_bbox_coder import BaseBBoxCoder 3 | from .bucketing_bbox_coder import BucketingBBoxCoder 4 | from .delta_xywh_bbox_coder import (DeltaXYWHBBoxCoder, 5 | DeltaXYWHBBoxCoderForGLIP) 6 | from .distance_point_bbox_coder import DistancePointBBoxCoder 7 | from .legacy_delta_xywh_bbox_coder import LegacyDeltaXYWHBBoxCoder 8 | from .pseudo_bbox_coder import PseudoBBoxCoder 9 | from .tblr_bbox_coder import TBLRBBoxCoder 10 | from .yolo_bbox_coder import YOLOBBoxCoder 11 | 12 | __all__ = [ 13 | 'BaseBBoxCoder', 'PseudoBBoxCoder', 'DeltaXYWHBBoxCoder', 14 | 'LegacyDeltaXYWHBBoxCoder', 'TBLRBBoxCoder', 'YOLOBBoxCoder', 15 | 'BucketingBBoxCoder', 'DistancePointBBoxCoder', 'DeltaXYWHBBoxCoderForGLIP' 16 | ] 17 | -------------------------------------------------------------------------------- /train/mmdet/models/task_modules/coders/base_bbox_coder.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from abc import ABCMeta, abstractmethod 3 | 4 | 5 | class BaseBBoxCoder(metaclass=ABCMeta): 6 | """Base bounding box coder. 7 | 8 | Args: 9 | use_box_type (bool): Whether to warp decoded boxes with the 10 | box type data structure. Defaults to False. 11 | """ 12 | 13 | # The size of the last of dimension of the encoded tensor. 14 | encode_size = 4 15 | 16 | def __init__(self, use_box_type: bool = False, **kwargs): 17 | self.use_box_type = use_box_type 18 | 19 | @abstractmethod 20 | def encode(self, bboxes, gt_bboxes): 21 | """Encode deltas between bboxes and ground truth boxes.""" 22 | 23 | @abstractmethod 24 | def decode(self, bboxes, bboxes_pred): 25 | """Decode the predicted bboxes according to prediction and base 26 | boxes.""" 27 | -------------------------------------------------------------------------------- /train/mmdet/models/task_modules/coders/pseudo_bbox_coder.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from typing import Union 3 | 4 | from torch import Tensor 5 | 6 | from mmdet.registry import TASK_UTILS 7 | from mmdet.structures.bbox import BaseBoxes, HorizontalBoxes, get_box_tensor 8 | from .base_bbox_coder import BaseBBoxCoder 9 | 10 | 11 | @TASK_UTILS.register_module() 12 | class PseudoBBoxCoder(BaseBBoxCoder): 13 | """Pseudo bounding box coder.""" 14 | 15 | def __init__(self, **kwargs): 16 | super().__init__(**kwargs) 17 | 18 | def encode(self, bboxes: Tensor, gt_bboxes: Union[Tensor, 19 | BaseBoxes]) -> Tensor: 20 | """torch.Tensor: return the given ``bboxes``""" 21 | gt_bboxes = get_box_tensor(gt_bboxes) 22 | return gt_bboxes 23 | 24 | def decode(self, bboxes: Tensor, pred_bboxes: Union[Tensor, 25 | BaseBoxes]) -> Tensor: 26 | """torch.Tensor: return the given ``pred_bboxes``""" 27 | if self.use_box_type: 28 | pred_bboxes = HorizontalBoxes(pred_bboxes) 29 | return pred_bboxes 30 | -------------------------------------------------------------------------------- /train/mmdet/models/task_modules/prior_generators/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .anchor_generator import (AnchorGenerator, LegacyAnchorGenerator, 3 | SSDAnchorGenerator, YOLOAnchorGenerator) 4 | from .point_generator import MlvlPointGenerator, PointGenerator 5 | from .utils import anchor_inside_flags, calc_region 6 | 7 | __all__ = [ 8 | 'AnchorGenerator', 'LegacyAnchorGenerator', 'anchor_inside_flags', 9 | 'PointGenerator', 'calc_region', 'YOLOAnchorGenerator', 10 | 'MlvlPointGenerator', 'SSDAnchorGenerator' 11 | ] 12 | -------------------------------------------------------------------------------- /train/mmdet/models/task_modules/samplers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .base_sampler import BaseSampler 3 | from .combined_sampler import CombinedSampler 4 | from .instance_balanced_pos_sampler import InstanceBalancedPosSampler 5 | from .iou_balanced_neg_sampler import IoUBalancedNegSampler 6 | from .mask_pseudo_sampler import MaskPseudoSampler 7 | from .mask_sampling_result import MaskSamplingResult 8 | from .multi_instance_random_sampler import MultiInsRandomSampler 9 | from .multi_instance_sampling_result import MultiInstanceSamplingResult 10 | from .ohem_sampler import OHEMSampler 11 | from .pseudo_sampler import PseudoSampler 12 | from .random_sampler import RandomSampler 13 | from .sampling_result import SamplingResult 14 | from .score_hlr_sampler import ScoreHLRSampler 15 | 16 | __all__ = [ 17 | 'BaseSampler', 'PseudoSampler', 'RandomSampler', 18 | 'InstanceBalancedPosSampler', 'IoUBalancedNegSampler', 'CombinedSampler', 19 | 'OHEMSampler', 'SamplingResult', 'ScoreHLRSampler', 'MaskPseudoSampler', 20 | 'MaskSamplingResult', 'MultiInstanceSamplingResult', 21 | 'MultiInsRandomSampler' 22 | ] 23 | -------------------------------------------------------------------------------- /train/mmdet/models/task_modules/samplers/combined_sampler.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmdet.registry import TASK_UTILS 3 | from .base_sampler import BaseSampler 4 | 5 | 6 | @TASK_UTILS.register_module() 7 | class CombinedSampler(BaseSampler): 8 | """A sampler that combines positive sampler and negative sampler.""" 9 | 10 | def __init__(self, pos_sampler, neg_sampler, **kwargs): 11 | super(CombinedSampler, self).__init__(**kwargs) 12 | self.pos_sampler = TASK_UTILS.build(pos_sampler, default_args=kwargs) 13 | self.neg_sampler = TASK_UTILS.build(neg_sampler, default_args=kwargs) 14 | 15 | def _sample_pos(self, **kwargs): 16 | """Sample positive samples.""" 17 | raise NotImplementedError 18 | 19 | def _sample_neg(self, **kwargs): 20 | """Sample negative samples.""" 21 | raise NotImplementedError 22 | -------------------------------------------------------------------------------- /train/mmdet/models/task_modules/tracking/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .aflink import AppearanceFreeLink 3 | from .camera_motion_compensation import CameraMotionCompensation 4 | from .interpolation import InterpolateTracklets 5 | from .kalman_filter import KalmanFilter 6 | from .similarity import embed_similarity 7 | 8 | __all__ = [ 9 | 'KalmanFilter', 'InterpolateTracklets', 'embed_similarity', 10 | 'AppearanceFreeLink', 'CameraMotionCompensation' 11 | ] 12 | -------------------------------------------------------------------------------- /train/mmdet/models/task_modules/tracking/similarity.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | import torch 3 | import torch.nn.functional as F 4 | from torch import Tensor 5 | 6 | 7 | def embed_similarity(key_embeds: Tensor, 8 | ref_embeds: Tensor, 9 | method: str = 'dot_product', 10 | temperature: int = -1) -> Tensor: 11 | """Calculate feature similarity from embeddings. 12 | 13 | Args: 14 | key_embeds (Tensor): Shape (N1, C). 15 | ref_embeds (Tensor): Shape (N2, C). 16 | method (str, optional): Method to calculate the similarity, 17 | options are 'dot_product' and 'cosine'. Defaults to 18 | 'dot_product'. 19 | temperature (int, optional): Softmax temperature. Defaults to -1. 20 | 21 | Returns: 22 | Tensor: Similarity matrix of shape (N1, N2). 23 | """ 24 | assert method in ['dot_product', 'cosine'] 25 | 26 | if method == 'cosine': 27 | key_embeds = F.normalize(key_embeds, p=2, dim=1) 28 | ref_embeds = F.normalize(ref_embeds, p=2, dim=1) 29 | 30 | similarity = torch.mm(key_embeds, ref_embeds.T) 31 | 32 | if temperature > 0: 33 | similarity /= float(temperature) 34 | return similarity 35 | -------------------------------------------------------------------------------- /train/mmdet/models/test_time_augs/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .det_tta import DetTTAModel 3 | from .merge_augs import (merge_aug_bboxes, merge_aug_masks, 4 | merge_aug_proposals, merge_aug_results, 5 | merge_aug_scores) 6 | 7 | __all__ = [ 8 | 'merge_aug_bboxes', 'merge_aug_masks', 'merge_aug_proposals', 9 | 'merge_aug_scores', 'merge_aug_results', 'DetTTAModel' 10 | ] 11 | -------------------------------------------------------------------------------- /train/mmdet/models/trackers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .base_tracker import BaseTracker 3 | from .byte_tracker import ByteTracker 4 | from .masktrack_rcnn_tracker import MaskTrackRCNNTracker 5 | from .ocsort_tracker import OCSORTTracker 6 | from .quasi_dense_tracker import QuasiDenseTracker 7 | from .sort_tracker import SORTTracker 8 | from .strongsort_tracker import StrongSORTTracker 9 | 10 | __all__ = [ 11 | 'BaseTracker', 'ByteTracker', 'QuasiDenseTracker', 'SORTTracker', 12 | 'StrongSORTTracker', 'OCSORTTracker', 'MaskTrackRCNNTracker' 13 | ] 14 | -------------------------------------------------------------------------------- /train/mmdet/models/tracking_heads/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .mask2former_track_head import Mask2FormerTrackHead 3 | from .quasi_dense_embed_head import QuasiDenseEmbedHead 4 | from .quasi_dense_track_head import QuasiDenseTrackHead 5 | from .roi_embed_head import RoIEmbedHead 6 | from .roi_track_head import RoITrackHead 7 | 8 | __all__ = [ 9 | 'QuasiDenseEmbedHead', 'QuasiDenseTrackHead', 'Mask2FormerTrackHead', 10 | 'RoIEmbedHead', 'RoITrackHead' 11 | ] 12 | -------------------------------------------------------------------------------- /train/mmdet/models/utils/make_divisible.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | def make_divisible(value, divisor, min_value=None, min_ratio=0.9): 3 | """Make divisible function. 4 | 5 | This function rounds the channel number to the nearest value that can be 6 | divisible by the divisor. It is taken from the original tf repo. It ensures 7 | that all layers have a channel number that is divisible by divisor. It can 8 | be seen here: https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet/mobilenet.py # noqa 9 | 10 | Args: 11 | value (int): The original channel number. 12 | divisor (int): The divisor to fully divide the channel number. 13 | min_value (int): The minimum value of the output channel. 14 | Default: None, means that the minimum value equal to the divisor. 15 | min_ratio (float): The minimum ratio of the rounded channel number to 16 | the original channel number. Default: 0.9. 17 | 18 | Returns: 19 | int: The modified output channel number. 20 | """ 21 | 22 | if min_value is None: 23 | min_value = divisor 24 | new_value = max(min_value, int(value + divisor / 2) // divisor * divisor) 25 | # Make sure that round down does not go down by more than (1-min_ratio). 26 | if new_value < min_ratio * value: 27 | new_value += divisor 28 | return new_value 29 | -------------------------------------------------------------------------------- /train/mmdet/models/vis/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .mask2former_vis import Mask2FormerVideo 3 | from .masktrack_rcnn import MaskTrackRCNN 4 | 5 | __all__ = ['Mask2FormerVideo', 'MaskTrackRCNN'] 6 | -------------------------------------------------------------------------------- /train/mmdet/structures/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .det_data_sample import DetDataSample, OptSampleList, SampleList 3 | from .reid_data_sample import ReIDDataSample 4 | from .track_data_sample import (OptTrackSampleList, TrackDataSample, 5 | TrackSampleList) 6 | 7 | __all__ = [ 8 | 'DetDataSample', 'SampleList', 'OptSampleList', 'TrackDataSample', 9 | 'TrackSampleList', 'OptTrackSampleList', 'ReIDDataSample' 10 | ] 11 | -------------------------------------------------------------------------------- /train/mmdet/structures/__pycache__/__init__.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/__pycache__/__init__.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/__pycache__/det_data_sample.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/__pycache__/det_data_sample.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/__pycache__/det_data_sample.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/__pycache__/det_data_sample.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/__pycache__/reid_data_sample.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/__pycache__/reid_data_sample.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/__pycache__/reid_data_sample.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/__pycache__/reid_data_sample.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/__pycache__/track_data_sample.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/__pycache__/track_data_sample.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/__pycache__/track_data_sample.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/__pycache__/track_data_sample.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/bbox/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .base_boxes import BaseBoxes 3 | from .bbox_overlaps import bbox_overlaps 4 | from .box_type import (autocast_box_type, convert_box_type, get_box_type, 5 | register_box, register_box_converter) 6 | from .horizontal_boxes import HorizontalBoxes 7 | from .transforms import bbox_cxcyah_to_xyxy # noqa: E501 8 | from .transforms import (bbox2corner, bbox2distance, bbox2result, bbox2roi, 9 | bbox_cxcywh_to_xyxy, bbox_flip, bbox_mapping, 10 | bbox_mapping_back, bbox_project, bbox_rescale, 11 | bbox_xyxy_to_cxcyah, bbox_xyxy_to_cxcywh, cat_boxes, 12 | corner2bbox, distance2bbox, empty_box_as, 13 | find_inside_bboxes, get_box_tensor, get_box_wh, 14 | roi2bbox, scale_boxes, stack_boxes) 15 | 16 | __all__ = [ 17 | 'bbox_overlaps', 'bbox_flip', 'bbox_mapping', 'bbox_mapping_back', 18 | 'bbox2roi', 'roi2bbox', 'bbox2result', 'distance2bbox', 'bbox2distance', 19 | 'bbox_rescale', 'bbox_cxcywh_to_xyxy', 'bbox_xyxy_to_cxcywh', 20 | 'find_inside_bboxes', 'bbox2corner', 'corner2bbox', 'bbox_project', 21 | 'BaseBoxes', 'convert_box_type', 'get_box_type', 'register_box', 22 | 'register_box_converter', 'HorizontalBoxes', 'autocast_box_type', 23 | 'cat_boxes', 'stack_boxes', 'scale_boxes', 'get_box_wh', 'get_box_tensor', 24 | 'empty_box_as', 'bbox_xyxy_to_cxcyah', 'bbox_cxcyah_to_xyxy' 25 | ] 26 | -------------------------------------------------------------------------------- /train/mmdet/structures/bbox/__pycache__/__init__.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/bbox/__pycache__/__init__.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/bbox/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/bbox/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/bbox/__pycache__/base_boxes.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/bbox/__pycache__/base_boxes.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/bbox/__pycache__/base_boxes.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/bbox/__pycache__/base_boxes.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/bbox/__pycache__/bbox_overlaps.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/bbox/__pycache__/bbox_overlaps.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/bbox/__pycache__/bbox_overlaps.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/bbox/__pycache__/bbox_overlaps.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/bbox/__pycache__/box_type.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/bbox/__pycache__/box_type.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/bbox/__pycache__/box_type.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/bbox/__pycache__/box_type.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/bbox/__pycache__/horizontal_boxes.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/bbox/__pycache__/horizontal_boxes.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/bbox/__pycache__/horizontal_boxes.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/bbox/__pycache__/horizontal_boxes.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/bbox/__pycache__/transforms.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/bbox/__pycache__/transforms.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/bbox/__pycache__/transforms.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/bbox/__pycache__/transforms.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/mask/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .mask_target import mask_target 3 | from .structures import (BaseInstanceMasks, BitmapMasks, PolygonMasks, 4 | bitmap_to_polygon, polygon_to_bitmap) 5 | from .utils import encode_mask_results, mask2bbox, split_combined_polys 6 | 7 | __all__ = [ 8 | 'split_combined_polys', 'mask_target', 'BaseInstanceMasks', 'BitmapMasks', 9 | 'PolygonMasks', 'encode_mask_results', 'mask2bbox', 'polygon_to_bitmap', 10 | 'bitmap_to_polygon' 11 | ] 12 | -------------------------------------------------------------------------------- /train/mmdet/structures/mask/__pycache__/__init__.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/mask/__pycache__/__init__.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/mask/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/mask/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/mask/__pycache__/mask_target.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/mask/__pycache__/mask_target.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/mask/__pycache__/mask_target.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/mask/__pycache__/mask_target.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/mask/__pycache__/structures.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/mask/__pycache__/structures.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/mask/__pycache__/structures.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/mask/__pycache__/structures.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/mask/__pycache__/utils.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/mask/__pycache__/utils.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/structures/mask/__pycache__/utils.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/structures/mask/__pycache__/utils.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/testing/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from ._fast_stop_training_hook import FastStopTrainingHook # noqa: F401,F403 3 | from ._utils import (demo_mm_inputs, demo_mm_proposals, 4 | demo_mm_sampling_results, demo_track_inputs, 5 | get_detector_cfg, get_roi_head_cfg, random_boxes, 6 | replace_to_ceph) 7 | 8 | __all__ = [ 9 | 'demo_mm_inputs', 'get_detector_cfg', 'get_roi_head_cfg', 10 | 'demo_mm_proposals', 'demo_mm_sampling_results', 'replace_to_ceph', 11 | 'demo_track_inputs', 'VideoDataSampleFeeder', 'random_boxes' 12 | ] 13 | -------------------------------------------------------------------------------- /train/mmdet/testing/_fast_stop_training_hook.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.hooks import Hook 3 | 4 | from mmdet.registry import HOOKS 5 | 6 | 7 | @HOOKS.register_module() 8 | class FastStopTrainingHook(Hook): 9 | """Set runner's epoch information to the model.""" 10 | 11 | def __init__(self, by_epoch, save_ckpt=False, stop_iter_or_epoch=5): 12 | self.by_epoch = by_epoch 13 | self.save_ckpt = save_ckpt 14 | self.stop_iter_or_epoch = stop_iter_or_epoch 15 | 16 | def after_train_iter(self, runner, batch_idx: int, data_batch: None, 17 | outputs: None) -> None: 18 | if self.save_ckpt and self.by_epoch: 19 | # If it is epoch-based and want to save weights, 20 | # we must run at least 1 epoch. 21 | return 22 | if runner.iter >= self.stop_iter_or_epoch: 23 | raise RuntimeError('quick exit') 24 | 25 | def after_train_epoch(self, runner) -> None: 26 | if runner.epoch >= self.stop_iter_or_epoch - 1: 27 | raise RuntimeError('quick exit') 28 | -------------------------------------------------------------------------------- /train/mmdet/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .collect_env import collect_env 3 | from .compat_config import compat_cfg 4 | from .dist_utils import (all_reduce_dict, allreduce_grads, reduce_mean, 5 | sync_random_seed) 6 | from .logger import get_caller_name, log_img_scale 7 | from .memory import AvoidCUDAOOM, AvoidOOM 8 | from .misc import (find_latest_checkpoint, get_test_pipeline_cfg, 9 | update_data_root) 10 | from .mot_error_visualize import imshow_mot_errors 11 | from .replace_cfg_vals import replace_cfg_vals 12 | from .setup_env import (register_all_modules, setup_cache_size_limit_of_dynamo, 13 | setup_multi_processes) 14 | from .split_batch import split_batch 15 | from .typing_utils import (ConfigType, InstanceList, MultiConfig, 16 | OptConfigType, OptInstanceList, OptMultiConfig, 17 | OptPixelList, PixelList, RangeType) 18 | 19 | __all__ = [ 20 | 'collect_env', 'find_latest_checkpoint', 'update_data_root', 21 | 'setup_multi_processes', 'get_caller_name', 'log_img_scale', 'compat_cfg', 22 | 'split_batch', 'register_all_modules', 'replace_cfg_vals', 'AvoidOOM', 23 | 'AvoidCUDAOOM', 'all_reduce_dict', 'allreduce_grads', 'reduce_mean', 24 | 'sync_random_seed', 'ConfigType', 'InstanceList', 'MultiConfig', 25 | 'OptConfigType', 'OptInstanceList', 'OptMultiConfig', 'OptPixelList', 26 | 'PixelList', 'RangeType', 'get_test_pipeline_cfg', 27 | 'setup_cache_size_limit_of_dynamo', 'imshow_mot_errors' 28 | ] 29 | -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/__init__.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/__init__.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/collect_env.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/collect_env.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/collect_env.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/collect_env.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/compat_config.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/compat_config.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/compat_config.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/compat_config.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/dist_utils.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/dist_utils.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/dist_utils.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/dist_utils.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/logger.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/logger.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/logger.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/logger.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/memory.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/memory.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/memory.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/memory.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/misc.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/misc.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/misc.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/misc.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/mot_error_visualize.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/mot_error_visualize.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/mot_error_visualize.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/mot_error_visualize.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/replace_cfg_vals.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/replace_cfg_vals.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/replace_cfg_vals.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/replace_cfg_vals.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/setup_env.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/setup_env.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/setup_env.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/setup_env.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/split_batch.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/split_batch.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/split_batch.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/split_batch.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/typing_utils.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/typing_utils.cpython-310.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/__pycache__/typing_utils.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/mmdet/utils/__pycache__/typing_utils.cpython-312.pyc -------------------------------------------------------------------------------- /train/mmdet/utils/collect_env.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from mmengine.utils import get_git_hash 3 | from mmengine.utils.dl_utils import collect_env as collect_base_env 4 | 5 | import mmdet 6 | 7 | 8 | def collect_env(): 9 | """Collect the information of the running environments.""" 10 | env_info = collect_base_env() 11 | env_info['MMDetection'] = mmdet.__version__ + '+' + get_git_hash()[:7] 12 | return env_info 13 | 14 | 15 | if __name__ == '__main__': 16 | for name, val in collect_env().items(): 17 | print(f'{name}: {val}') 18 | -------------------------------------------------------------------------------- /train/mmdet/utils/logger.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | import inspect 3 | 4 | from mmengine.logging import print_log 5 | 6 | 7 | def get_caller_name(): 8 | """Get name of caller method.""" 9 | # this_func_frame = inspect.stack()[0][0] # i.e., get_caller_name 10 | # callee_frame = inspect.stack()[1][0] # e.g., log_img_scale 11 | caller_frame = inspect.stack()[2][0] # e.g., caller of log_img_scale 12 | caller_method = caller_frame.f_code.co_name 13 | try: 14 | caller_class = caller_frame.f_locals['self'].__class__.__name__ 15 | return f'{caller_class}.{caller_method}' 16 | except KeyError: # caller is a function 17 | return caller_method 18 | 19 | 20 | def log_img_scale(img_scale, shape_order='hw', skip_square=False): 21 | """Log image size. 22 | 23 | Args: 24 | img_scale (tuple): Image size to be logged. 25 | shape_order (str, optional): The order of image shape. 26 | 'hw' for (height, width) and 'wh' for (width, height). 27 | Defaults to 'hw'. 28 | skip_square (bool, optional): Whether to skip logging for square 29 | img_scale. Defaults to False. 30 | 31 | Returns: 32 | bool: Whether to have done logging. 33 | """ 34 | if shape_order == 'hw': 35 | height, width = img_scale 36 | elif shape_order == 'wh': 37 | width, height = img_scale 38 | else: 39 | raise ValueError(f'Invalid shape_order {shape_order}.') 40 | 41 | if skip_square and (height == width): 42 | return False 43 | 44 | caller = get_caller_name() 45 | print_log( 46 | f'image shape: height={height}, width={width} in {caller}', 47 | logger='current') 48 | 49 | return True 50 | -------------------------------------------------------------------------------- /train/mmdet/utils/profiling.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | import contextlib 3 | import sys 4 | import time 5 | 6 | import torch 7 | 8 | if sys.version_info >= (3, 7): 9 | 10 | @contextlib.contextmanager 11 | def profile_time(trace_name, 12 | name, 13 | enabled=True, 14 | stream=None, 15 | end_stream=None): 16 | """Print time spent by CPU and GPU. 17 | 18 | Useful as a temporary context manager to find sweet spots of code 19 | suitable for async implementation. 20 | """ 21 | if (not enabled) or not torch.cuda.is_available(): 22 | yield 23 | return 24 | stream = stream if stream else torch.cuda.current_stream() 25 | end_stream = end_stream if end_stream else stream 26 | start = torch.cuda.Event(enable_timing=True) 27 | end = torch.cuda.Event(enable_timing=True) 28 | stream.record_event(start) 29 | try: 30 | cpu_start = time.monotonic() 31 | yield 32 | finally: 33 | cpu_end = time.monotonic() 34 | end_stream.record_event(end) 35 | end.synchronize() 36 | cpu_time = (cpu_end - cpu_start) * 1000 37 | gpu_time = start.elapsed_time(end) 38 | msg = f'{trace_name} {name} cpu_time {cpu_time:.2f} ms ' 39 | msg += f'gpu_time {gpu_time:.2f} ms stream {stream}' 40 | print(msg, end_stream) 41 | -------------------------------------------------------------------------------- /train/mmdet/utils/typing_utils.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | """Collecting some commonly used type hint in mmdetection.""" 3 | from typing import List, Optional, Sequence, Tuple, Union 4 | 5 | from mmengine.config import ConfigDict 6 | from mmengine.structures import InstanceData, PixelData 7 | 8 | # TODO: Need to avoid circular import with assigner and sampler 9 | # Type hint of config data 10 | ConfigType = Union[ConfigDict, dict] 11 | OptConfigType = Optional[ConfigType] 12 | # Type hint of one or more config data 13 | MultiConfig = Union[ConfigType, List[ConfigType]] 14 | OptMultiConfig = Optional[MultiConfig] 15 | 16 | InstanceList = List[InstanceData] 17 | OptInstanceList = Optional[InstanceList] 18 | 19 | PixelList = List[PixelData] 20 | OptPixelList = Optional[PixelList] 21 | 22 | RangeType = Sequence[Tuple[int, int]] 23 | -------------------------------------------------------------------------------- /train/mmdet/utils/util_random.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | """Helpers for random number generators.""" 3 | import numpy as np 4 | 5 | 6 | def ensure_rng(rng=None): 7 | """Coerces input into a random number generator. 8 | 9 | If the input is None, then a global random state is returned. 10 | 11 | If the input is a numeric value, then that is used as a seed to construct a 12 | random state. Otherwise the input is returned as-is. 13 | 14 | Adapted from [1]_. 15 | 16 | Args: 17 | rng (int | numpy.random.RandomState | None): 18 | if None, then defaults to the global rng. Otherwise this can be an 19 | integer or a RandomState class 20 | Returns: 21 | (numpy.random.RandomState) : rng - 22 | a numpy random number generator 23 | 24 | References: 25 | .. [1] https://gitlab.kitware.com/computer-vision/kwarray/blob/master/kwarray/util_random.py#L270 # noqa: E501 26 | """ 27 | 28 | if rng is None: 29 | rng = np.random.mtrand._rand 30 | elif isinstance(rng, int): 31 | rng = np.random.RandomState(rng) 32 | else: 33 | rng = rng 34 | return rng 35 | -------------------------------------------------------------------------------- /train/mmdet/version.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | 3 | __version__ = '3.3.0' 4 | short_version = __version__ 5 | 6 | 7 | def parse_version_info(version_str): 8 | """Parse a version string into a tuple. 9 | 10 | Args: 11 | version_str (str): The version string. 12 | Returns: 13 | tuple[int | str]: The version info, e.g., "1.3.0" is parsed into 14 | (1, 3, 0), and "2.0.0rc1" is parsed into (2, 0, 0, 'rc1'). 15 | """ 16 | version_info = [] 17 | for x in version_str.split('.'): 18 | if x.isdigit(): 19 | version_info.append(int(x)) 20 | elif x.find('rc') != -1: 21 | patch_version = x.split('rc') 22 | version_info.append(int(patch_version[0])) 23 | version_info.append(f'rc{patch_version[1]}') 24 | return tuple(version_info) 25 | 26 | 27 | version_info = parse_version_info(__version__) 28 | -------------------------------------------------------------------------------- /train/mmdet/visualization/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) OpenMMLab. All rights reserved. 2 | from .local_visualizer import DetLocalVisualizer, TrackLocalVisualizer 3 | from .palette import get_palette, jitter_color, palette_val 4 | 5 | __all__ = [ 6 | 'palette_val', 'get_palette', 'DetLocalVisualizer', 'jitter_color', 7 | 'TrackLocalVisualizer' 8 | ] 9 | -------------------------------------------------------------------------------- /train/segment_anything_training/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. 2 | # All rights reserved. 3 | 4 | # This source code is licensed under the license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | from .build_sam import ( 8 | build_sam, 9 | build_sam_vit_h, 10 | build_sam_vit_l, 11 | build_sam_vit_b, 12 | sam_model_registry, 13 | ) 14 | -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. 2 | # All rights reserved. 3 | 4 | # This source code is licensed under the license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | from .sam import Sam 8 | from .image_encoder import ImageEncoderViT 9 | from .mask_decoder import MaskDecoder 10 | from .prompt_encoder import PromptEncoder 11 | from .transformer import TwoWayTransformer 12 | -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/__init__.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/__init__.cpython-310.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/common.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/common.cpython-310.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/common.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/common.cpython-312.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/common.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/common.cpython-38.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/image_encoder.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/image_encoder.cpython-310.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/image_encoder.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/image_encoder.cpython-312.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/image_encoder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/image_encoder.cpython-38.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/mask_decoder.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/mask_decoder.cpython-310.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/mask_decoder.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/mask_decoder.cpython-312.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/mask_decoder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/mask_decoder.cpython-38.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/prompt_encoder.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/prompt_encoder.cpython-310.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/prompt_encoder.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/prompt_encoder.cpython-312.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/prompt_encoder.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/prompt_encoder.cpython-38.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/sam.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/sam.cpython-310.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/sam.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/sam.cpython-312.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/sam.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/sam.cpython-38.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/transformer.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/transformer.cpython-310.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/transformer.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/transformer.cpython-312.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/__pycache__/transformer.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShanZard/ROS-SAM/c4db1e34d66a84da956e9ef92f65e2237488126f/train/segment_anything_training/modeling/__pycache__/transformer.cpython-38.pyc -------------------------------------------------------------------------------- /train/segment_anything_training/modeling/common.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. 2 | # All rights reserved. 3 | 4 | # This source code is licensed under the license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | import torch 8 | import torch.nn as nn 9 | 10 | from typing import Type 11 | 12 | 13 | class MLPBlock(nn.Module): 14 | def __init__( 15 | self, 16 | embedding_dim: int, 17 | mlp_dim: int, 18 | act: Type[nn.Module] = nn.GELU, 19 | ) -> None: 20 | super().__init__() 21 | self.lin1 = nn.Linear(embedding_dim, mlp_dim) 22 | self.lin2 = nn.Linear(mlp_dim, embedding_dim) 23 | self.act = act() 24 | 25 | def forward(self, x: torch.Tensor) -> torch.Tensor: 26 | return self.lin2(self.act(self.lin1(x))) 27 | 28 | 29 | # From https://github.com/facebookresearch/detectron2/blob/main/detectron2/layers/batch_norm.py # noqa 30 | # Itself from https://github.com/facebookresearch/ConvNeXt/blob/d1fa8f6fef0a165b27399986cc2bdacc92777e40/models/convnext.py#L119 # noqa 31 | class LayerNorm2d(nn.Module): 32 | def __init__(self, num_channels: int, eps: float = 1e-6) -> None: 33 | super().__init__() 34 | self.weight = nn.Parameter(torch.ones(num_channels)) 35 | self.bias = nn.Parameter(torch.zeros(num_channels)) 36 | self.eps = eps 37 | 38 | def forward(self, x: torch.Tensor) -> torch.Tensor: 39 | u = x.mean(1, keepdim=True) 40 | s = (x - u).pow(2).mean(1, keepdim=True) 41 | x = (x - u) / torch.sqrt(s + self.eps) 42 | x = self.weight[:, None, None] * x + self.bias[:, None, None] 43 | return x 44 | -------------------------------------------------------------------------------- /train/segment_anything_training/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. 2 | # All rights reserved. 3 | 4 | # This source code is licensed under the license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | --------------------------------------------------------------------------------