Hamming embedding and weak geometric consistency for large scale image search

本文介绍了ECCV2008论文中的关键概念,包括将bag-of-features视为投票机制,提出了汉明嵌入用于保持描述符的判别力,即使在聚类k值较小的情况下,以及弱几何一致性用于过滤不满足几何变换先验的匹配点。文章通过归一化的匹配函数和汉明距离实现了高效的图像检索,并利用描述子的方向和尺度信息进行几何一致性估计,提高匹配精度。

Hervé Jégou, Matthijs Douze, and Cordelia Schmid,ECCV2008,被引用次数:779
阅读时间:2015-04-06~07

文章三大贡献:

  1. 将bag-of-features理解成voting,并形式化表示match过程;
  2. 提出Hamming Embedding,在聚类中k值较小时也能保持descriptor的discriminative power;
  3. 弱几何一致性和几何变换先验过滤掉一些不满足该条件的匹配点。

一、bag-of-features理解成voting

在match阶段,假设已计算出query image的descriptors,接下来:

  • sj=0 ,表示初始化时与dataset中图片 xj 的匹配值为0;
  • 对query图片中每个descriptor,记为 yi ,对图片 xj 的每个descriptor,记为 xi,j ,有
    sj=gji=1..mi=1..mjf(xi,j,yi)
    稍后再解释 gj() ,先当它没有。其中 f(xi,j,yi) 为描述子匹配函数,如未加权的bag-of-features中, f(xi,j,yi
为了绘制并分析所有方法和 K 值下的成对汉明距离,可按以下步骤操作: #### 1. 计算汉明距离 首先,实现 `hamming_distance` 函数来计算两个序列之间的汉明距离: ```python def hamming_distance(sequence1, sequence2): if len(sequence1) != len(sequence2): raise ValueError("Sequences must be of equal length") return sum(c1 != c2 for c1, c2 in zip(sequence1, sequence2)) ``` #### 2. 生成成对汉明距离矩阵 接下来,生成所有方法和 K 值下的成对汉明距离矩阵: ```python import itertools import numpy as np def pairwise_hamming_distances(data): n = len(data) distances = np.zeros((n, n)) for i, j in itertools.combinations(range(n), 2): distances[i, j] = hamming_distance(data[i], data[j]) distances[j, i] = distances[i, j] return distances ``` #### 3. 绘制汉明距离矩阵 使用 `matplotlib` 库绘制汉明距离矩阵的热力图: ```python import matplotlib.pyplot as plt def plot_hamming_distances(distances, title): plt.figure(figsize=(10, 8)) plt.imshow(distances, cmap='hot', interpolation='nearest') plt.colorbar() plt.title(title) plt.show() ``` #### 4. 分析汉明距离 可以通过观察热力图的颜色分布来分析汉明距离。颜色越接近热色(如红色)表示汉明距离越大,即序列之间的差异越大;颜色越接近冷色(如蓝色)表示汉明距离越小,即序列之间的差异越小。 #### 示例代码 以下是一个完整的示例,展示如何使用上述函数: ```python # 示例数据 methods = [ [1, 0, 1, 0], [1, 1, 0, 0], [0, 1, 1, 0], [0, 0, 1, 1] ] # 计算成对汉明距离 distances = pairwise_hamming_distances(methods) # 绘制汉明距离矩阵 plot_hamming_distances(distances, "Pairwise Hamming Distances") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值