先补充两个指标
TP:正确判断正确的东西,FP:错误判断正确的东西,TN:正确判断错误的东西,FN:错误的判断错误的东西
MAP就是在所有置信度阈值(框框的置信度)中综合考虑精度和召回率。
在YOLO-V2中没有使用全连接层,而是全部使用的卷积层,这样的好处就是不需要限制输入的图像的分辨率,同时舍弃了dropout,采用了在每一次卷积后做一次batch normalization,好处是可以限制一下学习的方向,防止跑偏了。
网络架构
可以看到全是卷积,池化,并且都是小卷积核,节省了很多参数。在卷积的时候输出的图大小不变,但是做降采样的时候变从原来的一半,一共做了5次,所以最后的图是原来的1/32。然后在3x3卷积之间使用1x1卷积压缩特征表示。
先验框
在fast-rcnn中先验框是按一定的比例给定的,而v2中采用的是聚类提取先验框,做法:首先找到一堆数据集,根据来计算什么样的框框能属于一类(框框到中心点的距离=1-iou),这里将框框分成了5类,原因是越多肯定越精确,但是会影响速度。根据实验选了个折中的值,如下:
偏移量的计算
在v1中,预测偏移量是直接给出预测值,这会使得刚开始的时候模型很飘,不好收敛,于是v2中为了解决这个方法,作者让预测出来的数值是一个相对值,比如tx,ty是相对于网格的左上角的偏移量,将他们放到了sigmoid函数中使得这个值在0-1之间,也就是这个中心点怎么都出不了这个网格,cx,cy是为了知道这个中心点在哪个网格中,是给定的,因为这个就是为了固定住中心点的位置。在得到了最终预测的值后,由于上面说了做了5次下采样,所以只要将数据全部乘32,就能知道在原来的图中这个框框的位置以及大小了。
感受野
最后的特征图能看到原始图像的多大范围。
特征融合
如果最后的感受野太大了,就会忽略一下小的物体,所以要将之前的特征图做一个融合
Multi-Scale Training
和YOLOv1训练时网络输入的图像尺寸固定不变不同,YOLOv2每隔几次迭代后就会微调网络的输入尺寸。训练时每迭代10次,就会随机选择新的输入图像尺寸。因为YOLOv2的网络使用的downsamples倍率为32,所以使用32的倍数调整输入图像尺寸{320,352,…,608}。训练使用的最小的图像尺寸为320 x 320,最大的图像尺寸为608 x 608。这使得网络可以适应多种不同尺度的输入。