Rinne's Blog

Back

系统环境#

系统Debian 13
Python3.10.18
PyTorch2.8.0+cu129
TorchVision0.23.0+cu129
Cuda13.0
setuptools78.1.1

复现步骤 (MOT20)#

下载代码及安装依赖#

git clone https://github.com/ifzhang/ByteTrack.git
cd ByteTrack
bash

修改 requirements.txt 文件

# 使用更新版本的 onnx
onnx
onnxruntime
onnxsim
txt

在安装依赖库之前先装 cmake

sudo apt update
sudo apt install cmake
bash

安装依赖库

pip3 install -r requirements.txt
python3 setup.py develop
bash

安装其他库

# 安装pycocotools
pip3 install cython; pip3 install 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
# 安装cython_bbox
pip3 install cython_bbox
bash

准备数据集和预训练模型#

下载 MOT20数据集 。 解压到 /datasets/MOT20 路径下。

选择需要的预模型下载:

ModelMOTAIDF1IDsFPS
消融模型:在 CrowdHuman 和 MOT17 半训练集上训练,在 MOT17 半验证集上评估。

bytetrack_ablation [google], [baidu(code:eeo8)]

76.679.315929.6
MOT17 测试模型:在 CrowdHuman、MOT17、Cityperson 和 ETHZ 上训练,在 MOT17 训练集上评估。  标准模型

bytetrack_x_mot17 [google], [baidu(code:ic0i)]

90.083.342229.6

bytetrack_l_mot17 [google], [baidu(code:1cml)]

88.780.746043.7

bytetrack_m_mot17 [google], [baidu(code:u3m4)]

87.080.147754.1

bytetrack_s_mot17 [google], [baidu(code:qflm)]

79.274.353364.5
MOT20 测试模型:在 CrowdHuman 和 MOT20 上训练,在 MOT20 训练集上评估。

bytetrack_x_mot20 [google], [baidu(code:3apd)]

93.489.3105717.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_result
bash

得到如下图所示的带有检测测框的视频: 测试结果示意图

数据处理#

进行预测之前,需要将数据集转换为 COCO 格式

python3 tools/convert_mot20_to_coco.py
bash

预测#

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 --mot20
bash

将生成的结果提交到 MOTChallenge 评估。

©
ByteTrack复现记录
https://astro-pure.js.org/blog/research/bytetrack-reproduce
Author Rinne
Published at 2025年10月12日
Comment seems to stuck. Try to refresh?✨