针对Yolov1,YoloV2主要有以下几点改进:
(1)Batch Normalization
Batch Normalization可以提升模型收敛速度,而且可以起到一定正则化效果,降低模型的过拟合。在YOLOv2中,每个卷积层后面都添加了Batch Normalization层,并且不再使用dropout。使用Batch Normalization后,YOLOv2的mAP提升了2.4%。
(2)High Resolution Classifier
使用高分辨率的图片进行特征训练。YOLO2在采用 224224 图像进行分类模型预训练后,再采用 448448 的高分辨率样本对分类模型进行微调(10个epoch)
(3)Convolutionlal With Anchor Boxes
(4)Dimension Clusters
采用k-means聚类方法进行anchor的选择
(5)提出了Darknet-19
(6)Multi-Scale Training
原来的YOLO网络使用固定的448 448的图片作为输入,现在加入anchor boxes后,输入变成了416 416。目前的网络只用到了卷积层和池化层,那么就可以进行动态调整(意思是可检测任意大小图片)。作者希望YOLOv2具有不同尺寸图片的鲁棒性,因此在训练的时候也考虑了这一点。
不同于固定输入网络的图片尺寸的方法,作者在几次迭代后就会微调网络。每经过10次训练(10 epoch),就会随机选择新的图片尺寸。YOLO网络使用的降采样参数为32,那么就使用32的倍数进行尺度池化{320,352,…,608}。最终最小的尺寸为320 320,最大的尺寸为608 608。接着按照输入尺寸调整网络进行训练。