Repository for OpenCV's extra modules
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

506 lines
16 KiB

Common Interfaces of TrackerModel
=================================
.. highlight:: cpp
ConfidenceMap
-------------
Represents the model of the target at frame :math:`k` (all states and scores)
[AAM]_ The set of the pair :math:`\langle \hat{x}^{i}_{k}, C^{i}_{k} \rangle`
.. c:type:: ConfidenceMap
ConfidenceMap::
typedef std::vector<std::pair<Ptr<TrackerTargetState>, float> > ConfidenceMap;
.. seealso::
:ocv:class:`TrackerTargetState`
Trajectory
----------
Represents the estimate states for all frames
[AAM]_ :math:`x_{k}` is the trajectory of the target up to time :math:`k`
.. c:type:: Trajectory
Trajectory::
typedef std::vector<Ptr<TrackerTargetState> > Trajectory;
.. seealso::
:ocv:class:`TrackerTargetState`
TrackerTargetState
------------------
Abstract base class for TrackerTargetState that represents a possible state of the target.
[AAM]_ :math:`\hat{x}^{i}_{k}` all the states candidates.
Inherits this class with your Target state
.. ocv:class:: TrackerTargetState
TrackerTargetState class::
class CV_EXPORTS_W TrackerTargetState
{
public:
virtual ~TrackerTargetState(){};
Point2f getTargetPosition() const;
void setTargetPosition( const Point2f& position );
int getTargetWidth() const;
void setTargetWidth( int width );
int getTargetHeight() const;
void setTargetHeight( int height );
};
In own implementation you can add scale variation, width, height, orientation, etc.
TrackerStateEstimator
---------------------
Abstract base class for TrackerStateEstimator that estimates the most likely target state.
[AAM]_ State estimator
[AMVOT]_ Statistical modeling (Fig. 3), Table III (generative) - IV (discriminative) - V (hybrid)
.. ocv:class:: TrackerStateEstimator
TrackerStateEstimator class::
class CV_EXPORTS_W TrackerStateEstimator
{
public:
virtual ~TrackerStateEstimator();
static Ptr<TrackerStateEstimator> create( const String& trackeStateEstimatorType );
Ptr<TrackerTargetState> estimate( const std::vector<ConfidenceMap>& confidenceMaps );
void update( std::vector<ConfidenceMap>& confidenceMaps );
String getClassName() const;
};
TrackerStateEstimator::create
-----------------------------
Create TrackerStateEstimator by tracker state estimator type
.. ocv:function:: static Ptr<TrackerStateEstimator> TrackerStateEstimator::create( const String& trackeStateEstimatorType )
:param trackeStateEstimatorType: The TrackerStateEstimator name
The modes available now:
* ``"BOOSTING"`` -- Boosting-based discriminative appearance models. See [AMVOT]_ section 4.4
The modes available soon:
* ``"SVM"`` -- SVM-based discriminative appearance models. See [AMVOT]_ section 4.5
TrackerStateEstimator::estimate
-------------------------------
Estimate the most likely target state, return the estimated state
.. ocv:function:: Ptr<TrackerTargetState> TrackerStateEstimator::estimate( const std::vector<ConfidenceMap>& confidenceMaps )
:param confidenceMaps: The overall appearance model as a list of :c:type:`ConfidenceMap`
TrackerStateEstimator::update
-----------------------------
Update the ConfidenceMap with the scores
.. ocv:function:: void TrackerStateEstimator::update( std::vector<ConfidenceMap>& confidenceMaps )
:param confidenceMaps: The overall appearance model as a list of :c:type:`ConfidenceMap`
TrackerStateEstimator::getClassName
-----------------------------------
Get the name of the specific TrackerStateEstimator
.. ocv:function:: String TrackerStateEstimator::getClassName() const
TrackerModel
------------
Abstract class that represents the model of the target. It must be instantiated by specialized tracker
[AAM]_ Ak
Inherits this with your TrackerModel
.. ocv:class:: TrackerModel
TrackerModel class::
class CV_EXPORTS_W TrackerModel
{
public:
TrackerModel();
virtual ~TrackerModel();
void modelEstimation( const std::vector<Mat>& responses );
void modelUpdate();
bool runStateEstimator();
bool setTrackerStateEstimator( Ptr<TrackerStateEstimator> trackerStateEstimator );
void setLastTargetState( const Ptr<TrackerTargetState>& lastTargetState );
Ptr<TrackerTargetState> getLastTargetState() const;
const std::vector<ConfidenceMap>& getConfidenceMaps() const;
const ConfidenceMap& getLastConfidenceMap() const;
Ptr<TrackerStateEstimator> getTrackerStateEstimator() const;
};
TrackerModel::modelEstimation
-----------------------------
Estimate the most likely target location
[AAM]_ ME, Model Estimation table I
.. ocv:function:: void TrackerModel::modelEstimation( const std::vector<Mat>& responses )
:param responses: Features extracted from :ocv:class:`TrackerFeatureSet`
TrackerModel::modelUpdate
-------------------------
Update the model
[AAM]_ MU, Model Update table I
.. ocv:function:: void TrackerModel::modelUpdate()
TrackerModel::runStateEstimator
-------------------------------
Run the TrackerStateEstimator, return true if is possible to estimate a new state, false otherwise
.. ocv:function:: bool TrackerModel::runStateEstimator()
TrackerModel::setTrackerStateEstimator
--------------------------------------
Set TrackerEstimator, return true if the tracker state estimator is added, false otherwise
.. ocv:function:: bool TrackerModel::setTrackerStateEstimator( Ptr<TrackerStateEstimator> trackerStateEstimator )
:param trackerStateEstimator: The :ocv:class:`TrackerStateEstimator`
.. note:: You can add only one :ocv:class:`TrackerStateEstimator`
TrackerModel::setLastTargetState
--------------------------------
Set the current :ocv:class:`TrackerTargetState` in the :c:type:`Trajectory`
.. ocv:function:: void TrackerModel::setLastTargetState( const Ptr<TrackerTargetState>& lastTargetState )
:param lastTargetState: The current :ocv:class:`TrackerTargetState`
TrackerModel::getLastTargetState
--------------------------------
Get the last :ocv:class:`TrackerTargetState` from :c:type:`Trajectory`
.. ocv:function:: Ptr<TrackerTargetState> TrackerModel::getLastTargetState() const
TrackerModel::getConfidenceMaps
-------------------------------
Get the list of the :c:type:`ConfidenceMap`
.. ocv:function:: const std::vector<ConfidenceMap>& TrackerModel::getConfidenceMaps() const
TrackerModel::getLastConfidenceMap
----------------------------------
Get the last :c:type:`ConfidenceMap` for the current frame
.. ocv:function:: const ConfidenceMap& TrackerModel::getLastConfidenceMap() const
TrackerModel::getTrackerStateEstimator
--------------------------------------
Get the :ocv:class:`TrackerStateEstimator`
.. ocv:function:: Ptr<TrackerStateEstimator> TrackerModel::getTrackerStateEstimator() const
Specialized TrackerStateEstimator
=================================
In [AMVOT]_ Statistical modeling (Fig. 3), Table III (generative) - IV (discriminative) - V (hybrid) are described the most known statistical model.
At moment :ocv:class:`TrackerStateEstimatorMILBoosting` and :ocv:class:`TrackerStateEstimatorAdaBoosting` are implemented.
TrackerStateEstimatorMILBoosting : TrackerStateEstimator
--------------------------------------------------------
TrackerStateEstimator based on Boosting
.. ocv:class:: TrackerStateEstimatorMILBoosting
TrackerStateEstimatorMILBoosting class::
class CV_EXPORTS_W TrackerStateEstimatorMILBoosting : public TrackerStateEstimator
{
public:
class TrackerMILTargetState : public TrackerTargetState
{
...
};
TrackerStateEstimatorMILBoosting( int nFeatures = 250 );
~TrackerStateEstimatorMILBoosting();
void setCurrentConfidenceMap( ConfidenceMap& confidenceMap );
};
TrackerMILTargetState : TrackerTargetState
------------------------------------------
Implementation of the target state for TrackerMILTargetState
.. ocv:class:: TrackerMILTargetState
TrackerMILTargetState class::
class TrackerMILTargetState : public TrackerTargetState
{
public:
TrackerMILTargetState( const Point2f& position, int targetWidth, int targetHeight, bool foreground, const Mat& features );
~TrackerMILTargetState(){};
void setTargetFg( bool foreground );
void setFeatures( const Mat& features );
bool isTargetFg() const;
Mat getFeatures() const;
};
TrackerStateEstimatorMILBoosting::TrackerMILTargetState::setTargetFg
--------------------------------------------------------------------
Set label: true for target foreground, false for background
.. ocv:function:: void TrackerStateEstimatorMILBoosting::TrackerMILTargetState::setTargetFg( bool foreground )
:param foreground: Label for background/foreground
TrackerStateEstimatorMILBoosting::TrackerMILTargetState::setFeatures
--------------------------------------------------------------------
Set the features extracted from :ocv:class:`TrackerFeatureSet`
.. ocv:function:: void TrackerStateEstimatorMILBoosting::TrackerMILTargetState::setFeatures( const Mat& features )
:param features: The features extracted
TrackerStateEstimatorMILBoosting::TrackerMILTargetState::isTargetFg
-------------------------------------------------------------------
Get the label. Return true for target foreground, false for background
.. ocv:function:: bool TrackerStateEstimatorMILBoosting::TrackerMILTargetState::isTargetFg() const
TrackerStateEstimatorMILBoosting::TrackerMILTargetState::getFeatures
--------------------------------------------------------------------
Get the features extracted
.. ocv:function:: void TrackerStateEstimatorMILBoosting::TrackerMILTargetState::setFeatures( const Mat& features )
TrackerStateEstimatorMILBoosting::TrackerStateEstimatorMILBoosting
------------------------------------------------------------------
Constructor
.. ocv:function:: TrackerStateEstimatorMILBoosting::TrackerStateEstimatorMILBoosting( int nFeatures=250 )
:param nFeatures: Number of features for each sample
TrackerStateEstimatorMILBoosting::setCurrentConfidenceMap
---------------------------------------------------------
Set the current confidenceMap
.. ocv:function:: void TrackerStateEstimatorMILBoosting::setCurrentConfidenceMap( ConfidenceMap& confidenceMap )
:param confidenceMap: The current :c:type:`ConfidenceMap`
TrackerStateEstimatorAdaBoosting : TrackerStateEstimator
--------------------------------------------------------
TrackerStateEstimatorAdaBoosting based on ADA-Boosting
.. ocv:class:: TrackerStateEstimatorAdaBoosting
TrackerStateEstimatorAdaBoosting class::
class CV_EXPORTS_W TrackerStateEstimatorAdaBoosting : public TrackerStateEstimator
{
public:
class TrackerAdaBoostingTargetState : public TrackerTargetState
{
...
};
TrackerStateEstimatorAdaBoosting( int numClassifer, int initIterations, int nFeatures, Size patchSize, const Rect& ROI, const std::vector<std::pair<float, float> >& meanSigma );
~TrackerStateEstimatorAdaBoosting();
Rect getSampleROI() const;
void setSampleROI( const Rect& ROI );
void setCurrentConfidenceMap( ConfidenceMap& confidenceMap );
std::vector<int> computeSelectedWeakClassifier();
std::vector<int> computeReplacedClassifier();
std::vector<int> computeSwappedClassifier();
void setMeanSigmaPair( const std::vector<std::pair<float, float> >& meanSigmaPair );
};
TrackerAdaBoostingTargetState : TrackerTargetState
--------------------------------------------------
Implementation of the target state for TrackerAdaBoostingTargetState
.. ocv:class:: TrackerAdaBoostingTargetState
TrackerAdaBoostingTargetState class::
class TrackerAdaBoostingTargetState : public TrackerTargetState
{
public:
TrackerAdaBoostingTargetState( const Point2f& position, int width, int height, bool foreground, const Mat& responses );
~TrackerAdaBoostingTargetState(){};
void setTargetResponses( const Mat& responses );
void setTargetFg( bool foreground );
Mat getTargetResponses() const;
bool isTargetFg() const;
};
TrackerStateEstimatorAdaBoosting::TrackerAdaBoostingTargetState::setTargetFg
----------------------------------------------------------------------------
Set label: true for target foreground, false for background
.. ocv:function:: void TrackerStateEstimatorAdaBoosting::TrackerAdaBoostingTargetState::setTargetFg( bool foreground )
:param foreground: Label for background/foreground
TrackerStateEstimatorAdaBoosting::TrackerAdaBoostingTargetState::setTargetResponses
-----------------------------------------------------------------------------------
Set the features extracted from :ocv:class:`TrackerFeatureSet`
.. ocv:function:: void TrackerStateEstimatorAdaBoosting::TrackerAdaBoostingTargetState::setTargetResponses( const Mat& responses )
:param responses: The features extracted
TrackerStateEstimatorAdaBoosting::TrackerAdaBoostingTargetState::isTargetFg
---------------------------------------------------------------------------
Get the label. Return true for target foreground, false for background
.. ocv:function:: bool TrackerStateEstimatorAdaBoosting::TrackerAdaBoostingTargetState::isTargetFg() const
TrackerStateEstimatorAdaBoosting::TrackerAdaBoostingTargetState::getTargetResponses
-----------------------------------------------------------------------------------
Get the features extracted
.. ocv:function:: Mat TrackerStateEstimatorAdaBoosting::TrackerAdaBoostingTargetState::getTargetResponses()
TrackerStateEstimatorAdaBoosting::TrackerStateEstimatorAdaBoosting
------------------------------------------------------------------
Constructor
.. ocv:function:: TrackerStateEstimatorAdaBoosting::TrackerStateEstimatorAdaBoosting( int numClassifer, int initIterations, int nFeatures, Size patchSize, const Rect& ROI, const std::vector<std::pair<float, float> >& meanSigma )
:param numClassifer: Number of base classifiers
:param initIterations: Number of iterations in the initialization
:param nFeatures: Number of features/weak classifiers
:param patchSize: tracking rect
:param ROI: initial ROI
:param meanSigma: pairs of mean/sigma
TrackerStateEstimatorAdaBoosting::setCurrentConfidenceMap
---------------------------------------------------------
Set the current confidenceMap
.. ocv:function:: void TrackerStateEstimatorAdaBoosting::setCurrentConfidenceMap( ConfidenceMap& confidenceMap )
:param confidenceMap: The current :c:type:`ConfidenceMap`
TrackerStateEstimatorAdaBoosting::getSampleROI
----------------------------------------------
Get the sampling ROI
.. ocv:function:: Rect TrackerStateEstimatorAdaBoosting::getSampleROI() const
TrackerStateEstimatorAdaBoosting::setSampleROI
----------------------------------------------
Set the sampling ROI
.. ocv:function:: void TrackerStateEstimatorAdaBoosting::setSampleROI( const Rect& ROI )
:param ROI: the sampling ROI
TrackerStateEstimatorAdaBoosting::computeSelectedWeakClassifier
---------------------------------------------------------------
Get the list of the selected weak classifiers for the classification step
.. ocv:function:: std::vector<int> TrackerStateEstimatorAdaBoosting::computeSelectedWeakClassifier()
TrackerStateEstimatorAdaBoosting::computeReplacedClassifier
-----------------------------------------------------------
Get the list of the weak classifiers that should be replaced
.. ocv:function:: std::vector<int> TrackerStateEstimatorAdaBoosting::computeReplacedClassifier()
TrackerStateEstimatorAdaBoosting::computeSwappedClassifier
----------------------------------------------------------
Get the list of the weak classifiers that replace those to be replaced
.. ocv:function:: std::vector<int> TrackerStateEstimatorAdaBoosting::computeSwappedClassifier()
TrackerStateEstimatorAdaBoosting::setMeanSigmaPair
--------------------------------------------------
Set the mean/sigma to instantiate possibly new classifiers
.. ocv:function:: void TrackerStateEstimatorAdaBoosting::setMeanSigmaPair( const std::vector<std::pair<float, float> >& meanSigmaPair )
:param meanSigmaPair: the mean/sigma pairs