简介

Transformer已经在计算机视觉各个任务上获得了不错的效果,当然也不会放过多目标跟踪,香港大学、字节跳动AI实验室等机构在2020年最后一天挂到Arxiv上的这篇文章就是第一个将Transformer用于多目标跟踪的文章,尽管紧随其后就出现了TrackFormer这样类似的作品,不过本人觉得TransTrack效果目前看来好一些,本文就自己的理解谈谈这篇文章。

  • 论文标题

    TransTrack: Multiple-Object Tracking with Transformer

  • 论文地址

    http://arxiv.org/abs/2012.15460

  • 论文源码

    https://github.com/PeizeSun/TransTrack

介绍

回顾MOT的核心思路,如下图所示,目前TBD范式的多目标跟踪方法依然受限于复杂的pipeline,这带来了大量的计算代价,如下图(a)所示,一如当年的DeepSORT,检测和跟踪任务分开进行,这会带来一些比较严重的问题:一方面,这种两个任务分开进行会造成它们不能共享有效的信息带来额外的算力消耗;另一方面,连续两帧间的无序目标对和每帧中不完整的检测都为跟踪算法带来了极大的挑战。因此,JDE范式的产生其实是MOT领域的发展非常重要的一步。

上图的(b)其实是SOT中常见的孪生网络,这种结构本质上就是Query-Key机制,目标对象是query而各个图像区域是keys。直接将这个思路引入MOT中也是可行的,前一帧的目标特征作为query,当前帧的图像特征作为key,这就是上图©的由来。然而,仅仅将Query-Key机制引入MOT中效果非常差,主要是FN指标上的表现(在检测中的直观含义就是漏检),原因也很简单,因为当前帧出现的新目标的特征肯定不存在于query中,因此当然无法获取key,这也就造成了新目标的缺失。

因此,回到这篇论文的初衷,能否设计一种基于Query-Key机制的MOT框架,它能输出有序目标集也能检测新目标的出现呢?这就诞生了TransTrack,一个联合检测和跟踪(JDE范式)的新框架,它利用Query-Key机制来跟踪当前帧中已存在的目标并且检测新目标。

先简单地看一下这个pipeline的设计,它基于Query-Key目前最火热的Transformer架构构建。最中间的key来自骨干网络对当前帧图像提取的特征图,而query按照两个分支的需求分别来自上一帧的目标特征query集和一个可学习的目标query集。这两个分支都很有意思,我们先看下面这个检测分支,这里这个learned object query思路来自于DETR,是一种可学习的表示,它能逐渐学会从key中查询到目标的位置从而完成检测,想知道得更明白得可以去看看DETR论文。可以很明显地看明白,这个检测分支完成了当前帧上所有目标的检测得到detection boxes。然后我们看上面这个跟踪框分支,这个object feature query其实就是上一帧的检测分支产生的目标的特征向量,这个object feature query从key中查询目标当前帧中位置,用CenterTrack的思路来理解,这可以认为是一个位移预测分支,它最终得到tracking boxes。最后,由于跟踪框和检测框都在当前帧上了,进行简单的IOU匹配就能完成跟踪了,至此,MOT任务完成。

回顾上面这个TransTrack的设计,其实很清晰地发现其优势,那就是JDE范式下地同时优化两个子网络,速度很快。不过,这个基于检测框和跟踪框匹配的思路,让人有点梦回DeepSORT啊

