functional_m3n Documentation

functional_m3n: functional_m3n

Implementation of Max-Margin Markov Networks using functional gradient boosting as described in Munoz et al., "Contextual Classification with Functional Max-Margin Markov Networks", CVPR 2009.

The learning component of this package is under BSD License. The inference/classification component can either use the Graph Boost Library (Boost Software License) or another 3rd party library (from Vladimir Kolmogorov) which has a "research-only" license.

  • Homepage: http://pr.willowgarage.com/wiki/functional_m3n
  • functional_m3n is a package for training and classifying with Max-Margin Markov Networks using functional gradient boosting. The network structure can contain high-order cliques assuming a (Robust) Potts interaction model. This package does not have ROS dependencies, and is currently only dependent on OpenCV and Boost C++.

    This package implements/heavily uses techniques/ideas described in the following publications:
    [1] D. Munoz, J. A. Bagnell, N. Vandapel, and M. Hebert, "Contextual Classification with Functional Max-Margin Markov Networks", CVPR 2009
    [2] B. Taskar, C. Guestrin, and D. Koller, "Max-Margin Markov Networks", NIPS 2003
    [3] N. Ratliff, D. Silver, and J. A. Bagnell, "Learning to Search: Functional Gradient Techniques for Imitation Learning", Autonomous Robots 2009
    [4] P. Kohli, L. Ladicky, and P. H. S. Torr, "Robust Higher Order Potentials for Enforcing Label Consistency", CVPR 2008
    [5] P. Kohli, M. P. Kumar, and P. H. S. Torr, "P3 and Beyond: Solving Energies with Higher Order Cliques", CVPR 2007
    [6] V. Kolmogorov and R. Zabih, "What Energy Functions can be Minimized via Graph Cuts?", PAMI 2002
    [7] Y. Boykov, O. Veksler, and R. Zabih, "Fast Approximate Energy Minimization via Graph Cuts", PAMI 2001

    Code API

    The main two classes are

    A RandomField is a data structure that wraps around pre-computed features from your application. A RandomField::Node represents the primitive (e.g. pixel in an image) that you wish to classify. A RandomField::Clique creates dependencies among multiple RandomField::Node that should try to be classified the same label (e.g. segments in an image). Once you've created (multiple) RandomField (s) you can train a M3NModel and then classify other RandomFields.


    Creating RandomFields

    See RandomField::createNode and RandomField::createClique

    Training M3NModels

    See M3NModel::train

    Classifying with the M3NModel

    See M3NModel::infer

     All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


    functional_m3n
    Author(s): Daniel Munoz/ dmunoz@willowgarage.com
    autogenerated on Sun Apr 15 03:49:48 2012