Comments (8)
Hi Jiaxing, can you send me the full logfile in debug mode (i.e. calling runICP with 'LogLevel', 'debug')?
from point_cloud_tools_for_matlab.
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
from point_cloud_tools_for_matlab.
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:
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);
from point_cloud_tools_for_matlab.
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 ?
from point_cloud_tools_for_matlab.
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
from point_cloud_tools_for_matlab.
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
from point_cloud_tools_for_matlab.
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.
from point_cloud_tools_for_matlab.
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.
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?
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?
Thanks a lot.
from point_cloud_tools_for_matlab.
Related Issues (9)
- Not working with matlab 2016 HOT 2
- OutputFormat not recognized as parameter HOT 4
- Problems when using 'SubsetRadius' parameter HOT 1
- GlobalICP Corresponding Pairs Visualization HOT 1
- GlobalICP Kinect v1 Point Cloud Data HOT 5
- maximize will be removed in future release error
- can not read .pcd file.
- can't find pointCloud.plot function
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from point_cloud_tools_for_matlab.