zl程序教程

您现在的位置是:首页 >  后端

当前栏目

在OpenCV里使用BRIEF

Opencv 使用
2023-09-14 09:10:32 时间

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。O