目前的AR应用基本都是基于marker的比较多,但是不依靠marker首先要完成的定位工作。这篇文章主要描述,使用特征点进行检测和定位的问题(其中包含一些matching优化方式,具体请参考:学习OpenCV——KeyPoint Matching 优化方式)。
本篇采用ORB特征点和ORB特征描述子(可以采用SIFT或SURF特征,效果更好,但是OpenCV官方什么提过,SIFT和SURF不能用于商业用途,使用前需声明initModule_nonfree();且速度会慢一些)
| 效果 | FPS | |
| SIFT | 检测效果:优,尺度不变性:优,旋转不变性:优 | 5.5 |
| SURF | 检测效果:良,尺度不变性:良,旋转不变性:良 | 11.0 |
| ORB | 检测效果:差,尺度不变性:差,旋转不变性:良 | 30.0 |
步骤:
1. 目标图特征点检测和描述子计算;
2. 打开camera采集图像,并计算特征点及描述子;
3. 进行特征点匹配,采用KNN或Cross-check方式;
4. 寻找单应性变换矩阵,并通过单应性变换矩阵进行进一步优化,去除伪匹配;
5. 通过单应性变换矩阵进行目标定位。

本文介绍了如何利用OpenCV中的ORB特征点和描述子进行目标定位,包括特征点检测、相机图像处理、匹配优化、单应性变换矩阵计算以及最终的目标定位。虽然SIFT和SURF效果更佳,但可能涉及商业使用限制。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



