Opencv 通过“立体声”而非“红外”功能实现深度场

Opencv 通过“立体声”而非“红外”功能实现深度场,opencv,computer-vision,google-project-tango,Opencv,Computer Vision,Google Project Tango,我目前正在研究Tango设备是否适合我正在开发的应用程序。我需要的是基于视觉的深度场,目前正在使用基于OpenCV的视差图立体视觉进行测试。到目前为止,我读到的大部分深度传感信息都涉及两种基于“红外”的技术,即结构光和飞行时间。具体参考以下页面: 由于距离有限且对红外环境影响敏感,我需要使用“立体声”功能。我的问题是在C API中,您在哪选择这三种模式?这在TangoConfig里吗?所有3个是否仍返回TangoPointCloud?TangoPointCloud是基于深度贴图的3D贴图,需

我目前正在研究Tango设备是否适合我正在开发的应用程序。我需要的是基于视觉的深度场,目前正在使用基于OpenCV的视差图立体视觉进行测试。到目前为止,我读到的大部分深度传感信息都涉及两种基于“红外”的技术,即结构光和飞行时间。具体参考以下页面:


由于距离有限且对红外环境影响敏感,我需要使用“立体声”功能。我的问题是在C API中,您在哪选择这三种模式?这在TangoConfig里吗?所有3个是否仍返回TangoPointCloud?

TangoPointCloud是基于深度贴图的3D贴图,需要您在设备上使用IR

地图上的每个点都是设备与特定点之间的距离。这里有一些示例,您可以选择CPP点云示例来开始使用点云系统实现您的功能


从我有限的理解来看,立体数据只是帮助将3D对象放置在深度图中,使您的对象看起来更符合您的虚拟或增强环境。

虽然我没有关于Tango设备的任何具体信息,获取密集视差图和密集深度图的“立体”方法依赖于从不同位置拍摄两幅RGB图像

高级版本是,如果您知道拍摄图像时相机的相对位置和方向,以及相机的一些内部属性,则可以计算一幅图像中每个点相对于另一幅图像中对应点的相对偏移。这里有一个很好的描述

由此,您可以计算密集深度贴图


OpenCV确实提供了支持此操作的功能,但我不知道Tango设备是否能很好地包装这些功能,也不知道您是否需要自己进行运动跟踪和图像捕获。

你好,阿里,谢谢您的反馈。是的,这是我从示例中收集的,因为我找不到关于如何在3种深度贴图技术之间进行实际更改的信息。我会说,尽管如此,第一个链接确实让人感觉好像你可以在没有红外传感器的情况下获得深度图,从技术上来说这应该是可能的,但可能不是API的一部分?不过,这似乎更多的是对API背后的技术的一般描述。嗨,Dave,如果“Tango设备很好地包装了它”,这正是我要问的。我之前问过一个问题,试图理解立体模式是如何工作的,因为我只知道立体视觉有两个相同的镜头,曝光时间,像素大小,甚至元素RGB摄像机,从我对Tango硬件的理解来看,摄像机实际上都是不同的RGB-I,广角等等,因此,如果他们有立体模式,视差图的算法一定非常特殊。嗨,你仍然可以从一台相机进行立体重建,它只需要相机在拍摄图像之间移动,你知道它是如何移动的——这对于带有加速计和陀螺的Tango来说不是问题。事实上,单台RGB摄像机的连续视频流足以进行3D重建,因此这是可能的。只需看看Tango API。给定PoseProvider、TangoImageBuffer和TangoCameraIntrinsics,感觉您可以使用OpenCV手动滚动一个稠密视差贴图算法,然后使用该算法使用投影模式更新Tango3D重建。还回答了您的其他问题: