物体的局部信息可以用来进行精细分类,这篇文章学习了整个物体和物体局部检测器,从pose-normalized表示预测精细分类。局部定位可以反应物体之间的关联,并能降低物体姿态或相机位置变化带来的影响。Poselet和DPM用于物体局部定位获得了一定的效果,但测试时只有在给定bbox时才能获得充足的局部定位信息。精细识别,属性识别,姿态估计及推理预测等需要准确的局部信息。
思路来源:在Caltech-UCSD bird数据库上,SS提取局部proposal的平均recall为95%,使用R-CNN同时定位整个物体和局部,整个思路流程如下所示。
Part-based R-CNNs
训练前准备这个物体和特定局部集
p1,p2,...,pn
的groundtruth标记,训练时物体和局部被认为是独立的物体类,使用proposal提取的特征训练1-all的SVM,overlap>=0.7的正样本,<0.3的负样本。对于一个物体,学习到整个物体(root)的SVM权值
w0
,及所有局部
p1,p2,...,pn
的权值
w1,w2,...,wn
。测试时,对每个proposal使用所有root和part SVMs计算得分。最终的整个物体和局部的联系使用几何约束估计。
几何约束
使用 X=x0,x1,...,xn 表示物体及局部的bbox,给定权值 w0,w1,w2,...,wn ,有对应的检测器 d0,d1,...,dn ,检测得分是 di(x)=σ(wTiϕ(x)) ,其中 σ(⋅) 是sigmoid函数, ϕ(x) 是CNN特征。使用如下优化方法得到物体及局部的联合结构:
X∗=argmaxXΔ(X)∏ni=0di(xi)
结果得分函数 Δ 有以下几种形式:
Box约束: Δbox(X)=∏ni=0cx0(xi)
当y中最多有10个像素落在x外面时 cx(y)=1 。
几何约束:考虑到局部检测器不理想或物体有遮挡,使用如下形式的几何约束
其中 δi 是给定训练数据位置 pi 上的得分,文中使用最近邻形式 δNP ,最近邻使用pool5层特征和cos距离计算。具体形式见论文。精细分类
使用200类bird数据微调ImageNet训练的CNN,测试时,提取整个物体或局部区域的特征,之后使用1-all的SVM分类。如果某个局部区域未检测到(所有的proposal得分比局部检测器阈值小),则令 ϕ(xi)=0