diff --git a/configs/visdrone/README.md b/configs/visdrone/README.md index 9e2fd9a661efbd826738eef048f955a5156e2315..f59dedd01e2a02c736f28f4cbeaa11fd3950f143 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 a083f919f536393134f2d6483ef24428eff50a74..4a51e696ac6684adcaff42d5b26033d01413ca68 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 0000000000000000000000000000000000000000..6e0abb7bcdddf25cbd92096beb3642454235e5f1 --- /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 ab6336d6654ad7cc0d4fa9c902294e8fcc69e9d0..db3d93d628f8754aac3be50060f17a14c4dda04d 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 0000000000000000000000000000000000000000..1678d3846aeccbafa38045a5edb702732edff975 --- /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]