点击上方“AI算法与图像处理”,选择加"星标"或“置顶”
git
重磅干货,第一时间送达
github
来源:深度学习与计算机视觉web

PP-YOLO的实验评估指标比现有最早进的对象检测模型YOLOv4表现出更好的性能,然而,本文并不打算介绍一种新型的目标检测器,而更像是一个食谱,告诉你如何逐步创建一个更好的探测器。
YOLO发展史
YOLO最初是由Joseph Redmon提出,是用于检测目标的算法。目标检测是一种计算机视觉技术,它经过在目标周围画一个边界框来定位和标记对象,并肯定一个给定的框所属的类标签。YOLO和大型NLP transformers不一样,它设计得很小,可为设备上的部署提供实时推理速度。
YOLO-9000是Joseph Redmon提出的第二个“YOLOv2”目标探测器,它改进了探测器,并强调了该检测器可以推广到世界上任何物体的能力。
YOLOv3对检测网络作了进一步的改进,并开始将目标检测过程归入主流。咱们如今也在发布关于如何在PyTorch中训练YOLOv三、如何在Keras中训练YOLOv3的教程,并将YOLOv3的性能与EfficientDet(另外一种最早进的检测器)进行比较。
而后约瑟夫·雷德曼出于伦理考虑退出了目标探测的研究。
固然,开源社区接过了指挥棒,继续推进YOLO技术的发展。
YOLOv4由Alexey AB在他的YOLO Darknet存储库中发表。YOLOv4主要是其余已知计算机视觉技术的集合,经过研究过程进行了组合和验证。请看这里来深刻了解YOLOv4。
-
https://blog.roboflow.ai/a-thorough-breakdown-of-yolov4/
以下所示,咱们也提供了一些关于如何在Darknet中训练YOLOv4的很好的训练教程。
-
https://blog.roboflow.ai/training-yolov4-on-a-custom-dataset/
YOLOv5采用了Darknet(基于C)的训练环境,并将网络转换为Pytorch。改进的训练技术进一步提升了模型的性能,并建立了一个很是好用的开箱即用的对象检测模型。从那之后,咱们一直鼓励使用Roboflow的开发人员经过这个YOLOv5训练教程将他们的注意力转向YOLOv5,以造成他们的自定义对象检测器。
PP表明什么?
若是你不熟悉Paddle,那咱们就在同一条船上了。paddle最初是用Python编写的,它看起来相似于PyTorch和TensorFlow。深刻研究paddle框架是颇有趣,但这超出了本文的范围。
PP-YOLO贡献
PP-YOLO的论文读起来很像YOLOv4论文,由于它是计算机视觉中已知的技术的汇总。新颖的贡献是证实这些技术的集成可提升性能,并提供消融研究,以研究每一步对模型的帮助程度。
在咱们深刻研究PP-YOLO的贡献以前,先回顾一下YOLO检测器的体系结构。
解剖YOLO检测器
YOLO Backbone:YOLO Backbone(骨干)是一个卷积神经网络,它将图像像素合并在一块儿以造成不一样粒度的特征。骨干网络一般在分类数据集(一般为ImageNet)上进行预训练。
YOLO Neck:YOLO Neck(上面选择了FPN)在传递到预测头以前对ConvNet图层表示进行组合和混合。
YOLO Head:这是网络中进行边界框和类预测的部分。它由关于类,框和对象的三个YOLO损失函数进行训练。
如今,让咱们深刻了解PP YOLO作出的贡献。
更换骨干网
第一种PP YOLO技术是用Resnet50-vd-dcn ConvNet骨干替换YOLOv3 Darknet53骨干。Resnet是一个更流行的骨干,它的执行优化了更多的框架,而且其参数少于Darknet53。经过交换此骨干能够看到mAP的改进,这对PP YOLO来讲是一个巨大的胜利。
模型参数的EMA
PP-YOLO跟踪网络参数的指数移动平均,以保持模型权重的阴影预测时间。这已经被证实能够提升推理的准确性。
更大的批量
PP-YOLO将批量大小从64增长到192,固然若是有GPU内存限制,这是很难实现。
DropBlock正则化
PP-YOLO在FPN颈部实现DropBlock正则化(在过去,这一般发生在骨干)。在网络的给定步骤中,DropBlock会随机删除一部分训练特征,以指示模型不依赖于关键特征进行检测。
IOU损失
YOLO损失函数不能很好地转换为mAP指标,该指标在计算中大量使用了Union上的Intersection,所以在考虑到最终预测的状况下修改训练损失函数是颇有用的。这个修改措施也用在YOLOv4中。
IoU Aware
PP-YOLO网络添加了一个预测分支,以预测给定对象的模型估计的IOU。在决定是否预测对象时包含此IoU Aware可提升性能。
电网灵敏度
旧的YOLO模型不能很好地在锚框区域的边界附近进行预测,为了不这个问题,能够稍微修改框坐标的定义。YOLOv4中也有这种技术。
矩阵非最大抑制
非最大抑制是一种删除冗余的候选对象来进行分类的技术。矩阵非最大抑制是一种并行排序这些候选预测的技术,它加快了计算速度。
CoordConv
CoordConv受ConvNets中一个问题的启发,即ConvNets仅将(x,y)坐标映射到一个热像素空间。CoordConv解决方案是使卷积网络能够访问其本身的输入坐标。CoordConv干预措施上方标有黄色菱形。有关更多详细信息,请参见CordConv文件。
-
https://arxiv.org/pdf/1807.03247.pdf
SPP
空间金字塔池化是骨干层以后的一个额外块,用于混合和合并空间特征,这还在YOLOv4和YOLOv5中实现。
更好的预训练骨干
PP YOLO的做者提炼出更大的ResNet模型做为骨干。更好的预训练模型也能够改善下游的转移学习。
PP-YOLO是最早进的吗?
PP-YOLO优于2020年4月23日发布的YOLOv4结果。
-
YOLOv4:
https://arxiv.org/pdf/2004.10934.pdf
做者的意图彷佛不仅是“引入一种新颖的新型检测器”,而是代表仔细调整对象检测器以最大化性能的过程。在此处引用做者的文章介绍:
本文的重点是如何堆叠一些几乎不影响效率的有效技巧以得到更好的性能,本文无心介绍一种新颖的目标检测器,它更像一个食谱,它告诉你如何逐步构建更好的检测器。咱们发现了一些对YOLOv3检测器有效的技巧,能够节省开发人员的反复试验时间。最终的PP-YOLO模型以比YOLOv4更快的速度将COCO的mAP从43.5%提升到45.2%
PP-YOLO将YOLOv3模型在COCO对象检测任务上从38.9 mAP提高到44.6 mAP,并将推理FPS从58增长到73。文章中说明了这些指标,优于YOLOv4和EfficientDet的当前发布结果。
在以YOLOv5为基准对PP-YOLO进行基准测试时,YOLOv5彷佛仍在V100上具备最快的推理精度(AP与FPS),可是,YOLOv5论文仍然有待发布,此外研究代表,在YOLOv5 Ultralytics存储库上训练YOLOv4体系结构的性能要优于YOLOv5,而且以可移植的方式,使用YOLOv5进行训练的YOLOv4的性能将优于此处发布的PP-YOLO结果。这些结果仍有待正式发布,但能够追溯到GitHub上的讨论。
-
https://github.com/ultralytics/yolov5/issues/6
值得注意的是,在YOLOv4中使用的许多技术(如架构搜索和数据扩充)并无在ppyolo中使用,这意味着,随着更多这些技术的结合和集成,目标检测的最新技术仍有发展的空间。
毋庸置疑,这是实施计算机视觉技术使人激动人心的时刻。
我应该从YOLOv4或YOLOv5切换到PP-YOLO吗?
PP-YOLO模型显示了最早进的目标检测的前景,但与其余对象检测器相比,改进是渐进的,它是在一个新的框架中进行编写的。在这个阶段中,最好的作法是经过在本身的数据集上训练PP-YOLO来提升本身的实验效果。
同时,我建议你查看如下YOLO教程,让你的对象探测器成为现实:
-
-
https://blog.roboflow.ai/training-yolov4-on-a-custom-dataset/
-
-
https://blog.roboflow.ai/how-to-train-yolov5-on-a-custom-dataset/
参考连接:https://towardsdatascience.com/pp-yolo-surpasses-yolov4-object-

下载1:OpenCV黑魔法算法
在「AI算法与图像处理」公众号后台回复:OpenCV黑魔法,便可下载小编精心编写整理的计算机视觉趣味实战教程微信

在「AI算法与图像处理」公众号后台回复:
CVPR2020
,便可下载1467篇CVPR 2020论文

本文分享自微信公众号 - AI算法与图像处理(AI_study)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。架构