open3d.t.pipelines.odometry.compute_odometry_result_hybrid#

open3d.t.pipelines.odometry.compute_odometry_result_hybrid(source_depth, target_depth, source_intensity, target_intensity, target_depth_dx, target_depth_dy, target_intensity_dx, target_intensity_dy, source_vertex_map, intrinsics, init_source_to_target, depth_outlier_trunc, depth_huber_delta, intensity_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: \((I_p - I_q)^2 + \lambda(D_p - (D_q)')^2\) where, \(I_p\) denotes the intensity at pixel p in the source, \(I_q\) denotes the intensity at pixel q in the target. \(D_p\) denotes the depth pixel p in the source, \(D_q\) denotes the depth pixel q in the target. q is obtained by transforming p with init_source_to_target then projecting with intrinsics. Reference: J. Park, Q.Y. Zhou, and V. Koltun, Colored Point Cloud Registration Revisited, ICCV, 2017.

Parameters:
  • source_depth (open3d.core.Tensor) – (row, col, channel = 1) Float32 source depth image obtained by PreprocessDepth before calling this function.

  • target_depth (open3d.core.Tensor) – (row, col, channel = 1) Float32 target depth image obtained by PreprocessDepth before calling this function.

  • source_intensity (open3d.core.Tensor) – (row, col, channel = 1) Float32 source intensity image obtained by RGBToGray before calling this function

  • target_intensity (open3d.core.Tensor) – (row, col, channel = 1) Float32 target intensity image obtained by RGBToGray before calling this function

  • target_depth_dx (open3d.core.Tensor) – (row, col, channel = 1) Float32 target depth gradient image along x-axis obtained by FilterSobel before calling this function.

  • target_depth_dy (open3d.core.Tensor) – (row, col, channel = 1) Float32 target depth gradient image along y-axis obtained by FilterSobel before calling this function.

  • target_intensity_dx (open3d.core.Tensor) – (row, col, channel = 1) Float32 target intensity gradient image along x-axis obtained by FilterSobel before calling this function.

  • target_intensity_dy (open3d.core.Tensor) – (row, col, channel = 1) Float32 target intensity gradient image along y-axis obtained by FilterSobel before calling this function.

  • source_vertex_map (open3d.core.Tensor) – (row, col, channel = 3) Float32 source vertex image obtained by CreateVertexMap 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.

  • intensity_huber_delta (float) – Huber norm parameter used in intensity loss.

Returns:

open3d.t.pipelines.odometry.OdometryResult