首页 > 程序开发 > 综合编程 > 其他综合 >

TWO-STAGEPOOLING OF DEEP CONVOLUTIONAL FEATURES FOR IMAGE RETRIEVAL

2016-12-14

CNN(卷积神经网络)基于图片表征在图像检索方面已经取得可相当高的成绩。然而,传统的CNN不是基于全局特征就是采用高维的特征,这会消耗大量的内存和计算资源,或者有价值的特征抓取的不充分,导致CNN抓取特征能力不足。

CNN(卷积神经网络)基于图片表征在图像检索方面已经取得可相当高的成绩。然而,传统的CNN不是基于全局特征就是采用高维的特征,这会消耗大量的内存和计算资源,或者有价值的特征抓取的不充分,导致CNN抓取特征能力不足。为了改善这些问题,我们提出了“双层局部平均池化法(PMP)”去构建紧凑且高辨识度的全局特征。希望基于“碎片层(patch-level)”“中层(mid-level)”提取的特征和代表的PMP,能打破传统“最大池化(max-pooling)”和“平均池化(mean-pooling)”的限制。通过在几个公共基准数据集上的实验,我们大大提高了检索能力。

十年来,图像检索在学术界和工业界吸引了广泛的注意。特征代表在图像检索方面是个核心因素,影响着准确率和效率。传统的,手动标注局部特征方式,类似“SIFT”和“SURF”可以利用BoW,VLAD和FV方式计算出全局代表。近几年随着深度学习的高速发展,利用pre-trained的CNN模型去提取特征已经达到了一个很高的水平并且比起传统的手动标注合并来做图像检索(场景检索,地标识别

)要好很多。

老实说,基于图像代表的CNN可以被分为两类,一类利用pre-trianed的模型对于整张图像去获取全局特征。一个简单的方法:从Alexnet/CafeeNet的fc6/fc7全连接层去提取高层特征。Howeverthe

rawhigh dimensional CNN features are much less efficient due to timeconsuming similarity distance computing.最近的工作采用了PrincipalComponmentAnalysis(PCA)方法去更多的降低特征的尺寸。尽管PCA能够吧特征转为低维度的代表(representation),但是这个转换矩阵(matrix)非常的大,因此会导致一定的时间消耗在减少加工上。值得注意的是,如果卷积或池化的特征被当成公共向量来对待,那么每个卷积或池化featuremap的位置信息会被忽略,但是,特征池化可以解决这个问题。因此,特征池化被考虑基于“middle-level”的representation。Babenkoet al.使用sumpooling来降低最后一个卷积或者池化层的特征尺寸并且效果不错。然而,图像检索经常会有复杂的场景,很多的不同尺寸,凌乱的背景,很多的类别,这些都是对于全局表征贡献不大的对于整张图片在检索中的必要信息。

为了解决基于全局表征的缺点,第二个方法是利用CNN从原始图像的碎片中提取特征然后融合globalrepresentation。比如,Gongetal.提出了MOP-CNN方案,用VLAD融合来自于不同大小滑动窗口的深度特征。然而,VLAD受到了尺寸的限制,因为全局特征是“patch-level”特征的C倍,C是词汇表的尺寸。MOP-CNN采用PCA去降低特征的尺寸但是之前提到了PCA在尺寸降低上的问题依然存在。一些其他的团队,更喜欢去用一些简单的方法,比如“maxpooling”和“meanpooling(averagepooling)”去获取简介的全局imagerepresentation。但是,maxpooling很容易收到某些突出信号的影响,meanpooling容易受到背景的影响,从而忽略一些有意义的信号。

基于之前的一些方法的缺点,我们提出了高效率PMP,并且把PMP加入到特征提取框架中去。PMP主要用来去减少maxpooling和meanpooling带来不利点。在进行特征提取的时候PMP分了两步:1、intra-patchpooling从卷积featuremaps中去抓取有意义的信号2、intra-patchpooing把level-patch的features合称为全局表征。大量的评测表明PMP比maxpooling和meanpooling的效果更好。同时,这样的特征提取框架采用小的特征尺寸在一些基准数据集上的准确率也被提高了准确率。

