/GMPHD-OGM_Tracker

This repository includes a C/C++ Implementation of the GMPHD-OGM tracker with a demo code.

Primary LanguageC++OtherNOASSERTION

1. Introduction

An Online Multi-Object Tracking (MOT) Method with the GMPHD Filter and Occlusion Group Management (OGM).

To implement a highly practical MOT method, online approach and real-time speed are required.

  • Online Process: The Gaussian mixture probability density (GMPHD) filter was exploited as a base model.
  • Real-time Speed: We only used bounding box information (x, y, width, height).

Tracking-by-detection paradigm.

  • In this project, the public detection results on the MOT15 (ACF) and MOT17 (DPM, FRCNN, SDP) datasets are used as inputs of the GMPHD-OGM tracker.

Our main contributions are as follows:

  • An effective extension of the conventional GMMPHD filter from the original domain radar/sonar systems to video systems, consisting of:
    • A hierarchical data association strategy: detection-to-track and track-to-track associations.
    • An occlusion group management scheme: merge and occlusion energy minimization.
  • The GMPHD-OGM tracker achieved the competitive tracking accurary and real-time speed (>30 FPS).

2. User guide

Development Environment

Windows 10 (64 bit)
Visual Studio 2015 (64 bit)

Programming Languages

Visual C/C++

Libaries

OpenCV 3.4.1 and boost 1.61.0 (Windows Binaries) were used to implement the GMPHD-OGM tracker.

Download Win Pack and boost_1_61_0-msvc-14.0-64.exe to run our tracker in Visual Studio 2015 (64 bit).

Project Source

File Tree

PROJECT_HOME
├── GMPHD-OGM.sln  <-- **solution file for the project**
└── GMPHD-OGM      
    ├── demo_GMPHD-OGM.cpp                            <-- **the main function**
    ├── GMPHD_OGM.h, GMPHD_OGM.cpp                    <-- *a class implementation of the GMPHD-OGM tracker*
    ├── HungarianAlgorithm.h, HungarianAlgorithm.cpp  <-- a class implementation of the Hungarian Algorithm 
    ├── stdafx.h                                      <-- precompiled header including essential header files
    ├── GMPHD-OGM.vcxproj, GMPHD-OGM.vcxproj.filters  <-- VS project file, VS project filter file
    ├── params                                        <-- text files containing scene parameters
    |   └── MOT15train_ACF.txt, MOT17train_DPM.txt, MOT17train_FRCNN.txt, MOT17train_SDP.txt
    ├── seqs                                          <-- text files containing dataset paths and sequences' names
    |   └── MOT15train_ACF.txt, MOT17train_DPM.txt, MOT17train_FRCNN.txt, MOT17train_SDP.txt
    └── res                                           <-- tracking results are saved
        ├── MOT15
        |   └── test, train 
        └── MOT17
            └── test, train 
HungarianAlgorithm.h, HungarianAlgorithm.cpp

is a class implementation of the Hungarian Algorithm refering to #mcximing/hungarian-algorithm-cpp

How to run

  1. Open the solution file (GMPHD-OGM.sln)
  2. Link and include OpenCV3.4.1 and boost1.61.0 libraries to the project.
  3. Press Ctrl+F5 in Release mode (64 bit)

Input

1. Images and public detection results

Download the MOTChallenge datasets.

2. Sequence List files of the image sequences

Users should specify the dataset path and sequences' names in the sequence list file.

e.g., GMPHD-OGM\seqs\MOT17train_DPM.txt
F:\MOT\MOTChallenge2017\train\
MOT17-02-FRCNN
MOT17-04-FRCNN
MOT17-05-FRCNN
MOT17-09-FRCNN
MOT17-11-FRCNN
MOT17-13-FRCNN

3. Parameter files

More details of the parameters will be updated soon.

e.g., GMPHD-OGM\params\MOT17train_DPM.txt

4. Please check the input files' locations in the main fuction (demo_GMPHD-OGM.cpp)

// demo_GMPHD-OGM.cpp
int main()
{
string seqList = "seqs\MOT17train_DPM.txt";
string seqList = "params\MOT17train_DPM.txt";
...

Output

Visualization Options in GMPHD_OGM.h

#define VISUALIZATION_MAIN_ON 0
#define SKIP_FRAME_BY_FRAME 0

VISUALIZATION_MAIN_ON: 0(off), 1(on)

  • You can see the visualization windows of detection and tracking.
    • At initial frame, press any key to start tracking process.

SKIP_FRAME_BY_FRAME: 0(off), 1(on)

  • You can see the results, frame-by-frame. (by pressing any key).

Demo Example 1: Videos captured from actual program running

#define VISUALIZATION_MAIN_ON 1

[MOT17-05-SDP] Click this gif image for playing a full demo video

Video Label

[MOT17-10-SDP] Click this gif image for playing a full demo video

Video Label

Demo Example 2: Log Messages in Console

#define VISUALIZATION_MAIN_ON 0

An example of log results

The output file format is compatible with MOTChallenge.

The tracking results files are saved as
[project home]\GMPHD-OGM\res[benchmark name][train or test][sequence name].txt

e.g., [project home]\GMPHD-OGM\res\MOT15\train\Venice-2.txt

ETC.

We are only providing the parameters of the GMPHD-OGM tracker on the training sequences.

3. References

[1] Ba-Ngu Vo and Wing-Kin Ma, "The Gaussian Mixture Probability Hypothesis Density Filter," IEEE Trans. Signal Process., vol. 54, no. 11, pp. 4091–4104, Oct. 2006. [paper]

[2] Young-min Song and Moong Jeon, "Online Multiple Object Tracking with the Hierarchically Adopted GM-PHD Filter Using Motion and Appearance," in Proc. IEEE Int. Conf. Consum. Electron.-Asia (ICCE-Asia), pp. 1--4, Oct. 2016. [paper]

[3] Young-min Song, Young-chul Yoon, Kwangjin Yoon, and Moongu Jeon, "Online and Real-Time Tracking with the GM-PHD Filter using Group Management and Relative Motion Analysis," in Proc. IEEE Int. Workshop Traffic Street Surveill. Safety Secur. (AVSS), Nov. 2018. [paper]

[4] Young-mins Song, Kwangjin Yoon, Young-chul Yoon, Kin Choon Yow, and Moongu Jeon, "Online Multi-Object Tracking with GMPHD Filter and Occlusion Group Management," IEEE Access, vol. 7, pp. 165103-165121, Nov. 2019.

\bibitem{gmphdogm} Y. Song, K. Yoon, Y-C. Yoon, K. C. Yow, and M. Jeon, 
``Online Multi-Object Tracking with GMPHD Filter and Occlusion Group Management,'' 
IEEE Access, vol. 7, pp. 165103-165121, Nov. 2019.

BSD 2-Clause License