YOLOv2学习笔记

1.YOLOv2提升mAP的改进策略

YOLOv1虽然检测速度很快,但是在检测精度上却不如R-CNN系检测方法,YOLOv1在物体定位方面(localization)不够准确,并且召回率(recall)较低。YOLOv2共提出了几种改进策略来提升YOLO模型的定位准确度和召回率,从而提高mAP,YOLOv2在改进中遵循一个原则:保持检测速度,这也是YOLO模型的一大优势。YOLOv2的改进策略如图4所示,可以看出,大部分的改进方法都可以比较显著提升模型的mAP。

                       YOLOv2相比YOLOv1的改进策略 

批标准化: Batch Normalization可以提升模型收敛速度,而且可以起到一定正则化效果,降低模型的过拟合。在YOLOv2中,每个卷积层后面都添加了Batch Normalization层,并且不再使用droput,mAP提升了2.4%。 

高分辨率分类器:训练网络的时候将网络从224*224变为448*448,后续为了保证特征图中只有基数个定位位置,从而保证只有一个中心细胞,网络最终设置为416*416,最终实现了4%的mAP提升。

带锚箱的卷积:作者去掉了yolov1中的全连接层,加入了anchor boxes,这样做的目的是得到更高的召回率,最终,yolov1只有98个边界框,yolov2达到了1000多个。mAP由69.5下降到69.2,下降了0.3,召回率由81%提升到88%,提升7%。

维度聚类:这里作者提出了kmeans聚类,这里的K作者取值为5,这样会在模型复杂度和召回率之间达到一个好的折中。并且使用聚类的中心代替Anchor,最后使用欧式距离进行边界框优先权的衡量,欧式距离公式如图5所示,距离越小说明优先权越高。在k为5 的条件下,Avg IOU从60.9提升到了61.0。在k为9的的条件下Avg IOU提升为67.2。

                    欧氏距离公式 

2.YOLOv2的网络结构

YOLOv2采用了一个新的基础模型(特征提取器),称为Darknet-19,包括19个卷积层和5个max pooling层,如图6所示。Darknet-19与VGG16模型设计原则是一致的,主要采用  卷积,采用  的max pooling层之后,特征图维度降低2倍,而同时将特征图的channles增加两倍。与NIN(Network in Network)类似,Darknet-19最终采用global avg pooling做预测,并且在  卷积之间使用  卷积来压缩特征图channles以降低模型计算量和参数。Darknet-19每个卷积层后面同样使用了batch norm层以加快收敛速度,降低模型过拟合。在ImageNet分类数据集上,Darknet-19的top-1准确度为72.9%,top-5准确度为91.2%,但是模型参数相对小一些。使用Darknet-19之后,YOLOv2的mAP值没有显著提升,但是计算量却可以减少约33%。

                                   Darknet-19模型 

3.多尺度训练

由于YOLOv2模型中只有卷积层和池化层,所以YOLOv2的输入可以不限于大小的图片。为了增强模型的鲁棒性,YOLOv2采用了多尺度输入训练策略,具体来说就是在训练过程中每间隔一定的iterations之后改变模型的输入图片大小。 

4.YOLO9000

提出了一种联合训练方法,能够容许同时使用目标检测数据集和分类数据集。使用有标记的检测数据集精确定位,使用分类数据增加类别和鲁棒性。

猜你喜欢

转载自blog.csdn.net/qq_29893385/article/details/81178261