文章目录
引入
论文地址:戳戳。
要点:
1)在处理大规模图像问题的时候,考虑了搜索的准确性,其效率以及表示的内存使用情况;
2)把 aggregating local image descriptors 映射成一个有限维的向量,它是 Fisher 核的简化版;
3)为了维护向量的质量,通过共同优化降维和索引算法来实现。
1 图像向量表示
1.1 BOF (bag of features)
1)先通过 K-Means 聚类来获取 k 个虚拟的中心点;
2)每个 d 维的局部描述器都被分配给最近的那个中心点;
3)BOF 是以直方图的形式来表示的,它可以把所有的图像描述器分配给视觉单词(visual words);
4)这样就生成了一个 标准化后的 k 维向量;
5)当图像被视为经验分布的时候,BOF向量就使用曼哈顿距离;其它情况就使用欧氏距离;
6)然后使用 idf (inverse document frequency) 对向量进行加权;
7)可以用最流行的软量化技术 (soft quantization techniques) 来代替 K-Means 提升 BOF 的质量,其中最流行的。
1.2 FK (Fisher kernel)
1)FK 能够把一个可变大小独立样本集转变成一个固定大小的向量;
2)这个向量用 Fisher 信息矩阵平方根的倒数来表示,并且给出了参数空间的方向,这样可以更好拟合观察到的数据;
3)用 高斯混合模型 (GMM) 来对 视觉单词 (visual words) 进行建模,该模型仅限于对角方差矩阵;
4)推导 GMM 的 Fisher 矩阵,在只考虑GMM 均值或者方差的时候,可以得到一个 (2d-1)-1 维或者 (dk) 维的向量来表示一个图像特征集合;
5)这样做的好处就是,视觉单词 (visual words) 比 BOF 需要的更少。
1.3 VLAD (vector of locally aggregated descriptors)
其实这里我也没弄明白,VLAD (局部聚合描述器向量) 是什么东西,就只能按照自己理解的来解释了。
我在这里用我的方向的知识点来进行阐述一下(多示例学习),多示例学习是什么,请参考本人的另一篇博客,地址多示例学习。
直接上图:
1) 首先,对所有的实例来进行一个 codebook 聚类,(小声bb—其实就是KMeans)说法高大上一些。然后得出一系列的簇中心点出来
c
1
c_1
c1、
c
2
c_2
c2…。
2) 然后每个包都会基于选出来的簇中心点进行映射,每个包会被映射出一个向量。映射方法参考图表中的公式,这个公式表示:一个包中,如果该实例属于这个簇,然后就就用实例对簇中心进行一个相减,属于同一簇的会映射出一个子向量
v
i
1
v_{i_1}
vi1,这里我们聚类出了两类,所以最后会产生二个子向量,然后这两个子向量进行一个一维的拼接;就得出了
v
1
v_1
v1,这样每个包都会映射出这么一个向量。最后我们就有这么一些向量来表示这一群图片。
3)这些
v
i
v_i
vi 就是 VLAD,这些描述器的代表的意义就和SIFT一样,如果对SIFT有兴趣的同学,可以去看看这篇论文 Distinctive image features from scale-invariant SIFT
keypoints。
总结
由于不是研究图像处理这方面的,对于该论文的解读就到这里了。