BoxMOT:从零到可用的多目标跟踪方案,一篇就够
BoxMOT从零到可用的多目标跟踪方案一篇就够【免费下载链接】boxmotBoxMOT: Pluggable Python and C SOTA multi-object tracking modules with support for axis-aligned and oriented bounding boxes项目地址: https://gitcode.com/GitHub_Trending/bo/boxmot做视频监控时检测模型每帧都能给出框但同一个人跨帧 ID 总是跳变——跟踪就是这条链路里最容易被忽略的一步。BoxMOT 就是解决这个问题的多目标跟踪组件库任意检测器接进来就能得到带连续编号的轨迹ByteTrack、BotSort、StrongSORT、OccluBoost 等算法在同一接口下即插即用还支持 OBB旋转框跟踪与 C 原生实现。 项目定位可插拔的多目标跟踪组件库BoxMOT 是一个 Python 加 C 的组件库检测器、ReID外观特征解决同一人姿态衣着变了还能对上是同一个人的问题编码器和跟踪器各自可替换流水线由这些组件拼装CLI 负责评估、调参和导出。和自写跟踪的区别在于不用自己实现卡尔曼滤波按运动预测下一帧框位置的滤波器加匈牙利匹配把框和轨迹做最优分配的匹配方法再加外观匹配的整套链路MOT 基准评估开箱即用和一揽子工具的区别是组件解耦换单个算法不牵连其余部分。11 个跟踪器的配置文件集中在 trackers/数据集说明在 datasets/。 30秒跑通多目标跟踪源码安装先git clone https://gitcode.com/GitHub_Trending/bo/boxmot否则直接从 PyPI 装。装完一条命令启动摄像头实时跟踪ReID 权重首次运行自动下载pip install boxmot boxmot install --extra yolo boxmot track --source 0 --detector yolov8n --reid osnet_x0_25_msmt17 --tracker botsort --savePython API 同样轻量喂入检测结果和 BGR 图像帧返回带 ID 的轨迹import numpy as np from boxmot import OccluBoost tracker OccluBoost() dets np.array([[100, 200, 300, 400, 0.9, 0]]) frame np.zeros((480, 640, 3), dtypenp.uint8) tracks tracker.update(dets, frame) 场景化方案多目标跟踪的四个典型用法摄像头低配设备实时跟踪适用长期摄像头流只计数展示、不区分个体配置换--tracker bytetrack去掉--reid指定--device cpu效果ByteTrack 只依赖框几何与置信度无外观推理单帧开销最低适合多路并发源、输出、设备等参数见 track 模式文档如果你更在意同一个人的 ID 是否稳定往下看。带外观匹配的行人轨迹跟踪适用人群、货架等遮挡交叉密集、ID 切换不可接受的场景配置选 BotSort 或 StrongSORT加--reid osnet_x0_25_msmt17StrongSORT 额外融合 ECC 背景对齐更稳但更慢效果MOT17 上 BotSort 的 IDF1身份一致性得分82.33高于 ByteTrack 的 79.16代价是每帧多一次外观推理建议放 GPU选定跟踪器后如果想确认A 比 B 在同一数据上到底好多少用 eval。用MOT17基准对比不同跟踪器精度适用选型、复现论文等需要基数的阶段配置复用官方检测器保存的检测结果让跟踪器成为唯一变量boxmot eval --dataset mot17 --split ablation \ --detector yolox-x-mot17 --reid lmbn-n-duke --tracker botsort效果输出 HOTA检测加身份一致性的综合分/MOTA/IDF1检测构建会被缓存换--tracker重跑时不会重新推理检测器OBB旋转框与C原生部署适用车辆、无人机等有明确朝向的目标或要求低延迟的嵌入式产品配置OBB 传 7 列检测cx, cy, w, h, 角度, 置信度, 类别生产环境加--tracker-backend cpp启用原生实现效果C 版算法指标与 Python 路径一致native/ 的 CMake 工程可直接嵌入无 Python 运行时的系统⚡ 性能与调优MOT17 ablation 基准公开检测结果各跟踪器同条件上算法间差距主要体现在 IDF1跟踪器运动模型外观HOTAMOTAIDF1OccluBoost框遮挡处理ReID71.1078.5085.28BotSort框相机运动补偿ReID69.6878.2382.33StrongSORT框ECC对齐ReID必需68.0576.1980.76DeepOcSort框ReID67.9575.8380.54ByteTrack框无67.6878.0479.16OcSort框无66.4474.5577.90三条最关键的调优建议先固定检测器再调跟踪器检测噪声影响大于匹配策略ID 跳变优先开 ReID其次再调track_buffertune模式可自动搜索iou_threshold等阈值️ 多目标跟踪踩坑清单track找不到检测器 → 未装 YOLO 依赖 → 执行boxmot install --extra yoloMac 上 ONNX ReID 卡在 CPU → ONNX 无 MPS 提供方 → 导出 Core ML 或改用 PyTorch 权重CUDA 可用但 ReID 仍走 CPU → 缺 onnxruntime-gpu → 检查 providers 列表报ModuleNotFoundError: boxmot→ 直接运行了脚本 → 用python -m boxmot.engine.cli安装失败 → Python 版本不在 3.10 至 3.13 区间第一次运行直接执行 30 秒命令从摄像头出图后按上表选跟踪器链路稳定后用eval固定基线再用tune搜索阈值。安装时的 cpu 与 cu130 两种 PyTorch 配置及各模式依赖清单见官方文档的 installation 一节。【免费下载链接】boxmotBoxMOT: Pluggable Python and C SOTA multi-object tracking modules with support for axis-aligned and oriented bounding boxes项目地址: https://gitcode.com/GitHub_Trending/bo/boxmot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考