/numpy-sift

Numpy implementation of SIFT descriptor

Primary LanguageJupyter NotebookOtherNOASSERTION

This is an python implementation of SIFT patch descriptor. It is derived from Michal Perdoch C++ implementation at https://github.com/perdoch/hesaff

The SIFT descriptor code is protected under a US Patent 6,711,293. A license MUST be obtained from the University of British Columbia for use of SIFT code, files numpy_sift.py, in commercial applications (see LICENSE.SIFT for details)

Here are comparisons to the original Michal Perdoch implementation. The benchmark is on W1BS dataset from WxBS: Wide Baseline Stereo Generalizations paper, figure 3. So there is no difference between versions in performance

Average performance on W1BS

average

Speed:

  • 0.00187 s per 65x65 patch - numpy SIFT
  • 0.00028 s per 65x65 patch - C++ SIFT

If you use this code for academic purposes, please cite the following paper:

@article{HardNet2017,
 author = {Anastasiya Mishchuk, Dmytro Mishkin, Filip Radenovic, Jiri Matas},
    title = "{Working hard to know your neighbor's margins: Local descriptor learning loss}",
    booktitle = {Proceedings of NIPS},
     year = 2017,
    month = dec}