您现在的位置是:首页 >技术交流 >You Only Look Once: 革命性目标检测算法论文解析网站首页技术交流
You Only Look Once: 革命性目标检测算法论文解析
You Only Look Once 全论文完整翻译
You Only Look Once: Unified, Real-Time Object Detection
摘要
我们介绍了一种名为YOLO
的新型目标检测方法。在目标检测的先前工作中,人们将分类器重新应用于执行检测任务。相反,我们将目标检测视为一个回归问题,其中涉及到对空间分离的边界框和相关类别概率的预测。一个单独的神经网络可以直接从完整图像中一次性预测出边界框和类别概率。由于整个检测流程是一个单一网络,因此可以直接进行端到端的优化以提高检测性能。
我们的统一架构非常快速。我们的基础YOLO
模型可以以每秒45
帧的速度实时处理图像。网络的一个较小版本,Fast YOLO
,每秒处理155
帧图像,同时实现了其他实时检测器两倍的mAP
(平均准确率)。与最先进的检测系统相比,YOLO
在定位方面可能会产生更多的错误,但在背景上预测假阳性的可能性较小。最后,YOLO
学习到非常通用的目标表示。在从自然图像推广到艺术品等其他领域时,它的性能超过了其他检测方法,包括DPM
和R-CNN
。
1. Introduction
人类瞥一眼图像就能瞬间知道图像中有哪些物体,它们的位置以及它们之间的相互作用。人类的视觉系统快速而准确,使我们能够在几乎没有意识思考的情况下执行像驾驶这样的复杂任务。快速准确的目标检测算法将使计算机能够在没有专门传感器的情况下驾驶汽车,使辅助设备能够向人类用户传达实时场景信息,并释放出用于通用、响应性机器人系统的潜力。当前的检测系统将分类器重新应用于目标检测。为了检测一个物体,这些系统会在测试图像的各个位置和尺度上采用该物体的分类器进行评估。像可变形部件模型(DPM)这样的系统使用滑动窗口的方法,在整个图像上均匀分布的位置运行分类器[10]。
最近的方法,如R-CNN
,使用区域建议方法首先在图像中生成潜在的边界框,然后在这些提议的框上运行分类器。在分类之后,使用后处理来细化边界框,消除重复检测,并根据场景中的其他对象重新评分这些框[13]。这些复杂的流程很慢,并且难以优化,因为每个组件都必须单独进行训练。
我们将目标检测重新构建为一个单一的回归问题,直接从图像像素到边界框坐标和类别概率。利用我们的系统,您只需对图像进行一次查看(You Only Look Once,即YOLO),即可预测出图像中存在哪些物体以及它们的位置。
YOLO
以其简洁明快而令人耳目一新:请参见图1。一个卷积网络同时预测多个边界框和这些框的类别概率。YOLO
在完整图像上进行训练,并直接优化检测性能。与传统的目标检测方法相比,这种统一模型具有多个优势。首先,YOLO
的速度非常快。由于我们将检测视为一个回归问题,因此不需要复杂的流程。我们只需在测试时在新图像上运行神经网络以预测检测结果。我们的基础网络在Titan X GPU
上以每秒45
帧的速度运行,无需批处理,而快速版本的速度超过150
帧每秒。这意味着我们可以实时处理流媒体视频,并且延迟低于25
毫秒。此外,YOLO
的平均精度比其他实时系统高出两倍以上。要了解我们的系统在网络摄像头上实时运行的演示,请参阅我们的项目网页:http://pjreddie.com/yolo/
图1:YOLO检测系统。使用YOLO处理图像简单而直接。我们的系统(1)将输入图像调整为448×448,(2)在图像上运行一个单独的卷积网络,然后(3)通过模型的置信度对生成的检测结果进行阈值处理。
其次,YOLO
在进行预测时对整个图像进行全局推理。与滑动窗口和基于区域提议的技术不同,YOLO
在训练和测试时可以看到整个图像,因此它隐含地编码了关于类别以及它们外观的上下文信息。快速R-CNN
是一种顶级的检测方法[14],但它会将图像中的背景区域误认为物体,因为它无法看到更大的上下文信息。与快速R-CNN
相比,YOLO在背景错误方面的数量少于一半。
第三,YOLO
学习到了具有通用性的目标表示。当在自然图像上进行训练并在艺术作品上进行测试时,YOLO
在很大程度上优于DPM
和R-CNN
等顶级检测方法。由于YOLO
具有高度的通用性,当应用于新领域或意外输入时,它不太可能出现故障。然而,YOLO
在准确性方面仍然落后于最先进的检测系统。虽然它能够快速识别图像中的物体,但在精确定位一些物体,特别是较小的物体方面仍有困难。我们在实验中进一步研究了这些权衡。
2. 统一的检测
我们将目标检测的独立组件统一为一个神经网络。我们的网络利用整个图像的特征来预测每个边界框。它同时预测图像中所有类别的所有边界框。这意味着我们的网络在整个图像和图像中的所有对象方面进行全局推理。YOLO
的设计实现了端到端训练和实时速度,同时保持高平均精度。我们的系统将输入图像分成一个S×S
的网格。如果一个对象的中心落在一个网格单元内,那么该网格单元就负责检测该对象。
每个网格单元预测B
个边界框以及这些边界框的置信度分数。这些置信度分数反映了模型对该边界框包含目标的自信程度,以及对其预测的边界框准确性的判断。形式上,我们将置信度定义为
P
r
(
O
b
j
e
c
t
)
∗
I
O
U
p
r
e
d
t
r
u
t
h
Pr(Object) * IOU^{truth}_{pred}
Pr(Object)∗IOUpredtruth。如果该单元格内不存在目标,则置信度分数应为零。否则,我们希望置信度分数等于预测边界框与真实边界框之间的交并比(IOU)。
每个边界框包含5
个预测值:x、y、w、h
和置信度
。其中,(x, y)
坐标表示边界框相对于网格单元边界的中心位置。宽度和高度是相对于整个图像进行预测的。最后,置信度预测表示预测边界框与任何真实边界框之间的IOU
(交并比)。
每个网格单元还预测C
个条件类别概率,
P
r
(
C
l
a
s
s
i
∣
O
b
j
e
c
t
)
Pr(Class_i|Object)
Pr(Classi∣Object)。这些概率是在网格单元中包含目标的条件下进行预测的。
我们所有的训练和测试代码都是开源的。还可以下载多种预训练模型。在每个网格单元中,只有一个类别概率集合,而不管边界框的数量B
。在测试时,我们将条件类别概率和个体框置信度预测相乘。
Pr
(
Class
i
∣
Object
)
∗
Pr
(
Object
)
∗
I
O
U
pred
truth
=
Pr
(
Class
i
)
∗
I
O
U
pred
truth
operatorname{Pr}left( ext { Class }_{i} mid ext { Object }
ight) * operatorname{Pr}( ext { Object }) * mathrm{IOU}_{ ext {pred }}^{ ext {truth }}=operatorname{Pr}left( ext { Class }_{i}
ight) * mathrm{IOU}_{ ext {pred }}^{ ext {truth }}
Pr( Class i∣ Object )∗Pr( Object )∗IOUpred truth =Pr( Class i)∗IOUpred truth
这样可以为每个框提供特定类别的置信度得分。这些得分既编码了该类别在框中出现的概率,也反映了预测框与目标之间的匹配程度。
图2:模型。我们的系统将检测建模为回归问题。它将图像分割为一个S×S的网格,并为每个网格单元预测B个边界框、这些边界框的置信度和C个类别概率。这些预测被编码为一个S×S×(B*5+C)的张量。
在PASCAL VOC数据集上评估YOLO
时,我们使用S = 7
,B = 2
。PASCAL VOC
数据集有20
个标注类别,因此C = 20
。我们最终的预测结果是一个7 × 7 × 30
的张量。
2.1 网络设计
我们将这个模型实现为一个卷积神经网络,并在PASCAL VOC检测数据集[9]上进行评估。网络的初始卷积层从图像中提取特征,而全连接层则预测输出的概率和坐标。我们的网络架构受到了用于图像分类的GoogLeNet
模型[34]的启发。我们的网络包括24
个卷积层和2
个全连接层。与GoogLeNet
使用的Inception
模块不同,我们只是使用1×1
的降维层,然后是3×3
的卷积层,类似于Lin等人[22]的方法。完整的网络结构如图3所示。我们还训练了一个快速版本的YOLO
,旨在推动快速目标检测的界限。快速YOLO
使用的神经网络具有较少的卷积层(9个而不是24个),并且这些层中的过滤器也较少。除了网络的大小之外,YOLO
和快速YOLO
之间的所有训练和测试参数都是相同的。
图3:网络架构。我们的检测网络包含24
个卷积层和2
个全连接层。交替使用的1×1
卷积层将特征空间从前面的层中减少。我们在ImageNet分类任务上对卷积层进行预训练,输入图像的分辨率为原来的一半(224 × 224),然后在检测时将分辨率加倍。
我们网络的最终输出是一个大小为7 × 7 × 30
的预测张量。
2.2 训练
我们在ImageNet 1000类竞赛数据集[30]上对卷积层进行预训练。为了预训练,我们使用了图3中的前20
个卷积层,然后是一个平均池化层和一个全连接层。我们将该网络训练约一周,并在ImageNet 2012验证集上实现了88%
的单次裁剪前五准确率,与Caffe Model Zoo中的GoogLeNet模型相当[24]。我们使用Darknet框架进行所有的训练和推理[26]。然后,我们将模型转换为执行检测任务。Ren等人表明,向预训练网络中添加卷积层和全连接层可以提高性能[29]。在他们的例子中,我们添加了4
个卷积层和2
个全连接层,其权重是随机初始化的。由于检测通常需要精细的视觉信息,因此我们将网络的输入分辨率从224×224
增加到448×448
。我们的最后一层同时预测类别概率和边界框坐标。我们通过将边界框的宽度和高度归一化为图像的宽度和高度,使其介于0
和1
之间。我们将边界框的x
和y
坐标参数化为特定网格单元位置的偏移量,因此它们也被限制在0
和1
之间。我们在最后一层使用线性激活函数,而所有其他层使用以下泄漏修正线性激活函数(leaky rectified linear activation):
ϕ ( x ) = { x , if x > 0 0.1 x , otherwise phi(x)=left{egin{array}{ll} x, & ext { if } x>0 \ 0.1 x, & ext { otherwise } end{array} ight. ϕ(x)={x,0.1x, if x>0 otherwise
我们在模型输出中优化总均方误差。我们使用总均方误差是因为它易于优化,但它并不完全符合我们最大化平均精确度的目标。它将定位误差与分类误差等权重处理,这可能并不理想。此外,在每张图像中,许多网格单元不包含任何对象。这将这些单元格的“置信度”分数推向零,往往会压倒包含对象的单元格的梯度。这可能导致模型不稳定,使训练过早发散。
为了解决这个问题,我们增加了不包含对象的边界框坐标预测的损失,并减少了置信度预测的损失。我们使用了两个参数,
λ
c
o
o
r
d
λ_{coord}
λcoord 和
λ
n
o
o
b
j
λ_{noobj}
λnoobj 来实现这一点。我们将
λ
c
o
o
r
d
λ_{coord}
λcoord 设置为5
,将
λ
n
o
o
b
j
λ_{noobj}
λnoobj 设置为0.5
。
平方损失函数同样对大框和小框的误差给予了相等的权重。然而,我们的误差度量应该反映出在大框中的小偏差相比于小框中的小偏差更为微不足道。为了部分解决这个问题,我们预测边界框宽度和高度的平方根,而不是直接预测宽度和高度。
YOLO
在每个网格单元中预测多个边界框。在训练时,我们希望每个物体只有一个边界框预测器负责预测。我们根据当前与真实边界框的IOU
(交并比)最高的预测结果,指定一个预测器来“负责”预测一个物体。这导致了边界框预测器之间的专业化。每个预测器在预测特定大小、长宽比或物体类别方面变得更加准确,从而提高整体召回率。
在训练过程中,我们优化以下多部分损失函数:
在这里, 1 i o b j 1^{obj}_{i} 1iobj表示对象是否出现在第i个单元格中,而 1 i j o b j 1^{obj}_{ij} 1ijobj表示第i个单元格中的第j个边界框预测器对该预测负责。
请注意,损失函数仅在网格单元格中存在对象时(因此需要先前讨论的条件类别概率)对分类错误进行惩罚。如果该预测器对真实边界框负责(即在该网格单元格中具有最高的IOU),则它也只对边界框坐标误差进行惩罚。
我们在来自PASCAL VOC 2007和2012的训练和验证数据集上训练网络大约进行了135
个epoch
。在对2012年的测试中,我们还包括了VOC 2007的测试数据以进行训练。在整个训练过程中,我们使用64
个样本的批量大小,动量为0.9
,衰减为0.0005
。
我们的学习率调度如下:在最初的几个epoch
中,我们将学习率从10^(-3)
缓慢地提升到10^(-2)
。如果我们从较高的学习率开始,由于不稳定的梯度,模型往往会发散。我们继续以10^(-2)
进行75
个epoch的训练,然后以10^(-3)
进行30
个epoch
的训练,最后以10^(-4)
进行30
个epoch的训练。
为了避免过拟合,我们使用了dropout
和广泛的数据增强。在第一个连接层之后,使用丢失率(rate)为0.5
的dropout
层可以防止层之间的共适应性 [18]。对于数据增强,我们引入了最多原始图像尺寸的20%
的随机缩放和平移。我们还随机调整图像在HSV
颜色空间中的曝光和饱和度,调整幅度最多为1.5
倍。
2.3 推理
就像在训练中一样,对于测试图像的检测预测只需要进行一次网络评估。在PASCAL VOC上,网络对每个图像预测98
个边界框,并为每个框预测类别概率。YOLO
在测试时非常快速,因为它只需要进行一次网络评估,而不像基于分类器的方法那样需要多次评估。
网格设计强制边界框预测中的空间多样性。通常可以明确知道对象落在哪个网格单元格中,网络只对每个对象预测一个框。然而,一些大型对象或靠近多个单元格边界的对象可以由多个单元格很好地定位。非极大值抑制可以用于修复这些多个检测结果。虽然对于性能来说不像R-CNN
或DPM
那样关键,但非极大值抑制可以提高2-3%
的mAP
(平均精确度均值)。
2.4 YOLO的局限性
YOLO
对边界框预测施加了强烈的空间约束,因为每个网格单元格只预测两个框,并且只能有一个类别。这种空间约束限制了模型能够预测的附近对象的数量。我们的模型在出现成群的小型对象(如一群鸟)时表现不佳。
由于我们的模型是从数据中学习预测边界框的,因此它在泛化到具有新的或不寻常的纵横比或配置的对象时存在困难。我们的模型还使用相对粗糙的特征来预测边界框,因为我们的架构从输入图像中经过多个下采样层。
最后,尽管我们在一个近似检测性能的损失函数上进行训练,但我们的损失函数对于小边界框和大边界框中的错误处理方式是相同的。大框中的小错误通常是无害的,但小框中的小错误对IOU
有更大的影响。我们主要的误差来源是错误的定位。
3. 与其他检测器的比较
目标检测是计算机视觉中的核心问题。检测流程通常从输入图像中提取一组稳健的特征(如Haar [25]、SIFT [23]、HOG [4]和卷积特征 [6])。然后,分类器 [36, 21, 13, 10] 或定位器 [1, 32] 用于在特征空间中识别对象。这些分类器或定位器可以在整个图像上以滑动窗口方式运行,也可以在图像的某些区域子集上运行 [35, 15, 39]。
我们将YOLO
检测系统与几个顶级的检测框架进行比较,突出了关键的相似性和差异。
可变形部件模型(Deformable parts models,DPM)使用滑动窗口方法进行目标检测[10]。DPM
使用一个不连续的流程来提取静态特征,对区域进行分类,为得分较高的区域预测边界框等等。我们的系统用一个单独的卷积神经网络替代了所有这些不连续的部分。该网络同时进行特征提取、边界框预测、非极大值抑制和上下文推理。与静态特征不同,网络在线训练特征,并对其进行检测任务的优化。我们的统一架构比DPM
更快、更准确。
R-CNN及其变种使用区域提议(region proposals)而不是滑动窗口来在图像中找到对象。Selective Search
[35] 生成潜在的边界框,一个卷积网络提取特征,一个支持向量机(SVM)对边界框进行打分,一个线性模型调整边界框,非极大值抑制(non-max suppression)消除重复检测结果。这个复杂的流程的每个阶段都必须精确地独立调整,并且最终的系统非常缓慢,在测试时每张图像需要超过40
秒的处理时间[14]。
YOLO
与R-CNN
有一些相似之处。每个网格单元格提出潜在的边界框,并使用卷积特征对这些边界框进行评分。然而,我们的系统对网格单元格的提议施加了空间约束,有助于减少对同一对象的多次检测。与Selective Search
生成的约2000
个边界框相比,我们的系统每张图像仅提出了98
个边界框。最后,我们的系统将这些个别组件合并成一个单一的、联合优化的模型。
其他快速检测器如Fast R-CNN
和Faster R-CNN
专注于加速R-CNN
框架,通过共享计算和使用神经网络来提议区域,而不是使用Selective Search
[14] [28]。尽管它们在速度和准确性上相对于R-CNN
有所提升,但仍无法达到实时性能。
许多研究工作着重于加速DPM
流程 [31] [38] [5]。它们通过加速HOG
计算、使用级联和将计算推向GPU
等方法来提高速度。然而,只有30Hz
DPM
[31] 实际上能够实时运行。
与试图优化大型检测流程中的各个组件不同,YOLO
完全舍弃了流程,并且其设计上就具备了快速性。
对于单个类别(如人脸或人体)的检测器可以进行高度优化,因为它们需要处理的变化要少得多 [37]。YOLO
是一个通用目标的检测器,能够同时学习检测多种对象。
Deep MultiBox与R-CNN
不同,Szegedy等人训练了一个卷积神经网络来预测感兴趣区域(regions of interest),而不是使用Selective Search
。MultiBox
也可以通过将置信度预测替换为单个类别预测来进行单个对象检测。然而,MultiBox
无法进行通用的目标检测,仍然只是大型检测流程中的一部分,需要进一步进行图像块分类。YOLO
和MultiBox
都使用卷积网络来预测图像中的边界框,但YOLO
是一个完整的检测系统。
OverFeat是由Sermanet等人训练的卷积神经网络,用于定位并适应该定位器进行检测。OverFeat
能够高效地进行滑动窗口检测,但仍然是一个不连贯的系统。OverFeat
优化的是定位而不是检测性能。与DPM
类似,当进行预测时,该定位器只能看到局部信息。OverFeat
无法推理全局上下文,因此需要进行重要的后处理以产生连贯的检测结果。
MultiGrasp. 我们的工作在设计上与Redmon等人的抓取检测工作相似 [27]。我们对边界框预测的网格方法基于MultiGrasp
系统,该系统用于回归到抓取点。然而,抓取检测比目标检测要简单得多。MultiGrasp
只需要为包含一个物体的图像预测一个可抓取区域。它不需要估计物体的大小、位置或边界,也不需要预测物体的类别,只需要找到一个适合抓取的区域。而YOLO
在图像中预测多个类别的多个对象的边界框和类别概率。
4. 实验
首先,我们将YOLO
与其他实时检测系统在PASCAL VOC 2007上进行比较。为了了解YOLO
与R-CNN
变体之间的差异,我们研究了YOLO
和Fast R-CNN
在VOC 2007上的错误。Fast R-CNN
是R-CNN
中性能最高的版本之一[14]。根据不同的错误特征,我们展示了YOLO
可以用于重新评分Fast R-CNN
的检测结果,并减少背景误报的错误,从而显著提高性能。我们还呈现了VOC 2012的结果,并将mAP
与当前最先进的方法进行了比较。最后,我们展示了YOLO
在两个艺术品数据集上相比其他检测器更好地泛化的情况。
4.1 与其他实时系统的比较
许多目标检测的研究工作都致力于提高标准检测流程的速度。[5] [38] [31] [14] [17] [28]然而,只有Sadeghi等人真正实现了实时运行的检测系统(每秒30帧或更快)[31]。我们将YOLO
与他们的GPU
实现的DPM
进行比较,后者的运行速度为30Hz
或100Hz
。虽然其他工作并未达到实时的里程碑,我们也比较了它们相对的mAP
和速度,以探讨目标检测系统在准确性和性能之间的权衡。
Fast YOLO
是PASCAL数据集上最快的目标检测方法;据我们所知,它是目前存在的最快的目标检测器。其mAP
为52.7%
,比之前关于实时检测的工作精度提高了一倍多。而YOLO
将mAP
提升到了63.4%
,同时保持实时性能。
我们还使用VGG-16
训练了YOLO
。这个模型更准确,但速度比YOLO
慢得多。它对于与依赖VGG-16
的其他检测系统进行比较很有用,但由于速度不足以实现实时性,本文的其余部分将重点关注我们更快的模型。
Fastest DPM
有效地加快了DPM
的速度,几乎没有牺牲太多mAP
,但仍无法达到实时性能的两倍[38]。它也受到DPM
相对较低准确性的限制。
任何关于目标检测的研究工作都致力于加速标准的检测流程。[5] [38] [31] [14] [17] [28]然而,只有Sadeghi等人真正实现了实时运行的检测系统(每秒30帧或更快)[31]。我们将YOLO
与他们基于GPU
的DPM
实现进行比较,该实现的运行速度为30Hz
或100Hz
。虽然其他工作没有达到实时的里程碑,我们也比较了它们相对的mAP
和速度,以研究目标检测系统中可用的准确性和性能权衡。
Fast YOLO
是PASCAL数据集上最快的目标检测方法;据我们所知,它是目前存在的最快的目标检测器。其mAP
为52.7%
,比之前关于实时检测的工作精度提高了一倍多。而YOLO
将mAP
提升到了63.4%
,同时保持实时性能。
我们还使用VGG-16
对YOLO
进行训练。这个模型更准确,但速度比YOLO
慢得多。它对于与依赖VGG-16
的其他检测系统进行比较很有用,但由于速度不足以实现实时性,本文的其余部分将重点关注我们更快的模型。
Fastest DPM
有效地加快了DPM
的速度,几乎没有太多牺牲mAP
,但仍然相对于实时性能差了一倍[38]。与神经网络方法相比,它在检测方面也受到DPM
相对较低的准确性的限制。
R-CNN
减去R
的部分用静态边界框提议替代了Selective Search
[20]。虽然它比R-CNN
快得多,但仍无法达到实时性能,并且由于没有良好的提议而在准确性上受到了显著的影响。
Fast R-CNN
加快了R-CNN
的分类阶段,但仍然依赖于Selective Search
,每张图像生成边界框提议大约需要2
秒的时间。因此,它具有较高的mAP
,但每秒0.5
帧的速度仍远远不足以实时运行。
最近的Faster R-CNN
将Selective Search
替换为神经网络来提议边界框,类似于Szegedy等人的方法[8]。在我们的测试中,它们最准确的模型每秒达到7
帧,而一个较小但准确性较低的模型以18
帧的速度运行。Faster R-CNN
的VGG-16
版本比YOLO
的mAP
高10
个百分点,但速度也慢了6
倍。Zeiler-Fergus Faster R-CNN
比YOLO
只慢2.5
倍,但准确性较低。
表格1:PASCAL VOC 2007上的实时系统。比较快速检测器的性能和速度。快速的YOLO是PASCAL VOC检测记录中最快的检测器,仍然比任何其他实时检测器准确率高出两倍。YOLO比快速版本准确率高出10个mAP,同时速度仍然保持在实时水平以上。
4.2 VOC 2007 错误分析
为了进一步研究YOLO
和最先进的检测器之间的差异,我们详细分析了在VOC 2007上的结果。我们将YOLO
与Fast R-CNN
进行比较,因为Fast R-CNN
是在PASCAL数据集上表现最好的检测器之一,而且其检测结果是公开可用的。
我们采用了Hoiem等人的方法和工具。在每个类别的测试时,我们查看该类别的前N
个预测结果。每个预测结果要么是正确的,要么根据错误类型进行分类:
- Correct: correct class and IOU > .5
- Localization: correct class, .1 < IOU < .5
- Similar: class is similar, IOU > .1
- Other: class is wrong, IOU > .1
- Background: IOU < .1 for any object
图4显示了所有20
个类别中每种错误类型的细分情况的平均值。 YOLO
在正确定位物体方面存在困难。定位错误占据了YOLO
错误的主要部分,超过了其他所有错误来源的总和。Fast R-CNN
的定位错误要少得多,但背景错误要多得多。它的前N
个检测结果中有13.6%
是假阳性,不包含任何物体。相比于YOLO
,Fast R-CNN
预测背景检测的可能性几乎是其三倍。
图4:错误分析:Fast R-CNN vs. YOLO 这些图表显示了各个类别中前N个检测结果中定位错误和背景错误的百分比(N = 该类别中的物体数量)。
4.3 将Fast R-CNN和YOLO相结合
YOLO
在背景错误方面比Fast R-CNN
要少得多。通过使用YOLO
来消除Fast R-CNN
的背景检测,我们可以显著提高性能。对于R-CNN
预测的每个边界框,我们检查YOLO
是否预测了一个相似的框。如果是的话,我们根据YOLO
预测的概率和两个框之间的重叠程度来增加该预测的权重。
在VOC 2007测试集上,最好的Fast R-CNN
模型的mAP为71.8%
。与YOLO
相结合后,其mAP
增加了3.2%
达到75.0%
。我们还尝试将顶级Fast R-CNN
模型与其他几个版本的Fast R-CNN
组合。这些组合在mAP
方面只产生了0.3%
到0.6%
之间的小幅增长,详见表2。
YOLO
的提升并不仅仅是模型集成的副产品,因为组合不同版本的Fast R-CNN
几乎没有任何好处。相反,正是因为YOLO
在测试时会产生不同类型的错误,它才能有效地提升Fast R-CNN
的性能。
不幸的是,这种组合并没有享受到YOLO
的速度优势,因为我们分别运行每个模型,然后将结果组合起来。然而,由于YOLO
非常快速,与Fast R-CNN
相比,它并不会增加任何显著的计算时间。
表格2:VOC 2007上的模型组合实验。我们研究了将各种模型与最佳版本的快速R-CNN结合的效果。其他版本的快速R-CNN只能提供微小的效益,而YOLO则显著提升了性能。
4.4 VOC 2021 结果
在VOC 2012测试集上,YOLO
的mAP
得分为57.9%
。这低于当前的最先进方法,接近使用VGG-16
的原始R-CNN
,详见表3。与其最接近的竞争对手相比,我们的系统在小物体上表现较差。在瓶子、绵羊和电视/显示器等类别中,YOLO
的得分比R-CNN
或Feature Edit
低8-10%
。然而,在其他类别如猫和火车中,YOLO
取得了更高的性能。
我们结合了Fast R-CNN
和YOLO
的模型是最高性能的检测方法之一。Fast R-CNN
通过与YOLO
的结合获得了2.3%
的改进,将其在公共排行榜上提升了5
个名次。
表3:PASCAL VOC 2012排行榜。YOLO与完整的comp4(允许使用外部数据)公共排行榜进行了比较,数据截至2015年11月6日。显示了各种检测方法的平均精度和每类平均精度。YOLO是唯一的实时检测器。Fast R-CNN + YOLO是得分第四高的方法,比Fast R-CNN提升了2.3%。
4.5 泛化能力:艺术作品中的人体检测
学术数据集用于目标检测时,训练数据和测试数据都来自相同的分布。然而,在真实世界的应用中,很难预测所有可能的使用情况,测试数据可能与系统之前所见的数据不同[3]。我们将YOLO
与其他检测系统在Picasso数据集[12]和People-Art数据集[3]上进行比较,这两个数据集用于测试艺术作品中的人体检测。
图5显示了YOLO
与其他检测方法之间的性能比较。为了参考,我们给出了在人物上进行VOC 2007检测的平均精度(AP),其中所有模型仅在VOC 2007数据上进行训练。在Picasso数据集上,模型在VOC 2012上进行训练,而在People-Art数据集上,模型在VOC 2010上进行训练。
R-CNN
在VOC 2007上具有较高的AP
。然而,当应用于艺术作品时,R-CNN
的性能显著下降。R-CNN
使用Selective Search
进行边界框提议,该方法针对自然图像进行了调整。R-CNN
中的分类器仅看到小区域,并且需要良好的提议。
DPM
在应用于艺术作品时保持了较好的AP
。之前的研究认为DPM
表现良好是因为它具有对物体的形状和布局具有强大的空间模型。尽管DPM
的性能下降没有R-CNN
那么明显,但它的起始AP
较低。
YOLO
在VOC 2007上表现良好,而在应用于艺术作品时,其AP
下降比其他方法更少。像DPM
一样,YOLO
对物体的大小和形状进行建模,以及物体之间的关系和物体的常见出现位置。艺术作品和自然图像在像素级别上非常不同,但在物体的大小和形状上相似,因此YOLO
仍然可以预测出良好的边界框和检测结果。
5. 野外实时检测
YOLO
是一种快速、准确的目标检测器,使其非常适用于计算机视觉应用。我们将YOLO
连接到网络摄像头,并验证其保持实时性能,包括从摄像头获取图像和显示检测结果所需的时间。
所得到的系统具有交互性和吸引力。虽然YOLO
以单个图像为单位进行处理,但连接到网络摄像头时,它可以像一个跟踪系统一样工作,检测物体在移动和外观变化时的情况。该系统的演示和源代码可以在我们的项目网站上找到:http://pjreddie.com/yolo/。
6. 结论
我们引入了YOLO
,一种用于目标检测的统一模型。我们的模型构建简单,并可以直接在完整图像上进行训练。与基于分类器的方法不同,YOLO
是基于与检测性能直接对应的损失函数进行训练,整个模型是联合训练的。
Fast YOLO
是文献中最快的通用目标检测器,而YOLO
在实时目标检测方面推动了最新技术的发展。YOLO
在新领域中也具有良好的泛化能力,使其成为依赖于快速、鲁棒目标检测的应用程序的理想选择。