If you have a LiDAR producing Point Clouds some time apart and some distance apart, you have to preform a transformation to line them up. But sensors are noisy - so you probbably want to do some after-the-fact reconfiguring. ICP helps minimize the error between matching two sets of scans.
The steps are as follows:
- Selection of points in one or both meshes or point clouds.
- If there are a lot of points, maybe only use a few, some points are easier to match than others so considering this in the selection process might make your results more accurate
- Matching/Pairing these points to samples in the other point cloud/mesh.
- Use SIFT :)
- Weighting the corresponding pairs. 4. Some pairs are better than others. Give more weight to points that have smaller distances to each other.
- Rejecting certain pairs.
- You could reject pairings when one of the points lies on a boundary, as these points are likely to match with points in non-overlapping regions. maybe also reject pairings with too high of a distance.
- Assigning an error metric based on the point pairs.
- I’m not copying that big ass equation - suffice it to say, its a multi-dimensional distance function.
- Minimizing the error metric
- Do gradient descent on the formula I skipped!