Initializing user-defined a-priori covariance for tracker objects (trackerTOMHT).
Afficher commentaires plus anciens
Hello all,
I am currently in the process of implementing a multi-target tracker for processing space-based observations of asteroids (from the WISE spacecraft). Currently, I am using the trackerTOMHT tracker, but I believe this question would extend to the other multi-target tracking algorithms that MATLAB has in its sensor fusion and tracking toolbox as it mainly has to do with the filtering aspect of multi-target tracking (MTT).
I am currently feeding the tracker Right-Ascension and Declination (RADec) angles as measurements
, with the associated measurement noise covariance matrix
as objectDetection objects for each measurement on each scan, and all is working well for my test case with scaled data (angles in the range
). The issue arises when I try to un-scale my test data (RADec angles in the range
) as well as run the tracker on the real data (same order of magnitude difference in measurements over the course of the data).
, with the associated measurement noise covariance matrix
as objectDetection objects for each measurement on each scan, and all is working well for my test case with scaled data (angles in the range I initially made this decision to scale the data as I was noticing that upon processing the first scan, trackerTOMHT (using @initcvkf as the tracker filter) initializes the position (angle) covariances as the
matrix diagonals, but initializes the velocity (angle rate) covariances as 100. When operating on the unscaled test (and real) data with relatively small differences in angles throughout the scenario, this covariance is drastically too large and causes far too many measurements to be considered in the gating process. This essentially stalls the tracker as it never makes it through the first scan due to all measurements being considered for all tracks (an intractable problem).
This leads me to my main question:
- I am wondering if there is a way to define an initial covariance
that is used upon the initialization of any track within trackerTOMHT. This seems to me like a functionality that should be there somewhere, as a-priori knowledge of the tracking scenario seems like it would be helpful in obtaining the best MTT results. This is the main issue that I am facing, and the alternative is to just scale the real data such that an a-priori velocity covariance of 100 is realistic, but I would like to avoid that. I have scoured the documentation to no avail.
Other questions that would be nice to have answered but are not necessary:
- Is there a way to assign each measurement an associated probability of detection
? Upon tracker initialization, a blanket
is declared which covers all measurements. I am using a matched filter with binary hypothesis testing to extract positional measurements from images, so each measurement has an associated
based on the statistical significance of the detection. - Is there a way to declare the dimensionality of the tracking problem? I am currently using the 'StateParameters' argument to trackerTOMHT as follows to try and force the problem to be 2D, but when I try a filter other than @initcvkf, it does not accept the 2-dimensional state vector.
% State of sensor
stateParams.Frame = 'Rectangular';
stateParams.Position = [0 0];
stateParams.Velocity = [0 0];
tracker = trackerTOMHT( ...
'FilterInitializationFcn', @initcvkf,...
'StateParameters', stateParams,...
);
Of course there are more arguments to the trackerTOMHT() call for tuning purposes, but I omitted them for clarity.
- Some of the built-in track viewer functions such as trackPlotter, or alternatively error quantifying tools such as trackErrorMetrics do not accept my 2D state vectors (4 element state vectors as opposed to the typical 6). Is there a way of altering the dimensionality of these tools as well?
If any part of my questions are unclear, please respond and I can clarify with more code/data to better flesh out the problem. Thank you everyone!
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Multi-Object Trackers dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!