Unprojects a 2d point in 3d.
tfg.rendering.camera.perspective.unproject(
point_2d,
depth,
focal,
principal_point,
name=None
)
Defined in rendering/camera/perspective.py
.
Unprojects a 2d point \((x', y')\) to a 3d point \((x, y, z)\) knowing the depth \(z\) with
$$
\begin{matrix}
x = \frac{z (x' - c_x)}{f_x}, & y = \frac{z(y' - c_y)}{f_y}, & z = z,
\end{matrix}
$$
where \((f_x, f_y)\) is the focal length and \((c_x, c_y)\) the principal point.
Note:
In the following, A1 to An are optional batch dimensions.
Args:
point_2d
: A tensor of shape[A1, ..., An, 2]
, where the last dimension represents a 2d point to unproject.depth
: A tensor of shape[A1, ..., An, 1]
, where the last dimension represents the depth of a 2d point.focal
: A tensor of shape[A1, ..., An, 2]
, where the last dimension represents a camera focal length.principal_point
: A tensor of shape[A1, ..., An, 2]
, where the last dimension represents a camera principal point.name
: A name for this op that defaults to "perspective_unproject".
Returns:
A tensor of shape [A1, ..., An, 3]
, where the last dimension represents
a 3d point.
Raises:
ValueError
: If the shape ofpoint_2d
,depth
,focal
, orprincipal_point
is not supported.