像zookazam一样增强现实

时间:2016-02-10 17:40:59

标签: algorithm augmented-reality

  1. 哪些算法用于zookazam等增强现实?

    zookazam example

    我认为它分析图像并找到相反的平面,但我不知道如何。

  2. 在开始使用此类应用之前,我应该阅读哪些主题?

1 个答案:

答案 0 :(得分:2)

<强> [序言

这是极其广泛的主题,并且在其当前状态中主要是非主题。我重复了你的问题,但是要让你的问题在本网站的规则/可能性中回答

您应该更准确地指定增强现实:

  1. 应该

    • 使用已知网格添加 2D / 3D 对象...
    • 改变光线条件
    • 添加/移除身体部位/衣服/头发......

    一个好主意是提供您想要实现的输入/输出的一些示例图像(草图)。

  2. 有什么输入

    • 视频,静态图片, 2D ,立体声, 3D 。对于纯 2D 输入,请指定您有哪些条件/标记/照明/ LASER 模式来帮助重建。
    • 输入图片中会出现什么?空房间,人员,特定物品等。
  3. 指定目标平台

    许多算法仅限于内存大小/带宽, CPU 电源,特殊 HW 功能等,因此最好为您的平台添加标记。 操作系统和语言也是一个好主意。

  4. [增强现实的工作原理]

    1. 获取输入图片

      如果您要连接某些设备(如相机),则需要使用其驱动程序/框架或某些内容来获取图像或使用它支持的常用 API 。此任务依赖于 OS 。我在Windows上最喜欢的方法是使用 VFW (适用于Windows的视频) API

      我将从启动开始使用一些静态文件,以简化调试和增量构建过程。 (你不需要等待相机和东西在每个构建上发生)。当您的应用程序准备好播放实时视频时,请切换回相机...

    2. 将场景重建为3D网格

      如果您使用 3D 相机,例如 Kinect ,则无需执行此步骤。否则,您需要通过一些基于边缘检测或颜色均匀性的分割过程来区分对象。

      3D 网格的质量取决于您想要实现的目标以及您的输入。例如,如果你想要逼真的阴影和光照,那么你需要非常好的网格。如果在某些房间摄像机已固定,您可以手动预定义网格(硬编码)并仅计算视图中的对象。此外,通过从当前视图图像中减去空房间图像,可以非常简单地完成对象检测/分割,因此具有较大差异的像素是对象。

      你也可以使用平面代替真正的3D网格,如你在 OP 中所建议的那样,但是你可以忘记更真实的效果质量,如光照,阴影,交叉......如果你假设物体直立然后您可以使用房间指标来获取相机的距离。见:

      对于纯 2D 输入,您还可以使用照明来估算 3D 网格,请参阅:

    3. <强>呈现

      只需将场景渲染回某些图像/视频/屏幕......添加/删除功能即可。如果您没有过多地改变光线条件,您也可以使用原始图像并直接渲染它。阴影可以通过使像素变暗来实现......为了获得更好的效果,可以使用照明/阴影/斑点等。通常从原始图像中滤除,然后通过渲染直接添加。见

      渲染过程本身也是依赖于平台的(除非你是通过内存中的低级图形来实现的)。您可以使用 GDI,DX,OpenGL等...... 之类的内容:

    4. [google / read的基本主题]

      1. <强> 2D

        • DIP数字图像处理
        • 图像分割
      2. <强> 3D

      3. 依赖于paltform

        • 图像采集
        • 渲染