论文笔记:Faster R-CNN
1.简介
PAMI上的一篇经典目标检测论文,提出了一个RPN网络替代之前Fast R-CNN的SS(选择性搜索)进行区域提案。同时,RPN与Fast R-CNN共享大部分卷积层,从而提高整个系统的运行速度。最后实现了当时最高的准确率:PASCAL VOC 2007 (73.2% mAP) and 2012 (70.4% mAP)
2. 方法
2.1 RPN(Region Proposal Networks)
通过用一个小网络在(
3
×
3
3 \times 3
3×3)共享网络的最后一层生成的特征图上进行滑窗,提取一个256-d的特征向量,并将这个特征向量分别输入到一对姊妹网络:一个进行二分类,判断框里面有没有物体;另一个进行回归,确定检测框的中心位置和尺寸。
其中,二分类网络输出2k个scores,判断k个框里分别有没有物体;回归网络生成4k个数值,给出计算的框的具体位置和尺寸。选取3个不同的长宽比和3个不同的尺度,
k
=
3
×
3
k = 3 \times 3
k=3×3
LOSS Function
RPN的训练LOSS同样由类别loss和回归loss两部分组成,计算公式如下:
L
(
{
p
i
}
,
{
t
i
}
)
=
1
N
c
l
s
∑
i
L
c
l
s
(
p
i
,
p
i
∗
)
+
λ
1
N
r
e
g
∑
i
p
i
∗
L
r
e
g
(
t
i
,
t
i
∗
)
L(\lbrace p_i\rbrace, \lbrace t_i\rbrace) = \frac{1}{N_{cls}}\sum _i L_{cls}(p_i, p^{\ast}_i) + \lambda \frac{1}{N_{reg}}\sum _i p^{\ast}_i L_{reg}(t_i, t^{\ast}_i)
L({pi},{ti})=Ncls1i∑Lcls(pi,pi∗)+λNreg1i∑pi∗Lreg(ti,ti∗)
训练流程
为了防止训练结果把所有检测框视为没有物体,选择正负样本比例为1:1,共256个框,如果正样本不足128再补充负样本。正样本是指与Ground Truth的IOU大于0.7的,负样本指IOU小于0.3的。
- 训练RPN网络,网络用预训练好的ImgaeNet初始化,然后端对端fine-tune
- 利用1中训练好的RPN网络获得区域提案,并以此训练Fast R-CNN网络
- 使用Fast R-CNN网络初始化RPN,进行fine-tune,但是固定共享的卷积层,只更新RPN独有的卷积层。
- 保持共享的卷积层不变,fine-tune Fast rcnn独有的fc层