Classes | Modules | Files | Typedefs | Functions
Interface
Robust Estimation

Intarfaces and implementation helper classes. More...

Collaboration diagram for Interface:

Classes

class  GeneralizedModelBuilder< ErrorAccumClassT >
class  Model< ModelT, DatumT >
class  ModelBuilder< ModelClassT >
 Interface for model builders used in RanSaC. More...
class  MultiSolutionModel< ErrorAccumulatorT, CAllocTT >
class  RanSaCOptions< ErrorAccumClassT >
class  SingleSolutionModel< ErrorAccumulatorT >
 Implements model inteface for models which have at most one solution. More...

Modules

 Error Functions
 Data Selectors

Files

file  model.h
 

Model and ModelBuilder interfaces used by RanSaC.


Typedefs

typedef Model< Matrix3d,
ImageMatch
EMatrixModel
typedef ModelBuilder
< EMatrixModel
EMatrixModelBuilder
typedef std::vector< bool > MaskVec
 mask vector for indication of inliers in data vector (RanSaC).

Functions

template<class ErrorAccumClassT >
shared_ptr< typename
ErrorAccumClassT::ModelClassT > 
ranSaC (shared_ptr< ModelBuilder< typename ErrorAccumClassT::ModelClassT > > model_builder, shared_ptr< DataSelector< typename ErrorAccumClassT::ModelClassT::DataVec > > data_selector, const typename ErrorAccumClassT::ModelClassT::DataVec &data)
 model estimation using ransac.

Detailed Description

Intarfaces and implementation helper classes.

In the following we describe how to use this module to implement specific robust estimation and show it on simple example. More useful examples can be found in EMatEst and RanSaC__triangulation.

Description of basic types:

The description of interface concepts:

Example:

class CircleAbsError : public DatumErrorFunc<double, Vector2d, double>{
      ErrorT operator()(const ModelT& model, const DatumT& obs){
          return abs(obs.norm() - model);
      }
}

template<ErrorAccumObjT> CircleModelBuilder : public GeneralizedModelBuilder<ErrorAccumObjT>{
    public:      
    CircleModelBuilder(const ErrorAccumClassT& _error_accum) : 
            GeneralizedModelBuilder<ErrorAccumClassT>(_error_accum) { } 
 
    virtual shared_ptr<typename ErrorAccumClassT::ModelClassT> operator()(
            const typename ErrorAccumClassT::ModelClassT::DataVec & selected){
        return shared_ptr<typename ErrorAccumClassT::ModelClassT>(
                new(SingleSolutionModel<ErrorAccumObjT>(1, selected, selected[0], this->error_accum)));
    }

}

double computeModel(const ALIGNED<Vector2d>::vector& data){
    typedef RealErrorMaxErrorAccumulator<CircleAbsError> EAccT;
    EAccT eacc(CircleAbsError());
    shared_ptr<ModeB> model_builder = CircleModelBuilder<EAccT>(eacc);

    //run 100 iterations of ransac.
    shared_ptr<typename EAccT::ModelClassT> model = ranSaC(
            model_builder, RandomDataSelector(data, 1, 100), data);

    if(model && (model->getInlierCount() > 0.2 * data.size())){
        std::cout << "model:" << model->getModel() << std::endl;
        std::cout << "# of inliers:" << model->getInlierCount() << std::endl;
        std::cout << "max error:" << model->getError() << std::endl;
        std::cout << "max inlier error:" << model->getInlierError() << std::endl;
    } else{
        std::cout << "did not find any model" << std::endl;
    }
}

Typedef Documentation

typedef Model<Matrix3d, ImageMatch> EMatrixModel

Definition at line 107 of file model.h.

Definition at line 213 of file model.h.

typedef std::vector<bool> MaskVec

mask vector for indication of inliers in data vector (RanSaC).

Definition at line 18 of file model.h.


Function Documentation

template<class ErrorAccumClassT >
shared_ptr<typename ErrorAccumClassT::ModelClassT> ranSaC ( shared_ptr< ModelBuilder< typename ErrorAccumClassT::ModelClassT > >  model_builder,
shared_ptr< DataSelector< typename ErrorAccumClassT::ModelClassT::DataVec > >  data_selector,
const typename ErrorAccumClassT::ModelClassT::DataVec &  data 
)

model estimation using ransac.

number of RanSaC iterations.

Parameters:
min_inliersminimum number of inliers for a given model to be accepted.

Definition at line 321 of file model_estimation.h.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines


pose_estimation
Author(s): Jiri Divis/jiridivis@gmail.com
autogenerated on Wed Mar 27 2013 21:00:13