Discrete-Continuous Multi-target Tracking

This is a framework for multiple target tracking by discrete-continuous
energy minimization. The main idea was first described in this CVPR 2012 paper (pdf)

Discrete-Continuous Optimization for Multi-Target Tracking
A. Andriyenko, K. Schindler and S. Roth, In: CVPR 2012

and later extended to include exclusion and statistically derived energy potentials (pdf):

Detection- and Trajectory-Level Exclusion in Multiple Object Tracking
A. Milan, K. Schindler and S. Roth, In: CVPR 2013

A consolidated manuscript has been submitted to PAMI:

Multi-Target Tracking by Discrete-Continuous Energy Minimization
A. Milan, K. Schindler and S. Roth. Submitted to IEEE PAMI.


This section describes how to get dctracking running.

Get the latest version of the code and cd into that directory

hg clone
cd dctracking

OpenGM2 (Linux only)

You can skip this step if you only want to run our simplified model from CVPR 2012. To that end, you can simply remove to energy weights: exclusionFactor=0 and proxcostFactor=0 in the options file.

However, for inference with non-submodular energies, you will need to install the OpenGM2 framework.
In particular, you should download and build the code with QPBO and/or TRW-S support.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/external/opengm/BUILD/src/external/


Start Matlab and run


Now all should be set up. You can start the tracker with.

[metrics2d, metrics3d, allen, stateInfo, sceneInfo] = ...

The output should be similar to the one in logs/log_tud-campus.txt. Note that both discrete inference
and continuous minimization may lead to slightly different final results, depending on the current
software environment and hardware architecture.

You can display the results by calling

displayTrackingResult(stateInfo.sceneInfo, stateInfo);

Other videos

To run the tracker on other videos, adjust the necessary settings in a scene file in

./scenes/... .ini

Parameters can be set in

./config/... .ini

Please do not forget to cite our work if you end up using this code:

    Author = {Anton Milan and Konrad Schindler and Stefan Roth},
    Booktitle = {CVPR},
    Title = {Detection- and Trajectory-Level Exclusion in Multiple Object Tracking},
    Year = {2013}

    Author = {Anton Andriyenko and Konrad Schindler and Stefan Roth},
    Booktitle = {CVPR},
    Title = {Discrete-Continuous Optimization for Multi-Target Tracking},
    Year = {2012}