Skip to content

Bad CARLA-2-OpenMVG 3D Reconstruction by introducing uncertainty on Camera Poses #2423

@AlessandroCammalleri

Description

@AlessandroCammalleri

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.

Image

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:

Image Image

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.

Image Image

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions