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