未验证 提交 b127979f 编写于 作者: F Feng Ni 提交者: GitHub

[cherry-pick] add fuse_normalize for ppyoloe smalldet (#6861)

上级 53d08c22
...@@ -41,11 +41,11 @@ PaddleDetection团队提供了针对VisDrone-DET、DOTA水平框、Xview等小 ...@@ -41,11 +41,11 @@ PaddleDetection团队提供了针对VisDrone-DET、DOTA水平框、Xview等小
**注意:** **注意:**
- 使用[SAHI](https://github.com/obss/sahi)切图工具需要首先安装:`pip install sahi`,参考[installation](https://github.com/obss/sahi/blob/main/README.md#installation) - 使用[SAHI](https://github.com/obss/sahi)切图工具需要首先安装:`pip install sahi`,参考[installation](https://github.com/obss/sahi/blob/main/README.md#installation)
- **SLICE_SIZE**表示使用SAHI工具切图后子图的边长大小,**OVERLAP_RATIO**表示切图的子图之间的重叠率,DOTA水平框和Xview数据集均是切图后训练,AP指标为切图后的子图val上的指标。 - **SLICE_SIZE**表示使用SAHI工具切图后子图的边长大小,**OVERLAP_RATIO**表示切图的子图之间的重叠率,DOTA水平框和Xview数据集均是切图后训练,AP指标为切图后的子图val上的指标。
- VisDrone-DET数据集请参照[visdrone](../visdrone),可使用原图训练,也可使用切图后训练。 - VisDrone-DET数据集请参照[visdrone](../visdrone),可使用原图训练,也可使用切图后训练,这上面表格中的指标均是使用VisDrone-DET的val子集做验证而未使用test_dev子集
- PP-YOLOE模型训练过程中使用8 GPUs进行混合精度训练,如果**GPU卡数**或者**batch size**发生了改变,你需要按照公式 **lr<sub>new</sub> = lr<sub>default</sub> * (batch_size<sub>new</sub> * GPU_number<sub>new</sub>) / (batch_size<sub>default</sub> * GPU_number<sub>default</sub>)** 调整学习率。 - PP-YOLOE模型训练过程中使用8 GPUs进行混合精度训练,如果**GPU卡数**或者**batch size**发生了改变,你需要按照公式 **lr<sub>new</sub> = lr<sub>default</sub> * (batch_size<sub>new</sub> * GPU_number<sub>new</sub>) / (batch_size<sub>default</sub> * GPU_number<sub>default</sub>)** 调整学习率。
- 常用训练验证部署等步骤请参考[ppyoloe](../ppyoloe#getting-start) - 常用训练验证部署等步骤请参考[ppyoloe](../ppyoloe#getting-start)
- 自动切图和拼图的推理预测需添加设置`--slice_infer`,具体见下文使用说明 - 自动切图和拼图的推理预测需添加设置`--slice_infer`,具体见下文[模型库使用说明](#模型库使用说明)中的[预测](#预测)[部署](#部署)
- Assembled表示自动切图和拼图。 - Assembled表示自动切图和拼图,参照[2.3 子图拼图评估](#评估)
## 数据集准备 ## 数据集准备
...@@ -280,7 +280,7 @@ CUDA_VISIBLE_DEVICES=0 python deploy/python/infer.py --model_dir=output_inferenc ...@@ -280,7 +280,7 @@ CUDA_VISIBLE_DEVICES=0 python deploy/python/infer.py --model_dir=output_inferenc
首先统计所用数据集标注框的平均宽高占图片真实宽高的比例分布: 首先统计所用数据集标注框的平均宽高占图片真实宽高的比例分布:
```bash ```bash
python slice_tools/box_distribution.py --json_path ../../dataset/DOTA/annotations/train.json --out_img box_distribution.jpg python tools/box_distribution.py --json_path ../../dataset/DOTA/annotations/train.json --out_img box_distribution.jpg
``` ```
- `--json_path` :待统计数据集COCO 格式 annotation 的json文件路径 - `--json_path` :待统计数据集COCO 格式 annotation 的json文件路径
- `--out_img` :输出的统计分布图路径 - `--out_img` :输出的统计分布图路径
...@@ -313,7 +313,7 @@ pip install sahi ...@@ -313,7 +313,7 @@ pip install sahi
#### 基于SAHI切图 #### 基于SAHI切图
```bash ```bash
python slice_tools/slice_image.py --image_dir ../../dataset/DOTA/train/ --json_path ../../dataset/DOTA/annotations/train.json --output_dir ../../dataset/dota_sliced --slice_size 500 --overlap_ratio 0.25 python tools/slice_image.py --image_dir ../../dataset/DOTA/train/ --json_path ../../dataset/DOTA/annotations/train.json --output_dir ../../dataset/dota_sliced --slice_size 500 --overlap_ratio 0.25
``` ```
- `--image_dir`:原始数据集图片文件夹的路径 - `--image_dir`:原始数据集图片文件夹的路径
......
...@@ -20,6 +20,10 @@ TrainReader: ...@@ -20,6 +20,10 @@ TrainReader:
EvalReader: EvalReader:
batch_size: 1 batch_size: 1
TestReader:
batch_size: 1
fuse_normalize: True
epoch: 80 epoch: 80
LearningRate: LearningRate:
......
...@@ -20,6 +20,10 @@ TrainReader: ...@@ -20,6 +20,10 @@ TrainReader:
EvalReader: EvalReader:
batch_size: 1 # only support bs=1 when slice infer batch_size: 1 # only support bs=1 when slice infer
TestReader:
batch_size: 1
fuse_normalize: True
epoch: 80 epoch: 80
LearningRate: LearningRate:
......
...@@ -28,6 +28,10 @@ TrainReader: ...@@ -28,6 +28,10 @@ TrainReader:
EvalReader: EvalReader:
batch_size: 1 batch_size: 1
TestReader:
batch_size: 1
fuse_normalize: True
epoch: 80 epoch: 80
LearningRate: LearningRate:
......
...@@ -28,6 +28,10 @@ TrainReader: ...@@ -28,6 +28,10 @@ TrainReader:
EvalReader: EvalReader:
batch_size: 1 batch_size: 1
TestReader:
batch_size: 1
fuse_normalize: True
epoch: 80 epoch: 80
LearningRate: LearningRate:
......
...@@ -20,6 +20,10 @@ TrainReader: ...@@ -20,6 +20,10 @@ TrainReader:
EvalReader: EvalReader:
batch_size: 1 batch_size: 1
TestReader:
batch_size: 1
fuse_normalize: True
epoch: 80 epoch: 80
LearningRate: LearningRate:
......
...@@ -55,3 +55,4 @@ TestReader: ...@@ -55,3 +55,4 @@ TestReader:
- NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True}
- Permute: {} - Permute: {}
batch_size: 1 batch_size: 1
fuse_normalize: True
...@@ -13,6 +13,10 @@ TrainReader: ...@@ -13,6 +13,10 @@ TrainReader:
EvalReader: EvalReader:
batch_size: 1 batch_size: 1
TestReader:
batch_size: 1
fuse_normalize: True
LearningRate: LearningRate:
base_lr: 0.005 base_lr: 0.005
......
...@@ -62,3 +62,4 @@ TestReader: ...@@ -62,3 +62,4 @@ TestReader:
- NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True}
- Permute: {} - Permute: {}
batch_size: 1 batch_size: 1
fuse_normalize: True
...@@ -20,6 +20,10 @@ TrainReader: ...@@ -20,6 +20,10 @@ TrainReader:
EvalReader: EvalReader:
batch_size: 1 batch_size: 1
TestReader:
batch_size: 1
fuse_normalize: True
epoch: 80 epoch: 80
LearningRate: LearningRate:
......
...@@ -13,6 +13,10 @@ TrainReader: ...@@ -13,6 +13,10 @@ TrainReader:
EvalReader: EvalReader:
batch_size: 1 batch_size: 1
TestReader:
batch_size: 1
fuse_normalize: True
LearningRate: LearningRate:
base_lr: 0.005 base_lr: 0.005
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册