Open3D icon indicating copy to clipboard operation
Open3D copied to clipboard

[WIP] Tensor reconstruction system upgrade: make fragments

Open theNded opened this issue 3 years ago • 4 comments

This change is Reviewable

This PR implements

  • Information matrix computation for RGB-D odometry
  • Easier-to-use pose graph wrapper in t-reconstruction system
  • Explicit Long sequence splitter (into fragments)
  • Module: RGB-D odometry, pose graph construction, and optimization
  • Module: RGB-D integration

For the copyroom scene (5490 frames), on RTX 3060 & i7-11700 @ 2.5Hz

  • Pose graph generation and optimization takes 107.961s for 55 fragments. (~ avg 50 FPS)
  • TSDF integration takes 47.590s for 55 fragments. (~ avg 120 FPS)
  • Example fragments: image image

To run the system, call

python examples/python/t_reconstruction_system/run_system.py --split_fragments --fragment_odometry --fragment_integration --path_dataset /path/to/dataset

theNded avatar Jun 11 '22 03:06 theNded

Thanks for submitting this pull request! The maintainers of this repository would appreciate if you could update the CHANGELOG.md based on your changes.

update-docs[bot] avatar Jun 11 '22 03:06 update-docs[bot]

@reyanshsolis Would you please kindly help me

  • [ ] fix the docs (mainly for the information matrix),
  • [x] verify the system on your machine on the lounge dataset,
  • [x] make the config options consistent across files (rgbd_odometry, integrate, split_fragments, run_system) (e.g. replace hard-coded scale factors (1000.0), depth_max (3.0), dist_threshold (0.07m) with config options),
  • [x] clean up the aforementioned files and make sure that they still function alone if the users directly use them.

Please mark the PR as read-to-review when they are done. In the meantime I will be working on global registration.

theNded avatar Jun 11 '22 19:06 theNded

Thanks for the PR @theNded.

I will take care of the mentioned list. Also, I was trying to come up with a new design if possible such as:

  • Currently, Registration::ICP and Odometry::RGBDOdometry basically compute transforms between two frames (btw unorganized pcd, or btw rgbd-image). If we can unify of make it more consistent, it might also serve as a unified interface for organized point-cloud through rgbd-pipeline.
  • We can completely transfer PoseGraph, Optimization methods wrapper to CPP tensor and add it as a pybind. Such that future implementation can just keep the component replacing, leaving the API/example code same.

I will continue working on this PR, but it might take some time.

reyanshsolis avatar Jun 12 '22 07:06 reyanshsolis

@reyanshsolis Please postpone these proposals and finish my list first. These are easy tasks and can be finished soon. I want the system there first. This will make the verification of designs easier.

theNded avatar Jun 12 '22 14:06 theNded

Finished rebasing, can be merged after double checking #5359.

theNded avatar Jan 18 '23 17:01 theNded

@ssheorey several tests failed, 3 network issues, 1 tensor test error. Should be irrelevant to the PR itself. We can proceed to merge if possible. Then I can restart working on the registration part.

theNded avatar Jan 19 '23 15:01 theNded