# tfg.rendering.camera.perspective.unproject

Unprojects a 2d point in 3d.

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.

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".

A tensor of shape [A1, ..., An, 3], where the last dimension represents a 3d point.

ValueError If the shape of point_2d, depth, focal, or principal_point is not supported.