【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger

YOLOv2:YOLO9000: Better, Faster, Stronger

  • 引言
  • 1 介绍
  • 2 更准确
  • 3 更快
  • 4 类别更多
  • 5 总结

引言

论文精度可以看B站大佬的视频:【精读AI论文】YOLO V2目标检测算法
有不准确的地方,评论区欢迎指出哦!相互学习!
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第1张图片
  我们向大家介绍YOLO9000,一种先进、实时的目标检测系统,可以检测超过9000个目标类别。首先,我们对YOLO检测方法提出了多种改进,既有新颖的,也有借鉴前人工作的。提升模型YOLOv2在标准检测任务,如PASCAL VOC 和 COCO,中是最先进的。使用一种新颖多尺度的训练方法,相同的YOLOv2模型可以在各样的图像尺寸下运行,实现速度与精度的简单权衡。以67 FPS(帧每秒)的速度,YOLOv2在 VOC 2007数据集上可以达到76.8 mAP的精度。以40 FPS的速度, YOLOv2可以达到 78.6 mAP的精度,超过了最先进的方法,如使用ResNet的Faster RCNN 和 SSD,却仍然能运行地相当快。最后,我们提出了目标检测和分类联合训练的方法。使用这种方法我们同时在 COCO检测数据集和 ImageNet分类数据集上训练了YOLO9000。我们的联合训练方法使得YOLO9000可以预测目标类别的检测结果而不需要带标签的检测数据集。我们在 ImageNet检测任务上验证了我们的方法。YOLO9000在ImageNet检测验证集上获得了19.7 mAP的精度,尽管在200个类别中只有44个带标签的检测数据 。剩下的156个类别不在COCO数据集中,YOLO9000也获得了16.0 mAP。但是YOLO 不仅可以检测200个类别,它可以预测超过9000个不同的对象类别的检测。而且它仍然可以实时运行。

1 介绍

【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第2张图片
  通用的目标检测模型应该快速、准确并且能够识别各类的目标。自从引入神经网络,检测框架变得越来越快而准了。但是大部分检测方法仍然受限于对象类别少
  与用于分类和标记等其他任务的数据集相比,目前的目标检测数据集是有限的。最常见的检测数据集包含数千张到数十万张带有数十到数百个标签图像。分类数据集以百万计的图像,其中包含数万或数十万个类别。
  我们想要检测能够达到目标分类的规模级别。但是用于检测的标签图像相比分类和标记的标签昂贵得多。(标签通常由用户免费提供的)因此,我们无法在不远的未来看到和分类数据集相同规模的检测数据集。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第3张图片
  我们提出一种新的方法可来利用我们已有的大量分类数据,并使用它区扩展现有检测系统的范围。我们的方法使用对象分类的分层视图,允许我们将不同的数据集组合在一起。
  我们还提出了联合训练的算法,允许我们同时在检测和分类数据上寻来你目标检测器。我们的方法利用标记的检测图像来学习精确定位目标,同时使用分类图像来增加其词汇量和鲁棒性。
  使用这种方法我们训练了YOLO9000,一种实时的目标检测器可以检测超过9000个不同的目标类别。首先我们改进基准YOLO检测系统提出了YOLOv2,一种最先进、实时的检测器。然后使用我们的数据组合方法和联合训练算法对来自ImageNetd的9000多个类别以及来自COCO的检测数据上进行了训练。
  所有的代码和预训练模型可以在http://pjreddie.com/yolo9000/中获取。

2 更准确

