Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

MODS (Matching On Demand with view Synthesis) is algorithm for wide-baseline matching.
https://github.com/ducha-aiki/mods

descriptor detector image-matching local-features ransac sift wbs wide-baseline-stereo wxbs

Last synced: about 2 months ago
JSON representation

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

Awesome Lists containing this project

README

        

## 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"
}