From 821e02284ae6ae0303c3f2d055b3de9ac7d0ec87 Mon Sep 17 00:00:00 2001 From: lufficc Date: Sun, 2 Feb 2020 15:34:50 +0800 Subject: [PATCH] init --- .flake8 | 8 + .github/ISSUE_TEMPLATE/bug-report.md | 49 ++ .github/ISSUE_TEMPLATE/feature-request.md | 24 + .../ISSUE_TEMPLATE/questions-help-support.md | 7 + .gitignore | 33 + ABSTRACTIONS.md | 65 ++ CODE_OF_CONDUCT.md | 5 + CONTRIBUTING.md | 39 + INSTALL.md | 73 ++ LICENSE | 21 + MODEL_ZOO.md | 110 +++ README.md | 83 ++ TROUBLESHOOTING.md | 67 ++ configs/e2e_faster_rcnn_R_101_FPN_1x.yaml | 44 + ...e2e_faster_rcnn_R_101_FPN_1x_finetune.yaml | 41 + ...faster_rcnn_R_101_FPN_1x_rpc_finetune.yaml | 39 + ...rcnn_R_101_FPN_1x_rpc_instance_select.yaml | 40 + ...e_faster_rcnn_R_101_FPN_1x_rpc_render.yaml | 39 + ..._101_FPN_1x_rpc_render_cross_finetune.yaml | 45 + ...1_FPN_1x_rpc_render_cross_finetune_17.yaml | 49 ++ ..._FPN_1x_rpc_render_cross_finetune_200.yaml | 49 ++ ...1_FPN_1x_rpc_render_cross_finetune_gt.yaml | 48 + ...n_R_101_FPN_1x_rpc_render_density_map.yaml | 42 + ..._101_FPN_1x_rpc_render_density_map_17.yaml | 50 ++ ...PN_1x_rpc_render_density_map_17_50x50.yaml | 50 ++ ...101_FPN_1x_rpc_render_density_map_200.yaml | 50 ++ ...N_1x_rpc_render_density_map_200_50x50.yaml | 50 ++ .../e2e_faster_rcnn_R_101_FPN_1x_rpc_syn.yaml | 39 + ...rcnn_R_101_FPN_1x_rpc_syn_density_map.yaml | 40 + ...ster_rcnn_R_101_FPN_1x_rpc_syn_render.yaml | 39 + ..._FPN_1x_rpc_syn_render_cross_finetune.yaml | 46 + ...101_FPN_1x_rpc_syn_render_density_map.yaml | 42 + demo/DPSNET.jpg | Bin 0 -> 112627 bytes demo/predictor.py | 377 ++++++++ demo/results.png | Bin 0 -> 2000984 bytes demo/rpc_demo.py | 137 +++ docker/Dockerfile | 53 ++ docker/docker-jupyter/Dockerfile | 67 ++ .../docker-jupyter/jupyter_notebook_config.py | 18 + maskrcnn_benchmark/__init__.py | 1 + maskrcnn_benchmark/config/__init__.py | 2 + maskrcnn_benchmark/config/defaults.py | 428 +++++++++ maskrcnn_benchmark/config/paths_catalog.py | 333 +++++++ maskrcnn_benchmark/csrc/ROIAlign.h | 46 + maskrcnn_benchmark/csrc/ROIPool.h | 48 + maskrcnn_benchmark/csrc/SigmoidFocalLoss.h | 41 + maskrcnn_benchmark/csrc/cpu/ROIAlign_cpu.cpp | 257 ++++++ maskrcnn_benchmark/csrc/cpu/nms_cpu.cpp | 75 ++ maskrcnn_benchmark/csrc/cpu/vision.h | 16 + maskrcnn_benchmark/csrc/cuda/ROIAlign_cuda.cu | 346 ++++++++ maskrcnn_benchmark/csrc/cuda/ROIPool_cuda.cu | 202 +++++ .../csrc/cuda/SigmoidFocalLoss_cuda.cu | 188 ++++ maskrcnn_benchmark/csrc/cuda/nms.cu | 131 +++ maskrcnn_benchmark/csrc/cuda/vision.h | 63 ++ maskrcnn_benchmark/csrc/nms.h | 28 + maskrcnn_benchmark/csrc/vision.cpp | 15 + maskrcnn_benchmark/data/README.md | 90 ++ maskrcnn_benchmark/data/__init__.py | 2 + maskrcnn_benchmark/data/build.py | 195 ++++ maskrcnn_benchmark/data/collate_batch.py | 20 + maskrcnn_benchmark/data/datasets/__init__.py | 9 + maskrcnn_benchmark/data/datasets/coco.py | 101 +++ .../data/datasets/coco_density.py | 278 ++++++ .../data/datasets/concat_dataset.py | 23 + .../data/datasets/evaluation/__init__.py | 38 + .../data/datasets/evaluation/coco/__init__.py | 22 + .../datasets/evaluation/coco/coco_eval.py | 407 +++++++++ .../evaluation/coco_density/__init__.py | 171 ++++ .../data/datasets/evaluation/rpc/__init__.py | 211 +++++ .../data/datasets/evaluation/voc/__init__.py | 16 + .../data/datasets/evaluation/voc/voc_eval.py | 221 +++++ .../data/datasets/list_dataset.py | 36 + maskrcnn_benchmark/data/datasets/rpc.py | 320 +++++++ maskrcnn_benchmark/data/datasets/voc.py | 134 +++ maskrcnn_benchmark/data/samplers/__init__.py | 6 + .../data/samplers/distributed.py | 66 ++ .../data/samplers/grouped_batch_sampler.py | 115 +++ .../samplers/iteration_based_batch_sampler.py | 31 + .../data/transforms/__init__.py | 8 + maskrcnn_benchmark/data/transforms/build.py | 28 + .../data/transforms/transforms.py | 90 ++ maskrcnn_benchmark/engine/__init__.py | 1 + maskrcnn_benchmark/engine/inference.py | 119 +++ maskrcnn_benchmark/engine/inference_bak.py | 120 +++ maskrcnn_benchmark/engine/trainer.py | 355 ++++++++ maskrcnn_benchmark/layers/__init__.py | 21 + maskrcnn_benchmark/layers/_utils.py | 39 + maskrcnn_benchmark/layers/batch_norm.py | 24 + maskrcnn_benchmark/layers/misc.py | 110 +++ maskrcnn_benchmark/layers/nms.py | 7 + maskrcnn_benchmark/layers/roi_align.py | 68 ++ maskrcnn_benchmark/layers/roi_pool.py | 63 ++ .../layers/sigmoid_focal_loss.py | 76 ++ maskrcnn_benchmark/layers/smooth_l1_loss.py | 16 + maskrcnn_benchmark/modeling/__init__.py | 0 .../modeling/backbone/__init__.py | 3 + .../modeling/backbone/backbone.py | 79 ++ maskrcnn_benchmark/modeling/backbone/fbnet.py | 252 ++++++ .../modeling/backbone/fbnet_builder.py | 829 ++++++++++++++++++ .../modeling/backbone/fbnet_modeldef.py | 218 +++++ maskrcnn_benchmark/modeling/backbone/fpn.py | 99 +++ .../modeling/backbone/resnet.py | 418 +++++++++ .../balanced_positive_negative_sampler.py | 68 ++ maskrcnn_benchmark/modeling/box_coder.py | 95 ++ .../modeling/detector/__init__.py | 2 + .../modeling/detector/adaption_rcnn.py | 65 ++ .../modeling/detector/detectors.py | 13 + .../modeling/detector/generalized_rcnn.py | 65 ++ maskrcnn_benchmark/modeling/make_layers.py | 122 +++ maskrcnn_benchmark/modeling/matcher.py | 112 +++ maskrcnn_benchmark/modeling/poolers.py | 133 +++ maskrcnn_benchmark/modeling/registry.py | 12 + .../modeling/roi_heads/__init__.py | 0 .../modeling/roi_heads/box_head/__init__.py | 0 .../modeling/roi_heads/box_head/box_head.py | 71 ++ .../modeling/roi_heads/box_head/inference.py | 167 ++++ .../modeling/roi_heads/box_head/loss.py | 193 ++++ .../box_head/roi_box_feature_extractors.py | 151 ++++ .../roi_heads/box_head/roi_box_predictors.py | 62 ++ .../roi_heads/heatmap_head/__init__.py | 0 .../roi_heads/heatmap_head/heatmap_head.py | 124 +++ .../roi_heads/keypoint_head/__init__.py | 0 .../roi_heads/keypoint_head/inference.py | 125 +++ .../roi_heads/keypoint_head/keypoint_head.py | 51 ++ .../modeling/roi_heads/keypoint_head/loss.py | 183 ++++ .../roi_keypoint_feature_extractors.py | 50 ++ .../keypoint_head/roi_keypoint_predictors.py | 38 + .../modeling/roi_heads/mask_head/__init__.py | 0 .../modeling/roi_heads/mask_head/inference.py | 204 +++++ .../modeling/roi_heads/mask_head/loss.py | 144 +++ .../modeling/roi_heads/mask_head/mask_head.py | 83 ++ .../mask_head/roi_mask_feature_extractors.py | 72 ++ .../mask_head/roi_mask_predictors.py | 57 ++ .../modeling/roi_heads/roi_heads.py | 85 ++ maskrcnn_benchmark/modeling/rpn/__init__.py | 2 + .../modeling/rpn/anchor_generator.py | 289 ++++++ maskrcnn_benchmark/modeling/rpn/inference.py | 202 +++++ maskrcnn_benchmark/modeling/rpn/loss.py | 157 ++++ .../modeling/rpn/retinanet/__init__.py | 0 .../modeling/rpn/retinanet/inference.py | 194 ++++ .../modeling/rpn/retinanet/loss.py | 107 +++ .../modeling/rpn/retinanet/retinanet.py | 152 ++++ maskrcnn_benchmark/modeling/rpn/rpn.py | 207 +++++ maskrcnn_benchmark/modeling/rpn/utils.py | 45 + maskrcnn_benchmark/modeling/utils.py | 16 + maskrcnn_benchmark/solver/__init__.py | 4 + maskrcnn_benchmark/solver/build.py | 34 + maskrcnn_benchmark/solver/lr_scheduler.py | 52 ++ maskrcnn_benchmark/structures/__init__.py | 0 maskrcnn_benchmark/structures/bounding_box.py | 266 ++++++ maskrcnn_benchmark/structures/boxlist_ops.py | 128 +++ maskrcnn_benchmark/structures/image_list.py | 72 ++ maskrcnn_benchmark/structures/keypoint.py | 188 ++++ .../structures/segmentation_mask.py | 291 ++++++ maskrcnn_benchmark/utils/README.md | 5 + maskrcnn_benchmark/utils/__init__.py | 0 maskrcnn_benchmark/utils/c2_model_loading.py | 175 ++++ maskrcnn_benchmark/utils/checkpoint.py | 139 +++ maskrcnn_benchmark/utils/collect_env.py | 14 + maskrcnn_benchmark/utils/comm.py | 117 +++ maskrcnn_benchmark/utils/cv2_util.py | 24 + maskrcnn_benchmark/utils/density.py | 68 ++ maskrcnn_benchmark/utils/env.py | 37 + maskrcnn_benchmark/utils/imports.py | 23 + maskrcnn_benchmark/utils/logger.py | 25 + maskrcnn_benchmark/utils/metric_logger.py | 66 ++ maskrcnn_benchmark/utils/miscellaneous.py | 11 + .../utils/model_serialization.py | 80 ++ maskrcnn_benchmark/utils/model_zoo.py | 61 ++ maskrcnn_benchmark/utils/registry.py | 45 + maskrcnn_benchmark/utils/timer.py | 46 + requirements.txt | 5 + setup.py | 69 ++ tests/checkpoint.py | 118 +++ tests/env_tests/env.py | 12 + tests/test_backbones.py | 55 ++ tests/test_box_coder.py | 109 +++ tests/test_configs.py | 24 + tests/test_data_samplers.py | 153 ++++ tests/test_detectors.py | 143 +++ tests/test_fbnet.py | 84 ++ tests/test_feature_extractors.py | 93 ++ tests/test_metric_logger.py | 28 + tests/test_nms.py | 221 +++++ tests/test_predictors.py | 98 +++ tests/test_rpn_heads.py | 62 ++ tests/utils.py | 28 + toolboxes/compute_threshold.py | 52 ++ toolboxes/extract_mask.py | 96 ++ toolboxes/lunch.py | 35 + toolboxes/model.yml.gz | Bin 0 -> 6390625 bytes toolboxes/synthesize_images.py | 308 +++++++ .../cityscapes/convert_cityscapes_to_coco.py | 237 +++++ .../instances2dict_with_polygons.py | 81 ++ tools/parse_correct.py | 53 ++ tools/test_net.py | 116 +++ tools/train_net.py | 197 +++++ 197 files changed, 18219 insertions(+) create mode 100644 .flake8 create mode 100644 .github/ISSUE_TEMPLATE/bug-report.md create mode 100644 .github/ISSUE_TEMPLATE/feature-request.md create mode 100644 .github/ISSUE_TEMPLATE/questions-help-support.md create mode 100644 .gitignore create mode 100644 ABSTRACTIONS.md create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 INSTALL.md create mode 100644 LICENSE create mode 100644 MODEL_ZOO.md create mode 100644 README.md create mode 100644 TROUBLESHOOTING.md create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x.yaml create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x_finetune.yaml create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_finetune.yaml create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_instance_select.yaml create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render.yaml create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_cross_finetune.yaml create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_cross_finetune_17.yaml create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_cross_finetune_200.yaml create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_cross_finetune_gt.yaml create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map.yaml create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map_17.yaml create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map_17_50x50.yaml create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map_200.yaml create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map_200_50x50.yaml create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn.yaml create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn_density_map.yaml create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn_render.yaml create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn_render_cross_finetune.yaml create mode 100644 configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn_render_density_map.yaml create mode 100644 demo/DPSNET.jpg create mode 100644 demo/predictor.py create mode 100755 demo/results.png create mode 100644 demo/rpc_demo.py create mode 100644 docker/Dockerfile create mode 100644 docker/docker-jupyter/Dockerfile create mode 100644 docker/docker-jupyter/jupyter_notebook_config.py create mode 100644 maskrcnn_benchmark/__init__.py create mode 100644 maskrcnn_benchmark/config/__init__.py create mode 100644 maskrcnn_benchmark/config/defaults.py create mode 100644 maskrcnn_benchmark/config/paths_catalog.py create mode 100644 maskrcnn_benchmark/csrc/ROIAlign.h create mode 100644 maskrcnn_benchmark/csrc/ROIPool.h create mode 100644 maskrcnn_benchmark/csrc/SigmoidFocalLoss.h create mode 100644 maskrcnn_benchmark/csrc/cpu/ROIAlign_cpu.cpp create mode 100644 maskrcnn_benchmark/csrc/cpu/nms_cpu.cpp create mode 100644 maskrcnn_benchmark/csrc/cpu/vision.h create mode 100644 maskrcnn_benchmark/csrc/cuda/ROIAlign_cuda.cu create mode 100644 maskrcnn_benchmark/csrc/cuda/ROIPool_cuda.cu create mode 100644 maskrcnn_benchmark/csrc/cuda/SigmoidFocalLoss_cuda.cu create mode 100644 maskrcnn_benchmark/csrc/cuda/nms.cu create mode 100644 maskrcnn_benchmark/csrc/cuda/vision.h create mode 100644 maskrcnn_benchmark/csrc/nms.h create mode 100644 maskrcnn_benchmark/csrc/vision.cpp create mode 100644 maskrcnn_benchmark/data/README.md create mode 100644 maskrcnn_benchmark/data/__init__.py create mode 100644 maskrcnn_benchmark/data/build.py create mode 100644 maskrcnn_benchmark/data/collate_batch.py create mode 100644 maskrcnn_benchmark/data/datasets/__init__.py create mode 100644 maskrcnn_benchmark/data/datasets/coco.py create mode 100644 maskrcnn_benchmark/data/datasets/coco_density.py create mode 100644 maskrcnn_benchmark/data/datasets/concat_dataset.py create mode 100644 maskrcnn_benchmark/data/datasets/evaluation/__init__.py create mode 100644 maskrcnn_benchmark/data/datasets/evaluation/coco/__init__.py create mode 100644 maskrcnn_benchmark/data/datasets/evaluation/coco/coco_eval.py create mode 100644 maskrcnn_benchmark/data/datasets/evaluation/coco_density/__init__.py create mode 100755 maskrcnn_benchmark/data/datasets/evaluation/rpc/__init__.py create mode 100644 maskrcnn_benchmark/data/datasets/evaluation/voc/__init__.py create mode 100644 maskrcnn_benchmark/data/datasets/evaluation/voc/voc_eval.py create mode 100644 maskrcnn_benchmark/data/datasets/list_dataset.py create mode 100644 maskrcnn_benchmark/data/datasets/rpc.py create mode 100644 maskrcnn_benchmark/data/datasets/voc.py create mode 100644 maskrcnn_benchmark/data/samplers/__init__.py create mode 100644 maskrcnn_benchmark/data/samplers/distributed.py create mode 100644 maskrcnn_benchmark/data/samplers/grouped_batch_sampler.py create mode 100644 maskrcnn_benchmark/data/samplers/iteration_based_batch_sampler.py create mode 100644 maskrcnn_benchmark/data/transforms/__init__.py create mode 100644 maskrcnn_benchmark/data/transforms/build.py create mode 100644 maskrcnn_benchmark/data/transforms/transforms.py create mode 100644 maskrcnn_benchmark/engine/__init__.py create mode 100644 maskrcnn_benchmark/engine/inference.py create mode 100644 maskrcnn_benchmark/engine/inference_bak.py create mode 100644 maskrcnn_benchmark/engine/trainer.py create mode 100644 maskrcnn_benchmark/layers/__init__.py create mode 100644 maskrcnn_benchmark/layers/_utils.py create mode 100644 maskrcnn_benchmark/layers/batch_norm.py create mode 100644 maskrcnn_benchmark/layers/misc.py create mode 100644 maskrcnn_benchmark/layers/nms.py create mode 100644 maskrcnn_benchmark/layers/roi_align.py create mode 100644 maskrcnn_benchmark/layers/roi_pool.py create mode 100644 maskrcnn_benchmark/layers/sigmoid_focal_loss.py create mode 100644 maskrcnn_benchmark/layers/smooth_l1_loss.py create mode 100644 maskrcnn_benchmark/modeling/__init__.py create mode 100644 maskrcnn_benchmark/modeling/backbone/__init__.py create mode 100644 maskrcnn_benchmark/modeling/backbone/backbone.py create mode 100644 maskrcnn_benchmark/modeling/backbone/fbnet.py create mode 100644 maskrcnn_benchmark/modeling/backbone/fbnet_builder.py create mode 100644 maskrcnn_benchmark/modeling/backbone/fbnet_modeldef.py create mode 100644 maskrcnn_benchmark/modeling/backbone/fpn.py create mode 100644 maskrcnn_benchmark/modeling/backbone/resnet.py create mode 100644 maskrcnn_benchmark/modeling/balanced_positive_negative_sampler.py create mode 100644 maskrcnn_benchmark/modeling/box_coder.py create mode 100644 maskrcnn_benchmark/modeling/detector/__init__.py create mode 100644 maskrcnn_benchmark/modeling/detector/adaption_rcnn.py create mode 100644 maskrcnn_benchmark/modeling/detector/detectors.py create mode 100644 maskrcnn_benchmark/modeling/detector/generalized_rcnn.py create mode 100644 maskrcnn_benchmark/modeling/make_layers.py create mode 100644 maskrcnn_benchmark/modeling/matcher.py create mode 100644 maskrcnn_benchmark/modeling/poolers.py create mode 100644 maskrcnn_benchmark/modeling/registry.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/__init__.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/box_head/__init__.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/box_head/box_head.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/box_head/inference.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/box_head/loss.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/box_head/roi_box_feature_extractors.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/box_head/roi_box_predictors.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/heatmap_head/__init__.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/heatmap_head/heatmap_head.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/keypoint_head/__init__.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/keypoint_head/inference.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/keypoint_head/keypoint_head.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/keypoint_head/loss.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/keypoint_head/roi_keypoint_feature_extractors.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/keypoint_head/roi_keypoint_predictors.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/mask_head/__init__.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/mask_head/inference.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/mask_head/loss.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/mask_head/mask_head.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/mask_head/roi_mask_feature_extractors.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/mask_head/roi_mask_predictors.py create mode 100644 maskrcnn_benchmark/modeling/roi_heads/roi_heads.py create mode 100644 maskrcnn_benchmark/modeling/rpn/__init__.py create mode 100644 maskrcnn_benchmark/modeling/rpn/anchor_generator.py create mode 100644 maskrcnn_benchmark/modeling/rpn/inference.py create mode 100644 maskrcnn_benchmark/modeling/rpn/loss.py create mode 100644 maskrcnn_benchmark/modeling/rpn/retinanet/__init__.py create mode 100644 maskrcnn_benchmark/modeling/rpn/retinanet/inference.py create mode 100644 maskrcnn_benchmark/modeling/rpn/retinanet/loss.py create mode 100644 maskrcnn_benchmark/modeling/rpn/retinanet/retinanet.py create mode 100644 maskrcnn_benchmark/modeling/rpn/rpn.py create mode 100644 maskrcnn_benchmark/modeling/rpn/utils.py create mode 100644 maskrcnn_benchmark/modeling/utils.py create mode 100644 maskrcnn_benchmark/solver/__init__.py create mode 100644 maskrcnn_benchmark/solver/build.py create mode 100644 maskrcnn_benchmark/solver/lr_scheduler.py create mode 100644 maskrcnn_benchmark/structures/__init__.py create mode 100644 maskrcnn_benchmark/structures/bounding_box.py create mode 100644 maskrcnn_benchmark/structures/boxlist_ops.py create mode 100644 maskrcnn_benchmark/structures/image_list.py create mode 100644 maskrcnn_benchmark/structures/keypoint.py create mode 100644 maskrcnn_benchmark/structures/segmentation_mask.py create mode 100644 maskrcnn_benchmark/utils/README.md create mode 100644 maskrcnn_benchmark/utils/__init__.py create mode 100644 maskrcnn_benchmark/utils/c2_model_loading.py create mode 100644 maskrcnn_benchmark/utils/checkpoint.py create mode 100644 maskrcnn_benchmark/utils/collect_env.py create mode 100644 maskrcnn_benchmark/utils/comm.py create mode 100644 maskrcnn_benchmark/utils/cv2_util.py create mode 100644 maskrcnn_benchmark/utils/density.py create mode 100644 maskrcnn_benchmark/utils/env.py create mode 100644 maskrcnn_benchmark/utils/imports.py create mode 100644 maskrcnn_benchmark/utils/logger.py create mode 100644 maskrcnn_benchmark/utils/metric_logger.py create mode 100644 maskrcnn_benchmark/utils/miscellaneous.py create mode 100644 maskrcnn_benchmark/utils/model_serialization.py create mode 100644 maskrcnn_benchmark/utils/model_zoo.py create mode 100644 maskrcnn_benchmark/utils/registry.py create mode 100644 maskrcnn_benchmark/utils/timer.py create mode 100644 requirements.txt create mode 100644 setup.py create mode 100644 tests/checkpoint.py create mode 100644 tests/env_tests/env.py create mode 100644 tests/test_backbones.py create mode 100644 tests/test_box_coder.py create mode 100644 tests/test_configs.py create mode 100644 tests/test_data_samplers.py create mode 100644 tests/test_detectors.py create mode 100644 tests/test_fbnet.py create mode 100644 tests/test_feature_extractors.py create mode 100644 tests/test_metric_logger.py create mode 100644 tests/test_nms.py create mode 100644 tests/test_predictors.py create mode 100644 tests/test_rpn_heads.py create mode 100644 tests/utils.py create mode 100755 toolboxes/compute_threshold.py create mode 100755 toolboxes/extract_mask.py create mode 100644 toolboxes/lunch.py create mode 100755 toolboxes/model.yml.gz create mode 100755 toolboxes/synthesize_images.py create mode 100644 tools/cityscapes/convert_cityscapes_to_coco.py create mode 100644 tools/cityscapes/instances2dict_with_polygons.py create mode 100644 tools/parse_correct.py create mode 100644 tools/test_net.py create mode 100644 tools/train_net.py diff --git a/.flake8 b/.flake8 new file mode 100644 index 0000000..c286ad0 --- /dev/null +++ b/.flake8 @@ -0,0 +1,8 @@ +# This is an example .flake8 config, used when developing *Black* itself. +# Keep in sync with setup.cfg which is used for source packages. + +[flake8] +ignore = E203, E266, E501, W503 +max-line-length = 80 +max-complexity = 18 +select = B,C,E,F,W,T4,B9 diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md new file mode 100644 index 0000000..101235f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -0,0 +1,49 @@ +--- +name: "\U0001F41B Bug Report" +about: Submit a bug report to help us improve Mask R-CNN Benchmark + +--- + +## 🐛 Bug + + + +## To Reproduce + +Steps to reproduce the behavior: + +1. +1. +1. + + + +## Expected behavior + + + +## Environment + +Please copy and paste the output from the +[environment collection script from PyTorch](https://raw.githubusercontent.com/pytorch/pytorch/master/torch/utils/collect_env.py) +(or fill out the checklist below manually). + +You can get the script and run it with: +``` +wget https://raw.githubusercontent.com/pytorch/pytorch/master/torch/utils/collect_env.py +# For security purposes, please check the contents of collect_env.py before running it. +python collect_env.py +``` + + - PyTorch Version (e.g., 1.0): + - OS (e.g., Linux): + - How you installed PyTorch (`conda`, `pip`, source): + - Build command you used (if compiling from source): + - Python version: + - CUDA/cuDNN version: + - GPU models and configuration: + - Any other relevant information: + +## Additional context + + diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md new file mode 100644 index 0000000..6c87456 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -0,0 +1,24 @@ +--- +name: "\U0001F680Feature Request" +about: Submit a proposal/request for a new Mask R-CNN Benchmark feature + +--- + +## 🚀 Feature + + +## Motivation + + + +## Pitch + + + +## Alternatives + + + +## Additional context + + diff --git a/.github/ISSUE_TEMPLATE/questions-help-support.md b/.github/ISSUE_TEMPLATE/questions-help-support.md new file mode 100644 index 0000000..992f1b5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/questions-help-support.md @@ -0,0 +1,7 @@ +--- +name: "❓Questions/Help/Support" +about: Do you need support? + +--- + +## ❓ Questions and Help diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2a22217 --- /dev/null +++ b/.gitignore @@ -0,0 +1,33 @@ +# compilation and distribution +__pycache__ +_ext +*.pyc +*.so +maskrcnn_benchmark.egg-info/ +build/ +dist/ + +# pytorch/python/numpy formats +*.pth +*.pkl +*.npy + +# ipython/jupyter notebooks +*.ipynb +**/.ipynb_checkpoints/ + +# Editor temporaries +*.swn +*.swo +*.swp +*~ + +# Pycharm editor settings +.idea + +# project dirs +/datasets +/models + +.DS_Store +.pdf \ No newline at end of file diff --git a/ABSTRACTIONS.md b/ABSTRACTIONS.md new file mode 100644 index 0000000..cdb3c42 --- /dev/null +++ b/ABSTRACTIONS.md @@ -0,0 +1,65 @@ +## Abstractions +The main abstractions introduced by `maskrcnn_benchmark` that are useful to +have in mind are the following: + +### ImageList +In PyTorch, the first dimension of the input to the network generally represents +the batch dimension, and thus all elements of the same batch have the same +height / width. +In order to support images with different sizes and aspect ratios in the same +batch, we created the `ImageList` class, which holds internally a batch of +images (os possibly different sizes). The images are padded with zeros such that +they have the same final size and batched over the first dimension. The original +sizes of the images before padding are stored in the `image_sizes` attribute, +and the batched tensor in `tensors`. +We provide a convenience function `to_image_list` that accepts a few different +input types, including a list of tensors, and returns an `ImageList` object. + +```python +from maskrcnn_benchmark.structures.image_list import to_image_list + +images = [torch.rand(3, 100, 200), torch.rand(3, 150, 170)] +batched_images = to_image_list(images) + +# it is also possible to make the final batched image be a multiple of a number +batched_images_32 = to_image_list(images, size_divisible=32) +``` + +### BoxList +The `BoxList` class holds a set of bounding boxes (represented as a `Nx4` tensor) for +a specific image, as well as the size of the image as a `(width, height)` tuple. +It also contains a set of methods that allow to perform geometric +transformations to the bounding boxes (such as cropping, scaling and flipping). +The class accepts bounding boxes from two different input formats: +- `xyxy`, where each box is encoded as a `x1`, `y1`, `x2` and `y2` coordinates, and +- `xywh`, where each box is encoded as `x1`, `y1`, `w` and `h`. + +Additionally, each `BoxList` instance can also hold arbitrary additional information +for each bounding box, such as labels, visibility, probability scores etc. + +Here is an example on how to create a `BoxList` from a list of coordinates: +```python +from maskrcnn_benchmark.structures.bounding_box import BoxList, FLIP_LEFT_RIGHT + +width = 100 +height = 200 +boxes = [ + [0, 10, 50, 50], + [50, 20, 90, 60], + [10, 10, 50, 50] +] +# create a BoxList with 3 boxes +bbox = BoxList(boxes, image_size=(width, height), mode='xyxy') + +# perform some box transformations, has similar API as PIL.Image +bbox_scaled = bbox.resize((width * 2, height * 3)) +bbox_flipped = bbox.transpose(FLIP_LEFT_RIGHT) + +# add labels for each bbox +labels = torch.tensor([0, 10, 1]) +bbox.add_field('labels', labels) + +# bbox also support a few operations, like indexing +# here, selects boxes 0 and 2 +bbox_subset = bbox[[0, 2]] +``` diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..0f7ad8b --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,5 @@ +# Code of Conduct + +Facebook has adopted a Code of Conduct that we expect project participants to adhere to. +Please read the [full text](https://code.fb.com/codeofconduct/) +so that you can understand what actions will and will not be tolerated. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..fc14cd3 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,39 @@ +# Contributing to Mask-RCNN Benchmark +We want to make contributing to this project as easy and transparent as +possible. + +## Our Development Process +Minor changes and improvements will be released on an ongoing basis. Larger changes (e.g., changesets implementing a new paper) will be released on a more periodic basis. + +## Pull Requests +We actively welcome your pull requests. + +1. Fork the repo and create your branch from `master`. +2. If you've added code that should be tested, add tests. +3. If you've changed APIs, update the documentation. +4. Ensure the test suite passes. +5. Make sure your code lints. +6. If you haven't already, complete the Contributor License Agreement ("CLA"). + +## Contributor License Agreement ("CLA") +In order to accept your pull request, we need you to submit a CLA. You only need +to do this once to work on any of Facebook's open source projects. + +Complete your CLA here: + +## Issues +We use GitHub issues to track public bugs. Please ensure your description is +clear and has sufficient instructions to be able to reproduce the issue. + +Facebook has a [bounty program](https://www.facebook.com/whitehat/) for the safe +disclosure of security bugs. In those cases, please go through the process +outlined on that page and do not file a public issue. + +## Coding Style +* 4 spaces for indentation rather than tabs +* 80 character line length +* PEP8 formatting following [Black](https://black.readthedocs.io/en/stable/) + +## License +By contributing to Mask-RCNN Benchmark, you agree that your contributions will be licensed +under the LICENSE file in the root directory of this source tree. diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 0000000..caa1f3b --- /dev/null +++ b/INSTALL.md @@ -0,0 +1,73 @@ +## Installation + +### Requirements: +- PyTorch 1.0 from a nightly release. Installation instructions can be found in https://pytorch.org/get-started/locally/ +- torchvision from master +- cocoapi +- yacs +- matplotlib +- GCC >= 4.9 +- (optional) OpenCV for the webcam demo + + +### Option 1: Step-by-step installation + +```bash +# first, make sure that your conda is setup properly with the right environment +# for that, check that `which conda`, `which pip` and `which python` points to the +# right path. From a clean conda env, this is what you need to do + +conda create --name maskrcnn_benchmark +conda activate maskrcnn_benchmark + +# this installs the right pip and dependencies for the fresh python +conda install ipython + +export INSTALL_DIR=$PWD + + +# install pycocotools +cd $INSTALL_DIR +git clone https://github.com/cocodataset/cocoapi.git +cd cocoapi/PythonAPI +python setup.py build_ext install + +# install PyTorch Detection +cd $INSTALL_DIR +git clone https://github.com/facebookresearch/maskrcnn-benchmark.git +cd maskrcnn-benchmark + +# maskrcnn_benchmark and coco api dependencies +pip install -r requirements.txt + +# follow PyTorch installation in https://pytorch.org/get-started/locally/ +# we give the instructions for CUDA 9.0 +conda install -c pytorch pytorch torchvision cudatoolkit=9.0 + +# the following will install the lib with +# symbolic links, so that you can modify +# the files if you want and won't need to +# re-build it +python setup.py build develop + + +unset INSTALL_DIR + +# or if you are on macOS +# MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py build develop +``` + +### Option 2: Docker Image (Requires CUDA, Linux only) + +Build image with defaults (`CUDA=9.0`, `CUDNN=7`): + + nvidia-docker build -t maskrcnn-benchmark docker/ + +Build image with other CUDA and CUDNN versions: + + nvidia-docker build -t maskrcnn-benchmark --build-arg CUDA=9.2 --build-arg CUDNN=7 docker/ + +Build and run image with built-in jupyter notebook(note that the password is used to log in jupyter notebook): + + nvidia-docker build -t maskrcnn-benchmark-jupyter docker/docker-jupyter/ + nvidia-docker run -td -p 8888:8888 -e PASSWORD= -v : maskrcnn-benchmark-jupyter diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..8585e11 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Facebook + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/MODEL_ZOO.md b/MODEL_ZOO.md new file mode 100644 index 0000000..a0276d3 --- /dev/null +++ b/MODEL_ZOO.md @@ -0,0 +1,110 @@ +## Model Zoo and Baselines + +### Hardware +- 8 NVIDIA V100 GPUs + +### Software +- PyTorch version: 1.0.0a0+dd2c487 +- CUDA 9.2 +- CUDNN 7.1 +- NCCL 2.2.13-1 + +### End-to-end Faster and Mask R-CNN baselines + +All the baselines were trained using the exact same experimental setup as in Detectron. +We initialize the detection models with ImageNet weights from Caffe2, the same as used by Detectron. + +The pre-trained models are available in the link in the model id. + +backbone | type | lr sched | im / gpu | train mem(GB) | train time (s/iter) | total train time(hr) | inference time(s/im) | box AP | mask AP | model id +-- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- +R-50-C4 | Fast | 1x | 1 | 5.8 | 0.4036 | 20.2 | 0.17130 | 34.8 | - | [6358800](https://download.pytorch.org/models/maskrcnn/e2e_faster_rcnn_R_50_C4_1x.pth) +R-50-FPN | Fast | 1x | 2 | 4.4 | 0.3530 | 8.8 | 0.12580 | 36.8 | - | [6358793](https://download.pytorch.org/models/maskrcnn/e2e_faster_rcnn_R_50_FPN_1x.pth) +R-101-FPN | Fast | 1x | 2 | 7.1 | 0.4591 | 11.5 | 0.143149 | 39.1 | - | [6358804](https://download.pytorch.org/models/maskrcnn/e2e_faster_rcnn_R_101_FPN_1x.pth) +X-101-32x8d-FPN | Fast | 1x | 1 | 7.6 | 0.7007 | 35.0 | 0.209965 | 41.2 | - | [6358717](https://download.pytorch.org/models/maskrcnn/e2e_faster_rcnn_X_101_32x8d_FPN_1x.pth) +R-50-C4 | Mask | 1x | 1 | 5.8 | 0.4520 | 22.6 | 0.17796 + 0.028 | 35.6 | 31.5 | [6358801](https://download.pytorch.org/models/maskrcnn/e2e_mask_rcnn_R_50_C4_1x.pth) +R-50-FPN | Mask | 1x | 2 | 5.2 | 0.4536 | 11.3 | 0.12966 + 0.034 | 37.8 | 34.2 | [6358792](https://download.pytorch.org/models/maskrcnn/e2e_mask_rcnn_R_50_FPN_1x.pth) +R-101-FPN | Mask | 1x | 2 | 7.9 | 0.5665 | 14.2 | 0.15384 + 0.034 | 40.1 | 36.1 | [6358805](https://download.pytorch.org/models/maskrcnn/e2e_mask_rcnn_R_101_FPN_1x.pth) +X-101-32x8d-FPN | Mask | 1x | 1 | 7.8 | 0.7562 | 37.8 | 0.21739 + 0.034 | 42.2 | 37.8 | [6358718](https://download.pytorch.org/models/maskrcnn/e2e_mask_rcnn_X_101_32x8d_FPN_1x.pth) + +For person keypoint detection: + +backbone | type | lr sched | im / gpu | train mem(GB) | train time (s/iter) | total train time(hr) | inference time(s/im) | box AP | keypoint AP | model id +-- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- +R-50-FPN | Keypoint | 1x | 2 | 5.7 | 0.3771 | 9.4 | 0.10941 | 53.7 | 64.3 | 9981060 + +### Light-weight Model baselines + +We provided pre-trained models for selected FBNet models. +* All the models are trained from scratched with BN using the training schedule specified below. +* Evaluation is performed on a single NVIDIA V100 GPU with `MODEL.RPN.POST_NMS_TOP_N_TEST` set to `200`. + +The following inference time is reported: + * inference total batch=8: Total inference time including data loading, model inference and pre/post preprocessing using 8 images per batch. + * inference model batch=8: Model inference time only and using 8 images per batch. + * inference model batch=1: Model inference time only and using 1 image per batch. + * inferenee caffe2 batch=1: Model inference time for the model in Caffe2 format using 1 image per batch. The Caffe2 models fused the BN to Conv and purely run on C++/CUDA by using Caffe2 ops for rpn/detection post processing. + +The pre-trained models are available in the link in the model id. + +backbone | type | resolution | lr sched | im / gpu | train mem(GB) | train time (s/iter) | total train time (hr) | inference total batch=8 (s/im) | inference model batch=8 (s/im) | inference model batch=1 (s/im) | inference caffe2 batch=1 (s/im) | box AP | mask AP | model id +-- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- +[R-50-C4](configs/e2e_faster_rcnn_R_50_C4_1x.yaml) (reference) | Fast | 800 | 1x | 1 | 5.8 | 0.4036 | 20.2 | 0.0875 | **0.0793** | 0.0831 | **0.0625** | 34.4 | - | f35857197 +[fbnet_chamv1a](configs/e2e_faster_rcnn_fbnet_chamv1a_600.yaml) | Fast | 600 | 0.75x | 12 | 13.6 | 0.5444 | 20.5 | 0.0315 | **0.0260** | 0.0376 | **0.0188** | 33.5 | - | [f100940543](https://download.pytorch.org/models/maskrcnn/e2e_faster_rcnn_fbnet_chamv1a_600.pth) +[fbnet_default](configs/e2e_faster_rcnn_fbnet_600.yaml) | Fast | 600 | 0.5x | 16 | 11.1 | 0.4872 | 12.5 | 0.0316 | **0.0250** | 0.0297 | **0.0130** | 28.2 | - | [f101086388](https://download.pytorch.org/models/maskrcnn/e2e_faster_rcnn_fbnet_600.pth) +[R-50-C4](configs/e2e_mask_rcnn_R_50_C4_1x.yaml) (reference) | Mask | 800 | 1x | 1 | 5.8 | 0.452 | 22.6 | 0.0918 | **0.0848** | 0.0844 | - | 35.2 | 31.0 | f35858791 +[fbnet_xirb16d](configs/e2e_mask_rcnn_fbnet_xirb16d_dsmask_600.yaml) | Mask | 600 | 0.5x | 16 | 13.4 | 1.1732 | 29 | 0.0386 | **0.0319** | 0.0356 | - | 30.7 | 26.9 | [f101086394](https://download.pytorch.org/models/maskrcnn/e2e_mask_rcnn_fbnet_xirb16d_dsmask.pth) +[fbnet_default](configs/e2e_mask_rcnn_fbnet_600.yaml) | Mask | 600 | 0.5x | 16 | 13.0 | 0.9036 | 23.0 | 0.0327 | **0.0269** | 0.0385 | - | 29.0 | 26.1 | [f101086385](https://download.pytorch.org/models/maskrcnn/e2e_mask_rcnn_fbnet_600.pth) + +## Comparison with Detectron and mmdetection + +In the following section, we compare our implementation with [Detectron](https://github.com/facebookresearch/Detectron) +and [mmdetection](https://github.com/open-mmlab/mmdetection). +The same remarks from [mmdetection](https://github.com/open-mmlab/mmdetection/blob/master/MODEL_ZOO.md#training-speed) +about different hardware applies here. + +### Training speed + +The numbers here are in seconds / iteration. The lower, the better. + +type | Detectron (P100) | mmdetection (V100) | maskrcnn_benchmark (V100) +-- | -- | -- | -- +Faster R-CNN R-50 C4 | 0.566 | - | 0.4036 +Faster R-CNN R-50 FPN | 0.544 | 0.554 | 0.3530 +Faster R-CNN R-101 FPN | 0.647 | - | 0.4591 +Faster R-CNN X-101-32x8d FPN | 0.799 | - | 0.7007 +Mask R-CNN R-50 C4 | 0.620 | - | 0.4520 +Mask R-CNN R-50 FPN | 0.889 | 0.690 | 0.4536 +Mask R-CNN R-101 FPN | 1.008 | - | 0.5665 +Mask R-CNN X-101-32x8d FPN | 0.961 | - | 0.7562 + +### Training memory + +The lower, the better + +type | Detectron (P100) | mmdetection (V100) | maskrcnn_benchmark (V100) +-- | -- | -- | -- +Faster R-CNN R-50 C4 | 6.3 | - | 5.8 +Faster R-CNN R-50 FPN | 7.2 | 4.9 | 4.4 +Faster R-CNN R-101 FPN | 8.9 | - | 7.1 +Faster R-CNN X-101-32x8d FPN | 7.0 | - | 7.6 +Mask R-CNN R-50 C4 | 6.6 | - | 5.8 +Mask R-CNN R-50 FPN | 8.6 | 5.9 | 5.2 +Mask R-CNN R-101 FPN | 10.2 | - | 7.9 +Mask R-CNN X-101-32x8d FPN | 7.7 | - | 7.8 + +### Accuracy + +The higher, the better + +type | Detectron (P100) | mmdetection (V100) | maskrcnn_benchmark (V100) +-- | -- | -- | -- +Faster R-CNN R-50 C4 | 34.8 | - | 34.8 +Faster R-CNN R-50 FPN | 36.7 | 36.7 | 36.8 +Faster R-CNN R-101 FPN | 39.4 | - | 39.1 +Faster R-CNN X-101-32x8d FPN | 41.3 | - | 41.2 +Mask R-CNN R-50 C4 | 35.8 & 31.4 | - | 35.6 & 31.5 +Mask R-CNN R-50 FPN | 37.7 & 33.9 | 37.5 & 34.4 | 37.8 & 34.2 +Mask R-CNN R-101 FPN | 40.0 & 35.9 | - | 40.1 & 36.1 +Mask R-CNN X-101-32x8d FPN | 42.1 & 37.3 | - | 42.2 & 37.8 + diff --git a/README.md b/README.md new file mode 100644 index 0000000..08eeb04 --- /dev/null +++ b/README.md @@ -0,0 +1,83 @@ +# Iterative Knowledge Distillation for Automatic Check-Out + +Introduction +----------------- +Automatic Check-Out (ACO) provides an object detection based mechanism for retailers to process the purchases of customers automatically. However, it suffers a lot from the domain shift problem because of different data distribution between single item in training exemplar images and mixed items in testing checkout images. In this paper, we propose a new iterative knowledge distillation method to solve the domain adaptation problem for this task. First, we develop a new augmentation data strategy to generate synthesized checkout images. It can extract segmented items from the training images by the coarse-to-fine strategy and filter items with realistic poses by pose pruning. Second, we propose a dual pyramid scale network (DPSNet) to exploit multi-scale feature representation in joint detection and counting views. Third, the iterative training strategy is developed to make full use of both image-level and instance-level samples to learn common feature representation and narrow the gap between source domain and target domain. Extensive experiments on the large-scale Retail Product Checkout (RPC) dataset show the proposed DPSNet can achieve state-of-the-art performance compared with existing methods. + +![DPNet](demo/DPSNET.jpg) + +## Installation + +Check [INSTALL.md](INSTALL.md) for installation instructions. + +## Inference + +Run inference with pre-trained models using this command. Then images with boxes, labels and scores will +be saved to `rpc_results` folder. + +```bash +python demo/rpc_demo.py --config-file configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_xxx.yaml --images_dir /path/to/test2019 +``` + +## Prepare dataset + +Using `toolboxes` to extract masks, train [Salient Object Detection](https://github.com/AceCoooool/DSS-pytorch) +and render with [CycleGAN](https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix). Then modify `maskrcnn_benchmark/config/paths_catalog.py` +to make the paths correct. + +## Single GPU training + +Most of the configuration files that we provide assume that we are running on 4 GPUs. +In order to be able to run it on fewer GPUs, there are a few possibilities: + +**1. Run the following without modifications** + +```bash +python tools/train_net.py --config-file "/path/to/config/file.yaml" +``` +This should work out of the box and is very similar to what we should do for multi-GPU training. +But the drawback is that it will use much more GPU memory. The reason is that we set in the +configuration files a global batch size that is divided over the number of GPUs. So if we only +have a single GPU, this means that the batch size for that GPU will be 8x larger, which might lead +to out-of-memory errors. + +If you have a lot of memory available, this is the easiest solution. + +**2. Modify the cfg parameters** + +If you experience out-of-memory errors, you can reduce the global batch size. But this means that +you'll also need to change the learning rate, the number of iterations and the learning rate schedule. + +Here is an example for Mask R-CNN R-50 FPN with the 1x schedule: +```bash +python tools/train_net.py --config-file "configs/e2e_mask_rcnn_R_50_FPN_1x.yaml" SOLVER.IMS_PER_BATCH 2 SOLVER.BASE_LR 0.0025 SOLVER.MAX_ITER 720000 SOLVER.STEPS "(480000, 640000)" TEST.IMS_PER_BATCH 1 +``` +This follows the [scheduling rules from Detectron.](https://github.com/facebookresearch/Detectron/blob/master/configs/getting_started/tutorial_1gpu_e2e_faster_rcnn_R-50-FPN.yaml#L14-L30) +Note that we have multiplied the number of iterations by 8x (as well as the learning rate schedules), +and we have divided the learning rate by 8x. + +We also changed the batch size during testing, but that is generally not necessary because testing +requires much less memory than training. + + +## Multi-GPU training +We use internally `torch.distributed.launch` in order to launch +multi-gpu training. This utility function from PyTorch spawns as many +Python processes as the number of GPUs we want to use, and each Python +process will only use a single GPU. + +```bash +export NGPUS=4 +python -m torch.distributed.launch --nproc_per_node=$NGPUS tools/train_net.py --config-file "path/to/config/file.yaml" +``` +## Results + +| level | method | cAcc | mCIoU | ACD | mCCD | mAP50 | mmAP | +| ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | +| averaged | Render+IS (DPSNet) | 88.14% | 98.66% | 0.17 | 0.01 | 98.64% | 98.64% | + +## Citations +Please consider citing this project in your publications if it helps your research. The following is a BibTeX reference. The BibTeX entry requires the `url` LaTeX package. +``` +TODO +``` \ No newline at end of file diff --git a/TROUBLESHOOTING.md b/TROUBLESHOOTING.md new file mode 100644 index 0000000..63a8b59 --- /dev/null +++ b/TROUBLESHOOTING.md @@ -0,0 +1,67 @@ +# Troubleshooting + +Here is a compilation if common issues that you might face +while compiling / running this code: + +## Compilation errors when compiling the library +If you encounter build errors like the following: +``` +/usr/include/c++/6/type_traits:1558:8: note: provided for ‘template struct std::is_convertible’ + struct is_convertible + ^~~~~~~~~~~~~~ +/usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple&&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement + } + ^ +error: command '/usr/local/cuda/bin/nvcc' failed with exit status 1 +``` +check your CUDA version and your `gcc` version. +``` +nvcc --version +gcc --version +``` +If you are using CUDA 9.0 and gcc 6.4.0, then refer to https://github.com/facebookresearch/maskrcnn-benchmark/issues/25, +which has a summary of the solution. Basically, CUDA 9.0 is not compatible with gcc 6.4.0. + +## ImportError: No module named maskrcnn_benchmark.config when running webcam.py + +This means that `maskrcnn-benchmark` has not been properly installed. +Refer to https://github.com/facebookresearch/maskrcnn-benchmark/issues/22 for a few possible issues. +Note that we now support Python 2 as well. + + +## ImportError: Undefined symbol: __cudaPopCallConfiguration error when import _C + +This probably means that the inconsistent version of NVCC compile and your conda CUDAToolKit package. This is firstly mentioned in https://github.com/facebookresearch/maskrcnn-benchmark/issues/45 . All you need to do is: + +``` +# Check the NVCC compile version(e.g.) +/usr/cuda-9.2/bin/nvcc --version +# Check the CUDAToolKit version(e.g.) +~/anaconda3/bin/conda list | grep cuda + +# If you need to update your CUDAToolKit +~/anaconda3/bin/conda install -c anaconda cudatoolkit==9.2 +``` + +Both of them should have the **same** version. For example, if NVCC==9.2 and CUDAToolKit==9.2, this will be fine while when NVCC==9.2 but CUDAToolKit==9, it fails. + + +## Segmentation fault (core dumped) when running the library +This probably means that you have compiled the library using GCC < 4.9, which is ABI incompatible with PyTorch. +Indeed, during installation, you probably saw a message like +``` +Your compiler (g++ 4.8) may be ABI-incompatible with PyTorch! +Please use a compiler that is ABI-compatible with GCC 4.9 and above. +See https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html. + +See https://gist.github.com/goldsborough/d466f43e8ffc948ff92de7486c5216d6 +for instructions on how to install GCC 4.9 or higher. +``` +Follow the instructions on https://gist.github.com/goldsborough/d466f43e8ffc948ff92de7486c5216d6 +to install GCC 4.9 or higher, and try recompiling `maskrcnn-benchmark` again, after cleaning the +`build` folder with +``` +rm -rf build +``` + + diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x.yaml new file mode 100644 index 0000000..83b0c13 --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x.yaml @@ -0,0 +1,44 @@ +MODEL: + META_ARCHITECTURE: "GeneralizedRCNN" + WEIGHT: "catalog://ImageNetPretrained/MSRA/R-101" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + DENSITY_HEAD: + NUM_CLASSES: 12 + FPN_LEVEL: 1 + FPN_LEVEL_STRIDE: 0.125 + HEATMAP_ON: True +DATASETS: + TRAIN: ("coco_2014_train_density", "coco_2014_valminusminival_density") + TEST: ("coco_2014_minival_density", ) +DATALOADER: + SIZE_DIVISIBILITY: 32 +SOLVER: + BASE_LR: 0.01 + WEIGHT_DECAY: 0.0001 + STEPS: (120000, 160000) + MAX_ITER: 180000 + CHECKPOINT_PERIOD: 5000 + IMS_PER_BATCH: 8 +TEST: + IMS_PER_BATCH: 8 + GENERATE_PSEUDO_LABELS: True + +OUTPUT_DIR: 'work_dirs/outputs_coco_density_12' \ No newline at end of file diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x_finetune.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x_finetune.yaml new file mode 100644 index 0000000..679eac9 --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x_finetune.yaml @@ -0,0 +1,41 @@ +MODEL: + META_ARCHITECTURE: "GeneralizedRCNN" + WEIGHT: "catalog://ImageNetPretrained/MSRA/R-101" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + HEATMAP_ON: False +DATASETS: + TRAIN: ("coco_2014_train", "coco_2014_valminusminival") + TEST: ("coco_2014_minival",) +DATALOADER: + SIZE_DIVISIBILITY: 32 +SOLVER: + BASE_LR: 0.0002 + WEIGHT_DECAY: 0.0001 + STEPS: (50000, 60000) + MAX_ITER: 70000 + CHECKPOINT_PERIOD: 2500 + WARMUP_ITERS: 0 + IMS_PER_BATCH: 8 +TEST: + IMS_PER_BATCH: 8 + GENERATE_PSEUDO_LABELS: False + +OUTPUT_DIR: 'outputs_coco_density_finetune' \ No newline at end of file diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_finetune.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_finetune.yaml new file mode 100644 index 0000000..847a473 --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_finetune.yaml @@ -0,0 +1,39 @@ +MODEL: + META_ARCHITECTURE: "GeneralizedRCNN" + WEIGHT: "CHANGE/ME" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + NUM_CLASSES: 201 +DATASETS: + TRAIN: ("rpc_2019_pseudo",) + TEST: ("rpc_2019_test",) +DATALOADER: + SIZE_DIVISIBILITY: 32 + ASPECT_RATIO_GROUPING: False +SOLVER: + BASE_LR: 0.001 + WEIGHT_DECAY: 0.0001 + STEPS: (50000, 60000) + MAX_ITER: 70000 + IMS_PER_BATCH: 8 +TEST: + IMS_PER_BATCH: 8 + +OUTPUT_DIR: 'outputs_rpc_2019_train_render_final_density_map_finetune' \ No newline at end of file diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_instance_select.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_instance_select.yaml new file mode 100644 index 0000000..37f4aea --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_instance_select.yaml @@ -0,0 +1,40 @@ +MODEL: + META_ARCHITECTURE: "GeneralizedRCNN" + WEIGHT: "CHANGE/ME" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + NUM_CLASSES: 201 +DATASETS: + TRAIN: ("rpc_2019_instance_select",) + TEST: ("rpc_2019_test",) +DATALOADER: + SIZE_DIVISIBILITY: 32 + ASPECT_RATIO_GROUPING: False +SOLVER: + BASE_LR: 0.001 + WEIGHT_DECAY: 0.0001 + STEPS: (2500, 5000, 7500) + MAX_ITER: 10000 + IMS_PER_BATCH: 8 + WARMUP_ITERS: 0 +TEST: + IMS_PER_BATCH: 4 + +OUTPUT_DIR: 'outputs_rpc_2019_train_render_final_density_map_instance_select_paper' \ No newline at end of file diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render.yaml new file mode 100644 index 0000000..45081d4 --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render.yaml @@ -0,0 +1,39 @@ +MODEL: + META_ARCHITECTURE: "GeneralizedRCNN" + WEIGHT: "catalog://ImageNetPretrained/MSRA/R-101" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + NUM_CLASSES: 201 +DATASETS: + TRAIN: ("rpc_2019_train_render",) + TEST: ("rpc_images",) +DATALOADER: + SIZE_DIVISIBILITY: 32 + ASPECT_RATIO_GROUPING: False +SOLVER: + BASE_LR: 0.01 + WEIGHT_DECAY: 0.0001 + STEPS: (120000, 160000) + MAX_ITER: 180000 + IMS_PER_BATCH: 8 +TEST: + IMS_PER_BATCH: 4 + +OUTPUT_DIR: 'outputs_rpc_2019_train_render' \ No newline at end of file diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_cross_finetune.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_cross_finetune.yaml new file mode 100644 index 0000000..ac48cf3 --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_cross_finetune.yaml @@ -0,0 +1,45 @@ +MODEL: + META_ARCHITECTURE: "AdaptionRCNN" + WEIGHT: "CHANGE/ME" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + NUM_CLASSES: 201 + HEATMAP_ON: True +DATASETS: + TRAIN: ("rpc_2019_train_render_density_map",) + TEST: ("rpc_2019_val",) +DATALOADER: + SIZE_DIVISIBILITY: 32 + ASPECT_RATIO_GROUPING: False + NUM_WORKERS: 8 +SOLVER: + BASE_LR: 0.001 + WEIGHT_DECAY: 0.0001 + STEPS: (70000, 100000, 120000) + MAX_ITER: 140000 + CROSS_TRAIN_STEPS: 14 + ITER_PER_STEP: 10000 + IMS_PER_BATCH: 8 +TEST: + IMS_PER_BATCH: 8 + GENERATE_PSEUDO_LABELS: True + PSEUDO_LABELS_ANN_FILE: '/data7/lufficc/projects/DPNet/outputs_rpc_2019_train_render_final_density_map/inference/rpc_2019_test/pseudo_labeling.json' + +OUTPUT_DIR: 'outputs_rpc_2019_train_render_density_map_cross_finetune' \ No newline at end of file diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_cross_finetune_17.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_cross_finetune_17.yaml new file mode 100644 index 0000000..9545a80 --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_cross_finetune_17.yaml @@ -0,0 +1,49 @@ +MODEL: + META_ARCHITECTURE: "AdaptionRCNN" + WEIGHT: "CHANGE/ME" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + NUM_CLASSES: 201 + DENSITY_HEAD: + NUM_CLASSES: 17 + FPN_LEVEL: 1 + FPN_LEVEL_STRIDE: 0.125 + HEATMAP_ON: True +DATASETS: + TRAIN: ("rpc_2019_train_render_density_map",) + TEST: ("rpc_2019_val",) +DATALOADER: + SIZE_DIVISIBILITY: 32 + ASPECT_RATIO_GROUPING: False + NUM_WORKERS: 12 +SOLVER: + BASE_LR: 0.001 + WEIGHT_DECAY: 0.0001 + STEPS: (70000, 100000, 120000) + MAX_ITER: 140000 + CROSS_TRAIN_STEPS: 14 + ITER_PER_STEP: 10000 + IMS_PER_BATCH: 8 +TEST: + IMS_PER_BATCH: 8 + GENERATE_PSEUDO_LABELS: True + PSEUDO_LABELS_ANN_FILE: '/data7/lufficc/projects/DPNet/work_dirs/rpc_2019_train_render_density_map_17/inference/rpc_2019_test/pseudo_labeling.json' + +OUTPUT_DIR: 'work_dirs/rpc_2019_train_render_density_map_cross_finetune_17' \ No newline at end of file diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_cross_finetune_200.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_cross_finetune_200.yaml new file mode 100644 index 0000000..3592184 --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_cross_finetune_200.yaml @@ -0,0 +1,49 @@ +MODEL: + META_ARCHITECTURE: "AdaptionRCNN" + WEIGHT: "CHANGE/ME" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + NUM_CLASSES: 201 + DENSITY_HEAD: + NUM_CLASSES: 200 + FPN_LEVEL: 1 + FPN_LEVEL_STRIDE: 0.125 + HEATMAP_ON: True +DATASETS: + TRAIN: ("rpc_2019_train_render_density_map",) + TEST: ("rpc_2019_val",) +DATALOADER: + SIZE_DIVISIBILITY: 32 + ASPECT_RATIO_GROUPING: False + NUM_WORKERS: 12 +SOLVER: + BASE_LR: 0.001 + WEIGHT_DECAY: 0.0001 + STEPS: (70000, 100000, 120000) + MAX_ITER: 140000 + CROSS_TRAIN_STEPS: 14 + ITER_PER_STEP: 10000 + IMS_PER_BATCH: 8 +TEST: + IMS_PER_BATCH: 8 + GENERATE_PSEUDO_LABELS: True + PSEUDO_LABELS_ANN_FILE: '/data7/lufficc/projects/DPNet/work_dirs/rpc_2019_train_render_density_map_200/inference/rpc_2019_test/pseudo_labeling.json' + +OUTPUT_DIR: 'work_dirs/rpc_2019_train_render_density_map_cross_finetune_200' \ No newline at end of file diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_cross_finetune_gt.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_cross_finetune_gt.yaml new file mode 100644 index 0000000..40f99c2 --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_cross_finetune_gt.yaml @@ -0,0 +1,48 @@ +MODEL: + META_ARCHITECTURE: "AdaptionRCNN" + WEIGHT: "CHANGE/ME" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + NUM_CLASSES: 201 + HEATMAP_ON: True +DATASETS: + TRAIN: ("rpc_2019_train_render_density_map",) + TEST: ("rpc_2019_val",) +DATALOADER: + SIZE_DIVISIBILITY: 32 + ASPECT_RATIO_GROUPING: False + NUM_WORKERS: 8 +SOLVER: + BASE_LR: 0.001 + WEIGHT_DECAY: 0.0001 + STEPS: (70000, 100000, 120000) + MAX_ITER: 140000 + CROSS_TRAIN_STEPS: 14 + ITER_PER_STEP: 10000 + CHECKPOINT_PERIOD: 5000 + IMS_PER_BATCH: 8 +TEST: + IMS_PER_BATCH: 8 + GENERATE_PSEUDO_LABELS: True + USE_GROUND_TRUTH: True + PSEUDO_LABELS_ANN_FILE: '/data7/lufficc/projects/DPNet/outputs_rpc_2019_train_render_final_density_map/inference/rpc_2019_test/pseudo_labeling_gt.json' + + +OUTPUT_DIR: 'outputs_rpc_2019_train_render_density_map_cross_finetune_gt_paper' \ No newline at end of file diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map.yaml new file mode 100644 index 0000000..6374373 --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map.yaml @@ -0,0 +1,42 @@ +MODEL: + META_ARCHITECTURE: "GeneralizedRCNN" + WEIGHT: "catalog://ImageNetPretrained/MSRA/R-101" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + NUM_CLASSES: 201 + HEATMAP_ON: True +DATASETS: + TRAIN: ("rpc_2019_train_render_density_map",) + TEST: ("rpc_2019_val",) +DATALOADER: + SIZE_DIVISIBILITY: 32 + ASPECT_RATIO_GROUPING: False + NUM_WORKERS: 8 +SOLVER: + BASE_LR: 0.01 + WEIGHT_DECAY: 0.0001 + STEPS: (120000, 160000) + MAX_ITER: 180000 + IMS_PER_BATCH: 8 +TEST: + IMS_PER_BATCH: 8 + GENERATE_PSEUDO_LABELS: True + +OUTPUT_DIR: 'outputs_rpc_2019_train_render_density_map' \ No newline at end of file diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map_17.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map_17.yaml new file mode 100644 index 0000000..caa981d --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map_17.yaml @@ -0,0 +1,50 @@ +MODEL: + META_ARCHITECTURE: "GeneralizedRCNN" + WEIGHT: "catalog://ImageNetPretrained/MSRA/R-101" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + NUM_CLASSES: 201 + DENSITY_HEAD: +# NUM_CLASSES: 17 +# FPN_LEVEL: 2 +# FPN_LEVEL_STRIDE: 0.0625 + NUM_CLASSES: 17 + FPN_LEVEL: 1 + FPN_LEVEL_STRIDE: 0.125 + HEATMAP_ON: True +DATASETS: + TRAIN: ("rpc_2019_train_render_density_map",) + TEST: ("rpc_2019_test",) +DATALOADER: + SIZE_DIVISIBILITY: 32 + ASPECT_RATIO_GROUPING: False + NUM_WORKERS: 12 +SOLVER: + BASE_LR: 0.01 + WEIGHT_DECAY: 0.0001 + STEPS: (120000, 160000) + MAX_ITER: 180000 + IMS_PER_BATCH: 8 + CHECKPOINT_PERIOD: 2500 +TEST: + IMS_PER_BATCH: 8 + GENERATE_PSEUDO_LABELS: True + +OUTPUT_DIR: 'work_dirs/rpc_2019_train_render_density_map_17' \ No newline at end of file diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map_17_50x50.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map_17_50x50.yaml new file mode 100644 index 0000000..4a65212 --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map_17_50x50.yaml @@ -0,0 +1,50 @@ +MODEL: + META_ARCHITECTURE: "GeneralizedRCNN" + WEIGHT: "catalog://ImageNetPretrained/MSRA/R-101" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + NUM_CLASSES: 201 + DENSITY_HEAD: + NUM_CLASSES: 17 + FPN_LEVEL: 2 + FPN_LEVEL_STRIDE: 0.0625 +# NUM_CLASSES: 17 +# FPN_LEVEL: 1 +# FPN_LEVEL_STRIDE: 0.125 + HEATMAP_ON: True +DATASETS: + TRAIN: ("rpc_2019_train_render_density_map",) + TEST: ("rpc_2019_test",) +DATALOADER: + SIZE_DIVISIBILITY: 32 + ASPECT_RATIO_GROUPING: False + NUM_WORKERS: 12 +SOLVER: + BASE_LR: 0.01 + WEIGHT_DECAY: 0.0001 + STEPS: (120000, 160000) + MAX_ITER: 180000 + IMS_PER_BATCH: 8 + CHECKPOINT_PERIOD: 5000 +TEST: + IMS_PER_BATCH: 8 + GENERATE_PSEUDO_LABELS: True + +OUTPUT_DIR: 'work_dirs/rpc_2019_train_render_density_map_17_50x50' \ No newline at end of file diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map_200.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map_200.yaml new file mode 100644 index 0000000..bd2802e --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map_200.yaml @@ -0,0 +1,50 @@ +MODEL: + META_ARCHITECTURE: "GeneralizedRCNN" + WEIGHT: "catalog://ImageNetPretrained/MSRA/R-101" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + NUM_CLASSES: 201 + DENSITY_HEAD: +# NUM_CLASSES: 17 +# FPN_LEVEL: 2 +# FPN_LEVEL_STRIDE: 0.0625 + NUM_CLASSES: 200 + FPN_LEVEL: 1 + FPN_LEVEL_STRIDE: 0.125 + HEATMAP_ON: True +DATASETS: + TRAIN: ("rpc_2019_train_render_density_map",) + TEST: ("rpc_2019_test",) +DATALOADER: + SIZE_DIVISIBILITY: 32 + ASPECT_RATIO_GROUPING: False + NUM_WORKERS: 12 +SOLVER: + BASE_LR: 0.01 + WEIGHT_DECAY: 0.0001 + STEPS: (120000, 160000) + MAX_ITER: 180000 + IMS_PER_BATCH: 8 + CHECKPOINT_PERIOD: 2500 +TEST: + IMS_PER_BATCH: 8 + GENERATE_PSEUDO_LABELS: True + +OUTPUT_DIR: 'work_dirs/rpc_2019_train_render_density_map_200' \ No newline at end of file diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map_200_50x50.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map_200_50x50.yaml new file mode 100644 index 0000000..907fbbc --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_render_density_map_200_50x50.yaml @@ -0,0 +1,50 @@ +MODEL: + META_ARCHITECTURE: "GeneralizedRCNN" + WEIGHT: "catalog://ImageNetPretrained/MSRA/R-101" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + NUM_CLASSES: 201 + DENSITY_HEAD: + NUM_CLASSES: 200 + FPN_LEVEL: 2 + FPN_LEVEL_STRIDE: 0.0625 +# NUM_CLASSES: 200 +# FPN_LEVEL: 1 +# FPN_LEVEL_STRIDE: 0.125 + HEATMAP_ON: True +DATASETS: + TRAIN: ("rpc_2019_train_render_density_map",) + TEST: ("rpc_2019_val",) +DATALOADER: + SIZE_DIVISIBILITY: 32 + ASPECT_RATIO_GROUPING: False + NUM_WORKERS: 12 +SOLVER: + BASE_LR: 0.01 + WEIGHT_DECAY: 0.0001 + STEPS: (120000, 160000) + MAX_ITER: 180000 + IMS_PER_BATCH: 8 + CHECKPOINT_PERIOD: 5000 +TEST: + IMS_PER_BATCH: 8 + GENERATE_PSEUDO_LABELS: True + +OUTPUT_DIR: 'work_dirs/rpc_2019_train_render_density_map_200_50x50' \ No newline at end of file diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn.yaml new file mode 100644 index 0000000..7837da8 --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn.yaml @@ -0,0 +1,39 @@ +MODEL: + META_ARCHITECTURE: "GeneralizedRCNN" + WEIGHT: "catalog://ImageNetPretrained/MSRA/R-101" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + NUM_CLASSES: 201 +DATASETS: + TRAIN: ("rpc_2019_train_syn",) + TEST: ("rpc_2019_val",) +DATALOADER: + SIZE_DIVISIBILITY: 32 + ASPECT_RATIO_GROUPING: False +SOLVER: + BASE_LR: 0.01 + WEIGHT_DECAY: 0.0001 + STEPS: (120000, 160000) + MAX_ITER: 180000 + IMS_PER_BATCH: 8 +TEST: + IMS_PER_BATCH: 4 + +OUTPUT_DIR: 'outputs_rpc_2019_train_syn' \ No newline at end of file diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn_density_map.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn_density_map.yaml new file mode 100644 index 0000000..b7d0d6c --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn_density_map.yaml @@ -0,0 +1,40 @@ +MODEL: + META_ARCHITECTURE: "GeneralizedRCNN" + WEIGHT: "catalog://ImageNetPretrained/MSRA/R-101" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + NUM_CLASSES: 201 + HEATMAP_ON: True +DATASETS: + TRAIN: ("rpc_2019_train_syn_density_map",) + TEST: ("rpc_2019_val",) +DATALOADER: + SIZE_DIVISIBILITY: 32 + ASPECT_RATIO_GROUPING: False +SOLVER: + BASE_LR: 0.01 + WEIGHT_DECAY: 0.0001 + STEPS: (120000, 160000) + MAX_ITER: 180000 + IMS_PER_BATCH: 8 +TEST: + IMS_PER_BATCH: 4 + +OUTPUT_DIR: 'outputs_rpc_2019_train_syn_density_map' \ No newline at end of file diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn_render.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn_render.yaml new file mode 100644 index 0000000..9cbecfc --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn_render.yaml @@ -0,0 +1,39 @@ +MODEL: + META_ARCHITECTURE: "GeneralizedRCNN" + WEIGHT: "catalog://ImageNetPretrained/MSRA/R-101" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + NUM_CLASSES: 201 +DATASETS: + TRAIN: ("rpc_2019_train_syn", "rpc_2019_train_render") + TEST: ("rpc_2019_val",) +DATALOADER: + SIZE_DIVISIBILITY: 32 + ASPECT_RATIO_GROUPING: False +SOLVER: + BASE_LR: 0.01 + WEIGHT_DECAY: 0.0001 + STEPS: (120000, 160000) + MAX_ITER: 180000 + IMS_PER_BATCH: 8 +TEST: + IMS_PER_BATCH: 4 + +OUTPUT_DIR: 'outputs_rpc_2019_train_syn_render' \ No newline at end of file diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn_render_cross_finetune.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn_render_cross_finetune.yaml new file mode 100644 index 0000000..6b33e8a --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn_render_cross_finetune.yaml @@ -0,0 +1,46 @@ +MODEL: + META_ARCHITECTURE: "AdaptionRCNN" + WEIGHT: "CHANGE/ME" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + NUM_CLASSES: 201 + HEATMAP_ON: True +DATASETS: + TRAIN: ("rpc_2019_train_render_density_map", "rpc_2019_train_syn_density_map") + TEST: ("rpc_2019_val",) +DATALOADER: + SIZE_DIVISIBILITY: 32 + ASPECT_RATIO_GROUPING: False + NUM_WORKERS: 8 +SOLVER: + BASE_LR: 0.001 + WEIGHT_DECAY: 0.0001 + STEPS: (70000, 100000, 120000) + MAX_ITER: 140000 + CROSS_TRAIN_STEPS: 14 + CROSS_TRAIN_DATA_RATIO: -100000 + ITER_PER_STEP: 10000 + IMS_PER_BATCH: 8 +TEST: + IMS_PER_BATCH: 8 + GENERATE_PSEUDO_LABELS: True + PSEUDO_LABELS_ANN_FILE: 'outputs_rpc_2019_train_syn_render_density_map_paper/inference/rpc_2019_test/pseudo_labeling.json' + +OUTPUT_DIR: 'outputs_rpc_2019_train_syn_render_cross_finetune_paper' \ No newline at end of file diff --git a/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn_render_density_map.yaml b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn_render_density_map.yaml new file mode 100644 index 0000000..6dcc154 --- /dev/null +++ b/configs/e2e_faster_rcnn_R_101_FPN_1x_rpc_syn_render_density_map.yaml @@ -0,0 +1,42 @@ +MODEL: + META_ARCHITECTURE: "GeneralizedRCNN" + WEIGHT: "catalog://ImageNetPretrained/MSRA/R-101" + BACKBONE: + CONV_BODY: "R-101-FPN" + RESNETS: + BACKBONE_OUT_CHANNELS: 256 + RPN: + USE_FPN: True + ANCHOR_STRIDE: (4, 8, 16, 32, 64) + PRE_NMS_TOP_N_TRAIN: 2000 + PRE_NMS_TOP_N_TEST: 1000 + POST_NMS_TOP_N_TEST: 1000 + FPN_POST_NMS_TOP_N_TEST: 1000 + ROI_HEADS: + USE_FPN: True + ROI_BOX_HEAD: + POOLER_RESOLUTION: 7 + POOLER_SCALES: (0.25, 0.125, 0.0625, 0.03125) + POOLER_SAMPLING_RATIO: 2 + FEATURE_EXTRACTOR: "FPN2MLPFeatureExtractor" + PREDICTOR: "FPNPredictor" + NUM_CLASSES: 201 + HEATMAP_ON: True +DATASETS: + TRAIN: ("rpc_2019_train_render_density_map", "rpc_2019_train_syn_density_map") + TEST: ("rpc_2019_val",) +DATALOADER: + SIZE_DIVISIBILITY: 32 + ASPECT_RATIO_GROUPING: False + NUM_WORKERS: 8 +SOLVER: + BASE_LR: 0.01 + WEIGHT_DECAY: 0.0001 + STEPS: (120000, 160000) + MAX_ITER: 180000 + IMS_PER_BATCH: 8 +TEST: + IMS_PER_BATCH: 8 + GENERATE_PSEUDO_LABELS: True + +OUTPUT_DIR: 'outputs_rpc_2019_train_syn_render_density_map_paper' \ No newline at end of file diff --git a/demo/DPSNET.jpg b/demo/DPSNET.jpg new file mode 100644 index 0000000000000000000000000000000000000000..28575d79f644c87704cdb82c32afae74b11efc75 GIT binary patch literal 112627 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

