笔记:harvesting discriminative meta objects with deep CNN features for scene classification

本文提出了一种基于CNN特征,通过分析场景中的元目标(meta objects)进而进行场景分析的流程。这里的假设就是一个场景的类别通常与场景中包含的物体有关,场景的物体就对应所说的meta object。要分析图片中的物体就要进行分割,然后选择有效的分割区域,再将这些区域构造整个图的特征用于分类。这个流程可以分为五个部分:在整个图片上构造region proposal选取patch、对patch进行选取保留对应图片中有效的meta object的patch、对保留的patch进行聚类分析、构造整个图片的特征、分类。文章用下图表示:
这里写图片描述
下面分别分析这五个部分。
1)region proposal generation
由于本文要分析scene image中的object,首先要提取恰当的proposal。
提取场景图片中的region proposal,本文采用的是2014cvpr文章Arbeláez P, Pont-Tuset J, Barron J, et al. Multiscale combinatorial grouping[C]中提出的MCG方法。文章提到也可以用edge box和selective search 来生成proposal的方法。提取到proposal之后,用在Places数据集上预训练的CNN模型来提取特征。使用FC7层的特征作为patches的特征。
2)patch screening
为每类选择具有代表性的patches,同时根据每个patch对scene image判别的帮助信息(转化为后验概率)来给出一个权重,具体分为两个部分:
(一)首先对每个类中所有图像提取的patches进行一个筛选,方法是无监督的学习一个one class SVM,使得出现频率高的patches(representative patches)通过分类器得到正值,频率低的(non -presentative)为负值;这一步采用了三层的瀑布模型(cascaded classifier),每一层筛掉输入的15%。
(二)然后对上一步剩下的representative patches进行评分,这一步就是计算这个分数,分数高代表这个patch对整个图像的label的判定起的作用大。权重表示如下:
这里写图片描述
其中i是图像的索引,j是patch的索引,w(i,j)表示第i个图像中第j个patch的权重,p(i,j)代表第i图像中第j个patch,y(i)代表第i个图像样本的label,可以看出它的计算最后转化为后验概率,即:在出现p(i,j)这个patch的图像中,label与第i幅图像相同所占的比例。由于现在的patches并没有标签,也就没有类别信息,所以没法判断patches之间是否相同,最后这里用了一个近似,寻找patches中K个最近邻,其中包含这K个最近邻且label为 的图像数目记为 ,将两者的比值作为估计的权重。这里没有具体说判断最近邻的方法,也没有找到代码,应该是用它们特征的欧式距离做的。这个权重也是用来对patches进行筛选,策略就是直接删掉一些权重低的patches,删除的比例实验中通过cross validation确定。实验中并不是直接用这些patches,而是在这个基础上采用了data augmentation扩充了4倍。
3)meta object creation and classification
在第二步选取了patches后开始分析每个patch的语义信息,将patch的类别与scene image对应的类别建立联系。
首先需要对patches进行聚类,这是一个无监督的过程。文章采用的方法是2010年nips文章Krause A, Perona P, Gomes R G. Discriminative clustering by regularized information maximization[C]提出的RIM方法。聚类的结果,也就是聚类后的类别输出就是本文的meta object。本文还分析了另外一种情况,如果不进行聚类操作,将每个保留的patch看成一个meta object,然后继续下面的步骤,精度下降6%。聚类的作用可以看成是增加了这个类别里面共性的重要性而忽略了一个类别中细微差别,相当于去掉了patch类中的细枝末节。
在聚类的基础上,需要对未判定类别的patch进行分类还需要学习一个分类器,就是patch classification。文章采用对一个pre-trained CNN进行local fine tuning来构造分类器,同时将最后1000个输出的层换成需要的输出层。
4)image representation with Meta object
能够将图像中的patches用分类器分到对应的meta objects, 如何通过meta objects来构造整个图像的特征。文章提到了两种pooling的方法:SPM和modified VLAD(vector of Locally Aggregated Descriptors).整个图像在Places CNN上的feature最后用了,权重系数通过交叉验证选优。
图像还采用了multi-level的representation。这是为了方便检测不同尺寸的meta object。方案是在1),2),3)中采用multi-level proposal分别提取,在最后训练图像分类器之前将所有level得到的特征串联。
5)image classifier
分类器是一个包含两个隐含层的神经网络,每个隐含层包括200个节点,激活函数为rectified linear function。 输入层包含的节点数对应特征维数,输出层节点数对应最终的类别数。
最后,除了与其他方法对比,文章通过对比实验说明了框架中:local fine tuning、proposal extractors、outlier removal、clustering在实验中的作用并进行了分析。

个人笔记,多多指教~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章