ObjectTracker – interactive particle filter software
ObjectTracker is a software I developed as part of a software project for my “Applied Image Processing” course at the Otto-von-Guericke University, Magdeburg. Project goal was to develop a software that uses stochastic methods to track an object – for which a particle filter system was used. Using the OpenCV library and an integration into the Qt framework, it’s possible to load video files (avi) or use a connected video camera to track multiple objects in real-time. For tracking the objects a system using multiple particle filters has been implemented, which tracks each moving object in the scene using a single particle filter. New objects in a scene (determined by a measurement that is not tracked using a particle filter) are automatically supplied with particle filters and obsolete particle filters, that track objects that have already left the scene, are automatically removed from the tracking system.
If a particle filter is not supplied with concurrend measurements (i.e. when it’s temporarily hidden or crossing another object on the screen), an experience model handles advancing the particles based on their previous movement. This enables a robust tracking of objects moving in a scene. Occlusion handling is not optimized yet but works in many cases.
As segmentation method a so-called running-average-background has been implemented, which creates averaged image of the background, removing moving objects in the scene. The running average calculation can be described by:
The running average calculation is already included in the OpenCV library but can also easily be implemented. For handling the user interface integration, the OpenCV images are shown as a QImage inside a QLabel. This allowed to create the whole user interface using Qt and simply integrating the calculated and manipulated image data into the user interface. The user interface also gives several opportunities for setting different tracking and segmentation parameters. The software is free for download and can be tested with any running video file containing moving objects. However, it’s recommended to use video scenes recorded from distance with only slowly moving objects. Also it’s necessary to have a completely steady camera since the running average segmentation depends on that! If you need video material to test the software, feel free to get in contact with me! I would be glad to send you some material to test the application, though it’s not possible for me to provide this video material publicly.
2012-10-17 – version 1.2
- added a new version using OpenCV 2.4
- added a fullscreen window (press F for fullscreen)
2011-07-30 – version 1.1
- added a new version using OpenCV 2.3
- added support for current high definition USB webcams
Download the project:
If you are interested in this project and would like more information on our work, please write me a mail or leave a comment!