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

[features] Add a SIFT implementation to OpenMVG #556

Closed
5 tasks done
pmoulon opened this issue May 12, 2016 · 2 comments
Closed
5 tasks done

[features] Add a SIFT implementation to OpenMVG #556

pmoulon opened this issue May 12, 2016 · 2 comments
Assignees
Milestone

Comments

@pmoulon
Copy link
Member

pmoulon commented May 12, 2016

Extend the openMVG feature module with:

  • A hierarchical gaussian scale space computation
  • A SIFT keypoint detection (Difference Of Gaussians)
  • A SIFT keypoint description (Squared grid of gradient orientation binning)
  • Update some binaries to use this new SIFT implementation as an option
  • merge to develop once tested by some other users

This implementation is based on:
Ives Rey Otero, and Mauricio Delbracio, Anatomy of the SIFT Method, Image Processing On Line, 4 (2014), pp. 370–396. http://dx.doi.org/10.5201/ipol.2014.82

Changes regarding original IPOL code are:

  • The hierarchical scale space code can be run on it's own,
  • Keypoint detection and description is split in two separate modules,
  • the code can run per Octave (less memory consuming),
  • some computation can be run in parallel.

Results are comparable to VLFEAT SIFT (looking to the repeatability with https://github.com/openMVG/openMVG/blob/master/src/openMVG_Samples/features_repeatability/main_repeatability_dataset.cpp on https://github.com/openMVG/Features_Repeatability)

sift_normal
sift_high
sift_ultra

Thanks to @rperrot for his help to implement & test this new implementation.

@pmoulon pmoulon self-assigned this May 12, 2016
@pmoulon pmoulon added this to the Putative V1.1 milestone May 12, 2016
@simogasp
Copy link
Contributor

What is the advantage of using Anatomy? Speed performance?

@pmoulon
Copy link
Member Author

pmoulon commented May 12, 2016

  1. Have a C++ code that is easy to read.
  2. VLFEAT SIFT works fine, but its code is not easy to customize for your own need.
    The idea here consist in providing basic tools (Gaussian scale computation, Sift Point localization, Sift description) that you can combine with other openMVG modules for your own purpose.

pmoulon added a commit that referenced this issue May 12, 2016
- Add a hierarchical gaussian scale space computation
- Add a SIFT keypoint detection (Difference Of Gaussians)
- Add a SIFT keypoint description (Squared grid of gradient orientation binning)
- Update some binaries to use SIFT_ANATOMY with an option.
@pmoulon pmoulon closed this as completed Dec 26, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants