带有OpenCV的增强现实SDK


94

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

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

OpenCV安装

下载最新版本

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

在线文档

增强现实

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

对于正在寻找设计良好的最新SDK的任何人,我都考虑了OpenCV功能,发现了每个基于标记跟踪的增强现实应具有的一般步骤。

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

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

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

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

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

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

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

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

  5. 从这些匹配项中找到同形异义矩阵。可以先使用RANSAC在匹配集中找到离群值/离群值。

  6. 从单应性中提取Camera Pose

完整的例子:


1
不幸的是,这是“没有建设性的”,您正在寻找建议。
bfavaretto 2012年

3
关于安装任务,现在OpenCV已迁移到GIT,因此要下载该库代码,必须执行“ git clone git://code.opencv.org/opencv.git”。
卡洛斯·卡查洛特

12
47上级投票由于无聊的规则而关闭。
SvaLopLop 2015年

Answers:


19

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


3
谢谢!FAST还有一个“快速”版本的FAST在手机中实时运行,它是金字塔形的,并且减少了SIFT描述符
Jav_Rock 2012年

2
使用ORB,我获得了近乎完美的结果
动态的

实际上,在阅读有关ORB的内容时,它说这是金字塔中的快速事件
Jav_Rock 2012年

3
怪胎是在AR上处理描述符的最后一种算法。比FAST快。
goe 2012年

13

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

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


4
是的,基准方法是最简单的方法,但还不是最新的方法。我认为现在应该指出纹理标记。谢谢。该示例非常有趣,因为已经对其进行了很好的解释。
Jav_Rock 2012年

1
如果您想知道姿势,则需要将标记要素的3D位置与相应的图像坐标相匹配。规则形状的目标使它更容易些,但他们并不需要是平的
马丁贝克特

但是,如果它们不是平面的,则需要3d模型或CAD模型,否则从2d到3d的单应性不再是一种有效的方法,对吗?我的意思是在findhomography中使用的直接线性变换
Jav_Rock 2012年

是的,如果您有3d标记,则需要知道真实的3d形状(从cad或测量得到),但确实可以提供更好的解决方案
Martin Beckett
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.