Efficient MRF Deformation Model for Non-Rigid Image Matching

Download / Startup Guide

Introduction

We are generally interested in the research and development of better image registration methods, so only the optimization is implemented in C++ and auxiliary higher-level image processing is done in matlab. Basically we try to do as much work in matlab as possible and we do not have intention to develop a stand-alone library. Currently, we only propose win32 compilation.

If you use this software please cite the paper Shekhovtsov, I. Kovtun, V. Hlavac: Efficient MRF Deformation Model for Non-Rigid Image Matching, Computer Vision and Image Understanding 112(2008), pp. 91-99.

License & disclaimer

Copyright 2008 Alexander Shekhovtsov (shekhovt@cmp.felk.cvut.cz)
This software can be used for research purposes only.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Other Related Software

Deformable Registration using Discrete Optimization (DROP) http://campar.in.tum.de/Main/Drop
Image Registration Toolkit (ITK) http://www.doc.ic.ac.uk/~dr/software/
Fast and flexible image registration toolbox (FLIRT) http://www.math.mu-luebeck.de/safir/software.shtml
Free Form Shape Registration and Establishing Correspondences for Statistical shape Modeling http://www.cse.lehigh.edu/~huang/Software.htm

Update 19.06.2017

Source code available at gitlab. CMakeLists.txt is provided in dev/projects.

Download

Download registration_2008 matlab code with win32/linux mexes
Download registration_2008 Source C++ and matlab code (see Build instructions)
Download TRW-S matlab code with compiled win32/linux mex

Documentation

There are matlab help lines in the main functions and the following examples:
Example1 – simplest example
Example2 – example with custom similarity function
Example3 – example with image masks and a two step multi-scale processing

General implementation issues

We compute the data costs table for each position of each block by a stand-alone mex (see matching_cost_q.m, where the algorithm is prototyped). This could be then passed to any discrete optimization method. Also it can be readily input to the TRW-S algorithm, but since we use special form of regularization which allows faster updates and change the order of updates, we employ additional c++ code (see deform_match_mex.cpp, deform_match.cpp).

Handling of deformations

We represent the deformation d as a dense displacement field. It maps domain of I1 to domain of I2. This allows easy rendering of the back-deformed image I2 (via interpolated look-up), but not the deformed image I (need inverting the mapping), so we always show back-deformed I2. This might be confusing especially when doing compositions of deformations. Our matlab notation d(I2) may also appear confusing as in fact it is evaluating image J such that J(t) = I2(d(t)).

Source code/ other platforms

In C++ I use a lot of different stuff for memory management, working with arrays, vectors, etc. So one might find it not too very easy to exploit my code. It is platform independent in the sense that it only uses standard libraries. We made the code available under the conditions below. Currently can be compiled with msvc and gcc3.3.6. We tested win32 platform and linux 32bit platform.

Contacts

Alexander Shekhovtsov,
Center for Machine Perception Czech Technical University
Faculty of Electrical Engineering  Department of Cybernetics
Karlovo nam. 13, 121 35 Praha 2, Czech Republic
shekhovt@cmp.felk.cvut.cz
http://cmp.felk.cvut.cz/~shekhovt/