Open3D (C++ API)  0.16.0
GlobalOptimizationConvergenceCriteria.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-2021 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#pragma once
28
29namespace open3d {
30namespace pipelines {
31namespace registration {
32
37public:
50 GlobalOptimizationOption(double max_correspondence_distance = 0.075,
51 double edge_prune_threshold = 0.25,
52 double preference_loop_closure = 1.0,
53 int reference_node = -1)
54 : max_correspondence_distance_(max_correspondence_distance),
55 edge_prune_threshold_(edge_prune_threshold),
56 preference_loop_closure_(preference_loop_closure),
57 reference_node_(reference_node) {
58 max_correspondence_distance_ = max_correspondence_distance < 0.0
59 ? 0.075
60 : max_correspondence_distance;
62 edge_prune_threshold < 0.0 || edge_prune_threshold > 1.0
63 ? 0.25
64 : edge_prune_threshold;
66 preference_loop_closure < 0.0 ? 1.0 : preference_loop_closure;
67 };
69
70public:
86};
87
92public:
104 int max_iteration = 100,
105 double min_relative_increment = 1e-6,
106 double min_relative_residual_increment = 1e-6,
107 double min_right_term = 1e-6,
108 double min_residual = 1e-6,
109 int max_iteration_lm = 20,
110 double upper_scale_factor = 2. / 3.,
111 double lower_scale_factor = 1. / 3.)
112 : max_iteration_(max_iteration),
113 min_relative_increment_(min_relative_increment),
114 min_relative_residual_increment_(min_relative_residual_increment),
115 min_right_term_(min_right_term),
116 min_residual_(min_residual),
117 max_iteration_lm_(max_iteration_lm),
118 upper_scale_factor_(upper_scale_factor),
119 lower_scale_factor_(lower_scale_factor) {
121 upper_scale_factor < 0.0 || upper_scale_factor > 1.0
122 ? 2. / 3.
123 : upper_scale_factor;
125 lower_scale_factor < 0.0 || lower_scale_factor > 1.0
126 ? 1. / 3.
127 : lower_scale_factor;
128 };
130
131public:
158};
159
160} // namespace registration
161} // namespace pipelines
162} // namespace open3d
Convergence criteria of GlobalOptimization.
Definition: GlobalOptimizationConvergenceCriteria.h:91
double upper_scale_factor_
Upper scale factor value.
Definition: GlobalOptimizationConvergenceCriteria.h:155
~GlobalOptimizationConvergenceCriteria()
Definition: GlobalOptimizationConvergenceCriteria.h:129
double min_right_term_
Minimum right term value.
Definition: GlobalOptimizationConvergenceCriteria.h:142
double min_relative_increment_
Minimum relative increments.
Definition: GlobalOptimizationConvergenceCriteria.h:138
int max_iteration_
Maximum iteration number for iterative optimization module.
Definition: GlobalOptimizationConvergenceCriteria.h:133
double lower_scale_factor_
Lower scale factor value.
Definition: GlobalOptimizationConvergenceCriteria.h:157
GlobalOptimizationConvergenceCriteria(int max_iteration=100, double min_relative_increment=1e-6, double min_relative_residual_increment=1e-6, double min_right_term=1e-6, double min_residual=1e-6, int max_iteration_lm=20, double upper_scale_factor=2./3., double lower_scale_factor=1./3.)
Parameterized Constructor.
Definition: GlobalOptimizationConvergenceCriteria.h:103
int max_iteration_lm_
Maximum iteration number for Levenberg Marquardt method.
Definition: GlobalOptimizationConvergenceCriteria.h:149
double min_residual_
Minimum residual value.
Definition: GlobalOptimizationConvergenceCriteria.h:144
double min_relative_residual_increment_
Minimum relative residual increments.
Definition: GlobalOptimizationConvergenceCriteria.h:140
Option for GlobalOptimization.
Definition: GlobalOptimizationConvergenceCriteria.h:36
GlobalOptimizationOption(double max_correspondence_distance=0.075, double edge_prune_threshold=0.25, double preference_loop_closure=1.0, int reference_node=-1)
Parameterized Constructor.
Definition: GlobalOptimizationConvergenceCriteria.h:50
~GlobalOptimizationOption()
Definition: GlobalOptimizationConvergenceCriteria.h:68
double preference_loop_closure_
Definition: GlobalOptimizationConvergenceCriteria.h:83
double edge_prune_threshold_
Definition: GlobalOptimizationConvergenceCriteria.h:78
double max_correspondence_distance_
Definition: GlobalOptimizationConvergenceCriteria.h:75
int reference_node_
The pose of this node is unchanged after optimization.
Definition: GlobalOptimizationConvergenceCriteria.h:85
Definition: PinholeCameraIntrinsic.cpp:35