YOLO论文翻译

摘要

    我们提出了YOLO-一种新的目标检测的方法,以前 的目标检测的方法是重新用一个分类器来进行检测,相反,我们目标检测的方法是作为一个回归的问题,在空间上将边界框和每个类的概率值分开。一个神经网络直接从图像中预测出每个类的概率值和边界框。当我们的整个检测是一个流水线的时候了,我们可以从端到端的优化检测的性能。

    我们的统一网络结构十分的快,我么YOLO的基础模型实时检测的速度是45帧每秒。更小的网络,快速YOLO,他的实时检测的速度是155帧每秒,他们同样达到了其他实时检测网络的两倍的mAP。对比目前最先进的检测系统,YOLO定位失误更多,但是不太可能把背景预测为正例。最后,YOLO学习的是目标非常普通的表示,当从一个领域推广到另外一个领域的时候,比如从自然图像推广到艺术图像的时候,YOLO这个模型比像DPMR-CNN表现更加好。

1 介绍

    人类看到一张图像的时候,立马就知道这张图像中的物体是什么,他们在哪里,以及他们相互的作用。人类的视觉系统是快而且准的,他允许我们在执行复杂的任务,像开车的时候没有太多的意识和想法。快速而又准确的目标检测的算法允许计算机在没有特殊传感器的时候驾驶车能够辅助社祝给人类提供实时的场景的信息,以及可以解锁潜在的通用目的,响应机器人系统。

    目前的目标检测系统重新使用分类器来进行目标检测,检测一个目标,其他系统使用一个分类器对目标分类,同时使用不同的位置和尺度测试图像。像DPM系统,使用一个滑动窗口在整个图上均匀的滑动。

    更多最近的方法,像R-CNN区域提议方法首先在图像中生成潜在的边界框,以及在这些潜在的边界框上使用一个分类器。在分类之后,后面的处理优化边界框,删除重复的框,并基于其他的目标的场景中重新设置框。因为每一个独立的成分必须分开训练,使得整个复杂的过程很慢,同时很难被优化。

        我们将目标检测作为一个单一的回归问题,直接从图像的像素到边界的坐标和类的概率。使用我们的系统,你只需要看图像一次,就预测目标是什么,以及目标在哪里。


        图1 YOLO目标检测系统 。用YOLO处理图像简单而又直接,我们的系统(1) 将图像归一化到448*448 (2) 在图像上跑一个单一的卷积网络,(3)根据模型的置信度限制检测的结果

YOLO非常简单,见图1,单个卷积网络同时预测多个边界框和和这些边界框的类的概率,YOLO直接在所哟图像上训练,直接优化检测的性能。这个统一的模型和传统的目标的网络有几个有点。

第一,YOLO非常的快,81/5000

    由于我们将检测视为回归问题,因此我们不需要复杂的管道。我们只是在测试的时候在一幅新图像上运行我们的神经网络来预测检测结果。我们的基础模型在Titan X GPU 上,没有批量化处理的情况下,我们网络的速度是45帧每秒,一个快的版本的速度大于150帧每秒。这意味着我们可以不到25毫秒的延迟时间内实时处理视频。此外,YOLO比其他实时检测系统的mAP大于2倍,有关我们的系统在网络摄像头上实时运行的演示,请参阅我们的项目网页:http://pjreddie.com/yolo/.

    第二,YOLO预测时考虑图像的全局信息。和滑动窗口和区域建议的方法不同,YOLO在训练和测试的时候看的是整个图像,因此他隐含编码类别和他们的表现的上下文信息。Fast R-CNN,一种高级的检测方法,因为不能看到更大的上下文,会把背景错误的分成目标。YOLOFast RCNN相比,这种错误的数量不到Fast RCNN的一半。

    第三,YOLO学习目标的概括性表示,当在自然图像和艺术图像上进行训练时,YOLO大幅优于顶级的检测方法比如DPMR-CNN。因为YOLO具有高度概括性,所以当应用于一个新的领域或者意外的输入时,不太可能发生故障。

    YOLO在准确性方面仍落后于最先进的检测系统。然而他可以快速的鉴别目标,以及很努力更加精确的定位目标,特别是小目标。在我们的实验中,我有有所折中。

    我们所有的测试和训练代码都是开源的。各种预训练的模型也是提供下载的。

2 统一检测

    我们将目标检测分开的部分统一为一个神经网络。我们的网络使用从整个图像中提取出的特征预测每一个边界框。他们同时也预测图像中所有类的所有边界框,这就意味着我们网络的原因是整个图像和所有在图像中的目标。YOLO的设计可以从端到端的训练,以及可以在保持高平均准确度的情况下实现实时的检测。

    我们的系统将输入的图像切分成一个S*S的网络,如果一个目标的中心在这个网格中,那么这个网格就负责检测这个目标。

    每个单元格预测B个边界框和这些框的置信度的得分。这些置信度的得分反应了模型预测这个框包含目标的置信度,以及模型的预测这些框的准确度。我们正式将置信度定义为Pr(object)*IOUturth pred  如果在这个单元格中不存在目标,那么这个置信度的得分应该是0,否则,我们希望置信度的得分等于预测框与真实值之间的交并比(IOU)。

    每一个边界框包含5个预测值,x,y,w,h以及置信度。(x,y)坐标表示相对于网格边界框的中心,高度h和宽度w是相对于整个图像而言。最后置信度的预测值代表预测框和真实框之间的交并比。

    每一个网格预测还预测C条件类概率,Pr(Classi|Object)。这些概率取决于包含目标的网格单元。我们只是预测每个网格单元的一组类别概率,不管框的数量。

    在测试时我们乘以条件类概率和单个框置信度预测值:

这给出我们了每个框的类的特定的置信度的分数,这些分数编码类出现在框中的概率

和框拟合这个目标的程度。

2  模型:我们模型检测作为一个回归模型,他把图像切成S*S的网格和每一个网格预测的B 边界框,置信度,和这些框的C类概率。这些预测值被编码成一个S*S*(B*5+C)的张量。

PASCAL VOC上评估YOLO,我们使用S=7B=2PASCAL VOC20个类,因此C=20,我们最后预测7*7*30大小的张量。

2.1 网络的设计

我们实现了这个卷积网路模型以及在PASCAL VOC检测数据集上做了评估。网络的卷积层从图像中提取特征,而全连接的层预测输出概率和坐标。

我们的模型骨架收到GoogleNet分类模型的启发,我们的网络有24个卷积层,后面跟两个全连接层。和Lin 一样,我们不GoogleNet使用的Inception模块,我们简单使用1*1还原层和3*3的卷积层。

我们还训练了一个快速版的YOLO,旨在推动目标边界的快速检测。快速版的YOLO使用更少的卷积层,9层卷积层代替之前的24层,以及在这些层里面更加的滤波器。除了网络的大小,Fast YOLOYOLO所有训练和测试的参数都是一样的。


图3 网络骨架:我们的检测网络有24个卷积层后面有两个全连接层。交替1*1的卷积层,减少前一层的特征空间,我们预训练卷积层在ImageNet 分类任务上的像素(224*224),而在检测上使用双倍的像素(448*448)

最后我们网络的输出是7*7*30的张量。

2.2 训练

 

 

我们在ImageNet 1000类的比赛数据中预训练卷积层,对于预训练,我们使用20个卷积层后面接一个averge-pool (平均池化层)层和一个全连接层,见图3,我们训练这个网络大概是一周左右,在ImageNet2012年的验证集上top-5的准确度是88%,和caffe模型里面的GoogLeNet相当。我们使用DarkNet 框架进行训练和推理。

然后我们将模型转化成检测,Ren 等表明把卷积和全连接层加到预训练网络效果更加好。根据他们的例子,我们随机初始化4个卷积层和2个全连接层的权重并添加到预训练网络中。检测通常需要细粒度的视觉信息,因此我们将网络的输入分辨率从224* 224增大到448*448

我们最后的层预测每个类的概率和每个边界框的坐标。我们使用图像的长和宽归一化边界框的长和宽这样保证他们落在[0,1]之间。

我们最后一层的激活函数是线性激活函数,所有其他层使用的是leaky ReLU

我们模型的优化目标是输出的平方和,使用平方误差和是因为他容易优化,,但它并不完全符合我们最大化平均精度的目标。他对检测错误和分类错误赋予同等的权重,这可能并不理想。而且,在每个图像中,许多网格单元不包含任何目标。这将这些不包含目标的单元格的“置信度”分数接近0,通常会压倒包含目标的单元格的梯度。 这可能导致模型不稳定,从而导致训练开始发生发散。

 

为了弥补这个不足,我们增大了对边界框坐标预测的损失,减少了不含有目标的框的置信度的预测损失。我们使用和这两个参数完成这个弥补的不足。我们设置和。

平方和误差也同样对大的和小的框给与相同的权重,我们的误差应该反映出大的框的偏差要比小框的偏差小,为了解决这个问题,我们预测边界框的宽和高的平方根,代替直接预测边界的宽和高。

YOLO每个单元格预测多个边界框。在预测的的时候,我们希望一个框负责一个目标,我们给预测器分配预测某个目标的责任,基于框和真实值得IOU值大小决定。这导致了边界框预测器之间的专业化。 每个预测变量可以更好地预测某些尺寸,纵横比或对象类别,从而改善整体召回率。

在训练期间,我们优化以下的多部分损失函数:


我们在Pascal  VOC 20072012 数据集上,总共在训练集和验证集上跑了135epcohsPascal voc 2012测试时,我们还包括了VOC 2007测试数据用于训练。我们整个训练batch_size的大小是64,动量是0.9,衰减因子是0.0005.

我们的学习率是这样安排的,第一个epoch我们,我们将学习率从10-3,缓慢增加到10-2,如果我们从大的学习率开始,我们的模型通常会由于梯度不稳定而发散。我们继续用学习率为10-2训练75个epochs,然后10-3学习率训练30个epochs,最后使用学习率为10-4训练30个epochs。

为了避免过拟合,我们使用droupout和其他的数据增强,droupout 的keep_prob大小是0.5,在第一个全连接层后,防止层与层之间的适应,对于数据增强,我们引入随机缩放,缩放比例是原始图像的20%,我们还在HSV色彩空间中随机调整图像的曝光和饱和度,最高可达1:5的比例。

 

2.3 推理

 

 

就像训练一样,测试图像的时候也是只需要一个网络进行评估预测,在pascal voc数据集上,网络每张图像预测98个边界框,每个边界框预测一个类,YOLO十分的快,因为他只需要一个网络进行评估,不像基于分类器的方法。

 

网格的设计增强了边界框预测的空间多样性,

 

通常情况下,那个目标落在那个网格中很清楚,网络对每一个目标只预测一个框。大的目标可以被很多个边界框定位到,非最大抑制可用于修复这些多重检测。对于R-cnn,DPM,性能不是至关重要,非极大值抑制可以提高mAP 2-3%点

 

2.4  YOLO的限制

 

YOLO对边界框预测强加空间约束,每个网格单元只能预测两个框,并且只能有一个类。这些空间约束限制我们模型可以预测附近物体的数量,我们的模型与群体中出现的小物体(例如鸟群)发生斗争。

 

因为我们的模型从数据中学到了预测的边界框,所以他很难推广到不一样的,长宽比不同的,结构不一样的物体上。我们的模型使用相对粗糙的特征预测的边界框,因为我们的模型结构从输入图片有大量的下采样层。

 

