赞
踩
Fast R-CNN是作者Ross Girshick继R-CNN后的又一力作。同样使用VGG16作为网络的骨架,在训练速度比R-CNN快了近9倍,测试速度快了213倍,在Pascal VOC数据集上accuracy从62%提升至66%,它解决了重复卷积计算和固定输入尺度的问题。
Fast R-CNN 的总体架构如下图所示。
顾名思义,Fast R-CNN 相对于R-CNN 的一个重要的优势就是速度快,以下是它的主要步骤:
1. 利用SS算法(选择性搜索)生成1k-2k的候选区域。
2. 使用深度网络(VGG16)对输入的图像进行提取特征,把候选区域投影到特征图上生成相应的特征矩阵。
3. 然后将每个特征图经过兴趣区域池化(RoI Pooling)层缩放到7×7的特征图。
4. 接着经过一系列全连接层,最后并联一个softmax层预测类别和bbox regressor(边界框回归)预测边界框。
需要注意的是这里把整张图像送入网络提取特征,然后把候选区域经过映射到特征图上提取特征,而不是单独对每一个候选区域进行计算(卷积运算)
即实现了共享卷积的过程,这也是因为它比R-CNN快的原因。
ROI Pooling 层的工作原理是将每个候选区域的特征图均匀分割成一个网格单元。对网格中的每个单元格应用 max pooling操作以返回单个值。所有单元格的所有值表示特征向量,需要注意的是这里将卷积神经网络的输出和提议区域作为输入。其优点是不限制输入图像的尺寸,也能转化为大小统一的特征矩阵。
在这里得到候选框的类别以及得分,我们知道经过softmax运算会的得到一个概率分布,由于Pascal VOC数据集上有20个类别,因此输出的神经元共有21个,其中一个是背景的概率。
例如从上图我们可知预测的类别为第4个类别。
常用的边界框表示有(中间,宽度,高度)和(左上,右下),原论文用的是第一种,因此候选框回归参数为
(
d
x
,
d
y
,
d
w
,
d
h
)
(d_x,d_y,d_w,d_h)
(dx,dy,dw,dh), 假如有
N
+
1
N+1
N+1个类别,则输出
4
(
N
+
1
)
4(N+1)
4(N+1)个神经元,在Pascal VOC数据集上候选框回归参数如下:
在常见的神经网络中,其流程大多是定义损失函数,从而反向传播来训练模型,在Fast R-CNN中,其定义的损失函数是多任务损失函数。
1.分类损失
p
p
p:候选边界框经分类器预测的概率分布(softmax)
p
=
(
p
0
,
p
1
,
.
.
.
,
p
N
)
p=(p_{0},p_{1},...,p_{N})
p=(p0,p1,...,pN)
u
u
u:真是边界框中的真是类别标签
其中
L
c
l
s
=
−
log
p
u
L_{cls}=-\log p_{u}
Lcls=−logpu
2.边界框回归损失
其中,
t
u
t^{u}
tu:对应边界框回归器的对应类别为
u
u
u的回归参数
(
t
x
u
,
t
y
u
,
t
h
u
,
t
w
u
)
(t_x^u,t_y^u,t_h^u,t_w^u)
(txu,tyu,thu,twu)
v
v
v:对应真是目标边界框的回归参数
(
v
x
,
v
y
,
v
h
,
v
w
)
(v_x,v_y,v_h,v_w)
(vx,vy,vh,vw)
需要注意的是smooth L1损失完美地劈开了L1和L2作为损失函数的缺陷。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。