Fine register(ICP)

Feel free to ask any question here
Post Reply
GavinYu
Posts: 2
Joined: Sun Aug 22, 2021 3:47 pm

Fine register(ICP)

Post 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.
daniel
Site Admin
Posts: 7717
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: Fine register(ICP)

Post 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).
Daniel, CloudCompare admin
GavinYu
Posts: 2
Joined: Sun Aug 22, 2021 3:47 pm

Re: Fine register(ICP)

Post 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?
daniel
Site Admin
Posts: 7717
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: Fine register(ICP)

Post 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.
Daniel, CloudCompare admin
lsmadja
Posts: 1
Joined: Tue Jan 25, 2022 5:51 pm

Re: Fine register(ICP)

Post 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
daniel
Site Admin
Posts: 7717
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: Fine register(ICP)

Post 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).
-
Daniel, CloudCompare admin
Post Reply