TF 2.0 is out! Get hands-on practice at TF World, Oct 28-31. Use code TF20 for 20% off select passes. Register now

tfg.geometry.representation.ray.triangulate

Triangulates 3d points by miminizing the sum of squared distances to rays.

tfg.geometry.representation.ray.triangulate(
    startpoints,
    endpoints,
    weights,
    name=None
)

Defined in geometry/representation/ray.py.

The rays are defined by their start points and endpoints. At least two rays are required to triangulate any given point. Contrary to the standard reprojection-error metric, the sum of squared distances to rays can be minimized in a closed form.

Note:

In the following, A1 to An are optional batch dimensions.

Args:

  • startpoints: A tensor of ray start points with shape [A1, ..., An, V, 3], the number of rays V around which the solution points live should be greater or equal to 2, otherwise triangulation is impossible.
  • endpoints: A tensor of ray endpoints with shape [A1, ..., An, V, 3], the number of rays V around which the solution points live should be greater or equal to 2, otherwise triangulation is impossible. The endpoints tensor should have the same shape as the startpoints tensor.
  • weights: A tensor of ray weights (certainties) with shape [A1, ..., An, V]. Weights should have all positive entries. Weight should have at least two non-zero entries for each point (at least two rays should have certainties > 0).
  • name: A name for this op. The default value of None means "ray_triangulate".

Returns:

A tensor of triangulated points with shape [A1, ..., An, 3].

Raises:

  • ValueError: If the shape of the arguments is not supported.