存档

文章标签 ‘orb’

Kmeans based indexing and Asymmetric Distance Computation for ANN search (Binary Local Feature): part1

2012年1月13日 6 条评论

受Herve Jegou的Hamming Embedding and Weak Geometric consistency for large-scale image search以及Product quantization for nearest neighbor search启发,将Kmeans clustering、inverted files、Asymmetric Distance Computation应用到二进制形式的局部特征的最近邻检索。

主要思路:

用Kmeans做特征的粗索引。

根据统计数据对feature进行压缩。

检索时使用非对称的方式计算索引特征与查询特征之间的距离。

算法:

训练:

  1. 使用Kmeans对欲索引的特征进行聚类,得到K个中心。对二进制形式的feature做聚类时,类别中心更新方式为:对于每一个bit,统计所有落在该类别的特征的对应bit上的1,0频率,并取高者。
  2. 对于每个cluster,统计所有落在该类别的特征的每个bit位的1,0频率,取1或者0频率靠近50%的前M个bits。(越靠近50%,熵越大)

经过训练,我们得到两组数据:

  • K个特征类别中心。
  • 对于每个类别中心,都有一组“M个bit位置标示符”。这些标示符构成一个对原始feature进行压缩的依据。(本文以后将其称为投影向量)

阅读全文…

[zz] Feature descriptor comparison report

2011年10月8日 15 条评论

一个非常棒的各种descriptor的评测。全文转载如下:(美中不足的没有特征匹配的评测)

(一句话总结,综合考虑速度和性能,ORB是最好的。)

Introduction

For this test i have written special test framework, which allows me to easily add the new kind of descriptors and test cases and generate report data in CSV-like format. Than i upload it in Google docs and create this awesome charts. Five quality and one performance test was done for each kind of descriptor.

Test cases

  • Rotation test -  this test shows how the feature descriptor depends on feature orientation.
  • Scaling test -  this test shows how the feature descriptor depends on feature size.
  • Blur test -  this test shows how the feature descriptor is robust against blur.
  • Lighting test -  this test shows how the feature descriptor is robust against lighting.
  • Pattern detection test – this test performs detection of planar object (image) on the real video. In contrast to the synthetic tests, this test gives a real picture of the overall stability of the particular descriptor.
  • Performance test is a measurement of description extraction time.

阅读全文…

ORB Test

2011年9月25日 29 条评论

之前介绍了ORB,一种具备旋转不变形的局部特征描述子。2.3中提供了实现,但是缺少使用例程。下面是一个简单的样例程序。

随便拍了两张图片作为测试图像。

下面上下两图分别为模板图像和查询图像:

阅读全文…

比较描述子

2011年8月30日 3 条评论

局部特征描述子可以分为两类,(个人看法,欢迎批评):一是基于“绝对”值的,二是基于比较的。

基于绝对值的是指诸如SiftSurfGLOH之类的描述子。一般的思路是将灰度,梯度等量化,构造直方图。这类描述子的判别性高,直观,但是有个通病就是计算复杂度高。

基于比较的是指诸如FernsBRIEFOrbOSIDBRISK之类的描述子。一般的思路是通过比较预先训练的,或者随机点对的特征值大小,来构造描述子。这类描述子一般都是为了提高计算速度而设计的。这类描述子不关心原始特征的绝对大小,只关心原始特征的ranking。(值得一提的是为什么将Ferns也归在此类,Ferns并没有一个显式的特征描述,甚至没有一个距离度量,但是我相信Ferns之所以有用还是基于pairwise pixel comparisons 的判别能力。注1

我之所以将描述子如此分类,是受到ICCV11的这篇文章的启发:

The Power of Comparative Reasoning

文中提出了一个非常简单的feature compression的方法WTA(不是WTF^_^):

image

阅读全文…

什么是ORB

2011年7月4日 18 条评论

ORB是是ORiented Brief的简称。ORB的描述在下面文章中:

Ethan Rublee and Vincent Rabaud and Kurt Konolige and Gary Bradski, : an efficient alternative to or , ICCV 2011

没有加上链接是因为作者确实还没有放出论文,不过OpenCV2.3RC中已经有了实现,WillowGarage有一个talk也提到了这个算法,因此我不揣浅陋,在这里总结一下。

Brief是Binary Robust Independent Elementary Features的缩写。这个特征描述子是由EPFL的Calonder在ECCV2010上提出的。主要思路就是在特征点附近随机选取若干点对,将这些点对的灰度值的大小,组合成一个二进制串,并将这个二进制串作为该特征点的特征描述子。详细算法描述参考如下论文:

Calonder M., Lepetit V., Strecha C., Fua P.: BRIEF: Binary Robust Independent Elementary Features. ECCV 2010

注意在BRIEF eccv2010的文章中,BRIEF描述子中的每一位是由随机选取的两个像素点做二进制比较得来的。文章同样提到,在此之前,需要选取合适的gaussian kernel对图像做平滑处理。(为什么要强调这一点,因为下述的ORB对此作了改进。)

BRIEF的优点在于速度,缺点也相当明显:

1:不具备旋转不变性。

2:对噪声敏感

3:不具备尺度不变性。

ORB就是试图解决上述缺点中的1和2.

阅读全文…