在OpenCV里使用BRIEF

BRIEF是Binary Robust Independent Elementary Features缩写。我们知道SIFT使用128维向量做关键描述,由于它使用浮点数,需要512字节,同样的SURF也需要至少256字节(64维),创建上千个这样的向量需要很多内存,在资源受限的应用场景,特别是在嵌入式环境里这是不可能的,并且越大的内存,匹配时间就越长。

 

但是实际上在匹配的时候并不需要所有这些维度,我们可以使用一些方法比如PCA,LDA等压缩他们,即使是其他方法入LSH(本地敏感hash)把这些浮点的SIFT描述子转换成二进制字符串,这些二进制字符串用来通过Hamming距离匹配特征。这提供了更好的速度,因为找hamming距离只是做异或和位运算,在现代有SSE指令的CPU来说非常快,但是我们需要先找到描述子,然后我们才能使用hash,还是没有解决内存的问题。

 

BRIEF在这个时候出现了,它提供了直接找到二进制字符串而不找关键描述的简便办法。它取被平滑过的图像块,选择nd(x,y)集合位置对,然后在这些位置对上做像素强度对比,比如,设第一个位置对为p和q,如果I(p) < I(q),那么它的结果是1,否则是0,这用在所有nd个位置对,得到nd维的位串。

 

这里nd可以是128,256或者512。OpenCV支持所有这些参数,但是默认是256(OpenCV用字节表示,所以就是16,32和64字节)。当你得到这个,你可以使用Hamming距离来匹配这些关键描述。

 

一个最重要的是BRIEF是一个特征描述,它不提供任何方法来找特征,所以你还得使用别的特征描述比如SIFT,SURF等,

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览

应支付9.90元
点击重新获取
扫码支付

支付成功即可阅读