diff --git a/configs/smalldet/README.md b/configs/smalldet/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d90950628a880045bddd70f209d3ad9b7da0a85d --- /dev/null +++ b/configs/smalldet/README.md @@ -0,0 +1,15 @@ +简体中文 | [English](README.md) + +# PP-YOLOE Smalldet 检测模型 + + +| 模型 | 数据集 | SLICE_SIZE | OVERLAP_RATIO | 类别数 | mAPval
0.5:0.95 | APval
0.5 | 下载链接 | 配置文件 | +|:---------|:---------------:|:---------------:|:---------------:|:------:|:-----------------------:|:-------------------:|:---------:| :-----: | +|PP-YOLOE-l| Xview | 400 | 0.25 | 60 | 14.5 | 26.8 | [下载链接](https://bj.bcebos.com/v1/paddledet/models/ppyoloe_crn_l_xview_400_025.pdparams) | [配置文件](./ppyoloe_crn_l_80e_sliced_xview_400_025.yml) | +|PP-YOLOE-l| DOTA | 500 | 0.25 | 15 | 46.8 | 72.6 | [下载链接](https://bj.bcebos.com/v1/paddledet/models/ppyoloe_crn_l_dota_500_025.pdparams) | [配置文件](./ppyoloe_crn_l_80e_sliced_DOTA_500_025.yml) | + + +**注意:** +- **SLICE_SIZE**表示使用SAHI工具切图后子图的大小(SLICE_SIZE*SLICE_SIZE);**OVERLAP_RATIO**表示切图重叠率。 +- PP-YOLOE模型训练过程中使用8 GPUs进行混合精度训练,如果**GPU卡数**或者**batch size**发生了改变,你需要按照公式 **lrnew = lrdefault * (batch_sizenew * GPU_numbernew) / (batch_sizedefault * GPU_numberdefault)** 调整学习率。 +- 具体使用教程请参考[ppyoloe](../ppyoloe#getting-start)。 diff --git a/configs/smalldet/_base_/DOTA_sliced_500_025_detection.yml b/configs/smalldet/_base_/DOTA_sliced_500_025_detection.yml new file mode 100644 index 0000000000000000000000000000000000000000..100d8cbf17ef78e6cc182e14672147c235896be1 --- /dev/null +++ b/configs/smalldet/_base_/DOTA_sliced_500_025_detection.yml @@ -0,0 +1,20 @@ +metric: COCO +num_classes: 15 + +TrainDataset: + !COCODataSet + image_dir: DOTA_slice_train/train_images_500_025 + anno_path: DOTA_slice_train/train_500_025.json + dataset_dir: dataset/DOTA + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: DOTA_slice_val/val_images_500_025 + anno_path: DOTA_slice_val/val_500_025.json + dataset_dir: dataset/DOTA + +TestDataset: + !ImageFolder + anno_path: dataset/DOTA/DOTA_slice_val/val_500_025.json + dataset_dir: dataset/DOTA/DOTA_slice_val/val_images_500_025 diff --git a/configs/smalldet/_base_/xview_sliced_400_025_detection.yml b/configs/smalldet/_base_/xview_sliced_400_025_detection.yml new file mode 100644 index 0000000000000000000000000000000000000000..b932359db56957b3daca58bbbebc66ff156582b5 --- /dev/null +++ b/configs/smalldet/_base_/xview_sliced_400_025_detection.yml @@ -0,0 +1,20 @@ +metric: COCO +num_classes: 60 + +TrainDataset: + !COCODataSet + image_dir: train_images_400_025 + anno_path: train_400_025.json + dataset_dir: dataset/xview/xview_slic + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: val_images_400_025 + anno_path: val_400_025.json + dataset_dir: dataset/xview/xview_slic + +TestDataset: + !ImageFolder + anno_path: dataset/xview/xview_slic/val_400_025.json + dataset_dir: dataset/xview/xview_slic/val_images_400_025 diff --git a/configs/smalldet/ppyoloe_crn_l_80e_sliced_DOTA_500_025.yml b/configs/smalldet/ppyoloe_crn_l_80e_sliced_DOTA_500_025.yml new file mode 100644 index 0000000000000000000000000000000000000000..6a1429d56b1d8118d0763d3c68931f77267d4704 --- /dev/null +++ b/configs/smalldet/ppyoloe_crn_l_80e_sliced_DOTA_500_025.yml @@ -0,0 +1,36 @@ +_BASE_: [ + './_base_/DOTA_sliced_500_025_detection.yml', + '../runtime.yml', + '../ppyoloe/_base_/optimizer_300e.yml', + '../ppyoloe/_base_/ppyoloe_crn.yml', + '../ppyoloe/_base_/ppyoloe_reader.yml', +] +log_iter: 100 +snapshot_epoch: 10 +weights: output/ppyoloe_crn_l_80e_sliced_DOTA_500_025/model_final + +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_300e_coco.pdparams +depth_mult: 1.0 +width_mult: 1.0 + +TrainReader: + batch_size: 8 + +epoch: 80 +LearningRate: + base_lr: 0.01 + schedulers: + - !CosineDecay + max_epochs: 96 + - !LinearWarmup + start_factor: 0. + epochs: 1 + +PPYOLOEHead: + static_assigner_epoch: -1 + nms: + name: MultiClassNMS + nms_top_k: 10000 + keep_top_k: 500 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/configs/smalldet/ppyoloe_crn_l_80e_sliced_xview_400_025.yml b/configs/smalldet/ppyoloe_crn_l_80e_sliced_xview_400_025.yml new file mode 100644 index 0000000000000000000000000000000000000000..7c9d80ea5ba869e13e5eb19450c041eb5350b65d --- /dev/null +++ b/configs/smalldet/ppyoloe_crn_l_80e_sliced_xview_400_025.yml @@ -0,0 +1,36 @@ +_BASE_: [ + './_base_/xview_sliced_400_025_detection.yml', + '../runtime.yml', + '../ppyoloe/_base_/optimizer_300e.yml', + '../ppyoloe/_base_/ppyoloe_crn.yml', + '../ppyoloe/_base_/ppyoloe_reader.yml', +] +log_iter: 100 +snapshot_epoch: 10 +weights: output/ppyoloe_crn_l_80e_sliced_xview_400_025/model_final + +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_300e_coco.pdparams +depth_mult: 1.0 +width_mult: 1.0 + +TrainReader: + batch_size: 8 + +epoch: 80 +LearningRate: + base_lr: 0.01 + schedulers: + - !CosineDecay + max_epochs: 96 + - !LinearWarmup + start_factor: 0. + epochs: 1 + +PPYOLOEHead: + static_assigner_epoch: -1 + nms: + name: MultiClassNMS + nms_top_k: 10000 + keep_top_k: 500 + score_threshold: 0.01 + nms_threshold: 0.6