|
2 | 2 |
|
3 | 3 | ## 更新记录
|
4 | 4 |
|
| 5 | +**2022.11.10**更新了如何设置数据集路径的说明, 请参见README的`track.py路径读取说明`部分. |
| 6 | + |
5 | 7 | **2022.11.09**修复了BoT-SORT中的一处错误[issue 16](https://github.com/JackWoo0831/Yolov7-tracker/issues/16), 加粗了边界框与字体.
|
6 | 8 |
|
7 | 9 | **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
|
81 | 83 | ```
|
82 | 84 | > 更多训练信息参考[YOLO v7](https://github.com/WongKinYiu/yolov7)
|
83 | 85 |
|
| 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 | + |
84 | 134 | ## 跟踪
|
85 | 135 |
|
86 | 136 | ***在跟踪之前***, 您需要选择读取数据的方式, 即`opts.data_format`参数, 如果选择`yolo`格式, 您需要在工程根目录下按照`yolo`的方式(例如本仓库的`./visdrone/test.txt`), 您需要修改`track.py`中的`DATA_ROOT`等变量, 与`test.txt`中的路径配合起来. 如果使用数据集原本的路径, 要根据数据集本身的路径特点进行调整. 一是`track.py`中的路径变量, 二是`track_dataloder.py`中`TrackerLoader`类的初始化函数中的路径.
|
|
0 commit comments