英语原文共 9 页,剩余内容已隐藏,支付完成后下载完整资料
YOLO9000:更好,更快,更强
Joseph Redmon, Ali Farhadi
University of Washington, Allen Institute for AI
引 言
YOLO9000是一个最新的,能检测超过9000种分类物体的实时检测系统。首先我们提出了一些新颖的、从先前工作中总结的方法对已有的YOLO算法进行改进。改进后的YOLOv2在PASCAL VOC数据集和COCO数据集标准检测任务中是一个先进的模型。同时运用一种新颖的多尺度训练方法,使得相同的YOLOv2模型能在不同大小的图片上运行,且在精度和准确度之间达到轻松的平衡。在67fps(画面每秒传输帧数)时,YOLOv2在VOC2007数据集中能达到76.8 mAP。在40 fps时,YOLOv2获得78.6 mAP。YOLOv2不仅性能优于其它先进的方法,如使用ResNet的faster-RCNN和SSD,同时运行速度明显更快。最后,我们提出了一种联合训练目标检测和分类的方法。使用这种方法,我们在COCO检测数据集和ImageNet分类数据集上同时训练YOLO9000。我们使用联合训练方法让YOLO9000预测没有标记数据的目标进行分类。尽管200个类中只有44类的检测数据,YOLO9000在ImageNet检测验证集上获得19.7 mAP。对于不在COCO的156类中,YOLO9000获得16.0 mAP。但是YOLO可以检测超过200个类;它检测超过9000个不同目标类别。而且实时运行。
- 介绍
通用的目标识别应该快速,精确和能够识别大范围的物体种类。从神经网络引进以来,检测框架已经变得越来越快和精确。但是大多数的检测算法仍然局限于检测一小部分的物体。
与分类和标记等其他任务的数据集相比,当前目标检测数据集是有限的。最常见的检测数据集包含数十到数十万的图像,具有几十到几百个标签。分类数据集具有数百万个具有数十或数十万类别的图像。
我们希望检测可以放大到目标分类的级别。然而,用于检测的标记比用于分类的标记(标签通常由用户免费提供)昂贵得多。因此,检测数据集的规模达到分类数据集规模的情况在近段时间不会出现。
根据这种情况,提出了一种新方法来利用已有的大量分类数据,并使用它来扩大当前系统检测的范围。使用目标分类的层次视图,将不同的数据集合在一起。
此外,提出了联合训练算法,在检测和分类数据集上训练目标检测器。该方法利用标记的检测图像来学习如何精确地定位目标,同时使用分类图像来增加其词汇和鲁棒性。
基于联合训练算法训练YOLO9000,可以检测超过9000不同的目标类别。首先,对原有的YOLO检测系统进行改进,产生YOLOv2。然后使用数据集组合方法和联合训练算法来训练来自ImageNet的超过9000个类的模型以及来自COCO的检测数据。
所有代码和预训练模型都可以在http://pjreddie.com/yolo9000/在线获得。
- 更好
相对于现有技术的检测系统,YOLO具有许多不足。与fast RCNN相比,YOLO的误差分析显示YOLO产生大量的定位误差。此外,与基于region proposal的方法相比,YOLO具有相对较低的召回率。因此,我们保持分类精度的同时主要集中在提高召回率和准确定位。
计算机视觉通常趋向于更大,更深的网络。更好的性能通常取决于训练更大的网络或将多个模型组合在一起。然而,YOLOv2需要一个更加精确且保持快速的检测器。因此YOLOv2并不需要扩展网络,而是简化网络,使特征更容易学习。我们从过去的工作经验中融合了我们的新概念和想法,以提高YOLO的性能。
批量归一化。批量归一化导致收敛的显着改善,而不需要其他形式的正则化。通过在YOLO中的所有卷积层上添加批量归一化,我们在mAP中获得超过2%的改进效果。批量归一化也有助于规范模型。使用批量归一化,可以从模型中退出,而不会过度拟合。
高分辨率分类器。所有最先进的检测方法使用ImageNet预训练分类器。从AlexNet开始,大多数分类器对小于256times;256的输入图像进行操作。原来的YOLO在224times;224分辨率上训练分类器网络,并将分辨率增加到448以用于检测。这意味着网络必须同时切换到学习目标检测并调整到新的输入分辨率。
对于YOLOv2,我们首先在ImageNet上对分辨率为448times;448下在10次对样本数量的遍历上进行微调。这种网络遍历可以在较高分辨率输入上调整滤波器。然后在检测时使用微调所得到的网络。这种高分辨率分类网络增加了近4%的mAP。
使用候选区域进行卷积。YOLO直接使用卷积特征提取器顶部的完全连接的层来预测边界框的坐标。相比于直接预测坐标,faster RCNN使用手动挑选的先验预测边界框。仅使用卷积层,faster RCNN中的区域建议网络(RPN)预测候选区域的偏移和置信度。由于预测层是卷积的,因此RPN在特征图中的每个位置处预测这些偏移。预测偏移而不是预测坐标简化了问题,并使网络更容易学习。
我们从YOLO中去除全连接层,并使用候选框预测边界框。首先,我们去除一个池化层,使网络的卷积层的输出更高的分辨率。我们还缩小网络将输入尺寸为416而不是448times;448。我们这样做是因为我们想要特征图中大小为奇数,所以有一个中心单元格。目标,特别是大目标,倾向于占据图像的中心,所以在中心有一个单一的位置是很好的预测这些目标,而不是四个位置都在中心附近。YOLO的卷积层将图像下采样32倍,所以通过使用输入图像416,我们得到13times;13的输出特征图。
当我们移动到候选区域时,我们把类预测机制与空间位置解耦,而代之以预测每个候选区域的类和目标。在YOLO之后,目标预测在假设有一个目前提下仍然预测正确数据(ground truth)的交并比(IOU)和提出的框和类预测预测该类目标的条件概率。
使用候选区域我们得到一个小的精度下降. YOLO每个图像只预测98个区域,但使用候选区域我们的模型预测超过一千个区域。没有候选区域,我们的中间模型获得69.5 mAP,召回率为81%。使用候选区域我们的模型获得69.2 mAP,召回率为88%,mAP少量减少,召回率的增加意味着我们的模型有更多的改进空间。
维度集群。当使用YOLO时,我们遇到两个关于候选区域的问题。第一个是区域尺寸是手工挑选的。网络可以学习适当地调整框,但如果我们选择更好的先验网络开始,我们可以使网络更容易学习预测良好的检测。
图2:VOC和COCO的聚类框尺寸。我们在边界框的维度上运行k均值聚类以获得我们的模型的先验。左图显示了对于k的各种选择得到的平均IOU。我们发现k = 5给出了召回率和模型复杂性的良好权衡。右图显示了VOC和COCO的相对质心。两种方法都有利于更薄,更高的盒子,而COCO在尺寸上比VOC有更大的变化。
我们不是手动选择先验,而是在训练集边界框上运行k-means聚类,以自动找到好的先验。如果我们使用标准的k均值与欧几里德距离,较大区域会比较小的区域产生更多的误差。然而,我们真正想要的是能导致良好的IOU分数的先验,这是独立的区域的大小。因此,对于我们的距离,我们使用下面的公式:
d(box,centroid)=1-IOU(box,centroid)
我们对不同的k值运行k-means算法,并绘制具有最接近质心的平均IOU,参见图2.我们选择k = 5作为模型复杂性和高召回率之间的良好权衡。聚类中心与手工挑选的候选区域有很大不同。有更少的短的宽的区域和更多的高的窄的区域。
我们将平均IOU与我们的聚类策略得到的最接近的先验和表1中的精选候选区域进行比较。5个先验的质心区域IOU为61.0而9个候选区域为60.9。如果我们使用9个质心,我们看到一个高得多的平均IOU。这表明使用k-means生成边界框能更好的表示模型初始值,并使任务更容易学习。
表1:VOC 2007上最接近的先验的平均IOU。VOC 2007上目标的平均IOU,与使用不同生成方法的其最接近的未修改先验。聚类提供了比人工挑选更好的先验。
直接位置预测。当YOLO使用候选区域时我们遇到第二个问题:模型不稳定,特别是在早期迭代时。大多数不稳定性来自预测方框的(x,y)位置。在候选区域网络中,网络预测值tx和ty和(x,y)中心坐标计算为:
x = (txlowast; wa) – xa
y = (tylowast; ha) minus; ya
例如,tx= 1的预测将使框向右移动anchor box的宽度, tx= -1的预测将使其向左移动相同的量。
这种公式是不受约束的,因此任何anchor box可以在图像中的任何点结束,而不管预测box的位置。使用随机初始化模型需要很长时间才能稳定到预测可感知的偏移。
相比于预测偏移,我们遵循YOLO的方法并预测相对于网格单元的位置坐标。这将ground truth限制在0和1之间。我们使用逻辑激活函数来约束网络的预测落在该范围内。
网络预测输出要素图中每个单元格的5个边界框。网络为每个边界框预测tx,ty,th,tw和to这5个坐标。如果单元从图像的左上角偏移(x,y)并且边界框先前具有宽度和高度,则预测对应于:
bx= sigma;(tx) cx
by= sigma;(ty) cy
bw= pwetw
bh= pheth
Pr(object)lowast;IOU(b,object) =sigma;(to)
由于约束位置预测,参数化更容易学习,使得网络更稳定。使用维度集群以及直接预测边界框中心位置使YOLO比具有anchor box的版本提高了近5%的mAP。
细粒度特征。该修改的YOLO版本在13times;13特征图上检测。虽然这对于大目标是足够的,但是它可以从用于定位较小目标的更细粒度特征中受益。Faster RCNN和SSD在网络中的各种特征映射上运行它们的提议网络以获得一系列分辨率。我们采取不同的方法,只是添加一个传递层,这个层能够将其他26times;26分辨率的层融合起来。
传递层通过将相邻特征堆叠到不同的通道而不是堆叠到空间位置,将较高分辨率特征与低分辨率特征相连,类似于ResNet中的标识映射。这将26times;26times;512特征映射转换为13times;13times;2048特征映射,其可以与原始特征连接。我们的检测器在这个扩展的特征图的顶部运行,以便它可以访问细粒度的特征。这给出将近1%的性能提高。
图3:具有维度先验和位置预测的边界框。我们将box的宽度和高度预测为来自聚类中心的偏移。我们使用sigmoid函数预测框相对于过滤器应用的位置的中心坐标。
多尺度训练。原始的YOLO使用448times;448的输入分辨率。添加anchor box后,我们将分辨率更改为416times;416。然而,由于我们的模型只使用卷积层和池化层,它可以在运行中调整大小。我们希望YOLOv2能够在不同大小的图像上运行,因此我们将其训练到模型中。
相比于固定输入图像大小,我们每隔几次迭代更改网络。每迭代10个batch我们的网络随机选择一个新的图像尺寸大小。由于我们的模型以32的因子下采样,我们从以下32的倍数中抽取:{320,352,hellip;,608}。因此,最小的选项是320times;320,最大的是608times;608.我们调整网络的大小,并继续训练。
这种训练方法迫使网络学习在各种输入维度上进行很好地预测。这意味着相同的网络可以进行不同分辨率的检测。网络在更小的尺寸下运行更快,因此YOLOv2在速度和精度之间提供了一个轻松达到的平衡。
在低分辨率下,YOLOv2作为一个便宜且相当准确的检测器。在288times;288分辨率下它运行超过90 FPS而且精确度几乎与Fast RCNN一样好。这使其成为较小的GPU、高帧率视频或多个视频流的理想选择。
在高分辨率下,YOLOv2是一种最先进的检测器,在VOC 2007上具有78.6 mAP,同时仍然在实时速度以上运行。YOLOv2与其他框架在VOC 2007上的比较见表3。
进一步的实验。我们训练YOLOv2在VOC 2012上进行检测。表4显示了YOLOv2与其他现有技术检测系统的比较性能.YOLOv2得到73.4 mAP,而运行速度远远快于其他方法。我们还对COCO进行训练,并与表5中的其他方法进行比较。在VOC指标(IOU = 0.5)上,YOLOv2获得44.0 mAP,与SSD和faster RCNN相当。
表3:PASCAL VOC 2007的检测框架. 全文共10213字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[15771],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。