https://arxiv.org/pdf/1506.02640.pdf
YOLO v1 的提出基本是 one-stage 方法的里程碑,作者使用了全局全连接的方法,将目标检测问题重新定义成了一个回归问题,并使得每个预测框都具有全局信息,实现了真正端到端的训练;
并且实验结果也非常出色,不仅比 R-CNN 和 DPM 更快(45 FPS),而且准确率也有了很大的提升;而且一个更小的网络 Fast YOLO,在准确率不受很大影响的情况下,速度达到了 155 FPS;
YOLO 的 backbone 依然采用了分类网络,但最后两层使用了全卷积层,最终输出一个 7×7×30 的特征层,其中每个点由于是全连接输出,都考虑了全局的特征信息;
(注意由于使用了全卷积,图像必须是统一448×448大小)
YOLO 为了实现端到端(end-to-end)的训练,不再采用预选框(anchor 或者 default box),而是直接将图像划分成 S × S S×S S×S 个网格区域(文中 S = 7 S=7 S=7);
每个区域预测的值为:
只有物体的真值框中心落入相应的区域,该区域才被标注为正样本,其置信度定义为:
即相应物体预测框与真值框的交并比(IOU);
因此每个区域生成 B × ( 4 + 1 ) + C = 30 B×(4+1)+C=30 B×(4+1)+C=30 个预测值,最后全连接层的输出大小为 S × S × 30 S×S×30 S×S×30;
这里使用 B B B 个预测 box 并生成置信度,是为了提高预测结果的容错率;增大 B B B 可以提高模型的鲁棒性,但相应的全连接层的计算复杂度也会大大提高;
将预测的坐标值 { x p , y p , w p , h p } \lbrace x_p,y_p,w_p,h_p \rbrace {xp,yp,wp,hp} 归一化为:
x p = ( x − x b ) / L , y p = ( y − y b ) / L x_p=(x-x_b)/L,y_p=(y-y_b)/L xp=(x−xb)/L,yp=(y−yb)/L
w p = w / W , h p = h / W w_p=w/W,h_p=h/W wp=w/W,hp=h/W
其中:
Loss 函数使用了均方差损失函数;
同时为了调节正负样本不均衡问题,引入了两个权重参数:
负样本的预测坐标和类别向量不参与训练;
b a t c h s i z e = 64 batch_size=64 batchsize=64
m o m e n t u m = 0.9 momentum=0.9 momentum=0.9
w e i g h t weight weight d e c a y = 0.0005 decay=0.0005 decay=0.0005
l e a r n i n g learning learning r a t e rate rate 从 1 0 − 3 10^{-3} 10−3 先升到 1 0 − 2 10^{-2} 10−2 再降到 1 0 − 4 10^{-4} 10−4;
d r o p drop drop r a t e = 0.5 rate=0.5 rate=0.5
(作者挑的图好奇怪,,,)