专栏首页深度学习和计算机视觉PP-YOLO何许模型?竟然超越了YOLOv4

PP-YOLO何许模型?竟然超越了YOLOv4

PP-YOLO评估显示出更快的推断(x轴)和更好的准确性(y轴)

PP-YOLO评估指标显示出比现有的最新对象检测模型YOLOv4更高的性能。但是,提出者百度却谦虚的声明:

无意介绍一种新颖的物体检测器。它更像一个配方,它告诉我们如何逐步构建更好的检测器。

接下来让我们来介绍一下PP-YOLO

YOLO发展历程

YOLO最初是由约瑟夫·雷德蒙(Joseph Redmon)创作的,用于检测物体。物体检测是一种计算机视觉技术,它通过在对象周围绘制边框并标识给定框也属于的类标签来对对象进行定位和标记。与大型NLP不同,YOLO设计得很小,可以为设备上的部署提供实时推理速度。

YOLO-9000是约瑟夫·雷德蒙发布的第二个“ YOLOv2”物体检测器,它改进了检测器并强调了该检测器能够推广到世界上任何物体的能力。之后,YOLOv3进一步完善了检测网络,并开始将物体检测过程纳入主流。但是,出于某些原因,约瑟夫·雷德蒙退出了物体检测的游戏。不过,技术的进步不会因为一个人的退出而停止,开源社区接过接力棒,并继续推动YOLO技术向前发展。YOLOv4于今年春天由Alexey AB在YOLO Darknet存储库中发布。YOLOv4主要是其他已知计算机视觉技术的集合,并通过研究过程进行了组合和验证。然后,就在几个月前,发布了YOLOv5。YOLOv5采用了Darknet(基于C)的培训环境,并将网络转换为PyTorch。改进的训练技术进一步提高了模型的性能,并创建了一个出色的,易于使用的开箱即用的对象检测模型。

正在对PP-YOLO进行识别不同果蝇的训练

PP代表什么?

PP是PaddlePaddle(由百度编写的深度学习框架)的缩写。百度提供了他的下载和安装方式,具体地址为:https://www.paddlepaddle.org.cn/,下图是官网的安装界面。

如果PaddlePaddle对您来说是新手,那么我们在同一条船上。PaddlePaddle主要是用Python编写的,看起来类似于PyTorch和TensorFlow。对PaddlePaddle框架的深入研究很有趣,但超出了本文的范围。

PP-YOLO贡献

PP-YOLO的读取方式与YOLOv4非常相似,因为它是计算机视觉中已知的技术的汇总。新颖的贡献是证明这些技术的集成可以提高性能,并提供消融研究,以了解每个步骤对模型的帮助程度。

在我们深入探讨PP-YOLO的贡献之前,有必要回顾一下YOLO检测器的架构。

YOLO检测器的解剖

YOLO检测器分为三个主要部分。

YOLO骨架 — YOLO骨架是一个卷积神经网络,它将图像像素合并以形成不同粒度的特征。主干通常在分类数据集(通常为ImageNet)上进行预训练。

YOLO脖子— YOLO脖子(上面选择了FPN)在传递到预测头之前对ConvNet图层表示进行组合和混合。

YOLO头部 —这是网络中进行边界框和类预测的部分。它由关于类,框和对象的三个YOLO损失函数指导。

现在让我们深入了解PP YOLO贡献

PP-YOLO中的每种技术都会提高边际mAP准确度性能

更换骨架

第一种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意识

PP-YOLO网络添加了一个预测分支,以预测给定对象的模型估计的IOU。在做出是否预测对象的决策时包括IoU意识会提高性能。

网络敏度

旧的YOLO模型不能很好地在锚框区域的边界附近进行预测。定义盒子坐标稍有不同是很有用的,以避免此问题。YOLOv4中也存在此技术。

矩阵NMS

