From 4e3b20b7744e0c8c34a48459ed5e99cda1794644 Mon Sep 17 00:00:00 2001 From: Feng Ni Date: Fri, 17 Jun 2022 09:49:31 +0800 Subject: [PATCH] [cherry-pick] add p2 and largesize visdrone model (#6214) * add p2 and largesize visdrone model, test=document_fix * add size doc, test=document_fix --- configs/visdrone/README.md | 9 +++- .../visdrone/ppyoloe_crn_l_80e_visdrone.yml | 2 +- .../ppyoloe_crn_l_80e_visdrone_largesize.yml | 54 +++++++++++++++++++ .../visdrone/ppyoloe_crn_s_80e_visdrone.yml | 2 +- .../ppyoloe_p2_crn_l_80e_visdrone.yml | 21 ++++++++ 5 files changed, 84 insertions(+), 4 deletions(-) create mode 100644 configs/visdrone/ppyoloe_crn_l_80e_visdrone_largesize.yml create mode 100644 configs/visdrone/ppyoloe_p2_crn_l_80e_visdrone.yml diff --git a/configs/visdrone/README.md b/configs/visdrone/README.md index 9e2fd9a66..f59dedd01 100644 --- a/configs/visdrone/README.md +++ b/configs/visdrone/README.md @@ -7,11 +7,16 @@ PaddleDetection团队提供了针对VisDrone-DET小目标数航拍场景的基 | 模型 | COCOAPI mAPval
0.5:0.95 | COCOAPI mAPval
0.5 | COCOAPI mAPtest_dev
0.5:0.95 | COCOAPI mAPtest_dev
0.5 | MatlabAPI mAPtest_dev
0.5:0.95 | MatlabAPI mAPtest_dev
0.5 | 下载 | 配置文件 | |:---------|:------:|:------:| :----: | :------:| :------: | :------:| :----: | :------:| |PP-YOLOE-s| 23.5 | 39.9 | 19.4 | 33.6 | 23.68 | 40.66 | [下载链接](https://paddledet.bj.bcebos.com/models/ppyoloe_crn_s_80e_visdrone.pdparams) | [配置文件](./ppyoloe_crn_s_80e_visdrone.yml) | -|PP-YOLOE-l| 29.8 | 48.3 | 23.0 | 38.6 | 27.29 | 45.52 | [下载链接](https://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_80e_visdrone.pdparams) | [配置文件](./ppyoloe_crn_l_80e_visdrone.yml) | +|PP-YOLOE-l| 29.2 | 47.3 | 23.5 | 39.1 | 28.00 | 46.20 | [下载链接](https://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_80e_visdrone.pdparams) | [配置文件](./ppyoloe_crn_l_80e_visdrone.yml) | +|PP-YOLOE-P2-l| 30.0 | 49.2 | 24.1 | 40.9 | 28.47 | 48.16 | [下载链接](https://paddledet.bj.bcebos.com/models/ppyoloe_p2_crn_l_80e_visdrone.pdparams) | [配置文件](./ppyoloe_p2_crn_l_80e_visdrone.yml) | +|PP-YOLOE-l largesize| 40.3 | 63.5 | 31.3 | 51.8 | 36.13 | 59.96 | [下载链接](https://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_80e_visdrone_largesize.pdparams) | [配置文件](./ppyoloe_crn_l_80e_visdrone_largesize.yml) | **注意:** - PP-YOLOE模型训练过程中使用8 GPUs进行混合精度训练,如果**GPU卡数**或者**batch size**发生了改变,你需要按照公式 **lrnew = lrdefault * (batch_sizenew * GPU_numbernew) / (batch_sizedefault * GPU_numberdefault)** 调整学习率。 -- 具体使用教程请参考[ppyoloe](../configs/ppyoloe#getting-start)。 +- 具体使用教程请参考[ppyoloe](../ppyoloe#getting-start)。 +- PP-YOLOE-P2是指增加P2层(1/4下采样层)的特征,共输出4个PPYOLOEHead。 +- largesize是指使用以1600尺度为基础的多尺度训练和1920尺度预测,相应的训练batch_size也减小,以速度来换取高精度。 +- MatlabAPI测试是使用官网评测工具[VisDrone2018-DET-toolkit](https://github.com/VisDrone/VisDrone2018-DET-toolkit)。 ## 引用 diff --git a/configs/visdrone/ppyoloe_crn_l_80e_visdrone.yml b/configs/visdrone/ppyoloe_crn_l_80e_visdrone.yml index a083f919f..4a51e696a 100644 --- a/configs/visdrone/ppyoloe_crn_l_80e_visdrone.yml +++ b/configs/visdrone/ppyoloe_crn_l_80e_visdrone.yml @@ -18,7 +18,7 @@ TrainReader: epoch: 80 LearningRate: - base_lr: 0.001 + base_lr: 0.01 schedulers: - !CosineDecay max_epochs: 96 diff --git a/configs/visdrone/ppyoloe_crn_l_80e_visdrone_largesize.yml b/configs/visdrone/ppyoloe_crn_l_80e_visdrone_largesize.yml new file mode 100644 index 000000000..6e0abb7bc --- /dev/null +++ b/configs/visdrone/ppyoloe_crn_l_80e_visdrone_largesize.yml @@ -0,0 +1,54 @@ +_BASE_: [ + 'ppyoloe_crn_l_80e_visdrone.yml', +] +weights: output/ppyoloe_crn_l_80e_visdrone_largesize/model_final + +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_300e_coco.pdparams + +TrainReader: + batch_size: 2 + +LearningRate: + base_lr: 0.0025 + + +worker_num: 2 +eval_height: &eval_height 1920 +eval_width: &eval_width 1920 +eval_size: &eval_size [*eval_height, *eval_width] + +TrainReader: + sample_transforms: + - Decode: {} + - RandomDistort: {} + - RandomExpand: {fill_value: [123.675, 116.28, 103.53]} + - RandomCrop: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [1024, 1088, 1152, 1216, 1280, 1344, 1408, 1472, 1536, 1600, 1664, 1728, 1792, 1856, 1920], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 2 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 2 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 diff --git a/configs/visdrone/ppyoloe_crn_s_80e_visdrone.yml b/configs/visdrone/ppyoloe_crn_s_80e_visdrone.yml index ab6336d66..db3d93d62 100644 --- a/configs/visdrone/ppyoloe_crn_s_80e_visdrone.yml +++ b/configs/visdrone/ppyoloe_crn_s_80e_visdrone.yml @@ -18,7 +18,7 @@ TrainReader: epoch: 80 LearningRate: - base_lr: 0.001 + base_lr: 0.01 schedulers: - !CosineDecay max_epochs: 96 diff --git a/configs/visdrone/ppyoloe_p2_crn_l_80e_visdrone.yml b/configs/visdrone/ppyoloe_p2_crn_l_80e_visdrone.yml new file mode 100644 index 000000000..1678d3846 --- /dev/null +++ b/configs/visdrone/ppyoloe_p2_crn_l_80e_visdrone.yml @@ -0,0 +1,21 @@ +_BASE_: [ + 'ppyoloe_crn_l_80e_visdrone.yml', +] +weights: output/ppyoloe_p2_crn_l_80e_visdrone/model_final + +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_300e_coco.pdparams + +TrainReader: + batch_size: 4 + +LearningRate: + base_lr: 0.005 + +CSPResNet: + return_idx: [0, 1, 2, 3] + +CustomCSPPAN: + out_channels: [768, 384, 192, 64] + +PPYOLOEHead: + fpn_strides: [32, 16, 8, 4] -- GitLab