OpenGM  2.3.x
Discrete Graphical Model Library
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
opengm::AlphaExpansionFusion< GM, ACC > Class Template Reference

Alpha-Expansion-Fusion Algorithm uses the code of Alexander Fix to reduce the higer order moves to binary pairwise problems which are solved by QPBO as described in Alexander Fix, Artinan Gruber, Endre Boros, Ramin Zabih: A Graph Cut Algorithm for Higher Order Markov Random Fields, ICCV 2011. More...

#include <alphaexpansionfusion.hxx>

+ Inheritance diagram for opengm::AlphaExpansionFusion< GM, ACC >:
+ Collaboration diagram for opengm::AlphaExpansionFusion< GM, ACC >:

Classes

struct  Parameter
 
struct  RebindGm
 
struct  RebindGmAndAcc
 

Public Types

typedef GM GraphicalModelType
 
typedef ACC AccumulationType
 
typedef visitors::VerboseVisitor< AlphaExpansionFusion< GM, ACC > > VerboseVisitorType
 
typedef visitors::EmptyVisitor< AlphaExpansionFusion< GM, ACC > > EmptyVisitorType
 
typedef visitors::TimingVisitor< AlphaExpansionFusion< GM, ACC > > TimingVisitorType
 
- Public Types inherited from opengm::Inference< GM, ACC >
typedef GM GraphicalModelType
 
typedef ACC AccumulationType
 
typedef GraphicalModelType::LabelType LabelType
 
typedef GraphicalModelType::IndexType IndexType
 
typedef GraphicalModelType::ValueType ValueType
 
typedef GraphicalModelType::OperatorType OperatorType
 
typedef GraphicalModelType::FactorType FactorType
 
typedef GraphicalModelType::IndependentFactorType IndependentFactorType
 
typedef GraphicalModelType::FunctionIdentifier FunctionIdentifier
 

Public Member Functions

 AlphaExpansionFusion (const GraphicalModelType &, Parameter para=Parameter())
 
std::string name () const
 
const GraphicalModelTypegraphicalModel () const
 
template<class StateIterator >
void setState (StateIterator, StateIterator)
 
InferenceTermination infer ()
 
void reset ()
 
template<class Visitor >
InferenceTermination infer (Visitor &visitor)
 
void setStartingPoint (typename std::vector< LabelType >::const_iterator)
 set initial labeling More...
 
InferenceTermination arg (std::vector< LabelType > &, const size_t=1) const
 output a solution More...
 
- Public Member Functions inherited from opengm::Inference< GM, ACC >
virtual ~Inference ()
 
virtual InferenceTermination args (std::vector< std::vector< LabelType > > &) const
 
virtual InferenceTermination marginal (const size_t, IndependentFactorType &) const
 output a solution for a marginal for a specific variable More...
 
virtual InferenceTermination factorMarginal (const size_t, IndependentFactorType &) const
 output a solution for a marginal for all variables connected to a factor More...
 
virtual ValueType bound () const
 return a bound on the solution More...
 
virtual ValueType value () const
 return the solution (value) More...
 
InferenceTermination constrainedOptimum (std::vector< IndexType > &, std::vector< LabelType > &, std::vector< LabelType > &) const
 
InferenceTermination modeFromMarginal (std::vector< LabelType > &) const
 
InferenceTermination modeFromFactorMarginal (std::vector< LabelType > &) const
 

Public Attributes

 OPENGM_GM_TYPE_TYPEDEFS
 

Detailed Description

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

Alpha-Expansion-Fusion Algorithm uses the code of Alexander Fix to reduce the higer order moves to binary pairwise problems which are solved by QPBO as described in Alexander Fix, Artinan Gruber, Endre Boros, Ramin Zabih: A Graph Cut Algorithm for Higher Order Markov Random Fields, ICCV 2011.

Corresponding author: Joerg Hendrik Kappes

Definition at line 20 of file alphaexpansionfusion.hxx.

Member Typedef Documentation

§ AccumulationType

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

Definition at line 24 of file alphaexpansionfusion.hxx.

§ EmptyVisitorType

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

Definition at line 27 of file alphaexpansionfusion.hxx.

§ GraphicalModelType

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

Definition at line 23 of file alphaexpansionfusion.hxx.

§ TimingVisitorType

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

Definition at line 28 of file alphaexpansionfusion.hxx.

§ VerboseVisitorType

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

Definition at line 26 of file alphaexpansionfusion.hxx.

Constructor & Destructor Documentation

§ AlphaExpansionFusion()

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

Definition at line 160 of file alphaexpansionfusion.hxx.

+ Here is the caller graph for this function:

Member Function Documentation

§ arg()

template<class GM , class ACC >
InferenceTermination opengm::AlphaExpansionFusion< GM, ACC >::arg ( std::vector< LabelType > &  arg,
const size_t  argIndex = 1 
) const
inlinevirtual

output a solution

Parameters
[out]arglabeling
argIndexsolution index (1=best, 2=second best, etc.)

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

Definition at line 501 of file alphaexpansionfusion.hxx.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

§ graphicalModel()

template<class GM , class ACC >
const AlphaExpansionFusion< GM, ACC >::GraphicalModelType & opengm::AlphaExpansionFusion< GM, ACC >::graphicalModel ( ) const
inlinevirtual

Implements opengm::Inference< GM, ACC >.

Definition at line 126 of file alphaexpansionfusion.hxx.

+ Here is the call graph for this function:

§ infer() [1/2]

template<class GM , class ACC >
InferenceTermination opengm::AlphaExpansionFusion< GM, ACC >::infer ( )
inlinevirtual

Implements opengm::Inference< GM, ACC >.

Definition at line 274 of file alphaexpansionfusion.hxx.

§ infer() [2/2]

template<class GM , class ACC >
template<class Visitor >
InferenceTermination opengm::AlphaExpansionFusion< GM, ACC >::infer ( Visitor &  visitor)

Definition at line 284 of file alphaexpansionfusion.hxx.

+ Here is the call graph for this function:

§ name()

template<class GM , class ACC >
std::string opengm::AlphaExpansionFusion< GM, ACC >::name ( ) const
inlinevirtual

Implements opengm::Inference< GM, ACC >.

Definition at line 119 of file alphaexpansionfusion.hxx.

§ reset()

template<class GM , class ACC >
void opengm::AlphaExpansionFusion< GM, ACC >::reset ( )
inline

Definition at line 214 of file alphaexpansionfusion.hxx.

§ setStartingPoint()

template<class GM, class ACC>
void opengm::AlphaExpansionFusion< GM, ACC >::setStartingPoint ( typename std::vector< LabelType >::const_iterator  begin)
inlinevirtual

set initial labeling

Parameters
beginiterator to the beginning of a sequence of labels

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

Definition at line 146 of file alphaexpansionfusion.hxx.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

§ setState()

template<class GM , class ACC >
template<class StateIterator >
void opengm::AlphaExpansionFusion< GM, ACC >::setState ( StateIterator  begin,
StateIterator  end 
)
inline

Definition at line 135 of file alphaexpansionfusion.hxx.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

§ OPENGM_GM_TYPE_TYPEDEFS

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

Definition at line 25 of file alphaexpansionfusion.hxx.