Abstract
- YOLO9000: a state-of-the-art, real-time 的目标检测系统,可以检测超过9000种的物体分类。
- 本论文提出两个模型,YOLOv2和YOLO9000。
- YOLOv2:
- 是对YOLO改进后的提升模型。
- 利用新颖的,多尺度训练的方法,YOLOv2模型可以在多种尺度上运行,在速度与准确性上更容易去trade off。
- YOLO9000:
- 是提出的一种联合在检测和分类数据集上训练的模型,这种联合训练的方法使得YOLO9000能够为没有标签的检测数据目标类预测。
- 可以检测超过9000个类。
Introduction
- 目前,许多检测方法依旧约束在很小的物体集上。
- 目前,目标检测数据集相比于用于分类和标注的数据集来说,是有限制的。
- 最常见的检测数据集包含数十到数十万的图像,具有几十到几百个标签,比如Pascal、CoCo、ImageNet。
- 分类数据集具有数以百万计的图像,具有数万或数十万种类别,如ImageNet。
- 目标检测数据集永远不会达到和分类数据集一样的等级。
- 本论文提出一种方法,利用分类数据集来作为检测数据集,将两种截然不同的数据集结合。
- 本论文提出一个在目标检测和分类数据集上联合训练的方法。此方法利用标记的检测图像学习精确定位对象,而它使用分类图像增加其词汇和鲁棒性。
Better
YOLO产生很多的定位错误。而且YOLO相比于region proposal-based方法有着相对较低的recall(查全率)。所以主要任务是在保持分类准确率的前提下,提高recall和减少定位错误。
我们从过去的工作中融合了我们自己的各种新想法,以提高YOLO的性能。 结果的摘要可以在表中找到:
Batch Normalization
- 得到2%的mAP的提升,使用Batch Normalization,我们可以从模型中删除dropout,而不会出现过度缺陷。
High Resolution Classifier
- 对于YOLOv2,我们首先在ImageNet对全部448×448分辨率图像上进行10epochs的微调来调整分类网络。 然后我们在检测时调整resulting network。 这种高分辨率分类网络使我们增加了近4%的mAP。
Convolutional With Anchor Boxes
- YOLO利用卷积特征提取器最顶端的全连接层来直接预测BB的坐标。而Faster R-CNN是利用首选的priors来预测BB。
- 预测BB的偏移而不是坐标可以简化问题,并使网络更容易学习。本论文从YOLO中移去了全连接层,并且利用anchor box来预测BB。
- 我们移去了pooling层,使得网络的卷积层的输出有更高的像素。
- 同时将网络缩减到在416*416像素的图片上操作。 我们这样做是因为我们想要特征图中具有奇数个位置,因此存在单个中心单元。
- 当我们移动到anchor boxes时,我们也将class prediction机制与空间位置解耦,而是为每个anchor box预测的类和对象。 同YOLO一样,objectness prediction仍然预测ground truth和所提出的框的IOU,并且class predictions预测该类的条件概率,假定存在对象。(没太懂)
Dimension Clusters
将YOLO与anchor boxes结合有两个问题,第一个是anchor box的长宽是认为选定的。
我们不是手动选择先验(priors),而是在训练集边界框上运行k-means聚类,以自动找到好的先验。
我们真正想要的是导致良好的IOU分数的priors,这是独立于盒子的大小。 因此,对于我们的distance metric,我们使用:
我们选择k = 5作为模型复杂性和高召回率之间的良好权衡。这样非常不同于相比于人工选择的boxes。更多的又高又瘦的boxes。
Direct location prediction
将YOLO与anchor boxes结合有两个问题,第二个模型不稳定,特别是在早期迭代中。
并非预测偏移,我们遵循YOLO的方法并预测相对于网格单元的位置的位置坐标。 这将ground truth限制在0和1之间。我们使用逻辑激活来约束网络的预测落在该范围内。
网络为每一个BB预测5个坐标:$t_x, t_y, t_w, t_h, t_o$.
结合Dimension Clusters和Direct location prediction,YOLO提升5%的mAP。
Fine-Grained Features
- 修改后的YOLO在1313的feature map上进行检测。 虽然这对于大对象是足够的,但是它可以从用于定位较小对象的*细粒度特征中受益。
- 添加一个传递层,将分辨率从前面的层变为从26 x 26分辨率。
Multi-Scale Training
- 我们希望YOLOv2可以足够鲁邦在不同尺寸的images上进行训练。
- 并非使用固定的输入图像尺寸,我们在每几次迭代后改变网络。每10batches,我们的网络随机选择一个新的图像尺寸。
Faster
- 大多数检测框架依赖VGG-16作为基本特征提取器。VGG-16是一个强大、准确的分类网络,但是也很复杂。
- YOLO框架使用的基于Googlenet架构的修改后的网络。比VGG-16快速,但是准确性比VGG-16稍差。
Darknet-19
供YOLOv2使用的新的分类模型。
最终模型叫做darknet-19,有着19个卷积层和5个maxpooling层。
Darknet-19处理每张图片只需要5.58 billion的操作。
Training for classification
- 在标准的ImageNet 1000类的数据集上利用随机梯度下降训练160 epochs。开始学习率为0.1,polynomial rate decay 是4,weight decay是0.0005,动量是0.9。
- 在训练期间,我们使用标准的数据增加技巧,包括随机裁剪,旋转,以及色调,饱和度和曝光偏移。
- 在224x224分辨率的图像上进行预训练,然后在448x448分辨率的图像上进行微调。
Training for detection
- 我们通过去除最后的卷积层来修改这个网络,并且替代地增加具有1024个滤波器的三个3×3卷积层,每个跟随着具有我们需要检测所需的输出数量的最后的1×1卷积层。
- passthrough层的添加:使网络能够使用fine grain feature。
Stronger
- 本论文提出一种机制,用来将分类和检测数据结合起来再一起训练。
- 在训练过程中,当看到用于检测的被标注的图片,我们会使用基于YOLOv2的代价函数进行反向传播。
- 在训练过程中,当看到分类图片,我们只从框架中用来分类部分来传递损失。
- 这种方法的challenge:
- 检测数据集中的标签是大分类,而分类数据集的标签是小分类,所以我们需要找一个方法来融合这些标签。
- 用来分类的许多方法都是使用softmax层来计算最后的概率分布,使用softmax层会假设类之间是互斥的,但是如何用本方法融合数据集,类之间本身不是互斥的。
- 我们所以使用multi-label模型来结合数据集,不假设类之间互斥。这种方法忽略了我们已知的数据的结构。
Hierarchical classification
- ImageNet标签是从WordNet中得来,一种结构化概念和标签之间如何联系的语言数据库。
- WordNet是连接图结构,而非树。我们相反并不实用整个图结构,我们将问题简化成从ImageNet的概念中构建有结构的树。
- WordTree
Dataset combination with WordTree
我们可以使用WordTree来介个数据集。
将数据集中分类映射成树中的下义词。
举例:将ImageNet和COCO数据集结合:
WordNet十分多样化,所以我们可以利用这种技术到大多数数据集。
Joint classification and detection
- 将COCO数据集和ImageNet数据集结合,训练处一个特别大规模的检测器。
- 对应的WordTree有9418个类。
- ImageNet是一个更大的数据集,因此我们通过对COCO进行过采样来平衡数据集,使ImageNet只以4:1的倍数来增大。
- 当我们的网络看见一张用来检测的图片,我们正常反向传播loss。对于分类loss,我们只在该label对应层次之上反向传播loss。比如:如果标签是“dog”,我们会在树中的“German Shepherd”和“Golden Retriever”中进一步预测错误,因为我们没有这些信息。
- 当我们的网络看见一张用来分来的照片,我们只反向传递分类loss。
- 使用这种联合训练,YOLO 9000使用COCO中的检测数据学习找到图像中的对象,并使用ImageNet中的数据学习分类各种各样的对象。
- 在ImageNet上利用YOLO9000来做detection,从而进行评估。ImageNet和COCO只有44个相同的类分类,意味着YOLO9000在利用部分监督来进行检测。
Conclusion
- 本论文提出两个模型,YOLOv2和YOLO9000。
- YOLOv2:是对YOLO改进后的提升模型。更快更先进。此外,它可以以各种图像大小运行,以提供速度和精度之间的权衡。
- YOLO9000:是提出的一种联合在检测和分类数据集上训练的模型,可以为没有任何标注检测标签的数据进行检测。可以检测超过9000个类。使用WordTree技术来组合不同来源的数据。
- 我们创造出许多目标检测之外的技术:
- WordTree representation.
- Dataset combination.
- Multi-scale training.
- 下一步工作:我们希望利用相似的技术来进行weakly supervised image segmentation.