Object-Oriented Environment for Assessing Tracking Algorithms

Emanuil Djerassi, Pavlina Konstantinova · Information & Security An International Journal · 2002

class TrackingAlg class NN class JPDAF Figure 2: Class hierarchy Emanuil Djerassi and Pavlina Konstantinova 97 3.2. Classes for simulation The data defining some specific dynamic situation (scenario) is initially entered from a file. Each simulated target requires data on initial coordinates, velocity and movement direction, and the maneuvering targets need also information regarding initial and final times of the maneuver, acceleration during the maneuver, etc. Based on the data for each sensor observation, current coordinates are computed and stored in order to check later the measures of performance of the tracking algorithm. It is useful to define a class ClsTarget unifying all that data for a target and the functions dealing with it. 5,6 The basic behavior characteristics of a target moving according to specific rule are implemented through the class method MoveToNextPosition. In spite of the fact that the method uses multiple data for each object, it is not necessary to write them because the method has direct access to all the data for the object. The other two methods ReadTargetData and CoordInitializing are used at the beginning for target data initialization. The description of this class is: class ClsTarget // Information about target { int Label1 ; int Type1; float Xi,Yi; // Initial Coordinates float WI ; // Current Velocity float PSIi ; // Initial Velocity float Azi ; // Initial Heading float X,Y,Z; // Current Cartesian coordinates float DDot,D,Azimuth,Epsilon; // Current Polar coordinates int InitialScan; int NTrSegments; public: // Methods for the class void ReadTargetData(FILE *FileIn); void CoordInitializing(); void MoveToNextPosition(); // friend functions, which use Targets’ data friend void DefineDetectedTargets(Float Pd, int & NumberOfDetectedTargets, IntArrTarg DetectedTargets); friend int DataPreparationForCurrentScan(); friend float RSE(int itr, int jr) ; friend class ClsMeasurement; } ; // end of class ClsTarget 98 Object Oriented Environment for Assessing Tracking Algorithms Another essential group of data describes the simulated measurements or the socalled “raw data.” The raw data is calculated on the base of the data for the moving targets from the objects of the class ClsTarget. For this data it is useful to define a class ClsMeasurement. The function DataPreparationForCurrentScan is declared as a friend function for both classes ClsMeasurement and ClsTarget. In this function, the measurements “received” on the current scan are computed. According to the specific sensor parameters, the errors of the measurements are simulated. According to the probability to detect correctly, the number of detected targets is defined. The method Noising of the class ClsMeasurement uses the data of the detected target to generate the corresponding measurement. The description of this class follows: class ClsMeasurement { private: int Label1; float X,Y,Z; float Range, Azimuth, float Dopler,Elevation; int Busy; public: void Noising(ClsTarget & ob); friend int DataPreparationForCurrentScan(); }; 3.3. Classes for tracking algorithms 3.3.1 Theoretical background In general, a track is a set of measurements from the same target at different times. However, in most tracking algorithms the track is approximated for each time by a difference equation in the form: 3 ) ( ) ( ) ( ) ( ) 1 ( k u k G k x k F k x    (1a) where ) (k x is a n-dimensional target state vector at time k , which consists of the quantities to be estimated, and F is a transition matrix, G is a control matrix, and u is a control vector. ) 1 (  k x is the prediction of the state vector for time ) 1 (  k . The measurement vector received from the sensor is: ) ( ) ( k Hx k z  (1b) Because of the measurement errors and false alarms, the real state vector x is never known. Instead, we have to work with its estimation x . The process of estimating is Emanuil Djerassi and Pavlina Konstantinova 99 usually called filtering, and the correspondent algorithms are called filters. Nowadays, the common filters used for this purpose are based on the Kalman filter. 3.3.1.1. Linear Kalman filter When equations (1a) and (1b) are linear, the linear Kalman filter is used. The basic form of the this filter is: ) ( ) ( ) | ( ˆ ) ( ) | 1 ( ˆ k u k G k k x k F k k x    (2a) ) | 1 ( ˆ ) 1 ( ) | 1 ( ˆ k k x k H k k z     (2b) ) | 1 ( ˆ ) 1 ( ) 1 ( k k z k z k       (2c) ) ( )' ( ) | ( ) ( ) | 1 ( k Q k F k k P k F k k P    (2d) ) ( )' 1 ( ) | 1 ( ) 1 ( ) 1 ( k R k H k k P k H k S       (2e) 1 ) 1 ( )' 1 ( ) | 1 ( ) 1 (       k S k H k k P k W (2f) ) 1 ( ) 1 ( ) 1 | 1 ( ˆ ) 1 | 1 ( ˆ         k k W k k x k k x  (2g) )' 1 ( ) 1 ( ) 1 ( ) | 1 ( ) 1 | 1 (         k W k S k W k k P k k P (2h) where x is the estimation of the target state vector, z is the measurement vector, H is the measurement matrix, W is the gain matrix, S is the innovation covariance matrix, Q is the noise covariance matrix, R is the measurement covariance matrix,  is the innovation vector, and P is the covariance matrix. 3.3.1.2 Nonlinear (Extended) Kalman filter When equations (1a) and/or (1b) are nonlinear, the Extended Kalman Filter is used. Its equations are the same as the equations of the Linear Kalman Filter (2a-2h), but the matrices F(k) and H(k) are Jacobians, based on the first order Taylor expansion of the nonlinear functions (1a) and (1b) respectively. Hence, the nonlinear filter estimation can be reduced to a linear filter estimation after the Jacobians are calculated. 3.3.1.3 Probabilistic Data Association (PDA) filter When the observations from a single target are mixed with clutter, the Probabilistic Data Association filter is applied instead of the classic Kalman filter. 4 It is also called “all neighbors method” because the updated estimate for a track contains contributions from all N observations within the gate of track i . The probability of the hypothesis ) ,... 2 , 1 ( N j H j  that the observation j is a valid return for the track i is proportional to the likelihood function ij g : 100 Object Oriented Environment for Assessing Tracking Algorithms

Read the paper · More papers on PaperTik