YOLOv1(You Only Look Once: Unified, Real-Time Object Detection)论文笔记
You Only Look Once: A Unified Approach for Real-Time Object Detection
网页地址:YOLO
摘要:
我们提出了一种名为YOLO的新方法,在目标检测领域具有重要地位。传统的目标检测流程主要依赖于分类器来进行特征识别。与之不同的是,在我们的系统中,我们采用回归分析来处理边界框的位置以及相应的类别概率。在我们的架构设计中,在单次测试中神经网络能够同时推断出物体的边界及其所属类别。这一系统的独特之处在于它将整个目标检测流程整合成为一个统一的深度学习模型,并通过端到端的方式实现了快速优化其性能表现。相比于现有的先进算法如Faster R-CNN等系统而言,在速度方面我们的改进版本表现出了显著的优势:基础版YOLO能够在每秒45帧图像中完成一次完整的推理任务;而轻量级版本Fast YOLO则能够将速度提升至155帧每秒水平;此外在平均精度(mAP)方面该算法的表现依然优于其他实时性更强的目标检测算法,并且其定位误差明显低于现有技术标准。值得注意的是,在推广到非自然图像场景时如艺术品分析领域的情况下我们的算法依然展现出强大的适应性优势:相比于DPM和R-CNN等主流算法相比它能够在更广泛的场景下实现对复杂物体特征的有效提取并保持了更高的识别准确率
理解:
现有的目标检测系统普遍采用分类器来进行检测。为了识别单个目标,在现有系统中会调用该目标的分类器,并在其在测试图像的不同位置和尺度上执行分类。例如可变形部件模型(DPM)这类系统采用滑动窗口方法,在测试图像的不同位置均匀间隔的位置运行其分类器以完成对图像各部分的识别。而R-CNN则采用了另一种策略,在候选区域提取可能存在目标后通过CNN提取图像特征并结合SVM进行多级分类工作。完成所有类别特征的提取与判别后会对初步结果进行后处理优化工作以去除冗余结果并重新评估各边界框的质量以提高整体识别精度。由于现有系统的各个模块都需要单独训练进而造成了整个流程运行效率低下且难以优化的问题

一种卷积网络能够同时预测多个边界框及其类别概率。YOLO基于整个图像进行训练,并直接优化了检测性能。相较于传统目标检测方法而言,该统一模型具有诸多优势。
- YOLO将目标检测问题视为回归问题,并直接通过像素坐标预测目标边界框的位置及其类别概率。相比之下,在分类框架下需要完成的目标检测流程更为复杂:首先需提取候选区域;其次对这些区域进行分类判断;最后还需对结果进行优化调整。相较于回归模型框架,在这一流程上存在明显劣势:首先流程步骤更为繁琐;其次需要反复对每个候选区域执行分类操作,在计算资源消耗方面投入成本较高。这也是为何YOLO算法运行速度更快的原因之一。
- YOLO采用了整个图像进行特征提取的方式,在此过程中网络能够显著扩大其感受野范围,在整体图像尺度下更容易识别背景区域与物体边缘等关键信息(举个例子来说,在一张包含一头占据图像60%面积的大象图片中,在全局视角下很容易区分大象与背景两者之间的界限;但如果仅从局部片段截取一小部分图像,则难以判断该片段中的对象究竟是大象身体的一部分还是仅仅是背景元素),因此这种设计大大降低了将背景误判为物体的风险。
- YOLO能够有效地学习到目标对象的多维度特征信息,并通过对自然场景图片以及艺术作品图片两方面的训练数据进行充分学习与优化,在这一过程中显著超越了DPM、R-CNN等主流的目标检测算法(尽管论文中并未对此原因做出具体阐述;但这一现象可以从另一个角度加以理解:由于YOLO模型具有较大的感受野范围并能够在更高层次上提取更丰富的特征信息,因而其泛化能力也相应得到显著提升)。这种强大的泛化能力使得YOLO在面对新领域数据或非典型输入样本时仍能保持较好的检测效果。
网络架构:
整合目标检测的各种组件至同一个神经网络架构中。该网络通过整合图像全局特征准确识别各物体边界。此外,该系统能够同时解析多类别场景下的物体检测结果。这表明该模型不仅能够处理整体图像信息,还能够细致分析其中的具体物体。YOLO架构不仅支持端到端训练流程实现实时性目标,并且在保持较高检测精度的同时兼顾了计算效率。
网络将输入图像划分成

对于图像中的目标中心所在的哪一个网格而言,在那个网格中就会承担检测这个目标的任务。每一个网格仅专注于预测

个边框( bounding box)和每个边框对应的置信度分数,如下图所示:

这些置信度分数用于衡量模型对目标存在于边界框内的信心程度(即模型认为边界内存在目标的概率),并且在准确性的体现上主要关注预测边界与真实标注边界的一致性和精确性。

)。通常这个置信度分数等于

若无网格中的目标,则置信度得分为零;若有目标存在,则要求其与预测边界和真实标注边界的一致性

。每个边框有5个预测值:

和置信度。

坐标表示边框中心坐标相对于负责该边框的网格中心坐标的偏移量,取值是
。

表示预测出来边框的宽高和整幅图的宽高比值,取值范围
。置信度等于预测出的边框与真实标注边框的

。每个网格也预测

个类别的条件概率,

这些概率基于网格包含目标这一前提条件得出。我们仅为每个网格单元格预测一组类别概率,并假设每个单元格只负责检测一个物体(换句话说,在同一网格单元内出现多个物体中心的情况可能会导致丢失较小的目标)。在测试阶段,则会通过将类别条件概率与边界框置信度相乘来计算最终结果

