PP-YOLO的实验评估指标比现有最先进的对象检测模型YOLOv4表现出更好的性能,然而,本文并不打算介绍一种新型的目标检测器,而更像是一个食谱,告诉你如何逐步建立一个更好的探测器。

让我们一起看看。

YOLO发展史

YOLO最初是由Joseph Redmon提出,是用于检测目标的算法。目标检测是一种计算机视觉技术,它通过在目标周围画一个边界框来定位和标记对象,并确定一个给定的框所属的类标签。YOLO和大型NLP transformers不同,它设计得很小,可为设备上的部署提供实时推理速度。

YOLO-9000是Joseph Redmon提出的第二个“YOLOv2”目标探测器,它改进了探测器,并强调了该检测器能够推广到世界上任何物体的能力。

YOLOv3对检测网络做了进一步的改进,并开始将目标检测过程纳入主流。我们现在也在发布关于如何在PyTorch中训练YOLOv3、如何在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代表什么?

PP是百度编写的深度学习框架PaddlePaddle的缩写。

如果你不熟悉Paddle,那我们就在同一条船上了。paddle最初是用Python编写的,它看起来类似于PyTorch和TensorFlow。深入研究paddle框架是很有趣,但这超出了本文的范围。

PP-YOLO贡献

PP-YOLO的论文读起来很像YOLOv4论文,因为它是计算机视觉中已知的技术的汇总。新颖的贡献是证明这些技术的集成可提高性能,并提供消融研究,以研究每一步对模型的帮助程度。

在我们深入研究PP-YOLO的贡献之前,先回顾一下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上的Interp,因此在考虑到最终预测的情况下修改训练损失函数是很有用的。这个修改措施也用在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教程,让你的对象探测器成为现实:

  • 如何在Darknet中训练YOLOv4

    • https://blog.roboflow.ai/training-yolov4-on-a-custom-dataset/

  • 如何在PyTorch中训练YOLOv5

    • https://blog.roboflow.ai/how-to-train-yolov5-on-a-custom-dataset/

参考链接:https://towardsdatascience.com/pp-yolo-surpasses-yolov4-object-

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 mthler」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓

超越YOLOv4的目标检测算法-PP-YOLO相关推荐

  1. 目标检测YOLO实战应用案例100讲-基于改进的YOLOv4柑橘目标检测算法

    目录 基于改进的YOLOX目标检测算法研究 目标检测相关理论基础 2.1 深度学习 2.2 目标检测

  2. 目标检测算法之YOLO

    其它机器学习.深度学习算法的全面系统讲解可以阅读<机器学习-原理.算法与应用>,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造. 书的购买链接 书的勘误,优化,源代码资源 原创声明 ...

  3. 目标检测算法(传统基于深度学习的)

    目标检测算法 最近在学目标检测各类算法,主要分为传统的目标检测方法和基于深度学习的目标检测算法,这里记录了一些基本的算法介绍.下图是目标检测算法的发展历程 传统目标检测方法 分三部分:区域选择–> ...

  4. 使用PyTorch从零开始实现YOLO-V3目标检测算法 (一)

    原文:https://blog.csdn.net/u011520516/article/details/80222743 点击查看博客原文 标检测是深度学习近期发展过程中受益最多的领域.随着技术的进步 ...

  5. 单阶段目标检测算法之YOLOv1详解

    官方网站C语言版本:https://pjreddie.com/darknet/yolov1/ tensorflow版本的代码下载: https://github.com/hizhangp/yolo_t ...

  6. Yolo-Fastest:超超超快的开源ARM实时目标检测算法

    作者丨 qiuqiuqiu@知乎(已授权) 来源 | https://zhuanlan.zhihu.com/p/234506503 编辑 | AI约读社 Github:https://github.c ...

  7. 大盘点|YOLO 系目标检测算法总览

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 YOLO目标检测算法诞生于2015年6月,从出生的那一天起就是"高精度.高效率.高实用性&q ...

  8. YOLO 系目标检测算法家族全景图!

    YOLO目标检测算法诞生于2015年6月,从出生的那一天起就是"高精度.高效率.高实用性"目标检测算法的代名词. 在原作者Joseph Redmon博士手中YOLO经历了三代到YO ...

  9. 项目设计:基于YOLO目标检测算法的安全帽/口罩/汽车/行人/交通标志...检测

    本文将详细介绍YOLO目标检测算法,该算法支持各种目标检测,包括:安全帽.汽车.造价.交通标志......等.  其他毕业设计题目推荐参考: 毕业设计:电子/通信/计算机/物联网专业毕业设计选题参考( ...

最新文章

  1. etcd分布式之消息发布与订阅
  2. yolov3 -tf 解析数据
  3. linux-squirrel
  4. github gitlab BitBucket
  5. php面试hr要看你的项目,昨晚hr给了我一个面试题,说过了就安排我面试
  6. muduo学习笔记 - 第1章 C++多线程系统编程
  7. 如何用ARKit将太阳系装进iPhone(二)
  8. RHEL 8 - 用VM Image Builder构建虚机镜像
  9. 学python多大年龄可以学车_2020想学车的注意,关于学车的年龄问题,你都了解吗?...
  10. 北京成立前沿国际人工智能研究院,李开复出任首任院长
  11. 关于SSH使用的一些经验
  12. 转:Python- 解决PIP下载安装速度慢
  13. 小白高速变大神,零基础菜鸟应该怎么学编程
  14. Gsonformat
  15. 用Tornado实现web聊天室(前端采用vue+bootstrap)
  16. 数据同步工具简单介绍
  17. 贝叶斯数据分析--概论
  18. Web前端学习路线笔记(六)html5
  19. CentOS7安装RabbitMQ(解决guest用户无法登录问题)
  20. ffmpeg分离视频音频流

热门文章

  1. 现有日语初级教材的问题
  2. 互联网公司发布会策划指南(包学包会)
  3. 日本太地町渔民大规模砍杀海豚手段极其残忍
  4. 基于avaSwing开发普通计算器程序 课程设计 大作业源码
  5. 基于JAVA的学生考勤管理系统可行性分析
  6. 癞子版本十三张自动摆牌算法
  7. iOS二次打包操作,App重新签名证书
  8. 中小企业如何差异化“生意表达”,成为最了不起的小企业?
  9. layui的tree如何实现动态加载_layui tree组件如何异步加载数据,动态添加树节点...
  10. 怎么设置电脑定时关机?(教程方法)