Files
chill_notes/专业领域/ByteTrack/ByteTrack安装配置.md
2026-04-21 22:12:47 +08:00

4.0 KiB
Executable File

ByteTrack 安装配置

环境搭建指南


环境要求

项目 要求
Python ≥ 3.8
GPU NVIDIA (推荐 V100)
CUDA ≥ 11.1
PyTorch ≥ 1.7

1. 安装 ByteTrack

# 克隆代码
git clone https://github.com/ifzhang/ByteTrack.git
cd ByteTrack

# 安装依赖
pip3 install -r requirements.txt

# 安装为开发模式
python3 setup.py develop

2. 安装 COCO 评估工具

pip3 install cython
pip3 install 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'

3. 安装 cython_bbox

pip3 install cython_bbox

4. Docker 安装(推荐)

# 构建镜像
docker build -t bytetrack:latest .

# 启动容器
docker run --gpus all -it --rm \
  -v $PWD/pretrained:/workspace/ByteTrack/pretrained \
  -v $PWD/datasets:/workspace/ByteTrack/datasets \
  bytetrack:latest

5. 数据集准备

目录结构

datasets/
├── mot/
│   ├── train/
│   └── test/
├── crowdhuman/
│   ├── Crowdhuman_train/
│   ├── Crowdhuman_val/
│   ├── annotation_train.odgt
│   └── annotation_val.odgt
├── MOT20/
│   ├── train/
│   └── test/
├── Cityscapes/
│   ├── images/
│   └── labels_with_ids/
└── ETHZ/
    └── ...

常用数据集

数据集 用途 下载
MOT17 训练/测试 MOTChallenge
MOT20 拥挤场景 MOTChallenge
CrowdHuman 预训练 官网

转换为 COCO 格式

# 转换 MOT17
python3 tools/convert_mot17_to_coco.py

# 转换 MOT20
python3 tools/convert_mot20_to_coco.py

# 转换 CrowdHuman
python3 tools/convert_crowdhuman_to_coco.py

6. 预训练模型下载

# 创建目录
mkdir -p pretrained

# 下载模型(根据需要)
# ByteTrack_ablation (用于消融实验)
# ByteTrack_x_mot17 (大模型)
# ByteTrack_l_mot17 (中模型)
# ByteTrack_m_mot17
# ByteTrack_s_mot17 (小模型)

模型下载:


7. YOLOX 预训练模型

YOLOX Model Zoo 下载:

# X 模型 (精度最高)
wget https://github.com/Megvii-BaseDetection/YOLOX/releases/download/0.1.0/yolox_x.pth

# 移动到预训练目录
mv yolox_x.pth pretrained/

8. 常用命令

测试追踪

# 基础追踪
python3 tools/track.py \
  -f exps/example/mot/yolox_x_ablation.py \
  -c pretrained/bytetrack_ablation.pth.tar \
  -b 1 -d 1 --fp16 --fuse

# 使用自己的检测结果
python3 tools/demo_track.py video \
  -f exps/example/mot/yolox_x_mix_det.py \
  -c pretrained/bytetrack_x_mot17.pth.tar \
  --fp16 --fuse --save_result

模型训练

# 消融实验
python3 tools/train.py \
  -f exps/example/mot/yolox_x_ablation.py \
  -d 8 -b 48 --fp16 -o \
  -c pretrained/yolox_x.pth

# MOT17 完整训练
python3 tools/train.py \
  -f exps/example/mot/yolox_x_mix_det.py \
  -d 8 -b 48 --fp16 -o \
  -c pretrained/yolox_x.pth

9. 部署支持

部署方式 说明
ONNX Python ONNXRuntime 部署
TensorRT Python / C++ 部署
ncnn C++ 部署
DeepStream NVIDIA 边缘设备

详见 deploy/ 目录。


10. 常见问题

Q: 显存不足?

# 减小 batch size
-b 24  # 原 48

Q: MOT20 边界溢出?

yolox/data/data_augment.py 中添加裁剪操作。

Q: 如何使用自己的检测器?

from yolox.tracker.byte_tracker import BYTETracker

tracker = BYTETracker(args)

for image in images:
    dets = your_detector(image)  # (N, 5) [x1,y1,x2,y2,score]
    online_targets = tracker.update(dets, info_imgs, img_size)

参考:ByteTrack GitHub