GMMCP-Tracker: Globally Optimal Generalized Maximum Multi Clique Problem for Multiple Object Tracking
This MATLAB code implements a faster simplified version of GMMCP tracker. This code create the mid-level tracklets, explained in the paper, in overlapping segments. To form the final tracks, we conncet the mid-level tracklets that overlap. This code will provide results lower than the one reported in the paper (mostly in the number of IDS, the otehr metrics should be very close). One could modify the code easily to do another level of association to reduce the number of IDS. You can use the code to run it on the given test sequences or the sequence of your choice. For more details, please refer to our CVPR paper and our Presentation.
The code is consist of four main section:
- Creating low-level tracklets using overlap threshold. This part is not optimized and it is the slowest. You may replace it with a faster method.
- Creating the affinity matrix for low-level tracklets.
- Solving GMMCP with ADNs to get the mid-level tracklets in overlaping segments. This part is fast as reported in the paper.
- Stitching the tracklets to form the final tracks
Please cite GMMCP in your publications if it helps your research:
@inproceedings{dehghanCVPR2015,
title = {{GMMCP-Tracker}:Globally Optimal Generalized Maximum Multi Clique Problem for Multiple Object Tracking},
author = {Afshin Dehghan and Shayan Modiri Assari and Mubarak Shah.},
booktitle = {CVPR},
year = {2015}
}
The CPLEX dependencies are included for Windows and Ubuntu. For Mac you need to include the corresponding files by following the installation on IBM website. (CPLEX is an optimization software with license provided FREE FOR ACADEMIC PURPOSES by IBM. You can download CPLEX by following this link.)
Check out the IBM Academic initiative to get a free license.
http://www-304.ibm.com/ibm/university/academic/pub/page/ban_ilog_programming
- Get the code.
git clone git@github.com:afshindn/GMMCP_Tracker.git
cd GMMCP_Tracker
- Download sample test data using git lfs GIT LFS Instruction:
git lfs pull
Or alternatively download the data using this link
-
select the test sequence by changing main.m file. The images for three test sequences of TUD_Crossing, TUD_Stadtmitte and PL2 are included.
-
Run main.m
*** If you plan to run it on your own sequences, check the the format of the provided data. You just need to provide the tracklets in the same format that the code requires. You can also modify the netCost matrix generator depending on your own sequences.