OpenCV增强现实SDK

我正在OpenCV上开发增强现实SDK。 我遇到了一些问题,需要find关于这个主题的教程,其中包括可能的algorithm,快速高效的实时性能编码等。

到目前为止,我已经收集了下一个信息和有用的链接。

OpenCV安装

下载最新版本 。

你可以在这里find安装指南(平台:linux,mac,windows,java,android,iOS)。

在线文档 。

增强现实

在这里, begginer是OpenCV中的一个简单的增强现实代码。 这是一个好的开始。

对于任何寻求devise良好的最新SDK的人来说,我都会考虑到OpenCVfunction的基础上,每个基于标记跟踪的增强现实应该具备的一些通用步骤。

  1. 主程序:创build所有类,初始化,从video捕获帧。

  2. AR_Engine类:控制增强现实应用程序的各个部分。 应该有两个主要状态:

    • 检测 :尝试检测场景中的标记
    • 跟踪 :一旦检测到,使用较低的计算技术在即将到来的帧中对标记进行拖拽。

还应该有一些algorithm来找出在每一帧的相机的位置和方向。 这是通过检测在场景中检测到的标记与离线处理的标记的2D图像之间的单应性变换来实现的。 这里解释这个方法(第18页)。 姿态估计的主要步骤是:

  1. 加载相机内在参数 。 以前通过校准离线提取。 内在参数

  2. 加载模式 (标记)进行跟踪:这是我们要跟踪的平面标记的图像。 有必要提取特征并生成这个模式的描述符( 关键点 ),以便我们可以与场景中的特征进行比较。 这项任务的algorithm:

    • 快速
    • 冲浪
  3. 对于每个帧更新,运行检测algorithm以从场景中提取特征并生成描述符。 我们再次有几个select。

    • 快速
    • 冲浪
    • FREAK :一种新的方法(2012年)被认为是最快的。
    • ORB
  4. 查找模式和场景描述符之间的匹配

    • FLANN匹配器
  5. 从这些匹配中找出Homographymatrix。 之前可以使用RANSAC来查找一组比赛中的内线/外线。

  6. 从单应性提取相机姿势

    • 来自Homography的姿势示例代码。
    • 来自Pose的同形示例代码。

完整的例子:

  • aruco
  • 掌握OpenCV示例

由于AR应用程序经常在移动设备上运行,因此您可以考虑其他function检测器/描述符:

  • 怪物
  • ORB

一般来说,如果您可以select标记,则首先使用边缘检测器检测方形目标,然后selectHough或简单轮廓 – 然后从内部devise中识别特定标记。 而不是使用一般的点匹配器。

看看Aruco写得很好的示例代码。