Skip to content

Commit afc7719

Browse files
authored
Update README.md
1 parent 214d5f3 commit afc7719

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

README.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## 更新记录
44

5+
**2022.11.10**更新了如何设置数据集路径的说明, 请参见README的`track.py路径读取说明`部分.
6+
57
**2022.11.09**修复了BoT-SORT中的一处错误[issue 16](https://github.com/JackWoo0831/Yolov7-tracker/issues/16), 加粗了边界框与字体.
68

79
**2022.11.08**更新了track.py, track_yolov5.py, basetrack.py和tracker_dataloader.py, 修复了yolo格式读取数据以及保存视频功能的一些bug, 并增加了隔帧检测的功能(大多数时候用不到).
@@ -81,6 +83,54 @@ python train_aux.py --dataset visdrone --workers 8 --device <$GPU_id$> --batch-s
8183
```
8284
> 更多训练信息参考[YOLO v7](https://github.com/WongKinYiu/yolov7)
8385
86+
## `track.py`路径读取说明
87+
88+
通常来讲, 一个MOT数据集的目录结构大概遵循`划分(训练、测试等)---序列---图片与标注`的结构, 如下所示:
89+
90+
~~~
91+
{DATASET ROOT}
92+
|-- dataset name
93+
| |-- train
94+
| | |-- sequence name
95+
| | | |--images
96+
| | |-- ...
97+
| |-- val
98+
| | |-- ...
99+
| |-- test
100+
| | |-- ...
101+
~~~
102+
103+
因为这个代码是基于YOLO检测器的, 所以您可以遵循数据集本来的格式(data_foramt = origin), 也可以遵循YOLO格式(data_foramt = yolo). 下面分别介绍.
104+
105+
***1. origin***
106+
107+
origin意味着您直接使用数据集原本的路径, **而不是通过yolo要求的txt格式读取.** `track.py``track_yolov5.py`中的**DATA_ROOT变量的值应为具体到序列下面的路径**. 以VisDrone为例, 如果要测试VisDrone2019测试集的视频, 目录为`/data/datasets/VisDrone2019/VisDrone2019-MOT-test-dev`, 在测试集目录下有annotations和sequences两个文件夹, 分别是标注和图片, 则您需要指定DATA_ROOT变量:
108+
109+
```
110+
DATA_ROOT的值应为/data/datasets/VisDrone2019/VisDrone2019-MOT-test-dev/sequences, 即DATA_ROOT目录下应该为各个视频序列的文件夹.
111+
```
112+
113+
***2. yolo***
114+
115+
yolo格式意味着您通过yolo训练时所要求的txt文件读取序列. 我们知道yolo要求txt文件记录图片的路径, 例如:
116+
117+
```
118+
VisDrone2019/images/VisDrone2019-MOT-test-dev/uav0000120_04775_v/0000001.jpg
119+
```
120+
121+
完整的路径是`/data/datasets/VisDrone2019/images/VisDrone2019-MOT-test-dev/uav0000120_04775_v/0000001.jpg`, 我们以`/`分割字符串, 则倒数第二个元素就是序列名称, 所以如果以yolo格式读取数据, 您需要指定以下两处:
122+
123+
```
124+
1. 读取哪个txt文件.
125+
126+
2. 在tracker/tracker_dataloader.py的TrackerLoader类中, 指定self.DATA_ROOT属性, 保证和txt中连起来是图片的准确路径.
127+
```
128+
129+
***总之, 可能需要根据不同的数据集调整数据的读取方式. 总的原则是, 要能读清楚有哪些序列, 并且让TrackerLoader的self.img_files变量读到每个图片的路径.***
130+
131+
132+
133+
84134
## 跟踪
85135

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

0 commit comments

Comments
 (0)