Page 1 of 1

Solution for ICP

Posted: Fri Feb 10, 2017 12:26 pm
by Laurent_B
Hello,

I'm working on a project which consist in reassembling Fractured Object (blocks of stone).
To do this, I have points cloud in data that I first consolid then and then I merge.
After that I create a mesh with the poisson surface reconstruction in CloudCompare.
Once I have these point cloud meshes, I take two meshes which correspond to two Blocks that were stuck before the break.
I pick equivalent point pair on the analogue surface and I run the ICP. To improve the matching of these meshes, I segment the meshes with the approximative surface overlap I take the transformation that I apply to my whole blocks .
But the main problem is that in the reality my blocks of stone can't intersect themselves but the point cloud meshes given that are virtual can intersect themselves.
I have already searched for methods to improve the ICP for my project , maybe using a asbolute value in ICP to ban the negative distance and so ban the intersection of surface ? May be using normals in the ICP algorithme ?

I'm writing to you in case you have some advices or solutions to my problems

Thank you in advance
Laurent

Re: Solution for ICP

Posted: Fri Feb 10, 2017 2:27 pm
by daniel
Sorry, I have never heard of such modification of the ICP algorithm. And this kind of iterative optimization algorithm don't like discontinuities very much (such as the ones that would be induced by these virtual boundaries).

Re: Solution for ICP

Posted: Fri Feb 10, 2017 3:20 pm
by Laurent_B
Thank you for your fast answer !

They are a lot of article which mention a modification of the ICP algorithme such as :

http://jacoposerafin.com/wp-content/upl ... 15iros.pdf
http://www.pcl-users.org/file/n4037867/ ... of_ICP.pdf
https://hal-lirmm.ccsd.cnrs.fr/lirmm-00106684
https://hal.archives-ouvertes.fr/hal-00576904
etc..

So, I think that the algorithm is editable for example with normals (in the first links there is a library in C++ open source but I don't know how to run it). May be it will be more efficace for my topic. But I don't really know if it possible to create these methods in CloudCompare. It seems very difficult for me because I have no experience in programming.

But may be have you any solution than ICP for matching my blocks in CloudCompare ?

Thank you for your answer

Re: Solution for ICP

Posted: Fri Feb 10, 2017 3:59 pm
by daniel
Oh, I know about modified versions of ICP. But as far as I know they are not preventing the clouds from intersecting each other...

Re: Solution for ICP

Posted: Fri Feb 10, 2017 4:22 pm
by Laurent_B
Ok I see, Thank you ! But don't you know if it is possible to use any variant ICP in CloudCompare (using normals for example) ?

Re: Solution for ICP

Posted: Fri Feb 10, 2017 4:41 pm
by daniel
Not in CC at least... Maybe Meshlab?

Re: Solution for ICP

Posted: Fri Feb 10, 2017 7:43 pm
by Laurent_B
Ok ! So i will search in Meshlab !
In any case , thank You very much for your reactivity and your answers !