移动paddle_detection
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# FCOS (Fully Convolutional One-Stage Object Detection)
|
||||
|
||||
## Model Zoo on COCO
|
||||
|
||||
| 骨架网络 | 网络类型 | 每张GPU图片个数 | 学习率策略 |推理时间(fps) | Box AP | 下载 | 配置文件 |
|
||||
| :------------------- | :------------- | :-----: | :-----: | :------------: | :-----: | :-----------------------------------------------------: | :-----: |
|
||||
| ResNet50-FPN | FCOS | 2 | 1x | ---- | 39.6 | [download](https://paddledet.bj.bcebos.com/models/fcos_r50_fpn_1x_coco.pdparams) | [config](./fcos_r50_fpn_1x_coco.yml) |
|
||||
| ResNet50-FPN | FCOS + iou | 2 | 1x | ---- | 40.0 | [download](https://paddledet.bj.bcebos.com/models/fcos_r50_fpn_iou_1x_coco.pdparams) | [config](./fcos_r50_fpn_iou_1x_coco.yml) |
|
||||
| ResNet50-FPN | FCOS + DCN | 2 | 1x | ---- | 44.3 | [download](https://paddledet.bj.bcebos.com/models/fcos_dcn_r50_fpn_1x_coco.pdparams) | [config](./fcos_dcn_r50_fpn_1x_coco.yml) |
|
||||
| ResNet50-FPN | FCOS + multiscale_train | 2 | 2x | ---- | 41.8 | [download](https://paddledet.bj.bcebos.com/models/fcos_r50_fpn_multiscale_2x_coco.pdparams) | [config](./fcos_r50_fpn_multiscale_2x_coco.yml) |
|
||||
| ResNet50-FPN | FCOS + multiscale_train + iou | 2 | 2x | ---- | 42.6 | [download](https://paddledet.bj.bcebos.com/models/fcos_r50_fpn_iou_multiscale_2x_coco.pdparams) | [config](./fcos_r50_fpn_iou_multiscale_2x_coco.yml) |
|
||||
|
||||
**注意:**
|
||||
- `+ iou` 表示与原版 FCOS 相比,不使用 `centerness` 而是使用 `iou` 来参与计算loss。
|
||||
- 基于 FCOS 的半监督检测方法 `DenseTeaher` 可以参照[DenseTeaher](../semi_det/denseteacher)去使用,结合无标签数据可以进一步提升检测性能。
|
||||
- PaddleDetection中默认使用`R50-vb`预训练,如果使用`R50-vd`结合[SSLD](../../../docs/feature_models/SSLD_PRETRAINED_MODEL.md)的预训练模型,可进一步显著提升检测精度,同时backbone部分配置也需要做出相应更改,如:
|
||||
```python
|
||||
pretrain_weights: https://paddledet.bj.bcebos.com/models/pretrained/ResNet50_vd_ssld_v2_pretrained.pdparams
|
||||
ResNet:
|
||||
depth: 50
|
||||
variant: d
|
||||
norm_type: bn
|
||||
freeze_at: 0
|
||||
return_idx: [1, 2, 3]
|
||||
num_stages: 4
|
||||
lr_mult_list: [0.05, 0.05, 0.1, 0.15]
|
||||
```
|
||||
|
||||
## Citations
|
||||
```
|
||||
@inproceedings{tian2019fcos,
|
||||
title = {{FCOS}: Fully Convolutional One-Stage Object Detection},
|
||||
author = {Tian, Zhi and Shen, Chunhua and Chen, Hao and He, Tong},
|
||||
booktitle = {Proc. Int. Conf. Computer Vision (ICCV)},
|
||||
year = {2019}
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,48 @@
|
||||
architecture: FCOS
|
||||
pretrain_weights: https://paddledet.bj.bcebos.com/models/pretrained/ResNet50_cos_pretrained.pdparams
|
||||
|
||||
FCOS:
|
||||
backbone: ResNet
|
||||
neck: FPN
|
||||
fcos_head: FCOSHead
|
||||
|
||||
ResNet:
|
||||
depth: 50
|
||||
variant: 'b'
|
||||
norm_type: bn
|
||||
freeze_at: 0 # res2
|
||||
return_idx: [1, 2, 3]
|
||||
num_stages: 4
|
||||
|
||||
FPN:
|
||||
out_channel: 256
|
||||
spatial_scales: [0.125, 0.0625, 0.03125]
|
||||
extra_stage: 2
|
||||
has_extra_convs: True
|
||||
use_c5: False
|
||||
|
||||
FCOSHead:
|
||||
fcos_feat:
|
||||
name: FCOSFeat
|
||||
feat_in: 256
|
||||
feat_out: 256
|
||||
num_convs: 4
|
||||
norm_type: "gn"
|
||||
use_dcn: False
|
||||
fpn_stride: [8, 16, 32, 64, 128]
|
||||
prior_prob: 0.01
|
||||
norm_reg_targets: True
|
||||
centerness_on_reg: True
|
||||
num_shift: 0.5
|
||||
fcos_loss:
|
||||
name: FCOSLoss
|
||||
loss_alpha: 0.25
|
||||
loss_gamma: 2.0
|
||||
iou_loss_type: "giou"
|
||||
reg_weights: 1.0
|
||||
nms:
|
||||
name: MultiClassNMS
|
||||
nms_top_k: 1000
|
||||
keep_top_k: 100
|
||||
score_threshold: 0.025
|
||||
nms_threshold: 0.6
|
||||
@@ -0,0 +1,42 @@
|
||||
worker_num: 2
|
||||
TrainReader:
|
||||
sample_transforms:
|
||||
- Decode: {}
|
||||
- Resize: {target_size: [800, 1333], keep_ratio: True, interp: 1}
|
||||
- NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True}
|
||||
- RandomFlip: {}
|
||||
batch_transforms:
|
||||
- Permute: {}
|
||||
- PadBatch: {pad_to_stride: 128}
|
||||
- Gt2FCOSTarget:
|
||||
object_sizes_boundary: [64, 128, 256, 512]
|
||||
center_sampling_radius: 1.5
|
||||
downsample_ratios: [8, 16, 32, 64, 128]
|
||||
norm_reg_targets: True
|
||||
batch_size: 2
|
||||
shuffle: True
|
||||
drop_last: True
|
||||
use_shared_memory: True
|
||||
|
||||
|
||||
EvalReader:
|
||||
sample_transforms:
|
||||
- Decode: {}
|
||||
- Resize: {target_size: [800, 1333], keep_ratio: True, interp: 1}
|
||||
- NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True}
|
||||
- Permute: {}
|
||||
batch_transforms:
|
||||
- PadBatch: {pad_to_stride: 128}
|
||||
batch_size: 1
|
||||
|
||||
|
||||
TestReader:
|
||||
sample_transforms:
|
||||
- Decode: {}
|
||||
- Resize: {target_size: [800, 1333], keep_ratio: True, interp: 1}
|
||||
- NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True}
|
||||
- Permute: {}
|
||||
batch_transforms:
|
||||
- PadBatch: {pad_to_stride: 128}
|
||||
batch_size: 1
|
||||
fuse_normalize: True
|
||||
@@ -0,0 +1,19 @@
|
||||
epoch: 12
|
||||
|
||||
LearningRate:
|
||||
base_lr: 0.01
|
||||
schedulers:
|
||||
- !PiecewiseDecay
|
||||
gamma: 0.1
|
||||
milestones: [8, 11]
|
||||
- !LinearWarmup
|
||||
start_factor: 0.3333333333333333
|
||||
steps: 500
|
||||
|
||||
OptimizerBuilder:
|
||||
optimizer:
|
||||
momentum: 0.9
|
||||
type: Momentum
|
||||
regularizer:
|
||||
factor: 0.0001
|
||||
type: L2
|
||||
@@ -0,0 +1,16 @@
|
||||
_BASE_: [
|
||||
'../datasets/coco_detection.yml',
|
||||
'../runtime.yml',
|
||||
'_base_/fcos_r50_fpn.yml',
|
||||
'_base_/optimizer_1x.yml',
|
||||
'_base_/fcos_reader.yml',
|
||||
]
|
||||
|
||||
weights: output/fcos_dcn_r50_fpn_1x_coco/model_final
|
||||
|
||||
ResNet:
|
||||
dcn_v2_stages: [1, 2, 3]
|
||||
|
||||
FCOSHead:
|
||||
fcos_feat:
|
||||
use_dcn: True
|
||||
@@ -0,0 +1,9 @@
|
||||
_BASE_: [
|
||||
'../datasets/coco_detection.yml',
|
||||
'../runtime.yml',
|
||||
'_base_/fcos_r50_fpn.yml',
|
||||
'_base_/optimizer_1x.yml',
|
||||
'_base_/fcos_reader.yml',
|
||||
]
|
||||
|
||||
weights: output/fcos_r50_fpn_1x_coco/model_final
|
||||
@@ -0,0 +1,79 @@
|
||||
_BASE_: [
|
||||
'../datasets/coco_detection.yml',
|
||||
'../runtime.yml',
|
||||
'_base_/fcos_r50_fpn.yml',
|
||||
'_base_/optimizer_1x.yml',
|
||||
'_base_/fcos_reader.yml',
|
||||
]
|
||||
|
||||
weights: output/fcos_r50_fpn_iou_1x_coco/model_final
|
||||
|
||||
|
||||
TrainReader:
|
||||
sample_transforms:
|
||||
- Decode: {}
|
||||
- Resize: {target_size: [800, 1333], keep_ratio: True, interp: 1}
|
||||
- NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True}
|
||||
- RandomFlip: {}
|
||||
batch_transforms:
|
||||
- Permute: {}
|
||||
- PadBatch: {pad_to_stride: 32}
|
||||
- Gt2FCOSTarget:
|
||||
object_sizes_boundary: [64, 128, 256, 512]
|
||||
center_sampling_radius: 1.5
|
||||
downsample_ratios: [8, 16, 32, 64, 128]
|
||||
norm_reg_targets: True
|
||||
batch_size: 2
|
||||
shuffle: True
|
||||
drop_last: True
|
||||
use_shared_memory: True
|
||||
|
||||
|
||||
EvalReader:
|
||||
sample_transforms:
|
||||
- Decode: {}
|
||||
- Resize: {target_size: [800, 1333], keep_ratio: True, interp: 1}
|
||||
- NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True}
|
||||
- Permute: {}
|
||||
batch_transforms:
|
||||
- PadBatch: {pad_to_stride: 32}
|
||||
batch_size: 1
|
||||
|
||||
|
||||
TestReader:
|
||||
sample_transforms:
|
||||
- Decode: {}
|
||||
- Resize: {target_size: [800, 1333], keep_ratio: True, interp: 1}
|
||||
- NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True}
|
||||
- Permute: {}
|
||||
batch_transforms:
|
||||
- PadBatch: {pad_to_stride: 32}
|
||||
batch_size: 1
|
||||
fuse_normalize: True
|
||||
|
||||
|
||||
FCOSHead:
|
||||
fcos_feat:
|
||||
name: FCOSFeat
|
||||
feat_in: 256
|
||||
feat_out: 256
|
||||
num_convs: 4
|
||||
norm_type: "gn"
|
||||
use_dcn: False
|
||||
fpn_stride: [8, 16, 32, 64, 128]
|
||||
prior_prob: 0.01
|
||||
norm_reg_targets: True
|
||||
centerness_on_reg: True
|
||||
fcos_loss:
|
||||
name: FCOSLoss
|
||||
loss_alpha: 0.25
|
||||
loss_gamma: 2.0
|
||||
iou_loss_type: "giou"
|
||||
reg_weights: 1.0
|
||||
quality: "iou" # default 'centerness'
|
||||
nms:
|
||||
name: MultiClassNMS
|
||||
nms_top_k: 1000
|
||||
keep_top_k: 100
|
||||
score_threshold: 0.025
|
||||
nms_threshold: 0.6
|
||||
@@ -0,0 +1,91 @@
|
||||
_BASE_: [
|
||||
'../datasets/coco_detection.yml',
|
||||
'../runtime.yml',
|
||||
'_base_/fcos_r50_fpn.yml',
|
||||
'_base_/optimizer_1x.yml',
|
||||
'_base_/fcos_reader.yml',
|
||||
]
|
||||
|
||||
weights: output/fcos_r50_fpn_iou_multiscale_2x_coco_010/model_final
|
||||
|
||||
TrainReader:
|
||||
sample_transforms:
|
||||
- Decode: {}
|
||||
- RandomResize: {target_size: [[640, 1333], [672, 1333], [704, 1333], [736, 1333], [768, 1333], [800, 1333]], keep_ratio: True, interp: 1}
|
||||
- NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True}
|
||||
- RandomFlip: {}
|
||||
batch_transforms:
|
||||
- Permute: {}
|
||||
- PadBatch: {pad_to_stride: 32}
|
||||
- Gt2FCOSTarget:
|
||||
object_sizes_boundary: [64, 128, 256, 512]
|
||||
center_sampling_radius: 1.5
|
||||
downsample_ratios: [8, 16, 32, 64, 128]
|
||||
norm_reg_targets: True
|
||||
batch_size: 2
|
||||
shuffle: True
|
||||
drop_last: True
|
||||
use_shared_memory: True
|
||||
|
||||
|
||||
EvalReader:
|
||||
sample_transforms:
|
||||
- Decode: {}
|
||||
- Resize: {target_size: [800, 1333], keep_ratio: True, interp: 1}
|
||||
- NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True}
|
||||
- Permute: {}
|
||||
batch_transforms:
|
||||
- PadBatch: {pad_to_stride: 32}
|
||||
batch_size: 1
|
||||
|
||||
|
||||
TestReader:
|
||||
sample_transforms:
|
||||
- Decode: {}
|
||||
- Resize: {target_size: [800, 1333], keep_ratio: True, interp: 1}
|
||||
- NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True}
|
||||
- Permute: {}
|
||||
batch_transforms:
|
||||
- PadBatch: {pad_to_stride: 32}
|
||||
batch_size: 1
|
||||
fuse_normalize: True
|
||||
|
||||
|
||||
epoch: 24
|
||||
|
||||
LearningRate:
|
||||
base_lr: 0.01
|
||||
schedulers:
|
||||
- !PiecewiseDecay
|
||||
gamma: 0.1
|
||||
milestones: [16, 22]
|
||||
- !LinearWarmup
|
||||
start_factor: 0.001
|
||||
steps: 1000
|
||||
|
||||
|
||||
FCOSHead:
|
||||
fcos_feat:
|
||||
name: FCOSFeat
|
||||
feat_in: 256
|
||||
feat_out: 256
|
||||
num_convs: 4
|
||||
norm_type: "gn"
|
||||
use_dcn: False
|
||||
fpn_stride: [8, 16, 32, 64, 128]
|
||||
prior_prob: 0.01
|
||||
norm_reg_targets: True
|
||||
centerness_on_reg: True
|
||||
fcos_loss:
|
||||
name: FCOSLoss
|
||||
loss_alpha: 0.25
|
||||
loss_gamma: 2.0
|
||||
iou_loss_type: "giou"
|
||||
reg_weights: 1.0
|
||||
quality: "iou" # default 'centerness'
|
||||
nms:
|
||||
name: MultiClassNMS
|
||||
nms_top_k: 1000
|
||||
keep_top_k: 100
|
||||
score_threshold: 0.025
|
||||
nms_threshold: 0.6
|
||||
@@ -0,0 +1,40 @@
|
||||
_BASE_: [
|
||||
'../datasets/coco_detection.yml',
|
||||
'../runtime.yml',
|
||||
'_base_/fcos_r50_fpn.yml',
|
||||
'_base_/optimizer_1x.yml',
|
||||
'_base_/fcos_reader.yml',
|
||||
]
|
||||
|
||||
weights: output/fcos_r50_fpn_multiscale_2x_coco/model_final
|
||||
|
||||
TrainReader:
|
||||
sample_transforms:
|
||||
- Decode: {}
|
||||
- RandomResize: {target_size: [[640, 1333], [672, 1333], [704, 1333], [736, 1333], [768, 1333], [800, 1333]], keep_ratio: True, interp: 1}
|
||||
- NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True}
|
||||
- RandomFlip: {}
|
||||
batch_transforms:
|
||||
- Permute: {}
|
||||
- PadBatch: {pad_to_stride: 128}
|
||||
- Gt2FCOSTarget:
|
||||
object_sizes_boundary: [64, 128, 256, 512]
|
||||
center_sampling_radius: 1.5
|
||||
downsample_ratios: [8, 16, 32, 64, 128]
|
||||
norm_reg_targets: True
|
||||
batch_size: 2
|
||||
shuffle: True
|
||||
drop_last: True
|
||||
use_shared_memory: True
|
||||
|
||||
epoch: 24
|
||||
|
||||
LearningRate:
|
||||
base_lr: 0.01
|
||||
schedulers:
|
||||
- !PiecewiseDecay
|
||||
gamma: 0.1
|
||||
milestones: [16, 22]
|
||||
- !LinearWarmup
|
||||
start_factor: 0.3333333333333333
|
||||
steps: 500
|
||||
Reference in New Issue
Block a user