最后,当我们训练一个接近检测性能的损失函数时,我们小边界框与大边界框的误差相同。在一个大的框中的小错误是良性的,但是一个小的框的小误差对IOU影响很大,我们误差的主要来源是定位错误。

3  和其他的检测系统对比

 

目标检测的核心问题是计算机视觉,检测流通常从输入图像中提取一组鲁棒性较好的特征(Haar,SIFT,c卷积特征)开始。然后,使用分类器或定位来识别特征空间中的物体。这些分类器和定位可以在整张图像上使用滑动窗口移动,也可以是在图像中的一个子区域滑动。我们对比了YOLO和几个顶级的检测框架,突出了相似性和差异。

 

 

DPM :DMP使用滑动窗口检测目标,DPM使用不相交的流来提出静态特征,分类区域,在得分高的区域预测边界框等等。我们的检测系统使用单一的卷积神经网络代替他们分离的几部分,网络同时执行特征提取,边界框预测,非最大抑制和上下文推理。代替静态特征,网络在线训练特征,并优化检测任务。我们统一的结构导致我们模型更加快,比DPM精度更加高。

R-CNN:R-CNN和他的变种使用区域建议的方式代替滑动窗口找到图像中的物体。选择性搜索生成潜在的框,卷积层提取特征,svm对框进行评分,线性模型调整边界框,非极大值抑制删除重复框,这些复杂的流程每一阶段都需要单独的精调,每张测试图像测试都需要40s以上

 

YOLO 和R-cnn有相似处,每一个网格区域都是潜在的边界框,并使用卷积特征对这些框打分。然而,我们的系统在网格上使用空间上的约束,帮助我们减缓同一物体多次检测。我们的系统提出了更少的边界框,每一张图像只有98个边界框,而选择性搜索需要2000个框,最后,我们的模型独立的成分联合成一个单一的,共同优化的模型。

 

其他快速的检测:Fast 和Faster Rcnn 框架集中在加速R-cNN框架,通过共享计算以及使用神经网络提取区域代替选择性搜索,虽然他们的准确度和速度都比R-cnn要好,但是他们任然达不到实时检测的效果。

 

 

许多研究工作集中于加快DPM管道,他们加快HOG的计算,他们使用级联,并使用GPU运算。然后实时检测DPM只有30Hz。

YOLO不是试图优化大型检测管道的单个组件,而是完全抛出管道,并且设计速度很快。

检测单一类或者是人脸可以高度优化因为他们处理很少的变化,YOLO是一个通用的检测可以同时学习检测不同的目标。

Deep MultiBOX  和r-cnn不一样,训练卷积神经网络来预测感兴趣的区域而不是使用选择性搜索,MultiBox还可以通过替换置信度预测单个类别对象检测。但是,MultiBox无法执行通用对象检测,并且仍然只是更大检测流水线中的一部分,需要进一步对图像进行分类。YOLO和MultiBox在一张图像中使用卷积网络预测边界框,但是YOLOI是一个完整的检测系统。

 

OverFeat.:Sermanet等人,训练一个卷积网络执行定位并使用该定位器执行检测。OverFeat高效地执行滑动窗口检测,但它仍然是一个不统一的系统。OverFeat优化定位而不是检测。和DPM一样,定位器在做预测时仅仅看局部的信息。OverFeat无法推断全局上下文,因此需要大量的后处理才能生成一致的检测结果。

 

multiGrasp:我们的工作在设计上类似于Redmon等人抓住检测方面的工作。我们的网格边界框预测方法基于MultiGrasp系统进行回归分析,然而,抓握检测比对象检测更简单。MultiGrasp只需要为包含一个对象的图像预测一个可抓取区域。它不必估计对象的大小,位置或边界或预测它的类,只找到适合抓取的区域。YOLO预测一张图像中的多个类,多个目标的边界和类的概率。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值