Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add implementation of linear global translation (LiGT) - Global translations from global rotations and track observations #2065

Merged
merged 47 commits into from May 19, 2022

Conversation

pmoulon
Copy link
Member

@pmoulon pmoulon commented May 15, 2022

What's new

Implementation of LiGT from [1]. An alternative to Translation_Structure_L1_ConstraintBuilder that does not compute the 3D coordinates of the points.

This implementation is supported by the Inertial and Visual Fusion (VINF) research group at Shanghai Jiao Tong University https://www.researchgate.net/lab/Inertial-visual-Fusion-VINF-Yuanxin-Wu

How to use it?

openMVG_main_SfM --translationAveraging 4

[1] A Pose-only Solution to Visual Reconstruction and Navigation
Qi Cai, Lilian Zhang, Yuanxin Wu, Wenxian Yu, Dewen Hu

Details:

  • Add Spectra as a third-party to OpenMVG to solve sparse Eigen Value problems

pose-only-vision and others added 30 commits April 1, 2022 22:59
VINF-SJTU
- Use OpenMVG internal:
- Logger
- geomnetry::Pose3
- hat -> CrossProductMatrix
- IdentifySign -> replace loop with an Eigen reduction
Propose to update LTL and A-lr matrices locally in order to traverse
tracks in parallel.
…ix_update

Parallelism improvment - local update of LTL and A-LR matrices
Spectra replace Eigen; Block manipulation to implement LTL matrix.
… features

- Minor cleanup for TRANSLATION_LIGT (always defined, but code working only if USE_PATENTED_LIGT is active)
reason: LiGT has been embedded in the openslam_multiview library.
reason: LiGT has been embedded in openmvg_multiview library.
pmoulon and others added 6 commits April 26, 2022 21:27
- Remove main_LiGT_algorithm and LiGT file related functions
- Now LiGT::Solution return true of false depending of solver failure or
success
- Remove unused functions
- Attitudes -> Rotations
- Fix slow behavior to update tracks (using parallelism was a bad idea)
- better pre-allocate memory
…velop

Conflicts:
	src/openMVG/multiview/LiGT/LiGT_algorithm_converter.cpp
	src/software/SfM/CMakeLists.txt
- move the definition of MIN_TRACKING_LENGTH from 'LiGT_algorithm.cpp' to 'LiGT_algorithm_converter.cpp' and use  filter of TracksBuilder to do this work.
reset the MIN_TRACKING_LENGTH to be 2
@pmoulon pmoulon added this to the 2.1 milestone May 15, 2022
@pmoulon pmoulon requested a review from a team May 15, 2022 06:38
@pmoulon pmoulon self-assigned this May 15, 2022
@lgtm-com
Copy link

lgtm-com bot commented May 15, 2022

This pull request introduces 1 alert when merging 9041f33 into 1f54383 - view on LGTM.com

new alerts:

  • 1 for Inconsistent definition of copy constructor and assignment ('Rule of Two')

- Update feature to return coords as inline (to avoid link to
openMVG_features libs and bloat code)
@pmoulon
Copy link
Member Author

pmoulon commented May 15, 2022

Seems like there is an issue with Spectra on mac https://github.com/pose-only-vision/openMVG/runs/6442451077?check_suite_focus=true#step:6:302

@lgtm-com
Copy link

lgtm-com bot commented May 15, 2022

This pull request introduces 1 alert when merging 9b51bea into 0842de9 - view on LGTM.com

new alerts:

  • 1 for Inconsistent definition of copy constructor and assignment ('Rule of Two')

@pmoulon
Copy link
Member Author

pmoulon commented May 15, 2022

Closing this PR, will re-open when we will have an understanding of the failure on Mac

- Avoid use auto on Eigen expression
- Fix a typo
@pmoulon pmoulon reopened this May 17, 2022
@pmoulon pmoulon merged commit cbc5618 into openMVG:develop May 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants