(YOLO v1)You Only Look Once: Unified, Real-Time Object Detection论文阅读笔记
文章目录
- (YOLO)You Only Look Once: Unified, Real-Time Object Detection论文阅读笔记2016
-
- 摘要
- 1. 引言
- 2. 统一检测
- 2.1 网络设计
- 2.2 训练
- 2.3 推断
- 2.4 YOLO的局限性
- 摘要
*3.与现有目标检测方法的比较
*4.实验研究
-
*4.1不同实时检测系统的性能对比
-
*4.2 VOC挑战赛2007数据集上的误差分析
-
*4.3将Fast R-CNN与YOLO框架集成
-
*4.4 VOC挑战赛2012数据集上的评估结果
-
*4.5泛化能力:艺术作品中的人体检测
- 5. Real-Time Detection In The Wild
- 6. Conclusion
(YOLO) You Only Look Once: Unified, Real-Time Object Detection 论文阅读笔记 2016
Abstract
我们开发了一种创新的目标检测框架:YOLO。传统的目标检测工作多依赖于分类器辅助的方法,在此我们则将这一任务建模为空间分离的bbox与对应类别的概率回归问题。通过单一神经网络架构一次性完成图像中所有候选框及其类别概率的预测。
我们的方法运行速度极快,其基础版本即能完成实时处理任务并以45帧每秒的速度高效工作。相较而言,Fast YOLO系统的参数规模仅为传统YOLO的一小部分,其平均检测速度却达到了155帧每秒,性能远超同类实时检测算法的一倍以上。在对比现有SOTA检测算法时发现,尽管在定位精度上存在一定差距,YOLO系统在背景区域误报率方面表现更为出色,能够提取出更具一般性的目标特征表示。值得注意的是,YOLO系统具备良好的迁移适应能力,in将自然图像转换至其他领域进行测试时表现出色
1. Introduction
人类只需观察一张图片即可迅速识别出图片中的目标及其位置。目前的检测系统依赖于分类器来进行识别。为了精确识别物体,在分析多角度和不同尺寸的图像时采用了基于分类器的方法。R-CNN通过区域提议方法筛选候选框,并利用分类器对其进行了详细分析。进一步处理时会去除多余的结果,并仅保留高质量的候选框。最终输出的结果清晰明了。整个流程虽然繁琐但其核心逻辑清晰明确。
我们把目标检测视为一个回归问题,并基于图像像素来获取bbox坐标以及class probabilities。我们的方法只需观察一张图像,并因此得名YOLO。

YOLO相对简单, 如图1所示. 一个卷积网络能够同时预测多个目标及其对应的类别概率. 通过在整个图像范围内进行统一学习与推理流程,YOLO能够在整个图像范围内进行训练以提升检测效率, 相比传统方法, YOLO具有以下几大优势:
- 首先, YOLO运行极为迅速,这一优势得益于其采用了更为简单的处理流程.基础版本的YOLO模型即可实现实时处理能力,最高可达到45帧每秒.而轻量化版本Fast YOLO则进一步提升了性能,其速度可达155 fps,同时在保持实时性的同时实现了其他实时算法 twice 的mAP值.
- 其次, 在预测阶段, YOLO展现出显著的优势.相较于滑动窗口或其他基于区域的方法,YOLO能够全局分析图像内容,从而整合了丰富的上下文信息.相比之下,Fast R-CNN由于难以捕捉到整体场景中的细节特征,容易将背景区域误判为物体.因此,YOLO在减少这类误判方面表现出了显著的优势.
- 第三, YOLO通过学习获得了更加概括的目标表示.这种特性使其在迁移学习时展现出更强的表现力.
相对于目前的SOTA(State-of-the-Art),YOLO在准确率上表现略逊色;尽管如此,在小目标检测任务中其效果仍有待提升;然而该算法能够迅速定位图像中的物体。
2. Unified Detection
我们将目标检测分成几个独立的部分,并将其整合为一个整体。该网络能够基于整幅图像提取特征,并针对每个边界框进行预测。这表明该网络能够对整个图像进行全局性的分析与预测,从而全面考虑了图像中所有的目标物体。
采用划分的方法将输入图像划分为S×S个子区域,在其中任何一个子区域内若目标中心落入该区域,则该子区域将负责对该目标进行检测。
每个网格单元预判B个边界框,并通过置信度来评估这些边界框的质量。 置信度则量化了模型对包含目标的边界框的信任程度,并指示该边界框被预测得如何精确地匹配真实物体。
我们将置信度定义为以下公式:
Pr(Object)*IOU^{truth}_{pred}
其中:Pr(Object)表示该盒子存在目标的概率(无论目标类型如何)。若该格子未存在目标,则将其置信分数设为0;否则将Pr(Object)设为1,并使confidence score等于预测bbox与ground truth交并比(IoU)。
每个 bbox 由五个参数构成:(X, Y, W, H, confidence)。(X,Y) 表示 bbox 的中心相对于单元格坐标的偏移量;我们主要关注于对 x 坐标的分析:假设原始中心位于 cell 中的位置是 X₁(这里 X₁ 为单元格坐标),而预测后的结果位于像素位置 X₂,则将此预测结果转换为带有小数点的形式呈现于单元格坐标系中,则最终计算出 ΔX = (X₂ - X₁),且该目标在整个 cell 区域内被预测时,则 ΔX 和 ΔY 均处于区间 [0, 1] 内)。W 和 H 分别代表 bbox 的宽度与高度的比例系数;这些参数均处于区间 [0, 1] 内,在归一化处理后可使回归计算更加便捷。
每个grid cell预测了C个条件概率,并计算出Pr(Class_i|Object)。针对每个cell而言,则仅需关注一组class的概率分布,并不需要考虑有多少个box的影响。
测试阶段,我们有如下公式:

展示了每个box在类别的特定置信度上所具有的概率和精确度。

基于PASCAL VOC平台,在设置S为7、B为2的情况下进行实验。数据集中包含20个类别,则可得出C等于20的结果。由此可得:其中C代表该单元格对各类别的概率预测。最后的预测结果表现为一个三维张量:其空间维度为7×7×30(其中B×5表示每个样本包含5个边界框坐标信息;而C则代表该单元格对各类别的概率预测)。
2.1 Network Design
该方法在PASCAL VOC数据集上进行了应用。该网络架构借鉴了GoogLeNet的设计理念,在初始卷积层中完成了特征提取任务。随后通过后续的全连接层(共2个),系统能够有效预测目标输出的概率及坐标信息。值得注意的是,在3乘3卷积操作之后直接引入了1乘1卷积操作来实现降维处理,并未像Inception网络那样采用多尺度分支策略。

我们开发了一个简化版的Fast YOLO模型。该模型仅包含9层卷积层,并且各层的通道数量显著减少。与普通YOLO保持一致。
2.2 Training
基于ImageNet进行了模型预训练的基础上
每一层的激活函数我们使用leaky ReLU :

我们对模型输出的平方误差进行了优化工作。尽管这一过程相对简单(即实现快速迭代),但这可能导致最终结果并非最优(即使mAP达到最大值)。然而,在图像中存在许多不含目标的细胞区域(即置信度为零),这样处理后会使这些区域主导整个梯度下降过程)。因此,在实际训练过程中可能会导致模型过早地出现性能下降的情况。
为了补偿这一问题,我们通过引入两个参数来优化模型性能:提高了bbox坐标预测的相关损失,并减少了对不包含目标的boxes的位置置信度预测的相关损失。具体而言,在优化过程中采用了以下两个关键参数:λcoord被设定为5.0(对应坐标损失项),而λnoobj则设置为0.5(对应背景抑制项)。
square error treats errors from both large and small boxes equally, our error metric should consider that some errors in small boxes are more significant than equivalent errors in large boxes. To address this issue, we adopt the square root of the width w and height h of the bounding box for computation.
YOLO会对每个grid cell生成几个 bbox。在训练阶段我们仅希望每个目标仅由一个 bbox 预测来负责,并选取与 ground truth 的 IOU 最大的 bbox 来负责该目标。这带来了整体召回率的提升
训练期间,我们使用下面的loss进行优化:

在训练过程中, 我们设置了batchsize为64, 动量系数为0.9, 并将权重衰减因子设定为5 \times 1e^{-4}. 学习率逐步从1e^{-3}增加至1e^{-2}, 这是因为初始较高的学习率可能导致模型发散的风险较小. 最后将学习率降至1e^{-4}以完成最终的训练任务
防止模型过度拟合
2.3 Inference
在测试环节中,在经过训练的网络架构下,在处理测试图像时
在大多数情况下哪一个网格中存在目标的情况较为明显?网络仅对每个目标预测一个box。然而,在某些情况下较大的目标或靠近网格边缘的目标可能会被多个cell进行定位。我们使用NMS来消除针对同一目标检测到的多个边界框 ,但是这一改进措施带来的提升效果并不显著,在与R-CNN相比时带来了约2-3%的mAP提升。
2.4 Limitations of YOLO
- YOLO仅允许每个cell预测两个bounding box,并且只能识别单一类别。当出现多个小目标时(例如一群鸟),效果较差。
- 我们的模型通过数据进行学习,在面对不常见的尺寸比例以及复杂的环境目标时泛化能力不足。
- 在计算损失函数时,默认对大bounding box的小误差予以轻视而重视小bounding box的较大误差。较大的error在大框中影响较小,在小框中则影响显著。
3. Comparison to Other Detection Systems
**Deformable parts model(DPM)**是一种用于人体姿态估计的方法。DPM采用了多个不同的pipeline模块来实现静态特征提取、区域分类以及目标边界框预测等功能。我们提出的方法将这些关键组件进行了高度集成,在保证精度的同时显著提升了效率
R-CNN是一种基于区域建议的目标检测方法。该系列算法大致分为若干步骤,并整体运行速度较慢。YOLO通过减少同一目标在网格空间中的重复检测提高了效率,并且其所提出的边界框数量显著少于SS算法(Selective Search)的结果。相比之下,在提升计算效率的同时实现了速度与精度的平衡。然而该方法仍未能达到完全实时检测的效果。
OverFeat同样属于one-stage的CNN模型,并非一个联合系统。其主要优化目标是定位而非检测表现。当使用定位器时仅能获取局部信息而无法捕捉全局上下文
4. Experiments
在PASCAL VOC 2007基准测试中,在与其他实时检测系统的对比实验中
4.1 Comparison to Other Real-Time Systems
Fast YOLO能够在PASCAL基准上实现最佳目标检测性能,并达到52.7%的平均精度(mAP)。相比之下,YOLO则可实现更高的平均精度,同时该算法仍具备高效的实时性。
我们同样使用VGG16训练了YOLO,这个模型更加准确,但是比YOLO慢。
R-CNN minus R基于静态bbox proposal替换了SS;因此该方法使网络运行速度加快;然而由于该方法未能实现实时检测目标而导致mAP值有所下降。
对于Faster R-CNN,VGG16版本比YOLO高10%的准确率,但是慢了6倍。

4.2 VOC 2007 Error Analysis
下面对Fast R-CNN和YOLO进行错误分析。
在每一类中,在测试阶段我们仅关注该类别中的top-N预测结果;每个预测则根据以下分类进行处理
- accurate:该分类准确且其IoU值超过0.5
- Specific category: 该分类准确且其IoU值介于0.1至0.5之间
- Resembling category: 该分类较为相似且其IoU值超过0.1
- Incorrect category: 该分类错误但其IoU值仍超过0.1
- Background category: 其IoU值较低(低于0.1)

如图4所示,在YOLO算法中发现了一个关键问题:其在物体定位上的精度不足。具体而言,在定位阶段存在明显的缺陷。相比之下,在检测精度方面表现更为出色的是Fast R-CNN算法;然而,在背景区域的表现仍然欠佳。(False Positive Rate, FPR)为13.6%,这意味着在某些情况下会出现误报情况
如图4所示,在YOLO算法中发现了一个关键问题:其在物体定位上的精度不足。具体而言,在定位阶段存在明显的缺陷。相比之下,在检测精度方面表现更为出色的是Fast R-CNN算法;然而,在背景区域的表现仍然欠佳。(False Positive Rate, FPR)为13.6%,这意味着在某些情况下会出现误报情况
4.3 Combining Fast R-CNN and YOLO
基于上述特性,在针对R-CNN预测出的所有box的情况下
效果如表2所示。

不仅来自YOLO的提升并不是仅仅依赖于简单的组合模型。事实上,在叠加其他R-CNN架构所获得的增长也十分有限。此外,在引入更多的计算资源导致系统响应速度减慢的现象愈发明显的情况下这一发现的实际应用价值受到较大限制
4.4 VOC 2012 Results
在VOC2012测试集上进行实验后发现,在基于区域卷积神经网络(R-CNN)框架下实现的目标检测任务中,YOLO算法获得了57.9%平均精度, 其性能略低于当前领先方法, 其结果与基于VGG16实现的R-CNN方案相似, 如图3所示. 值得注意的是, 该算法在处理小尺寸目标时存在一定的局限性, 无法达到理想的效果. 而将YOLO与Fast R-CNN结合后的模型整体性能令人满意.

4.5 Generalizability: Person Detection in Artwork
我们进行了系统性比较,在Picasso和People-Art两个艺术数据集上评估了不同类型的网络在艺术品中的人的泛化能力。

如图5所示,在迁移学习中
5. Real-Time Detection In The Wild
我们将其接入一个 webcam 并对其处理速度与检测精度进行了考察,并观察所包含的时间是否在合理范围内,并依然保持良好的实时性

6. Conclusion
我们开发了YOLO(You Only Look Once),一种专为目标检测设计的融合体系。该系统便于搭建,并可以直接作用于完整的一幅图像进行处理。与基于分类器的不同方案相比,在线采用关联性检测损失函数作为优化目标的整体框架是一次性完成(end-to-end)而非分阶段演进(stepwise)。
The leading-edge YOLO represents the fastest object detection model. YOLO has achieved state-of-the-art performance in real-time target detection. YOLO is capable of excellent generalization across new domains.
