S-114.202 Laskennallisen tekniikan erikoiskurssi II
The task of the practical work is to implement simple tracking methods,
and test them in clean environment and in clutter.
In the homework directory www.lce.hut.fi/teaching/S-114.202/k2002/homework/ there is a script homework_demo.m that contains the description of the task and a demo.
|Example of tracking a target (blue circle) in clutter (brown circles). The green dots show the predicted particle locations, and red dots the posterior distribution of the position after resampling.|
Implement algorithm for multi-model tracking, based for example on the algorithm in SMCMP Ch 23. (presented by Tommi Nykopp).
Use the data of previous task to test the algorithm. You can assume that the target has two modes of movement, straightforward movement and turning.
Implement a multitarget tracking algorithm, based on either of the methods reviewed in Jaakko Peltonen's presentation 9.4 (see links below). You can also implement another published SMC-based multitarget tracking method. In that case you need to attach the publication describing the method to the report.
Test tracks can be found in the file homework/homework_multitarget.m. The data contains two tracks. There are two measurement noise levels suggested in the code. Test the tracking with both the noise levels - the low noise case should be rather easy and the higher noise level much harder.
|Example of multitarget tracking. Filled dots show the true positions of the targets at a time of incidence. The open circles show the measured positions.|
For efficient implementation of the resampling the homework directory contains a binary search routine bins.c and compiled mex-files (windows: bins.dll, Compaq Tru-64: bins.mexaxp, Linux: bins.mexglx).
Let the importance weights be in vector w_is (length 1 x Ns, where Ns is the size of the particle set), and the predicted particles in matrix s_pred (Nvariables x Ns). Following code resamples the new points to s_post from the predicted set s_pred with the probability given by the importance weights w_is:
Zp=sum(w_is); p_cumulative=cumsum(w_is/Zp); j_resamp=bins(p_cumulative,rand(1,Nsamples)); s_post=s_pred(:,j_resamp);
There is also a routine for finding the closest vector from a set of N-D vectors, using Euclidean distance. The routine is called bmu.m (its legacy of some old SOM code), with precompiled mex files bmu.dll, bmu.mexaxp and bmu.mexlgx. It may be needed in the clutter case. The nearest points for column vectors in s from a set of column vectors in M can be found by