|
Open3D (C++ API)
0.19.0
|
Data Structures | |
| class | ICPConvergenceCriteria |
| Class that defines the convergence criteria of ICP. More... | |
| class | RegistrationResult |
| class | RobustKernel |
| class | TransformationEstimation |
| class | TransformationEstimationPointToPoint |
| class | TransformationEstimationPointToPlane |
| class | TransformationEstimationForColoredICP |
| class | TransformationEstimationForDopplerICP |
Enumerations | |
| enum class | RobustKernelMethod { L2Loss = 0 , L1Loss = 1 , HuberLoss = 2 , CauchyLoss = 3 , GMLoss = 4 , TukeyLoss = 5 , GeneralizedLoss = 6 } |
| enum class | TransformationEstimationType { Unspecified = 0 , PointToPoint = 1 , PointToPlane = 2 , ColoredICP = 3 , DopplerICP = 4 } |
Functions | |
| core::Tensor | ComputeFPFHFeature (const geometry::PointCloud &input, const utility::optional< int > max_nn, const utility::optional< double > radius) |
| core::Tensor | CorrespondencesFromFeatures (const core::Tensor &source_features, const core::Tensor &target_features, bool mutual_filter=false, float mutual_consistency_ratio=0.1) |
| Function to find correspondences via 1-nearest neighbor feature matching. Target is used to construct a nearest neighbor search object, in order to query source. More... | |
| RegistrationResult | EvaluateRegistration (const geometry::PointCloud &source, const geometry::PointCloud &target, double max_correspondence_distance, const core::Tensor &transformation=core::Tensor::Eye(4, core::Float64, core::Device("CPU:0"))) |
| Function for evaluating registration between point clouds. More... | |
| RegistrationResult | ICP (const geometry::PointCloud &source, const geometry::PointCloud &target, const double max_correspondence_distance, const core::Tensor &init_source_to_target=core::Tensor::Eye(4, core::Float64, core::Device("CPU:0")), const TransformationEstimation &estimation=TransformationEstimationPointToPoint(), const ICPConvergenceCriteria &criteria=ICPConvergenceCriteria(), const double voxel_size=-1.0, const std::function< void(const std::unordered_map< std::string, core::Tensor > &)> &callback_after_iteration=nullptr) |
| Functions for ICP registration. More... | |
| RegistrationResult | MultiScaleICP (const geometry::PointCloud &source, const geometry::PointCloud &target, const std::vector< double > &voxel_sizes, const std::vector< ICPConvergenceCriteria > &criteria_list, const std::vector< double > &max_correspondence_distances, const core::Tensor &init_source_to_target=core::Tensor::Eye(4, core::Float64, core::Device("CPU:0")), const TransformationEstimation &estimation=TransformationEstimationPointToPoint(), const std::function< void(const std::unordered_map< std::string, core::Tensor > &)> &callback_after_iteration=nullptr) |
| Functions for Multi-Scale ICP registration. It will run ICP on different voxel level, from coarse to dense. The vector of ICPConvergenceCriteria(relative fitness, relative rmse, max_iterations) contains the stopping condition for each voxel level. The length of voxel_sizes vector, criteria vector, max_correspondence_distances vector must be same, and voxel_sizes must contain positive values in strictly decreasing order [Lower the voxel size, higher is the resolution]. Only the last value of the voxel_sizes vector can be {-1}, as it allows to run on the original scale without downsampling. More... | |
| core::Tensor | GetInformationMatrix (const geometry::PointCloud &source, const geometry::PointCloud &target, const double max_correspondence_distance, const core::Tensor &transformation) |
Computes Information Matrix, from the transfromation between source and target pointcloud. It returns the Information Matrix of shape {6, 6}, of dtype Float64 on device CPU:0. More... | |
| core::Tensor open3d::t::pipelines::registration::ComputeFPFHFeature | ( | const geometry::PointCloud & | input, |
| const utility::optional< int > | max_nn = 100, |
||
| const utility::optional< double > | radius = utility::nullopt |
||
| ) |
Function to compute FPFH feature for a point cloud. It uses KNN search (Not recommended to use on GPU) if only max_nn parameter is provided, Radius search (Not recommended to use on GPU) if only radius parameter is provided, and Hybrid search (Recommended) if both are provided.
| input | The input point cloud with data type float32 or float64. |
| max_nn | [optional] Neighbor search max neighbors parameter. [Default = 100]. |
| radius | [optional] Neighbor search radius parameter. [Recommended ~5x voxel size]. |
| core::Tensor open3d::t::pipelines::registration::CorrespondencesFromFeatures | ( | const core::Tensor & | source_features, |
| const core::Tensor & | target_features, | ||
| bool | mutual_filter = false, |
||
| float | mutual_consistency_ratio = 0.1 |
||
| ) |
Function to find correspondences via 1-nearest neighbor feature matching. Target is used to construct a nearest neighbor search object, in order to query source.
| source_feats | (N, D) tensor |
| target_feats | (M, D) tensor |
| mutual_filter | Boolean flag, only return correspondences (i, j) s.t. source_features[i] and target_features[j] are mutually the nearest neighbor. |
| mutual_consistency_ratio | Float threshold to decide whether the number of correspondences is sufficient. Only used when mutual_filter is set to True. |
| RegistrationResult open3d::t::pipelines::registration::EvaluateRegistration | ( | const geometry::PointCloud & | source, |
| const geometry::PointCloud & | target, | ||
| double | max_correspondence_distance, | ||
| const core::Tensor & | transformation = core::Tensor::Eye(4, core::Float64, core::Device("CPU:0")) |
||
| ) |
Function for evaluating registration between point clouds.
| source | The source point cloud. (Float32 or Float64 type). |
| target | The target point cloud. (Float32 or Float64 type). |
| max_correspondence_distance | Maximum correspondence points-pair distance. |
| transformation | The 4x4 transformation matrix to transform source to target of dtype Float64 on CPU device. |
| core::Tensor open3d::t::pipelines::registration::GetInformationMatrix | ( | const geometry::PointCloud & | source, |
| const geometry::PointCloud & | target, | ||
| const double | max_correspondence_distance, | ||
| const core::Tensor & | transformation | ||
| ) |
Computes Information Matrix, from the transfromation between source and target pointcloud. It returns the Information Matrix of shape {6, 6}, of dtype Float64 on device CPU:0.
| source | The source point cloud. (Float32 or Float64 type). |
| target | The target point cloud. (Float32 or Float64 type). |
| max_correspondence_distance | Maximum correspondence points-pair distance. |
| transformation | The 4x4 transformation matrix to transform source to target. |
| RegistrationResult open3d::t::pipelines::registration::ICP | ( | const geometry::PointCloud & | source, |
| const geometry::PointCloud & | target, | ||
| const double | max_correspondence_distance, | ||
| const core::Tensor & | init_source_to_target = core::Tensor::Eye(4, core::Float64, core::Device("CPU:0")), |
||
| const TransformationEstimation & | estimation = TransformationEstimationPointToPoint(), |
||
| const ICPConvergenceCriteria & | criteria = ICPConvergenceCriteria(), |
||
| const double | voxel_size = -1.0, |
||
| const std::function< void(const std::unordered_map< std::string, core::Tensor > &)> & | callback_after_iteration = nullptr |
||
| ) |
Functions for ICP registration.
| source | The source point cloud. (Float32 or Float64 type). |
| target | The target point cloud. (Float32 or Float64 type). |
| max_correspondence_distance | Maximum correspondence points-pair distance. |
| init_source_to_target | Initial transformation estimation of type Float64 on CPU. |
| estimation | Estimation method. |
| criteria | Convergence criteria. |
| voxel_size | The input pointclouds will be down-sampled to this voxel_size scale. If voxel_size < 0, original scale will be used. However it is highly recommended to down-sample the point-cloud for performance. By default original scale of the point-cloud will be used. |
| callback_after_iteration | Optional lambda function, saves string to tensor map of attributes such as "iteration_index", "scale_index", "scale_iteration_index", "inlier_rmse", "fitness", "transformation", on CPU device, updated after each iteration. |
| RegistrationResult open3d::t::pipelines::registration::MultiScaleICP | ( | const geometry::PointCloud & | source, |
| const geometry::PointCloud & | target, | ||
| const std::vector< double > & | voxel_sizes, | ||
| const std::vector< ICPConvergenceCriteria > & | criteria_list, | ||
| const std::vector< double > & | max_correspondence_distances, | ||
| const core::Tensor & | init_source_to_target = core::Tensor::Eye(4, core::Float64, core::Device("CPU:0")), |
||
| const TransformationEstimation & | estimation = TransformationEstimationPointToPoint(), |
||
| const std::function< void(const std::unordered_map< std::string, core::Tensor > &)> & | callback_after_iteration = nullptr |
||
| ) |
Functions for Multi-Scale ICP registration. It will run ICP on different voxel level, from coarse to dense. The vector of ICPConvergenceCriteria(relative fitness, relative rmse, max_iterations) contains the stopping condition for each voxel level. The length of voxel_sizes vector, criteria vector, max_correspondence_distances vector must be same, and voxel_sizes must contain positive values in strictly decreasing order [Lower the voxel size, higher is the resolution]. Only the last value of the voxel_sizes vector can be {-1}, as it allows to run on the original scale without downsampling.
| source | The source point cloud. (Float32 or Float64 type). |
| target | The target point cloud. (Float32 or Float64 type). |
| voxel_sizes | VectorDouble of voxel scales of type double. |
| criteria_list | Vector of ICPConvergenceCriteria objects for each scale. |
| max_correspondence_distances | VectorDouble of maximum correspondence points-pair distances of type double, for each iteration. Must be of same length as voxel_sizes and criterias. |
| init_source_to_target | Initial transformation estimation of type Float64 on CPU. |
| estimation | Estimation method. |
| callback_after_iteration | Optional lambda function, saves string to tensor map of attributes such as "iteration_index", "scale_index", "scale_iteration_index", "inlier_rmse", "fitness", "transformation", on CPU device, updated after each iteration. |