ViSP  2.9.0
vpTemplateTrackerSSDInverseCompositional Class Reference

#include <vpTemplateTrackerSSDInverseCompositional.h>

+ Inheritance diagram for vpTemplateTrackerSSDInverseCompositional:

Public Member Functions

 vpTemplateTrackerSSDInverseCompositional (vpTemplateTrackerWarp *warp)
 
void setUseTemplateSelect (bool b)
 
void setThresholdRMS (double threshold)
 
double getSSD (vpImage< unsigned char > &I, vpColVector &tp)
 
void setGain (double g)
 
void display (const vpImage< unsigned char > &I, const vpColor &col=vpColor::green, const unsigned int thickness=3)
 
void display (const vpImage< vpRGBa > &I, const vpColor &col=vpColor::green, const unsigned int thickness=3)
 
bool getDiverge () const
 
vpColVector getdp ()
 
vpColVector getG () const
 
vpMatrix getH () const
 
unsigned int getNbParam () const
 
unsigned int getNbIteration () const
 
vpColVector getp () const
 
double getRatioPixelIn () const
 
vpTemplateTrackerWarpgetWarp () const
 
vpTemplateTrackerZone getZoneRef () const
 
void initClick (const vpImage< unsigned char > &I, bool delaunay=false)
 
void initFromPoints (const vpImage< unsigned char > &I, const std::vector< vpImagePoint > &v_ip, bool delaunay=false)
 
void initFromZone (const vpImage< unsigned char > &I, const vpTemplateTrackerZone &zone)
 
void resetTracker ()
 
void setBlur (bool b)
 
void setCostFunctionVerification (bool b)
 
void setGaussianFilterSize (unsigned int new_taill)
 
void setHDes (vpMatrix &tH)
 
void setIterationMax (const unsigned int &n)
 
void setLambda (double l)
 
void setNbIterBrent (const unsigned int &b)
 
void setp (const vpColVector &tp)
 
void setPyramidal (unsigned int nlevels=2, unsigned int level_to_stop=1)
 
void setSampling (int _mod_i, int _mod_j)
 
void setThresholdGradient (double threshold)
 
void setUseBrent (bool b)
 
void track (const vpImage< unsigned char > &I)
 
void trackRobust (const vpImage< unsigned char > &I)
 

Protected Member Functions

void initHessienDesired (const vpImage< unsigned char > &I)
 
void initCompInverse (const vpImage< unsigned char > &I)
 
void trackNoPyr (const vpImage< unsigned char > &I)
 
void deletePosEvalRMS ()
 
void computeEvalRMS (const vpColVector &p)
 
void initPosEvalRMS (vpColVector &p)
 
double getCost (const vpImage< unsigned char > &I, vpColVector &tp)
 
double getCost (const vpImage< unsigned char > &I)
 
void computeOptimalBrentGain (const vpImage< unsigned char > &I, vpColVector &tp, double tMI, vpColVector &direction, double &alpha)
 
void getGaussianBluredImage (const vpImage< unsigned char > &I)
 
virtual void initCompInversePyr (const vpImage< unsigned char > &I)
 
virtual void initHessienDesiredPyr (const vpImage< unsigned char > &I)
 
virtual void initPyramidal (unsigned int nbLvl, unsigned int l0)
 
void initTracking (const vpImage< unsigned char > &I, vpTemplateTrackerZone &zone)
 
virtual void initTrackingPyr (const vpImage< unsigned char > &I, vpTemplateTrackerZone &zone)
 
virtual void trackPyr (const vpImage< unsigned char > &I)
 

Protected Attributes

bool compoInitialised
 
vpMatrix HInv
 
vpMatrix HCompInverse
 
bool useTemplateSelect
 
double evolRMS
 
std::vector< double > x_pos
 
std::vector< double > y_pos
 
double threshold_RMS
 
vpRowVector DI
 
vpRowVector temp
 
unsigned int nbLvlPyr
 
unsigned int l0Pyr
 
bool pyrInitialised
 
vpTemplateTrackerPointptTemplate
 
vpTemplateTrackerPoint ** ptTemplatePyr
 
bool ptTemplateInit
 
unsigned int templateSize
 
unsigned int * templateSizePyr
 
bool * ptTemplateSelect
 
bool ** ptTemplateSelectPyr
 
bool ptTemplateSelectInit
 
unsigned int templateSelectSize
 
vpTemplateTrackerPointCompoptTemplateCompo
 
