BRIEF特征 学习笔记

来源:互联网 发布:灰鸽子源码 编辑:程序博客网 时间:2024/04/30 00:13

BRIEF特征描述子

1.     简介

       BRIEF描述子由Michael Calonder等人发表于ECCV10。详见这篇文章:

BRIEF: Binary Robust Independent Elementary Features。

       BRIEF采用二进制编码的方法对特征点周围区域提取描述子,它的描述子更简单,存储空间也比SIFT、SURF更小,采用Hamming Distance进行比较,匹配速度更快。

2.     方法 

       在特征点周围S*S的区域(patch)中,随机选取nd对像素点,像素点对的选取是随机的,如图1所示,一条线段表示一对像素点,线段的终点即像素点的位置。


       然后分别比较每对像素点的灰度大小,赋值为1或0。

       BRIEF描述子的每一位,由两个像素点的比值(1或0)得到。如以下公式所示:


       因此,BRIEF的每个描述子其实就是1或0的编码,像素对的个数nd等于二进制值的位数。然后用Hamming距离进行描述子的比较与匹配。

3.     注意事项

      在提取特征前要对patch进行高斯平滑,可以减少噪声的干扰。原文中选择高斯核方差为2,核窗口为9*9。在OpenCV的源码实现中,应该是直接使用了9*9窗口内像素值的和,代替原来单个像素值,再进行比较,这样的结果会更加鲁棒。

4.     存储空间

       一个SURF描述子是64维,即64个float类型的数据,那么存储空间是64*32 bit,需要64*32/8 = 256 bytes的存储空间。而对于BRIEF来说,如果一个patch中选取128对像素点,那么只需要128bit,即 128/8 = 16 bytes的存储空间。因此存储空间缩小了10倍以上。

5.     匹配方法

        BREIF描述子是二进制的编码,因此可以用hamming距离进行比较。而SURF特征、SIFT特征一般用L2-norm进行比较。 因此BREIF的匹配速度也更快。

原文给出的评测结果:


欢迎交流!

6 0