看了许多关于BRIEF算法的博文,大多数写的不太详细,本文基于《BRIEF: Binary Robust Independent
Elementary Features》给出详细解释和理解。若有错误,欢迎批评指正。
1.摘要
- BRIEF是在ECCV2010上提出的一种以二进制字符串作为特征点的描述子。原作者将其与SURF和U-SURF在标准基准上进行了比较,结果表明,BRIEF具有类似或更好的识别性能,而运行时间只占二者所需时间的一小部分。
- BRIEF仅仅是特征描述子,所以还需要配合特征点检测算法一起使用,如FAST算法、Harris算法等。
2.算法
- 以特征点为中心,取其大小为SxS的邻域p(S的大小paper中并为提及,也未讨论S的大小对结果的影响,但是通过原作者之后做的实验中发现,原作者使用的S大小为31)。
- 在这个区域p中选取nd个点对nd(x,y)(选取方法请看2.2节),定义τ
p(x)为x点的像素值大小。也就是比较x,y点的像素值,如果y点像素值大则为1,否则为0。(nd=128,256和512) - 将nd个结果从最低位到最高位依次组成字符串fnd( p),
选取点对的顺序很重要,因为在对比结果的时候也要用相同的顺序来计算字符串。并且计算其他特征点的描述子的时候也要以相同的顺序选取点对。 - 最后在特征点匹配时,以两个特征点字符串的汉明距离作为判断依据。
2.1平滑内核
- 在构造上述描述子时,只考虑了单个像素处的像素值,因此对噪声非常敏感。通过对区域p进行预平滑,可以降低这种敏感性,从而提高描述子的稳定性和可重复性。
- 原作者用的是高斯平滑,当1<σ<3时,识别率相对较好,实际中原作者用的σ=2,卷积核大小为9x9。
2.2点对选取方法
下图为以上五种方法的可视化
这里就不贴比较图了,直接给出结论,G V较其他4种随机方法性能相差较多,故舍弃;G II相对其他3种方法有略微的优势,所以原作者在paper中用的是G II方法。
2.3汉明距离分布
原作者从5对图片中提取了大约4000个点对,特征字符串位数为256位,也就是说最大汉明距离为256,通过实验得知非匹配点的分布大致是以128为中心的高斯分布,而匹配点的汉明距离围绕在一个较小值附近,如下图所示。但是作为分离匹配点和非匹配点的具体策略和阈值,paper中并未给出。
3.结论
3.1描述子大小对识别率的影响
- 512位的BRIEF表现最好。
- 256位的BRIEF表现略差512位的BRIEF,但是优于SURF and U-SURF。
- 128位的BRIEF太短了,表现比较局限。
3.2角度敏感性
当旋转角度在10到15度时,几乎没什么影响,但是随后会急剧下降,也就是说不具备旋转不变性。
3.3速度
- 匹配两张图片的特征点通常有一下三步:
1)选择特征点
2)特征点描述
3)特征点匹配
结果图如下(BRIEF -k,k=nd/8,nd是描述子位数),环境是2.66 GHz/Linux x86-64。
- 可以看出,BRIEF的速度远远高于SURF的速度。
4.总结
- BRIEF抛弃了传统的用梯度直方图描述区域的方法,改用检测随机响应,大大加快了描述子建立速度;生成的二进制描述子便于高速匹配(计算汉明距离只需通过异或操作加上统计二进制编码中“1”的个数的操作,这些通过底层的运算即可实现),且便于在硬件上实现。
- 缺点:不具备旋转不变性,不具备尺度不变性,容易受噪声影响 。
参考资料
[1] BRIEF:Binary Robust Independent Elementary Features[J].2010 ECCV.
[2] 【特征检测】BRIEF特征点描述算法
[3] BRIEF特征提取(理解篇)