【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第4张图片
  与最先进的检测系统相比,YOLO存在各种缺陷。YOLO与Fast R-CNN的误差分析表明了YOLO犯了大量的定位错误。再者,YOLO对比基于提取候选区域的方法有相对低的召回率。因此,我们主要关注于在保持分类准确率的同时提高召回率和定位准确率。
  计算机视觉通常趋于更大、更深的网络。更佳的性能通常取决于训练更大的网络或者将多个模型整合到一起。但是,对于YOLOv2我们想要更高精度的检测器,但是仍然很快。不是扩大网络规模,我们简化网络并使表观特征更容易学习。我们将过去工作的各种启发融合到我们自己新的概念中改善了YOLO 的性能。结果如表2所示。
  Batch Normalization。BN(批归一化)在模型收敛上有很明显的改善,而不需其他形式的归一化。YOLO在所有卷积层后面增加BN层,在 mAP得到了2%的提高。BN层还有助于模型的正则化。使用BN层,我们就可以移除dropout层而不会导致模型过拟合。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第5张图片
  High Resolution Classifier.最先进的检测方法都使用分类器在ImageNet数据集上进行预训练。从AlexNet开始大部分分类器执行的输入图像尺寸都小于256x256.原来的YOLO训练分类器网络在224x224分辨率,检测时增加分辨率到448。这意味着网络必须同时切换学习目标检测并调整新的输入分辨率。
  对于 YOLOv2,我们首先在上一全448x448分辨率微调了分类网络并训练了10轮。这使得网络有足够的时间调整滤波器在更高的输入分辨率上更好地工作。然后我们微调了检测的结果网络。高分辨率的分类网络增加了几乎 4% 的mAP。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第6张图片
  Convolutional With Anchor Boxes.YOLO直接使用卷积特征提取器顶层的全连接层来预测边界框的坐标。不同于 直接预测坐标,Faster R-CNN使用人工挑选的先验框来预测边界框的坐标。在 Faster R-CNN中候选区域提取网络(RPN)仅使用卷积层的预测先验框的偏移和置信度。因为预测层是卷积的,所以 RPN在特征图上的每个位置预测这些偏移量。预测偏移量而不是坐标可以简化问题,使网络更易于学习。
  我们从YOLO中移除了全连接层并使用锚框预测边界框。首先,我们去掉一个池化层使网络的卷积层输出更高的分辨率。我们还缩小网络规模处理416的输入图像而不是448x448的输入。我们之所以这么做是因为我们想要在特征图上有奇数个坐标,这样只有一个单一的中心单元。目标,特别是大目标,往往占据图像的中心,因此用一个的中心位置去预测这些目标更好,而不是四个相邻的位置。YOLO的卷积层对图像下采样了32倍,因此使用一个416的输入图像我们可以得到13x13的输出特征图。
  当我们移动到锚框时,我们也将类预测机制与空间位置解耦,而不是预测每一个锚框的类别和对象。YOLO之后,目标预测仍然预测真实框和先验框的IOU(交并比),而类别预测是在包含对象的条件下该类的条件概率。
  使用锚框准确率小幅度降低。YOLO每张图像只预测98个框,但使用锚框我们的模型预测超过1000个类别。没有锚框我们的中级模型取得69.5的 mAP和81%的召回率。使用锚框我们的模型取得69.2 的mAP和88%的召回率。尽管 mAP下降,但召回率上升这意味着我们的模型还有提升的空间。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第7张图片
  Dimension Clusters(尺度聚类)。我们在YOLO中使用锚框时遇到了两个问题。第一个问题是框的尺寸是人工挑选的。网络可以学习适当地调整框的尺寸,如果我们一开始为网络挑选更好的先验框,就可以使网络更容易学习预测更好的检测结果。
  我们在训练集的边界框上运行K-mean聚类实现自动找到好的先验框,替代手动选择先验框。如果我们使用欧氏距离的标准K-mean大框会比小框产生更大的误差。但是,我们真正想要的先验框取决于好的IOU分数,与框的尺寸无关。因此距离矩阵我们使用: d ( b o x , c e n t r o i d ) = 1 − I O U ( b o x , c e n t r o i d ) d(box,centroid)=1-IOU(box,centroid) d(box,centroid)=1IOU(box,centroid)
  我们运行k-mean以不同的k值并用最近的质心绘制了IOU平均线,如图2。我们选择k=5作为模型复杂度和高召回率之间良好的权衡。聚类的质心明显不同于人工选择的锚框。更少的矮胖框,更多的瘦高框。
  我们在表1对比了平均IOU和我们聚类策略先验框最接近的人工挑选的锚框。只有5个先验框的质心性能和9个锚框相似,平均IOU为61.0比60.9。如果我们使用9个质心我们看到更高的平均IOU。这表明了使用k-means 产生边界框,在模型开始时就能有更好的表示,并使任务更易于学习。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第8张图片
  图2:在VOC和COCO数据集上聚类框的尺寸。我们对边界框的尺寸运行K-mean 聚类算法,以获得模型较好的先验框。左图显示了我们选择不同的K值得到的平均IOU曲线图。我们发现当K=5时召回率和模型复杂度之间得到了很好的权衡。右图显示了 VOC 和 COCO数据集上的相对质心。两组的先验框都倾向于更瘦、更高的框,而COCO 数据集在尺寸上的差异比VOC更大。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第9张图片
  表1:VOC 2007上最接近先验框的边界框的平均IOU。使用不同的方法在 VOC 2007生成的边框和与其最接近的、未修改的先验框的平均IOU。聚类给出的结果比使用手动挑选的先验框更好。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第10张图片
  Direct location prediction(直接的定位预测)。当在YOLO中使用锚框时我们遇到了第二个问题:模型不稳定,特别是在早期迭代期间。不稳定的主要因素主要来自于对 ( x , y ) (x,y) (x,y)边框坐标的预测。在区域候选网络中网络预测 t x , t y t_x,t_y tx,ty,而 ( x , y ) (x,y) (x,y)中心坐标计算如下: x = ( t x ∗ w a ) − x a ; y = ( t y ∗ w a ) − y a x=(t_x*w_a)-x_a;y=(t_y*w_a)-y_a x=(txwa)xa;y=(tywa)ya
  例如,预测 t x = 1 t_x=1 tx=1将按锚框的宽度向右移动框,预测 t x = − 1 t_x=-1 tx=1将按相同的数量向左移动框。
  这个公式不受任何约束,因此任何锚框都可以在图像中的任何点结束,而不管该锚框的位置在哪。在随机初始化的情况下,模型需要话很长的时间才能稳定地预测到合理的偏移量。
  我们采用的YOLO方法不是预测偏移量,而是预测相对于网络单元格位置的定位坐标。这将真实框限制在0-1之间。我们使用逻辑激活函数限制网络预测落到这个范围内。
  网络对输出特征图像的每个单元格预测5个边界框。网络对每个边界框预测5个定位值 t x , t y , t w , t h , t o t_x,t_y,t_w,t_h,t_o tx,ty,tw,th,to。如果单元格相对于图像左上角偏移了 ( c x , c y ) (c_x,c_y) (cx,cy),且先验框的宽度和高度为 p w , p h p_w,p_h pw,ph则对应的预测为:【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第11张图片
  由于我们对位置预测进行了约束,因此参数更容易学习,从而使网络更稳定。和使用锚框的方法相比,使用维度聚类并直接边界框的中心位置使YOLO提升了5%。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第12张图片
  图3:具有尺寸先验和位置预测的边界框。我们预测了边界框的宽和高作为相对于集群质心的偏移量。我们使用Sigmoid函数来预测边界框相对于过滤器位置的中心坐标。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第13张图片
  Fine-Grained Features(细粒度特征)。改进后的YOLO在13x13的特征图像预测检测。虽然对于大目标来说已经足够了,但是有利于从细粒度中定位小目标。 Faster R-CNN 和 SSD都在网络中的不同特征图上运行提取网络以获得一系列的分辨率。我们采用不同的方法,简单添加 一个passthrough层,就可以使特征从早期层到26x26的分辨率。
  passthrough层通过堆叠相邻的特征到不同的通道而不是空间位置实现了高分辨率特征和低分辨率特征的级联,类似于 ResNet中 identity mappings。这将26x26x512维度的特征图转变成13x13x2048的特征图,这可以和原始特征级联。我们的检测器在这个扩展特征图的顶层运行,因此它可以获得细粒度特征。这使模型提升了1%的性能。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第14张图片
  Multi-Scale Training(多尺度训练)。原始YOLO使用448x448的输入分辨率。增加锚框后,我们将分辨率调整为416x416。但是,因为我们的模型只使用卷积层和池化层,因此可以动态调整大小。我们想要YOLOv2能够更加在不同大小地图像上鲁棒地运行,所以我们将其训练到模型中。
  我们不固定输入图像的大小,而是每隔几次迭代就改变网络。没10batch我们的网络就随机选择新的图像尺寸。因为我们模型降采样了32倍,因此我们从以下32的倍数中选择:{320,352,…,608}。因此最小的是320x320,最大的是608x608。我们将网络规模调整到该维度,并继续进行训练。
  这种策略迫使网络学会在各种输入维度上很好地进行预测。这意味着相同的网络可以预测不同的分辨率。网络在小维度上运行得更快,所以YOLOv2可以提供速度和精度之间简单的权衡。
  在低分辨率的情况下,YOLOv2作为一种廉价的、低精度的检测器。在288×288分辨率下,它的运行速度超过90FPS,而MAP几乎与Fast R-CNN相当。这使得它非常适合用于较小的GPU、高帧视频和多个视频流。
  在高分辨率下,YOLOv2是可以在VOC 2007数据集上达到 78.6 mAP的一种最先进的检测器,同时仍然以高于实时的速度运行。如表3在VOC 2007数据集上对比了YOLOv2和其他框架,见图4。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第15张图片
  表3:PASCAL VOC 2007上的检测框架。YOLOv2比之前的检测方法更快、更准。它可以在不同分辨率上运行实现速度与精度的简单权衡。每个YOLOv2条目都是相同的训练模型,只是输入的分辨率不同。所有的计时信息都在GeForce GTX Titan X 上(原装,不是 Pascal型号)。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第16张图片
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第17张图片
  Further Experiments(进一步实验)。我们训练YOLOv2在 VOC 2012检测。表4 显示了 YOLOv2与其他最先进的检测系统之间的性能对比。YOLOv2达到了 73.4 mAP,仍然比其他竞争的方法运行快得多。我们还对COCO数据集进行了训练,并在表5中的与其他方法进行了比较。在VOC指标(IOU=0.5)上,YOLOv2获得了44.0 MAP,与SSD和 FasterR-CNN相当。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第18张图片
  表4: PASCAL VOC2012测试检测结果。YOLOv2的性能与最先进的探测器如更快的R-CNN与Resnet和SSD512不相上下,速度快了0.2。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第19张图片

