66 if (voxel_size_ < 0) {
69 return fmt::format(
"{}/{:.3f}", slac_folder_, voxel_size_);
86 const float voxel_size = 0.05,
87 const float distance_threshold = 0.07,
88 const float fitness_threshold = 0.3,
89 const float regularizer_weight = 1,
91 const std::string slac_folder =
"") {
92 if (fitness_threshold < 0) {
95 if (distance_threshold < 0) {
99 max_iterations_ = max_iterations;
100 voxel_size_ = voxel_size;
101 distance_threshold_ = distance_threshold;
102 fitness_threshold_ = fitness_threshold;
103 regularizer_weight_ = regularizer_weight;
105 slac_folder_ = slac_folder;
115 int debug_start_node_idx_ = 0;
123 const int debug_start_node_idx = 0) {
124 if (debug_start_node_idx < 0) {
129 debug_start_node_idx_ = debug_start_node_idx;
137 if (debug_start_node_idx < 0) {
142 debug_start_node_idx_ = debug_start_node_idx;
156 const std::vector<std::string>& fnames_processed,
172 const std::vector<std::string>& fragment_filenames,
186 const std::vector<std::string>& fragment_filenames,
open3d::pipelines::registration::PoseGraph PoseGraph
Definition: SLACOptimizer.h:41
SLACOptimizerParams(const int max_iterations=5, const float voxel_size=0.05, const float distance_threshold=0.07, const float fitness_threshold=0.3, const float regularizer_weight=1, const core::Device device=core::Device("CPU:0"), const std::string slac_folder="")
Definition: SLACOptimizer.h:85
std::string slac_folder_
Relative directory to store SLAC results in the dataset folder.
Definition: SLACOptimizer.h:64
int max_iterations_
Number of iterations.
Definition: SLACOptimizer.h:45
float distance_threshold_
Distance threshold to filter inconsistent correspondences.
Definition: SLACOptimizer.h:52
std::pair< PoseGraph, ControlGrid > RunSLACOptimizerForFragments(const std::vector< std::string > &fnames, const PoseGraph &pose_graph, const SLACOptimizerParams ¶ms, const SLACDebugOption &debug_option)
Simultaneous Localization and Calibration: Self-Calibration of Consumer Depth Cameras, CVPR 2014 Qian-Yi Zhou and Vladlen Koltun Estimate a shared control grid for all fragments for scene reconstruction, implemented in https://github.com/qianyizh/ElasticReconstruction.
Definition: SLACOptimizer.cpp:317
PoseGraph RunRigidOptimizerForFragments(const std::vector< std::string > &fnames, const PoseGraph &pose_graph, const SLACOptimizerParams ¶ms, const SLACDebugOption &debug_option)
Extended ICP to simultaneously align multiple point clouds with dense pairwise point-to-plane distanc...
Definition: SLACOptimizer.cpp:389
void SaveCorrespondencesForPointClouds(const std::vector< std::string > &fnames_processed, const PoseGraph &pose_graph, const SLACOptimizerParams ¶ms, const SLACDebugOption &debug_option)
Read pose graph containing loop closures and odometry to compute putative correspondences between pai...
Definition: SLACOptimizer.cpp:228
Definition: SLACOptimizer.h:109
float voxel_size_
Definition: SLACOptimizer.h:49
Data structure defining the pose graph.
Definition: PoseGraph.h:115
SLACDebugOption(const int debug_start_node_idx)
Definition: SLACOptimizer.h:136
SLACDebugOption(const bool debug=false, const int debug_start_node_idx=0)
Definition: SLACOptimizer.h:122
core::Device device_
Device to use.
Definition: SLACOptimizer.h:61
Definition: PinholeCameraIntrinsic.cpp:35
filament::Texture::InternalFormat format
Definition: FilamentResourceManager.cpp:214
float regularizer_weight_
Weight of the regularizer.
Definition: SLACOptimizer.h:58
std::string GetSubfolderName() const
Definition: SLACOptimizer.h:65
Definition: SLACOptimizer.h:43
float fitness_threshold_
Fitness threshold to filter inconsistent pairs.
Definition: SLACOptimizer.h:55
#define LogError(...)
Definition: Logging.h:72