Skip to content

This repository hosts code and models to perform object tracking using residuals, an image representation that comes from the compressed domain.

License

Notifications You must be signed in to change notification settings

JonathanSamelson/ResidualsTracking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ResidualsTracking

This repository hosts code and models of the paper Deep Learning-Based Object Tracking via Compressed Domain Residual Frames by Karim El Khoury, Jonathan Samelson and Benoît Macq.

Description

Our goal in using residual frames to perform object tracking is to address three major needs in video surveillance:

  1. The need for video compression
  2. The need for video analysis
  3. The need for privacy protection

For this purpose, the residual frame is a light representation that comes from the compressed domain at no additional cost. Our results show that using this representation can be just as effective as using classical decoded frames while reducing the amount of information leakage in a video stream.

For instance, residual frames can be used to detect only objects of interest or to reduce the number of false positives as they only feature moving objects.

Structure

It is structured as follows:

  • /src/ABMA/ contains the Matlab code of the Adaptive Block Matching Algorithm (ABMA) allows to generate the residual frame of a video sequence. See ABMA Readme for specific instructions.
  • /src/inference contains the Python code to obtain the tracking results (in MOT format) using decoded frames (classical representation) or the residual frames (representation from the compressed domain). See Inference Readme for specific instructions.

Once the results are obtained, HOTA metric can be used to evaluate the performance of the tracking. See TrackEval for the instructions. Note that in our article we used the repository dated 7th April 2021.

Models

The YOLOv4 and Tiny-YOLOv4 weights and config files used to get the detections can be downloaded via our Google Drive. Those models are trained to detect vehicles. The models to detect objects in decoded images were trained on MIO-TCD Localization dataset while the models to detect objects in residuals frames were trained on a custom dataset based on AICity 2021 Track 1 & 3, whose the access can only be granted by AICity. Please see our article for more information about our models.

References

Refer to the following repositories for more information on individual algorithms. Part of the code present in this repository was adapted from those repositories, see individual source files for details.

YOLO & Tiny-YOLO training: https://github.com/AlexeyAB/darknet

YOLO & Tiny-YOLO inference: OpenCV Documentation - DNN module

SORT: https://github.com/abewley/sort

KIOU: https://github.com/siyuanc2/kiout

Block Matching Algorithm for Motion Estimation: Block Matching Algorithms for Motion Estimation

This repository is released under GPL-3.0 License, please consult LICENSE file for details.

About

This repository hosts code and models to perform object tracking using residuals, an image representation that comes from the compressed domain.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published