YOLOv1简介

173 阅读7分钟

计算机视觉是一个迷人的领域,是人工智能的一个高度探索的分支。通过自动化和执行人类视觉独有的动作,计算机视觉使计算机能够从图像或视频中提取高层次的信息并理解物体。你只看一次(YOLO)是一个突破性的物体检测概念,进一步推动了计算机视觉的技术进程。

本文将探讨YOLO的原始版本YOLOv1的概念、它的历史、运作模式、意义以及现实生活中的应用。更进一步,我们将深入探讨YOLOv1相对于其前辈的优势以及较新的模型试图解决的缺点。

什么是YOLO?

2015年,Joseph Redmon、Santosh Divvala、Ross Girshick和Ali Farhadi通过一篇论文闯入计算机视觉领域。在这篇论文中,雷德蒙提出了一种不同的物体检测方法。以前的研究涉及重新利用分类器来检测视觉中的物体。

而YOLO则将物体检测看作是一个回归问题,与相关的类别概率和空间上分离的盒子相关。他们提出了一个模型,不仅速度快,而且可以达到其他实时检测器的两倍平均精度。

YOLOv1是基础模型。YOLOv2、YOLOv3、YOLOv4和Single Shot Multibox Detector是初始模型的改进版。虽然它大规模地简化和快速跟踪了物体检测,但YOLO也有它的不足之处。

YOLO

YOLO是如何工作的?

计算机视觉中的物体检测类似于眼睛如何帮助大脑识别真空中的物体。物体检测涉及识别和确认图像或视频中的物体(属于特定类别)的实例。

物体检测从传统方法发展到深度学习方法,从Viola-Jones检测器、HOG检测器和基于变形部分的模型发展到卷积神经网络和深度卷积网络。

在我们今天所处的深度学习时代,物体检测采取了两面性的方法--两阶段检测和单阶段检测。一般来说,单阶段物体检测模型优先考虑推理速度,而它们的两阶段对应模型则更专注于实现检测精度。

一阶段检测模型包括RetinaNet、YOLO和Single Shot Multibox Detector,而两阶段网络包括Cascade R-CNN、Fast R-CNN和Mask R-CNN。

从论文中,Redmon将物体检测视为一个回归问题。YOLO使用一个唯一的卷积神经网络来预测边界框和类别概率,在一次评估中考虑整个图像。

在一个步骤中,对于一幅图像,YOLO预测了多个边界框、每个框的类别概率,以及所有类别的所有边界框--使其成为一个单阶段检测模型。

与早期的物体检测模型不同,YOLO是通过使用图像中包含物体的高概率区域来定位图像中的物体,它考虑的是整个图像。

YOLOv1

YOLOv1卷积神经网络的基本结构包括两个独立的过程。该网络的初始卷积层从图像中挑出特征,而全连接层则预测输出的概率和坐标。该网络架构仿照GoogLeNet框架进行图像分类。

YOLOv1有24个卷积层,以及两个全连接层。虽然GoogLeNet使用了概念模块,但YOLOv1采用了1×1的还原层与3×3的卷积层配对。

YOLOv1框架将输入图像分割成一个S×S网格。每个网格单元负责检测落在其内的任何物体,预测B的边界框,以及每个框的信心分数。

六个数字(pc、bx、by、bh、bw、c)代表每个边界框。"pc "代表物体在边界框内的信心,"bx、by、bh、bw "代表边界框,"c "代表一个包含类概率的向量。

YOLO速度很快,使用一个简单的管道,在新的图像上运行神经网络,在测试时预测检测结果。基本网络在没有批量处理的情况下以45 fps的速度运行,快速版本(快速YOLO)的速度超过了150 fps。

YOLOv1的速度意味着它可以处理实时视频流的实时处理,延迟低于25毫秒。YOLOv1也非常适合艺术品中的人物检测和野外的实时检测。

YOLOv1的意义

YOLOv1是物体检测技术的一个突破。该网络更直接的性质,它的速度,以及它在全局推理和物体泛化学习方面比老的物体检测模型的优势,使它领先于其他的模型。当在几个数据集上进行训练时,YOLOv1在检测速度、准确性和平均精度方面都超过了它的几个前辈。

YOLOv1的重要性因其学习模型而得到支持,该模型不仅在训练期间统一了图像的所有方面,而且在引入新的输入和新的领域时,它不太可能崩溃。该网络在预测过程中很注重学习可归纳的物体表征和对图像进行全局推理。

YOLOv1与旧的物体检测模型的比较

YOLOv1与基于部件的可变形模型(DPM)的比较

DPM使用滑动窗口方法,提取静态特征,对区域进行分类,并
通过一个不连续的管道
预测
边界框。YOLOv1用
单一的神经网络
取代了这些部分
,训练并优化了检测的特征,从而使
物体检测比DPM
更快、更
精确。

YOLOv1 vs R-CNN

R-CNN采用了一个区域建议,只考虑
含有图像
的高概率的图像段
。相比之下,YOLOv1看的是整个图片。此外,
R-CNN是一个缓慢的两阶段模型,使用许多边界框,而YOLOv1选择较少的
边界框,其统一的方法导致快速的物体检测。

YOLOv1与MultiGrasp的比较

YOLOv1与MultiGrasp有几个相似之处,比如它的边界框预测模型,但更复杂,因为它要确定物体的大小、位置和边界,而且它还必须预测它的类别,这与MultiGrasp不同。

YOLOv1在现实生活中的应用

  • **自动驾驶汽车:**YOLOv1已经证明,它可以实时提供物体检测,其延迟小于25毫秒。像YOLOv1这样快速而准确的实时物体检测模型使计算机可以在没有特殊传感器的情况下驾驶汽车。
  • 追踪系统: 当连接到一个网络摄像头时,YOLOv1像一个实时追踪系统一样实时检测物体。尽管该网络单独检测物体,但由于其概括能力,它对移动物体表现良好。

YOLOv1的不足之处

与较新的模型相比,YOLOv1在某些方面存在不足。首先,该模型对边界框的预测施加了强烈的空间限制,减少了它能预测的附近物体的数量。另外,YOLOv1在处理成群出现的小物体时也很吃力,例如,一群鸟。YOLOv1错误的一个例子是在原始论文中发现的,它将一个在半空中的人识别为一架飞机。

由于YOLOv1在学习预测边界框时使用的是数据,所以当新的和不常见的长宽比出现时,它在概括性方面就很困难。最后,YOLOv1还记录了由于不正确的定位而产生的错误。这些不正确的定位是由损失函数以及它如何处理大小边界框的错误造成的。

较新的YOLO模型(YOLOv2、YOLOv3和YOLOv4)解决了这些问题,在不牺牲速度的情况下提高了物体检测的准确性。尤其是YOLOv4,包含了一袋免费的东西(在不增加推理成本的情况下提高模型性能的方法)和一袋特殊的东西(提高精度和计算成本的方法)。

最后的思考

YOLO的历代模型和其他新的物体检测模型现在在速度和准确性方面都领先于YOLOv1。然而,YOLOv1形成了这些成功的框架,作为一个突破口出现,消除了多个管道,并在创纪录的时间内完成物体检测。

YOLOv1的出现导致了计算机视觉及其在现实生活中的应用的若干进步。