论文地址:https://arxiv.org/pdf/1511.05879v1.pdf
R-MAC源自2015年发表在cs.CV上的论文《PARTICULAR OBJECT RETRIEVAL WITH INTEGRAL MAX-POOLING OF CNN ACTIVATIONS》。
目前的图像检索一般都使用CNN网络提取特征,前人经验证明,在图像检索等领域,使用卷积特征,一般优于使用全连接层的特征。经过卷积层处理之后,输出三维矩阵如WxHxK,比如ResNet50,如果输入一个214x214的图片,网络提取到7x7x2048大小的特征,其中2048是通道数,可视为提取了2048种特征,而7*7则是在卷积池化过程中图片逐步变小后最终图片的大小。
一般使用平均池化,最大池化,和池化(sum-pooling)等方法将7*7大小的特征变成描述图片的单个特征。池化之后,该特征是对整张图片的描述,而不涉及图片中的具体区域。因此,之前使用CNN网络提取的都是图片的整体特征而非局部特征。
在图像检索中,常常是先检测出图中一个或多个目标区域(bounding box),然后代入匹配网络,找到数据库中与之最相似的区域,步骤比较复杂。论文优化了这一过程:在同一模型中同时实现了检测目标和匹配,用同一模型挖掘局部特征(locally invariant feature)和整体特征。
其核心技术主要包括三部分:
-
从一张图中取出多种局部特征,而无需使用其它网络先进行目标识别,这里借鉴了Faster R-CNN的目标识别方法。
-
使用广义均值(generalized mean)进行池化处理,以便直接使用从CNN提取的二维空间(WxH)特征。.
-
改进了搜索的后处理:使用局部特征、re-ranking重排和QE扩展查询。
使用R-MAC提取局部特征
如果使用滑动窗口(sliding window)穷举图片中所有可能的区域,计算量非常庞大;只对图片整体提取各个通道的特征又过于概括。
卷积层输出WxHxK大小的图片,其中W和K为输出时图片的宽高,比如上面举例中的7x7,K为通道数,W*H可视为2D,而WxHxK可视为3D(这里的3D指的不是三维空间的3D)。提取的特征f如下式所示:
其中Ω代表各个局部区域,p是某一个具体的局部区域,Xi是第i个通道提取特征的算法,上式计算出了各个通道中值最大的局部区域。
该方法提取了原始图中最重要的区域,又避免了穷举(在Oxford数据集上准确率与穷举类似,但速度快了180倍),这就是Regional Maximum activations of convolutions (R-MAC),可译为局部最大化卷积激活特征。下图展示了两张图像中最为匹配的五个区域:
用上述方法提取的区域,一般都不太精确,这里使用了类似目标识别的方法:使用一个全连接层实现精调滑动窗口。为了能提取到不同大小的区域,还使用了scale方法,最大的区域l=1,用于提取整张图的特征,对于较小的区域,在取值时设置40%的重叠overlap,下图展示了三种不同scale(l=1,2,3):
对每一个区域Region提取特征,之后再进行白化和归一化处理,以保证与通道数K一致的低维度,同样还是2048个通道,经过处理后,整体特征变成了局部特征。R-MAC相对于MAC提取了更显著的特征,由于做了scale处理,可以对同一通道中不同大小区域做匹配,从而实现了平移不变性和缩放不变性。从下表可以看到R-MAC比MAC效果好很多(L4包含L1,L2,L3)。
后处理
除了使用R-MAC方法提取特征,在检索过程中还使用的Re-Ranking重排策略。具体使用时,先用训练好的模型抽取已有图片的特征放入数据库。
当发起检索时,第一步Initial retrieval,对需检索的图片抽取特征,并计算它与库中图片的cosine距离,以得到最初的相似图片排序;第二步Re-ranking,使用局部特征进行空间(通道)验证,对数据库里提取到的top-N个最相似的图片,按区域特征再排序(进一步缩小候选范围);第三步Query expansion(QE)计算待检索的图片和top-5个相似图片的均值,并计算该均值与候选图片的距离,进一步排序。
下图展示了重排序后的变化:
R-MAC同时使用了局部特征和全局特征,显著提高了图片检索的水平,它的出现是一个里程碑似的节点。
网友评论