vpTemplateTrackerPointCompo ** ptTemplateCompoPyr
 
vpTemplateTrackerZonezoneTracked
 
vpTemplateTrackerZonezoneTrackedPyr
 
vpImage< unsigned char > * pyr_IDes
 
vpMatrix H
 
vpMatrix Hdesire
 
vpMatrixHdesirePyr
 
vpMatrix HLM
 
vpMatrix HLMdesire
 
vpMatrixHLMdesirePyr
 
vpMatrix HLMdesireInverse
 
vpMatrixHLMdesireInversePyr
 
vpColVector G
 
double gain
 
double thresholdGradient
 
bool costFunctionVerification
 
bool blur
 
bool useBrent
 
unsigned int nbIterBrent
 
unsigned int taillef
 
double * fgG
 
double * fgdG
 
double ratioPixelIn
 
int mod_i
 
int mod_j
 
unsigned int nbParam
 
double lambdaDep
 
unsigned int iterationMax
 
unsigned int iterationGlobale
 
bool diverge
 
unsigned int nbIteration
 
bool useCompositionnal
 
bool useInverse
 
vpTemplateTrackerWarpWarp
 
vpColVector p
 
vpColVector dp
 
vpColVector X1
 
vpColVector X2
 
vpMatrix dW
 
vpImage< double > BI
 
vpImage< double > dIx
 
vpImage< double > dIy
 
vpTemplateTrackerZone zoneRef_
 

Detailed Description

The algorithm implemented in this class is described in [1].

Examples:
templateTracker.cpp, and tutorial-template-tracker.cpp.

Definition at line 56 of file vpTemplateTrackerSSDInverseCompositional.h.

Constructor & Destructor Documentation

vpTemplateTrackerSSDInverseCompositional::vpTemplateTrackerSSDInverseCompositional ( vpTemplateTrackerWarp warp)

Member Function Documentation

void vpTemplateTrackerSSDInverseCompositional::deletePosEvalRMS ( )
protected

Definition at line 233 of file vpTemplateTrackerSSDInverseCompositional.cpp.

Referenced by trackNoPyr().

void vpTemplateTracker::display ( const vpImage< unsigned char > &  I,
const vpColor col = vpColor::green,
const unsigned int  thickness = 3 
)
inherited

Display the warped reference template in an image.

Parameters
IImage in which the warped zone has to be displayed.
colColor used to draw the triangle edges.
thicknessThickness of the lines.

The following code shows how to use display capabilities:

#include <visp/vpTemplateTrackerSSDInverseCompositional.h>
#include <visp/vpTemplateTrackerWarpHomography.h>
int main()
{
vpTemplateTrackerZone zoneRef, zoneWarped;
// Display the warped zone
tracker.display(I, vpColor::red);
// Display the reference zone
zoneRef = tracker.getZoneRef();
zoneRef.display(I, vpColor::green);
// Display the warped zone
vpColVector p = tracker.getp();
warp.warpZone(zoneRef, p, zoneWarped);
zoneWarped.display(I, vpColor::blue);
}
Examples:
templateTracker.cpp, and tutorial-template-tracker.cpp.

Definition at line 318 of file vpTemplateTracker.cpp.

References vpTemplateTrackerZone::display(), vpImage< Type >::display, vpTemplateTracker::p, vpTemplateTracker::Warp, vpTemplateTrackerWarp::warpZone(), and vpTemplateTracker::zoneTracked.

void vpTemplateTracker::display ( const vpImage< vpRGBa > &  I,
const vpColor col = vpColor::green,
const unsigned int  thickness = 3 
)
inherited

Display the warped reference template in an image.

Parameters
IImage in which the warped zone has to be displayed.
colColor used to draw the triangle edges.
thicknessThickness of the lines.

The following code shows how to use display capabilities:

#include <visp/vpTemplateTrackerSSDInverseCompositional.h>
#include <visp/vpTemplateTrackerWarpHomography.h>
int main()
{
vpTemplateTrackerZone zoneRef, zoneWarped;
// Display the warped zone
tracker.display(I, vpColor::red);
// Display the reference zone
zoneRef = tracker.getZoneRef();
zoneRef.display(I, vpColor::green);
// Display the warped zone
vpColVector p = tracker.getp();
warp.warpZone(zoneRef, p, zoneWarped);
zoneWarped.display(I, vpColor::blue);
}

Definition at line 360 of file vpTemplateTracker.cpp.

