Open3D (C++ API)  0.18.0
Data Structures | Namespaces | Enumerations | Functions
RGBDOdometry.h File Reference

(b9e049c (Sun Dec 31 11:36:26 2023 -0800))

#include "open3d/core/Tensor.h"
#include "open3d/t/geometry/Image.h"
#include "open3d/t/geometry/RGBDImage.h"

Go to the source code of this file.

Data Structures

class  open3d::t::pipelines::odometry::OdometryConvergenceCriteria
 
class  open3d::t::pipelines::odometry::OdometryResult
 
class  open3d::t::pipelines::odometry::OdometryLossParams
 

Namespaces

 open3d
 
 open3d::t
 
 open3d::t::pipelines
 
 open3d::t::pipelines::odometry
 

Enumerations

enum class  open3d::t::pipelines::odometry::Method { open3d::t::pipelines::odometry::PointToPlane , open3d::t::pipelines::odometry::Intensity , open3d::t::pipelines::odometry::Hybrid }
 

Functions

OdometryResult open3d::t::pipelines::odometry::RGBDOdometryMultiScale (const t::geometry::RGBDImage &source, const t::geometry::RGBDImage &target, const core::Tensor &intrinsics, const core::Tensor &init_source_to_target=core::Tensor::Eye(4, core::Float64, core::Device("CPU:0")), const float depth_scale=1000.0f, const float depth_max=3.0f, const std::vector< OdometryConvergenceCriteria > &criteria_list={10, 5, 3}, const Method method=Method::Hybrid, const OdometryLossParams &params=OdometryLossParams())
 Create an RGBD image pyramid given the original source and target RGBD images, and perform hierarchical odometry using specified method. Can be used for offline odometry where we do not expect to push performance to the extreme and not reuse vertex/normal map computed before. Input RGBD images hold a depth image (UInt16 or Float32) with a scale factor and a color image (UInt8 x 3). More...
 
OdometryResult open3d::t::pipelines::odometry::ComputeOdometryResultPointToPlane (const core::Tensor &source_vertex_map, const core::Tensor &target_vertex_map, const core::Tensor &target_normal_map, const core::Tensor &intrinsics, const core::Tensor &init_source_to_target, const float depth_outlier_trunc, const float depth_huber_delta)
 Estimates the 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. KinectFusion, ISMAR 2011. More...
 
OdometryResult open3d::t::pipelines::odometry::ComputeOdometryResultIntensity (const core::Tensor &source_depth, const core::Tensor &target_depth, const core::Tensor &source_intensity, const core::Tensor &target_intensity, const core::Tensor &target_intensity_dx, const core::Tensor &target_intensity_dy, const core::Tensor &source_vertex_map, const core::Tensor &intrinsics, const core::Tensor &init_source_to_target, const float depth_outlier_trunc, const float intensity_huber_delta)
 Estimates the 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\), where \( I_p \) denotes the intensity at pixel p in the source, \( I_q \) denotes the intensity at pixel q in the target. q is obtained by transforming p with init_source_to_target then projecting with intrinsics. Real-time visual odometry from dense RGB-D images, ICCV Workshops, 2011. More...
 
OdometryResult open3d::t::pipelines::odometry::ComputeOdometryResultHybrid (const core::Tensor &source_depth, const core::Tensor &target_depth, const core::Tensor &source_intensity, const core::Tensor &target_intensity, const core::Tensor &target_depth_dx, const core::Tensor &target_depth_dy, const core::Tensor &target_intensity_dx, const core::Tensor &target_intensity_dy, const core::Tensor &source_vertex_map, const core::Tensor &intrinsics, const core::Tensor &init_source_to_target, const float depth_outlier_trunc, const float depth_huber_delta, const float intensity_huber_delta)
 Estimates the 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. More...
 
core::Tensor open3d::t::pipelines::odometry::ComputeOdometryInformationMatrix (const geometry::Image &source_depth, const geometry::Image &target_depth, const core::Tensor &intrinsic, const core::Tensor &source_to_target, const float dist_thr, const float depth_scale, const float depth_max)
 

Detailed Description

All the 4x4 transformation in this file, from params to returns, are Float64. Only convert to Float32 in kernel calls.