第二章会介绍,intra-patch和intra-patchpoling和特征提取框架。后面也有大量的实验结果以及分析,最后在第四章我们作了总结。

2、提出的方法

这一章,基于特征提取框架的PMP的细节可以在图1中清楚看出。我们的框架主要包含了三个阶段:patchdetection,mid-level特征提取和两个阶段的PMP

\

图1:展示了整个体征提取框架。pool5,fc6和fc7层是CaffeNet的特点,对于VGGNet而言,网络结构会更深但保持类似结构。

2.1 PatchDetection

正如前面提到的,把整张图片放入到提前训练好的CNN中很难解决不同尺寸,嘈杂的背景和无用的目标带来的问题。收到最近用R-CNN来做目标检测的启发,我们也采用了objectproposal algoprithms去检测高目标可能区域的特征。这样的话,在patch-level收到的背景以及其他无用目标的影响将会被减小。当检测到的patchs是这些目标可能性高的区域,而且CNN的特征很容易去描述目标的语义信息时,CNN的mid-level特征对于每一个patch都会被提取而且被整合形成全局代表。

根据一些关于目标目标提取算法的调查,BING有着最低的计算复杂度(整个检测程序在一个2.6GHz的单CPU电脑上只需要10ms)因为有着搞笑的特征提取,我们采用了BING作为我们的patch检测算法。

值得注意的是,MOP-CNN采用了不同尺寸滑动窗口来解决尺度变化。但是,尽管patchs通过pre-determined的尺寸和滑动步长被提取出来,但是不能保证这些patchs能够抓取到有意义的目标在一个合适的sizes中,比如,两个明显不同的目标可能会在同一个patch中,这样CNN就不能产生很好的特征。所以我们不喜欢MOP-CNN。

2.2Mid-level Feature Extraction

如图1所示,给了一个pre-trained的CNN模型,对于每一个imagepatch我们提取了最后一个卷积/池化蹭的featuremaps来作为mid-levelfeature。特别的,这个pool5层的特征是来自于CaffeNet和VGGNet(16层)。我们打算对提取自CaffeNet和VGGNet的pool5的信号在每一个featuremap中进行降序排序。我们的实验表明了排序后的特征比未加工的特征更好描述。

直觉上来说,排序的mid-levelfeatures防止了避免了明确的硬编码的位置信息,从而处理位置方差比原始特征更好。对于不同位子有意义的目标,排序能够更好的检测到他们,所以相似距离的计算能够跟好不受到目标位子变化的影响。举个例子,对于在CaffeNet的pool5层的256feature maps都是用6*6的矩阵来表示的,每一个矩阵的元素都包含了明确的信息。为了抓取pool5这一层的结构信息,我们可以依次连接36元素反应,但位置的不变性很难被满足。所以,我们的mid-level特征提取对信号进行了排序以减少特征对于位置变化的敏感度。

我们已经经验验证,mid-levelpooling features,不包括明确的位置信息注入,超越high-levelfc feature。表格1,比较了排序的CaffeNet的pool5features和其他features在Holiday在检索上的表现。可以看出,排序的pool5比其他传统的pool5更好,而且超越了类似fc6/fc7这样的高层。

\

相比较于全连接层特征方式,利用卷积/池化层可以明显的减少内存和计算时间消耗,因为在特征提取时减少了大型矩阵的乘法运算。

但是,对于检索而言,排序了的mid-levelfeatures依然拥有太高的维。所以,我们用两个阶段的PMP去构建较有辨别力的简洁的features。

2.3.Two-stage Partial Mean Pooling

这两个阶段的PMP,被利用到了patch-levelfeatures去形成简洁的代表。

Intra-patchPooling。这个Intra-patchpooling用来从featuremaps中提取有辨识度的信号并且把feature转换成低维的representation。作为一种量化,PMP是基于intra-patchpooling能够移除位置变化在featurerepresentation中的不利影响。下面有对intra-patchpooling的公式说明。

\
相关文章
最新文章
热点推荐