References vpTemplateTrackerZone::display(), vpImage< Type >::display, vpTemplateTracker::p, vpTemplateTracker::Warp, vpTemplateTrackerWarp::warpZone(), and vpTemplateTracker::zoneTracked.

double vpTemplateTrackerSSD::getCost ( const vpImage< unsigned char > &  I)
inlineprotectedinherited

Definition at line 72 of file vpTemplateTrackerSSD.h.

References vpTemplateTrackerSSD::getCost().

Referenced by vpTemplateTrackerSSD::getCost().

bool vpTemplateTracker::getDiverge ( ) const
inlineinherited

Definition at line 143 of file vpTemplateTracker.h.

vpColVector vpTemplateTracker::getdp ( )
inlineinherited

Definition at line 144 of file vpTemplateTracker.h.

vpColVector vpTemplateTracker::getG ( ) const
inlineinherited

Definition at line 145 of file vpTemplateTracker.h.

void vpTemplateTracker::getGaussianBluredImage ( const vpImage< unsigned char > &  I)
inlineprotectedinherited

Definition at line 207 of file vpTemplateTracker.h.

References vpImageFilter::filter().

Referenced by vpTemplateTracker::trackRobust().

vpMatrix vpTemplateTracker::getH ( ) const
inlineinherited

Definition at line 146 of file vpTemplateTracker.h.

unsigned int vpTemplateTracker::getNbIteration ( ) const
inlineinherited

Definition at line 148 of file vpTemplateTracker.h.

unsigned int vpTemplateTracker::getNbParam ( ) const
inlineinherited

Definition at line 147 of file vpTemplateTracker.h.

vpColVector vpTemplateTracker::getp ( ) const
inlineinherited
Examples:
templateTracker.cpp, and tutorial-template-tracker.cpp.

Definition at line 149 of file vpTemplateTracker.h.

double vpTemplateTracker::getRatioPixelIn ( ) const
inlineinherited

Definition at line 150 of file vpTemplateTracker.h.

vpTemplateTrackerWarp* vpTemplateTracker::getWarp ( ) const
inlineinherited
Returns
The pointer to the warper.
Examples:
templateTracker.cpp.

Definition at line 156 of file vpTemplateTracker.h.

vpTemplateTrackerZone vpTemplateTracker::getZoneRef ( ) const
inlineinherited

Return the reference template zone.

Examples:
templateTracker.cpp.

Definition at line 161 of file vpTemplateTracker.h.

void vpTemplateTracker::initClick ( const vpImage< unsigned char > &  I,
bool  delaunay = false 
)
inherited

Select the reference template in image I using mouse click.

Parameters
IImage containing the reference template.
delaunayFlag used to enable Delaunay triangulation.
  • If true, from the image points selected by the user, a Delaunay triangulation is performed to initialize the reference template.
    • A left click select a image point;
    • A right click select the last image point and ends the initialisation stage.
  • If false, the user select directly points as successive triangle corners. The size of v_ip vector should be a multiple of 3. It is not mandatory that triangles have one edge in common; they can define a discontinued area.
    • A left click select a triangle corner;
    • A right click select the last triangle corner and ends the initialisation stage. For example, to select the reference template as two triangles, the user has to left click five times and finish the selection on the sixth corner with a right click.
Examples:
templateTracker.cpp, and tutorial-template-tracker.cpp.

Definition at line 659 of file vpTemplateTracker.cpp.

References vpTemplateTrackerZone::initClick(), vpTemplateTracker::initHessienDesired(), vpTemplateTracker::initHessienDesiredPyr(), vpTemplateTracker::initPyramidal(), vpTemplateTracker::initTracking(), vpTemplateTracker::initTrackingPyr(), vpTemplateTracker::l0Pyr, vpTemplateTracker::nbLvlPyr, and vpTemplateTracker::zoneRef_.

void vpTemplateTracker::initFromPoints ( const vpImage< unsigned char > &  I,
const std::vector< vpImagePoint > &  v_ip,
bool  delaunay = false 
)
inherited

Initialize the reference template from a vector of points.

Parameters
IImage containing the reference template.
v_ipVector of image points defining the reference template.
delaunay
  • If true, from the image points defining the reference template enable Delaunay triangulation.
  • If false, the vector of image points define the reference template as a list of triangles. The size of v_ip vector should be a multiple of 3.
Examples:
templateTracker.cpp.

Definition at line 685 of file vpTemplateTracker.cpp.

