Visual Servoing Platform
version 3.3.0 under development (2020-02-17)
|
#include <visp3/core/vpRobust.h>
Public Types | |
enum | vpRobustEstimatorType { TUKEY, CAUCHY, HUBER } |
Public Member Functions | |
vpRobust (unsigned int n_data) | |
vpRobust () | |
vpRobust (const vpRobust &other) | |
virtual | ~vpRobust () |
void | MEstimator (const vpRobustEstimatorType method, const vpColVector &residues, vpColVector &weights) |
void | MEstimator (const vpRobustEstimatorType method, const vpColVector &residues, const vpColVector &all_residues, vpColVector &weights) |
vpRobust & | operator= (const vpRobust &other) |
vpRobust & | operator= (const vpRobust &&other) |
void | resize (unsigned int n_data) |
void | setIteration (unsigned int iter) |
void | setThreshold (double noise_threshold) |
vpColVector | simultMEstimator (vpColVector &residues) |
Contains an M-Estimator and various influence function.
Supported methods: M-estimation, Tukey, Cauchy and Huber
Definition at line 58 of file vpRobust.h.
Enumeration of influence functions.
Enumerator | |
---|---|
TUKEY | |
CAUCHY | |
HUBER |
Definition at line 63 of file vpRobust.h.
|
explicit |
Default Constructor.
Constructor.
n_data | : Size of the data vector. |
Definition at line 65 of file vpRobust.cpp.
References vpColVector::resize(), and vpCDEBUG.
vpRobust::vpRobust | ( | ) |
Default constructor.
Definition at line 79 of file vpRobust.cpp.
vpRobust::vpRobust | ( | const vpRobust & | other | ) |
Copy constructor.
Definition at line 87 of file vpRobust.cpp.
|
inlinevirtual |
Destructor.
Definition at line 91 of file vpRobust.h.
void vpRobust::MEstimator | ( | const vpRobustEstimatorType | method, |
const vpColVector & | residues, | ||
vpColVector & | weights | ||
) |
Compute the weights according a residue vector and a PsiFunction.
Calculate an Mestimate given a particular loss function using MAD (Median Absolute Deviation) as a scale estimate at each iteration.
method | : Type of M-Estimator : |
residues | : Residues used in the previous formula. |
weights | : Vector of weights . Values are in [0, 1]. A value near zero means that the data is an outlier. This vector must have the same size residue vector. |
Definition at line 176 of file vpRobust.cpp.
References CAUCHY, vpArray2D< Type >::getRows(), HUBER, resize(), TUKEY, and vpCDEBUG.
Referenced by vpPoseFeatures::computePose(), vpMbEdgeKltTracker::computeVVS(), vpMbEdgeTracker::computeVVSWeights(), vpMbTracker::computeVVSWeights(), vpMeLine::leastSquare(), vpPose::poseVirtualVSrobust(), vpMeEllipse::printParameters(), and vpHomography::robust().
void vpRobust::MEstimator | ( | const vpRobustEstimatorType | method, |
const vpColVector & | residues, | ||
const vpColVector & | all_residues, | ||
vpColVector & | weights | ||
) |
Compute the weights according a residue vector and a PsiFunction.
Definition at line 231 of file vpRobust.cpp.
References CAUCHY, vpArray2D< Type >::data, vpArray2D< Type >::getRows(), HUBER, resize(), vpColVector::resize(), TUKEY, and vpCDEBUG.
Copy operator.
Definition at line 92 of file vpRobust.cpp.
Move operator.
Definition at line 109 of file vpRobust.cpp.
void vpRobust::resize | ( | unsigned int | n_data | ) |
Resize containers for sort methods.
Resize containers.
n_data | : size of input data vector. |
Definition at line 128 of file vpRobust.cpp.
References vpColVector::resize().
Referenced by vpMbEdgeKltTracker::computeVVS(), vpMbDepthNormalTracker::computeVVSInit(), vpMbKltTracker::computeVVSInit(), vpMbEdgeTracker::computeVVSInit(), vpMbEdgeKltMultiTracker::initMbtTracking(), and MEstimator().
|
inline |
Set iteration.
Definition at line 109 of file vpRobust.h.
Referenced by vpPoseFeatures::computePose(), vpMeLine::leastSquare(), vpPose::poseVirtualVSrobust(), vpMeEllipse::printParameters(), and vpHomography::robust().
|
inline |
Set maximal noise threshold.
noise_threshold | : Maximal noise threshold. |
Definition at line 115 of file vpRobust.h.
Referenced by vpPoseFeatures::computePose(), vpMbEdgeKltTracker::computeVVS(), vpMbDepthNormalTracker::computeVVSInit(), vpMbKltTracker::computeVVSInit(), vpMbEdgeTracker::computeVVSInit(), vpMeLine::leastSquare(), vpPose::poseVirtualVSrobust(), and vpMeEllipse::printParameters().
vpColVector vpRobust::simultMEstimator | ( | vpColVector & | residues | ) |
Simult Mestimator.
Calculate an Mestimate with a simultaneous scale estimate using HUBER's influence function.
Definition at line 341 of file vpRobust.cpp.
References CAUCHY, vpArray2D< Type >::getRows(), HUBER, vpMath::sqr(), TUKEY, and vpCDEBUG.