PP-YOLO系列,均是基于百度自研PaddlePaddle深度学习框架发布的算法,2020年基于YOLOv3改进发布PP-YOLO,2021年发布PP-YOLOv2和移动端检测算法PP-PicoDet,2022年发布PP-YOLOE和PP-YOLOE-R。由于均是一个系列,所以放一起解读,方便对比前后改进地方。
YOLO系列算法解读:
YOLOv1通俗易懂版解读、SSD算法解读、YOLOv2算法解读、YOLOv3算法解读、YOLOv4算法解读、YOLOv5算法解读、YOLOR算法解读、YOLOX算法解读、YOLOv6算法解读、YOLOv7算法解读、YOLOv8算法解读、YOLOv9算法解读、YOLOv10算法解读
PP-YOLO系列算法解读:
PP-YOLO算法解读、PP-YOLOv2算法解读、PP-PicoDet算法解读、PP-YOLOE算法解读、PP-YOLOE-R算法解读
PP-PicoDet(2021.11.1)
论文:PP-PicoDet: A Better Real-Time Object Detector on Mobile Devices
作者:Guanghua Yu, Qinyao Chang, Wenyu Lv, Chang Xu, Cheng Cui, Wei Ji, Qingqing Dang, Kaipeng Deng, Guanzhong Wang, Yuning Du, Baohua Lai, Qiwen Liu, Xiaoguang Hu, Dianhai Yu, Yanjun Ma
链接:https://arxiv.org/abs/2111.00902
代码:https://github.com/PaddlePaddle/PaddleDetection
- 1、neck中改进PAN结构,采用CSP-PAN,用1x1卷积减少参数的情况下提升了特征提取能力,用5x5的深度可分离卷积(depthwise separable convolution)替换了3x3的可分离卷积,提升了感受野的大小。
- 2、采用SimOTA动态标签分配策略,对部分计算细节进行优化。具体来说,使用了变焦损失(VFL)的加权求和与GIoU loss来计算成本矩阵,在不损害效率的前提下提高了准确性。
- 3、提出了基于ShuffleNetV2改进的Enhanced ShuffleNet(ESNet),性能比原版ShuffleNetV2好。
- 4、提出一种改进的单次神经网络检测架构搜索(NAS)流水线,自动查找最优的架构进行目标检测。
本文使用PAN结构获得多层次特征图,使用CSP结构进行相邻特征图之间的特征拼接和融合。具体的使用用1x1卷积减少参数的情况下提升了特征提取能力,用5x5的深度可分离卷积提升感受野大小。具体参考上图CSP-PAN结构图。
在detector head部分,作者也使用5x5的深度可分离卷积提升感受野大小,不像YOLOX解耦了回归分支和分类分支,PP-PicoDet没有将两者解耦,获得的性能相同。
激活函数: 作者将检测算法中的激活函数从ReLU替换为H-Swish,在保持推理时间不变的情况下,性能显著提高。
学习率下降策略: 采用Cosine learning rate decay,余弦学习率平稳下降,在batchsize比较大时,有利于训练过程。
数据增强: 过多的数据增强往往会增加正则化效果,使训练更难以收敛。所以在这项工作中,作者只使用随机翻转、随机裁剪和多尺度调整来进行训练中的数据增强。
在COCO-2017 training集上训练,在COCO-2017 test-dev集上评估。