GTR

Title: Global Tracking Transformers

paper: https://arxiv.org/pdf/2203.13250.pdf

code: https://github.com/xingyizhou/GTR

得克萨斯大学奥斯汀分校, Apple
CVPR2022

Introduction

​ 本文提出了一种新的基于transformer的全局多目标跟踪体系结构。网络以一个短时间的帧序列作为输入,并为所有对象产生全局轨迹。核心组件是一个全局跟踪转换器,它操作序列中所有帧中的对象。该转换器对所有帧中的对象特征进行编码,并使用track query将它们分组。**track query是来自单个帧的对象特征,并自然地产生独特的轨迹。**Global Tracking Transformers不需要中间的成对分组或组合关联,并且可以与一个目标检测器联合训练。

​ 它在MOT17基准测试上取得了75.3MOTA和59.1HOTA。

​ Global Tracking Transformers(GTR)对来自多个连续帧的检测进行编码,并使用track query将它们分组为轨迹。这些查询是在非最大抑制后的单个帧(例如,在线跟踪器中的当前帧)的检测特征,并被GTR转换为轨迹。每个轨迹查询通过使用softmax分布从每个帧分配一个检测,生成一个全局轨迹。

在推理过程中,以滑动窗口的方式运行GTR,中等时间大小为32帧,并在线链接窗口之间的轨迹。该模型在时间窗口内是端到端可微分的。

Method

Object detection.

​ 定义III作为一张图片。目标检测的目标是识别和定位所有对象。检测器将图像III作为输入,并产生一组对象{pi}\lbrace p_{i} \rbrace{pi​},其位置{bi∈R4}\lbrace b_{i} \in \R^{4} \rbrace{bi​∈R4}作为输出。对于多类目标检测,第二阶段的获取目标的特征,并从一组预定义的类别CCC和一个细化的位置b^i\hat b_{i}b^i​中生成一个分类分数。对于单类检测(如行人检测),则可以省略第二个阶段。

Tracking.

​ 定义I1,I2,...ITI^{1},I^{2},...I^{T}I1,I2,...IT作为一系列图像,跟踪器的目标是找到轨迹τ1,τ2,...τK\tau_{1},\tau_{2},...\tau_{K}τ1​,τ2​,...τK​的在时间上的关联对象。每个轨迹τk=[τk1,...,τkT]τ_{k}=[\tau_{k}^{1},...,\tau_{k}^{T}]τk​=[τk1​,...,τkT​]描述了物体kkk在时间ttt的轨迹。τkt=∅\tau_{k}^{t}=\emptysetτkt​=∅表示对象kkk不能在帧ttt中。跟踪器可以有选择地预测每个轨迹的对象类得分sks_{k}sk​,通常作为其每帧切片的平均类。

Tracking by detection

​ Tracking by detection将跟踪问题分解为每帧检测和帧间对象关联。Object detection首先找到NtN_{t}Nt​个候选对象,即每一帧的检测对象的边界框b1t,b2t,...b_{1}^{t},b_{2}^{t},...b1t​,b2t​,...。然后用对象分配器αkt∈{∅,1,2,...Nt}\alpha_{k}^{t}\in \lbrace \emptyset,1,2,...N_{t} \rbraceαkt​∈{∅,1,2,...Nt​}将存在的轨迹τkt\tau_{k}^{t}τkt​连接到当前帧的候选对象:

​ 之前的大多数工作都通过相邻或相邻帧中的对象之间的成对匹配来定义关联,或者依赖于离线组合优化来进行全局关联。在这项工作中,我们展示了如何执行联合检测和全局关联在一个单一的前向网络。该网络以端到端的方式在一个32帧的视频中学习全局跟踪。我们利用了关联问题的一个概率公式,并在第4节中展示了如何在变压器架构中实例化跟踪。

Global tracking transformers

​ Global Tracking Transformers(GTR)以概率和可微的方式关联对象。它将帧中ItI_{t}It​的对象pitp_{i}^{t}pit​链接到一组轨迹查询qkq_{k}qk​。每个轨迹查询qkq_{k}qk​在所有帧的对象上产生一个对象关联得分向量g∈RNg\in \R^{N}g∈RN。然后,这个关联得分向量生成一个每帧每个对象的关联αkt∈{∅,1,2,...Nt}\alpha_{k}^{t}\in \lbrace \emptyset,1,2,...N_{t} \rbraceαkt​∈{∅,1,2,...Nt​},其中αkt=∅\alpha_{k}^{t}= \emptysetαkt​=∅表示没有关联,NtN_{t}Nt​是在帧TtT_{t}Tt​中检测到的对象的数量。关联的组合然后产生一个轨迹τk\tau_{k}τk​。

