上个月,百度飞桨团队开源了其最新SOTA通用检测模型——PP-YOLOE+,COCO数据集精度达54.7mAP,其l版本相比YOLOv7精度提升1.9%,V100端到端(包含前后处理)推理速度达42.2FPS,文章回顾请戳:
较YOLOv7精度提升1.9%,54.7mAP的PP-YOLOE+强势登场!
通用检测算法在工业质检、遥感图像场景下会表现出误报、低召回等现象。核心问题在于目标小、密集排布且存在旋转角度。为此,飞桨团队基于PP-YOLOE+推出了旋转框检测算法PP-YOLOE-R(Rotate)以及小目标检测方案PP-YOLOE-SOD(Small Object Detection),前者在DOTA1.0数据集上精度达到80.73 mAP,后者在VisDrone-DET数据集上单模型精度达到38.5mAP,均达到了SOTA性能!
PP-YOLOE-R paper链接如下
https://arxiv.org/abs/2211.02386
开源代码链接如下
https://github.com/PaddlePaddle/PaddleDetection
接下来,本文会详细地为大家介绍这两部分的工作,同时,两位模型的作者将直播详解改造思路及细节,欢迎扫码预约并加入技术交流群:
Part 1
算法思路
模型结构
PP-YOLOE-R和PP-YOLOE+的对比
Baseline
Rotated Task Alignment Learning
解耦的角度预测头
使用DFL(Distribution Focal Loss)
进行角度预测
可学习的门控单元
ProbIoU损失函数
部署
部署代码
python tools/export_model.py -c configs/rotate/ppyoloe_r/ppyoloe_r_crn_l_3x_dota.yml -o weights=https://paddledet.bj.bcebos.com/models/ppyoloe_r_crn_l_3x_dota.pdparams trt=True --output_dir inference
Python deploy/python/infer.py --image_file demo/test.png --model_dir=inference/ppyoloe_r_crn_l_3x_dota --run_mode=trt_fp16 --device=gpu
推理结果
Part 2
背景介绍
基于相对尺度的定义
目标边界框的宽高与图像的宽高比例小于一定值
基于绝对尺度的定义
分辨率小于32*32像素的目标。如MS-COCO数据集
像素值范围在[10,50]之间的目标。如DOTA/WIDER FACE数据集
覆盖面积小,有效特征少
小目标下采样后丢失问题,边界框难以回归,模型难以收敛
同类小目标密集,NMS(非极大值抑制)操作将大量正确预测的边界框过滤
小目标检测的数据集少
针对上述问题,飞桨团队基于PP-YOLOE+通用检测模型,从流程和算法上进行了改进,提出了一套小目标专属检测器PP-YOLOE-SOD(Small Object Detection)。
方案解析
PP-YOLOE-SOD
基于切图的小目标检测方案
PP-YOLOE-SOD
基于原图的小目标检测方案
基于向量的DFL回归算法
【精度】
部署
部署代码
导出模型
python tools /export_model.py -c configs/smalldet/ppyoloe_crn_l_80e_sliced_visdrone_640_025.yml -o weights=https://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_80e_sliced_visdrone_640_025.pdparams
使用原图或子图直接推理
python deploy/python/infer.py --model_dir=output_inference/ppyoloe_crn_l_80e_sliced_visdrone_640_025 --image_file=demo.jpg --device=GPU --save_images --threshold= 0. 25
使用原图自动切图并拼图重组结果来推理
python deploy/python/infer.py --model_dir=output_inference/ppyoloe_crn_l_80e_sliced_visdrone_640_025 --image_file=demo.jpg --device=GPU --save_images --threshold= 0. 25 --slice_infer --slice_size 640 640 --overlap_ratio 0. 25 0. 25 --combine_method=nms --match_threshold= 0. 6 --match_metric=ios
结果
同时,我们提供了PP-YOLOE-SOD的实操教程,欢迎大家在线体验!
链接如下
以上就是本次PP-YOLOE-R以及PP-YOLOE-SOD的内容。
https://github.com/PaddlePaddle/PaddleDetection
参考文献
WAVE SUMMIT+2022
上个月,百度飞桨团队开源了其最新SOTA通用检测模型——PP-YOLOE+,COCO数据集精度达54.7mAP,其l版本相比YOLOv7精度提升1.9%,V100端到端(包含前后处理)推理速度达42.2FPS,文章回顾请戳:
较YOLOv7精度提升1.9%,54.7mAP的PP-YOLOE+强势登场!
通用检测算法在工业质检、遥感图像场景下会表现出误报、低召回等现象。核心问题在于目标小、密集排布且存在旋转角度。为此,飞桨团队基于PP-YOLOE+推出了旋转框检测算法PP-YOLOE-R(Rotate)以及小目标检测方案PP-YOLOE-SOD(Small Object Detection),前者在DOTA1.0数据集上精度达到80.73 mAP,后者在VisDrone-DET数据集上单模型精度达到38.5mAP,均达到了SOTA性能!
PP-YOLOE-R paper链接如下
https://arxiv.org/abs/2211.02386
开源代码链接如下
https://github.com/PaddlePaddle/PaddleDetection
接下来,本文会详细地为大家介绍这两部分的工作,同时,两位模型的作者将直播详解改造思路及细节,欢迎扫码预约并加入技术交流群:
Part 1
算法思路
模型结构
PP-YOLOE-R和PP-YOLOE+的对比
Baseline
Rotated Task Alignment Learning
解耦的角度预测头
使用DFL(Distribution Focal Loss)
进行角度预测
可学习的门控单元
ProbIoU损失函数
部署
部署代码
python tools/export_model.py -c configs/rotate/ppyoloe_r/ppyoloe_r_crn_l_3x_dota.yml -o weights=https://paddledet.bj.bcebos.com/models/ppyoloe_r_crn_l_3x_dota.pdparams trt=True --output_dir inference
Python deploy/python/infer.py --image_file demo/test.png --model_dir=inference/ppyoloe_r_crn_l_3x_dota --run_mode=trt_fp16 --device=gpu
推理结果
Part 2
背景介绍
基于相对尺度的定义
目标边界框的宽高与图像的宽高比例小于一定值
基于绝对尺度的定义
分辨率小于32*32像素的目标。如MS-COCO数据集
像素值范围在[10,50]之间的目标。如DOTA/WIDER FACE数据集
覆盖面积小,有效特征少
小目标下采样后丢失问题,边界框难以回归,模型难以收敛
同类小目标密集,NMS(非极大值抑制)操作将大量正确预测的边界框过滤
小目标检测的数据集少
针对上述问题,飞桨团队基于PP-YOLOE+通用检测模型,从流程和算法上进行了改进,提出了一套小目标专属检测器PP-YOLOE-SOD(Small Object Detection)。
方案解析
PP-YOLOE-SOD
基于切图的小目标检测方案
PP-YOLOE-SOD
基于原图的小目标检测方案
基于向量的DFL回归算法
【精度】
部署
部署代码
导出模型
python tools /export_model.py -c configs/smalldet/ppyoloe_crn_l_80e_sliced_visdrone_640_025.yml -o weights=https://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_80e_sliced_visdrone_640_025.pdparams
使用原图或子图直接推理
python deploy/python/infer.py --model_dir=output_inference/ppyoloe_crn_l_80e_sliced_visdrone_640_025 --image_file=demo.jpg --device=GPU --save_images --threshold= 0. 25
使用原图自动切图并拼图重组结果来推理
python deploy/python/infer.py --model_dir=output_inference/ppyoloe_crn_l_80e_sliced_visdrone_640_025 --image_file=demo.jpg --device=GPU --save_images --threshold= 0. 25 --slice_infer --slice_size 640 640 --overlap_ratio 0. 25 0. 25 --combine_method=nms --match_threshold= 0. 6 --match_metric=ios
结果
同时,我们提供了PP-YOLOE-SOD的实操教程,欢迎大家在线体验!
链接如下
以上就是本次PP-YOLOE-R以及PP-YOLOE-SOD的内容。
https://github.com/PaddlePaddle/PaddleDetection
参考文献
WAVE SUMMIT+2022