Skip to content

[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