非最大抑制是一种删除候选对象的提议以进行分类的技术。矩阵NMS是一项技术,可以对这些候选预测进行并行排序,从而加快了计算速度。

协调转换

CoordConv受ConvNets仅将(x,y)坐标映射到一个热像素空间所遇到的问题的激励。CoordConv解决方案使卷积网络可以访问其自己的输入坐标。CoordConv干预措施上方标有黄色菱形。有关更多详细信息,请参见CordConv文件。

SPP

空间金字塔池化是主干层之后的一个额外块,用于混合和合并空间特征。也已在YOLOv4和YOLOv5中实现。

更好的预训练骨架

PP YOLO的作者提炼出更大的ResNet模型作为骨干。更好的预训练模型显示也可以改善下游转移学习。

PP-YOLO是最先进的吗?

PP-YOLO胜过2020年4月23日发布的YOLOv4结果。

作者的意图似乎不只是“引入一种新颖的新型检测器”,而是展示了仔细调整对象检测器以最大化性能的过程。在此引用作者原文的介绍:

本文的重点是如何堆叠一些几乎不会影响效率的有效技巧以获得更好的性能……本文无意介绍一种新颖的目标检测器。它更像一个食谱,它告诉您如何逐步构建更好的检测器。我们发现了一些对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)上的讨论。

在V100 GPU上对COCO数据集的PP-YOLO评估(请注意AP_50列)

在V100 GPU上对COCO数据集的YOLOv5评估(请注意AP_50列)

值得注意的是,在YOLOv4中使用的许多技术(例如体系结构搜索和数据增强)在PP YOLO中并未使用。这意味着随着更多的这些技术被组合和集成在一起,在物体检测领域中仍存在发展的空间。

毋庸置疑,这是实施计算机视觉技术的激动人心的时刻。

我应该从YOLOv4或YOLOv5切换到PP-YOLO吗?

PP-YOLO模型显示了最先进的对象检测技术的前景,但是与其他对象检测器相比,这些改进是渐进的,并且是在一个新的框架中编写的。在此阶段,最好的办法是通过在自己的数据集上训练PP-YOLO来开发自己的经验结果。

本文分享自微信公众号 - 小白学视觉(NoobCV),作者:小白

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-08-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • YOLO v4:物体检测的最佳速度和精度

    您只需看一次(YOLO)是快速、准确的单阶段目标检测器。最近发布的YOLO v4与其他目标检测器相比,显示出非常好的结果。

    小白学视觉
  • 每日一题(字符串分割)

    编程是很多偏计算机、人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用。因此小白决定开辟一个新的板块“每日一题”,通过每天一道编程题目来强化...

    小白学视觉
  • CV学习笔记:入坑和进阶必备

    链接:https://zhuanlan.zhihu.com/p/102044405

    小白学视觉
  • JavaScript函数及其prototype

    函数可以通过声明定义,也可以是一个表达式。 (1)函数声明式: 分号是用来分隔可执行JavaScript语句,由于函数声明不是一个可执行语句,所以不以分...

    奋飛
  • TestNG的简单使用

    一枝花算不算浪漫
  • TestNG的简单使用

    一枝花算不算浪漫
  • 用 Wolfram 语言来做2017年高考数学试题之新课标Ⅲ理科卷

    WolframChina
  • 使用 HanLP 统计二元语法中的频次

    计算句子概率值的工具就是语言模型,但是随着句子长度的逐渐增大,语言模型会遇到下面两个问题:

    触摸壹缕阳光
  • js之工厂构造函数模式

    本文为译文,初次翻译,如有误导,请多多包含,如阅读英文,可直接扫文末二维码阅读即可,若想读另外一篇可戳链接理解构造函数与原型对象

    itclanCoder
  • AV1Ecosystem Update: November 2019

    原文https://www.singhkays.com/blog/av1-ecosystem-update-november-2019/

    LiveVideoStack

扫码关注云+社区

领取腾讯云代金券