文章题目:Rich feature hierarchies for accurate object detection and semantic segmentation
1 文章简述
使用了CNN来自底向上地产生候选区域(Region Proposal)。
当标记的训练数据稀缺时,监督辅助任务的预训练,然后进行特定区域的微调,产生显着的性能提升。
我们的检测模型包含三个模块:
- 产生与类别独立的候选区域
- 一个大的从每个区域提取固定长度特征大型网络。
- 一系列与类别对应的线性SVM分类器。
2 候选区域产生
selective search
关于selective search,可以参见mao_kun的博客,不再赘述。
特征提取
特征通过输入为227x227减去均值的图像,5卷积层和两全连接层的卷积网络提取得到。输出为4096维特征。
针对图像分辨率和比例不符合网络输入要求的问题,我们采用了D列的扭曲操作。D列的第一行内容填充为0,D列第二行内容填充为16,从而包含了部分周围环境信息。
非最大值抑制
对于图片中的一个候选区域,如果它和一个具有更高socre的候选区域有高于阈值的重合度(IoU),则拒绝该候选区域。
特征矩阵尺寸为 2000 × 4096 2000\times4096 2000×4096,SVM权重矩阵为 4096 × N 4096\times N 4096×N, N N N是类别数。
3 训练
有监督预训练
使用ILSVRC2012进行与训练,标签只包含类别,不包含bounding box。
特定区域微调(fine-tuning)
我们使用扭曲后的图像区域,结合SGD进行微调。将CNN的1000类分类层替换为随机初始化的(N+1)分类层,其中N是目标类别数,加上1表示背景。正样本:与ground-truth的IoU>0.5的候选区域,其余的作为负样本。
在每次SGD迭代过程中,我们均匀地从所有类别中采样32个positive window和96个background window,构成128的mini-batch。
Bounding-box 回归
在使用针对每类的SVM对selective search proposal进行评估后,我们对每一类做一个bounding-box回归。
训练算法的输入是 N N N个训练对${ (P{i},G{i}){i=1,…,N} , 其 中 ,其中 ,其中P{i}=(P_{x}{i}, P{y}^{i}, P_{w}^{i}, P_{h}^{i}) 。 表 示 。表示 。表示P_{i}$候选区域的中心坐标和宽高。ground-truth G G G 表示为 G = ( G x , P y , P w , P h ) G=(G_{x}, P_{y}, P_{w}, P_{h}) G=(Gx,Py,Pw,Ph)。目标是学到从候选box P P P到ground-trhth G G G的变换。
变换函数为
d
x
(
P
)
,
d
y
(
P
)
,
d
w
(
P
)
,
d
h
(
P
)
d_{x}(P), d_{y}(P), d_{w}(P), d_{h}(P)
dx(P),dy(P),dw(P),dh(P),前两个表示
P
P
P的平移量,具有尺度无关性,后两个表示
P
P
P的对数平移量,从候选位置
P
P
P到预测的ground-truth
G
^
\hat{G}
G^的变换为
G
^
x
=
P
w
d
x
(
P
)
+
P
x
\hat{G}_{x}=P_{w}d_{x}(P)+P_{x}
G^x=Pwdx(P)+Px
G ^ y = P w d y ( P ) + P y \hat{G}_{y}=P_{w}d_{y}(P)+P_{y} G^y=Pwdy(P)+Py
G ^ w = P w e x p ( d w ( P ) ) \hat{G}_{w}=P_{w}exp(d_{w}(P)) G^w=Pwexp(dw(P))
G ^ h = P h e x p ( d h ( P ) ) \hat{G}_{h}=P_{h}exp(d_{h}(P)) G^h=Phexp(dh(P))
每个函数
d
⋆
(
P
)
d_{\star}(P)
d⋆(P)(
⋆
\star
⋆代表
x
,
y
,
w
,
h
x,y,w,h
x,y,w,h)是Alexnet的pool5层特征的线性函数,表示为
d
⋆
(
P
)
=
w
⋆
T
ϕ
5
(
P
)
d_{\star}(P)=w_{\star}^{T}\phi_{5}(P)
d⋆(P)=w⋆Tϕ5(P),
w
⋆
w_{\star}
w⋆是需要学习的模型参数。我们通过最优化均方误差函数得到
w
⋆
w_{\star}
w⋆
w
⋆
=
a
r
g
m
i
n
w
⋆
^
∑
i
N
(
t
⋆
i
−
w
⋆
^
T
ϕ
5
(
P
i
)
)
2
+
λ
∣
∣
w
⋆
^
∣
∣
2
w_{\star}=argmin_{\hat{w_{\star}}} \sum_{i}^{N}(t_{\star}^{i}-\hat{w_{\star}}^{T}\phi_{5}(P^{i}))^{2}+\lambda||\hat{w_{\star}}||^{2}
w⋆=argminw⋆^i∑N(t⋆i−w⋆^Tϕ5(Pi))2+λ∣∣w⋆^∣∣2
回归目标通过训练对
(
P
,
G
)
(P,G)
(P,G)计算得到
t
x
=
(
G
x
−
P
x
)
/
P
w
t_{x}=(G_{x}-P_{x})/P_{w}
tx=(Gx−Px)/Pw
t y = ( G y − P y ) / P h t_{y}=(G_{y}-P_{y})/P_{h} ty=(Gy−Py)/Ph
t w = l o g ( G w / P w ) t_{w}=log(G_{w}/P_{w}) tw=log(Gw/Pw)
t h = l o g ( G h / P h ) t_{h}=log(G_{h}/P_{h}) th=log(Gh/Ph)
我们设 λ = 1000 \lambda=1000 λ=1000并且只考虑 P P P和 G G G的IoU大于0.6的样本。
4 结果分析
在VOC2010测试集上的结果,效果优于其他传统方法,使用bounding-box regression(BB)性能提升了3.5%个百分点。
在ILSVRC2013上的测试结果
最高的六个pool5层响应单元对应的位置。有些单元对应了概念,如第一和第四行。有些获得了材料或质地属性,如第二行和第6行。
关于fine-tuning,bounding-box回归效果的测试。
两种不同CNN结构的测试。