论文地址: 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
三、实验及结论
YOLO9000,可以检测超过9000个物体的目标检测模型。
改进训练方法,训练模型时不仅使用目标检测的数据,也使用大量的目标分类数据。
从之前的模型中引入了一系列新的方法
BatchNorm的作用详见:
批归一化Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift论文详解
YOLO是以224*224分辨率训练分类器网络,随后将分辨率提高到448*448进行检测,意味着网络需要可以将较低分辨率的图片泛化到较高分辨率。所以前期训练用224*224的图像,最终的10个epoch用448*448的图像进行微调。
Ancher box即先验框,即网络在先验框的基础上进行预测,
先验框的尺寸可以手动来选择,也可以通过聚类的方法选择,作者引入聚类的方法针对ancher box的尺寸进行选择。
(聚类是否只聚类了box的尺寸,对box的位置是否有聚类?)
聚类的距离d的衡量
k-means聚类需要有一个衡量样本之间的距离的距离度量d
运用IOU作为衡量标准之后,模型精度确实得到了提升,下图是实验证明了这一点。在VOC2007上,聚类采用IOU距离取得了更高的mAP:
聚类的k值
k值表示聚类数量的个数,即备选框聚类为几类。
此方法用于对模型的先验框的范围进行约束,可以提升5%的mAP
对于模型而言,主要的非稳定性来自于备选框的中心位置(x,y), 特别是初始的几个epoch,预测结果很不稳定。
按照原始的做法:
约束后的公式如下:
加入限定之后,可以将蓝色区域限制在蓝色框内,预测更为稳定。
限定的公式如下:
多尺度训练,提升了1.4的mAP
不少目标检测模型将VGG作为基本框架。但是VGG较为耗费运算,例如对于224*224大小的图像,VGG需要进行30.69billion(30.69*10^9)次浮点运算进行一次预测,因此运算量巨大。
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准确率。
分类任务训练过程
在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的卷积。
作者提出一种机制,将分类任务与目标检测任务共同进行训练。
识别对象更多,且分层识别的结构Hierarchical classification。
将分类任务与检测任务共同执行。
YOLO2通过一些改进明显提升了预测准确性,同时继续保持其运行速度快的优势。