Coder Social home page Coder Social logo

fish2000 / libsiftfast Goto Github PK

View Code? Open in Web Editor NEW
20.0 4.0 3.0 989 KB

My fork of zerofrog's fast SIFT C++ reimplementation of Bill Lowe's original smash-hit image-analysis algorithm.

License: Other

C++ 95.48% MATLAB 0.36% Shell 0.39% Objective-C 1.75% Python 2.01%

libsiftfast's Introduction

libsiftfast: author zerofrog(@gmail.com)
----------------------------------------
Various utilities to compute the SIFT features of a greyscale image. Packages offered:

*libsiftfast.so - main library that contains the sift code

*siftfast - really fast SIFT implementation using SSE and OpenMP (also fixes some bugs from lowe's code, so outputs are similar, but not exact). The usage is very similar to David Lowe's sift program. To input a greyscale image test.pgm and get the SIFT keys test.key use

> siftfast < test.pgm > test.key

The format of test.key is pretty self explanatory:

#keys #key_dimension
(for #keys) [x y scale orientation (for #key_dimension)[value] ]


*siftfast.m - matlab/octave mex file that uses sift_fast, just do [frames,descr]=sift_mex(grayscale_image);
           frames is a 4xN matrix of [X,Y,scale,orientation],
           descr is a 128xN matrix of normalized descriptors
           To use the mex files, libsift_fast.so, Octave/Matlab need to be able to load it. A way to do it is to add its path to your LD_LIBRARY_PATH in your ~/.bashrc file, or in matlab with:
           setenv('LD_LIBRARY_PATH',[getenv('LD_LIBRARY_PATH') ':' libsift_directory]);
           

SIFT is based on
David G. Lowe, "Distinctive image features from scale-invariant keypoints,
"International Journal of Computer Vision, 60, 2 (2004), pp. 91-110.

Using the Octave/Matlab mex files
---------------------------------

the octave and matlab mex files are installed in $prefix/share/siftfast/octave and $prefix/share/siftfast/matlab where $prefix is the installation directory you've provided (via CMAKE_INSTALL_PREFIX). The default value for $prefix is /usr/local

Add the path via addpath('$prefix/share/siftfast/matlab'), and then in octave/matlab type:

> help siftfast

this should give a help file on how to use it.

Comparisons with other SIFT Code
--------------------------------

The default setting of siftfast produce the same output as Lowe's free sift program. On a quad-core Core2Duo machine with OpenMP, siftfast goes about 6x faster than lowe's sift program for 640x480 images.

libsiftfast's People

Contributors

fish2000 avatar rlovelett avatar

Stargazers

 avatar  avatar yangninghua avatar  avatar  avatar Yu Jia avatar Luca Lovagnini avatar menorki manil avatar David Stutz avatar Horace89 avatar Simone Gasparini avatar Dennis Watson avatar Aaron Ji avatar Jon avatar yann le paih avatar Fabien Castan avatar Rajdeep Mandrekar avatar  avatar  avatar  avatar

Watchers

 avatar James Cloos avatar  avatar  avatar

libsiftfast's Issues

CMakeError.log message

I have installed libboost-all-dev, libpython-dev, python-numpy, and my machine is:

  Linux abc-lubuntu 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

When I type cmake ., everything seems fine except:

-- Performing Test HAVE_ALL_PYTHON_HEADERS - Failed
-- failed to use boost python libraries, check if python-numpy is installed.

Also I could make and make install properly and run siftfast without problem, but the CMakeError.log said:

Performing C++ SOURCE FILE Test HAVE_ALL_PYTHON_HEADERS failed with the following output:
Change Dir: /home/abc/Code/libsiftfast-1.2-src/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec3470950927/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec3470950927.dir/build.make CMakeFiles/cmTryCompileExec3470950927.dir/build
make[1]: Entering directory `/home/abc/Code/libsiftfast-1.2-src/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/abc/Code/libsiftfast-1.2-src/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec3470950927.dir/src.cxx.o
/usr/bin/c++    -DHAVE_ALL_PYTHON_HEADERS -I/usr/include/python3.3m -I/usr/lib/python2.7/dist-packages/numpy/core/include    -o CMakeFiles/cmTryCompileExec3470950927.dir/src.cxx.o -c /home/abc/Code/libsiftfast-1.2-src/CMakeFiles/CMakeTmp/src.cxx
In file included from /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/ndarraytypes.h:1728:0,
                 from /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/ndarrayobject.h:17,
                 from /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/arrayobject.h:15,
                 from /home/abc/Code/libsiftfast-1.2-src/CMakeFiles/CMakeTmp/src.cxx:10:
/usr/lib/python2.7/dist-packages/numpy/core/include/numpy/npy_deprecated_api.h:11:2: warning: #warning "Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
 #warning "Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION"
  ^
Linking CXX executable cmTryCompileExec3470950927
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3470950927.dir/link.txt --verbose=1
/usr/bin/c++      -DHAVE_ALL_PYTHON_HEADERS    CMakeFiles/cmTryCompileExec3470950927.dir/src.cxx.o  -o cmTryCompileExec3470950927 -rdynamic -lpython3.3m -lboost_python 
CMakeFiles/cmTryCompileExec3470950927.dir/src.cxx.o: In function `__static_initialization_and_destruction_0(int, int)':
src.cxx:(.text+0x2f3): undefined reference to `boost::system::generic_category()'
src.cxx:(.text+0x2ff): undefined reference to `boost::system::generic_category()'
src.cxx:(.text+0x30b): undefined reference to `boost::system::system_category()'
collect2: error: ld returned 1 exit status
make[1]: Leaving directory `/home/abc/Code/libsiftfast-1.2-src/CMakeFiles/CMakeTmp'
make[1]: *** [cmTryCompileExec3470950927] Error 1
make: *** [cmTryCompileExec3470950927/fast] Error 2

Return value: 1
Source file was:

    #include <Python.h>
    #include <boost/thread/thread.hpp>
    #include <boost/thread/mutex.hpp>
    #include <boost/thread/condition.hpp>
    #include <boost/shared_ptr.hpp>
    #define PY_ARRAY_UNIQUE_SYMBOL PyArrayHandle
    #include <boost/python.hpp>
    #include <pyconfig.h>
    #include <numpy/arrayobject.h>
    int main()
    {
      return 0;
    }
Performing C++ SOURCE FILE Test HAVE_ALL_PYTHON_HEADERS failed with the following output:
Change Dir: /home/abc/Code/libsiftfast-1.2-src/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec1149567139/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec1149567139.dir/build.make CMakeFiles/cmTryCompileExec1149567139.dir/build
make[1]: Entering directory `/home/abc/Code/libsiftfast-1.2-src/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/abc/Code/libsiftfast-1.2-src/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec1149567139.dir/src.cxx.o
/usr/bin/c++    -DHAVE_ALL_PYTHON_HEADERS -I/usr/include/python3.3m -I/usr/lib/python2.7/dist-packages/numpy/core/include    -o CMakeFiles/cmTryCompileExec1149567139.dir/src.cxx.o -c /home/abc/Code/libsiftfast-1.2-src/CMakeFiles/CMakeTmp/src.cxx
In file included from /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/ndarraytypes.h:1728:0,
                 from /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/ndarrayobject.h:17,
                 from /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/arrayobject.h:15,
                 from /home/abc/Code/libsiftfast-1.2-src/CMakeFiles/CMakeTmp/src.cxx:10:
/usr/lib/python2.7/dist-packages/numpy/core/include/numpy/npy_deprecated_api.h:11:2: warning: #warning "Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
 #warning "Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION"
  ^
Linking CXX executable cmTryCompileExec1149567139
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1149567139.dir/link.txt --verbose=1
/usr/bin/c++      -DHAVE_ALL_PYTHON_HEADERS    CMakeFiles/cmTryCompileExec1149567139.dir/src.cxx.o  -o cmTryCompileExec1149567139 -rdynamic -lpython3.3m -lboost_python 
CMakeFiles/cmTryCompileExec1149567139.dir/src.cxx.o: In function `__static_initialization_and_destruction_0(int, int)':
src.cxx:(.text+0x2f3): undefined reference to `boost::system::generic_category()'
src.cxx:(.text+0x2ff): undefined reference to `boost::system::generic_category()'
src.cxx:(.text+0x30b): undefined reference to `boost::system::system_category()'
collect2: error: ld returned 1 exit status
make[1]: Leaving directory `/home/abc/Code/libsiftfast-1.2-src/CMakeFiles/CMakeTmp'
make[1]: *** [cmTryCompileExec1149567139] Error 1
make: *** [cmTryCompileExec1149567139/fast] Error 2

Return value: 1
Source file was:

    #include <Python.h>
    #include <boost/thread/thread.hpp>
    #include <boost/thread/mutex.hpp>
    #include <boost/thread/condition.hpp>
    #include <boost/shared_ptr.hpp>
    #define PY_ARRAY_UNIQUE_SYMBOL PyArrayHandle
    #include <boost/python.hpp>
    #include <pyconfig.h>
    #include <numpy/arrayobject.h>
    int main()
    {
      return 0;
    }
Performing C++ SOURCE FILE Test HAVE_ALL_PYTHON_HEADERS failed with the following output:
Change Dir: /home/abc/Code/libsiftfast-1.2-src/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec1952910785/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec1952910785.dir/build.make CMakeFiles/cmTryCompileExec1952910785.dir/build
make[1]: Entering directory `/home/abc/Code/libsiftfast-1.2-src/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/abc/Code/libsiftfast-1.2-src/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec1952910785.dir/src.cxx.o
/usr/bin/c++    -DHAVE_ALL_PYTHON_HEADERS -I/usr/include/python3.3m -I/usr/lib/python2.7/dist-packages/numpy/core/include    -o CMakeFiles/cmTryCompileExec1952910785.dir/src.cxx.o -c /home/abc/Code/libsiftfast-1.2-src/CMakeFiles/CMakeTmp/src.cxx
In file included from /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/ndarraytypes.h:1728:0,
                 from /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/ndarrayobject.h:17,
                 from /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/arrayobject.h:15,
                 from /home/abc/Code/libsiftfast-1.2-src/CMakeFiles/CMakeTmp/src.cxx:10:
/usr/lib/python2.7/dist-packages/numpy/core/include/numpy/npy_deprecated_api.h:11:2: warning: #warning "Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
 #warning "Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION"
  ^
Linking CXX executable cmTryCompileExec1952910785
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1952910785.dir/link.txt --verbose=1
/usr/bin/c++      -DHAVE_ALL_PYTHON_HEADERS    CMakeFiles/cmTryCompileExec1952910785.dir/src.cxx.o  -o cmTryCompileExec1952910785 -rdynamic -lpython3.3m -lboost_python 
CMakeFiles/cmTryCompileExec1952910785.dir/src.cxx.o: In function `__static_initialization_and_destruction_0(int, int)':
src.cxx:(.text+0x2f3): undefined reference to `boost::system::generic_category()'
src.cxx:(.text+0x2ff): undefined reference to `boost::system::generic_category()'
src.cxx:(.text+0x30b): undefined reference to `boost::system::system_category()'
collect2: error: ld returned 1 exit status
make[1]: Leaving directory `/home/abc/Code/libsiftfast-1.2-src/CMakeFiles/CMakeTmp'
make[1]: *** [cmTryCompileExec1952910785] Error 1
make: *** [cmTryCompileExec1952910785/fast] Error 2

Return value: 1
Source file was:

    #include <Python.h>
    #include <boost/thread/thread.hpp>
    #include <boost/thread/mutex.hpp>
    #include <boost/thread/condition.hpp>
    #include <boost/shared_ptr.hpp>
    #define PY_ARRAY_UNIQUE_SYMBOL PyArrayHandle
    #include <boost/python.hpp>
    #include <pyconfig.h>
    #include <numpy/arrayobject.h>
    int main()
    {
      return 0;
    }

I want to fix these errors, any idea?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.