[CVPR 2023] OVTrack:开放词汇多目标跟踪框架
📄 论文标题:OVTrack: Open-Vocabulary Multiple Object Tracking 🗓 发布会议:CVPR 2023 📚 论文链接:PDF 💻 项目地址:https://github.com/SysCV/ovtrack
🔍 背景简介
传统多目标跟踪(MOT)方法仅限于训练时见过的封闭类集合,难以处理开放环境中涌现的新类物体。 OVTrack 提出了一种开放词汇(Open-Vocabulary)支持的多目标跟踪方法,首次将**预训练视觉-语言模型(如 CLIP)**引入 MOT 任务,结合检测与语言嵌入实现泛化能力强、类名自由扩展的目标跟踪。
🧠 核心思想
OVTrack 基于以下关键理念构建:
✅ 1. 开放词汇目标检测(Open-Vocabulary Detection)
借助如 GLIP/ViLD 等预训练视觉-语言模型进行图像区域的自由类别目标检测,支持任意语言提示的目标识别。
✅ 2. 关联策略 - 特征融合再识别(Re-ID)
通过检测框的外观特征和语言嵌入构建目标表示,使用最近邻匹配与运动模型进行 ID 关联,完成跨帧跟踪。
✅ 3. 模块解耦设计
将 detection、Re-ID、tracking 解耦,适配任意 OV 检测器,并灵活替换或扩展每一阶段。
⚙️ 框架结构
总体流程如下图所示:
[ 图像帧 + 文本提示 ]
↓
[ OV 检测器(如 GLIP) ]
↓
[ 获取候选框 + 特征 ]
↓
[ 特征匹配 & 运动预测(Kalman) ]
↓
[ 分配 ID,输出 tracking 结果 ]
🔧 模块功能概览
| 模块 | 说明 |
|---|---|
| OV 检测器 | 使用如 GLIP、ViLD 或 OWL-ViT 提取任意类别候选框 |
| 文本提示(prompt) | 人类输入的查询文本(如 "person", "dog", "cup") |
| 视觉特征提取 | 使用 CLIP/GLIP 输出检测框内图像区域的视觉特征 |
| Re-ID + 运动模型 | 基于外观特征 + Kalman filter 进行 ID 分配与更新 |
| Tracking 模块 | 输出目标轨迹,包括 bbox 和 ID 标签 |
🧪 实验效果
OVTrack 在多个 benchmark 上取得优异效果:
📊 TAO 数据集(开放类多目标跟踪)
| 方法 | MOTA ↑ | IDF1 ↑ | AP ↑ |
|---|---|---|---|
| TransTrack | 21.6 | 25.3 | 28.7 |
| ByteTrack | 23.7 | 27.9 | 28.3 |
| OVTrack (Ours) | 29.1 | 34.7 | 33.8 |
📦 LVIS + TAO 设置(大规模开放类)
- 支持超 1,000 类目标跟踪
- 不需要针对每一类进行单独训练
🔁 与其他方法对比
| 方法 | 开放词汇检测 | 跟踪能力 | 支持文本提示 | 架构解耦 | 特点 |
|---|---|---|---|---|---|
| ByteTrack | ❌ | ✅ | ❌ | ❌ | 快速稳定的 MOT baseline |
| TransTrack | ❌ | ✅ | ❌ | ❌ | Transformer-based tracking |
| GLIP + Re-ID | ✅ | 部分支持 | ✅ | 部分支持 | 检测强但 tracking 较弱 |
| OVTrack | ✅ | ✅ | ✅ | ✅ | 真正开放词汇级别的 MOT |
📦 安装与快速使用
环境依赖:
- Python 3.8+
- PyTorch >= 1.10
- CLIP, GLIP, Detectron2
- scipy, opencv, cython
快速开始:
git clone https://github.com/SysCV/ovtrack.git
cd ovtrack
conda create -n ovtrack python=3.8
conda activate ovtrack
pip install -r requirements.txt
运行 demo 示例:
python track.py --config configs/glip_ovtrack.yaml --input demo.mp4 --prompt "person, car, backpack"
💡 应用场景
- 📹 视频监控与城市安防:支持任意物体的实时跟踪
- 🧠 智能问答与交互:用户可通过文本提示“跟踪那个绿色水壶”实现特定物体跟踪
- 🎮 虚拟现实/增强现实:动态场景中的对象感知与交互
🌟 技术优势总结
- ✅ 首个将 Open-Vocabulary 检测与多目标跟踪融合的方法
- ✅ 支持大规模类别自由跟踪(不限于训练集类别)
- ✅ 模块解耦,易于与 ViLD/OWL-ViT 等检测器集成
- ✅ 不依赖特定数据集即可泛化到新场景、新物体
Ref
- https://github.com/SysCV/ovtrack
- https://openaccess.thecvf.com/content/CVPR2023/papers/Li_OVTrack_Open-Vocabulary_Multiple_Object_Tracking_CVPR_2023_paper.pdf
- https://blog.csdn.net/qq_34919792/article/details/130705648
- https://www.jianshu.com/p/93b4be9c6a36
- https://blog.csdn.net/mfq2008/article/details/134715263
- https://github.com/SysCV/ovtrack/blob/main/docs/GET_STARTED.md