文章题目:Rich feature hierarchies for accurate object detection and semantic segmentation
使用了CNN来自底向上地产生候选区域(Region Proposal)。
当标记的训练数据稀缺时,监督辅助任务的预训练,然后进行特定区域的微调,产生显着的性能提升。
我们的检测模型包含三个模块:
关于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是类别数。
使用ILSVRC2012进行与训练,标签只包含类别,不包含bounding box。
我们使用扭曲后的图像区域,结合SGD进行微调。将CNN的1000类分类层替换为随机初始化的(N+1)分类层,其中N是目标类别数,加上1表示背景。正样本:与ground-truth的IoU>0.5的候选区域,其余的作为负样本。
在每次SGD迭代过程中,我们均匀地从所有类别中采样32个positive window和96个background window,构成128的mini-batch。
在使用针对每类的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的样本。
在VOC2010测试集上的结果,效果优于其他传统方法,使用bounding-box regression(BB)性能提升了3.5%个百分点。
在ILSVRC2013上的测试结果
最高的六个pool5层响应单元对应的位置。有些单元对应了概念,如第一和第四行。有些获得了材料或质地属性,如第二行和第6行。
关于fine-tuning,bounding-box回归效果的测试。
两种不同CNN结构的测试。