3 更快

【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第20张图片
  我们希望检测是又准又快的。大部分的检测应用,如机器人、无人驾驶汽车,都依赖于低延迟的预测器。为了最大限度地提高性能,我们将YOLOv2设计为从头开始提速。
  大部分的检测框架都依赖于VGG-16作为基础的特征提取器。VGG-16是强大、准确的分类网络但是它不必要的过于复杂了。VGG-16的卷积层处理每一张224x224分辨率的图像需要306.9亿次浮点运算。
  YOLO框架使用 基于Googlenet算法的自定义框架。网络比VGG-16快得多,每一次前向传播只需要85.2亿次计算。但是它的准确率比VGG-16稍差。在224 × 224 ImageNet数据集中YOLO的无裁剪的 top-5准确率达到了 88.0%,VGG-16为 90.0%。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第21张图片
  我们提出了一种新的分类模型作为YOLOv2的基础。我们的模型建立在网络设计方面先前的工作以及该领域的常见知识的基础上。和VGG模型相似,我们主要使用3 × 3的滤波器,并在每一层池池化后将通道数翻倍。 在Network in Network (NIN)研究的基础上,我们使用全局平均池化进行预测,并使用 1 × 1滤波器来降采样 3 × 3卷积层之间的特征表示。我们使用BN层来稳定训练、加速收敛和归一化模型。
  我们最终的模型叫 Darknet-19,有19层卷积层和5层的最大池化层。完整的描述见表6。Darknet-19只需要55.8亿的运算量就可以处理一张图像并在 ImageNet达到 72.9%的top1准确率以及91.2%的 top-5准确率。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第22张图片
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第23张图片
  分类训练:我们将模型在标准 ImageNet 1000类分类数据集上训练160轮次,使用随机梯度下降,起始学习率为0.1,多项式衰减为4次幂,权重衰减为0.0005,动量为0.9,并使用Darknet神经网络框架。在训练过程中我们使用标准数据增强策略包括随机裁剪、平移以及色调、饱和度和曝光率变化。
  如上所述,初始训练224 × 224的图像之后,我们微调网络到更大的448尺寸。对于这种微调,我们使用上面的参数进行训练,但只训练10个轮次,并以 1 0 − 3 10^{-3 } 103的学习率开始。在这个高分辨率条件下,我们的网络可以实现 top-1准确率76.5% 和 top-5 准确率 93.3%.
  检测训练:我们通过移除最后的卷积层将网络修改为用于检测,并替换为 3个3 × 3的卷积层,每个卷积层的卷积核个数为1024,后面紧接着一个1 × 1的卷积层,卷积核个数为检测所需的输出维度。对于VOC数据集我们预测5个边界框,每个框包含5个坐标和20个类别,总共是125个滤波器。我们还在3×3×512层和倒数第二卷积层之间增加了一个 passthrough层,因此我们的模型可以使用细粒度特征。
  我们对网络进行了160轮的训练,初始学习率为 1 0 − 3 10^{-3} 103,在60-90轮之间除以10。我们使用的权重衰减为0.0005,动量为0.9。我们使用类似于YOLO和SSD相似的数据增强,包括随机裁剪,颜色转化等。我们对COCO和VOC数据集使用相同的训练策略。

