本文主要提出了一种直接有效的图像表示方法,是通过交叉维度的赋权以及对深层卷积神经网络层输出进行聚合(cross-dimensional weighting and aggregation of deep convolutional neural network layer outputs.)
首先介绍了一些通用的框架,包含了一系列的方法以及交叉维度的pooling和赋权步骤,然后提出一个非参数的模式进行 spatial-wise 和 channel-wise 赋权。
神经网络在图像搜索应用中效果很好,它能够提取较为深层、抽象的特征。很多的图像搜索方法都基于深度特征(deep features)。Babenko et al. and Razavian et al. 提出不同的 pooling 方法对deep features 池化,将图像表示为几百维度的 compact 向量表示。
根据这些只是,本文提出一种简单、直接的方式来构建图像特征表示,方法是通过 交叉维度的赋权以及聚合(via cross-dimension weighting and aggregation)
本文的提取特征的方法基于深度卷积神经网络,因为我们是对全连接层之前的那些卷积层的输出进行聚合,所以每层的维度会不同(因为神经元的个数不同)。所谓本文没有对输入图像进行resizing和cropping操作,使得不同长宽比 aspect ratios 的图像能够保留内部的空间特性。
在对CNN的最后一层提取深度卷积特征之后,对每个空间位置 spatial 以及每个管道 channel 赋权,最后通过 sum-pooling 得到最终的聚合结果,也就是图像的特征 feature。
总结一下:
效果:使用 mean average precision 作为标准,本方法比之前最好的方法要高 10%
很多的图像搜索方法都是 bag-of-words 模型的变种,都是基于局部特征,代表性的是SIFT,还有一些对BOW模型的扩展,比如 soft assignment [27], spatial matching [2, 26], query expansion [1, 6, 7, 35], better descriptor normalization [1], feature election [36, 38], feature burstiness [15] and very large vocabularies [22],这些方法很难扩展规模,因为每个图像是用上百个patch表示,时间上和存储上受限。
接着,研究转向了全局图像表示,代表性的包括 VLAD 和 Fisher Vectors。
用 X∈RK×W×H X ∈ R K × W × H 表示3-dimensional 特征向量。 K K 表示通道数, W,H W , H 表示空间维度。
用 X′ X ′ 表示赋权之后的特征张量,per-location weights αij α i j , per-channel weights, βk β k :
非参数化的 spatial and channel weighting,没有使用到额外的参数,主要是根据了原始的输入信息。
Spatial Weighting:based on the normalized total response across all channels.基于范数化之后(因为算法的第一步是进行 max- or sum-pooling)的所有通道的response总和。 S′∈RW×H S ′ ∈ R W × H 表示所有通道的每个空间位置 (i,j) ( i , j ) 的聚合反应
得到 aggregated spatial response map S S
Sij=(S′ij(∑m,n(S′mn)a)1/a)1/b S i j = ( S i j ′ ( ∑ m , n ( S m n ′ ) a ) 1 / a ) 1 / b
setting αij=Sij α i j = S i j 得到空间权重因子
在实验中,使用了 L1, L2, inf 范数,当 a=0.5 a = 0.5 的时候结果相差不大,所有本文选择了 L2, b=2 b = 2 。
无参数化的原因:根据算法第一步得到的映射,得到了 Ck C k ,从而得到了 S′ S ′ , 最终得到了 S S ,并没有引入其他的参数。
channel weighting: 基于特征映射feature map 的稀疏性 sparsity。我们想达到的效果是对于给定的特征在相似的图像中出现的频率应该近似。
定义:非零元素出现的比例: Qk Q k for each channel k k ,得到每个通道的稀疏性:
λ(ij) λ ( i j ) 代表的是空间位置 (i,j) ( i , j ) 的所有通道 λ(ij)k λ k ( i j )
所以 Ξ∈RK Ξ ∈ R K
图像是在 Paris 数据集上做的实验,其上共11个类,每个类有5张图像。从图(b)上可以看出 对角线上一共11个方块,代表相同的landmark相似度高,其他代表不同的landmark相似度没那么高
在我们得到聚合的特征的时候,对每个 (i, j)位置上的所有的通道进行了 sum-pool 操作,这就使得那些有特征出现次数比较多的通多激活的程度更大,【channels with frequent feature occurrences are already strongly activated in the aggregate feature】但是对于那些特征比较少的通道,进行sum之后,可能激活程度没那么大,但是传递的信息更多。类似于TF-IDF,越少的内容信息量越大。 inverse document frequency 所以对较少特征的贡献进行方法,通过对其所在的那个通道增加权重 Ik I k
Ik=log(Kϵ+∑hQhϵ+Qk) I k = l o g ( K ϵ + ∑ h Q h ϵ + Q k )
∑hQh ∑ h Q h 经过 sum-pool 之后就固定了, ϵ ϵ 是一个较小的常数保证数值的稳定性。 Qk Q k 越小,得到的信息量越大。
所以本节的内容是 * 稀疏敏感通道赋值*
(Our sparsity sensitive channel weighting is also related to and motivated by the
notion of intra-image visual burstiness) 与图像内部的可视突出的概念相关。【什么意思】稀疏性较差的通道对应于那些在很多图像区域提供非零项的 filters
【】
可以使用不同的方法进行 pooling, weighting, aggregation.
设置 spatial 和 channel 权重相等,然后对每个通道执行 sum-pooling 操作,得到一个简单的Crow版本,叫做 uniform Crow 或者 uCrow。
这个相同权重,在代码实现上是没有加上权重,等价于 non-weighting
SPoC: refer to Babenko, A., Lempitsky, V.: Aggregating deep convolutional features for image retrieval. ICCV (2015)
CroW 和SPoC 区别 在于 spatial pooling, spatial weighting, and channel weighting。
refer: