95

我正在 OpenCV 上开发增强现实 SDK。我在查找有关该主题的教程时遇到了一些问题,包括要遵循的步骤、可能的算法、快速高效的实时性能编码等。

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

OpenCV 安装

下载最新发布版本

您可以在此处找到安装指南(平台:linux、mac、windows、java、android、iOS)。

在线文档

增强现实

对于初学者来说,这里是 OpenCV 中的一个简单的增强现实代码。这是一个好的开始。

对于任何寻找设计良好的最先进 SDK 的人,我发现了一些通用步骤,每个基于标记跟踪的增强现实都应该具备,考虑到 OpenCV 功能。

  1. 主程序:创建所有类,初始化,从视频中捕获帧。

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

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

还应该有一些算法可以在每一帧中找到相机的位置和方向。这是通过检测场景中检测到的标记与我们离线处理的标记的 2D 图像之间的单应变换来实现的。此处对此方法的说明(第 18 页)。姿势估计的主要步骤是:

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

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

  3. 对于每帧更新,运行检测算法以从场景中提取特征并生成描述符。同样,我们有几个选择。

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

  5. 从这些匹配中找到Homography矩阵。RANSAC 之前可用于查找匹配集中的异常值/异常值。

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

完整示例:

4

2 回答 2

19

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

于 2012-09-05T15:19:21.670 回答
13

通常,如果您可以选择标记,您首先使用边缘检测器检测方形目标,然后使用霍夫或简单的轮廓 - 然后从内部设计中识别特定标记。而不是使用一般的点匹配器。

查看Aruco以获得编写良好的示例代码。

于 2012-09-05T16:04:55.193 回答