论文Paper:You Only Look Once: Unified, Real-Time Object Detection
论文地址:https://arxiv.org/pdf/1506.02640
0. 摘要
以前的目标检测:利用分类器来执行检测任务。而Yolo:
- 将目标检测看作关于边界框和相关的类别概率的回归问题;
- 直接从完整图像上预测边界框和类别概率;
- 可以实现端到端;
我们的基础YOLO模型以45帧/秒的速度实时处理图像。网络的一个较小版本,快速YOLO,每秒能处理惊人的155帧,同时实现其它实时检测器两倍的mAP。与最先进的检测系统相比,YOLO产生了更多的定位误差,但不太可能在背景上的预测假阳性(false positives)。最后,YOLO学习目标非常通用的表示。当从自然图像到艺术品等其它领域泛化时,它都优于其它检测方法,包括DPM和R-CNN。
1. Introduction
快速,准确的目标检测算法可以让计算机在没有专门传感器的情况下驾驶汽车,使辅助设备能够向人类用户传达实时的场景信息,并表现出对一般用途和响应机器人系统的潜力。
目前(2016)的的目标检测方法:
(1)变形部件模型(DPM)这样的系统使用滑动窗口;
(2)CNN使用区域提出(Research Proposal)方法;
这两种单发流程复杂,很难优化,因为每个单独的组件都必须单独进行训练。Yolo将目标检测重新看作单一的回归问题,直接从图像像素到边界框坐标和类概率。
![](https://i-blog.csdnimg.cn/blog_migrate/158572eb8bd57ba22a056c5d9accf0f1.png)
YOLO速度非常快。由于我们将检测视为回归问题,所以我们不需要复杂的流程。Yolo基础网络的运行素的每秒45帧,快速版本运行速度超过150fps。并且,YOLO实现了其它实时系统两倍以上的平均精度。
YOLO在训练期间和测试时会看到整个图像(YOLO sees the entire image during training and test time so it implicitly encodes contextual information about classes as well as their appearance. )。Fast R-CNN由于看不到更大的上下文,所以在图像中会将背景块误检为目标。与Fast R-CNN相比,YOLO的背景误检数量少了一半。
YOLO学习目标的泛化表示。当在自然图像上进行训练并对艺术作品进行测试时,YOLO大幅优于DPM和R-CNN等顶级检测方法。YOLO具有较高泛化能力。
Unified Detection 统一检测
![](https://i-blog.csdnimg.cn/blog_migrate/448369d65fb36c941cbeacd3111a5802.png)
将图片划分成
7
∗
7
7*7
7∗7的cell. 若一个object的中心落在某个cell内,则该cell对这个object负责(is responsible for)。每个cell预测2个Bounding box以及这些bbox的confidence scores. 每个Bounding box 包含五个预测:
x
,
y
,
w
,
h
x ,y,w,h
x,y,w,h和置信度。其中,confidence score定义为
P
r
(
O
b
j
e
c
t
)
∗
I
O
U
p
r
e
d
t
r
u
t
h
Pr(Object)*IOU_{pred}^{truth}
Pr(Object)∗IOUpredtruth 。每个网格单元还预测C个条件类别概率
P
r
(
C
l
a
s
s
i
∣
O
b
j
e
c
t
)
Pr(Classi|Object)
Pr(Classi∣Object)。 在测试时,我们乘以条件类概率和单个盒子的置信度预测下式,Convolutional network最终预测
7
∗
7
∗
30
7*7*30
7∗7∗30的tensor。
P
r
(
C
l
a
s
s
i
∣
O
b
j
e
c
r
t
)
∗
P
r
(
O
b
j
e
c
t
)
∗
I
O
U
p
r
e
d
t
r
u
t
h
=
P
r
(
C
l
a
s
s
i
)
∗
I
O
U
P
r
e
d
t
r
u
t
h
Pr(Class_i|Objecrt)*Pr(Object)*IOU_{pred}^{truth} = Pr(Class_i)*IOU_{Pred}^{truth}
Pr(Classi∣Objecrt)∗Pr(Object)∗IOUpredtruth=Pr(Classi)∗IOUPredtruth
2.1 Network Design 网络设计
网络结构如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/0b8d84d323c60577f8cc632a0d387ba6.png)
预训练(前20层):预训练之后 再加卷积层会增加性能。
2.2 Training 训练阶段
预训练网络中增加卷积层和连接层可以提高性能。按照他们的例子,我们添加了四个卷积层和两个全连接层,并且具有随机初始化的权重。检测通常需要细粒度的视觉信息,因此我们将网络的输入分辨率从224×224变为448×448。
【损失函数】
如果用sum-squared-error(平和方误差),将会有如下不足:
(1)Localization error与classification error被同等对待(权重相同)。
(2)大部分的cell不包含object, 其bbox的置信度为零, 这使得不包含object的cell的梯度过大,淹没了包含object的cell的梯度。这可能导致模型不稳定,从而导致训练早期发散。
(3)平方和误差无法区别对待大盒子和小盒子,我们认为大盒子小偏差的重要性不如小盒子小偏差的重要性。
针对上述不足修改损失函数,增加两个参数:
λ
c
o
o
r
d
=
5
,
λ
n
o
o
b
j
=
0.5
λ_{coord} = 5 , λ_{noobj} = 0.5
λcoord=5,λnoobj=0.5
![](https://i-blog.csdnimg.cn/blog_migrate/7cfb5defecd07c1d387614d973c8dea3.png)
其中
1
i
o
b
j
1^{obj}_i
1iobj表示目标是否出现在网格单元i中,
1
i
j
o
b
j
1^{obj}_{ij}
1ijobj表示网格单元i中的第j个边界框预测器“负责”该预测。
【Learning-rate】
最初的epoch:
learning rate慢慢从
1
0
−
3
10^{-3}
10−3提升至
1
0
−
2
10^{-2}
10−2(一上来就用
1
0
−
2
10^{-2}
10−2容易造成divergence);
再用
1
0
−
2
10^{-2}
10−2的学习速率上训练75个epoch;
再用
1
0
−
3
10^{-3}
10−3的学习速率上训练30个epoch;
再用
1
0
−
4
10^{-4}
10−4的学习速率上训练30个epoch;
【Data augmentation】(避免过拟合)
(1)Random scaling
(2)Translation up to 20% original image size
(3)调整图片的exposure and saturation in the HSV color space.( up to a factor of 1.5 )
Inference 推理
non-maximal suppression(非极大抑制) adds 2−3% in mAP
Limitations of Yolo Yolo的限制
(1)由于每个网格只能分一类并且只有B个bbox,导致一些小物体(如小鸟)并不能够被完全检测出来;
(2)对新出现的物体或者角度不能够很好检测;
(3)Loss Function 设计还不是很合理,大的 bbox 的小误差对 Loss Function 的影响小于小的 bbox 大误差;
3. Comparison to Other Detection Systems 对比
DPM: 使用滑动窗口方法进行目标检测。 DPM提取静态特征(训练效果比较弱),对区域进行分类,预测高评分区域的边界框等。
R-CNN: 使用Selective Search提取proposal。流程复杂,每个阶段都必须独立地进行精确调整。
OverFeat: Sermanet等人训练了一个卷积神经网络来执行定位,并使该定位器进行检测。OverFeat高效地执行滑动窗口检测,但它仍然是一个不相交的系统(disjoint system)。OverFeat优化了定位,而不是检测性能。像DPM一样,定位器在进行预测时只能看到局部信息。
4. Experiments 实验
4.1 和其他实时系统对比
![](https://i-blog.csdnimg.cn/blog_migrate/5376d3359eef0691d3ddab8b471417d6.png)
4.2 VOC 2007误差分析
【比较Fast R-CNN 与YOLO】
正确:正确类别 并且 IOU>.5;
定位:正确类别 并且 .5>IOU>.1;
相似:相似的类别 并且 IOU>.1;
其他:类别错误 并且IOU>.1;
背景:所有类别上IOU<.1;
![](https://i-blog.csdnimg.cn/blog_migrate/2e5952edc2f59af3c3cb0880a91e866b.png)
YOLO中的定位错误比其他所有类型错误之和还多。Fast R-CNN的定位错误更少但是背景错误更多。
Fast R-CNN和YOLO相结合
![](https://i-blog.csdnimg.cn/blog_migrate/493127d630fe7352743c4a4f931ebdd8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/86a880784518087ff2d94e5190e8ad10.png)
PASCAL VOC 2012排行榜。 截至2015年11月6日,YOLO与完整comp4(允许外部数据)公共排行榜相比。针对各种检测方法显示了平均精度和每个类平均精度。YOLO是唯一的实时检测器。 快速R-CNN + YOLO得分第四高的方法,比快速R-CNN提高2.3%。
4.5抽象性 艺术作品中的人物检测
在VOC数据集上进行训练,并在毕加索数据集和人物艺术数据集进行测试(这一部分做法还是很新颖的,独具一格,也确实证明了Yolo有很好的效果)
![](https://i-blog.csdnimg.cn/blog_migrate/c49bee4b3d02da0efe85da86fdb087a3.png)
R-CNN在VOC 2007上有较高的AP,但是在艺术品领域性能就急剧下降。R-CNN使用选择性搜索来调整自然图像的建议边界框。 R-CNN中的分类器步骤只能看到小区域,所以需要很好的建议边界框。DPM在应用于艺术品时可以很好的保持它的AP。之前的工作认为DPM表现良好是因为它具有物体的形状和布局的空间模型。虽然DPM不会像R-CNN那样退化,但是它的起始AP比较低。