PP-YOLOE论文解读


论文: 《PP-YOLOE: An evolved version of YOLO》
github: https://github.com/PaddlePaddle/PaddleDetection/tree/develop

创新点

PP-YOLOE基于之前PP-YOLOv2进行优化,使用anchor-free算法,更强的backbone及neck。配备了CSPRepResStage、ET-head和动态标签分配算法TAL;
PP-YOLOE-l在COCO数据集上,Tesla V100上达到51.4mAP,78.1FPS;超越PP-YOLOv2及YOLOX

算法

PP-YOLOE结构如图2,
在这里插入图片描述

anchor-free

1、每个像素点设置一个anchor;
2、对三个检测头设置相应的上下边界,使得真值框进入相应特征层(即相应head);
3、根据bounding box中心位置选择最近像素作为正样本;
4、预测向量(x,y,w,h)用于回归目标;
这种更改相对于PP-YOLOv2损失0.3AP,但是FPS从68.9提升到69.8;

backbone and neck

在这里插入图片描述

残差连接一方面缓解梯度消失,另一方面也是一种模型聚合方法
dense connection聚合具有不同感受野的中间特征
CSPNet使用跨阶段dense connection降低计算量,且没有精度损失
作者结合residual connections和dense connections提出RepResBlock,用于backbone和neck;
TreeBlock如图3a,调换concat层为element-wise add,如图3b,在推理阶段可重新参数化为RepResBlock,如图3c
与ResNet相似,我们的bakcbone称为CSPRepResNet,由3个卷积层构成的stem和4个stage堆叠构成,CSPRepResStage如图3d;
neck中除去CSPRepResStage中RepResBlock层和ESE层中的shortcut
CSPRepResNet的宽度基线为 ( 64 , 128 , 256 , 512 , 1024 ) (64,128,256,512,1024) (64,128,256,512,1024),深度基线为 ( 3 , 6 , 6 , 3 ) (3,6,6,3) (3,6,6,3);s/m/l/x对于宽度、深度因子如表1
在这里插入图片描述
实验结果如表2;
在这里插入图片描述

TAL

为了进一步克服分类及定位不对齐问题,作者提出TAL,包括动态标签分配,任务对齐损失
根据预测结果,对每个真值框分配动态数量正样本;具体li流程如下:
1、在各个特征层计算gt与预测框之间代价函数; t = s α ∗ u β t=s^\alpha*u^\beta t=sαuβ,其中 α , β \alpha,\beta αβ为配置参数, s s s为预测分类得分, u u u为iou;
2、对于每个gt选择top-k个最大的代价函数对应bbox;
3、选取bbox所使用anchor的中心落在gt内的为正样本;
4、若一个anchor box对应多个gt,则选择gt与预测框iou最大那个预测框对应anchor负责该gt;

通过对齐分类及定位任务,TAL可以获得同时获得高分类得分及准确预测框
对于任务对齐损失,TOOD使用与真值框最大iou作为归一化值,分类损失如式1;
在这里插入图片描述
不同label assign策略实验如表3;
在这里插入图片描述

ET-head

YOLOX中解耦分类分支与回归分支,使得两任务独立,缺少任务特定学习;基于TOOD,改进head,兼顾速度与性能,提出ET-head;.
如图2所示,使用ESE替换TOOD中layer attention层;使用shortcut将分类分支简化;使用DFL层替换回归分支对齐;
对于分类及回归分支分别使用VFL及DFL损失函数;VFL使用目标score加权正样本loss weight; 这使得高IOU的正样本对损失函数贡献相对较大;同时更关注高质量正样本
DFL与VFL都使用关注iou的分类得分,因此训练与推理过程高度一致;
损失函数如式2所示,
在这里插入图片描述

实验

在这里插入图片描述
PP-YOLOE-l在COCO数据集性能达到51.4mAP,78.1FPS,经TensorRT加速,FPS达到149.2;相对于PP-YOLOv2提升1.9AP,加速13.35%;相对于YOLOX提升1.3AP,加速24.96%;

结论

作者基于PP-YOLOv2进行优化,包括可缩放backbone-neck结构(CSPRepResNet)、有效的任务对齐head(ET-head),先进标签分配策略(TAL),精细化目标损失函数(VFL、DFL),这形成高质量目标检测器PP-YOLOE;

### PP-YOLOE 模型简介 PP-YOLOE 是一种基于 PaddlePaddle 实现的目标检测模型,属于 YOLO 系列的进化版本。它在 PP-YOLOv2 的基础上进行了多项优化,包括采用无锚点范式、引入更强大的骨干网络和颈部结构(CSPRepResStage)、以及配备高效的头部设计(ET-head)。此外,该模型还实现了动态标签分配算法 TAL (Task-Aligned Learning),从而显著提升了性能和效率[^2]。 为了满足多样化的应用场景需求,PP-YOLOE 提供了多个规模的预训练模型(S/M/L/X),这些模型可以根据实际硬件资源和精度要求灵活选择。 --- ### PP-YOLOE 使用教程 #### 1. 环境准备 要使用 PP-YOLOE 模型,需先安装必要的依赖环境并配置开发工具链。以下是推荐的操作流程: - 安装 Python(建议版本 >=3.7) - 配置 CUDA 和 cuDNN(如果运行 GPU 版本) - 安装 PaddlePaddle 深度学习框架: ```bash pip install paddlepaddle-gpu==2.4.0 -f https://www.paddlepaddle.org.cn/whl/stable.html ``` - 下载 PP-YOLOE 开源项目代码库: ```bash git clone https://gitcode.com/gh_mirrors/pp/PP-YOLOE.git cd PP-YOLOE ``` - 安装其他依赖项: ```bash pip install -r requirements.txt ``` 以上操作完成后即可进入下一步实验阶段[^1]。 #### 2. 数据集准备 目标检测任务通常需要标注数据支持。对于 COCO 格式的标准数据集可以直接加载;而对于自定义数据,则需要将其转换成兼容格式。具体方法可以参考官方文档中的 `dataset` 文件夹说明。 #### 3. 训练过程 通过修改配置文件来调整超参数设置,并执行如下命令启动训练脚本: ```bash python tools/train.py -c configs/<config_file>.yml --eval ``` 其中 `<config_file>` 表示所选的具体模型配置名称,例如 `"pp_yoloe_s"` 对应小型版模型。 #### 4. 推理测试 完成训练之后可利用保存下来的权重文件进行推理验证效果如何。调用以下指令实现单张图片预测功能演示: ```bash python tools/infer.py \ --weights=output/<model_name>/best_model.pdparams \ --image_dir=demo.jpg \ --output_dir=vis_results/ ``` 上述路径请依据实际情况替换相应位置信息。 --- ### 性能特点总结 相比传统两阶段法或者早期一阶段方案而言,PP-YOLOE 不仅保持简单高效架构优势同时还兼顾高准确率表现,在速度与质量之间取得良好平衡[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值