Original article: http://blog.csdn.net/u010696366/article/details/8941938
PCL registration API
Registration: constantly adjusts and integrates 3D point data from different angles into a complete model.
It aims to locate the positioning and orientation of different perspectives in a global coordinate system (the overlapping parts of the two perspectives are the best ). This is the Iterative Closest Point Algorithm mentioned in kinectfusion. Given the input dataset, first make an estimation, and then convert a dataset by rotating and moving to find a perfect matching method for the correct point set. The following PPT is a good explanation for ICP.
The PCL provides many algorithms for estimating multiple sets of points, eliminating bad matching, and robust transformation estimation. The following is a detailed explanation.
Pairwise Registration
The output is usually a 4 × 4 rigid transformation matrix, which indicates rotation and moving. It is applied to the source dataset and the result is completely matched with the target dataset. Is the step of an iteration of the "dual-correspondence" algorithm:
Perform the following operations for matching data sources A and B:
- Starting from one data source A, analyze the key points that most represent the two data source scenarios. k
- Calculate a feature description sub-fi at each key point Ki
- Based on the similarity between FI and xyz, this set of feature descriptor {fi} and their xyz coordinates in A and B are used to find a group of corresponding
- Because the actual data source is noisy, not all mappings are valid. This requires you to eliminate the corresponding negative effect on the matching step by step.
- Estimate a transformation from the remaining good mappings.
Module keypoints (Key Points) during Matching)
The key point is that there are special parts in the scenario. The corner of a book, the letter P printed in the book, can be called the key point. Key Algorithms provided in the PCL, such as narf, sift, and fast. You can choose all vertices or their subsets as the key points, but you need to consider that there are two corresponding combinations of K ^ Based on the K points in the frames.
Feature Descriptors (feature description)
Generate a feature description based on the selected key points. Set useful information in a vector for comparison. Methods: narf, fpfh, brief, or sift.
Correspondences estimation (relational estimation)
It is known that the feature vectors extracted from two different scan charts are used to find the relevant features and then find the overlapping parts of the data. You can select different methods based on the feature type.
Point Matching (using the XYZ coordinate as the feature), there are the following methods regardless of whether the data is restructured:
- Brute force matching (Force match ),
- KD-tree Nearest Neighbor Search (FLANN) (KD tree Nearest Neighbor Search ),
- Searching in the image space of organized data (search for organized data in the image space ),
- Searching in the index space of organized data (search for organized data by index ).
Feature Matching:
- Brute force matching (Force match)
- KD-tree Nearest Neighbor Search (FLANN) (KD tree Nearest Neighbor Search ).
In addition to the search method, there are two well-known corresponding estimates:
- Directly estimate the ing (default), and search for the ing between each vertex in cloud A and B.
- "Reciprocal" is used to estimate the ing between each other. It only uses the overlapping parts of A and B, first finding the corresponding part from A to B, and then finding the corresponding part from B to.
Correspondences rejection (excluding error estimates)
Eliminate error estimates. Use the ransac algorithm or reduce the number. Only a portion of mappings are used. There is a special one-to-multiple correspondence, that is, a pile of vertices in the source corresponding to a point in the model. In this case, you can use the shortest path or check for other matches nearby.
Transformation estimation (last step, computing transformation)
- Evaluate the error measurement value based on the above matching;
- Evaluate the rigid Transformation (motion estimation) between different pose of the camera to minimize the error measured value;
- Optimize the point cloud structure;
- E. g,-SVD motion estimation;-Levenberg-Marquardt uses different kernels for motion estimation;
- If you use a rigid transform to rotate/translate source data to the target location, you may need to execute an ICP iteration cycle for all vertices/partial vertices/key points;
- Iteration until certain convergence criteria are met.
Matching Process summary
PCL study NOTE 2: Registration (ICP Algorithm)