Tracking transformers

​ 定义p1t,p2t,...pNttp_{1}^{t},p_{2}^{t},...p_{N_{t}}^{t}p1t​,p2t​,...pNt​t​是图像ItI_{t}It​中的所有高置信度的对象。Bt={b1t,...bNtt}B^{t}=\lbrace b_{1}^{t},...b_{N_{t}}^{t} \rbraceBt={b1t​,...bNt​t​}是它们对应的边界框。设fitf_{i}^{t}fit​是从边界框中提取的DDD维特征。Ft={f1t,...fNtt}F^{t}=\lbrace f_{1}^{t},...f_{N_{t}}^{t} \rbraceFt={f1t​,...fNt​t​}是图像中所有检测特征的集合,而F=F1∪...∪FTF=F^{1} \cup ...\cup F^{T}F=F1∪...∪FT是所有视频帧中特征的集合。所有对象特征的集合F∈RN×DF\in \R^{N \times D}F∈RN×D是Tracking transformers的输入,其中N=∑tTNtN=\sum _{t}^{T}N_{t}N=∑tT​Nt​是在所有帧中的检测总数。Tracking transformers采用特征FFF和一个轨迹查询qk∈RDq_{k}\in \R^{D}qk​∈RD,并产生一个轨迹特定的关联评分g(qk,F)∈RNg(q_{k},F)\in \R^{N}g(qk​,F)∈RN。定义git(qk,F)∈Rg_{i}^{t}(q_{k},F)\in \Rgit​(qk​,F)∈R是第ttt帧中第iii个对象的分数,其中gi∅(qk,F)=0g_{i}^{\emptyset}(q_{k},F)=0gi∅​(qk​,F)=0表示在ttt时刻没有关联。

​ 然后,Tracking Transformers预测每个轨迹kkk中所有对象iii上的关联分布。将其建模为每个时间步长ttt的一个独立的softmax激活:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rjTgb9ib-1649332229888)(\image\image-20220407190547067.png)]

因为 detector产生一个边界框bitb_{i}^{t}bit​为每个对象pitp_{i}^{t}pit​,在时间ttt内轨迹kkk和边界框有一个一对一的映射联合分布PAP_{A}PA​和分布PtP_{t}Pt​:
Pt(b∣qk,F)=∑i=1Nt1[b=bit]PA(αt=i∣qk,F)P_{t}(b|q_{k},F)=\sum_{i=1}^{N_{t}}1_{[b=b_{i}^{t}]}P_{A}(\alpha^{t}=i|q_{k},F) Pt​(b∣qk​,F)=i=1∑Nt​​1[b=bit​]​PA​(αt=i∣qk​,F)
其中,1[⋅]1_{[\cdot]}1[⋅]​为每个关联的查询分配了一个输出边界框。在实践中,检测器的非最大抑制(NMS)确保了也有一个从PtP_{t}Pt​返回到PAP_APA​的唯一映射。
PT(τ∣qk,F)=∏t=1TPt(τt∣qk,F)P_{T}(\tau|q_{k},F)=\prod_{t=1}^{T}P_{t}(\tau^{t}|q_{k},F) PT​(τ∣qk​,F)=t=1∏T​Pt​(τt∣qk​,F)
在训练过程中,我们最大化了GT轨迹的对数似然值。在推理过程中,我们使用这个可能性以在线的方式产生长期的轨迹。

Training

给定一组GT轨迹τ^1,...τ^K\hat \tau_{1},...\hat \tau_{K}τ^1​,...τ^K​,我们的目标是学习一个估计PAP_APA​的Tracking Transformers,并隐式地估计轨迹分布PTP_TPT​。将Tracking Transformers作为两级探测器Faster rcnn的RoI头,共同训练Tracking Transformers进行检测。在每次训练迭代中,首先获得高置信度的非最大抑制后对象Bt={b1t,...bNtt}B^{t}=\lbrace b_{1}^{t},...b_{N_{t}}^{t} \rbraceBt={b1t​,...bNt​t​},及其对应的特征FtF_{t}Ft​。然后,最大化每个GT轨迹τ\tauτ的log⁡PT(τ∣qk,F)\log P_{T}(\tau|q_{k},F)logPT​(τ∣qk​,F)。这相当于在将τ\tauτ分配给一组对象后,最大化log⁡PA(αt∣qk,F)\log P_{A}(\alpha^{t}|q_{k},F)logPA​(αt∣qk​,F)。我们遵循目标检测,并使用一个简单的交叉过联合(IoU)分配规则:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Urtn3RAg-1649332229889)(\image\image-20220407192044706.png)]