TransTrack解读相关推荐

  1. transformer with mot

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

  2. TransCenter解读

    本文介绍这篇出自MIT的多目标跟踪方向的新论文,其将transformer和基于Center的目标检测与跟踪联合到一起,设计了一个全新的多目标跟踪框架,超越了此前的TransTrack和TrackFo ...

  3. TrackFormer解读

    TrackFormer和TransTrack一样是基于Transformer在MOT上的工作,其中一位作者就是DETR的作者,相比TransTrack虽然MOTA上不是很高,但是IDF1和IDs都是好 ...

  4. Python Re 模块超全解读!详细

    内行必看!Python Re 模块超全解读! 2019.08.08 18:59:45字数 953阅读 121 re模块下的函数 compile(pattern):创建模式对象 > import ...

  5. Bert系列(二)——源码解读之模型主体

    本篇文章主要是解读模型主体代码modeling.py.在阅读这篇文章之前希望读者们对bert的相关理论有一定的了解,尤其是transformer的结构原理,网上的资料很多,本文内容对原理部分就不做过多 ...

  6. Bert系列(三)——源码解读之Pre-train

    https://www.jianshu.com/p/22e462f01d8c pre-train是迁移学习的基础,虽然Google已经发布了各种预训练好的模型,而且因为资源消耗巨大,自己再预训练也不现 ...

  7. NLP突破性成果 BERT 模型详细解读 bert参数微调

    https://zhuanlan.zhihu.com/p/46997268 NLP突破性成果 BERT 模型详细解读 章鱼小丸子 不懂算法的产品经理不是好的程序员 ​关注她 82 人赞了该文章 Goo ...

  8. 解读模拟摇杆原理及实验

    解读模拟摇杆原理及实验 Interpreting Analog Sticks 当游戏支持控制器时,玩家可能会一直使用模拟摇杆.在整个体验过程中,钉住输入处理可能会对质量产生重大影响.让来看一些核心概念 ...

  9. 自监督学习(Self-Supervised Learning)多篇论文解读(下)

    自监督学习(Self-Supervised Learning)多篇论文解读(下) 之前的研究思路主要是设计各种各样的pretext任务,比如patch相对位置预测.旋转预测.灰度图片上色.视频帧排序等 ...

最新文章

  1. CLR via C#(17)--接口
  2. python映射类型-Python 的映射数据类型有哪些?零基础小白入门学习必看
  3. groovy定义变量获取当前时间_IDEA不愧为神器,结合Groovy脚本,简直无敌!
  4. Spring Security 案例实现和执行流程剖析
  5. 【洛谷P4841】城市规划【指数型生成函数】【麦克劳林级数】【多项式对数】
  6. Java:GraalVM数据库流性能
  7. php 分布式 session,浅析PHP分布式中Redis实现Session的方法
  8. 第二阶段冲刺第六天站立会议
  9. IDM(PC端下载) -Chrome浏览器插件
  10. 腾讯视频显示网络连接服务器失败怎么办,腾讯视频不能投屏怎么回事 腾讯视频无法投屏的解决方法...
  11. 淘宝订单API接口获取订单
  12. 云虎拜年,好运连连!虎年限定三件套来啦
  13. WinForm c#操作Excel
  14. 计算机硬盘分区安全,如何安全、简便的对固态硬盘分区?
  15. js修改美化系统alert
  16. win7计算机磁盘清理,win7电脑清理磁盘的操作过程
  17. 【概率论】5-2:伯努利和二项分布(The Bernoulli and Binomial Distributions)
  18. 动作捕捉技术在四足仿生机器人研究中的应用
  19. 2014 SuperMap GIS自主创新与应用研讨会资料集
  20. 4个步骤,搭建接口测试自动化框架

热门文章

  1. 前端用node及forever部署
  2. 天玑机器人颈椎_第三代国产骨科手术机器人“天玑”在安徽“首秀”
  3. 达芬奇密码 第六十一章
  4. 我为什么相信以貌取人
  5. 虚幻引擎(14)-测量模型长宽高
  6. Tyvj P1143 飘飘乎居士的约会
  7. jsp+servlet的增删改查页面
  8. Elastic8.2下载和安装教程
  9. 暑假N天乐【比赛篇】 —— 2019杭电暑期多校训练营(第三场)
  10. JAVA计算机毕业设计伊伊物流公司的管理系统Mybatis+源码+数据库+lw文档+系统+调试部署