一、前言
-
大多数目标检测方法的检测种类有限,仅能检测一小范围的类别
-
本文使用了目标分类的分层视图的方法,允许我们将不同的数据集组合在一起
-
本文提出了一种联合训练算法,能够在检测和分类数据上训练目标检测器。
-
利用带标签的检测图像数据集来训练网络学习能精确定位物体的能力,同时使用分类图像数据集来训练以增加鲁棒性。
二、模型和方法
2.1 设计思路
- 简化网络,以提高网络的检测速度
- 将多种方法结合起来使用,以增强网络的学习能力
上表中,列出的大部分设计方法都会带来mAP的显著增加,除了使用anchor box和使用新网络这两种方法
2.2 设计方法
2.2.1 批标准化
操作:
- 在YOLO的所有卷积层上添加批标准化
结果:
- 显著改善了收敛性
- 有助于模型的正则化,消除了对其他形式正则化的需求
- 使用批标准化后,可以移除dropout且不会导致过拟合
- 在mAP中获得了超过 2 % 2\% 2%的改进
2.2.2 高分辨率分类器
操作:
- 将原来分类器网络训练的224×224的输入改为448×448
- 在ImageNet上以448×448的分辨率对分类网络进行10个epoch的微调
- 在目标检测数据集上微调上述得到的网络
结果:
- 这个高分辨率分类网络增加了近 4 % 4\% 4%的mAP
2.2.3 采用先验框(Anchor Box)
说明:
YOLO的卷积层会将图像下采样32倍,448x448,经过下采样,最终得到的14x14的feature map,而416x416,经过下采样,最终得到的是13x13的feature map,奇数尺寸的feature map上,其中心点唯一,这样能更好的预测位于输入图像中心的目标位置
操作:
- 从YOLO中移除全连接层,并使用anchor box来预测边界框
- 消除了一个池化层,使网络卷积层输出具有更高的分辨率
- 操作416×416的输入图像而不是448×448,为了最终得到奇数尺寸的feature map,从而使得中心点只有一个
- 将分类预测和位置预测分离成两个部分,并针对每个acnhor box进行分类和位置的预测
结果:
- mAP有微小的下降,但召回率有较大的提升
- 没有acnhor box,mAP:69.5,召回率:81%
- 有acnhor box,mAP:69.2,召回率:88%
2.2.4 聚类分析获取先验框尺度
说明:
在YOLO模型上采用anchor boxes有两个关键问题,第一:anchor box的尺度为人工设定
在Faster R-CNN和SSD中,先验框的尺度(长和宽)都是手动设定的,带有一定的主观性。如果选取的先验框尺度比较合适,那么模型更容易学习,从而做出更好的预测。因此,YOLOv2采用k-means聚类方法对训练集中的边界框做了聚类分析。
因为设置先验框的主要目的是为了使得预测框与ground truth的IOU更好,所以聚类分析时选用box与聚类中心box之间的IOU值作为距离指标
操作:
- 在训练集边界框(Ground truth)上进行k-means聚类,以自动找到更好的先验框尺寸
- 选择如下公式来度量距离: d ( b o x , c e n t r o i d ) = 1 − I O U ( b o x , c e n t o r i d ) d(box, centroid)=1-IOU(box, centorid) d(box,centroid)=1−IOU(box,centorid),其中:
- centroid是聚类时被选作中心的边界框
- box就是其它边界框
- d就是两者间的“距离”,IOU越大,“距离”越近
结果:
- 通过聚类分析,发现数据集中的边界框尺度偏向于高瘦型
- 选择了5个聚类中心框,因为此时模型复杂度和召回率之间有较好的折中,并且与使用9个anchor box时的性能相当
- 使用5个聚类框,Avg IOU:61.0
- 使用9个anchor box,Avg IOU:60.9
上图右边显示了5种聚类得到的先验框,VOC和COCO数据集略有差异,不过都有较多的瘦高形边框
2.2.5 约束预测边框的位置
说明:
在YOLO模型上采用anchor boxes第二个关键问题:模型预测的位置不稳定,尤其是在训练早期阶段,其位置预测公式为:
-
x = ( t x ∗ w a ) + x a x = (t_x*w_a)+x_a x=(tx∗wa)+xa
-
y = ( t y ∗ h a ) + y a y = (t_y*h_a)+y_a y=(t