使用这个分配来训练潜在的两阶段检测器的边界盒回归,以及分配似然PAP_APA​。然而,这种分配的可能性进一步取决于接下来定义的轨迹查询qkq_{k}qk​。

Trajectory queries

每个查询qkq_{k}qk​都会生成一个轨迹。在之前的工作中,将对象查询作为网络参数进行学习,并在推理过程中进行固定。这使得查询与图像无关,并且需要对它们进行几乎详尽的枚举。然而,与简单的盒子相比,轨迹处于指数级更大的潜在移动物体空间中,因此需要更多的查询来覆盖该空间。

相反,我们将直接使用适合的对象特征fitf_{i}^{t}fit​作为对象查询。具体来说,假设α^k\hat \alpha_{k}α^k​为根据公式(2)的GT轨迹τk\tau_{k}τk​的匹配对象。任何特征{fα^k11,fα^k22}\lbrace f_{\hat \alpha_{k}^{1}}^{1},f_{\hat \alpha_{k}^{2}}^{2} \rbrace{fα^k1​1​,fα^k2​2​}都可以作为轨迹τk\tau_{k}τk​的轨迹查询。在实践中,我们使用所有TTT帧中的所有对象特征FFF作为查询,并训练转换器以获得TTT的序列长度。

任何不匹配的特征都被用作背景查询,并监督为所有帧生成∅\emptyset∅。我们允许多个查询产生相同的轨迹,并且不需要一对一的匹配的。在推理过程中,我们只使用来自一帧的对象特征作为查询,以避免重复的输出。一个帧内的所有物体特征都是不同的(在标准检测NMS之后),因此产生不同的轨迹。

Training objective

总体训练目标结合了公式(2)中的分配和轨迹查询,以最大限度地提高其分配查询下的每个轨迹的对数似然性。对于每个轨迹τk\tau_{k}τk​,我们优化其赋值的对数似然值α^k\hat \alpha_{k}α^k​:

​ 对于任何不相关的特征,都会产生空的轨迹:

总体损失

我们用标准检测损失与Lasso\mathcal {L}_{asso}Lasso​联合训练,包括分类和边界盒回归损失,以及多类跟踪的选择性第二阶段分类和回归损失,

Online Inference

在推理过程中,我们以滑动窗口的方式在线处理视频流,窗口大小为T=32,stride=1T=32,stride=1T=32,stride=1。对于每个帧ttt,在跟踪变压器之前将图像馈给网络,得到NtN_tNt​个边界框BtB_tBt​和对象特征FtF_tFt​。保留了一个TTT帧的时间历史缓冲区,即B={Bt−T+1,...Bt}B=\lbrace B^{t-T+1},...B^{t} \rbraceB={Bt−T+1,...Bt}和,F={Ft−T+1,...Ft}F=\lbrace F^{t-T+1},...F^{t} \rbraceF={Ft−T+1,...Ft},并对每个滑动窗口运行跟踪变压器。使用当前帧ttt中的对象特征作为轨迹查询qk=Fktqk=F_{k}^{t}qk=Fkt​来生成NtN_tNt​个轨迹。

在第一帧所有的检测结果初始化为轨迹。对于任何后续的帧,使用平均分配似然PAP_APA​作为距离度量,将当前预测的轨迹与现有的轨迹联系起来。使用匈牙利算法来确保从当前的长期轨迹到现有轨迹的映射是唯一的。如果与任何先验轨迹的平均关联得分低于一个阈值θ,就开始一个新的轨迹。否则,将生成轨迹的底层当前检测(查询)附加到匹配的现有轨迹中。

Experiments

