https://github.com/bestsongc/yolov7-tracker

Yolo v5, v7, v8 and several Multi-Object Tracker(SORT, DeepSORT, ByteTrack, BoT-SORT, etc.) in MOT17 and VisDrone2019 Dataset. It uses a unified style and integrated tracker for easy embedding in your own projects.

https://github.com/bestsongc/yolov7-tracker

Science Score: 10.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (7.0%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Yolo v5, v7, v8 and several Multi-Object Tracker(SORT, DeepSORT, ByteTrack, BoT-SORT, etc.) in MOT17 and VisDrone2019 Dataset. It uses a unified style and integrated tracker for easy embedding in your own projects.

Basic Info
  • Host: GitHub
  • Owner: Bestsongc
  • License: gpl-3.0
  • Default Branch: master
  • Homepage:
  • Size: 116 MB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Fork of JackWoo0831/Yolov7-tracker
Created over 2 years ago · Last pushed almost 3 years ago

https://github.com/Bestsongc/Yolov7-tracker/blob/master/

# YOLO v7 + tracker

## 0. 

**2023.9.16**: `track_demo.py`, `yolov7``non_maximum_supress`, , bug  

**2023.5.6[]**: v5, v7, (), ***bug, ***. , v8, resize, .



## 1.   
1. , tracker, , ,  
2.  
3. tracker"./tracker/", detector.  

## 2. tracker:
SORT,  
DeepSORT,  
ByteTrack([ECCV2022](https://arxiv.org/pdf/2110.06864)),  
DeepMOT([CVPR2020](https://openaccess.thecvf.com/content_CVPR_2020/papers/Xu_How_to_Train_Your_Deep_Multi-Object_Tracker_CVPR_2020_paper.pdf)),  
BoT-SORT([arxiv2206](https://arxiv.org/pdf/2206.14651.pdf)),   
UAVMOT([CVPR2022](https://openaccess.thecvf.com/content/CVPR2022/papers/Liu_Multi-Object_Tracking_Meets_Moving_UAV_CVPR_2022_paper.pdf))  
C_BIoUTracker([arxiv2211](https://arxiv.org/pdf/2211.14317v2.pdf))


## 3. TODO
- [x] UAVMOT([CVPR2022](https://openaccess.thecvf.com/content/CVPR2022/papers/Liu_Multi-Object_Tracking_Meets_Moving_UAV_CVPR_2022_paper.pdf))
- [ ] (, )...
- [x] MOT challenge
- [x] Re-ID(OSNet, ...)


## 4. 

### VisDrone

VisDrone2019-MOT train10 epochs, YOLO v7 w6, COCO. GPU: single Tesla A100, epoch40min.  
VisDrone2019-MOT test dev, . 

YOLO v7 VisDrone: 
> https://pan.baidu.com/s/1m13Q8Lx_hrPVFZI6lLDrWQ 
> ndkf

| Tracker       | MOTA   | IDF1 | IDS | fps |
|:--------------|:-------:|:------:|:------:|:------:|
|SORT       | **26.4**   | 36.4 |3264 |12.2 |
|DeepSORT  | 16.4   | 33.1 | 1387 | 12.51|
|ByteTrack  | 25.1   | 40.8| 1590 | 14.32|
|DeepMOT  | 15.0  | 24.8|3666 |7.64|
|BoT-SORT  | 23.0 | **41.4**|**1014** |5.41|
|UAVMOT   | 25.0 | 40.5 | 1644 |**18.56**|

> fps

![gif](https://github.com/JackWoo0831/Yolov7-tracker/blob/master/test2.gif)

### MOT17

MOT17 train15epochs, YOLO v7 w6, COCO. GPU: single Tesla A100, epoch3.5min.

03C_BIoU Tracker:  

![gif](https://github.com/JackWoo0831/Yolov7-tracker/blob/master/C_BIoU2.gif)

## 5.   
- python=3.7.0 pytorch=1.7.0 torchvision=0.8.0 cudatoolkit=11.0
- [py-motmetrics](https://github.com/cheind/py-motmetrics)  (`pip install motmetrics`)
- cython-bbox (`pip install cython_bbox`)
- opencv

## 6. 

YOLO v7, [YOLO v5 train custom data](https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data)  

```shell
class x_center y_center width height
```  
x_center y_center width height****.  
VisDrone, :  
```shell
python tools/convert_VisDrone_to_yolov2.py --split_name VisDrone2019-MOT-train --generate_imgs
```  
> .  

, YOLO v7-w6(single GPU):  
```shell
python train_aux.py --dataset visdrone --workers 8 --device <$GPU_id$> --batch-size 16 --data data/visdrone_all.yaml --img 1280 1280 --cfg cfg/training/yolov7-w6.yaml --weights <$YOLO v7 pretrained model path$> --name yolov7-w6-custom --hyp data/hyp.scratch.custom.yaml
```  
> [YOLO v7](https://github.com/WongKinYiu/yolov7)

## 7. `track.py`  

, MOT`()------`, :

~~~
{DATASET ROOT}
|-- dataset name
|   |-- train
|   |   |-- sequence name
|   |   |    |--images
|   |   |-- ...
|   |-- val
|   |   |-- ...
|   |-- test
|   |   |-- ...
~~~

YOLO, (data_foramt = origin), YOLO(data_foramt = yolo). . 

***1. origin***

origin, **yolotxt.**  `track.py`  `track_yolov5.py`**DATA_ROOT**. VisDrone, VisDrone2019, `/data/datasets/VisDrone2019/VisDrone2019-MOT-test-dev`, annotationssequences, , DATA_ROOT: 

```
DATA_ROOT/data/datasets/VisDrone2019/VisDrone2019-MOT-test-dev/sequences, DATA_ROOT.
```

***2. yolo[]***

yoloyolotxt. yolotxt, :

```
VisDrone2019/images/VisDrone2019-MOT-test-dev/uav0000120_04775_v/0000001.jpg
```

`/data/datasets/VisDrone2019/images/VisDrone2019-MOT-test-dev/uav0000120_04775_v/0000001.jpg`, `/`, , yolo, :  

```
1. txt. 

2. tracker/tracker_dataloader.pyTrackerLoader, self.DATA_ROOT, txt.
```

***, . , , TrackerLoaderself.img_files.***




## 8.   



******, , `opts.data_format`, `yolo`, `yolo`(`./visdrone/test.txt`), `track.py``DATA_ROOT`, `test.txt`. , . `track.py`, `track_dataloder.py``TrackerLoader`.  

> model_path detector model,  runs/train/yolov7-w6-custom4/weights/best.pt  

***SORT*** : 
```shell
python tracker/track.py --dataset visdrone --data_format origin --tracker sort --model_path runs/train/yolov7-w6-custom4/weights/best.pt
```  

***DeepSORT***:  
```shell
python tracker/track.py --dataset visdrone --data_format origin --tracker deepsort --model_path runs/train/yolov7-w6-custom4/weights/best.pt
```

***ByteTrack***:  
```shell
python tracker/track.py --dataset visdrone --data_format origin --tracker bytetrack --model_path runs/train/yolov7-w6-custom4/weights/best.pt 
```

***DeepMOT***:  
```shell
python tracker/track.py --dataset visdrone --data_format origin --tracker deepmot --model_path runs/train/yolov7-w6-custom4/weights/best.pt
```

***BoT-SORT***:  
```shell
python tracker/track.py --dataset visdrone --data_format origin --tracker botsort --model_path runs/train/yolov7-w6-custom4/weights/best.pt
```

***UAVMOT***
```shell
python tracker/track.py --dataset visdrone --data_format origin --tracker uavmot --model_path runs/train/yolov7-w6-custom4/weights/best.pt
```

***StrongSORT***( )
```shell
python tracker/track.py --dataset visdrone --data_format origin --tracker strongsort --model_path runs/train/yolov7-w6-custom4/weights/best.pt --reid_model_path weights/osnet_x1_0.pth
```

***C_BIoUTracker***
```shell
python tracker/track.py --dataset visdrone --data_format origin --tracker c_biou --model_path runs/train/yolov7-w6-custom4/weights/best.pt
```

***MOT17***: :

```shell
python tracker/track.py --dataset mot17 --data_format yolo --tracker ${TRACKER} --model_path ${MODEL_PATH}
```

******:

```shell
python tracker/track_demo.py --obj demo.mp4 
```


> StrongSORTOSNet, https://github.com/mikel-brostrom/Yolov5_StrongSORT_OSNet/blob/master/strong_sort/deep/reid_model_factory.py

> 
> ```shell
> --save_images --save_videos
> ```
> .  

## 9. ./trackerdetector  

detector  
```shell
(batch_size, num_objects, x_center, y_center, width, height, obj_conf, category)
```
yolo
```shell
(batch_size, num_objects, x_center, y_center, width, height, obj_conf, category_conf0, category_conf1, category_conf2, ...)
```
> : batch_size1. 

##  run_yolov7.txt


## 10. 


**2023.3.14**`DeepSORT``C_BIoUTracker`bug.  

**2023.2.28**`track_demo.py`, .  

**2023.2.24********YOLO v8**, `tracker/track_demo.py``tracker/track_yolov8.py`.  , , `obj`, :

```shell
python tracker/track_demo.py --obj demo.mp4 
```
YOLO v8 . YOLO v8[YOLO v8](https://github.com/ultralytics/ultralytics)  


**2023.2.11**TrackEval, [issue35](https://github.com/JackWoo0831/Yolov7-tracker/issues/35)  

**2023.2.10**[DeepSORT](https://github.com/JackWoo0831/Yolov7-tracker/blob/master/tracker/deepsort.py), DeepSORT****, DeepSORT.  

**2023.1.15****MOT17**, MOT17yolo(`./tools/convert_MOT17_to_yolo.py`), , >=0.75. , . tracker, `data_format`yolo, txt.  

**2023.1.14**DanceTrackSOTA[C_BIoUTracker](https://arxiv.org/pdf/2211.14317v2.pdf), IoU, Kalman. , . ****.  

**2022.11.26**[TrackEval](https://github.com/JonathonLuiten/TrackEval), MOT, VisDroneUAVDT. `yaml`, . TrackEval, `track.py``track_yolov5.py``parser.add_argument('--track_eval', type=bool, default=True, help='Use TrackEval to evaluate')``False`.

**2022.11.10**, README`track.py`.

**2022.11.09**BoT-SORT[issue 16](https://github.com/JackWoo0831/Yolov7-tracker/issues/16), .  

**2022.11.08**track.py, track_yolov5.py, basetrack.pytracker_dataloader.py, yolobug, (). 

**2022.10.22**, (linear assignment, ), cascade matching([StrongSORT](https://github.com/dyhBUPT/StrongSORT/blob/master/deep_sort/tracker.py)line94-134)  

**2022.10.15**yolo v5, track.py, trackerv5([repo](https://github.com/ultralytics/yolov5)). [yolo v5](https://github.com/JackWoo0831/Yolov7-tracker/blob/master/tracker/track_yolov5.py). 

**2022.09.27[]**STrackupdate, , **```./tracker```**. 
StrongSORT, work:(, 

Owner

  • Name: Bestsongc
  • Login: Bestsongc
  • Kind: user

GitHub Events

Total
Last Year