论文:YOLO9000: Better,Faster,Stronger
原文下载:https://arxiv.org/pdf/1612.08242v1.pdf
工程代码:http://pjreddie.com/darknet/yolo/
通用的目标检测系统应该快速准确的识别各种各样的目标。自从引入神经网络以来,目标检测系统变得更快更准确。但是大多数目标检测方法仍然局限于一小部分的对象。
相对比之前的目标检测系统,YOLO 9000 目标检测系统,在以下三个方面做出了改进。
2.1 Better
与最先进的检测系统相比,YOLO有许多缺点。 YOLO与Fast R-CNN对比误差分析表明,YOLO产生了大量的定位误差。 此外,与区域生成的方法相比,YOLO的召回率相对较低。 因此,我们对YOLO的提升主要侧重于提高其召回率和定位准确度,同时保持其分类的准确性。
机器视觉一般趋向于使用更大,更深的神经网络。训练更大的网络或将多个模型集合在一起往往能提高性能。 但是,在YOLOv2中,我们需要一个更精确更快的目标检测器。 因此我们并不不是扩大我们的网络,而是简化网络,然后让网络的表示更容易学习。 我们将过去工作中的各种想法与我们自己的先进概念汇集起来,用来提高YOLO的性能。 表1列出了提升YOLO性能的方法以及性能结果。
表1 从YOLO 到 YOLOv2
Batch Normalization
Batch Normalization显着改善模型的收敛性,同时消除了对其他形式的正则化的需求。 通过在YOLO中的所有卷积层上添加Batch Normalization,我们的目标检测系统的mAP提升了2%。 Batch Normalization也有助于泛化模型。 通过Batch Normalization,我们可以从模型中删dropout,而不会担心过拟合的问题。
High Resolution Classifier
所有最先进的目标检测方法都使用在ImageNet上预先训练好的分类器。 从AlexNet开始,大多数分类器在小于256×256的输入图像上进行。 原来的YOLO使用224×224分辨率的图像训练分类器网络,并将分辨率提高到448×448进行目标检测。 这意味着网络必须同时从学习目标分类切换到学习对象检测并适应新的输入分辨率。
对于YOLOv2,我们首先在分辨率为448×448的分辨率网络上对ImageNet的数据集,进行了10个epoch参数微调。 这给了网络时间来调整其滤波器以更好地处理更高分辨率的图像的输入。 然后,我们再微调目标检测的网络。 这个高分辨率的分类器提升接近4%的mAP。
Convolutional With Anchor Boxes
YOLO 使用卷积特征提取层之上的全联接层来预测bounding box的坐标,而在YOLOv2中,我们去掉了全联接层,直接使用anchor box 的坐标来预测bounding box的坐标。使用anchor box 会让精度下降,但是能够在之前将预测box的数目从98提升至上一千多个,同时提高了召回率。
Dimension Clusters
在YOLO中,box的大小是人工选择的,在YOLOv2中,使用了 k-means聚类的方法来自动生成box的大小。经过对比发现,使用k-means聚类生成的box使得模型具有更好的表现性。
Direct location prediction
不同于区域生成模型中的坐标偏移预测方法,我们延续使用了YOLO模型中的坐标预测方法,即通过计算相对于cell的相对位置来表示坐标。为了使相对位置的取值范围落在0到1之间,我们使用了逻辑激励函数来进行限制。
Fine-Grained Features
修改后的YOLO的特征图大小为13*13,这个尺寸对于检测大尺寸 的目标已经足够了。但为了在小尺寸目标检测中适用,我们使用可较细的特征图。不同于Faster R-CNN和 SSD,我们在YOLO中添加了一个 Passthrough Layer 来取得之前的26*26分辨率的层的特征。Passthrough Layer 通过把相邻特征叠加到不同的通道中,把高分辨率的特征和低分辨率的特征连接起来。这可以将特征图从26*26*512转为13*13*2048。YOLOv2的检测器使用了细粒度的特征,使得模型性能提升了1%。
Multi-Scale Training
不同于之前改变输入图像的像素大小,我们在YOLOv2中改变网络的大小。每10个batch,我们随机改变网络的大小{320, 352, …, 608}。
2.2 Faster
Darknet-19
表2 Darknet-19结构
Training for classification
160 个epoch
使用随机梯度下降
初始学习率为0.1
polynomial rate decay为4,weight decay为0.0005 ,momentum 为0.9
训练过程中使用了数据扩充
Training for detection
160个epoch
初始学习率为10-3
在第60、90的epoch,将学习率降为原来的1/10
weight decay为0.0005 ,momentum 为0.9
训练过程中使用了数据扩充
2.3 Stronger
YOLOv2在各种数据集上显示都是最先进的,比其他的目标检测系统都要快。此外它还能在运行在各种尺寸大小的图像上,能在精度和速度之间取得完美的平衡。
相关链接:论文 | YOLO(You Only Look Once)目标检测