这些都是大规模图像检索时的一些优化技术,这里包括一系列文章:
[1] H. Jegou, M. Douze, and C. Schmid. Hamming embedding and weak geometric consistency for large scale image search. In ECCV, 2008.
[2] H. Jegou, M. Douze, and C. Schmid. On the burstiness of visual elements. In CVPR, 2009.
[3] M. Jain, H. Jegou, and P. Gros. Asymmetric Hamming Embedding. In ACM Multimedia, 2011.
都是Hervé Jégou的文章,作者主页http://people.rennes.inria.fr/Herve.Jegou/index.html#herve-jegou
一、大规模图像检索问题回顾
大规模图像检索的问题可以用以下图表示(来源):
目的是构建一个图像检索系统,能支持1,000,000图像库的查询,最终返回出相似图片排序。
常见的算法流程为:
算法细节可以参见另一篇博客《Video Google: A Text Retrieval Approach to Object Matching in Videos》
二、Hamming Embedding
在k-means聚类时,k较小时Voronoi cell较大,描述子带噪声时划分到正确cell的概率高,然后这也减少了描述子的区分能力;当k较大时能保留描述子良好的区分性,但受噪声的干扰明显。所以文章提供了当k值较小时一种cell内部划分机制,称之为Hamming Embedding,能兼顾描述子区分能力和抗噪声能力。2维数据平面的划分示意图如下,来自《Hamming embedding and weak geometric consistency for large scale image search》:
off-line步骤,构造正交矩阵并计算HE阈值:
1. 随机构造一个正交投影矩阵
Pdb×d
,用QR分解M = randn(d); [Q, R] = qr(M); P = Q(1:d_b, :);
;
2. 将原始数据投影,
data˜=P×data
;
3. 计算每个原特征向量最近kernel,记为
q(xi)
,可以用FLANN;
4. 计算HE阈值,循环codebook_size,如果该Voronoi cell中有描述点,则thr(:, i) = median(投影向量),最终的HE阈值矩阵是
db×k
,
k
为codebook size。
on-line步骤:
1. 计算
2.
P×x
,计算投影后的
z
;
3. 计算
4. 如果
5. sort(score, 降序),结果为检索序列。
三、Burstiness
文章《On the burstiness of visual elements》揭示了图像集中存在大量多次出现的视觉元素,即重复模式。出于某种原因(没看懂,看懂了再补上),需要将这些重复模式进行抑制。文章给出了三种抑制的方式:
* 关键点仅参与投票一次;
* intra-image burstiness,图片中多频词汇抑制;
* inter-image burstiness,图片间多频词汇抑制;
具体计算体现在求score环节,对关键点voting score时有: