通过 'Stereo' 而不是 'IR' 功能的深度场

Depth field by means of 'Stereo' instead of 'IR' functionality

我目前正在研究 Tango 设备是否适合我正在开发的应用程序。我需要的是基于视觉的深度场,目前正在使用基于 OpenCV 的(视差图)立体视觉进行测试。到目前为止,我读到的大部分深度传感信息都是指基于两种 'IR' 的技术,结构光和飞行时间。这些页面上具体提到:

https://developers.google.com/tango/overview/depth-perception https://developers.google.com/tango/apis/c/c-depth-perception

由于红外线的距离有限和对环境影响的敏感性,我需要使用 'Stereo' 功能。我的问题是在CAPI你select这三种模式中的哪一种?这是在 TangoConfig 中吗?这 3 个仍然 return TangoPointCloud 吗?

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

地图中的每个点都是设备与该特定点之间的距离。有示例 https://github.com/googlesamples/tango-examples-c 您可以选择 CPP 点云示例来开始使用点云系统来实现您的功能。

根据我(有限的)理解,立体数据仅有助于将 3D 对象放置在深度图中,因此您的对象看起来与虚拟或增强环境更加融合。

虽然我没有关于 Tango 设备的任何具体信息,但 'stereo' 获取密集视差图(以及从那里获取密集深度图)的方法依赖于从不同位置获取的两张 RGB 图像职位。

这个的高级版本是,如果你知道拍摄图像时相机的相对位置和方向,以及相机的一些内部属性,你可以计算每个点的相对偏移量在一个图像中从另一个图像中的对应点。 (这里有一个很好的描述https://www.robots.ox.ac.uk/~vgg/hzbook/hzbook2/HZepipolar.pdf

据此,您可以计算出密集的深度图。

OpenCV 确实提供了支持这样做的功能 (http://docs.opencv.org/trunk/dd/d53/tutorial_py_depthmap.html),但我不知道 Tango 设备是否很好地包装了这些,或者您是否需要自己进行运动跟踪和图像捕捉.