isl-org / Open3D

Open3D: A Modern Library for 3D Data Processing
http://www.open3d.org
Other
11.37k stars 2.29k forks source link

Using known image camera poses, for faster reconstruction. #2168

Closed bumbastic closed 4 years ago

bumbastic commented 4 years ago

When I run the ReconstructionSystem tutorial scripts on my own images. it takes about 10-30 minutes to make a nice reconstruction. A lot of work seems to go in to matching all images against each other. I already know the camera poses for my images, within a tolerance of +/-30mm and rotation within +/- 1deg. The images is already in a sequence where the camera moves along a straight line.

If possible, I would like to significantly reduce the reconstruction time, by using the above described information as input.

Nice to have too: I would like to constrain the matching to only optimize the images poses within given tolerances. Option to throw away images that can't be matched within the given pose tolerances.

Is there already a way to do this?

greatwallet commented 4 years ago

I think maybe most of the time the "Reconstruction System" is doing is RGB-D/point-cloud pairwise-registration. Why don't you perform multiway registration without the part of pairwise-registration part, and loading your camera poses as initial input of Pose Graph Optimization?

bumbastic commented 4 years ago

Thank you for the tip. I will try it out.

yanivx4x commented 4 years ago

Hey @bumbastic , Did you manage to do it? I am interested in the same solution.

bumbastic commented 4 years ago

Hi Yaniv, I didn't have the time to work on it yet. I will try to remember and get back to you if I do find the time in the near future. For now I work without registration, and feeds the camera poses an images directly to the Tsdf class and extract my mesh from the tsdf in the end. Best, Thomas

Zumbalamambo commented 4 years ago

@bumbastic could you please share the tutorial code on rgb based pointcloud construction?

bumbastic commented 4 years ago

I don't have a tutorial for this. I think that the open3d python ReconstructionSystem example is great for converting rgbd images into pointclouds or meshes.

Zumbalamambo commented 4 years ago

How about mere rgb images? Is it possible to create pointcloud from rgb images?

bumbastic commented 4 years ago

Hmm.. Do you mean something like the phone app Display.Land? I don't work with something like this. I work with depth images not rgb.