References vpTemplateTrackerZone::initFromPoints(), vpTemplateTracker::initHessienDesired(), vpTemplateTracker::initHessienDesiredPyr(), vpTemplateTracker::initPyramidal(), vpTemplateTracker::initTracking(), vpTemplateTracker::initTrackingPyr(), vpTemplateTracker::l0Pyr, vpTemplateTracker::nbLvlPyr, and vpTemplateTracker::zoneRef_.

void vpTemplateTracker::initFromZone ( const vpImage< unsigned char > &  I,
const vpTemplateTrackerZone zone 
)
inherited

Initialize the reference template from a vector of points.

Parameters
IImage containing the reference template.
zoneThe zone that describes the reference template.

Definition at line 707 of file vpTemplateTracker.cpp.

References vpTemplateTracker::initHessienDesired(), vpTemplateTracker::initHessienDesiredPyr(), vpTemplateTracker::initPyramidal(), vpTemplateTracker::initTracking(), vpTemplateTracker::initTrackingPyr(), vpTemplateTracker::l0Pyr, vpTemplateTracker::nbLvlPyr, and vpTemplateTracker::zoneRef_.

void vpTemplateTrackerSSDInverseCompositional::initHessienDesired ( const vpImage< unsigned char > &  I)
protectedvirtual

Implements vpTemplateTrackerSSD.

Definition at line 107 of file vpTemplateTrackerSSDInverseCompositional.cpp.

References initCompInverse().

void vpTemplateTracker::initPyramidal ( unsigned int  nbLvl,
unsigned int  l0 
)
protectedvirtualinherited
void vpTemplateTracker::setBlur ( bool  b)
inlineinherited

Definition at line 169 of file vpTemplateTracker.h.

void vpTemplateTracker::setCostFunctionVerification ( bool  b)
inlineinherited

Definition at line 170 of file vpTemplateTracker.h.

void vpTemplateTrackerSSD::setGain ( double  g)
inlineinherited

Definition at line 80 of file vpTemplateTrackerSSD.h.

void vpTemplateTracker::setGaussianFilterSize ( unsigned int  new_taill)
inherited
void vpTemplateTracker::setHDes ( vpMatrix tH)
inlineinherited

Definition at line 173 of file vpTemplateTracker.h.

References vpMatrix::computeHLM(), and vpMatrix::inverseByLU().

void vpTemplateTracker::setIterationMax ( const unsigned int &  n)
inlineinherited
Examples:
templateTracker.cpp, and tutorial-template-tracker.cpp.

Definition at line 174 of file vpTemplateTracker.h.

void vpTemplateTracker::setLambda ( double  l)
inlineinherited
Examples:
templateTracker.cpp, and tutorial-template-tracker.cpp.

Definition at line 175 of file vpTemplateTracker.h.

void vpTemplateTracker::setNbIterBrent ( const unsigned int &  b)
inlineinherited

Definition at line 176 of file vpTemplateTracker.h.

void vpTemplateTracker::setp ( const vpColVector tp)
inlineinherited

Definition at line 177 of file vpTemplateTracker.h.

void vpTemplateTracker::setPyramidal ( unsigned int  nlevels = 2,
unsigned int  level_to_stop = 1 
)
inlineinherited

Set the number of pyramid levels used in the multi-resolution scheme. If nlevels > 1, the tracker uses a pyramidal approach.

Parameters
nlevelsNumber of pyramid levels. Algorithm starts at level nlevels-1.
level_to_stopLast level of the pyramid that will be considered. (Lowest level is Zero)
Examples:
templateTracker.cpp, and tutorial-template-tracker.cpp.

Definition at line 185 of file vpTemplateTracker.h.

void vpTemplateTracker::setSampling ( int  _mod_i,
int  _mod_j 
)
inlineinherited
Examples:
templateTracker.cpp, and tutorial-template-tracker.cpp.

Definition at line 195 of file vpTemplateTracker.h.

void vpTemplateTracker::setThresholdGradient ( double  threshold)
inlineinherited
Examples:
templateTracker.cpp.

Definition at line 196 of file vpTemplateTracker.h.

void vpTemplateTrackerSSDInverseCompositional::setThresholdRMS ( double  threshold)
inline

Definition at line 82 of file vpTemplateTrackerSSDInverseCompositional.h.

void vpTemplateTracker::setUseBrent ( bool  b)
inlineinherited

By default Brent usage is disabled.

Definition at line 198 of file vpTemplateTracker.h.

void vpTemplateTrackerSSDInverseCompositional::setUseTemplateSelect ( bool  b)
inline