4 类别更多

【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第24张图片
  我们在分类和检测数据集上提出了联合训练机制。我们的方法使用标记为检测的图像来学习检测特定的信息,如边界框、坐标预测和对象以及如何对常见的对象进行分类。使用只有类别标签的图像用于扩充可以检测到的类别数量。
  在检测阶段我们混合检测和分类数据集的图像。当我们的网络看到被标记为检测的图像我们可以反向传播基于YOLOv2的整体损失函数。当看到分类图像时,只反向传播框架中特定类别部分的损失。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第25张图片
  这种方法实际上有一些挑战。检测数据集中只有常见的类别和通用的标签,像“狗”、“船”。分类数据集有着更广和更深的标签范围。ImageNet数据集中有着超过一百种狗的类别,包括“诺福克梗犬”、“约克郡梗犬”、“贝林顿梗犬”。如果我们想要在两类数据集中训练则需要统一的方式生成这些标签。
  大部分分类方法在所有可能的类别中使用softmax层来计算最终的概率分布。使用Softmax假设这些类都是相互排斥的。这给组合数据带来了问题,例如你并不希望使用这种模型来组合ImageNet 和 COCO数据集,因为“诺福克梗犬”和“犬”并不是相互排斥的。
  取而代之,我们可以使用多标签模型来组合并不相互排斥的数据集这种方法忽略了我们所知道的关于数据集的所有结构,如COCO数据集的类都是相互排斥的。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第26张图片
  分层分类词典。ImageNet标签是从WordNet中提取的,WordNet是一个语言数据库,用于组织概念及其如何关联。在WordNet中,诺福克梗和约克郡梗都是猎犬的下位词,是猎狗的一种,是狗的一种,等等。大多数分类方法假定标签的结构是扁平的,然而,对于组合数据集,结构正是我们所需要的。
  Wordnet的结构是有向图,而不是树,因为语言很复杂。例如,“狗”既是“狗”的一种类型,也是“家畜”的一种类型,两者在WordNet中都是同义词。我们没有使用完整的图结构,而是通过根据ImageNet中的概念构建分层树来简化问题。
  为了构建树结构,我们检查ImageNet中的可视名词,并查看它们通过WordNet图到达根节点的路径,在本例中是“物理对象”。许多同义词集在图中只有一条路径,因此我们首先将所有这些路径添加到树结构中。然后,我们迭代地检查剩下的概念,并添加尽可能少的增长树的路径。因此,如果一个概念有两个到根的路径,其中一条路径会为树添加三条边,而另一条路径只会添加一条边,那么我们选比较短的路径。
  最终的结果是WordTree,一个视觉概念的分层模型。为了使WordTree执行分类,我们在每个节点预测条件概率,以确定该同义词集的每个下位词的概率。例如,在“梗”节点,我们预测:(公式如上图)
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第27张图片
  如果我们想要计算特定节点的绝对概率,我们只需沿着路径通过树到达根节点,然后乘以条件概率。因此,如果我们想知道一张照片是不是诺福克梗犬,我们需要计算:(公式如上图)
  出于分类目的,我们假设图像包含一个对象:Pr(物理对象)=1。
  为了验证这种方法,我们在使用1000类ImageNet数据集构建的WordTree上训练Darknet-19模型。为了构建WordTree1k,我们添加了所有中间节点,这将标签空间从1000扩展到1369。在训练期间,我们通过树结构传递真实标签,以便如果图像被标记为“诺福克梗”,它也被标记为“狗”和“哺乳动物”等。为了计算条件概率,我们的模型预测了1369个值的向量,我们计算作为相同概念的下位词的所有系统集的Softmax,参见图5。
  使用与以前相同的训练参数,我们的 Darknet-19达到了71.9%的TOP-1准确率和90.4%的TOP-5准确率。尽管增加了369个额外的概念,并让我们的网络预测树形结构,但我们的准确率仅略有下降。以这种方式执行分类也有一些好处。在新的或未知的对象类别上,性能会正常下降。例如,如果网络看到一只狗的图片,但不确定它是哪种狗,它仍然会以较高的置信度预测“狗”,但在下义词中分布的置信度较低。
  这一方法也适用于检测。现在,我们不是假设每个图像都有一个对象,而是使用YOLOv2的客观性预测器来为我们提供 P r Pr Pr(physical object)的值。检测器预测一个边界框和概率树。我们向下遍历树,在每次分割时采用最高置信度的路径,直到我们达到某个阈值,并预测该对象类。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第28张图片
  图5:对ImageNet和WordTree的预测。大多数ImageNet模型使用一个大的Softmax来预测概率分布。使用WordTree,我们对协同下位词执行多个Softmax操作。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第29张图片
   用WordTree结构联合数据集。我们可以使用 WordTree结构以合理的方式来联合多个数据集。我们只需要将数据集中类映射到树中的同义词集中。图6展示了使用WordTree结构联合来自ImageNet 和COCO数据集的标签。WordNet是非常多源的,因此我们可以对大部分数据集使用这项技术。
  联合分类和检测。现在我们可以使用 WordTree结构来联合数据集来训练分类和检测的联合模型。我们想要训练一个超大规模的检测器,因此我们使用COCO检测数据集和包含9000类来自完整版本的ImageNet数据集来创建联合数据集。我们还需要验证我们的方法,因此增加了 ImageNet竞赛挑战中的不包含其中的所有类别。此数据集对应的 WordTree有9418类。 ImageNet是一个非常大的数据集,因此我们通过对COCO数据集过采样来平衡数据集,以便 ImageNet使仅大4倍。
  使用上述的数据集我们训练了YOLO9000。我们使用基准YOLOv2框架,但是只有3个先验框代替5个来限制输出的尺寸。当我们的模型看到检测的图像时,反向传播正常的损失。对于分类损失,我们只反向传播对应标签级别或以上的损失。例如,如果标签是“狗”,我们会将全部的损失分配给树的下一级预测,因为我们没有德国牧羊犬和金毛犬的信息。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第30张图片
  图6:使用WordTree层次结构组合数据集。使用WordNet概念图,我们构建了视觉概念的层次树。然后,我们可以通过将数据集中的类映射到树中的同义词集来合并数据集。为了便于说明,这是WordTree的简化视图。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第31张图片
  当看到分类图像时我们只反向传播分类损失。要做到这点,我们只需要找到预测该类的最高概率的边界框,并仅在预测树上计算损失。我们还假定预测框与真实框的重叠率IOU至少为0.3,并且我们基于这一假定反向传播objectness损失。
  使用联合训练,YOLO9000使用COCO的检测数据集学习在图像中找到对象,使用 ImageNet数据集学习对这些目标进行更细粒度的分类。
  我们在 ImageNet检测任务中验证了YOLO9000。 ImageNet的检测任务中只有44种与COOO的共享类,这意味着YOLO9000在测试图像中只能看到分类数据而不是检测数据。YOLO9000获得了 19.7 mAP的整体准确率,在标注数据集中从未见过的156类识别准确率为16.0 mAP。该mAP高于DPM的结果但YOLO9000在不同的数据集上进行了训练,仅进行了部分监督训练。它还同时检测9000个其他对象类别,所有这些都是实时的。
  当我们分析YOLO9000在ImageNet上的表现时,我们会发现它很好地学习了新物种的动物,但在学习服装和设备等类别方面却举步维艰。新的动物更容易学习,因为客观性预测很好地概括了COCO数据集中的动物。相反,COCO没有为任何类型的服装设置边界框标签,只为人设置边界框标签,因此YOLO9000努力为“太阳镜”或“泳裤”等类别建模。
