Giter Site home page Giter Site logo

gmphd-ogm_tracker's Introduction

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.

  1. 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
  1. Parameter files

More details of the parameters will be updated soon.

e.g., GMPHD-OGM\params\MOT17train_DPM.txt
  1. 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

  1. Log messages in Console An example of log results

  2. 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

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).

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

gmphd-ogm_tracker's People

Contributors

songincv avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.