open3d.t.pipelines.odometry.compute_odometry_result_point_to_plane#

open3d.t.pipelines.odometry.compute_odometry_result_point_to_plane(source_vertex_map, target_vertex_map, target_normal_map, intrinsics, init_source_to_target, depth_outlier_trunc, depth_huber_delta)#

Estimates the OdometryResult (4x4 rigid transformation T from source to target, with inlier rmse and fitness). Performs one iteration of RGBD odometry using Loss function: \([(V_p - V_q)^T N_p]^2\) where, \(V_p\) denotes the vertex at pixel p in the source, \(V_q\) denotes the vertex at pixel q in the target. \(N_p\) denotes the normal at pixel p in the source. q is obtained by transforming p with init_source_to_target then projecting with intrinsics. Reference: KinectFusion, ISMAR 2011.

Parameters:
  • source_vertex_map (open3d.core.Tensor) – (row, col, channel = 3) Float32 source vertex image obtained by CreateVertexMap before calling this function.

  • target_vertex_map (open3d.core.Tensor) – (row, col, channel = 3) Float32 target vertex image obtained by CreateVertexMap before calling this function.

  • target_normal_map (open3d.core.Tensor) – (row, col, channel = 3) Float32 target normal image obtained by CreateNormalMap before calling this function.

  • intrinsics (open3d.core.Tensor) – (3, 3) intrinsic matrix for projection.

  • init_source_to_target (open3d.core.Tensor) – (4, 4) initial transformation matrix from source to target.

  • depth_outlier_trunc (float) – Depth difference threshold used to filter projective associations.

  • depth_huber_delta (float) – Huber norm parameter used in depth loss.

Returns:

open3d.t.pipelines.odometry.OdometryResult