&Title
- PP-YOLO: An Effective and Efficient Implementation of Object Detector(2020)
- PP-YOLOv2: A Practical Object Detector(2021)
- 代码
&Summary
目标检测算法的准确性和推理速度不可兼得,本文的工作旨在通过tricks组合来平衡目标检测器的性能以及速度。
- PP-YOLO: 45.2% mAP,速度高达72.9 FPS!FPS和mAP均超越YOLOv4,FPS也远超过EfficientDet!
- PP-YOLOv2: 在同等速度下,精度超越 YOLOv5!相较 于 PP-YOLO,v2 版本在 COCO 2017 test-dev 上的精度提升了 3.6%,由 45.9% 提升到了 49.5%;在 640*640 的输入尺寸下,FPS 达到 68.9FPS,而采用 TensorRT 加速的话,FPS 更是达到了 106.5!这样的性能,超越了当前所有同等计算量下的检测器,包括 YOLOv4-CSP 和 YOLOv5l !如果将骨架网络从 ResNet50 更换为 ResNet101,PP-YOLOv2 的优势则更为显著:mAP 达到 50.3%,速度比同计算量的 YOLOv5x 高出了 15.9%。
- PP-YOLO Tiny: 体积只有 1.3M 的 PP-YOLO Tiny(得益于 PaddleSlim 飞桨模型压缩工具的能力),比 YOLO-Fastest 更轻、更快!这样超超超轻量的算法面世,更是很好的满足了产业里大量边缘、轻量化、低成本芯片上使用目标检测算法的种种诉求!
本文大多来自网上博客整理的内容(其实跟论文本身差不多),后续会细读代码,把每个trick怎么做的进行介绍
&PP-YOLO
yolov4,5模型是基于yolo3算法改进得来。但PPYOLO并不像yolov4探究各种复杂的backbone和数据增广手段,也不是靠nas暴力搜索得到一个结构。我们在resnet骨干网络系列,数据增广仅靠mixup的条件下,通过合理的tricks组合,不断提升模型性能。
最终与其他模型对比图如下
网络架构
BackBone骨干网络
yolov3使用的是较为大型的darknet53,考虑到resnet更广泛的应用以及多样化的分支,我们选用ResNet50-vd作为整个架构,并将部分卷积层替换成可变形卷积,适当增加了网络复杂度。由于DCN会带来额外的推理时间,我们仅仅在最后一层的3x3卷积替换成DCN卷积
DetectionNeck
这里依然采取的是FPN特征金字塔结构做一个特征融合,类似