RobotLocomotion/LabelFusion

bad alignment results

hygxy opened this issue · 6 comments

hygxy commented

Hey, I was using this tool to create my own data sets. I did everything exactly as README says, but didn't get reasonable results. Here are some pictures from the main window when the interactive marker is on:

a
b
c

The metal part fork is the object to be aligned, in the window it seems that the object and point cloud is coincided, but after "run_create_data -d " i get the following picture :
0000000001_color_labels This is the file "0000000001_color_labels" and "000000000x_color_labels" are even worse.

Any advice would be appreciated!

hygxy commented

@peteflorence
Thanks for quick reply. I did use the factory default values for camera intrinsic parameters, I can calibrate the camera manually. But what can I do to improve the quality of 3d reconstruction?

hygxy commented

@peteflorence
Hello, I've calibrated my camera manually and get better results now. However, I've also observed another frustrating phenomenon: "run_create_data" will create around 600 color images with corresponding labels and poses, some(around 100) of them look good but the rest still presents offsets with different levels and thus can not be applicable. I am wondering if this phenomenon is normal because whatever parameters(even "ideal" parameters I suppose) I set in "renderingtrainingimages.py", there always exists offsets in some images, which are quantitatively more than good ones.

Another problem is that even if the results are acceptable for one object(e.g, the right one) in the scene, the same parameter sets generate bad results again for others(e.g., the left one).

Today I have a new question: why is in the function "setCameraInstrinsicsAsus()" just one "focalLength" value necessary? I calibrated my camera(it is a realsense), but the results are for resolution 1920x1080, I used this form to adjust the intrinsic values to resolution 640x480, during which I assume the field of view doesn't change. Surly I will get different values for fx and fy. So I don't know which one to use in "renderingtrainingimages.py".

I am thankful for any ideas!

hygxy commented

I resolved this issue by changing the intrinsic values in MainController.cpp of ElasticFusion and rebuilding it. Thanks again for your advice! @peteflorence

I resolved this issue by changing the intrinsic values in MainController.cpp of ElasticFusion and rebuilding it. Thanks again for your advice! @peteflorence

hello ,I use the labelfusion in docker, I have changed intrinsic in the function 'setCameraInstrinsicsAsus()',but not changed the intrinsic values in MainController.cpp of ElasticFusion, the results is bad, in the docker ,how I can do?