Google Project Tango Depth 数据的 X、Y 单位是什么?

What are the units of X,Y for Google Project Tango Depth data?

来自depth data reference

With the unit in landscape orientation, screen facing the user: +Z points in the direction of the camera's optical axis, and is measured perpendicular to the plane of the camera. +X points toward the user's right, and +Y points toward the bottom of the screen. The origin is the focal centre of the color camera. The output is in units of metres.

注意值的单位显然是米。查看从 Tango 设备观察到的实际值,很明显 Z 值(深度)以米为单位。

但是,X 和 Y 值似乎不是以米为单位。 This spreadsheet and another 的 x、y、z 值显示了 Tango 点云的实际结果。我见过的所有点云的 min/max 值似乎表明 x、y 的单位是弧度,因为这些值小于 2,但可以大于 1。

我的目标是将观察到的点转换为与姿势数据匹配的真实世界坐标(在 Java 中)。

x,y的单位是什么?

据我了解,X 和 Y 坐标在相机中 space。原点在相机的中心。

X,Y 本身没有单位,因为它们是相对于相机框架的。

电子表格中的数据似乎证实了这一点。 X 和 Y 在 -1.0 和 +1.0

之间归一化

如果您使用的是 Unity 示例,我建议您看一下 TangoPointCloud.OnTangoDepthAvailable 世界 space 中每个点的变换位置。

m_points[i] = unityWorldTDepthCamera.MultiplyPoint(new Vector3(x, y, z));

希望对您有所帮助。

深度云点的所有坐标元素 - X 和 Y 以及 Z - 均以米为单位。自然地,任何三元组(X、Y、Z)都必须位于深度相机的视野内。因此,X 和 Y 的允许范围取决于 Z 的值:X 必须满足 abs(arctan(X/Z)) <= fovX/2(对于 Y 也类似)。

您在示例帧中观察到的 X 和 Y 范围不是角度弧度(或以任何方式归一化);由于场景的典型 Z 距离,它们似乎只在该范围内。如果Z恰好在不同的场景下大一点,那么X和Y也可以大一点,满足视野关系。