Open3D (C++ API)  0.18.0
RGBDOdometryImpl.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - Open3D: www.open3d.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2023 www.open3d.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 // Private header. Do not include in Open3d.h.
9 #pragma once
10 
11 #include "open3d/core/Tensor.h"
12 
13 namespace open3d {
14 namespace t {
15 namespace pipelines {
16 namespace kernel {
17 namespace odometry {
18 
20  const core::Tensor& source_vertex_map,
21  const core::Tensor& target_vertex_map,
22  const core::Tensor& source_normal_map,
23  const core::Tensor& intrinsics,
24  const core::Tensor& init_source_to_target,
25  core::Tensor& delta,
26  float& inlier_residual,
27  int& inlier_count,
28  const float depth_outlier_trunc,
29  const float depth_huber_delta);
30 
32  const core::Tensor& source_depth,
33  const core::Tensor& target_depth,
34  const core::Tensor& source_intensity,
35  const core::Tensor& target_intensity,
36  const core::Tensor& target_intensity_dx,
37  const core::Tensor& target_intensity_dy,
38  const core::Tensor& source_vertex_map,
39  const core::Tensor& intrinsics,
40  const core::Tensor& init_source_to_target,
41  core::Tensor& delta,
42  float& inlier_residual,
43  int& inlier_count,
44  const float depth_outlier_trunc,
45  const float intensity_huber_delta);
46 
47 void ComputeOdometryResultHybridCPU(const core::Tensor& source_depth,
48  const core::Tensor& target_depth,
49  const core::Tensor& source_intensity,
50  const core::Tensor& target_intensity,
51  const core::Tensor& target_depth_dx,
52  const core::Tensor& target_depth_dy,
53  const core::Tensor& target_intensity_dx,
54  const core::Tensor& target_intensity_dy,
55  const core::Tensor& source_vertex_map,
56  const core::Tensor& intrinsics,
57  const core::Tensor& init_source_to_target,
58  core::Tensor& delta,
59  float& inlier_residual,
60  int& inlier_count,
61  float depth_outlier_trunc,
62  const float depth_huber_delta,
63  const float intensity_huber_delta);
64 
65 void ComputeOdometryInformationMatrixCPU(const core::Tensor& source_depth,
66  const core::Tensor& target_depth,
67  const core::Tensor& intrinsic,
68  const core::Tensor& source_to_target,
69  const float depth_outlier_trunc,
70  core::Tensor& information);
71 
72 #ifdef BUILD_CUDA_MODULE
73 
74 void ComputeOdometryResultPointToPlaneCUDA(
75  const core::Tensor& source_vertex_map,
76  const core::Tensor& target_vertex_map,
77  const core::Tensor& source_normal_map,
78  const core::Tensor& intrinsics,
79  const core::Tensor& init_source_to_target,
80  core::Tensor& delta,
81  float& inlier_residual,
82  int& inlier_count,
83  const float depth_outlier_trunc,
84  const float depth_huber_delta);
85 
86 void ComputeOdometryResultIntensityCUDA(
87  const core::Tensor& source_depth,
88  const core::Tensor& target_depth,
89  const core::Tensor& source_intensity,
90  const core::Tensor& target_intensity,
91  const core::Tensor& target_intensity_dx,
92  const core::Tensor& target_intensity_dy,
93  const core::Tensor& source_vertex_map,
94  const core::Tensor& intrinsics,
95  const core::Tensor& init_source_to_target,
96  core::Tensor& delta,
97  float& inlier_residual,
98  int& inlier_count,
99  const float depth_outlier_trunc,
100  const float intensity_huber_delta);
101 
102 void ComputeOdometryResultHybridCUDA(const core::Tensor& source_depth,
103  const core::Tensor& target_depth,
104  const core::Tensor& source_intensity,
105  const core::Tensor& target_intensity,
106  const core::Tensor& target_depth_dx,
107  const core::Tensor& target_depth_dy,
108  const core::Tensor& target_intensity_dx,
109  const core::Tensor& target_intensity_dy,
110  const core::Tensor& source_vertex_map,
111  const core::Tensor& intrinsics,
112  const core::Tensor& init_source_to_target,
113  core::Tensor& delta,
114  float& inlier_residual,
115  int& inlier_count,
116  const float depth_outlier_trunc,
117  const float depth_huber_delta,
118  const float intensity_huber_delta);
119 
120 void ComputeOdometryInformationMatrixCUDA(const core::Tensor& source_depth,
121  const core::Tensor& target_depth,
122  const core::Tensor& intrinsic,
123  const core::Tensor& source_to_target,
124  const float square_dist_thr,
125  core::Tensor& information);
126 #endif
127 
128 } // namespace odometry
129 } // namespace kernel
130 } // namespace pipelines
131 } // namespace t
132 } // namespace open3d
void ComputeOdometryResultHybridCPU(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, core::Tensor &delta, float &inlier_residual, int &inlier_count, const float depth_outlier_trunc, const float depth_huber_delta, const float intensity_huber_delta)
Definition: RGBDOdometryCPU.cpp:205
void ComputeOdometryResultPointToPlaneCPU(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, core::Tensor &delta, float &inlier_residual, int &inlier_count, const float depth_outlier_trunc, const float depth_huber_delta)
Definition: RGBDOdometryCPU.cpp:312
void ComputeOdometryInformationMatrixCPU(const core::Tensor &source_vertex_map, const core::Tensor &target_vertex_map, const core::Tensor &intrinsic, const core::Tensor &source_to_target, const float square_dist_thr, core::Tensor &information)
Definition: RGBDOdometryCPU.cpp:26
void ComputeOdometryResultIntensityCPU(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, core::Tensor &delta, float &inlier_residual, int &inlier_count, const float depth_outlier_trunc, const float intensity_huber_delta)
Definition: RGBDOdometryCPU.cpp:109
Definition: PinholeCameraIntrinsic.cpp:16