YOLO_v2论文详解YOLO9000: Better, Faster, Stronge

论文地址: https://arxiv.org/abs/1612.08242 

或者:https://pjreddie.com/media/files/papers/YOLO9000.pdf

代码地址: http://pjreddie.com/yolo9000/ 

相关内容: YOLO_v1论文详解You Only Look Once,Unified, Real-Time Object Detection

目录

一、概览

1.1 贡献点

1.2 创新点

二、方法

2.1 Better

Batch Norm

High Resolution Classifier

Ancher Box

Dimension Clusters

Direct location prediction

Multi-scale training

2.2 faster

DarkNet-19

2.3 Stronger

Dataset combination and WordTree

Joint classification and detection

三、实验及结论


一、概览

1.1 贡献点

YOLO9000,可以检测超过9000个物体的目标检测模型。

  • 在YOLO的基础上,引入了各种改进。
  • 在PASCAL VOC与COCO数据集上达到了SOTA
  • 可以实现速度与准确率的trade off
  • 模型可以进行多尺度训练,并且可以对任意尺寸的图片进行检测。
  • 比目前最佳的SSD或者faster RCNN更快且准确率更佳。
  • 在VOC数据集上,67FPS的时候达到76.8mAP,40FPS的时候达到78.6mAP

1.2 创新点

改进训练方法,训练模型时不仅使用目标检测的数据,也使用大量的目标分类数据。

  • 引入了数据集结合的方法
  • 创建了目标检测SOTA的实时模型。
  • 从COCO数据集与ImageNet数据集结合模型可以分类9000样本的目标检测模型。

二、方法

2.1 Better

从之前的模型中引入了一系列新的方法

YOLO_v2论文详解YOLO9000: Better, Faster, Stronge_第1张图片

Batch Norm

BatchNorm的作用详见:

批归一化Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift论文详解

  • BN的引入使得YOLO的mAP提升了2%
  • BN可以有效的对模型进行正则化,避免过拟合。

High Resolution Classifier

YOLO是以224*224分辨率训练分类器网络,随后将分辨率提高到448*448进行检测,意味着网络需要可以将较低分辨率的图片泛化到较高分辨率。所以前期训练用224*224的图像,最终的10个epoch用448*448的图像进行微调。

  • 提升了4%的mAP
  • 所有的SOTA目标检测模型均需要通过ImageNet预训练。
  • 初始YOLO训练时候用224*224大小的图像,然后需要将尺寸增加到448*448.相当于需要用大尺寸高分辨率的图像对模型进行Fine-tune。
  • 对于YOLOv2,作者将ImageNet的448*448的图像在ImageNet上进行了10个epoch的fine-tune
  • 我们产生了一个疑问,如果一开始直接用448*448的图像对模型进行训练,会产生什么样的结果呢?

Ancher Box

Ancher box即先验框,即网络在先验框的基础上进行预测,

  • 借鉴了Faster-RCNN的做法。
  • 对于Faster-RCNN来讲,region proposal network(RPN) 用于生成相应的offset与confidence。因此,作者经过改进,将YOLOv1中的全连接层删掉,运用ancher box预测相应的备选框。YOLO通过图像提取,输入图像经过缩放系数是32的尺寸缩小到feature上,例如416的图片会被缩小为13 (416/32=13).
  • 无ancher box的模型,mAP 69.5,recall 81%,加入ancher box之后,mAP 69.2,recall 88%。即mAP少量降低,但是recall大量增加。

Dimension Clusters

先验框的尺寸可以手动来选择,也可以通过聚类的方法选择,作者引入聚类的方法针对ancher box的尺寸进行选择。

(聚类是否只聚类了box的尺寸,对box的位置是否有聚类?)

  • 关于ancher box的尺寸,可以通过手动选择,选择较好的尺寸可以提升网络性能。作者通过K-means的聚类来选取ancher box。

聚类的距离d的衡量

k-means聚类需要有一个衡量样本之间的距离的距离度量d

  • 之前采用的聚类距离d,采用几何距离,这样就会使得聚类的中大边框的聚类距离更大。
  • 为了更好的平衡上面说的大边框的聚类距离d过大的问题,作者引入了IOU来实现距离d的衡量。

YOLO_v2论文详解YOLO9000: Better, Faster, Stronge_第2张图片

运用IOU作为衡量标准之后,模型精度确实得到了提升,下图是实验证明了这一点。在VOC2007上,聚类采用IOU距离取得了更高的mAP:

YOLO_v2论文详解YOLO9000: Better, Faster, Stronge_第3张图片

聚类的k值

