系统环境#
| 系统 | Debian 13 |
|---|---|
| Python | 3.10.18 |
| PyTorch | 2.8.0+cu129 |
| TorchVision | 0.23.0+cu129 |
| Cuda | 13.0 |
| setuptools | 78.1.1 |
复现步骤 (MOT20)#
下载代码及安装依赖#
git clone https://github.com/ifzhang/ByteTrack.git
cd ByteTrackbash修改 requirements.txt 文件
# 使用更新版本的 onnx
onnx
onnxruntime
onnxsimtxt在安装依赖库之前先装 cmake
sudo apt update
sudo apt install cmakebash安装依赖库
pip3 install -r requirements.txt
python3 setup.py developbash安装其他库
# 安装pycocotools
pip3 install cython; pip3 install 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
# 安装cython_bbox
pip3 install cython_bboxbash准备数据集和预训练模型#
下载 MOT20数据集 ↗ 。
解压到 /datasets/MOT20 路径下。
选择需要的预模型下载:
| Model | MOTA | IDF1 | IDs | FPS |
|---|---|---|---|---|
| 消融模型:在 CrowdHuman 和 MOT17 半训练集上训练,在 MOT17 半验证集上评估。 | ||||
bytetrack_ablation [google], [baidu(code:eeo8)] | 76.6 | 79.3 | 159 | 29.6 |
| MOT17 测试模型:在 CrowdHuman、MOT17、Cityperson 和 ETHZ 上训练,在 MOT17 训练集上评估。 标准模型 | ||||
bytetrack_x_mot17 [google], [baidu(code:ic0i)] | 90.0 | 83.3 | 422 | 29.6 |
bytetrack_l_mot17 [google], [baidu(code:1cml)] | 88.7 | 80.7 | 460 | 43.7 |
bytetrack_m_mot17 [google], [baidu(code:u3m4)] | 87.0 | 80.1 | 477 | 54.1 |
bytetrack_s_mot17 [google], [baidu(code:qflm)] | 79.2 | 74.3 | 533 | 64.5 |
| MOT20 测试模型:在 CrowdHuman 和 MOT20 上训练,在 MOT20 训练集上评估。 | ||||
bytetrack_x_mot20 [google], [baidu(code:3apd)] | 93.4 | 89.3 | 1057 | 17.5 |
代码修改#
np.float#
np.float 在 Python 3.10 中被弃用,改为使用 np.float64。
使用正则匹配替换:搜索 \bnp\.float\b(?!\d) 替换为 np.float64 。
运行 Demo#
在项目的根目录下运行:
python3 tools/demo_track.py video -f exps/example/mot/yolox_s_mix_det.py -c pretrained/bytetrack_s_mot17.pth.tar --path videos/palace.mp4 --fp16 --fuse --save_resultbash得到如下图所示的带有检测测框的视频:

数据处理#
进行预测之前,需要将数据集转换为 COCO 格式
python3 tools/convert_mot20_to_coco.pybash预测#
python3 tools/track.py -f exps/example/mot/yolox_x_mix_mot20_ch.py -c pretrained/bytetrack_x_mot20.pth.tar -b 1 -d 1 --fp16 --fuse --match_thresh 0.7 --mot20bash将生成的结果提交到 MOTChallenge ↗ 评估。