- arxiv: https://arxiv.org/abs/1612.08242
- code: http://pjreddie.com/yolo9000/
- github(Chainer): https://github.com/leetenki/YOLOv2
- github(Keras): https://github.com/allanzelener/YAD2K
- github(PyTorch): https://github.com/longcw/yolo2-pytorch
- github(Tensorflow): https://github.com/hizhangp/yolo_tensorflow
- github(Windows): https://github.com/AlexeyAB/darknet
- github(caffe): https://github.com/choasUp/caffe-yolo9000
1、整体思路
- YOLOv1虽然检测速度很快,但是再检测精度上却不如R-CNN系检测方法,YOLOv1在物体定位面(localization)不够准确,并且召回率(recall)较低。
- YOLOv2提出几种改进策略来提升YOLOv1模型的定位准确度和召回率,从而提高mAP,YOLOv2在改进中遵循一个原则:保持检测速度,YOLOv2的改进策略如下图所示,可以看出,大部分的改进方法都可以比较显著提升模型的mAP。
2、改进策略
- Batch Normalization(批量规范化)简称BN,mAP提升2.4%
1)神经网络每层输入的分布总是发生变化,通过标准化上层输出,均衡输入数据分布,加快训练速度;
可以设置较大的学习率和衰减,而不用去care初始参数,BN总能快速收敛,调参狗的福音。
2)通过规范化输入,降低激活函数在特定输入区间达到饱和状态的概率,避免 gradient vanishing 问题;
举个例子:0.95^64 ≈ 0.0375 计算累积会产生数据偏离中心,导致误差的放大或缩小。
3)输入规范化对应样本正则化,在一定程度上可以替代 Drop Out;
Drop Out的比例也可以被无视了,全自动的节奏。 - High Resolution Classifier,mAP提升4%
YOLOv1采用224*224训练分类网络,然后将分辨率增加至448*448,在检测数据集上fine tune。但是直接切换分辨率,检测模型很难快速适应高分辨率,所以YOLOv2首先对分类网络用分辨率448*448训练10轮,这样,使得模型在检测数据集上fine tune之前已经适应高分辨率输入了。 - Convolutional With Anchor Boxes,召回率提升7%
YOLO是通过最后的全连接层直接预估绝对坐标,而FasterRCNN是通过卷积层预估相对坐标,作者认为这样更容易学习,因此YOLOv2去掉了全连接层,在最后一层卷积层下采样后用Anchor,yolo有7*7*2 = 98个框,而YOLOv2有超过1k的anchor,最终效果上虽然mAP略有下降3个千分点,但是召回提升7个百分点 - Dimension Clusters - 维度聚类
在Faster R-CNN和SSD中,先验框的维度(长和宽)都是手动设定的,带有一定的主观性,如果选区的先验框维度比较适合,那么模型更容易学习,从而做出更好的预测。因此YOLOv2采用k-means聚类方法对训练集中的边界框做聚类分析。 - Direct location prediction(直接位置预测)
直接Anchor Box回归导致模型不稳定,中心点可能会出现在图像任何位置,有可能导致回归过程震荡,甚至无法收敛,作者在预测位置时采用强约束方法
1)对应 Cell 距离左上角的边距为(Cx,Cy),σ定义为sigmoid激活函数,将函数值约束到[0,1],用来预测相对于该Cell 中心的偏移(不会偏离cell);
2)预定Anchor(文中描述为bounding box prior)对应的宽高为(Pw,Ph),预测 Location 是相对于Anchor的宽高乘以系数得到;直接位置预测与维度聚类一起mAP提升5%。
3、效果
- YOLO v2 在大尺寸图片上能够实现高精度,在小尺寸图片上运行更快,可以说在速度和精度上达到了平衡。
总结下不同分辨率下的震撼的效果:
1)低分辨率 - 228 * 228,帧率达到90FPS,mAP几乎与Faster媲美;
2)高分辨率,在VOC2007 上mAP达到78.6%,同时FPS=40; 相比SSD,YOLOv2在算法理论上并没有明确的突破,但是通过很多trick,效果提升了很多。
4、参考
- http://www.360doc.com/content/18/0720/21/42392246_772001112.shtml
- https://blog.csdn.net/qq_35451572/article/details/80287431
- https://blog.csdn.net/linolzhang/article/details/59728206?locationNum=5&fps=1
- https://baijiahao.baidu.com/s?id=1588903242307639287&wfr=spider&for=pc