Skip to content

Reduction strategy and optimizer for turning higher order boolean functions (higher order meaning interactions among cliques more than just pairs of variables) into quadratic functions.

License

chenwang0517/higher-order-energy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This library provides an implementation of the higher-order reduction
strategy described in the paper:
   A Graph Cut Algorithm for Higher Order Markov Random Fields
   Alexander Fix, Artinan Gruber, Endre Boros, Ramin Zabih, ICCV 2011

The representation of higher-order energy functions, and the reduction to
quadratic form are implemented in the file higher-order-energy.hpp

Since the Fusion Move algorithm is a common use case for higher-order
functions, the files fusion-move.hpp and clique.hpp are also provided to make
it easy to set up a higher-order fusion move.

Note that this is a HEADER ONLY LIBRARY, as all the classes are templates
according to the type used for representing energy values, as well as the
maximum size of a clique. 

An example of this library is provided in the example directory. This is a
simple denoising algorithm, using a Field of Experts prior with
blur-and-random proposals. This is one of the experiments described in the
paper linked at the top of this readme.

This example code requires the following prerequisites:
-- A reasonably recent version of boost (tested with 1.48, but will likely
    work with much earlier versions).

-- A copy of the QPBO code, available from Vladimir Kolmogorov's website at
    http://pub.ist.ac.at/~vnk/software.html

    To compile the examples, you will need to download the file
    QPBO-v1.3.src.tar.gz and extract the contents into a directory named qpbo
    in the same directory as this README.

    The overall directory structure should look like

    ./
        README.txt
        include/
            clique.hpp
            fusion-move.hpp
            ...
        example/
            higher-order-example.cpp
            ...
        qpbo/
            block.h
            QPBO.h
            ...

To compile and run this example, the following should work
    cd example
    make
    make test

Copyright and license information are included in LICENSE.txt. This code is
provided under the MIT license, but if for whatever reason this doesn't suit
your needs, feel free to contact the author at afix@cs.cornell.edu.

About

Reduction strategy and optimizer for turning higher order boolean functions (higher order meaning interactions among cliques more than just pairs of variables) into quadratic functions.

Resources

License

Stars

Watchers

Forks

Packages

No packages published