uVP5k=3t-;L$QIP3mCi9 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≫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 V^3B5M@akma*0oNv3l2ZY{|03HXqx~4 literal 0 HcmV?d00001 diff --git a/demo/predictor.py b/demo/predictor.py new file mode 100644 index 0000000..425df78 --- /dev/null +++ b/demo/predictor.py @@ -0,0 +1,377 @@ +# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. +import cv2 +import torch +from torchvision import transforms as T + +from maskrcnn_benchmark.modeling.detector import build_detection_model +from maskrcnn_benchmark.utils.checkpoint import DetectronCheckpointer +from maskrcnn_benchmark.structures.image_list import to_image_list +from maskrcnn_benchmark.modeling.roi_heads.mask_head.inference import Masker +from maskrcnn_benchmark import layers as L +from maskrcnn_benchmark.utils import cv2_util + + +class COCODemo(object): + # RPC categories for pretty print + CATEGORIES = ['__background__', '1_puffed_food', '2_puffed_food', '3_puffed_food', '4_puffed_food', '5_puffed_food', '6_puffed_food', '7_puffed_food', + '8_puffed_food', '9_puffed_food', '10_puffed_food', '11_puffed_food', '12_puffed_food', '13_dried_fruit', '14_dried_fruit', '15_dried_fruit', + '16_dried_fruit', '17_dried_fruit', '18_dried_fruit', '19_dried_fruit', '20_dried_fruit', '21_dried_fruit', '22_dried_food', '23_dried_food', + '24_dried_food', '25_dried_food', '26_dried_food', '27_dried_food', '28_dried_food', '29_dried_food', '30_dried_food', '31_instant_drink', + '32_instant_drink', '33_instant_drink', '34_instant_drink', '35_instant_drink', '36_instant_drink', '37_instant_drink', '38_instant_drink', + '39_instant_drink', '40_instant_drink', '41_instant_drink', '42_instant_noodles', '43_instant_noodles', '44_instant_noodles', + '45_instant_noodles', '46_instant_noodles', '47_instant_noodles', '48_instant_noodles', '49_instant_noodles', '50_instant_noodles', + '51_instant_noodles', '52_instant_noodles', '53_instant_noodles', '54_dessert', '55_dessert', '56_dessert', '57_dessert', '58_dessert', + '59_dessert', '60_dessert', '61_dessert', '62_dessert', '63_dessert', '64_dessert', '65_dessert', '66_dessert', '67_dessert', '68_dessert', + '69_dessert', '70_dessert', '71_drink', '72_drink', '73_drink', '74_drink', '75_drink', '76_drink', '77_drink', '78_drink', '79_alcohol', + '80_alcohol', '81_drink', '82_drink', '83_drink', '84_drink', '85_drink', '86_drink', '87_drink', '88_alcohol', '89_alcohol', '90_alcohol', + '91_alcohol', '92_alcohol', '93_alcohol', '94_alcohol', '95_alcohol', '96_alcohol', '97_milk', '98_milk', '99_milk', '100_milk', '101_milk', + '102_milk', '103_milk', '104_milk', '105_milk', '106_milk', '107_milk', '108_canned_food', '109_canned_food', '110_canned_food', + '111_canned_food', '112_canned_food', '113_canned_food', '114_canned_food', '115_canned_food', '116_canned_food', '117_canned_food', + '118_canned_food', '119_canned_food', '120_canned_food', '121_canned_food', '122_chocolate', '123_chocolate', '124_chocolate', '125_chocolate', + '126_chocolate', '127_chocolate', '128_chocolate', '129_chocolate', '130_chocolate', '131_chocolate', '132_chocolate', '133_chocolate', '134_gum', + '135_gum', '136_gum', '137_gum', '138_gum', '139_gum', '140_gum', '141_gum', '142_candy', '143_candy', '144_candy', '145_candy', '146_candy', + '147_candy', '148_candy', '149_candy', '150_candy', '151_candy', '152_seasoner', '153_seasoner', '154_seasoner', '155_seasoner', '156_seasoner', + '157_seasoner', '158_seasoner', '159_seasoner', '160_seasoner', '161_seasoner', '162_seasoner', '163_seasoner', '164_personal_hygiene', + '165_personal_hygiene', '166_personal_hygiene', '167_personal_hygiene', '168_personal_hygiene', '169_personal_hygiene', '170_personal_hygiene', + '171_personal_hygiene', '172_personal_hygiene', '173_personal_hygiene', '174_tissue', '175_tissue', '176_tissue', '177_tissue', '178_tissue', + '179_tissue', '180_tissue', '181_tissue', '182_tissue', '183_tissue', '184_tissue', '185_tissue', '186_tissue', '187_tissue', '188_tissue', + '189_tissue', '190_tissue', '191_tissue', '192_tissue', '193_tissue', '194_stationery', '195_stationery', '196_stationery', '197_stationery', + '198_stationery', '199_stationery', '200_stationery'] + + def __init__( + self, + cfg, + confidence_threshold=0.7, + show_mask_heatmaps=False, + masks_per_dim=2, + min_image_size=224, + ): + self.cfg = cfg.clone() + self.model = build_detection_model(cfg) + self.model.eval() + self.device = torch.device(cfg.MODEL.DEVICE) + self.model.to(self.device) + self.min_image_size = min_image_size + + save_dir = cfg.OUTPUT_DIR + checkpointer = DetectronCheckpointer(cfg, self.model, save_dir=save_dir) + _ = checkpointer.load(cfg.MODEL.WEIGHT) + + self.transforms = self.build_transform() + + mask_threshold = -1 if show_mask_heatmaps else 0.5 + self.masker = Masker(threshold=mask_threshold, padding=1) + + # used to make colors for each class + self.palette = torch.tensor([2 ** 25 - 1, 2 ** 15 - 1, 2 ** 21 - 1]) + + self.cpu_device = torch.device("cpu") + self.confidence_threshold = confidence_threshold + self.show_mask_heatmaps = show_mask_heatmaps + self.masks_per_dim = masks_per_dim + + def build_transform(self): + """ + Creates a basic transformation that was used to train the models + """ + cfg = self.cfg + + # we are loading images with OpenCV, so we don't need to convert them + # to BGR, they are already! So all we need to do is to normalize + # by 255 if we want to convert to BGR255 format, or flip the channels + # if we want it to be in RGB in [0-1] range. + if cfg.INPUT.TO_BGR255: + to_bgr_transform = T.Lambda(lambda x: x * 255) + else: + to_bgr_transform = T.Lambda(lambda x: x[[2, 1, 0]]) + + normalize_transform = T.Normalize( + mean=cfg.INPUT.PIXEL_MEAN, std=cfg.INPUT.PIXEL_STD + ) + + transform = T.Compose( + [ + T.ToPILImage(), + T.Resize(self.min_image_size), + T.ToTensor(), + to_bgr_transform, + normalize_transform, + ] + ) + return transform + + def run_on_opencv_image(self, image): + """ + Arguments: + image (np.ndarray): an image as returned by OpenCV + + Returns: + prediction (BoxList): the detected objects. Additional information + of the detection properties can be found in the fields of + the BoxList via `prediction.fields()` + """ + predictions = self.compute_prediction(image) + top_predictions = self.select_top_predictions(predictions) + + # result = image.copy() + # if self.show_mask_heatmaps: + # return self.create_mask_montage(result, top_predictions) + # result = self.overlay_boxes(result, top_predictions) + # if self.cfg.MODEL.MASK_ON: + # result = self.overlay_mask(result, top_predictions) + # if self.cfg.MODEL.KEYPOINT_ON: + # result = self.overlay_keypoints(result, top_predictions) + # result = self.overlay_class_names(result, top_predictions) + + return top_predictions + + def compute_prediction(self, original_image): + """ + Arguments: + original_image (np.ndarray): an image as returned by OpenCV + + Returns: + prediction (BoxList): the detected objects. Additional information + of the detection properties can be found in the fields of + the BoxList via `prediction.fields()` + """ + # apply pre-processing to image + image = self.transforms(original_image) + # convert to an ImageList, padded so that it is divisible by + # cfg.DATALOADER.SIZE_DIVISIBILITY + image_list = to_image_list(image, self.cfg.DATALOADER.SIZE_DIVISIBILITY) + image_list = image_list.to(self.device) + # compute predictions + with torch.no_grad(): + predictions = self.model(image_list) + predictions = [o.to(self.cpu_device) for o in predictions] + + # always single image is passed at a time + prediction = predictions[0] + + # reshape prediction (a BoxList) into the original image size + height, width = original_image.shape[:-1] + prediction = prediction.resize((width, height)) + + if prediction.has_field("mask"): + # if we have masks, paste the masks in the right position + # in the image, as defined by the bounding boxes + masks = prediction.get_field("mask") + # always single image is passed at a time + masks = self.masker([masks], [prediction])[0] + prediction.add_field("mask", masks) + return prediction + + def select_top_predictions(self, predictions): + """ + Select only predictions which have a `score` > self.confidence_threshold, + and returns the predictions in descending order of score + + Arguments: + predictions (BoxList): the result of the computation by the model. + It should contain the field `scores`. + + Returns: + prediction (BoxList): the detected objects. Additional information + of the detection properties can be found in the fields of + the BoxList via `prediction.fields()` + """ + scores = predictions.get_field("scores") + keep = torch.nonzero(scores > self.confidence_threshold).squeeze(1) + predictions = predictions[keep] + scores = predictions.get_field("scores") + _, idx = scores.sort(0, descending=True) + return predictions[idx] + + def compute_colors_for_labels(self, labels): + """ + Simple function that adds fixed colors depending on the class + """ + colors = labels[:, None] * self.palette + colors = (colors % 255).numpy().astype("uint8") + return colors + + def overlay_boxes(self, image, predictions): + """ + Adds the predicted boxes on top of the image + + Arguments: + image (np.ndarray): an image as returned by OpenCV + predictions (BoxList): the result of the computation by the model. + It should contain the field `labels`. + """ + labels = predictions.get_field("labels") + boxes = predictions.bbox + + colors = self.compute_colors_for_labels(labels).tolist() + + for box, color in zip(boxes, colors): + box = box.to(torch.int64) + top_left, bottom_right = box[:2].tolist(), box[2:].tolist() + image = cv2.rectangle( + image, tuple(top_left), tuple(bottom_right), tuple(color), 2 + ) + + return image + + def overlay_mask(self, image, predictions): + """ + Adds the instances contours for each predicted object. + Each label has a different color. + + Arguments: + image (np.ndarray): an image as returned by OpenCV + predictions (BoxList): the result of the computation by the model. + It should contain the field `mask` and `labels`. + """ + masks = predictions.get_field("mask").numpy() + labels = predictions.get_field("labels") + + colors = self.compute_colors_for_labels(labels).tolist() + + for mask, color in zip(masks, colors): + thresh = mask[0, :, :, None] + contours, hierarchy = cv2_util.findContours( + thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE + ) + image = cv2.drawContours(image, contours, -1, color, 3) + + composite = image + + return composite + + def overlay_keypoints(self, image, predictions): + keypoints = predictions.get_field("keypoints") + kps = keypoints.keypoints + scores = keypoints.get_field("logits") + kps = torch.cat((kps[:, :, 0:2], scores[:, :, None]), dim=2).numpy() + for region in kps: + image = vis_keypoints(image, region.transpose((1, 0))) + return image + + def create_mask_montage(self, image, predictions): + """ + Create a montage showing the probability heatmaps for each one one of the + detected objects + + Arguments: + image (np.ndarray): an image as returned by OpenCV + predictions (BoxList): the result of the computation by the model. + It should contain the field `mask`. + """ + masks = predictions.get_field("mask") + masks_per_dim = self.masks_per_dim + masks = L.interpolate( + masks.float(), scale_factor=1 / masks_per_dim + ).byte() + height, width = masks.shape[-2:] + max_masks = masks_per_dim ** 2 + masks = masks[:max_masks] + # handle case where we have less detections than max_masks + if len(masks) < max_masks: + masks_padded = torch.zeros(max_masks, 1, height, width, dtype=torch.uint8) + masks_padded[: len(masks)] = masks + masks = masks_padded + masks = masks.reshape(masks_per_dim, masks_per_dim, height, width) + result = torch.zeros( + (masks_per_dim * height, masks_per_dim * width), dtype=torch.uint8 + ) + for y in range(masks_per_dim): + start_y = y * height + end_y = (y + 1) * height + for x in range(masks_per_dim): + start_x = x * width + end_x = (x + 1) * width + result[start_y:end_y, start_x:end_x] = masks[y, x] + return cv2.applyColorMap(result.numpy(), cv2.COLORMAP_JET) + + def overlay_class_names(self, image, predictions): + """ + Adds detected class names and scores in the positions defined by the + top-left corner of the predicted bounding box + + Arguments: + image (np.ndarray): an image as returned by OpenCV + predictions (BoxList): the result of the computation by the model. + It should contain the field `scores` and `labels`. + """ + scores = predictions.get_field("scores").tolist() + labels = predictions.get_field("labels").tolist() + labels = [self.CATEGORIES[i] for i in labels] + boxes = predictions.bbox + + template = "{}: {:.2f}" + for box, score, label in zip(boxes, scores, labels): + x, y = box[:2] + s = template.format(label, score) + cv2.putText( + image, s, (x, y), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2 + ) + + return image + + +import numpy as np +import matplotlib.pyplot as plt +from maskrcnn_benchmark.structures.keypoint import PersonKeypoints + + +def vis_keypoints(img, kps, kp_thresh=2, alpha=0.7): + """Visualizes keypoints (adapted from vis_one_image). + kps has shape (4, #keypoints) where 4 rows are (x, y, logit, prob). + """ + dataset_keypoints = PersonKeypoints.NAMES + kp_lines = PersonKeypoints.CONNECTIONS + + # Convert from plt 0-1 RGBA colors to 0-255 BGR colors for opencv. + cmap = plt.get_cmap('rainbow') + colors = [cmap(i) for i in np.linspace(0, 1, len(kp_lines) + 2)] + colors = [(c[2] * 255, c[1] * 255, c[0] * 255) for c in colors] + + # Perform the drawing on a copy of the image, to allow for blending. + kp_mask = np.copy(img) + + # Draw mid shoulder / mid hip first for better visualization. + mid_shoulder = ( + kps[:2, dataset_keypoints.index('right_shoulder')] + + kps[:2, dataset_keypoints.index('left_shoulder')]) / 2.0 + sc_mid_shoulder = np.minimum( + kps[2, dataset_keypoints.index('right_shoulder')], + kps[2, dataset_keypoints.index('left_shoulder')]) + mid_hip = ( + kps[:2, dataset_keypoints.index('right_hip')] + + kps[:2, dataset_keypoints.index('left_hip')]) / 2.0 + sc_mid_hip = np.minimum( + kps[2, dataset_keypoints.index('right_hip')], + kps[2, dataset_keypoints.index('left_hip')]) + nose_idx = dataset_keypoints.index('nose') + if sc_mid_shoulder > kp_thresh and kps[2, nose_idx] > kp_thresh: + cv2.line( + kp_mask, tuple(mid_shoulder), tuple(kps[:2, nose_idx]), + color=colors[len(kp_lines)], thickness=2, lineType=cv2.LINE_AA) + if sc_mid_shoulder > kp_thresh and sc_mid_hip > kp_thresh: + cv2.line( + kp_mask, tuple(mid_shoulder), tuple(mid_hip), + color=colors[len(kp_lines) + 1], thickness=2, lineType=cv2.LINE_AA) + + # Draw the keypoints. + for l in range(len(kp_lines)): + i1 = kp_lines[l][0] + i2 = kp_lines[l][1] + p1 = kps[0, i1], kps[1, i1] + p2 = kps[0, i2], kps[1, i2] + if kps[2, i1] > kp_thresh and kps[2, i2] > kp_thresh: + cv2.line( + kp_mask, p1, p2, + color=colors[l], thickness=2, lineType=cv2.LINE_AA) + if kps[2, i1] > kp_thresh: + cv2.circle( + kp_mask, p1, + radius=3, color=colors[l], thickness=-1, lineType=cv2.LINE_AA) + if kps[2, i2] > kp_thresh: + cv2.circle( + kp_mask, p2, + radius=3, color=colors[l], thickness=-1, lineType=cv2.LINE_AA) + + # Blend the keypoints. + return cv2.addWeighted(img, 1.0 - alpha, kp_mask, alpha, 0) diff --git a/demo/results.png b/demo/results.png new file mode 100755 index 0000000000000000000000000000000000000000..75578328de3ae69f66a0b5def87bccf33b85b804 GIT binary patch literal 2000984 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

bdjr%A{*H>1E(nS}&OtZei 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 S15;LX?L9+BnQvWvdnt7l9Kg{YkpR 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 S<w#>Zy=z+A84E#eKKe7ff^?uDLv+BjX@sS~7 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

`hV`%186fm)QP!M}+zUCM%$r%430d86KD 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