11种跟踪算法、一套接口:BoxMOT多目标跟踪完整上手指南
检测器能告诉你"画面里有什么",却回答不了"这辆车和上一帧是不是同一辆"。做安防监控、交通分析或体育视频统计时,给目标分配稳定 ID 往往是搭建视频分析系统最卡的一环。BoxMOT 是一个开源多目标跟踪框架,把检测器、ReID 外观编码器和跟踪器拆成可插拔组件:检测模型可任意搭配,内置 11 种主流跟踪算法,同时支持轴对齐框(AABB)与旋转框(OBB)两条跟踪路径。
🧩 能力总览:一张表看懂它能做什么
| 功能/组件 | 特点 | 适用场景 |
|---|---|---|
| 11 种跟踪算法 | ByteTrack、BoT-SORT、OcSort、StrongSORT、DeepOcSort、HybridSORT、SFSORT、BoostTrack、OccluBoost、MafHda、EagerMOT,共用同一套 update() 接口与配置体系 | 在相同数据上横向对比算法、择优上线 |
| AABB + OBB 双几何 | 旋转检测直接以 (cx, cy, w, h, angle) 输入即可跟踪 | 车辆、旋转框等需要 OBB 的场景 |
| 原生 C++ 后端 | 多个核心跟踪器有生产级 C++ 实现,--tracker-backend cpp 切换,指标与 Python 路径一致,可用 CMake 嵌入独立工程 | 边缘部署、低延迟推理 |
| ReID 完整工作流 | 内置 OSNet、MLFN 等重识别模型,train-reid / eval-reid / compare-reid 一条龙训练与评测 | 外观特征是瓶颈时自训 ReID 模型 |
| 数据集与评测 | materialize 把检测/掩码/特征缓存为可复用的 Parquet 构建,boxmot eval 在 MOT17、SportsMOT、MMOT OBB 等基准上输出 HOTA/MOTA/IDF1 | 基准复现、算法选型实验 |
| 掩码引导关联 | EdgeTAM 生成时序掩码并作为关联线索喂给跟踪器 | 遮挡严重、需要更稳 ID 的场景 |
每个算法独立放在 boxmot/trackers/ 下,基类、配置与工厂统一收敛在 boxmot/trackers/common/,切换跟踪器时调用方代码不用改。
🚀 安装步骤:5 分钟跑通第一次跟踪
BoxMOT 支持 Python 3.10–3.13,从 PyPI 安装即可:
pip install boxmot
boxmot --help
装完直接用一条命令对摄像头(0 为相机索引)做检测加跟踪,并保存、显示结果:
boxmot track --detector yolo26n --reid lmbn_n_duke --tracker occluboost \
--source 0 --save --show
如果你已有检测序列、想嵌进自己的程序,Python API 更短:
import numpy as np
from boxmot import OccluBoost
tracker = OccluBoost()
dets = np.array([[100, 200, 300, 400, 0.9, 0]]) # x1, y1, x2, y2, conf, cls
frame = np.zeros((480, 640, 3), dtype=np.uint8) # BGR 图像
tracks = tracker.update(dets, frame)
print(tracks[:, 4].astype(int)) # 各目标的跟踪 ID
各参数(GPU 设备、数据来源、输出选项)的详细说明在 docs/modes/track.md 与 docs/getting-started/installation.md。
🎯 如何选择合适的跟踪器
- 求快、遮挡少:选 ByteTrack 或 OcSort,纯几何关联、不消费图像像素,CPU 上跑得轻松;
- 遮挡多、怕换 ID:选 BoT-SORT、StrongSORT、DeepOcSort 或 HybridSORT 这类引入 ReID 外观与相机运动补偿的算法;其中 OccluBoost 与 HybridSORT 在 MOT17、MMOT OBB 基准上的 HOTA 表现最好,可作为首选对比对象;
- 有 3D 检测、标定或掩码输入:用 EagerMOT(3D 框 + 相机标定)或 MafHda(实例掩码),它们是双模态跟踪器,输入要求以 docs/trackers/index.md 中的输入支持矩阵为准。
📺 适合用在哪些业务里
- 智能安防监控:跨画面给行人分配稳定 ID,下游告警与统计模块不再被换 ID 导致的重复计数干扰;
- 自动驾驶数据管线:用 EagerMOT 路径处理多目 2D/3D 检测,或回放已存预测做可复现的跟踪评测;
- 体育赛事分析:框架自带 SportsMOT 评测基线,一条
eval命令就能得到多算法的 HOTA/MOTA/IDF1 对比表; - 人流统计与工业视觉:先用 ByteTrack 系拿快速基线,精度不够时再换成外观类算法,管线代码不动。
🔍 深挖指引:下一步去哪看
- 算法对比与输入要求矩阵:docs/trackers/index.md
- 各算法参数配置(YAML 位于 boxmot/configs/trackers/):docs/config/trackers.md
- 基准评测与评测后处理:docs/guides/evaluation.md
- 把原生 C++ 跟踪器嵌入独立项目:docs/native/index.md
- 完整 Python API 参考:docs/python/high-level.md
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




