Joseph Redmon , Ali Farhadi.
YOLO9000: Better, Faster, Stronger. CVPR 2017 (Best Paper Honorable Mention)
https://arxiv.org/abs/1612.08242
YOLO v2 简述
•YOLOv2是YOLO的第二个版本,其目标是在提高速度的同时显著提高准确度。
改进之处
(1) YOLO v2: 使用一系列的方法对YOLO v1进行了改进,在保持原有速度的同时提升准确度
(2) YOLO9000: 提出了一种目标分类与检测的联合训练方法,通过WordTree来混合检测数据集与识别数据集,同时在COCO和ImageNet数据集中进行训练得到YOLO9000,实现9000多种目标的实时检测。
提高准确度(Accuracy improvements)
-
神经网络学习过程本质就是为了学习数据分布,一旦训练数据与测试数据的分布不同, 那么网络的泛化
能力也大大降低; 另外一方面,一旦每批训练数据的分布各不相同, 那么网络的Batch 梯度下降算法就
要在每次迭代都去学习适应不同的分布, 这样将会大大降低网络的训练速度。 -
解决办法之一是对数据都要做一个归一化预处理。YOLOv2网络通过在每一个卷积层后添加批归一化
(batch normalization) ,极大的改善了收敛速度同时减少了对其它正则化方法的依赖(舍弃了
Dropout优化后依然没有过拟合),使得mAP获得了2%的提升。
高分辨率分类器(High-resolution classifier )
所有State-Of-The-Art的检测方法都在ImageNet上对分类器进行了预训练。
- YOLOv1训练由两个阶段组成。 首先,训练分类器网络; 然后用卷积层替换全连接层,并端到端地重新训练以
进行目标检测。 YOLOv1先使用224x224的分辨率来训练分类网络,在训练检测网络的时候再切换到448x448的
分辨率,这意味着YOLOv1的卷积层要重新适应新的分辨率,同时YOLOv1的网络还要学习检测网络。 - YOLOv2 以224×224图片开始用于分类器训练,但是然后使用更少的epoch再次用448×448图片重新调整分类器。
让网络可以调整滤波器来适应高分辨率, 这使得检测器训练更容易。 使用高分辨率的分类网络提升了将近4%的
mAP。
用锚定框的卷积(Convolutional with Anchor Boxes)![在这里插入图片描述](https://img-blog.csdnimg.cn/20200909155510602.png#pic_center)
YOLO论文指出:早期训练容易受到不稳定梯度的影响。最初,YOLO对边界框进行任意猜测。 这些猜测可能对某些目标有效,但对其它目标则很糟糕,导致陡峭的梯度变化。 在早期训练中,预测在相互争论选择什么样的特定形状合适。
使用anchor box 的效果
维度聚类(Dimension Clusters)
直接位置预测(Direct Location Prediction)
更细粒度的特征(Fine-Grained Features)
多尺度训练(Multi-Scale Training)
精度提升总结
速度提升
yolo v2的训练
yolo v2总结