[论文解读] PP-YOLO: An Effective and Efficient Implementation of Object Detector
PP-YOLO 在 YOLOv3 为基础的检测器上通过一系列技巧提升 mAP,同时保持较高的推理速度,达到 72.9 FPS 下的 COCO AP 45.2%。
Object detection is one of the most important areas in computer vision, which plays a key role in various practical scenarios. Due to limitation of hardware, it is often necessary to sacrifice accuracy to ensure the infer speed of the detector in practice. Therefore, the balance between effectiveness and efficiency of object detector must be considered. The goal of this paper is to implement an object detector with relatively balanced effectiveness and efficiency that can be directly applied in actual application scenarios, rather than propose a novel detection model. Considering that YOLOv3 has been widely used in practice, we develop a new object detector based on YOLOv3. We mainly try to combine various existing tricks that almost not increase the number of model parameters and FLOPs, to achieve the goal of improving the accuracy of detector as much as possible while ensuring that the speed is almost unchanged. Since all experiments in this paper are conducted based on PaddlePaddle, we call it PP-YOLO. By combining multiple tricks, PP-YOLO can achieve a better balance between effectiveness (45.2% mAP) and efficiency (72.9 FPS), surpassing the existing state-of-the-art detectors such as EfficientDet and YOLOv4.Source code is at https://github.com/PaddlePaddle/PaddleDetection.
研究动机与目标
- 为现实部署提供在准确性与速度之间取得平衡的实用目标检测器。
- 利用现有技巧在不显著增加参数量或 FLOPs 的前提下提升检测性能。
- 提供一个基于 YOLOv3 构建更好检测器的配方式指南,且不改变骨干网络或 NAS。
提出的方法
- 将 YOLOv3 的骨干替换为 ResNet50-vd-dcn 以创建更强的基线(ResNet50-vd-dcn 骨干)。
- 将现有技巧(EMA、DropBlock、IoU 损失、IoU 感知、Grid Sensitive、Matrix NMS、CoordConv、SPP、更好的预训练)逐步堆叠并小心整合以保持效率。
- 采用 PaddlePaddle 实现并保持与 YOLOv3 相似的骨干/FPN/头结构,以便部署。
- 添加一个 IoU 感知分支和一个基本的 IoU 损失,使训练与 COCO mAP 评估保持一致。
- 应用高级后处理(Matrix NMS)和坐标增强(Grid Sensitive、CoordConv)以提升定位精度且成本不大。
- 尝试更大的批量大小和 EMA 以稳定训练并提高最终精度。
实验结果
研究问题
- RQ1是否可以将一组经验证的技巧组合起来,在不增加模型规模或 FLOPs 的情况下显著提升 COCO 的 mAP?
- RQ2在 PaddlePaddle 框架中将哪些技巧应用到基于 YOLOv3 的检测器上对准确率提升贡献最大?
- RQ3在 COCO 评估下,PP-YOLO 在速度与精度方面与前沿检测器(如 EfficientDet、YOLOv4)相比如何?
- RQ4使用不同的预训练策略对 PP-YOLO 的最终检测性能有何影响?
主要发现
| 方法 | 骨干 | 尺寸 | FPS (V100) | AP | AP50 | AP75 | APs | APm | APl | 备注 |
|---|---|---|---|---|---|---|---|---|---|---|
| A | Darknet53 的 YOLOv3 | 640 | - | 38.9 | - | - | - | - | - | Darknet53 的 YOLOv3 基线 |
| B | ResNet50-vd-dcn 的 YOLOv3 | 640 | 79.2 | 39.1 | - | - | - | - | - | ResNet50-vd-dcn 骨干的基线 |
| C | B + LB + EMA + DropBlock | 640 | 79.2 | 41.4 | - | - | - | - | - | 基线 + 训练增强 |
| D | C + IoU Loss | 640 | 79.2 | 41.9 | - | - | - | - | - | 添加 IoU 损失分支 |
| E | D + IoU Aware | 640 | 74.9 | 42.5 | - | - | - | - | - | 新增 IoU 感知分支 |
| F | E + Grid Sensitive | 640 | 74.8 | 42.8 | - | - | - | - | - | 网格中心解码调整 |
| G | F + Matrix NMS | 640 | 74.8 | 43.5 | - | - | - | - | - | 用 Matrix NMS 替代 NMS |
| H | G + CoordConv | 640 | 74.1 | 44.0 | - | - | - | - | - | 在某些层添加 CoordConv |
| I | H + SPP | 640 | 72.9 | 44.3 | - | - | - | - | - | 添加空间金字塔池化 |
| J | I + Better ImageNet Pretrain | 640 | 72.9 | 44.6 | - | - | - | - | - | 蒸馏 ResNet50-vd 预训练 |
- 将 YOLOv3 的骨干替换为 ResNet50-vd-dcn 可获得更强的基线,FLOPs 显著降低、推理更快,比 DarkNet-53 同时保持具有竞争力的精度。
- 按顺序增加技巧使 mAP 从 39.1% 提升到 44.0%(在最佳配置下进一步达到 45.2%),而参数量或 FLOPs 并未显著增加。
- IoU 损失、IoU 感知和 Grid Sensitive 在推理成本极低的情况下带来显著的 mAP 提高;Matrix NMS 相对于贪心 NMS 提升了 AP。
- CoordConv 与 SPP 提供额外的小幅 mAP 增量(分别为 0.5% 和 0.3%),时间开销适中。
- 以蒸馏的 ResNet50-vd 作为预训练骨干提供了额外的边际提升(约 0.3% AP)。
- 在 COCO test-dev 上,输入大小 608 的 PP-YOLO 达到 45.2% AP 和 72.9 FPS(V100,batch=1,无 TRT)。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。