You Only Look Once: Unified, Real-Time Object Detection
(一)论文地址:
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大小)
(四)Unified Detection:
这里是 YOLO 的点睛之笔;
YOLO 为了实现端到端(end-to-end)的训练,不再采用预选框(anchor 或者 default box),而是直接将图像划分成 个网格区域(文中 );
每个区域预测的值为:
- 该区域覆盖的相应物体的 个坐标框的 个值(文中 ,分别为 ,同时输出这 个预测框的置信度 ,选取置信度最高的那个预测框作为最终的结果;
- 该区域覆盖物体的分类置信度 ,其中在 VOC 数据集中 是长度为 的分类向量;
只有物体的真值框中心落入相应的区域,该区域才被标注为正样本,其置信度定义为:
即相应物体预测框与真值框的交并比(IOU);
因此每个区域生成 个预测值,最后全连接层的输出大小为 ;
这里使用 个预测 box 并生成置信度,是为了提高预测结果的容错率;增大 可以提高模型的鲁棒性,但相应的全连接层的计算复杂度也会大大提高;
(五)实验细节:
5.1 激活函数:
激活函数使用了 Leaky ReLU:
5.2 坐标归一化:
将预测的坐标值 归一化为:
其中:
- 是真值框的坐标;
- 为对应区域的中心坐标;
- 是图像边长,文中 ;
- 为步长,即 ;
5.3 Loss 函数:
Loss 函数使用了均方差损失函数;
同时为了调节正负样本不均衡问题,引入了两个权重参数:
- ,表示正样本的坐标回归权重;
- ,表示负样本的置信度权重;
负样本的预测坐标和类别向量不参与训练;
最终 Loss 定义如下:
5.4 训练细节:
从 先升到 再降到 ;
(六)实验结果:
(作者挑的图好奇怪,,,)