Use only the strong gradient pixels to compute the Jabobian. By default this feature is disabled.

Definition at line 81 of file vpTemplateTrackerSSDInverseCompositional.h.

void vpTemplateTracker::track ( const vpImage< unsigned char > &  I)
inherited

Track the template on image I.

Parameters
IImage to process.
Examples:
templateTracker.cpp, and tutorial-template-tracker.cpp.

Definition at line 802 of file vpTemplateTracker.cpp.

References vpTemplateTracker::nbLvlPyr, vpTemplateTracker::trackNoPyr(), and vpTemplateTracker::trackPyr().

void vpTemplateTracker::trackRobust ( const vpImage< unsigned char > &  I)
inherited

Member Data Documentation

bool vpTemplateTrackerSSDInverseCompositional::compoInitialised
protected

Definition at line 59 of file vpTemplateTrackerSSDInverseCompositional.h.

Referenced by initCompInverse().

bool vpTemplateTracker::costFunctionVerification
protectedinherited

Definition at line 99 of file vpTemplateTracker.h.

Referenced by vpTemplateTracker::trackRobust().

vpRowVector vpTemplateTrackerSSD::DI
protectedinherited

Definition at line 67 of file vpTemplateTrackerSSD.h.

Referenced by vpTemplateTrackerSSD::vpTemplateTrackerSSD().

bool vpTemplateTracker::diverge
protectedinherited
double vpTemplateTrackerSSDInverseCompositional::evolRMS
protected

Definition at line 64 of file vpTemplateTrackerSSDInverseCompositional.h.

Referenced by computeEvalRMS(), and trackNoPyr().

vpMatrix vpTemplateTrackerSSDInverseCompositional::HCompInverse
protected
vpMatrix vpTemplateTrackerSSDInverseCompositional::HInv
protected
vpMatrix* vpTemplateTracker::HLMdesireInversePyr
protectedinherited
unsigned int vpTemplateTracker::iterationGlobale
protectedinherited
int vpTemplateTracker::mod_i
protectedinherited

Definition at line 107 of file vpTemplateTracker.h.

Referenced by vpTemplateTracker::initTracking().

int vpTemplateTracker::mod_j
protectedinherited

Definition at line 108 of file vpTemplateTracker.h.

Referenced by vpTemplateTracker::initTracking().

unsigned int vpTemplateTracker::nbIterBrent
protectedinherited

Definition at line 102 of file vpTemplateTracker.h.

Referenced by vpTemplateTracker::computeOptimalBrentGain().

bool vpTemplateTracker::ptTemplateInit
protectedinherited
bool vpTemplateTracker::ptTemplateSelectInit
protectedinherited
vpImage<unsigned char>* vpTemplateTracker::pyr_IDes
protectedinherited
bool vpTemplateTracker::pyrInitialised
protectedinherited
double vpTemplateTracker::ratioPixelIn
protectedinherited
vpRowVector vpTemplateTrackerSSD::temp
protectedinherited

Definition at line 68 of file vpTemplateTrackerSSD.h.

Referenced by vpTemplateTrackerSSD::vpTemplateTrackerSSD().

unsigned int vpTemplateTracker::templateSelectSize
protectedinherited

Definition at line 73 of file vpTemplateTracker.h.

Referenced by vpTemplateTracker::initTracking().

double vpTemplateTrackerSSDInverseCompositional::threshold_RMS
protected

Definition at line 67 of file vpTemplateTrackerSSDInverseCompositional.h.

Referenced by trackNoPyr().

double vpTemplateTracker::thresholdGradient
protectedinherited

Definition at line 98 of file vpTemplateTracker.h.

Referenced by vpTemplateTracker::initTracking().

bool vpTemplateTrackerSSDInverseCompositional::useTemplateSelect
protected

Definition at line 62 of file vpTemplateTrackerSSDInverseCompositional.h.

Referenced by initCompInverse(), and trackNoPyr().

std::vector<double> vpTemplateTrackerSSDInverseCompositional::x_pos
protected

Definition at line 65 of file vpTemplateTrackerSSDInverseCompositional.h.

Referenced by computeEvalRMS(), and initPosEvalRMS().

std::vector<double> vpTemplateTrackerSSDInverseCompositional::y_pos
protected

Definition at line 66 of file vpTemplateTrackerSSDInverseCompositional.h.

Referenced by computeEvalRMS(), and initPosEvalRMS().

vpTemplateTrackerZone vpTemplateTracker::zoneRef_
protectedinherited