Main Content

Introduction to Out-of-Sequence Measurement Handling

Introduction

In a multi-sensor tracking system, time lag can result in the time at which a sensor generates a measurement differing from the time at which the tracker or filter receives the measurement for processing. If, before receiving a measurement, the filter or tracker is updated by another measurement with a later timestamp, the delayed measurement is known as a out-of-sequence measurement (OOSM). For example, assume a measurement is taken at time β, but is not available until time step k, where β < k, then the measurement taken at time β is an OOSM at the processing time k.

OOSM Illustration

Regular sequential filters and object trackers do not have the ability to process OOSMs correctly, because they only maintain the current state estimates and covariances. At the filter level, neglecting OOSMs can increase the state estimate error covariances and thus increase the uncertainty of the state estimate. On the other hand, directly applying an OOSM without considering the measurement time can destabilize the state estimates. At the tracker level, incorrect or insufficient use of OOSMs can additionally result in false associations and false tracks, while valuable information, such as object classification, can be missed entirely.

Sensor Fusion and Tracking Toolbox™ provides these options to handle OOSMs.

Report an Error for OOSM

In Sensor Fusion and Tracking Toolbox, as the default behavior, these multi-object trackers and tracker blocks report an error when encountering an OOSM:

Reporting an error for an OOSM stops the execution of a tracker. Use this option when you do not expect OOSMs, and consider them to be errors in your tracking system.

Neglect OOSM

You can specify for the tracker to neglect OOSMs by specifying the OOSMHandling property of these multi-object trackers to 'Neglect':

With this setting, the tracker neglects any OOSM it encounters and continues to run. Similarly, you can set the Out-of-sequence measurement handling parameter in these tracker blocks to Neglect:

In most cases, neglecting an OOSM is a good choice when the tracking system is updated with high frequency, such that the loss of a measurement is not very costly. Also, this option does not require extra processing operations and storage. For tracking systems with low update rates, however, this option can affect the state estimate quality, and may result in incorrect detection-track association.

Process OOSM Using Retrodiction

Retrodiction is an effective and efficient approach for handling OOSMs. For details on the algorithm, see Retrodiction and Retro-Correction and [1]. This diagram illustrates the retrodiction and retro-correction steps.

Retrodiction Algorithm

Assume that, at time k, the filter obtains the posteriori state estimate x(k|k) and state estimate error covariance P(k|k), based on all the measurements that have arrived at the filter up to that time. Also, assume an OOSM taken at time β, where β < k, is now available at time k. To process the OOSM using retrodiction, the filter first retrodicts (predicts backward in time) the state and state covariance to obtain the retrodicted state x(β|k) and state covariance P(β|k). Then, using the OOSM z(β) and its covariance R(β), the filter corrects the state estimate and obtains the retro-corrected state x(k|β) and state covariance P(k|β) for the current time step k, including the OOSM. Note that, to successfully apply the algorithm, the filter needs to store the state estimate covariance matrices from timestamps prior to the OOSM time β to time k.

Retrodiction in Kalman Filters

Sensor Fusion and Tracking Toolbox currently provides retrodiction capability for the trackingKF and trackingEKF filter objects. To enable retrodiction in a filter, specify its MaxNumOOSMSteps property as a positive integer, which represents the number of previous state covariances preserved in the filter. Then, use the retrodict object function to retrodict the state to the OOSM time, and use the retroCorrect object function to update the current state using the OOSM.

Retrodiction in Multi-Object Trackers

Sensor Fusion and Tracking Toolbox currently provides retrodiction capability for only the trackerGNN System object™ and the Global Nearest Neighbor Multi Object Tracker block. To enable retrodiction in trackerGNN, specify its OOSMHandling property as 'Retrodiction', and specify the MaxNumOOSMSteps property as a positive integer. Similarly, you can enable retrodiction in the Global Nearest Neighbor Multi Object Tracker block via the Out-of-sequence measurements handling and the Maximum number of OOSM steps parameters. In the tracker object or the tracker block, you must specify a filter initialization function that returns a trackingKF or trackingEKF object.

The tracker follows these steps to handle the OOSM:

  • If the OOSM timestamp is beyond the track history maintained by the tracker, the tracker neglects the OOSM.

  • If the OOSM timestamp is within the track history maintained by the tracker, the tracker first retrodicts all the existing tracks to the time of the OOSM. Then, the tracker applies the global nearest neighbor algorithm to try to associate the OOSM to any of the retrodicted tracks.

    • If the tracker successfully associates the OOSM to a retrodicted track, the tracker updates the retrodicted track using the OOSM by applying the retro-correction algorithm to obtain a current, corrected track.

    • If the tracker cannot associate the OOSM to any retrodicted track, the tracker creates a new track based on the OOSM and predicts the track to the current time.

See Also

| | | | | | | | |

References

[1] Bar-Shalom, Y., Huimin Chen, and M. Mallick. “One-Step Solution for the Multistep out-of-Sequence-Measurement Problem in Tracking.” IEEE Transactions on Aerospace and Electronic Systems 40, no. 1 (January 2004): 27–37. https://doi.org/10.1109/TAES.2004.1292140.