diff --git a/configs/mask_rcnn_r101_fpn_2x.yml b/configs/mask_rcnn_r101_fpn_2x.yml deleted file mode 100644 index 90d3285231fcd0f5854808aab01dba88cc47d716..0000000000000000000000000000000000000000 --- 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 8e4b45a59e59bd0373117b7f651cef5519b9c7d2..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..3b71432b6e835e927f229d825f602947c44460ec --- /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) |