/Yolov5_DeepSort_Pytorch

Real-time multi-person tracker using YOLO v5 and deep sort

Primary LanguagePython

Yolov5 + Deep Sort with PyTorch

HitCount

Introduction

This repository contains a moded version of PyTorch YOLOv5 (https://github.com/ultralytics/yolov5). It filters out every detection that is not a person. The detections of persons are then passed to a Deep Sort algorithm (https://github.com/ZQPei/deep_sort_pytorch) which tracks the persons. The reason behind the fact that it just tracks persons is that the deep association metric is trained on a person ONLY datatset.

Description

The implementation is based on two papers:

Requirements

Python 3.8 or later with all requirements.txt dependencies installed, including torch>=1.6. To install run:

pip install -U -r requirements.txt

All dependencies are included in the associated docker images. Docker requirements are:

  • nvidia-docker
  • Nvidia Driver Version >= 440.44

Before you run the tracker

  1. Clone the repository recursively:

git clone --recurse-submodules https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch.git

If you already cloned and forgot to use --recurse-submodules you can run git submodule update --init

  1. Github block pushes of files larger than 100 MB (https://help.github.com/en/github/managing-large-files/conditions-for-large-files). Hence you need to download two different weights: the ones for yolo and the ones for deep sort

Tracking

Tracking can be run on most video formats

python3 track.py --source ...
  • Video: --source file.mp4
  • Webcam: --source 0
  • RTSP stream: --source rtsp://170.93.143.139/rtplive/470011e600ef003a004ee33696235daa
  • HTTP stream: --source http://wmccpinetop.axiscam.net/mjpg/video.mjpg

MOT compliant results can be saved to inference/output by

python3 track.py --source ... --save-txt

Other information

For more detailed information about the algorithms and their corresponding lisences used in this project access their official github implementations.