Open3D (C++ API)  0.13.0
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
RGBDOdometryImpl.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - Open3D: www.open3d.org -
3 // ----------------------------------------------------------------------------
4 // The MIT License (MIT)
5 //
6 // Copyright (c) 2018 www.open3d.org
7 //
8 // Permission is hereby granted, free of charge, to any person obtaining a copy
9 // of this software and associated documentation files (the "Software"), to deal
10 // in the Software without restriction, including without limitation the rights
11 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 // copies of the Software, and to permit persons to whom the Software is
13 // furnished to do so, subject to the following conditions:
14 //
15 // The above copyright notice and this permission notice shall be included in
16 // all copies or substantial portions of the Software.
17 //
18 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
24 // IN THE SOFTWARE.
25 // ----------------------------------------------------------------------------
26 
27 // Private header. Do not include in Open3d.h.
28 #pragma once
29 
30 #include "open3d/core/Tensor.h"
31 
32 namespace open3d {
33 namespace t {
34 namespace pipelines {
35 namespace kernel {
36 namespace odometry {
37 
39  const core::Tensor& source_vertex_map,
40  const core::Tensor& target_vertex_map,
41  const core::Tensor& source_normal_map,
42  const core::Tensor& intrinsics,
43  const core::Tensor& init_source_to_target,
44  core::Tensor& delta,
45  float& inlier_residual,
46  int& inlier_count,
47  const float depth_outlier_trunc,
48  const float depth_huber_delta);
49 
51  const core::Tensor& source_depth,
52  const core::Tensor& target_depth,
53  const core::Tensor& source_intensity,
54  const core::Tensor& target_intensity,
55  const core::Tensor& target_intensity_dx,
56  const core::Tensor& target_intensity_dy,
57  const core::Tensor& source_vertex_map,
58  const core::Tensor& intrinsics,
59  const core::Tensor& init_source_to_target,
60  core::Tensor& delta,
61  float& inlier_residual,
62  int& inlier_count,
63  const float depth_outlier_trunc,
64  const float intensity_huber_delta);
65 
66 void ComputeOdometryResultHybridCPU(const core::Tensor& source_depth,
67  const core::Tensor& target_depth,
68  const core::Tensor& source_intensity,
69  const core::Tensor& target_intensity,
70  const core::Tensor& target_depth_dx,
71  const core::Tensor& target_depth_dy,
72  const core::Tensor& target_intensity_dx,
73  const core::Tensor& target_intensity_dy,
74  const core::Tensor& source_vertex_map,
75  const core::Tensor& intrinsics,
76  const core::Tensor& init_source_to_target,
77  core::Tensor& delta,
78  float& inlier_residual,
79  int& inlier_count,
80  float depth_outlier_trunc,
81  const float depth_huber_delta,
82  const float intensity_huber_delta);
83 #ifdef BUILD_CUDA_MODULE
84 
85 void ComputeOdometryResultPointToPlaneCUDA(
86  const core::Tensor& source_vertex_map,
87  const core::Tensor& target_vertex_map,
88  const core::Tensor& source_normal_map,
89  const core::Tensor& intrinsics,
90  const core::Tensor& init_source_to_target,
91  core::Tensor& delta,
92  float& inlier_residual,
93  int& inlier_count,
94  const float depth_outlier_trunc,
95  const float depth_huber_delta);
96 
97 void ComputeOdometryResultIntensityCUDA(
98  const core::Tensor& source_depth,
99  const core::Tensor& target_depth,
100  const core::Tensor& source_intensity,
101  const core::Tensor& target_intensity,
102  const core::Tensor& target_intensity_dx,
103  const core::Tensor& target_intensity_dy,
104  const core::Tensor& source_vertex_map,
105  const core::Tensor& intrinsics,
106  const core::Tensor& init_source_to_target,
107  core::Tensor& delta,
108  float& inlier_residual,
109  int& inlier_count,
110  const float depth_outlier_trunc,
111  const float intensity_huber_delta);
112 
113 void ComputeOdometryResultHybridCUDA(const core::Tensor& source_depth,
114  const core::Tensor& target_depth,
115  const core::Tensor& source_intensity,
116  const core::Tensor& target_intensity,
117  const core::Tensor& target_depth_dx,
118  const core::Tensor& target_depth_dy,
119  const core::Tensor& target_intensity_dx,
120  const core::Tensor& target_intensity_dy,
121  const core::Tensor& source_vertex_map,
122  const core::Tensor& intrinsics,
123  const core::Tensor& init_source_to_target,
124  core::Tensor& delta,
125  float& inlier_residual,
126  int& inlier_count,
127  const float depth_outlier_trunc,
128  const float depth_huber_delta,
129  const float intensity_huber_delta);
130 #endif
131 
132 } // namespace odometry
133 } // namespace kernel
134 } // namespace pipelines
135 } // namespace t
136 } // namespace open3d
Definition: PinholeCameraIntrinsic.cpp:35
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:44
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:126
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:223