Page 1 of 1

Fine register(ICP)

Posted: Sun Aug 22, 2021 4:07 pm
by GavinYu
Hi~I'm a student who is studying point cloud. I found that "Fine register(ICP)" in cc is very efficient, so I got the cc source code from Github to study. What confused me is: Did the "Fine register" button calls the coarse registration since I just find that the "Fine register" button calls only the "register" function which does not include coarse registration.
Another question is: Do we have some papers or documents which introduce the ICP algorithm used in cc.

Re: Fine register(ICP)

Posted: Tue Aug 24, 2021 7:20 pm
by daniel
The "Fine register" method should only be used on already roughly aligned clouds (that's how the ICP algorithm is supposed to be used). It is not capable of doing coarse registration (which is actually a much harder problem).

Then, the only documentation is the wiki: https://www.cloudcompare.org/doc/wiki/i ... ?title=ICP. But in the code you can find some references to 2 articles / refinement of the standard ICP algorithm that we use (one for scaling, and one for speeding the convergence by randomly subsampling the aligned cloud at each iteration).

Re: Fine register(ICP)

Posted: Fri Aug 27, 2021 3:18 pm
by GavinYu
Thank you for your reply. Your reply is very useful. When I use cc, two point cloud which has not been coarse registered is loaded, and the "Fine register" button can register. This button can work particularly well without coarse registration. However, after studying the source code, I find that the "Fine rigister" function does not call any coarse register functions before ICP registration. Could you please give me some advice on it?

Re: Fine register(ICP)

Posted: Sat Aug 28, 2021 8:14 am
by daniel
If it works without a coarse initial registration, then it's pure luck ;)

The only initial step that CC might add is that if the clouds are very far appart, it will make both bounding-box centers match. But it won't adjust the orientation, etc.

Re: Fine register(ICP)

Posted: Tue Jan 25, 2022 5:56 pm
by lsmadja
daniel wrote: Tue Aug 24, 2021 7:20 pm Then, the only documentation is the wiki: https://www.cloudcompare.org/doc/wiki/i ... ?title=ICP. But in the code you can find some references to 2 articles / refinement of the standard ICP algorithm that we use (one for scaling, and one for speeding the convergence by randomly subsampling the aligned cloud at each iteration).
Hello !
I'm quite a big fan of your software (for a long time :)). I'm currently using the "fine registration toolbox'" and would like to apply the same algo in python (using Open3d). You mentioned papers could be found in the relevant code, but I was not able to locate these references. Could you please enlight me ?
Merci d'avance et encore bravo pour votre soft
Cordialement
Laurent Smadja

Re: Fine register(ICP)

Posted: Thu Jan 27, 2022 12:15 pm
by daniel
Did you find at least Besl's paper? (the main one). The other good source is https://www.cs.princeton.edu/~smr/paper ... _paper.pdf

All the improvements are quite easy to implement, but the best is definitely the random selection of a smaller subset of points at each iteration (Masuda 96). The weights are less convincing (I added them myself, it may not be the best way to do it from a mathematical point of view), but it allows to improve the matching by taking normals into account (once again, I don't remember having used an article for this part).
-