Skip to content

Commit 70921cd

Browse files
committed
add MOT17 support
1 parent 4cb75ad commit 70921cd

File tree

12 files changed

+81313
-340
lines changed

12 files changed

+81313
-340
lines changed

C_BIoU2.gif

12.3 MB
Loading

README.md

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# YOLO v7 + 各种tracker实现多目标跟踪
22

3-
## 更新记录
3+
## 0. 更新记录
4+
5+
**2023.1.15**加入了**MOT17数据集**的训练与测试功能, 增加了MOT17转yolo格式的代码(`./tools/convert_MOT17_to_yolo.py`), 转换的过程中强制使得坐标合法, 且忽略了遮挡率>=0.75的目标. 您可以采用此代码转换并训练, 具体请见后面的说明. 在使用tracker的时候, 注意将`data_format`设置为yolo, 这样可以直接根据txt文件的路径读取图片.
46

57
**2023.1.14**加入了当前DanceTrack的SOTA[C_BIoUTracker](https://arxiv.org/pdf/2211.14317v2.pdf), 该论文提出了一种增广的IoU来避免目标的瞬间大范围移动, 且弃用了Kalman滤波. 该代码没有开源, 我是按照自己的理解进行了复现. **有错误非常欢迎指出**.
68

@@ -19,12 +21,12 @@
1921
**2022.09.27**修复了STrack类中update不更新外观的问题, 代码有较大更改, **您可能需要重新下载```./tracker```文件夹**.
2022
尝试加入StrongSORT, 但是目前还不work:(, 尽力调一调
2123

22-
## 亮点
24+
## 1. 亮点
2325
1. 统一代码风格, 对多种tracker重新整理, 详细注释, 方便阅读, 适合初学者
2426
2. 多类多目标跟踪
2527
3. 各种tracker集成在一个文件夹"./tracker/"内, 方便移植到其他detector.
2628

27-
## 集成的tracker:
29+
## 2. 集成的tracker:
2830
SORT,
2931
DeepSORT,
3032
ByteTrack([ECCV2022](https://arxiv.org/pdf/2110.06864)),
@@ -34,14 +36,17 @@ UAVMOT([CVPR2022](https://openaccess.thecvf.com/content/CVPR2022/papers/Liu_Mult
3436
C_BIoUTracker([arxiv2211](https://arxiv.org/pdf/2211.14317v2.pdf))
3537

3638

37-
## TODO
39+
## 3. TODO
3840
- [x] 集成UAVMOT([CVPR2022](https://openaccess.thecvf.com/content/CVPR2022/papers/Liu_Multi-Object_Tracking_Meets_Moving_UAV_CVPR_2022_paper.pdf))
3941
- [ ] 达到更好的结果(缓解类别不平衡, 小目标等等)...
40-
- [ ] MOT challenge数据集
42+
- [x] MOT challenge数据集
4143
- [x] 更换Re-ID模型(更换了OSNet, 效果不好...)
4244

4345

44-
## 效果
46+
## 4. 效果
47+
48+
### VisDrone
49+
4550
在VisDrone2019-MOT train训练约10 epochs, 采用YOLO v7 w6结构, COCO预训练模型基础上训练. GPU: single Tesla A100, 每个epoch约40min.
4651
在VisDrone2019-MOT test dev测试, 跟踪所有的类别.
4752

@@ -62,13 +67,21 @@ YOLO v7 VisDrone训练完模型:
6267
6368
![gif](https://github.com/JackWoo0831/Yolov7-tracker/blob/master/test2.gif)
6469

65-
## 环境配置
70+
### MOT17
71+
72+
在MOT17 train训练约15epochs, 采用YOLO v7 w6结构, COCO预训练模型基础上训练. GPU: single Tesla A100, 每个epoch约3.5min.
73+
74+
这是在测试集03序列的C_BIoU Tracker的效果:
75+
76+
![gif](https://github.com/JackWoo0831/Yolov7-tracker/blob/master/C_BIoU2.gif)
77+
78+
## 5. 环境配置
6679
- python=3.7.0 pytorch=1.7.0 torchvision=0.8.0 cudatoolkit=11.0
6780
- [py-motmetrics](https://github.com/cheind/py-motmetrics) (`pip install motmetrics`)
6881
- cython-bbox (`pip install cython_bbox`)
6982
- opencv
7083

71-
## 训练
84+
## 6. 训练
7285

7386
训练遵循YOLO v7的训练方式, 数据集格式可以参照[YOLO v5 train custom data](https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data)
7487
即数据集文件遵循
@@ -88,7 +101,7 @@ python train_aux.py --dataset visdrone --workers 8 --device <$GPU_id$> --batch-s
88101
```
89102
> 更多训练信息参考[YOLO v7](https://github.com/WongKinYiu/yolov7)
90103
91-
## `track.py`路径读取说明
104+
## 7. `track.py`路径读取说明
92105

93106
通常来讲, 一个MOT数据集的目录结构大概遵循`划分(训练、测试等)---序列---图片与标注`的结构, 如下所示:
94107

@@ -136,7 +149,9 @@ VisDrone2019/images/VisDrone2019-MOT-test-dev/uav0000120_04775_v/0000001.jpg
136149

137150

138151

139-
## 跟踪
152+
## 8. 跟踪
153+
154+
140155

141156
***在跟踪之前***, 您需要选择读取数据的方式, 即`opts.data_format`参数, 如果选择`yolo`格式, 您需要在工程根目录下按照`yolo`的方式(例如本仓库的`./visdrone/test.txt`), 您需要修改`track.py`中的`DATA_ROOT`等变量, 与`test.txt`中的路径配合起来. 如果使用数据集原本的路径, 要根据数据集本身的路径特点进行调整. 一是`track.py`中的路径变量, 二是`track_dataloder.py``TrackerLoader`类的初始化函数中的路径.
142157

@@ -182,6 +197,14 @@ python tracker/track.py --dataset visdrone --data_format origin --tracker strong
182197
python tracker/track.py --dataset visdrone --data_format origin --tracker c_biou --model_path runs/train/yolov7-w6-custom4/weights/best.pt
183198
```
184199

200+
***MOT17数据集***: 与下面的命令一致:
201+
202+
```shell
203+
python tracker/track.py --dataset mot17 --data_format yolo --tracker ${TRACKER} --model_path ${MODEL_PATH}
204+
```
205+
206+
207+
185208
> StrongSORT中OSNet的下载地址, 请参照https://github.com/mikel-brostrom/Yolov5_StrongSORT_OSNet/blob/master/strong_sort/deep/reid_model_factory.py
186209
187210
> 您也可以通过增加
@@ -190,7 +213,7 @@ python tracker/track.py --dataset visdrone --data_format origin --tracker c_biou
190213
> ```
191214
> 来控制保存跟踪结果的图片与视频.
192215
193-
## 将./tracker应用于其他detector
216+
## 9. 将./tracker应用于其他detector
194217
195218
只需保证detector的输出格式为
196219
```shell

data/mot17.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
train: ./mot17/train.txt
2+
val: ./mot17/val.txt
3+
test: ./mot17/val.txt
4+
5+
nc: 1
6+
7+
names: ['pedestrain']

0 commit comments

Comments
 (0)