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>
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 GraphicalModelType & | graphicalModel () 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_ |
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.
typedef ACC opengm::Multicut< GM, ACC >::AccumulationType |
Reimplemented from opengm::Inference< GM, ACC >.
Definition at line 70 of file multicut.hxx.
typedef boost::unordered_map<IndexType, LPIndexType> opengm::Multicut< GM, ACC >::EdgeMapType |
Definition at line 80 of file multicut.hxx.
typedef EmptyVisitor<Multicut<GM,ACC> > opengm::Multicut< GM, ACC >::EmptyVisitorType |
Definition at line 75 of file multicut.hxx.
typedef GM opengm::Multicut< GM, ACC >::GraphicalModelType |
Reimplemented from opengm::Inference< GM, ACC >.
Definition at line 71 of file multicut.hxx.
typedef size_t opengm::Multicut< GM, ACC >::LPIndexType |
Definition at line 73 of file multicut.hxx.
typedef boost::unordered_set<IndexType> opengm::Multicut< GM, ACC >::MYSET |
Definition at line 81 of file multicut.hxx.
typedef TimingVisitor<Multicut<GM,ACC> > opengm::Multicut< GM, ACC >::TimingVisitorType |
Definition at line 76 of file multicut.hxx.
typedef VerboseVisitor<Multicut<GM,ACC> > opengm::Multicut< GM, ACC >::VerboseVisitorType |
Definition at line 74 of file multicut.hxx.
opengm::Multicut< GM, ACC >::~Multicut | ( | ) | [inline, virtual] |
Definition at line 326 of file multicut.hxx.
opengm::Multicut< GM, ACC >::Multicut | ( | const GraphicalModelType & | gm, | |
Parameter | para = Parameter() | |||
) | [inline] |
Definition at line 332 of file multicut.hxx.
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.
virtual InferenceTermination opengm::Multicut< GM, ACC >::arg | ( | std::vector< LabelType > & | arg, | |
const | argIndex = 1 | |||
) | const [virtual] |
output a solution
[out] | arg | labeling |
argIndex | solution index (0=best, 1=second best, etc.) |
Reimplemented from opengm::Inference< GM, 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.
ValueType opengm::Multicut< GM, ACC >::calcBound | ( | ) | [inline] |
Definition at line 125 of file multicut.hxx.
Multicut< GM, ACC >::ValueType opengm::Multicut< GM, ACC >::evaluate | ( | std::vector< LabelType > & | conf | ) | const [inline] |
Definition at line 1688 of file multicut.hxx.
std::vector< double > opengm::Multicut< GM, ACC >::getEdgeLabeling | ( | ) | const [inline] |
Definition at line 1867 of file multicut.hxx.
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.
InferenceTermination opengm::Multicut< GM, ACC >::infer | ( | VisitorType & | mcv | ) | [inline] |
InferenceTermination opengm::Multicut< GM, ACC >::infer | ( | ) | [inline, virtual] |
Implements opengm::Inference< GM, ACC >.
Definition at line 1163 of file multicut.hxx.
virtual std::string opengm::Multicut< GM, ACC >::name | ( | ) | const [inline, virtual] |
Implements opengm::Inference< GM, ACC >.
Definition at line 118 of file multicut.hxx.
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.
size_t opengm::Multicut< GM, ACC >::constraintCounter_ |
Definition at line 134 of file multicut.hxx.
size_t opengm::Multicut< GM, ACC >::inferenceState_ |
Definition at line 133 of file multicut.hxx.
opengm::Multicut< GM, ACC >::OPENGM_GM_TYPE_TYPEDEFS |
Definition at line 72 of file multicut.hxx.