-
Notifications
You must be signed in to change notification settings - Fork 206
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rigid icp merged not well #29
Comments
Hi! Those two point clouds were meant as input to non_rigid_icp, since they are not related via a rigid transformation (so this is generally expected). If you suspect that rigid ICP behaves erratically on them, please share some code and sample output, and I will investigate! Thanks! |
Hi, Today I scanned 350 frames with a 3D sensor and then imported the beginning 50 frames into my demo based on this SDK. The result is not bad. but for the beginning 100 frames, it is too bad. Here is the sample data. Here is my demo source code. (In this code, I use a new tinyply because I do not know how to use old tinyply you use. you can adjust slightly the saving ply part.) I have checked that these frames can be registrated well in some other tools. Regards. |
Hi! I'll have a look once the data is uploaded! |
https://www.dropbox.com/s/xbfbtcm009r87s8/model_back.7z?dl=0 This is the dropbox link. Thanks so much. |
Wow. Excellent. Last Sunday, I was attending my brother's wedding. Sorry for responding you so late. Tonight I will test it with this model and any other models. Thanks so much. After testing it, I will learn this code in detail. I really like this source code because it is faster and lighter than PCL. |
Hehe no worries -- congrats to your brother! |
Hi. I just tested the code you provided. The result was awesome but the speed was a bit higher because I might use it for cross-platform. When I set the gridDownsample value to 3.0 and the max iteration number to 20, processing 350 frames costed 180 seconds. Are there any suggestions to further accelerate it? |
Hi! It takes about 30 seconds on my 4C/8T machine (with the values you suggested). Did you compile with OpenMP? This is the code I tested with (slight modification of the previous version):
You could shave off a few seconds by not downsampling at every frame (e.g., do it every 2-5 frames instead), but that's not going to make a big difference. You could also give the Unfortunately, API documentation is sparse at the moment, but the example programs cover a good part of the supported functionality. We also have a technical report on Let me know if I can help with anything! Cheers! |
As visual studio does not support a high enough OpenMP, I tested this demo with VSCode and gcc compiler in windows. After I enabled the OpenMP, the speed is good. After migrating from VS to VSCode, the griddownsample speed is very slow. Do you know this issue? |
My code attached. #include <cilantro/icp_common_instances.hpp> int main(int argc, char ** argv)
} |
Hi! That should work well! How long does gridDownsample take and on what input/parameters? If you could share a test cloud and timing (before/after migrating to gcc), that would be help! |
This is the time after adding griddownsample: This is the new code: int main(int argc, char ** argv)
} Regarding the test data, I guess the old data I provided should also work for this test. |
Wow, these numbers are crazy! I am getting about 45ms for the very last downsampling steps (end of sequence), and the whole thing takes about 6.5 seconds on my Ubuntu-based distro. Are you compiling with optimizations enabled (e.g. -O3 for gcc)? If it's not optimizations, one thing to try would be to disable parallelism for downsampling and see what happens. To do that, try changing line 140 of
to:
and see if that changes the times. |
-O3 is always there. 31.9123 |
So it was parallelism that was slowing it down... In Linux, it does give measurable speedups! Times now look much more reasonable, but are still a few times higher than what I get on my Linux setup. I will try to investigate as soon as I get a chance. Thanks for reporting this! |
My pleasure |
Hi I managed to run the rigid_icp example and get a very good result. However when i tried to import frame_1.ply and frame_2.ply into this demo (by changing some example code), I found that these two files are not merged well. It means this is a not small gab between the transformed data.
Could you help to explain. I do not like pcl because it is so heave and slow.
The text was updated successfully, but these errors were encountered: