Open3D (C++ API)  0.17.0
Loading...
Searching...
No Matches
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
13namespace open3d {
14namespace t {
15namespace pipelines {
16namespace kernel {
17namespace 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
47void 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
65void 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
74void 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
86void 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
102void 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
120void 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