【论文学习笔记003】Faster RCNN
其他
2020-03-28 10:53:18
阅读次数: 0
1.论文信息
题目
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
作者
Shaoqing Ren & Kaiming He & Ross Girshick & Jian Sun
年份
2015
期刊
NIPS
论文地址
https://papers.nips.cc/paper/5638-faster-r-cnn-towards-real-time-object-detection-with-region-proposal-networks.pdf
项目地址
https://github.com/rbgirshick/py-faster-rcnn
2. 论文创新点
设计了RPN网络,利用CNN卷积后的特征图生成候选区域,取代了SS和EB等方法,极大地提升了生成候选区域的速度;
训练RPN与Fast RCNN共享部分卷积层,极大地提升了检测速度;
3.欲解决的问题
在候选区域,特征提取,分类回归三大任务中,候选区域采用SS或EB等方法仍很耗时。
4.解决方案
4.1 概述
网络结构图如上所示。
首先,任意大小的图片输入CNN,经过共享的卷积层,一方面得到RPN的特征图,另一方面继续前向传播至特有的卷积层,产生高维特征图;
其次,特征图经过RPN网络得到区域建议和区域得分,对区域得分采用NMS,输出TOP-N得分的区域建议给Fast RCNN网络的ROI池化层;
最后,RPN的区域建议与Fast RCNN的区域建议同时输入ROI池化层,提取对应区域建议的特征,通过全连接层,输出该区域的分类得分以及回归后的bbox
4.2 RPN
单个RPN网络结构图如上所示。
首先,输入任意大小的图片,利用ZF或VGG16网络的部分卷积层产生原始图片的特征图;
其次,用nxn的滑动窗口在特征图上滑动扫描,每个滑窗位置通过卷积层映射到一个低维的特征向量(ZF:256;VGG:512),然后采用ReLU激活函数,同时为每个滑窗位置考虑k(k=9)种可能的参考窗口(anchors),因此,每个滑窗位置最多可预测9个区域建议(超出边界的不考虑);
最后,低维特征向量输入两个并行的卷积层(reg窗口回归层,cls窗口分类层),分别产生bbox和分类得分,其中reg输出4k个参数(x,y,w,h),cls输出2k个参数(前景概率,背景概率)
4.3 Anchors
anchors示意图如上所示
anchors是一组大小固定的参考窗口,有三种尺度(128x128,256x256,512x512)和三种长宽比(1:1,1:2,2:1)
根据图像大小计算滑窗中心点对应原图区域的中心点,通过中心点和大小就可以得到滑窗位置和原图位置的映射关系,由此原图位置并根据与ground truth重复率贴上正负标签,让RPN学习该anchor是否有物体
anchors方法具有平移不变性,即图像中平移了物体,窗口建议也会平移;同时这种方式减少了模型大小,输出层512x(4+2)x9个参数(512是前一层特征维度,4和2分别是bbox参数及前景背景概率,9是参考窗口个数),较小的参数在较小的数据集上能降低过拟合的风险
4.4 RPN训练
RPN训练时对正样本有两种定义:一是与ground truth box有最大的IOU的anchors作为正样本;二是与ground truth box的IOU大于0.7的作为正样本
RPN训练定义的负样本为与ground truth box的IOU小于0.3的样本;其余的不参与训练
RPN训练的loss函数如下式所示。
L
(
{
p
i
}
,
{
t
i
}
)
=
1
N
d
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\left(\left\{p_{i}\right\},\left\{t_{i}\right\}\right)=\frac{1}{N_{d s}} \sum_{i} L_{c l s}\left(p_{i}, p_{i}^{*}\right)+\lambda \frac{1}{N_{r e g}} \sum_{i} p_{i}^{*} L_{r e g}\left(t_{i}, t_{i}^{*}\right)
L ( { p i } , { t i } ) = N d s 1 i ∑ L c l s ( p i , p i ∗ ) + λ N r e g 1 i ∑ p i ∗ L r e g ( t i , t i ∗ ) 其中,i表示mini-batch中第i个anchor,
p
i
p_{i}
p i 表示第i个anchor是前景的概率,当第i个anchor是前景时
p
i
∗
p_{i}^{*}
p i ∗ 为1反之为0,
t
i
t_{i}
t i 表示bbox坐标,
t
i
∗
t_{i}^{*}
t i ∗ 表示ground truth box的坐标。
坐标的4个参数如下式所示。
t
x
=
(
x
−
x
a
)
/
w
a
,
t
y
=
(
y
−
y
a
)
/
h
a
,
t
w
=
log
(
w
/
w
a
)
,
t
h
=
log
(
h
/
h
a
)
t
x
∗
=
(
x
∗
−
x
a
)
/
w
a
,
t
y
∗
=
(
y
∗
−
y
a
)
/
h
a
,
t
w
∗
=
log
(
w
∗
/
w
a
)
,
t
h
∗
=
log
(
h
∗
/
h
a
)
\begin{aligned} t_{\mathrm{x}}=\left(x-x_{\mathrm{a}}\right) / w_{\mathrm{a}}, & t_{\mathrm{y}}=\left(y-y_{\mathrm{a}}\right) / h_{\mathrm{a}}, \quad t_{\mathrm{w}}=\log \left(w / w_{\mathrm{a}}\right), \quad t_{\mathrm{h}}=\log \left(h / h_{\mathrm{a}}\right) \\ t_{\mathrm{x}}^{*}=\left(x^{*}-x_{\mathrm{a}}\right) / w_{\mathrm{a}}, \quad t_{\mathrm{y}}^{*}=\left(y^{*}-y_{\mathrm{a}}\right) / h_{\mathrm{a}}, & t_{\mathrm{w}}^{*}=\log \left(w^{*} / w_{\mathrm{a}}\right), \quad t_{\mathrm{h}}^{*}=\log \left(h^{*} / h_{\mathrm{a}}\right) \end{aligned}
t x = ( x − x a ) / w a , t x ∗ = ( x ∗ − x a ) / w a , t y ∗ = ( y ∗ − y a ) / h a , t y = ( y − y a ) / h a , t w = log ( w / w a ) , t h = log ( h / h a ) t w ∗ = log ( w ∗ / w a ) , t h ∗ = log ( h ∗ / h a ) 其中,
x
,
x
a
,
x
∗
x, x_{\mathrm{a}}, \text x^{*}
x , x a , x ∗ 分别来自于预测框,anchor框以及ground truth框
4.5 RPN与Fast RCNN的权值共享
RPN与Fast RCNN的权值共享是为了降低计算量,提升检测速度
首先,进行RPN的预训练及以区域建议为目的的RPN网络end-to-end微调训练;
其次,进行Fast RCNN预训练,用RPN的区域建议进行以检测为目的的Fast RCNN网络end-to-end微调训练;
再次,利用微调后的Fast RCNN网络重新初始化RPN网络,固定共享卷积层(学习率设置为0),只微调RPN独有的层(共享卷积层);
最后,固定共享卷积层,利用以上得到的区域建议,只微调Fast RCNN独有的层
5.几点思考
5.1 Anchors为什么考虑三种尺度和三种长宽比
如上图所示,相比于单一尺度和长宽比,采用单尺度多长宽比和多尺度单长宽比都能提升mAP,所以选取了最高mAP的3种尺度和3种长宽比。
5.2 RPN相比于SS与EB方法有何优势
传统方法是训练一个能检测物体的网络,然后对整张图片进行滑窗判断,由于无法判断区域建议的尺度和长宽比,所以需要多次缩放,这样找出一张图片有物体的区域就会很慢;RPN网络的滑窗是在特征图上进行,维度降低了很多倍。
6.论文结果
帧率5fps;
mAP在VOC2007和VOC2012上分别为73.2%和70.4%
7.待解决的问题
发布了15 篇原创文章 ·
获赞 14 ·
访问量 1258
转载自 blog.csdn.net/chiyukunpeng/article/details/102518562