|
User Documentation |
|
Centre for Vision, Speech & Signal Processing |
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:
- 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.
- 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:
Methods:
- MotionTrackC(RealT limit)
-
Constructor
| ind | Index 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
| ind | Index 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
| ind | Index of types of intererest. |
|
Programmer:Robert Crida, Documentation by CxxDoc: Tue Mar 20 10:48:08 2001
|