Developer Documentation
Centre for Vision, Speech & Signal Processing
USER IN NAMESPACE AMMA TREE ROOT AMMA SEARCH AMMA HOME
 

  PUBLIC
MotionTrackC::MotionTrackC(RealT)
MotionTrackC::Motion(DListC &,const ImageC &,const ByteImageC &,const ByteImageC &) const
MotionTrackC::Track(DListC &,DListC &) const
MotionTrackC
 
Performs motion tracking stage
 
include "amma/DERA/MotionTrack.hh"
User Level:Default
Library:DERARegTrack
Example:exIndex.cc
Section:Applications.Image Processing.DERA Small Target Detection
In Scope:std

Comments:
MotionTrackC is responsible for performing region tracking in consecutive frames for the DERA Small Target Detection project. The purpose of the object is use motion estimation to find each region in the previous frame. If a region was detected at that position too, then the two are linked together and tracked.

The algorithm is split into two main sections:

  1. The member function Motion uses a motion estimation algorithm to determine a motion vector for each region in the input list. The motion estimation algorihm that is used considers only region translation but does use a robust metric for finding image matches.
  2. Track detects whether there is correspondance between regions detected in the previous frames and the predicted position of current regions in that frame. This is achieved with the following algorithm:
     list0 contains regions in previous frame
     list1 contains regions in current frame
     for each region in list1
       closest = region0
       distance = |region1.centroid + region1.motion - closest.centroid|
       for each region in list0
         nextDistance = |region1.centroid + region1.motion - region0.centroid|
         if nextDistance < distance
           distance = nextDistance
           closest = region0
       if distance < threshold
         set region1.label = closest.label
         set region1.motion = closest.centroid - region1.centroid
     
The threshold is specified in the constructor of the object and means that only regions that are close to the predicted position will be accepted. The output of the algorithm is a list of all the regions that were linked to regions inthe previous frame.

Variables:
RealT _limit;
indIndex of types of intererest.

Methods:
MotionTrackC(RealT limit)
Constructor
indIndex of types of intererest.

void Motion(DListC<RegBoundaryC> & list,const ImageC<NumLabelC> & label,const ByteImageC & scene0,const ByteImageC & scene1) const
Calculates motion for each region in list
indIndex of types of intererest.
Estimates reverse motion, ie looks backwards from current frame to see where object was in the previous frame. Therefore, the motion vector is inverted.

const DListC<RegBoundaryC> Track(DListC<RegBoundaryC> & list0,DListC<RegBoundaryC> & list1) const
Prunes list of regions occording to their motion persistence
indIndex of types of intererest.


Programmer:Robert Crida, Documentation by CxxDoc: Tue Mar 20 10:49:27 2001