OpenCV增强现实SDK
我正在OpenCV上开发增强现实SDK。 我遇到了一些问题,需要find关于这个主题的教程,其中包括可能的algorithm,快速高效的实时性能编码等。
到目前为止,我已经收集了下一个信息和有用的链接。
OpenCV安装
下载最新版本 。
你可以在这里find安装指南(平台:linux,mac,windows,java,android,iOS)。
在线文档 。
增强现实
在这里, begginer是OpenCV中的一个简单的增强现实代码。 这是一个好的开始。
对于任何寻求devise良好的最新SDK的人来说,我都会考虑到OpenCVfunction的基础上,每个基于标记跟踪的增强现实应该具备的一些通用步骤。
-
主程序:创build所有类,初始化,从video捕获帧。
-
AR_Engine类:控制增强现实应用程序的各个部分。 应该有两个主要状态:
- 检测 :尝试检测场景中的标记
- 跟踪 :一旦检测到,使用较低的计算技术在即将到来的帧中对标记进行拖拽。
还应该有一些algorithm来找出在每一帧的相机的位置和方向。 这是通过检测在场景中检测到的标记与离线处理的标记的2D图像之间的单应性变换来实现的。 这里解释这个方法(第18页)。 姿态估计的主要步骤是:
-
加载相机内在参数 。 以前通过校准离线提取。
-
加载模式 (标记)进行跟踪:这是我们要跟踪的平面标记的图像。 有必要提取特征并生成这个模式的描述符( 关键点 ),以便我们可以与场景中的特征进行比较。 这项任务的algorithm:
- 筛
- 快速
- 冲浪
-
对于每个帧更新,运行检测algorithm以从场景中提取特征并生成描述符。 我们再次有几个select。
- 筛
- 快速
- 冲浪
- FREAK :一种新的方法(2012年)被认为是最快的。
- ORB
-
查找模式和场景描述符之间的匹配 。
- FLANN匹配器
-
从这些匹配中找出Homographymatrix。 之前可以使用RANSAC来查找一组比赛中的内线/外线。
-
从单应性提取相机姿势 。
- 来自Homography的姿势示例代码。
- 来自Pose的同形示例代码。
完整的例子:
- aruco
- 掌握OpenCV示例
由于AR应用程序经常在移动设备上运行,因此您可以考虑其他function检测器/描述符:
- 怪物
- ORB
一般来说,如果您可以select标记,则首先使用边缘检测器检测方形目标,然后selectHough或简单轮廓 – 然后从内部devise中识别特定标记。 而不是使用一般的点匹配器。
看看Aruco写得很好的示例代码。