Name Last Update
..
__pycache__ Loading commit data...
deep_sort Loading commit data...
model_data Loading commit data...
output Loading commit data...
public/data Loading commit data...
test_video Loading commit data...
tools Loading commit data...
yolo4 Loading commit data...
README.md Loading commit data...
convert.py Loading commit data...
detection_rslt.txt Loading commit data...
main.py Loading commit data...
requirements.txt Loading commit data...
yolo.py Loading commit data...

YOLOv4 + Deep_SORT

Object Tracking & Counting Demo - [BiliBili] [Chinese Version]

Requirement

Development Environment: Deep-Learning-Environment-Setup

  • OpenCV
  • sklean
  • pillow
  • numpy 1.15.0
  • torch 1.3.0
  • tensorflow-gpu 1.13.1
  • CUDA 10.0 ***

It uses:

  • Detection: YOLOv4 to detect objects on each of the video frames. - 用自己的数据训练YOLOv4模型

  • Tracking: Deep_SORT to track those objects over different frames.

This repository contains code for Simple Online and Realtime Tracking with a Deep Association Metric (Deep SORT). We extend the original SORT algorithm to integrate appearance information based on a deep appearance descriptor. See the arXiv preprint for more information.

Quick Start

0.Requirements

pip install -r requirements.txt

1. Download the code to your computer.

git clone https://github.com/yehengchen/Object-Detection-and-Tracking.git

2. Download [yolov4.weights] [Baidu] - mnv6 and place it in deep_sort_yolov4/model_data/

Here you can download my trained [yolo4_weight.h5] - w17w weights for detecting person/car/bicycle,etc.

3. Convert the Darknet YOLO model to a Keras model:

$ python convert.py model_data/yolov4.cfg model_data/yolov4.weights model_data/yolo.h5

4. Run the YOLO_DEEP_SORT:

$ python main.py -c [CLASS NAME] -i [INPUT VIDEO PATH]

$ python main.py -c person -i ./test_video/testvideo.avi

5. Can change [deep_sort_yolov3/yolo.py] `Line 100_` to your tracking object_

DeepSORT pre-trained weights using people-ReID datasets only for person

    if predicted_class != args["class"]:
               continue

    if predicted_class != 'person' and predicted_class != 'car':
               continue

Train on Market1501 & MARS

People Re-identification model

cosine_metric_learning for training a metric feature representation to be used with the deep_sort tracker.

Citation

YOLOv4 :

@misc{bochkovskiy2020yolov4,
title={YOLOv4: Optimal Speed and Accuracy of Object Detection},
author={Alexey Bochkovskiy and Chien-Yao Wang and Hong-Yuan Mark Liao},
year={2020},
eprint={2004.10934},
archivePrefix={arXiv},
primaryClass={cs.CV}
}

Deep_SORT :

@inproceedings{Wojke2017simple,
title={Simple Online and Realtime Tracking with a Deep Association Metric},
author={Wojke, Nicolai and Bewley, Alex and Paulus, Dietrich},
booktitle={2017 IEEE International Conference on Image Processing (ICIP)},
year={2017},
pages={3645--3649},
organization={IEEE},
doi={10.1109/ICIP.2017.8296962}
}

@inproceedings{Wojke2018deep,
title={Deep Cosine Metric Learning for Person Re-identification},
author={Wojke, Nicolai and Bewley, Alex},
booktitle={2018 IEEE Winter Conference on Applications of Computer Vision (WACV)},
year={2018},
pages={748--756},
organization={IEEE},
doi={10.1109/WACV.2018.00087}
}

Reference

Github:deep_sort@Nicolai Wojke nwojke

Github:deep_sort_yolov3@Qidian213

Github:Deep-SORT-YOLOv4@LeonLok