Code Monkey home page Code Monkey logo

ducha-aiki / mods Goto Github PK

View Code? Open in Web Editor NEW
87.0 16.0 16.0 33.33 MB

MODS (Matching On Demand with view Synthesis) is algorithm for wide-baseline matching.

Home Page: http://cmp.felk.cvut.cz/wbs/

License: GNU General Public License v2.0

CMake 0.68% C++ 37.20% C 42.61% Makefile 2.26% Assembly 0.13% MATLAB 9.58% HTML 3.71% CSS 0.76% Python 1.80% Clean 0.16% TeX 0.16% Shell 0.04% Objective-C 0.66% Roff 0.26%
image-matching descriptor local-features ransac detector sift wxbs wbs wide-baseline-stereo

mods's Introduction

MODS: Image Matching with On-Demand Synthesis.

NEW: Simplified MODS with external deep CNN descriptors https://github.com/ducha-aiki/mods-light-zmq

Binaries can be downloaded here

https://github.com/ducha-aiki/mods/releases/

Compilation. MODS depends on OpenCV version 2.4.9 and LAPACK

How to compile MODS on clean ubuntu 14.04 (tested on amazon AWS instance)

sudo apt-get install git cmake gfortran libblas-dev liblapack-dev build-essential gcc-multilib libopencv-dev python-opencv

sudo add-apt-repository --yes ppa:xqms/opencv-nonfree
sudo apt-get update
sudo apt-get install libopencv-nonfree-dev

if you want to use edge foci detector and bice descriptor from Microsoft, you will need to install wine as well: sudo apt-get install wine git clone cd mods

cd vlfeat
make

cd ../build
cmake ..
make

how to compile MODS on clean Windows 10

install cmake https://cmake.org/download/

install mingw http://www.mingw.org/

get lapack https://icl.cs.utk.edu/lapack-for-windows/lapack/#libraries_mingw

add $mods_source_dir/lapack_for_windows/lib to your Path environment variable

install OpenCV 2.4.8 If you have trouble compiling it, use this solution http://stackoverflow.com/a/21214333

Add opencv install root/bin to your path environmental variable

Put opencv install root CMakeLists.txt to SET (OpenCV_DIR "c:/opencv-2.4.8/opencv/sources/build/install")

cd build
cmake ..

Make sure, that CMake generates mingw32 make files, not Visual Studio.

mingw32-make

Example of use:

Linux:

./mods examples/cat.png examples/cat2.png out1.png out2.png k1.txt k2.txt m.txt l.txt 0 0 examples/cat.txt config_iter_mods_cviu.ini iters_mods_cviu.ini

Windows:

mods.exe examples/cat.png examples/cat2.png out1.png out2.png k1.txt k2.txt m.txt l.txt 0 0 examples/cat.txt config_iter_mods_cviu.ini iters_mods_cviu.ini

Configurations:

config_iter_cviu.ini, iters_cviu.ini - version, created to hangle extreme view changes.

Described in
"MODS: Fast and Robust Method for Two-View Matching" by Dmytro Mishkin, Jiri Matas, Michal Perdoch. http://arxiv.org/abs/1503.02619.

config_iter_wxbs.ini, iters_wxbs.ini - version, described in .

"WxBS: Wide Baseline Stereo Generalizations" by Dmytro Mishkin, Jiri Matas, Michal Perdoch, Karel Lenc. http://arxiv.org/abs/1504.06603 It handles extreme appearance and geometrical changes. A bit slower than previous, but much more powerful. If use, please cite corresponding papers.

How to save detectors\descriptors and use them for matching

Note that exctract features takes only one step, so you may need to edit iters*.ini file to be able to extract features from next steps. See an example in iters_mods_cviu_onestep.ini

./extract_features examples/cat.png  cat1.txt config_iter_cviu.ini iters_mods_cviu_onestep.ini
./extract_features examples/cat2.png  cat2.txt config_iter_cviu.ini iters_mods_cviu_onestep.ini

Now loading and matching ./mods examples/cat.png examples/cat2.png out1.png out2.png cat1.txt cat2.txt m.txt l.txt 0 0 examples/cat.txt config_iter_mods_cviu.ini iters_mods_cviu_onestep.ini 1

Citation

Please cite us if you use this code:

@article{Mishkin2015MODS,
      title = "MODS: Fast and robust method for two-view matching ",
      journal = "Computer Vision and Image Understanding ",
      year = "2015",
      issn = "1077-3142",
      doi = "http://dx.doi.org/10.1016/j.cviu.2015.08.005",
      url = "http://www.sciencedirect.com/science/article/pii/S1077314215001800",
      author = "Dmytro Mishkin and Jiri Matas and Michal Perdoch"
      }

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.