From 3edf69ec0c3dcdc8c9c506b1287d0de49232bba4 Mon Sep 17 00:00:00 2001 From: jerrywgz Date: Mon, 1 Jul 2019 10:22:17 +0800 Subject: [PATCH] Refine model zoo doc (#2618) --- configs/mask_rcnn_r101_fpn_2x.yml | 145 ------------------------------ configs/mask_rcnn_r50_fpn_2x.yml | 145 ------------------------------ docs/MODEL_ZOO.md | 78 ++++++++++++++++ 3 files changed, 78 insertions(+), 290 deletions(-) delete mode 100644 configs/mask_rcnn_r101_fpn_2x.yml delete mode 100644 configs/mask_rcnn_r50_fpn_2x.yml create mode 100644 docs/MODEL_ZOO.md diff --git a/configs/mask_rcnn_r101_fpn_2x.yml b/configs/mask_rcnn_r101_fpn_2x.yml deleted file mode 100644 index 90d328523..000000000 --- a/configs/mask_rcnn_r101_fpn_2x.yml +++ /dev/null @@ -1,145 +0,0 @@ -architecture: MaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -use_gpu: true -max_iters: 360000 -snapshot_iter: 10000 -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet101_pretrained.tar -metric: COCO -weights: output/mask_rcnn_r101_fpn_2x/model_final/ - -MaskRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 101 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: affine_channel - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - sampling_ratio: 2 - box_resolution: 7 - mask_resolution: 14 - -MaskHead: - dilation: 1 - num_chan_reduced: 256 - num_classes: 81 - num_convs: 4 - resolution: 28 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - num_classes: 81 - -MaskAssigner: - resolution: 28 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - num_classes: 81 - -TwoFCHead: - num_chan: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [240000, 320000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/configs/mask_rcnn_r50_fpn_2x.yml b/configs/mask_rcnn_r50_fpn_2x.yml deleted file mode 100644 index 8e4b45a59..000000000 --- a/configs/mask_rcnn_r50_fpn_2x.yml +++ /dev/null @@ -1,145 +0,0 @@ -architecture: MaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -use_gpu: true -max_iters: 360000 -snapshot_iter: 10000 -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -metric: COCO -weights: output/mask_rcnn_r50_fpn_2x/model_final/ - -MaskRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 50 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: affine_channel - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - sampling_ratio: 2 - box_resolution: 7 - mask_resolution: 14 - -MaskHead: - dilation: 1 - num_chan_reduced: 256 - num_classes: 81 - num_convs: 4 - resolution: 28 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - num_classes: 81 - -MaskAssigner: - resolution: 28 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - num_classes: 81 - -TwoFCHead: - num_chan: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [240000, 320000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/docs/MODEL_ZOO.md b/docs/MODEL_ZOO.md new file mode 100644 index 000000000..3b71432b6 --- /dev/null +++ b/docs/MODEL_ZOO.md @@ -0,0 +1,78 @@ +# Model Zoo and Benchmark +## Environment + +- Python 2.7.1 +- PaddlePaddle 1.5 +- CUDA 9.0 +- CUDNN 7.4 +- NCCL 2.1.2 + +## Common settings + +- All models below except SSD were trained on `coco_2017_train`, and tested on `coco_2017_val`. +- Batch Normalization layers in backbones are replaced by Affine Channel layers. +- Unless otherwise noted, all ResNet backbones adopt the [ResNet-B](https://arxiv.org/pdf/1812.01187) variant.. +- For RCNN and RetinaNet models, only horizontal flipping data augmentation was used in the training phase and no augmentations were used in the testing phase. + +## Training Schedules + +- We adopt exactly the same training schedules as [Detectron](https://github.com/facebookresearch/Detectron/blob/master/MODEL_ZOO.md#training-schedules). +- 1x indicates the schedule starts at a LR of 0.02 and is decreased by a factor of 10 after 60k and 80k iterations and eventually terminates at 90k iterations for minibatch size 16. For batch size 8, LR is decreased to 0.01, total training iterations are doubled, and the decay milestones are scaled by 2. +- 2x schedule is twice as long as 1x, with the LR milestones scaled accordingly. + +## ImageNet Pretrained Models + +The backbone models pretrained on ImageNet are available. All backbone models are pretrained on standard ImageNet-1k dataset and can be downloaded [here](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/image_classification#supported-models-and-performances). + +- Notes: The ResNet50 model was trained with cosine LR decay schedule and can be downloaded here [here](https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar). + +## Baselines + +### Faster & Mask R-CNN + +| Backbone | Type | Img/gpu | Lr schd | Box AP | Mask AP | Download | +| :------------------- | :------------- | :-----: | :-----: | :----: | :-----: | :----------------------------------------------------------: | +| ResNet50 | Faster | 1 | 1x | 35.2 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_1x.tar) | +| ResNet50 | Faster | 1 | 2x | 37.1 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_2x.tar) | +| ResNet50 | Mask | 1 | 1x | 36.5 | 32.2 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_1x.tar) | +| ResNet50 | Mask | 1 | 2x | | | [model]() | +| ResNet50-D | Faster | 1 | 1x | 36.4 | - | [model](ttps://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_vd_1x.tar) | +| ResNet50-FPN | Faster | 2 | 1x | 37.2 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_fpn_1x.tar) | +| ResNet50-FPN | Faster | 2 | 2x | 37.7 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_fpn_2x.tar) | +| ResNet50-FPN | Mask | 2 | 1x | 37.9 | 34.2 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_fpn_1x.tar) | +| ResNet50-FPN | Cascade Faster | 2 | 1x | 40.9 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/cascade_rcnn_r50_fpn_1x.tar) | +| ResNet50-D-FPN | Faster | 2 | 2x | 38.9 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_vd_fpn_2x.tar) | +| ResNet50-D-FPN | Mask | 2 | 2x | 39.8 | 35.4 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_vd_fpn_2x.tar) | +| ResNet101 | Faster | 1 | 1x | 38.3 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_1x.tar) | +| ResNet101-FPN | Faster | 1 | 1x | 38.7 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_fpn_1x.tar) | +| ResNet101-FPN | Faster | 1 | 2x | 39.1 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_fpn_2x.tar) | +| ResNet101-FPN | Mask | 1 | 1x | 39.5 | 35.2 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r101_fpn_1x.tar) | +| ResNet101-D-FPN | Faster | 1 | 1x | 40.0 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_fpn_1x.tar) | +| ResNet101-D-FPN | Faster | 1 | 2x | 40.6 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_fpn_2x.tar) | +| SENet154-D-FPN | Faster | 1 | 1.44x | 43.5 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_se154_fpn_s1x.tar) | +| SENet154-D-FPN | Mask | 1 | 1.44x | 44.0 | 38.7 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_se154_vd_fpn_s1x.tar) | + +### Yolo v3 + +| Backbone | Size | Lr schd | Box AP | Download | +| :-------- | :--: | :-----: | :----: | :-------: | +| DarkNet53 | 608 | 120e | 25.7 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet.tar) | +| MobileNet-V1 | 608 | 120e | 25.7 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1.tar) | +| ResNet34 | 608 | 120e | 25.7 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1.tar) | + +- Notes: Data Augmentation(TODO:Kaipeng) + +### RetinaNet + +| Backbone | Size | Lr schd | Box AP | Download | +| :----------- | :--: | :-----: | :----: | :-------: | +| ResNet50-FPN | 300 | 120e | 36.0 | [model](https://paddlemodels.bj.bcebos.com/object_detection/retinanet_r50_fpn_1x.tar) | +| ResNet101-FPN | 300 | 120e | 37.3 | [model](https://paddlemodels.bj.bcebos.com/object_detection/retinanet_r101_fpn_1x.tar) | + +- Notes: (TODO:Kaipeng) + +### SSD on PascalVOC + +| Backbone | Size | Lr schd | Box AP | Download | +| :----------- | :--: | :-----: | :----: | :-------: | +| MobileNet v1 | 300 | 120e | 25.7 | [model](https://paddlemodels.bj.bcebos.com/object_detection/ssd_mobilenet_v1_voc.tar) | -- GitLab