k值表示聚类数量的个数,即备选框聚类为几类。

  • 此值表示聚类出的备选框的尺寸的个数,比如k=1表示聚类结果只有一个尺寸的备选框。
  • k越大则聚类的框的大小数量越多,因此准确率越高。
  • 但是k值过大,运算量会增加,因此作者取了一个trade-off 的结果,k=5,相对平衡运算量和IoU精度。

Direct location prediction

此方法用于对模型的先验框的范围进行约束,可以提升5%的mAP

对于模型而言,主要的非稳定性来自于备选框的中心位置(x,y), 特别是初始的几个epoch,预测结果很不稳定。

按照原始的做法:

  • x,y是预测边框的中心,模型需要将此结果作为最终的预测边框
  • xa, ya是先验框ancher box的中心,是确定的量
  • wa,ha是先验框的宽和高,是确定的量
  • tx,ty是网络需要预测的参数,即网络根据已知的先验框和输入图片,预测出tx,ty
  • 因为tx,ty没有任何约束,导致中心可能出现在任何位置,不确定性很高,因此需要加以约束。

约束后的公式如下:

加入限定之后,可以将蓝色区域限制在蓝色框内,预测更为稳定。

YOLO_v2论文详解YOLO9000: Better, Faster, Stronge_第4张图片

限定的公式如下:

YOLO_v2论文详解YOLO9000: Better, Faster, Stronge_第5张图片

  • cx,cy是先验框左上角的坐标
  • pw,ph是先验框的宽和高
  • tx,ty,tw,th,to是网络需要预测的量。
  • 经过上面公式的映射,相应的备选框可以被限定在虚线框内,相对更稳定。

Multi-scale training

多尺度训练,提升了1.4的mAP

  • 原始的YOLO输入图象是448*448大小,加入ancher box之后,输入尺寸变为416*416大小。
  • 因为模型有卷积和pooling层,因此可以适应任意大小的图像。(YOLO是可以对任意尺寸的图像进行目标检测。这里的同尺寸是指训练与测试同尺寸且任意尺寸?还是训练与测试可以不同尺寸?)
  • 训练每10个batch,YOLO随机选择一个新的图像尺寸。尺寸有{320, 352, ... , 608}
  • 因为YOLO可以针对尺寸的图片进行目标检测,因此,YOLO可以用低分辨率的图片实现高帧率。
  • 在228*228大小的时候,YOLO可以实现90FPS的帧率,并且具有与fast R-CNN几乎相同的mAP
  • 高分辨率模式之下,YOLO在VOC2007数据集上达到了最佳的78.6的mAP,下图即为各个分辨率下YOLO的识别准确率以及同类网络的对比。

YOLO_v2论文详解YOLO9000: Better, Faster, Stronge_第6张图片

2.2 faster

不少目标检测模型将VGG作为基本框架。但是VGG较为耗费运算,例如对于224*224大小的图像,VGG需要进行30.69billion(30.69*10^9)次浮点运算进行一次预测,因此运算量巨大。

DarkNet-19

YOLO在VGG的基础上进行更改,只需要8.52Billion次浮点运算即可进行一次前馈运算。

YOLOv2运用darknet-19结构(如下表),19个conv,5个max_pooling,相比VGG浮点运算量降低1/5,只需要5.58 billion次浮点运算,但是精度并不弱。在ImageNet上可以达到72.9%的top-1准确率与91.2%的top-5准确率。

YOLO_v2论文详解YOLO9000: Better, Faster, Stronge_第7张图片

 分类任务训练过程

在ImageNet上,1000类,160次epoch迭代训练,使用随机梯度下降算法,同时用起始的学习率0.1,decay power of 4,weight decay of 0.0005 and momentum of 0.9.

训练过程中,使用相应的训练技巧,包括: random crops, rotations, and hue, saturation, and exposure shifts

训练过程:初始用224*224大小的图像训练,之后改用448*448进行fine-tune,达到了top-1 准确率76.5%和top-5准确率93.3%

目标检测任务的训练过程

删掉最后的卷积层,只保留1024给3*3的卷积核,每个卷积核加一个1*1的卷积。

2.3 Stronger

作者提出一种机制,将分类任务与目标检测任务共同进行训练。

识别对象更多,且分层识别的结构Hierarchical classification。

Dataset combination and WordTree

YOLO_v2论文详解YOLO9000: Better, Faster, Stronge_第8张图片

Joint classification and detection

将分类任务与检测任务共同执行。

三、实验及结论

YOLO_v2论文详解YOLO9000: Better, Faster, Stronge_第9张图片

YOLO_v2论文详解YOLO9000: Better, Faster, Stronge_第10张图片

YOLO2通过一些改进明显提升了预测准确性,同时继续保持其运行速度快的优势。

你可能感兴趣的:(YOLO,目标检测,论文解析)