这赋予了每个边界框特定类别置信度分数。这些分数不仅考虑了类在框中出现的概率因素...还考虑了坐标预测的准确性。

来评价YOLO在P ASCAL VOC的性能。P ASCAL VOC有20个标签等级,所以

。我们最后的预测是一个

张量。
该模型基于卷积神经网络实现,并在PASCAL VOC检测数据集上进行了评估。该网络的第一卷积层负责从图像中提取特征;随后经过一系列处理后,在全连接层则用于预测输出的概率以及目标坐标;受GoogleNet图像分类模型的设计启发;整个架构包含24个卷积层后跟两个全连接层。

卷积后面加

深度学习框架中的核心组件之一是卷积层,在借鉴了Lin等研究的设计理念后取代了基于Inception模块的设计方案。该网络架构如图所示(采用蓝色数字标注了各层的卷积次数);其总计包含了24个卷积层

该论文开发了一种更快版本的YOLO模型,并旨在超越现有快速目标检测领域的速度基准。Fast YOLO通过精简其卷积神经网络结构(将原本包含24层的人工智能算法缩减至仅9层),并相应减少了滤波器数量(降低至原始数量的四分之一)。在其他训练与测试参数设置上保持一致的前提下
损失函数(重点):

由三部分组成:坐标误差、置信度损失以及类别概率损失。在计算过程中采用的是平方误差作为损失函数,在优化过程中具有较高的可操作性;然而,在分类任务中将定位精度与分类准确性等同处理存在不足(由于定位精度的重要性更高),此外当目标不在特定网格时(即该网格对应的置信度为零),会导致该区域的所有梯度计算结果均会被相邻包含目标区域的梯度所覆盖(从而影响整体优化效果)。针对这一问题提出解决方案:引入加权因子来提升定位精度

,论文取值是5,给不包含目标的置信度误差乘以一个较小的权值

,论文取值是0.5.解释一下,公式中的

表示第

个网格负责的第

判断边框中是否有目标存在。若存在,则对该目标所在的网格区域赋值1;否则赋值0。即仅在目标所在的网格区域内进行误差计算。

表示第

如果某个网格包含目标,则标记为1;否则标记为0。为了减少小误差对大边界和小边界的不同影响其原因在于减少这些差异带来的负面影响从而优化计算效果。”这种方式虽然无法完全消除这种影响但已经尽力减轻其程度因此模型的定位精度仍然存在较大差距。”
网络训练:
基于PASCAL VOC 2007和2012年的标注数据集对网络模型进行了连续135个epoch的系统性训练。在训练过程中,我们采用了以下具体配置:批处理大小设定为64,动量被设定为值,并且采用指数衰减策略,初始学习率为,随后经过逐步提升至。值得注意的是,在实际应用中发现当学习率选择过大时,模型可能会出现梯度不稳定而导致发散的问题。为此,我们采用了分阶段的学习率策略:在第 epochs时将学习率维持于水平;在此之后继续维持于水平直至完成整个训练任务
网络测试:
类似于在训练阶段所述,在测试阶段对测试图像执行预测检测任务仅需建立一个检测网络。实验结果表明,在PASCAL VOC数据集上所提出的网络能够识别出每张图像中的98个边界框及其所属类别概率。值得注意的是其推理过程仅需一次快速计算即可完成与基于分类器的方法相比则无需经历多个步骤以实现目标定位这一独特优势得益于该方法采用了一种创新的空间采样策略通过精细的空间采样策略,在约束边界框预测任务中实现了良好的多样性这种设计使得模型能够精准地定位目标即便是在复杂场景下然而对于一些大型目标或者位于单元格边缘的目标而言单个单元格可能无法充分捕捉到所有细节此时非极大值抑制算法便派上了用场它不仅能够有效减少冗余检测还能提升最终结果的质量尽管相较于R-CNN系列或其他方法而言其作用显得相对次要但经过优化后这一技术仍能带来约2-3%的mAP提升
YOLO的缺点:
YOLO和Fast R-CNN的性能比较:

- YOLO对边界框预测施加了很强的空间限制,因为每个网格单元格只能预测两个框,并且只能有一个类。这种空间约束限制了模型可以预测的邻近对象的数量。比如模型很难检测成群出现的小物体,比如鸟群。
- 模型学习从数据中预测边界框,它很难推广到新的或不寻常的纵横比或配置中的目标。模型也使用相对粗糙的特征来预测边界框,因为我们的架构从输入图像中有多个下采样层(可以这么理解,训练时,图像中楼房都是

的尺寸,突然测试集里面的房子更高,都是

该检测机制可能存在缺陷,在特定条件下可能导致无法检测或误检;尽管网络架构具有多级下采样层以扩大感受野以适应不同尺寸物体的检测需求,但其感知能力仍显不足;我认为这是所有基于卷积神经网络的设计所面临的共同挑战,在这种情况下扩充数据集或采用数据增强技术或许能改善性能表现)。
损失函数对大边界框与小边界框中的误差处理方式相同;对于大边界框的小偏差通常不会引起明显问题;然而对于小边界框的小偏差则可能造成较大的影响;YOLO算法定位精度不佳的根本原因在于这一局限性所致。
损失函数对大边界框与小边界框中的误差处理方式相同;对于大边界框的小偏差通常不会引起明显问题;然而对于小边界框的小偏差则可能造成较大的影响;YOLO算法定位精度不佳的根本原因在于这一局限性所致。
实验结果:

参考文献:
The paper introduces the YOLACT method for real-time object detection (YOLACT: Unified and Real-Time Object Detection) in a unified framework proposed by Redmon et al. in 2015.
