pglira/Point_cloud_tools_for_Matlab

Not enough correspondences found

zjx99 opened this issue · 8 comments

zjx99 commented

Hi, Philipp,
I was trying to use this tool to registration several points clouds from roadside laser scanning system. The file format is .csv. I got the following errors when I implemented the command runICP as follows:
3

1

2

I tried to adjust the parameter UniformSamplingDistance to different values, and I still got similar errors.

Can you please give me some clues? Thanks

Hi Jiaxing, can you send me the full logfile in debug mode (i.e. calling runICP with 'LogLevel', 'debug')?

zjx99 commented

I've emailed you the code and data I used because I am not so sure what you need to look at. Thanks a lot

First of all, the ICP algorithm needs at the start already a quiet good alignment of the point clouds. If this is given, the ICP algorithm can be used for a fine alignment of the point clouds, i.e. to minimize rather small discrepancies between the point clouds.

The point clouds that you have provided are not aligned well enough at the beginning:
image

But this can be easily accomplished (in this case!) by subtracting the cog (center of gravity) from each point cloud:

Then the ICP works well with when choosing appropriate matching parameters:

icp.runICP('UniformSamplingDistance',0, ...
           'PlaneSearchRadius',0.3);

Result is:
image

zjx99 commented

Thank you for the results and code.

" the ICP algorithm needs at the start already a quiet good alignment of the point clouds", here, " the ICP algorithm" refers to the normal ICP algorithm ? And is there any other way to get good alignment before ICP in addition to the way you showed me ?

Some options:

  • Some programs provide the possibilty to manually select correspondences between two point clouds. E.g. in CloudCompare.
  • You can place geometric figures (e.g. spheres or cylinders) which have a fixed position among all scans. These figures can be automatically detected in the point clouds and then used to estimate a transformation matrix for n-1 scans.
  • You can use move and rotate manually each point cloud in a 3d program and therey align it roughly with a master point cloud
zjx99 commented

Thanks,
In my case, there are usually more than 100 scans for a single car, so I am afraid manual work is impossible. Also, for the second option, each scan only contains a certain part of a car, e.g. the first covers the front, while the last might only have the rear of the car, so I am afraid it will not be so easy to find a fixed geometric figure in all the scanns.

In the meantime, as you suggested, it is better to register in two rounds for plenty of scans, my question is : do I also need to get a coarse alignment before the start of the second round?

Thanks

Yes, the subsets of the scans (lets say subset 1: scan1 to scan10, and subset 2: scan11 to scan20) need also to be roughly aligned before running the ICP.

zjx99 commented

Thank you.
There are 127 scans in my case, I divided them into 4 small groups with 30,30,30,37 scans, separately. In the first round, globalICP-based registration is conducted within each group,before this, each group of scans were roughly registered, and the results are very good. I named the merged scans as g1,g2,g3,g4, g1 and g2 are shown below.
image
image
In the second round, I tried to register the above 4 scans shown as below, however I had no idea how to get coarse alignment for them. For this condition , is there a good way to get a better initial alignment?
image

Later, I changed the strategy: I tried the original ICP algorithm for all the scanns, and used the results( the first figure below) as initial alignment for globalICP, the second figure below show the final results. However, I didn't see much difference between results from original ICP ( downsampled before) and those from globalICP. My questions are : (1) is there any processing about error accumulation in globalICP when dealing with multiple scans; (2) How to understand the word 'global' ? (3) How to understand the advantage of globalICP over original ICP?

image

image

Thanks a lot.