1. SVM

An implementation of the "MP-BCFW" algorithm described in


An implementation of the "SRMP" algorithm described in

SRMP generalizes TRW-S to higher-order graphical models. For pairwise graphical models the original implementation of TRW-S should be faster (e.g. by a factor of 3 for the case of two labels, in one informal test). For a larger number of labels the difference should be smaller: the runtime would be dominated by distance transform operations whose implementations are similar.


An implementation of the algorithm described in


An implementation of a minimum cost perfect matching algorithm described in

(The experiments in the paper were performed using version 1.0. A description of changes is here.)

The code can also be used for computing a maximum (non-perfect) matching: the latter problem can be reduced to a perfect matching problem via a reduction described in section 1.5.1 of Guido Schäfer's Master's thesis. This reduction doubles the size of the graph.

The code above is licensed for research purposes only. Commercial licensing of Blossom V is available through the UCL Business e-licensing website.


An implementation of a dual decomposition technique for the graph matching optimization problem described in


An implementation of the maxflow algorithm described in

Note that all experimental results reported in the paper are based on original implementation of our algorithm that we developed while at Siemens Corp. Research (Princeton, NJ). We are not allowed to distribute that version. Below is a comparable version that I later independently re-implemented based on published materials.

Old version 2.22 is still available. Commercial licensing of MaxFlow (vsn 2.22) is available through the UCL Business e-licensing website.

7. QPBO.

Implements algorithms for minimizing functions of binary variables with unary and pairwise terms based on roof duality described in the following papers:


An implementation of the primal-dual method for the dual of the convex network flow problem ("Convex Markov Random Fields") described in


An implementation of the three stereo algorithms described in the papers


Tested under windows, Visual C++ 6.0 compiler and unix (SunOS 5.8 and RedHat Linux 7.0, GNU c++ compiler).

(NEW: an option of truncated linear smoothness term instead of Potts has been added).

Back to Main Page