点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
标题&作者团队【Happy导语】该文是百度的研究员基于PaddlePaddle而设计了一种高效YOLO系列检测器,它在精度与速度方面双超YOLOv4;同时还给出了各种trick的组合方式,业界良心啊。大家还在等什么,快快去把玩一番咯。
paper:https://arxiv.org/abs/2007.12099
Code: https://github.com/PaddlePaddle/PaddleDetection
目标检测是计算机视觉领域非常重要的一个领域,它在不同应用场景中起重要作用。然而由于硬件的约束,往往需要通过牺牲精度以确保检测器在实际应用的推理速度。因此,目标检测器的高效性与高精度的平衡必须要考虑。本文的目标在于实现一个具有精度与速度相对平衡的可以直接在实际场景中进行应用的检测器,而非提出一种新的检测模型。
考虑到YOLOv3已被广泛应用,作者在YOLOV3的基础上研发了一个新的目标检测器。作者主要尝试不会导致模型参数量与FLOPs急剧增加的情况下,组合不同的trick,在确保检测器推理速度不变前提下尽可能提升模型的精度。由于所有实验均基于PaddlePaddle实现,所以作者将其称之为PP-YOLO。通过组合多种trick,所提PP-YOLO可以达成精度(45.2%mAP)与效率(72.9FPS)的更好均衡并取得了优于EfficientDet与YOLOV4的效果。
不同于YOLOv4,PP-YOLO并未尝试不同的骨干网络与数据增广方法,也并未采用NAS技术搜索超参数。在骨干网络方面,该文直接采用ResNet作为骨干网络;在数据增广方面,作者直接采用了基本的MixUp。一个原因:ResNet被广泛应用且不同框架进行过深度优化,故而具有更好的推理速度;另一个原因:骨干网络与数据增广方法的是相对独立的因素,且与该文的探索的trick不相关,同时已有诸多论文进行过相应研究,故而作者并未进行相关的重复探索。因此作者沿着YOLOv3的路线采用手工方式设置参数,不过作者认为更好的骨干网络、更好的增广方案以及NAS搜索超参数可以进一步提升PP-YOLO的性能。
最终,作者通过各种trick探索,PP-YOLO将COC数据集上的精度由43.5%提升到了45.2%同时具有比YOLOv4更快的推理速度。
基于锚点的单阶段检测器通过包含骨干网络、检测衔接模块(通常为FPN)以及检测头用于分类与定位。作者首先对YOLOv3的结构进行了分析并引入了改进版骨干网络ResNet50-vd-dcn;然后作者引入了可以提升性能且不损失有效性的trick组合。
Backbone 下图给出了YOLOv3的网络架构图,在原始YOLOv3中,骨干网络为DarkNet53并用于提取多尺度特征。在这里作者采用ResNet50-vd替换DarkNet53并作为PP-YOLO的骨干网络。考虑直接替换会损害YOLOv3的性能,作者采用形变卷积替换ResNet50-vd中的某些卷积层。注:DCN并不会导致参数量与FLOPs的增加,但会影响推理速度。因此,为平衡精度与效率,作者仅对最后一个阶段的卷积进行替换。此时骨干网路为ResNet50-vd-dcn,输出特征分别为 。
image-20200724214601970Detection Neck 作者采用FPN构建特征金字塔进行特征的横向连接, 被送入FPN模块,我们采用 表示输出特征,见上图。
Detection Head YOLOv3的检测头非常简单,它包含两个卷积层:3x3卷积后接1x1卷积用于得到最终的预测。预测的输出通道数为 ,其中K表示类别数。在预测的特征图每个位置上赋予三个不同的锚点,对于每个锚点,前K个通道表示K类的预测概率,后续4个通道表示位置,最后通道表示目标得分。对于分类与定位而言,其损失函数分别为CrossEntropyLoss与L1Loss。
在该部分内容中,我们将介绍一下该文用到的trick,这些trick均为已有技术。该文并未提出新颖的检测方法,仅仅聚焦于组合现有trick提升检测的精度且保持速度不变。由于部分trick无法直接用于YOLOv3,故而作者对其进行了调整以适配YOLOv3.
Larger Batch Size 采用更大的batch可以提升训练的稳定性并得到更好的结果,作者将batch从64调整到了196,并同步调整训练机制与学习率;
EMA 在训练过程中,训练参数的滑动平均往往是有益的,已有研究表明:滑动平均参数往往具有比最终模型更优的性能。参数的滑动平均计算方式如下:
注: .
DropBlock 它是一种结构化的丢弃,不同于原文,作者在这里仅对检测头部分添加了DropBlock,因为作者发现对骨干网络添加DropBlock会造成模型的性能损失。
IoU Loss 边界框回归是目标检测非常重要的步骤。在YOLOv3中,L1Loss用于边界框回归。但它并非针对mAP定制,而mAP更依赖于IoU。故IoU以及CIoU、GIoU被提出用于解决该问题。不同于YOLOv4采用IoU损失替换L1损失,作者添加了另外一个分支计算IoU损失。作者发现不同的IoU损失得到的提升是非常相似的,故而作者选择了最基本的IoU损失。
IoU Aware 在YOLOv3中,分类概率与目标得分相乘作为最终的检测置信度,而并未考虑定位精度。为解决该问题,作者添加IoU预测分支度量定位精度,即采用IoU aware损失训练IoU预测分支。在推理阶段,预测IoU与分类概率、目标得分相乘作为最终的预测置信度,并作为后接NMS的输入。该分支会引入额外的计算消耗,大概0.01%的参数量与0.0001%的FLOPs。
Grid Sensitive Grid Sensitive是YOLOv4中引入的一种非常有效的trick。在YOLOv3中,边界框的中心坐标为x和y,此时有:
其中, 分别表示sigmoid函数与整数,s为尺度因子。这种表示表示形式导致它难以预测位于网格边界的边界框的中心。作者通过如下改进解决了该问题:
其中 。该trick引入的FLOPs非常小,可以忽略不计。
Matrix NMS 它是受Soft-NMS启发而得到了一种技术,它可以并行执行并比传统NMS更快。
CoordConv 它可以使得网络具有translation invariance。考虑到它会引入额外的参数与FLOPs,作者仅仅采用CoordConv替换FPN中的1x1卷积与检测头的第一个卷积。
SPP 该模块是恺明大神提出的一种用于目标检测的模块,它将SPM集成入了CNN。YOLOv4采用SPP通过Concat集成不同尺度kernel 最大值池化的结果。尽管SPP不会引入额外参数,但后接卷积的输入通道数会增加。故大约造成2%的额外参数量与1%的FLOPs。
Better Pretrain Model 采用具有更高ImageNet分类精度的骨干网络可以得到更好的检测性能。因此作者采用蒸馏得到的ResNet50-vd模型作为预训练模型。注:这个不会影响检测器的效率。
前面已经把该文的全部核心内容介绍完毕,这里就直接上结果咯。下图给出了不同trick产生的性能增益与参数量、FLOPs、推理速度等的对比。
image-20200724223135188可以看到这样几点:
ResNet50-vd-dcn骨干网路的替换可以得到0.2%mAP的性能增益;
LB+EMB+DropBlock组合可以得到另外的2.3%mAP的性能增益;
IoU损失可以得到0.5%mAP的性能增益;
IoU Aware可以得到0.6%mAP的性能增益;
Grid Sensitive可以得到0.3%mAP的性能增益;
Matrix NMS可以得到0.7%mAP的性能增益;
CoordConv可以得到0.5%mAP的性能增益;
SPP可以得到0.3%mAP的性能增益;
Better ImageNet Pretrain可以得到0.3%mAP的性能增益。
最后,上图给出了所提PP-YOLO与其他方法的性能-推理速度的对比。可以看到:相比YOLOv4,PP-YOLO具有更高的mAP指标,同时具有更快的推理速度。此外,经由TensorRT优化,速度甚至可达[email protected]%mAP。
该文基于PaddlePaddle引入一种新的目标检测器实现,称之为PP-YOLO。相比YOLOv4与EfficientDet,PP-YOLO具有更高的精度更快的推理速度。作者探索了大量的trick,并给出如何组合这些trick提升YOLOv3检测器的精度与速度。
本文仅做学术分享,如有侵权,请联系删文。
推荐阅读:
专辑|相机标定
专辑|3D点云
专辑|SLAM
专辑|深度学习与自动驾驶
专辑|结构光
专辑|事件相机
专辑|OpenCV学习
专辑|学习资源汇总
专辑|招聘与项目对接
专辑|读书笔记
重磅!3DCVer-学术论文写作投稿 交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近1000+星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题