【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第32张图片
  表7:YOLO9000在ImageNet上的最佳和最差类别。156个弱监督类别中AP最高和最低的类别。YOLO9000为各种动物学习了很好的模型,但在服装或设备等新课程中却举步维艰。

5 总结

【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger_第33张图片
  我们介绍了YOLOv2和YOLO9000这两种实时检测系统。YOLOv2是最先进的,在各种检测数据集上比其他检测系统更快。此外,它可以在各种图像尺寸下运行,以在速度和精度之间提供平滑的折衷。
  YOLO9000是一个通过联合优化检测和分类来检测9000多个对象类别的实时框架。我们使用WordTree合并来自不同来源的数据,并使用我们的联合优化技术在ImageNet和CoCo上同时进行训练。YOLO9000是朝着缩小检测和分类之间的数据集大小差距迈出的重要一步。
  我们的许多技术都是在目标检测之外推广的。我们对ImageNet的WordTree表示为图像分类提供了更丰富、更详细的输出空间。使用层次分类的数据集组合在分类和分割领域将是有用的。像多尺度训练这样的训练技术可以在各种视觉任务中提供好处。
  在未来的工作中,我们希望使用类似的技术来进行弱监督图像分割。我们还计划使用更强大的匹配策略来改进我们的检测结果,以便在训练期间为分类数据分配弱标签。计算机视觉拥有海量的标签数据。我们将继续寻找将不同来源和结构的数据结合在一起的方法,以建立更强大的视觉世界模型。

  
  
  
  

你可能感兴趣的:(YOLO,深度学习,目标检测,计算机视觉)