您的位置:首页 > 编程语言

1 ORB test实验代码

2016-03-02 14:03 381 查看

目录(?)[+]

提取左右图特征
做穷举式的最近邻检索
绘图
估计单应矩阵计算重投影误差
结果分析
完整代码如下

转:http://www.cvchina.info/2011/09/25/orb-test/

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

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

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







提取左右图特征:

?
注:模板图像在多尺度提取特征,查询图像只在提取原始尺度上的特征。


做穷举式的最近邻检索:

?
hamming距离测算通过查找表实现:

?


绘图:

?


估计单应矩阵,计算重投影误差:

?


结果分析:

tem feat num: 743

orb2 extraction time: 1.672435

query feat num: 100

match time: 3.698276

matchs num: 8

ransac time: 143.570586

homo

0.974942 0.410833 4.426035

-0.182418 0.828115 52.742661

0.001191 0.000144 1.000000

inlier num: 8

ratio 1.000000

mean reprojection error: 0.976777

可见最近邻检索是系统的瓶颈,(进行了743*100次hamming距离(32bytes)计算。)一个简单的优化如下,分段计算hamming距离,先计算前16byte的hamming距离,如超过某一阈值,则直接认为非候选,如小于某阈值,则继续进行后一半16bytes的距离计算。(粗略估计可以减少30%+的最近邻查询时间)。更复杂的办法是使用LSH,此处按下不提,有空再续。


完整代码如下:

?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: