victorprad / InfiniTAM

A Framework for the Volumetric Integration of Depth Images
http://www.infinitam.org
Other
922 stars 351 forks source link

Seed for ICP #15

Open ml-rodriguez opened 9 years ago

ml-rodriguez commented 9 years ago

Hello,

I am using InfiniTAM with a dataset containing RGB-D data and ground-truth data (RGB-D SLAM Dataset and Benchmark - freiburg1_360). I use the ground-truth data as seed for ICP but the results do not converge to ground-truth data. Could you help me with this problem?

Thanks

olafkaehler commented 9 years ago

How far off the ground truth do you get? Have you tried not running the tracker at all, just using the ground-truth poses, and integrating the depth images? Maybe it's some coordinate system conversion that is wrong?

If you get to within 1-2cm and less than about 2 degrees rotation error, I think it will mean that the noisy depth images, that are used for tracking in ICP, do not agree very well with your ground-truth data, however it was acquired.

Hope that helps, but I think more information is required to nail the problem down...

ml-rodriguez commented 9 years ago

Thank you very much!

I think the coordinate system conversion is not wrong because i made the tracking just using the ground-truth and depth images and the results are very good.

But when i use the ground-truth data as seed for ICP, I get this values for the parameters tx, ty, tz, rx, ry, rz (the first line are the values for seed and the second line are the values calculated by ICP). Only for some frames the ICP converges to ground-truth.

0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 initialised. processing one frame ... processing one frame ... -0.004163 -0.006660 -0.001597 0.019068 -0.000141 -0.006043 -0.108286 0.047506 -0.051122 0.014881 0.071583 0.072560 processing one frame ... -0.010214 -0.015147 -0.003150 0.044855 -0.000065 -0.013257 -0.018478 -0.002042 -0.009821 -1.182304 -0.099220 1.321047 processing one frame ...
-0.014948 -0.021091 -0.004082 0.058056 -0.001431 -0.023469
-0.014948 -0.021091 -0.004082 0.058056 -0.001431 -0.023469
processing one frame ...
-0.020169 -0.026340 -0.005106 0.075737 -0.004753 -0.036706
-0.145337 0.057827 -0.065980 0.085642 0.087456 0.079564
processing one frame ...
-0.027305 -0.033167 -0.006670 0.108618 -0.007235 -0.054964
-0.383984 -1.417945 -0.090329 -0.243016 1.049265 -2.675780
processing one frame ...
-0.032891 -0.037828 -0.007844 0.134181 -0.010961 -0.070632
-0.968886 0.408614 0.126977 0.994098 0.974977 0.004685
processing one frame ...
-0.038738 -0.041505 -0.008849 0.151419 -0.017654 -0.083235
-0.038738 -0.041505 -0.008849 0.151419 -0.017654 -0.083235

(...)

It is possible that the noisy depth images are the problem. I can try the same experiment with other set of images.

Thanks in advance

carlren commented 9 years ago

Hi, we have also used the TUM dataset for evaluation of our tracking, and I think the problem you having now is because TUM-fr1 has a different coordinate system from ours (certain axis are permuted or flipped). If you use the ground true poses and use InfiniTAM to integrate depth, it would be fine, since you're always moving in the TUM-fr1 coordinate system, but if you want to use the ground truth mocap poses as initialization then run InfiniTAM tracking, you will have to figure out the coordinate transformation between these two coordinate systems.

(As far as I know, within the TUM dataset fr1-fr4, they are not using the same coordinate system. )

If you want to evaluate the accuracy of InfiniTAM tracking you can use the script provided by the TUM dataset to directly compute the tracking error :http://vision.in.tum.de/data/datasets/rgbd-dataset/tools.

ml-rodriguez commented 9 years ago

OK! I will follow your advice. Thank you for all.

manuel-kroeter commented 8 years ago

Hi ml-rodriguez, can you maybe tell me how you did the coordinate system conversion to load a TUM trajectory file?

rajputasif commented 8 years ago

Great question @ManuelK89 ... :+1:

dejunzhang commented 7 years ago

