YOLO—实时对象检测的新视角

近几年,在深入学习的帮助下, 目标检测领域取得了巨大的进步。对象检测是标识图像中的对象并在其周围绘制边界框的任务, 也就是定位它们。在计算机视觉由于其众多的应用从自动驾驶汽车到安全和跟踪是一个非常重要的问题。

以前的对象检测方法通常是让管道按序分段。这会导致每一段完成的任务和最终目标之间的脱节, 最终的目标是在一个图像的对象周围绘制一个紧密的边界框。一个充分利用在联合的方式中侦测错误的终端框架将是一个更好的解决方案,不仅是为了更好地训练模型, 还要提高检测速度。

这就需要YOLO发挥作用。Varun Agrawal对Statsbot团队讲述了,为什么YOLO比其他方法的对象检测更好的理由。

在图像分类领域,深度学习已被证明是一个强大的工具,机器在这项任务中的表现已经达到人类水平。早期的检测方法利用这一能力将对象检测的问题转化为一个分类, 即识别图像所属的对象类别。

通过两个过程来完成这个方法:

  • 第一阶段涉及产生数以万计的提案。它们只是图像中的特定矩形区域, 也称为边界框, 该系统在图像中被认为是类似对象的东西。边框框提案可能围绕图像中的实际对象,并将它筛选为第二阶段的目标。
  • 在第二阶段,图像分类器将对边界框方案中的子图像进行分类, 分类器会认定它是特定的对象类型还是非特定对象或背景。

尽管这两个过程很精准, 但由于所产生的提案数量庞大, 并且在提案的产生和分类方面缺乏联合优化, 因此存在像效率这样的缺陷。这导致了每个阶段无法真正领会更大的图像,而是孤立自己的小问题,因此也限制了它们的表现。

YOLO是什么

YOLO代表“You Only Look Once”,是一种在2016年由Joseph Redmon和Ali Farhadi在华盛顿大学开发的基于深度学习的对象检测算法。

这系统之所以称之YOLO,它不再进入潜在对象的多个子图像,只进入整个图像的深度学习系统一次。然后, 你会一次性得到所有的边界框以及对象类别分类。这就是YOLO的基本设计决策, 对目标检测任务的一个全新的视角。

YOLO的工作方式是将图像细分为NxN的网格, 或更具体的原始论文上的7×7的网格。每个网格单元 (也称为锚点) 表示一个分类器, 它负责在潜在对象周围生成 k个边界框, 其地面中心位于该网格单元 (在论文中k为 2) 中, 并将其分类为正确的对象。

请注意:边界框不限于网格单元格内,它可以在图像的边界内展开,以容纳它认为它负责检测的对象。这意味着在当前版本的YOLO中,系统生成98大小不等的边界框,以容纳场景中的各种对象。

成绩

对于更密集的对象检测, 用户可以根据需要将K或N设置为更高的数字。但是, 在当前配置下, 我们有一个系统,能够在对象周围输出大量的边界框, 并根据图像的空间布局将它们分类为不同的对象类别之一。

这是在推理时通过图像的单次传递完成的。因此, 联合检测和分类有助于更好地优化学习目标 (损失函数) 和实时性能。

事实上, YOLO的结果很有希望。在挑战Pascal VOC检测挑战数据集时, 当每秒运行45帧时,YOLO成功达到平均精度,或者说mAP为63.4 (最高100)。相比之下,更快的R-CNN VGG 16上mAP达到了 73.2, 但每秒只运行7帧, 效率低了6倍。

在下表中可以看到YOLO与其他检测框架的比较。

如果让YOLO牺牲一些精度, 它可以每秒运行155帧, 但是mAP只有52.7。

因此, YOLO 的主要卖点是它在目标检测的实时检测速度上表现良好。这使得它在诸如机器人、自动驾驶汽车和无人驾驶飞机等系统中的应用非常重要(因为时间足够短在这里很重要)。

YOLOv2框架

最近, 同一组研究人员发布了新的YOLOv2框架, 它利用最近在一个深度学习网络设计中的结果, 去建立一个更高效的网络, 并使用Faster-RCNN的主机框架理念,以减轻学习网络问题。

结果显示这个检测系统表现更好,在Pascal VOC检测数据集上mAP达到了78.6的最佳性能 , 而其他系统中, 如改良版的Faster-RCNN (Faster-RCNN ResNet) 和SSD500, 在同一数据集上mAP只达到了76.4和76.8。

关键的区别在于性能速度。最好的YOLOv2模型的运行速度为40FPS,而Faster-RCNN ResNet则为5个FPS。

SSD500运行速度为45fps,具有76.8(与SSD500相同)mAP的YOLOv2分辨率较低的版本的运行速度为67 FPS。这样我们可以看到YOLOv2的设计选择结果能力有多优秀。

总之,YOLO在实时对象检测上表现出色, 这是资源匮乏的深度学习算法时代的重要中心阵地。随着我们迈向更加自动化的未来, 像YOLO和SSD500这样的系统将迎来巨大的进步, 并实现伟大的AI梦想。

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2017-10-28

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张耀琦的专栏

【机器学习入门系列】Regression 回归:案例研究

本文通过预测 Pokemon Go 的 Combat Power (CP) 值的案例介绍机器学习的回归模型,举例介绍了操作步骤,通过方程的好坏最终确定了最好的损...

1.3K1
来自专栏新智元

南开大学提出新物体分割评价指标,相比经典指标错误率降低 69.23%

---- 新智元专栏 作者:范登平(南开大学) 【新智元导读】南开大学媒体计算实验室等研究团队从人类视觉系统对场景结构非常敏感的角度出发,提出一种新颖、...

3218
来自专栏AI研习社

使用 Scikit-learn 理解随机森林

在我以前的一篇文章(https://blog.datadive.net/interpreting-random-forests/)中,我讨论了随机森林如何变成一...

1212
来自专栏机器之心

业界 | 如何达到Kaggle竞赛top 2%?这里有一篇特征探索经验帖

在数值数据上构建任意监督学习模型的一个重要方面是理解特征。查看模型的部分依赖图可帮助理解任意特征对模型输出的影响。

973

自然语言处理指南(第3部分)

在阅读之前,请一定要查看第 1 部分和第 2 部分!

3446
来自专栏AI研习社

从原理到代码:大牛教你如何用 TensorFlow 亲手搭建一套图像识别模块 | AI 研习社

自 2015 年 11 月首次发布以来,TensorFlow 凭借谷歌的强力支持,快速的更新和迭代,齐全的文档和教程,以及上手快且简单易用等诸多的优点,已经在图...

6088
来自专栏数据派THU

一文助你解决90%的自然语言处理问题(附代码)

作者:Emmanuel Ameisen 来源:机器之心 本文为大家解析了人工智能领域中的自然语言如何处理。 自然语言处理(NLP)与计算机视觉(CV)一样,是...

3503
来自专栏AI派

业界 | 如何达到Kaggle竞赛top 2%?这里有一篇特征探索经验帖

在数值数据上构建任意监督学习模型的一个重要方面是理解特征。查看模型的部分依赖图可帮助理解任意特征对模型输出的影响。

853
来自专栏从流域到海域

浅谈应用型机器学习作为一种搜索问题

原文地址:https://machinelearningmastery.com/applied-machine-learning-as-a-search-pro...

28210
来自专栏鸿的学习笔记

Yoshua Bengio关于深度学习结构的综述

深度学习方法旨在学习特征层次,其具有由较低层特征的组合形成的较高层级的特征。在多个抽象级别自动学习特征允许系统去学习将输入直接从数据映射到输出的复杂函数,而不完...

591

扫码关注云+社区