This is an implementation of an Extended Kalman Filter based tracker.
There is both an implementation in C++ and in Matlab.
The idea was to develop a fast method to track objects from a pole-mounted camera. A visual tracker would have been too slow, therefore an EFK has been adopted. The idea is that after a Convolutional Neural Network (CNN) detects the bounding-boxes of the objects, the central bottom point of the bounding box is taken as a reference of that object and on that the tracker is instantiated.
However, the tracker implementation is general, but takes as input a point for an object for each frame and track those objects with an aging mechanism.
The idea is to use just the position of the object (x,y) to predict not only the new position (x’,y’), but also the velocity v the yaw , and the yaw-rate
. Hence, the state of EKF is:
While the state transition adopted:
sudo apt-get install libeigen3-dev libflann-dev python3-matplotlib python-dev python-dev libflann-dev
git clone https://github.com/mive93/tracker_CLASS
cd tracker_CLASS/c++
mkdir build
cd build
build in Release or Debug with one the following commands
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake -DCMAKE_BUILD_TYPE=Debug ..
and finally
make
./tracker
This work has been supported by the EU H2020 project CLASS, contract #780622.