我正在开发OpenCV上的增强现实SDK . 我在找到关于该主题的教程,遵循的步骤,可能的算法,快速有效的实时性能编码等方面遇到了一些问题 .
到目前为止,我已经收集了下一个信息和有用的链接 .
OpenCV安装
你可以找到安装指南here(平台:linux,mac,windows,java,android,iOS) .
在线documentation .
增强现实
对于begginers来说,here是OpenCV中的一个简单的增强现实代码 . 这是一个好的开始 .
对于任何寻找精心设计的最先进SDK的人来说,我发现了一些基于标记跟踪的每个增强现实应该具有的一般步骤,考虑到OpenCV功能 .
-
主程序:从视频中创建所有类,初始化,capture帧 .
-
AR_Engine类:控制增强现实应用程序的各个部分 . 应该有两个主要状态:
-
detection :尝试检测场景中的标记
-
tracking :一旦检测到,使用较低的计算技术在即将到来的帧中追踪标记 .
还应该有一些算法用于在每一帧中找到摄像机的位置和方向 . 这是通过检测场景中检测到的标记与我们已离线处理的标记的2D图像之间的单应变换来实现的 . 此方法的说明here(第18页) . 姿势估计的主要步骤是:
- Load camera Intrinsic Parameters . 以前通过校准离线提取 .
要跟踪的
-
Load the pattern (标记):它是我们要跟踪的平面标记的图像 . 有必要为此模式提取特征并生成描述符(keypoints),以便稍后我们可以与场景中的特征进行比较 . 此任务的算法:
-
对于每次帧更新,运行 extracting features from the scene 的检测算法并生成描述符 . 我们还有几种选择 .
-
SIFT
-
快
-
SURF
-
FREAK:一种新方法(2012)被认为是最快的 .
-
在模式和场景描述符之间查找 matches .
-
从这些匹配中查找Homography矩阵 . 之前可以使用RANSAC来查找匹配集中的内点/异常值 .
-
从单应性中提取 Camera Pose .
-
Pose from Homography上的示例代码 .
-
Homography from Pose上的示例代码 .
2 回答
由于AR应用程序通常在移动设备上运行,您还可以考虑其他功能检测器/描述符:
FREAK
ORB
通常,如果您可以选择标记,则首先使用边缘检测器检测方形目标,然后使用Hough或简单的轮廓检测 - 然后从内部设计中识别特定标记 . 而不是使用一般点匹配器 .
查看Aruco以获得精心编写的示例代码 .