[CVPR 2022] TrackFormer:基于 Transformer 的端到端多目标跟踪框架
📄 论文:TrackFormer: Multi-Object Tracking with Transformers 📅 会议:CVPR 2022 🔗 论文地址:https://arxiv.org/abs/2101.02702 💻 GitHub:https://github.com/timmeinhardt/trackformer
一、研究背景
多目标跟踪(Multi-Object Tracking, MOT)传统采用两阶段方式:先检测,再通过匈牙利匹配、ReID 或运动模型进行数据关联。此类流程虽有效,但存在以下问题:
- 非端到端,需手工设计关联规则;
- 难以处理遮挡、消失与再出现等复杂情形;
- 推理速度受限,难以统一优化。
TrackFormer 是首个纯基于 DETR 框架的 MOT 方法,提出将“跟踪”转化为“跨时间的序列预测问题”,利用 Transformer 实现检测与关联统一处理,无需额外 ReID 模块或运动预测器。
二、核心思想
TrackFormer 基于 DETR,核心思想在于:
通过递归性地将上一帧目标的解码器状态作为当前帧输入,从而实现帧间 ID 关联。
简而言之,TrackFormer 不是通过 IoU 或 ReID 匹配,而是通过延续上帧 query 的状态,追踪目标本身。
三、整体架构
1. 图像特征提取
- 使用 CNN(如 ResNet50)提取图像特征;
- 多尺度融合以适应不同大小目标。
2. Transformer 编码器(Encoder)
- 输入图像特征 + 位置编码;
- 自注意力建模空间上下文。
3. Transformer 解码器(Decoder)
- 接收两类 queries:
✅ Track Queries(已跟踪目标)
- 来自上一帧 decoder 输出;
- 作为“延续目标”再次用于解码;
- 若目标消失,模型可学习输出 no-object 类。
✅ Detection Queries(新目标)
- Learnable queries;
- 用于发现新进入画面中的目标。
📌 将这两类 query 合并输入 decoder,一步同时实现检测与追踪。
四、输出结构
每个 decoder 输出被送入两条 MLP:
- 边界框预测:\([x, y, w, h]\)
- 类别预测(含 no-object)
此外,每个 query 会被赋予一个ID,用于跨帧跟踪目标。
五、跟踪方式说明
TrackFormer 没有显式使用任何传统的 ReID 或运动模型,而是:
- 利用每帧 query 向量的递归传递;
- 隐式建模目标运动轨迹;
- 匹配与延续在 Transformer 内部完成。
如果某个 track query 在当前帧预测为 no-object,即表示目标暂时消失。
六、损失函数设计
TrackFormer 采用 DETR 相同的 bipartite matching 策略:
1. 匹配策略(Hungarian Matching)
- 基于类别和边界框误差计算总匹配成本;
- 每帧目标与输出 query 一对一分配。
2. 损失项
总损失为:
- \(\mathcal{L}_{cls}\):交叉熵损失(类别)
- \(\mathcal{L}_{L1}\):边界框位置误差
- \(\mathcal{L}_{giou}\):边界框重叠程度
七、TrackFormer vs. TransTrack 对比
| 模型 | TrackFormer | TransTrack |
|---|---|---|
| 框架来源 | 基于 DETR | 基于 DETR |
| 关联方式 | 上帧 decoder output 作为 track queries | 显式将上一帧 bbox encode 为 track queries |
| ReID 特征 | ❌ 不使用 | ❌ 不使用 |
| 运动模型 | ❌ 不使用 | ❌ 不使用 |
| 新目标检测 | learnable detection queries | learnable detection queries |
| ID 分配机制 | 递归 query ID 传递 | 匹配结果隐式 ID 分配 |
| 是否端到端 | ✅ | ✅ |
简要总结:
- TransTrack 将前一帧 bbox 编码为 track query;
- TrackFormer 将上一帧 decoder 输出直接作为 query,是更“语义连续性”的方式。
八、实验结果(MOT17)
| 方法 | MOTA ↑ | IDF1 ↑ | HOTA ↑ | IDS ↓ | FPS ↑ |
|---|---|---|---|---|---|
| Tracktor++ | 56.3 | 55.1 | - | 2,072 | 17 |
| FairMOT | 76.2 | 72.3 | 63.1 | 3,303 | 25 |
| TransTrack | 75.9 | 63.5 | 60.5 | 2,121 | 18 |
| TrackFormer | 74.1 | 68.6 | 61.8 | 1,074 | 12 |
- TrackFormer ID Switch 更少,说明关联更稳定;
- FPS 略慢,但结构更端到端、鲁棒。
九、关键创新点
- 🧠 引入递归式 decoder query 表示目标延续性,实现无 ReID 的多目标跟踪;
- ⚡ 检测 + 跟踪统一处理,结构整洁;
- 🔄 消失目标可自然处理,适配复杂场景;
- 📦 端到端训练,兼容已有 DETR 实现。
TrackFormer 和 MOTR (Multi-Object Tracking with Transformers) 虽然都基于 DETR 架构并用于 多目标跟踪(MOT),但它们在 query 设计、关联方式、框架整合深度 等方面有重要区别。以下是对两者的详细对比分析:
🆚 TrackFormer vs. MOTR
| 项目 | TrackFormer [CVPR 2022] | MOTR [ECCV 2022] |
|---|---|---|
| 📚 论文 | https://arxiv.org/abs/2101.02702 | https://arxiv.org/abs/2102.00763 |
| 📁 代码 | https://github.com/timmeinhardt/trackformer | https://github.com/megvii-research/MOTR |
| 🔧 基础架构 | DETR | DETR + Deformable DETR |
| 🧠 跟踪 query 来源 | 上一帧 decoder 输出 | 上一帧目标的位置(+ 匹配结果) |
| 📥 新目标检测 | learnable queries | 动态生成新 query |
| 🧵 ID 管理方式 | decoder 递归传递 | 显式维护 track query pool(带 ID) |
| 🔄 Query 生命周期 | query 递归传递,自动学习消失 | query 显式激活/终止管理 |
| 🚀 关键点 | 简洁递归设计,无需额外模块 | 结合 Deformable DETR,性能更强,结构复杂 |
| 🧪 是否使用时序信息 | 间接建模(递归 query) | 显式跨帧建模 |
| 🎯 新目标引导方式 | detection query 捕获新目标 | MOTR 自动初始化新 query 并分配 ID |
| 🧰 模型复杂度 | 相对较小 | 更复杂,依赖 deformable attention |
🎯 结构图比较
🔹 TrackFormer
帧 t 图像 → Backbone → Transformer Encoder
↑
帧 t−1 decoder output(track query) → Transformer Decoder
↓
输出框 + 类别 + ID(隐式传递)
- 使用上一帧的 decoder 输出作为当前帧 query;
- query 是语义向量,没有显式位置;
- 不显式维护 ID pool。
🔹 MOTR
帧 t 图像 → Backbone → Deformable Encoder
↑
track query pool(带目标 ID) → Decoder
↓
输出框 + 类别 + ID(显式 ID 管理)
- 使用 Deformable DETR 架构提升性能;
- track query 是结构化对象,带显式 ID 和状态(激活/结束);
- 可显式初始化、更新、终止 track;
- 支持可变数量目标和动态 query 管理。
🧠 区别总结
| 维度 | TrackFormer | MOTR |
|---|---|---|
| Query 机制 | 隐式 | 显式维护和控制 |
| Query 生命周期管理 | 模型自动学习 | 显式设计管理机制 |
| 新目标处理 | Detection query 捕获 | 自动初始化新 track query |
| 使用 Deformable Attention | 否 | 是(提升性能) |
| 是否 end-to-end | 是 | 是 |
| 是否支持遮挡与重现 | 有限 | 更鲁棒(ID 生命周期可控) |
| 实际效果 | 好,结构简洁 | 更强,效果更优但结构更复杂 |
🏁 总结一句话
TrackFormer 是一个结构优雅、设计简洁的 “递归 query” MOT 框架;而 MOTR 更像是 DETR + 显式目标生命周期管理机制的结合,结构更复杂但鲁棒性更强,适合大规模、长序列跟踪任务。
Ref
- https://emil-jiang.github.io/2023/11/21/论文笔记-TrackFormer/
- https://blog.csdn.net/zhouchen1998/article/details/114778192
- https://zhuanlan.zhihu.com/p/342810065
- https://cloud.tencent.com/developer/article/1776291
- https://emil-jiang.github.io/2023/11/21/%E8%AE%BA%E6%96%87%E7%AC%94%E8%AE%B0-TrackFormer/
- https://xie.infoq.cn/article/6963edfb79b57e4091c9314e7
- https://blog.csdn.net/wjpwjpwjp0831/article/details/121392440