Basic Image AlgorithmS Library
2.8.0
|
uses the unscented transformation to map a normal distribututed random variable using a nonlinear transformation More...
#include <MathAlgo/UnscentedTransform.hh>
Public Member Functions | |
void | AddDebugLevel (const long int lv) |
void | AddDebugLevel (const std::string &name) |
bool | DebugLevelIsSet (const long int lv) const |
bool | DebugLevelIsSet (const std::string &name) const |
int | GetDebugLevel () const |
std::ostream & | GetDebugStream () const |
void | GetDebugStream (std::ostream &os) const |
long int | Name2DebugLevel (const std::string &name) const |
looks up a debuglevel in the internal map, returns 0 if not found More... | |
long int | NewDebugLevel (const std::string &name) |
creates a new debuglevel More... | |
void | PrintDebugLevel (std::ostream &os=std::cout) const |
void | RemoveDebugLevel (const long int lv) |
void | RemoveDebugLevel (const std::string &name) |
void | SetAlpha (const double alpha) |
Sets the alpha parameter. More... | |
void | SetBeta (const double beta) |
Sets the beta parameter. More... | |
void | SetDebugLevel (const long int lv) |
void | SetDebugLevel (const std::string &name) |
void | SetDebugStream (const std::ostream &os) |
void | SetUseSVD (const bool use_svd) |
void | ShowDebugLevel (std::ostream &os=std::cout) const |
prints all internally known debuglevels More... | |
int | Transform (const Vector< double > &src_mean, const Matrix< double > &src_cov, Vector< double > &dst_mean, Matrix< double > &dst_cov) const |
computes the second order approximation of the transformations of the mean and the associated covariance for the point transformation Transform_(). More... | |
UnscentedTransform () | |
virtual | ~UnscentedTransform () |
Static Public Member Functions | |
static long int | GetGlobalDebugLevel () |
static void | SetGlobalDebugLevel (long int lev) |
Protected Member Functions | |
int | ComputeSigmaPoints_ (const Vector< double > &src_mean, const Matrix< double > &src_cov, std::vector< WeightedSigmaPoint > &sigma_points) const |
The covariance of a n-dimensional vector is approximated using 2n+1 so called sigma points with associated weights. More... | |
long | ConsumeNextFreeDebuglevel_ () |
returns the next available debuglevel More... | |
virtual int | Transform_ (const Vector< double > &src, Vector< double > &dst) const =0 |
implements a point transformation More... | |
Protected Attributes | |
long int | _liDebugLevel |
long int | _liNextDebugLevel |
new concept, debuglevel are managed here in the debug class More... | |
std::map< std::string, long int > | _String2Debuglevel |
double | Alpha_ |
the alpha parameter determines the spread of the sigma points More... | |
double | Beta_ |
beta is used to incorporate prior knowledge of the distribution of x. More... | |
double | Kappa_ |
kappa is a secondary scaling parameter. More... | |
bool | UseSVD_ |
Static Protected Attributes | |
static std::ostream | _zDebugStream |
static long int | GlobalDebugLevel = 0 |
uses the unscented transformation to map a normal distribututed random variable using a nonlinear transformation
See S.J.Julier and J.K.Uhlmann "A New Extension of the Kalman Filter to Nonlinear Systems" for a detailed description of the unscented transform. The unscented transform approximates the transformation of the covariance matrix up to second order of the according Taylor series.
To use this class derive from it and implement the non linear transformation function Transform_().
Definition at line 60 of file UnscentedTransform.hh.
UnscentedTransform::UnscentedTransform | ( | ) |
Definition at line 36 of file UnscentedTransform.cpp.
References BIAS::Debug::NewDebugLevel().
|
virtual |
Definition at line 47 of file UnscentedTransform.cpp.
|
inlineinherited |
Definition at line 355 of file Debug.hh.
Referenced by BIAS::GLProjectionParametersBase::AddDebugLevel(), BIAS::Triangulation::CorrectCorrespondences(), BIAS::FilterBase< InputStorageType, OutputStorageType >::FilterBase(), BIAS::ShowCamWxVideoSourceFactory::OpenDevice(), and BIAS::SceneOpenSceneGraph::SceneOpenSceneGraph().
|
inlineinherited |
|
protected |
The covariance of a n-dimensional vector is approximated using 2n+1 so called sigma points with associated weights.
The points and weights are computed in this function
Definition at line 138 of file UnscentedTransform.cpp.
References Alpha_, Beta_, BIAS::Debug::DebugLevelIsSet(), BIAS::Matrix< T >::GetCol(), BIAS::Matrix< T >::GetCols(), Kappa_, Lapack_Cholesky_SymmetricPositiveDefinit(), BIAS::Less(), TNT::Matrix< T >::num_cols(), TNT::Matrix< T >::num_rows(), BIAS::Vector< T >::Size(), BIAS::SVD::SqrtT(), and UseSVD_.
Referenced by Transform().
|
inlineprotectedinherited |
|
inlineinherited |
Definition at line 341 of file Debug.hh.
Referenced by BIAS::GenSynthMatches::_AddUniformDistributedOutliers(), BIAS::GenSynthMatches::_CreateCamMovement(), BIAS::GenSynthMatches::_CreateStatic2DPoints(), ComputeSigmaPoints_(), BIAS::Triangulation::CorrectCorrespondences(), BIAS::GenSynthMatches::GetGTNormalizedF(), BIAS::MonteCarloTransform::GetSamples_(), and BIAS::MonteCarloTransform::Transform().
|
inlineinherited |
|
inlineinherited |
Definition at line 332 of file Debug.hh.
Referenced by BIAS::listenthread(), BIAS::Image< StorageType >::operator=(), and BIAS::ImageBase::operator=().
|
inlineinherited |
|
inlineinherited |
|
inlinestaticinherited |
|
inlineinherited |
|
inlineinherited |
creates a new debuglevel
Definition at line 474 of file Debug.hh.
Referenced by BIAS::COSAC< SolutionType >::COSAC(), BIAS::ProjectionParametersPerspectiveDepth::Init(), BIAS::MonteCarloTransform::MonteCarloTransform(), BIAS::PMatrixEstimation::PMatrixEstimation(), BIAS::PreemptiveRANSAC< SolutionType >::PreemptiveRANSAC(), BIAS::RANSACPreKnowledge< SolutionType >::RANSACPreKnowledge(), BIAS::ROI::ROI(), BIAS::RotationAveraging::RotationAveraging(), BIAS::SceneOpenSceneGraph::SceneOpenSceneGraph(), BIAS::ThreeDOutOpenSceneGraph::ThreeDOutOpenSceneGraph(), BIAS::Triangulation::Triangulation(), and UnscentedTransform().
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inline |
Sets the alpha parameter.
The alpha parameter determines the spread of the sigma points
Definition at line 80 of file UnscentedTransform.hh.
|
inline |
Sets the beta parameter.
beta is used to incorporate prior knowledge of the distribution of x. For Gaussian distributions beta = 2.0 is optiomal
Definition at line 86 of file UnscentedTransform.hh.
|
inlineinherited |
Definition at line 318 of file Debug.hh.
Referenced by BIAS::ShowCamWxVideoSourceFactory::CreateBumbleBee(), BIAS::ShowCamWxVideoSourceFactory::CreateDCAM(), BIAS::VideoSource_MDcam::ScanBus(), BIAS::GLProjectionParametersBase::SetDebugLevel(), BIAS::VideoSource_Disk::VideoSource_Disk(), BIAS::VideoSource_DV2::VideoSource_DV2(), BIAS::VideoSource_DV::VideoSource_DV_Internal_Init_(), and BIAS::VideoSource_V4L::VideoSource_V4L().
|
inlineinherited |
|
inlineinherited |
|
inlinestaticinherited |
|
inline |
Definition at line 89 of file UnscentedTransform.hh.
|
inlineinherited |
|
virtual |
computes the second order approximation of the transformations of the mean and the associated covariance for the point transformation Transform_().
Implements BIAS::UncertaintyTransformBase.
Definition at line 52 of file UnscentedTransform.cpp.
References ComputeSigmaPoints_(), TNT::Matrix< T >::newsize(), TNT::Matrix< T >::num_cols(), TNT::Matrix< T >::num_rows(), BIAS::Vector< T >::OuterProduct(), BIAS::Vector< T >::SetZero(), BIAS::Matrix< T >::SetZero(), BIAS::Vector< T >::Size(), TNT::Vector< T >::size(), BIAS::Matrix< T >::Trace(), and Transform_().
Referenced by BIAS::EssentialPoint2Line::Compute(), BIAS::CovEuler2Quaternion::CTransform(), BIAS::Covariance3Dto2D::Project(), BIAS::Covariance3Dto2DHomg::Project(), and BIAS::Cov3Dto2DPoseCertain::Transform().
|
protectedpure virtual |
implements a point transformation
Implemented in BIAS::ProjectionParametersBase, BIAS::ProjectionParametersDynamicLoad, BIAS::CovTransformPose, BIAS::Covariance3Dto2DHomg, BIAS::Covariance3Dto2D, BIAS::EssentialPoint2Line, BIAS::Cov3Dto2DPoseCertain, BIAS::CovEuler2Quaternion, and BIAS::CovQuaternion2AxisAngle.
Referenced by Transform().
|
protectedinherited |
Definition at line 510 of file Debug.hh.
Referenced by BIAS::Debug::operator=(), and BIAS::ImageBase::operator=().
|
protectedinherited |
new concept, debuglevel are managed here in the debug class
Definition at line 516 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
protectedinherited |
Definition at line 517 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
staticprotectedinherited |
Definition at line 511 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
protected |
the alpha parameter determines the spread of the sigma points
Definition at line 94 of file UnscentedTransform.hh.
Referenced by ComputeSigmaPoints_().
|
protected |
beta is used to incorporate prior knowledge of the distribution of x.
For Gaussian distributions beta = 2.0 is optiomal
Definition at line 97 of file UnscentedTransform.hh.
Referenced by ComputeSigmaPoints_().
|
staticprotectedinherited |
|
protected |
kappa is a secondary scaling parameter.
In other papers from Uhlman kappa is fixed to 1.0
Definition at line 100 of file UnscentedTransform.hh.
Referenced by ComputeSigmaPoints_().
|
protected |
Definition at line 102 of file UnscentedTransform.hh.
Referenced by ComputeSigmaPoints_().