论文阅读:Multi-scale orderless pooling of deep convolutional activation features
2014年ECCV
Motivation
以往的图像分类,关注的信息可能更容易被干扰。比如下图中的(a),groundtruth应该是滑雪(ski),但是由于一些其他信息的干扰,导致红框中框出来的部分被分类为shovel,篮框中被认为是阿尔卑斯山,那么这篇论文就是基于这样一个motivation,试图关注图像中更细节的信息。
Basic Idea
Multi-scale体现在对于同一张输入图片,作者做了三个尺度上的变化,第一个,level one就是原图经过CNN后,提取全连接层的特征,得到一个4096维的向量。第二个和第三个是对图像做了不同尺度的scale,第二个level每个patch的大小是128*128,第三level和第二个level做的操作是一样的,区别就是他的每个patch大小是64*64。
Framework
我自己画了一个非常low的framework图,对于一张输入图像,首先做一个multi-scale,也就是将它分成若干不同大小的patch,然后将其送到一个CNN中训练,并提取全连接层的特征,再经过一个ReLU变化将所有的值转化为非负,经过K近邻和VLAD pooling后,送到线性SVM中训练并得到结果。再整个过程中,对于每一个patch得到的4096维的全连接层输出,使用了PCA降维至500,论文中使用了100 k-means 中心,所以将得到一个50000维的向量,但是对于大规模应用来说,这一维度仍然很高,所以作者又再次使用PCA将50000的向量降维至4096维。
Performance
测试过程中考虑到了四种情况的变换:平移,缩放,翻转和旋转。如下图,第一行第一列是原图,第一行是不同尺度下的scale,第二行是平移,第三行是翻转和旋转。
与CNN相比,多种变换下的分类准确率:
注意到在翻转变换(d)中,水平翻转后的分类准确率可以达到与原图相一致,这是因为在CNN中的data层采用了mirror进行了数据增广,因此对水平翻转具有很好的识别率。
论文中还做了其他很多实验,除了在SUN397和MIT Indoor Scenes数据库上做了Image classification,还在ILSVRC2012/2013上做了Image retrieval。总的来说结果还不错,不过思想很简单,包装的也蛮玄乎的。