@ml-rodriguez , i also do the same experiment. but i could not directly use the the groundtruth trajectory as tracking pose to integrate the depth. the quality of the 3d model is very bad. I use tum dataset rgbd_dataset_freiburg2_Desk2 sequence to do the test. i convert the groundtruth traject like below: 1311868164.368369 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000009 1311868164.403405 -0.000728 -0.001760 0.002918 -0.004793 -0.003016 -0.001590 0.999988 1311868164.433980 -0.001596 -0.003190 0.004986 -0.005349 -0.005785 -0.002751 0.999965 1311868164.470047 -0.003933 -0.004993 0.008353 -0.010142 -0.006181 -0.006610 0.999924 1311868164.503414 -0.005648 -0.006297 0.010797 -0.013151 -0.002001 -0.008701 0.999868 1311868164.535210 -0.007756 -0.006859 0.012806 -0.006803 0.000390 -0.009402 0.999963 1311868164.568027 -0.010353 -0.007723 0.016147 -0.007420 0.001113 -0.011957 0.999908 1311868164.603477 -0.013778 -0.008063 0.019771 -0.005443 0.003029 -0.013731 0.999925 1311868164.634267 -0.016849 -0.008015 0.022622 -0.003561 0.002674 -0.014539 0.999900 1311868164.670320 -0.021369 -0.007595 0.026140 -0.002561 0.000789 -0.014571 0.999918 1311868164.704301 -0.026387 -0.007584 0.029333 -0.003246 -0.000531 -0.013124 0.999902 1311868164.734354 -0.031492 -0.007145 0.032498 -0.007528 -0.002183 -0.013509 0.999891 1311868164.771162 -0.037856 -0.006372 0.035078 -0.002334 -0.005536 -0.013377 0.999883 1311868164.804271 -0.043887 -0.005419 0.037386 0.000718 -0.006767 -0.013018 0.999898 1311868164.836943 -0.050935 -0.004693 0.039603 0.004726 -0.005813 -0.013788 0.999861 1311868164.868835 -0.057847 -0.004178 0.041472 0.007724 -0.005111 -0.014238 0.999857 1311868164.902150 -0.066119 -0.003586 0.043432 0.010880 -0.003764 -0.015405 0.999820 1311868164.936358 -0.074474 -0.003578 0.045237 0.009897 -0.003174 -0.017830 0.999782 1311868164.969217 -0.083271 -0.003610 0.046659 0.008303 -0.004300 -0.019758 0.999756 1311868165.002742 -0.092754 -0.003499 0.048611 0.009028 -0.009388 -0.018919 0.999728 1311868165.037211 -0.103020 -0.003323 0.050534 0.010593 -0.014760 -0.018642 0.999674 1311868165.070060 -0.113246 -0.003468 0.052841 0.011325 -0.018636 -0.019736 0.999567

And the infinitam trajectory is like below: 1311868164.368369 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 1311868164.403405 -0.000469 0.000450 0.001950 -0.002604 -0.000829 -0.001082 0.999996 1311868164.433980 -0.002767 0.000262 0.004936 -0.005227 -0.003519 -0.002347 0.999977 1311868164.470047 -0.005519 -0.000617 0.007848 -0.007766 -0.005204 -0.005095 0.999943 1311868164.503414 -0.008023 -0.000874 0.010364 -0.010001 -0.004251 -0.008002 0.999909 1311868164.535210 -0.010781 -0.000801 0.012902 -0.010786 -0.001768 -0.010272 0.999888 1311868164.568027 -0.012965 -0.000720 0.015841 -0.010526 0.000597 -0.011664 0.999876 1311868164.603477 -0.015440 -0.000328 0.019335 -0.009448 0.001702 -0.013337 0.999865 1311868164.634267 -0.019073 0.000207 0.022738 -0.007812 0.002078 -0.014403 0.999864 1311868164.670320 -0.022416 0.000261 0.026143 -0.006781 0.001544 -0.014479 0.999871 1311868164.704301 -0.026789 -0.000532 0.029674 -0.006621 -0.000517 -0.014396 0.999874 1311868164.734354 -0.031598 0.000633 0.032932 -0.006741 -0.002315 -0.012953 0.999891 1311868164.771162 -0.038969 0.002164 0.036416 -0.005064 -0.004721 -0.012476 0.999898 1311868164.804271 -0.043224 0.004204 0.039136 -0.003064 -0.005354 -0.012094 0.999908 1311868164.836943 -0.051306 0.005941 0.041861 0.000350 -0.006186 -0.012992 0.999896 1311868164.868835 -0.059343 0.005277 0.044405 0.004038 -0.005700 -0.014224 0.999874

They are quite different. could you please give me some advice? thank you very much.