opengm::Multicut< GM, ACC > Class Template Reference

Multicut Algorithm

[1] J. Kappes, M. Speth, B. Andres, G. Reinelt and C. Schnoerr, "Globally Optimal Image Partitioning by Multicuts", EMMCVPR 2011
[2] J. Kappes, M. Speth, G. Reinelt and C. Schnoerr, "Higher-order Segmentation via Multicuts", Technical Report (http://ipa.iwr.uni-heidelberg.de/ipabib/Papers/kappes-2013-multicut.pdf)
. More...

#include <multicut.hxx>

Inheritance diagram for opengm::Multicut< GM, ACC >:
Inheritance graph
[legend]
Collaboration diagram for opengm::Multicut< GM, ACC >:
Collaboration graph
[legend]

List of all members.

Classes

struct  Parameter

Public Types

typedef ACC AccumulationType
typedef GM GraphicalModelType
typedef size_t LPIndexType
typedef VerboseVisitor
< Multicut< GM, ACC > > 
VerboseVisitorType
typedef EmptyVisitor< Multicut
< GM, ACC > > 
EmptyVisitorType
typedef TimingVisitor
< Multicut< GM, ACC > > 
TimingVisitorType
typedef boost::unordered_map
< IndexType, LPIndexType
EdgeMapType
typedef boost::unordered_set
< IndexType
MYSET

Public Member Functions

virtual ~Multicut ()
 Multicut (const GraphicalModelType &, Parameter para=Parameter())
virtual std::string name () const
const GraphicalModelTypegraphicalModel () const
virtual InferenceTermination infer ()
template<class VisitorType >
InferenceTermination infer (VisitorType &)
virtual InferenceTermination arg (std::vector< LabelType > &, const size_t=1) const
 output a solution
ValueType bound () const
 return a bound on the solution
ValueType value () const
 return the solution (value)
ValueType calcBound ()
ValueType evaluate (std::vector< LabelType > &) const
template<class LPVariableIndexIterator , class CoefficientIterator >
void addConstraint (LPVariableIndexIterator, LPVariableIndexIterator, CoefficientIterator, const ValueType &, const ValueType &)
std::vector< double > getEdgeLabeling () const

Public Attributes

 OPENGM_GM_TYPE_TYPEDEFS
size_t inferenceState_
size_t constraintCounter_

Detailed Description

template<class GM, class ACC>
class opengm::Multicut< GM, ACC >

Multicut Algorithm

[1] J. Kappes, M. Speth, B. Andres, G. Reinelt and C. Schnoerr, "Globally Optimal Image Partitioning by Multicuts", EMMCVPR 2011
[2] J. Kappes, M. Speth, G. Reinelt and C. Schnoerr, "Higher-order Segmentation via Multicuts", Technical Report (http://ipa.iwr.uni-heidelberg.de/ipabib/Papers/kappes-2013-multicut.pdf)
.

This code was also used in [3] J. Kappes, M. Speth, G. Reinelt, and C. Schnoerr, “Towards Efficient and Exact MAP-Inference for Large Scale Discrete Computer Vision Problems via Combinatorial Optimization”. CVPR, 2013
[4] J. Kappes, B. Andres, F. Hamprecht, C. Schnoerr, S. Nowozin, D. Batra, S. Kim, B. Kausler, J. Lellmann, N. Komodakis, and C. Rother, “A Comparative Study of Modern Inference Techniques for Discrete Energy Minimization Problem”, CVPR, 2013.

Multicut-Algo :

see [2] for further details.

Definition at line 67 of file multicut.hxx.


Member Typedef Documentation

template<class GM, class ACC>
typedef ACC opengm::Multicut< GM, ACC >::AccumulationType

Reimplemented from opengm::Inference< GM, ACC >.

Definition at line 70 of file multicut.hxx.

template<class GM, class ACC>
typedef boost::unordered_map<IndexType, LPIndexType> opengm::Multicut< GM, ACC >::EdgeMapType

Definition at line 80 of file multicut.hxx.

template<class GM, class ACC>
typedef EmptyVisitor<Multicut<GM,ACC> > opengm::Multicut< GM, ACC >::EmptyVisitorType

Definition at line 75 of file multicut.hxx.

template<class GM, class ACC>
typedef GM opengm::Multicut< GM, ACC >::GraphicalModelType

Reimplemented from opengm::Inference< GM, ACC >.

Definition at line 71 of file multicut.hxx.

template<class GM, class ACC>
typedef size_t opengm::Multicut< GM, ACC >::LPIndexType

Definition at line 73 of file multicut.hxx.

template<class GM, class ACC>
typedef boost::unordered_set<IndexType> opengm::Multicut< GM, ACC >::MYSET

Definition at line 81 of file multicut.hxx.

template<class GM, class ACC>
typedef TimingVisitor<Multicut<GM,ACC> > opengm::Multicut< GM, ACC >::TimingVisitorType

Definition at line 76 of file multicut.hxx.

template<class GM, class ACC>
typedef VerboseVisitor<Multicut<GM,ACC> > opengm::Multicut< GM, ACC >::VerboseVisitorType

Definition at line 74 of file multicut.hxx.


Constructor & Destructor Documentation

template<class GM , class ACC >
opengm::Multicut< GM, ACC >::~Multicut (  )  [inline, virtual]

Definition at line 326 of file multicut.hxx.

template<class GM , class ACC >
opengm::Multicut< GM, ACC >::Multicut ( const GraphicalModelType gm,
Parameter  para = Parameter() 
) [inline]

Definition at line 332 of file multicut.hxx.


Member Function Documentation

template<class GM , class ACC >
template<class LPVariableIndexIterator , class CoefficientIterator >
void opengm::Multicut< GM, ACC >::addConstraint ( LPVariableIndexIterator  viBegin,
LPVariableIndexIterator  viEnd,
CoefficientIterator  coefficient,
const ValueType lowerBound,
const ValueType upperBound 
) [inline]

Definition at line 1883 of file multicut.hxx.

template<class GM, class ACC>
virtual InferenceTermination opengm::Multicut< GM, ACC >::arg ( std::vector< LabelType > &  arg,
const   argIndex = 1 
) const [virtual]

output a solution

Parameters:
[out] arg labeling
argIndex solution index (0=best, 1=second best, etc.)

Reimplemented from opengm::Inference< GM, ACC >.

Here is the caller graph for this function:

template<class GM , class ACC >
GM::ValueType opengm::Multicut< GM, ACC >::bound (  )  const [inline, virtual]

return a bound on the solution

Reimplemented from opengm::Inference< GM, ACC >.

Definition at line 1704 of file multicut.hxx.

template<class GM, class ACC>
ValueType opengm::Multicut< GM, ACC >::calcBound (  )  [inline]

Definition at line 125 of file multicut.hxx.

template<class GM , class ACC >
Multicut< GM, ACC >::ValueType opengm::Multicut< GM, ACC >::evaluate ( std::vector< LabelType > &  conf  )  const [inline]

Definition at line 1688 of file multicut.hxx.

template<class GM , class ACC >
std::vector< double > opengm::Multicut< GM, ACC >::getEdgeLabeling (  )  const [inline]

Definition at line 1867 of file multicut.hxx.

template<class GM , class ACC >
const Multicut< GM, ACC >::GraphicalModelType & opengm::Multicut< GM, ACC >::graphicalModel (  )  const [inline, virtual]

Implements opengm::Inference< GM, ACC >.

Definition at line 1698 of file multicut.hxx.

template<class GM , class ACC >
template<class VisitorType >
InferenceTermination opengm::Multicut< GM, ACC >::infer ( VisitorType &  mcv  )  [inline]

Definition at line 1201 of file multicut.hxx.

Here is the call graph for this function:

template<class GM , class ACC >
InferenceTermination opengm::Multicut< GM, ACC >::infer (  )  [inline, virtual]

Implements opengm::Inference< GM, ACC >.

Definition at line 1163 of file multicut.hxx.

template<class GM, class ACC>
virtual std::string opengm::Multicut< GM, ACC >::name (  )  const [inline, virtual]

Implements opengm::Inference< GM, ACC >.

Definition at line 118 of file multicut.hxx.

template<class GM , class ACC >
GM::ValueType opengm::Multicut< GM, ACC >::value (  )  const [inline, virtual]

return the solution (value)

Reimplemented from opengm::Inference< GM, ACC >.

Definition at line 1710 of file multicut.hxx.

Here is the call graph for this function:


Member Data Documentation

template<class GM, class ACC>
size_t opengm::Multicut< GM, ACC >::constraintCounter_

Definition at line 134 of file multicut.hxx.

template<class GM, class ACC>
size_t opengm::Multicut< GM, ACC >::inferenceState_

Definition at line 133 of file multicut.hxx.

template<class GM, class ACC>
opengm::Multicut< GM, ACC >::OPENGM_GM_TYPE_TYPEDEFS

Definition at line 72 of file multicut.hxx.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Mon Jun 17 16:31:12 2013 for OpenGM by  doxygen 1.6.3