docDERARegTrackAlgorithm
Centre for Vision, Speech & Signal Processing
 

DERARegTrack Algorithm Overview

This algorithm was produced during the period January to June 1998 to process the data sequences provided by Graham Watson from DERA. It contributes to earlier work by Ali Hojjatoleslami which got to step 4.

The task is to detect small and indistinct targets in image sequences and track them through consecutive frames. This is achieved using a multi-stage approach which combines image segmentation, motion estimation and data fusion. The algorithm consists of the following stages of processing:

  1. Image preprocessing is performed to detect regions of interest in each frame. This is achieved using the following code segment:
        IPMorphSElemFlatC structElemTH (7,7);
        ByteImageC tophat = scene[i1] >> IPMorphTopHatC(structElemTH);
        ByteImageC average = tophat >> IPLinearAverageC(23,23);
        ByteImageC thresh = tophat >> IPBinCompareC(average,1.4,10);
        IPLabel8ConC conComponentLabelling;
        ImageC peaks = thresh >> conComponentLabelling;
        NumDataSetC cents = FindMoments (peaks);
        cents.DelFirst();                  // Removes background label
    
    The input image scene[i1] is processed using a morphological tophat filter with a 7x7 square structuring element. The result is smoothed with a 23x23 averaging convolution then a threshold image is created by comparing the tophat image with the smoothed version. Connected component labelling is used to separate the regions in the thresholded image. The centroid of each labelled region is then proposed as a seed for a region growing algorithm.
  2. Image segmentation is performed using a region growing algorithm by Ali Hojjatoleslami (reference). This has been implemented by the following two main classes: RegBoundaryC and RegOrderedGrowC. The stopping criteria that has been used for region growing is an upper size limit. At that point, the best intermediate region is used.
  3. All regions are then filtered using StaticTrackC which removes regions based on their individual feature measurements for: size, average and gradient boundary, and compactness. It also removes duplicate regions that were grown from different seeds.
  4. Motion estimation is then performed to track regions through consecutive frames. This is achieved using MotionTrackC. It finds the position of a region in the previous frame. If there was a region there too, then the two are linked into a chain.
  5. The final stage is temporal filtering using FeatureTrackC. This examines a history of each region that has been tracked. If the region has persisted for at least hist frames then it is considered for temporal filtering.
Author: Robert Crida, Created: 17/6/1998, Generated by DocCreate: March 20, 2001