【问题标题】:Computer Vision / Augmented Reality: how to overlay 3D objects over vision?计算机视觉/增强现实:如何在视觉上叠加 3D 对象?
【发布时间】:2013-04-18 04:22:02
【问题描述】:

我正在尝试创建一个示例应用程序,我可以在其中在相机屏幕上叠加 3d 对象。它们将被放置在特定点,并在用户移动相机以转换视角时重新绘制每一帧。

本质上,我希望复制这个:http://www.youtube.com/watch?v=EEstFtQbzow

这是我更准确地表述问题的尝试:考虑在初始对象放置时给定一个初始图像矩阵(代表所有 X、Y 像素坐标)。放置后,需要分析每个后续视频帧以重新定位已放置的对象,以便在新视角下正确重新绘制(叠加)它。

我有一点计算机视觉方面的背景,但我不确定如何完成这项特殊任务。作为参考,我要创建的示例应用程序将适用于 Android,因此如果有人知道现有代码,我也可以利用它。但是,我非常愿意被引导到描述我需要实现的算法的学术论文。 谢谢。

【问题讨论】:

    标签: algorithm graphics computer-vision


    【解决方案1】:

    这是计算机视觉中一个众所周知的问题。您可以参考各种论文,包括执行同步定位和映射 (SLAM) 的系统,这些系统可能使用捆绑调整或基于过滤器的跟踪。阅读有关这些主题的热门论文将使您深入了解现实世界中的摄像头和跟踪。

    总而言之,您需要在每一帧中获取相机的 6D 位姿,即您需要弄清楚相机在现实世界中的位置(翻译)以及它指向的位置 (回转)。这通常是通过首先跟踪场景中的显着特征,估计它们的 3D 位置,然后使用这些特征的感知运动来计算每一帧中的相机姿势来完成的。您需要在现实世界中定义一个原点(您不能将相机用作您要解决的问题的原点),并且至少有 4 个已知/测量点作为开始的参考。在您问题中包含的视频中,Augment 似乎使用印刷图案来获取初始相机姿势。然后他们跟踪现实世界中的特征以继续跟踪姿势。

    一旦您有了相机姿势,您就可以使用投影在现实世界中定位 3D 对象。相机姿势被编码为基本/基本相机矩阵,使用它您可以将世界上的任何 3D 点转换为相机帧中的 2D 位置。因此,要在现实世界中渲染一个虚拟 3D 点,比如在 (x, y, z),您将使用相机矩阵将 (x, y, z) 投影到 2D 点 (u, v)。然后在从相机获得的图像上渲染点。对要渲染的对象的每个点都执行此操作,然后就完成了:)

    【讨论】:

      【解决方案2】:

      您应该看看Vuforia,这是由 Qualcomm 开发的移动 SDK。它是免费的,并提供了许多工具来将增强现实添加到您的应用程序中。

      据我所知,Augment 的人(在您的视频中)也在他们的应用中使用它!

      【讨论】:

        【解决方案3】:

        这是一个经典问题。在电影视觉效果 (VFX) 行业中,它被称为匹配移动。它归结为解决给定图像序列的运动结构 (SfM) 问题,并专门估计相机内在参数和相对于任意原点的每一帧的位置/姿势(例如,在序列的第一帧)。

        相关搜索词:“sfm”、“matchmoving”、“bundle adjust”、“ceres solver”。

        Google 的 Ceres 捆绑调节器已开源,包括一个 Android 端口(在最近的版本中支持“球形”相机模式)。

        【讨论】:

          【解决方案4】:

          这里是关于如何使用 Metaio SDK 构建家具用例的分步教程(也是免费的,带有小水印 - 但它也有自己的渲染引擎,因此您可以在有或没有统一本机代码的情况下使用它)http://dev.metaio.com/sdk/tutorials/interactive-furniture/

          这方面的独特之处在于,虽然您展示的视频中的示例仅限于使用标记,但 Metaio 的 sdk 允许您使用 SLAM 环境跟踪、图像/标记跟踪或 GPS 坐标跟踪来增强 3D对象——也就是你可以用或不用标记做同样的事情。

          有关跟踪配置 + 教程 + 实时网络研讨会 + 示例代码的所有其他信息都可以通过上面的链接找到。

          希望这会有所帮助。

          【讨论】:

          • 非常感谢——我正要暂时放弃这个想法。将在接下来的几天内深入研究该教程,干杯!
          • 很高兴能帮上忙!祝你好运,如果您遇到任何问题,请告诉我们
          • 根据他们的网站,Metaio 已经停产了。
          猜你喜欢
          • 2018-11-07
          • 1970-01-01
          • 2011-07-08
          • 2011-10-18
          • 2017-08-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-07-05
          相关资源
          最近更新 更多