Global Tracking Transformers相关推荐

  1. 多目标跟踪综述、论文、数据集大汇总 Awesome Multiple object Tracking

    Awesome Multiple object Tracking(持续更新) 综述 论文 2022 2021 2020 2019 2018 2017 2016 数据集 综述 Multiple Obje ...

  2. 【论文速递】CVPR2022 - 全局跟踪Transformers

    [论文速递]CVPR2022 - 全局跟踪Transformers [论文原文]:Global Tracking Transformers 论文地址:https://arxiv.org/abs/220 ...

  3. 2022CVPR目标跟踪最新论文

    多目标跟踪领域最新论文概况 多目标跟踪 多目标跟踪领域最新论文概况 一.2022年多目标跟踪论文 CVPR2022: 1.Global Tracking Transformers 2.Observat ...

  4. transformer with mot

    encoder的意义在于:全局特征 可以知道这个物体在图中的位置 decoder的意义在于 :移除冗余框 互相通信之后,知道每个query可能得到什么样的一个框 不要去做重复的框 TransTrack ...

  5. 水文勿读【文献汇报】ADS-B信号分析、空管数据分析、航路或终端区飞机密度异常

    国外民用机场起降jy飞机的探测方法.收集一下这方面相关的资料,有一点相关性的都要,ADS-B信号分析.空管数据分析.航路或终端区飞机密度异常等等角度. ●<机载设备数据异常的STCA告警分析&g ...

  6. 【GNSS】PEA软件-GNSS 服务端整网数据处理的开源软件

    PEA软件-GNSS 服务端整网数据处理的开源软件 下载地址 Welcome to the PEA for GNSS processing. Welcome to the Parameter Esti ...

  7. TransCenter: Transformers with Dense Queries for Multiple-Object Tracking

    TransCenter: Transformers with Dense Queries for Multiple-Object Tracking 近期几篇利用transformer进行多目标跟踪的论 ...

  8. [TPAMI-2023] Effective Local and Global Search for Fast Long-Term Tracking

    论文阅读 [TPAMI-2023] Effective Local and Global Search for Fast Long-Term Tracking 论文搜索(studyai.com) 搜索 ...

  9. Learning Spatio-Temporal Transformer for Visual Tracking——精读笔记

    本篇精读笔记,对原文重要部分做了严格翻译,如摘要和总结.对正文部分做了提炼,对重点部分突出标注.对参考文献做了分类.本文内容较长,如果时间有限可以直接跳到感兴趣的小节阅读. 论文地址:https:// ...

  10. [Tracking] KCF + KalmanFilter目标跟踪

    基于KCF和MobileNet V2以及KalmanFilter的摄像头监测系统 简介 这是一次作业.Tracking这一块落后Detection很多年了,一般认为Detection做好了,那么只要能 ...

最新文章

  1. 一文看懂集成学习(详解 bagging、boosting 以及他们的4点区别)
  2. ActFrameWork集成Beetlsql的Mapper功能
  3. java——File类常用方法
  4. 【QGIS入门实战精品教程】4.5:QGIS打开Excel中的点坐标,并生成矢量文件
  5. 关于c/c++语言中*和*使用的详细分析
  6. 服务器c盘显示0字节可用,c盘0字节可用怎么解决 c盘0字节可用处理方法
  7. python内存管理错误的是_Python内存管理机制
  8. 读书笔记之文件和注册表操作
  9. iPhone SDK开发基础之UIPageControl编程
  10. python查看系统句柄数量_查看Linux某个进程打开的文件句柄(file descriptor)数量...
  11. Python pickle模块学习(超级详细)
  12. IK10外壳冲击等级测试
  13. 最互联网的定制家居增长新势力,如何三招实现疫情期的逆势增长?
  14. VSCode 即时英文翻译插件 【翻译(英汉词典)】
  15. 最新版苹果手机html5摇一摇,iphone微信摇一摇失效问题解决
  16. 如何在html上显示时间设置,如何在网页上显示日期的两种方法
  17. chrome Android 前进 后退,停止Chrome后退/前进两根手指滑动
  18. Could not set property ‘XXX‘ of ‘class com.entity.XXX‘
  19. win10 安装Microsoft Project 2010 双击mpp文件提示无法在此电脑上运行该程序解决办法
  20. thinkphp手册

热门文章

  1. Python基础语言学习 day 6 ——列表的遍历、增删改、相关操作、函数和方法
  2. [转载】中移物联网NB模组注册指令生成小工具-M5310/M5310_A
  3. 在ubuntu18.04系统上使用ROS跑ORB-SLAM3时遇到的问题总结
  4. RFT(Rational Functional Test)是IBM开发的一套自动化测试工具,可以测试web, GUI和console。
  5. linux运维工程师问题,2、Linux运维工程师之解决问题思路
  6. 2019年Unity学习资源指南[精心整理]
  7. bcm5396交换机级联配置_「收藏」Cisco交换机安全配置设定
  8. 肺疫面前,段子手出动,但是玩笑也要分场合
  9. 微软的teredo服务器,Win7使用teredo连接IPv6的方法
  10. Error obtaining UI hierarchy Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncExc