Page 1 of 1

ICP registration doesnt work when roles are swappd

Posted: Mon Dec 12, 2016 1:12 pm
by cincinatee
Is it compulsory that the data cloud must be smaller ( in number of points. dimension of bounding box) than the model cloud ?

when I perform ICP registration of my dataset with smaller cloud as data and bigger cloud as model, I get good result
but when I swap the roles (bigger cloud as data and smaller cloud as model), I get weird result

Re: ICP registration doesnt work when roles are swappd

Posted: Mon Dec 12, 2016 8:14 pm
by daniel
The 'basic' ICP algorithm is meant to be used on clouds that are representing the same object, and with the same coverage. Because to align the entities, it generates pairs of equivalent points by considering ALL points of the aligned entity and pairing them with the nearest point in the reference entity.

Therefore, if the aligned entity is wider, then the points on the borders are most likely to be quite far from the reference ones, and there's also a good chance that the pairing will be bad (as these points probably don't have their true equivalent point in the reference cloud). As a consequence these wrong pairs will actually deviate the registration in a wrong direction, and it will prevent the algorithm from converging at the right position.

To cope with this, you have to set the 'overlap' parameter to a realistic value: you have to tell CloudCompare the percentage of points in the aligned entity that will actually have an equivalent point in the reference cloud (+/- 10%). And you also have to make sure that the two clouds are already roughly registered (otherwise the aligned cloud may remain stuck at the wrong position).