-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Description
Hello @pmoulon and all OpenMVG community, thank you for the great work you are doing!
I'll try to explain what i'm doing: the main project is to be able to do a 3D reconstruction in scale using CARLA simulator as source of images while driving a vehicle.
I set 5 different pinhole cameras mounted around the vehicle capturing 2560x1440 images with fov 90°. After i collected 3 images for each camera (15 in total) I firstly generate with a custom script the sfm_data.json file expliciting intrinsics and extrinsics computed thanks to CARLA and converted in the coordinate system reference of OpenMVG. Below the frustum computed, as you see there is some overlap between images.
Then i run my custom SfM pipeline as you see:
openMVG_main_ComputeFeatures -i path/to/sfm_data.json -o path/to/results_dir -m SIFT -p ULTRA -n5
openMVG_main_PairGenerator -i path/to/sfm_data.json -o path/to/results_dir/pairs.bin
openMVG_main_ComputeMatches -i path/to/sfm_data.json -p path/to/results_dir/pairs.bin -o path/to/results_dir/matches.putative.bin
openMVG_main_GeometricFilter -i path/to/sfm_data.json -m path/to/results_dir/matches.putative.bin -g e -o path/to/results_dir/matches.f.bin
openMVG_main_ComputeStructureFromKnownPoses -i path/to/sfm_data.json -m path/to/results_dir -o path/to/sfm_out/sfm_data.bin -t 0 -b -d -f path/to/results_dir/matches.f.bin
openMVG_main_ComputeSfM_DataColor -i path/to/sfm_out/sfm_data.bin -o path/to/sfm_out/sfm_data_colorized.ply
The results are shown below. This is after i computed 29 consecutive and indipendent reconstructions:
Here's the problem: once i've collect this "ground truth" results, i would introduce some sort of uncertainty regarding the extrinsics and applying a +-0.1 meters error for each camera pose (each axes x,yz) and
+-1 degree for each yaw,pitch, roll
For the first ones, i can see less 3d points but still accurate
For the second ones, without modifying the max_reprojection_error of BA the results are very bad.
I made some changes to the pipeline to increase the quality, such as changing the geometric model used in openMVG_main_GeometricFilter from essential to fundamental matrix and enlarging max_reprojection_error of BA to 20 i get points but it seems that I'm introducing a lot of noise. Moreover, due to 29 indipendent reconstruction that perform BA, the poses moved significantly producing different estimation of where are the buildings around (not happened on the "ground truth dataset") . Below the results of recontruction modifying only yaw,pitch,roll.
Since i don't think that these changes would affect so much the quality of the reconstruction, I might be wrong somewhere else during the process. Any suggestion from your side?
Thanks again