Transformer Meets Tracker: Exploiting Temporal Context for Robust Visual Tracking-程序员宅基地

技术标签: 深度学习  tracker  

前言

CVPR 2021
此文只是概述,详细内容见文章。
论文
代码

一、Abstract

在视频对象跟踪中,连续帧之间存在丰富的时序上下文,在现有的跟踪器中已大大忽略了这些上下文。在这项工作中,我们连接单个视频帧,并通过一个用于稳定的对象跟踪的transformer架构探索它们的时序上下文。与在自然语言处理(NLP)任务中使用Transformer的经典用法不同,我们将其编码器和解码器分为两个并行分支,并在类似于孪生网络的跟踪框架中精心设计它们。Transformer编码器通过基于注意力的特征增强来促进目标模板,这有利于高质量跟踪模型的生成。Transformer解码器将跟踪提示从先前的模板传播到当前帧,从而简化了对象搜索过程。我们的Transformer辅助跟踪框架整洁并以端到端的方式进行了训练。使用提出的Transformer,一种简单的连体匹配方法就可以胜过当前表现最佳的跟踪器。通过将我们的Transformer与最新的判别式跟踪方法相结合,我们的方法在流行的跟踪基准上创下了一些新的最新记录。

二、Contribution

在这里插入图片描述

  1. 我们提出了一个整洁和新颖的Transformer辅助跟踪框架。 据我们所知,这是第一次尝试让Transformer参与视觉跟踪。
  2. 我们同时考虑其特征和注意力转换,以更好地探索Transformer的潜力。我们还修改了经典的Transformer,使其更好地适合跟踪任务。
  3. 为了验证推广,我们将我们设计的Transformer集成到两个流行的跟踪框架中。我们的跟踪器在7个基准上表现出令人鼓舞的结果。

三、Method

1、Revisting Tracking Frameworks

在详细说明我们用于对象跟踪的Transformer之前,为了完整性,我们简要回顾了最近流行的跟踪方法。如下图所示,孪生网络或判别相关滤波器(DCF)等主流跟踪方法可以表述为类似孪生的框架,其中顶部分支使用模板学习跟踪模型,底部分支专注于目标定位。图1

如下图。顶部:transformer编码器接收多个模板特征,以相互聚合表示。底部:transformer译码器将模板功能及其分配的掩码传播到search patch通道,以增强表示。
在这里插入图片描述

2、Transformer for Visual Tracking

主流的跟踪方法可以制定成一个类似孪生的框架。 我们的目标是通过框架关系建模和时序上下文传播来改进这样一个通用的跟踪框架,而不修改它们最初的跟踪方式,如模板匹配。

2.1 Transformer Overview

类似于经典的transformer结构,编码器利用self-attention块来相互加强多个模板特征。在解码过程中,cross-attention块连接模板,搜索分支传播时序上下文(例如:feature and attention)图2

为了适应视觉跟踪任务,在以下几个方面对经典Transformer进行了修改:

  • 编码器-解码器分离。如下图所示,没有将NLP任务中的编码器和解码器进行级叠,而是将编码器和解码器分离为两个分支,以适应站点式的跟踪方法。图3
  • 块权重共享。编码器和解码器中的self-attention块(图2中的黄色框)共享权重,这些权重在相同的特征空间中转换模板和搜索嵌入,以方便进一步的cross-attention计算。
  • 实例规范化。在NLP任务中,word embeddings使用layer normalization进行单独归一化。 由于我们的transformer接收image feature embeddings,我们共同对这些嵌入在实例(image patch)上进行规范化,以保留有价值的image amplitude信息。
  • 瘦身设计。效率对于视觉跟踪场景至关重要。为了达到良好的速度和性能平衡,我们通过省略全连接的前馈层和保持轻量级的single-head attention来简化经典transformer。

2.2 Transformer Encoder

  • 经典transformer中的基本块是attention mechanism,输入为query: Q,key:K和value:V。
  • 采用点积计算query和key之间的相似矩阵AK-Q(具体内容见文章)。
  • 通过矩阵AK-Q,转换value。
  • transformer编码器接收一组模板特征Ti,进一步连接以形成模板特征集成T
  • 为了便于注意计算,我们reshape T to T
  • transformer编码器的主要操作是self-attention,它的目的是相互加强来自多个模板的特征。为此,我们首先计算self-attention map: AT-T
  • 通过AT-T变换template feature得到残余项AT-TT。并与T相加,再进行Ins. Norm得到 T*

2.3 Transformer Decoder

  • transformer解码器的输入为search patch feature:S。
  • reshape S to S,点积计算得到AS-S
  • S*=Ins. Norm(AS-SS+S)
2.3.1 Mask Transformation
  • 得到 cross-attention matrix:AT-S
  • 在视觉跟踪中,知道模板中的目标位置。通过m(y)构造了模板特征的高斯型掩码。
  • 和T一样,连接mi得到M。resahpe为M
  • S*mask=Ins. Norm(AT-SM⊗S*)
2.3.2 Feature Transformation
  • 除了spatial attention,传递context information从T到S也是可行的。
  • 当背景场景在视频中发生剧烈变化时,传递目标表示是有益的,这对暂时传播是不合理的。因此,在特征转换之前,我们首先通过T*⊗M’对模板特征进行掩码,以抑制背景区域。
  • 然后得到S * feat=Ins. Norm( AT-S(T*⊗M’) + S * )

最终得到S * final=Ins. Norm( S * feat +S * mask)

2.4 Tracking with Transformer-enhanced Features

transformer结构通过生成高质量的模板特征编码Tencoded和搜索特征解码Sdecoded来促进跟踪过程。 我们按照两种流行的范例使用Tencoded来学习跟踪模型:

  • Siamese Pipeline:我们简单地将Tencoded中的目标特征裁剪为模板CNN内核,与Sdecoded进行卷积以产生响应,这与SiamFC中的互相关相同。
  • DCF Pipeline:根据DiMP方法中的端到端DCF优化,我们生成一个鉴别CNN内核,使用Tencoded与Sdecoded的卷积生成响应。

在在线跟踪过程中,为了更好地利用时序线索,适应目标外观变化,我们动态更新模板集成T。具体来说,我们删除T中最古老的模板,每5帧将当前收集到的模板特征添加到T中。该功能集成维护的最大大小为20个模板。一旦模板集成T得到更新,我们将计算通过transformer编码器编码的新编码特征Tencoded。虽然transformer编码器使用稀疏(即每5帧),但transformer解码器在每帧中被利用,它通过将表示和注意线索从以前的模板传播到当前搜索补丁来生成每帧解码Sdecoded

人们普遍认为,DiMP中的DCF公式优于孪生网络跟踪器中的简单互相关。然而,在实验中表明,在本文的transformer体系结构的帮助下,一个经典的孪生框架能够对抗最近的DIMP。同时,通过本文的transformer,DiMP跟踪器获得了进一步的性能改进。

四、Experiments

1. Implementation Details

基于孪生网络匹配和基于DiMP的跟踪框架,在下面的实验中,我们将transformer辅助跟踪器分别表示为TrSiam和TrDiMP。

  • backbone为Res-Net 50
  • 在编码器和解码器之前,我们还添加了一个卷积层(3×3Conv)将骨干特征通道从1024减少到512。
  • 输入模板和搜索补丁是目标大小的6倍,并进一步调整到352×352。
  • 使用LaSOT,TrackingNet,GOT-10K,COCO进行离线训练。
  • 所提出的transformer网络以端到端的方式与原始跟踪部件(例如跟踪优化模型和IoUnet)联合训练。
  • 我们的框架被训练为50个epoch,每个epoch1500次迭代,每批36个图像对。 采用ADAM优化器,初始学习速率为0.01,每15个epoch衰减因子为0.2。
  • 在在线跟踪阶段,TrSiam和TrDiMP的主要区别在于跟踪模型的生成方式。 在预测目标定位的响应图后,都采用了最近的概率IoUnet[9]进行目标尺度估计。 我们的跟踪器是使用Py Torch在Python中实现的。 在单个Nvidia GTX1080Ti GPU上,TrSiam和TrdiMP分别工作约35帧/秒(FPS)和26帧/秒(FPS)。

2. Ablation Study

为了验证本文设计的transformer结构的有效性,选择了180个视频的GOT-10k测试集来验证我们的TrSiam和TrDiMP方法。
基于Siam和DIMP基线,验证了transformer中的每个组件:

  • 对Siam和DiMP方法的transformer的实验。根据GOT-10k测试集的平均重叠(AO)来评估性能
    在这里插入图片描述
  • 对本文transformer体系结构的研究。基线跟踪器是TrSiam。评估指标是GOT-10k测试集上的平均重叠(AO)分数在这里插入图片描述
  • Siam(左)和DCF(右)的训练损失曲线图。 通过将特征转换和掩码转换结合起来,我们的方法大大减少了训练损失在这里插入图片描述

3. State-of-the-art Comparisons

将提出的TrSiam和TrdiMP跟踪器与最近最先进的跟踪器进行了比较,测试集包括TrackingNet, GOT-10k,LaSOT, VOT2018, Need for Speed, UAV123,和OTB-2015。

  • TrackingNet在这里插入图片描述

  • GOT-10k在这里插入图片描述

  • LaSOT在这里插入图片描述

  • VOT2018在这里插入图片描述
    在这里插入图片描述

  • NfS,UAV23,OTB2015 datasets in terms of AUC score在这里插入图片描述
    详细分析见文章

ps:本人学疏才浅,若有不对的地方,请及时与我联系,进行更改。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45890238/article/details/115227557

智能推荐

Oracle 12cR1 RAC集群安装(二)--使用图形界面安装-程序员宅基地

文章浏览阅读132次。Oracle 12cR1 RAC集群安装文档:Oracle 12cR1 RAC集群安装(一)--环境准备Oracle 12cR1 RAC集群安装(二)--使用图形界面安装Oracle 12cR1 RAC集群安装(三)--静默安装-------------------------------------------------------------------------------..._configuration type admin managed police managed

【Golang】go编程语言适合哪些项目开发?_go语言开发的项目有哪些-程序员宅基地

文章浏览阅读1.9w次,点赞106次,收藏109次。Go编程语言凭借其简洁、高效和可靠的特性,适用于各种项目开发。无论是网络编程、大数据处理、云计算、Web开发还是嵌入式系统,Go语言都能够提供出色的性能和可扩展性。希望本文能够帮助读者了解Go语言的优势,并在项目开发中做出明智的选择。如果大家对相关文章感兴趣,可以关注公众号"架构殿堂",会持续更新AIGC,java基础面试题, netty, spring boot, spring cloud等系列文章,一系列干货随时送达!_go语言开发的项目有哪些

openlayers加载0级一张的TMS和加载0级两张的WMTS标准的切片地图服务_openalyers 加载tms标准瓦片-程序员宅基地

文章浏览阅读398次,点赞12次,收藏8次。在使用openlayers加载影像地图的过程中,遇到加载TMS标准的本地离线切片显示异常的问题,包括显示层级的异常,和我其他的数据无法对应的问题,查阅资料后发现是坐标系和0级地图分幅的问题,特此记录。解决方法也很简单,要么下载地图切片时候,选择和openlayers一致的0级别地图张数,要么通过openlayers代码进行调整,这里附一下第二种解决方法。查阅后发现问题主要在以下几点。_openalyers 加载tms标准瓦片

ubuntu若干快捷设置问题:高分辨率缩放、免密码等_ubuntu高分辨率缩放-程序员宅基地

文章浏览阅读815次。默认情况高分屏下 UI 元素显得过小,因此需要调整界面的缩放比例。Ubuntu20.04 默认是 GNOME 桌面,GNOME 可以在 Settings>Displays(设置>显示)中开启 HiDPI 支持,以整数倍来调整屏幕比例。第二步:找到 %sudo ALL=(ALL:ALL) ALL 这一行,修改为 %sudo ALL=(ALL:ALL) NOPASSWD:ALL。为了避免每次使用 sudo 命令时都输入密码,我们可以将密码关闭。关闭 sudo 密码。_ubuntu高分辨率缩放

使用GeoScene Pro发布托管要素服务_geoscene pro托管-程序员宅基地

文章浏览阅读483次,点赞8次,收藏9次。使用GeoScene Pro发布托管要素服务_geoscene pro托管

华为云-容器引擎CCE-基本概念-程序员宅基地

文章浏览阅读1.4w次。云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群,支持运行Docker容器。借助云容器引擎,您可以在华为云上轻松部署、管理和扩展容器化应用程序。云容器引擎提供Kubernetes原生API,支持使用kubectl,且提供图形化控制台,让您能够拥有完整的端到端使用体验,使用云容器引擎前,建议您先了解相关的基本概念。集群(Cluster)集群指容器运行所需要的云资源组合,关联了若干云服务器节点、负载均衡等云资源。您可以理解为集群_cce

随便推点

乘法逆元详解(费马小定理与拓展欧几里得)-程序员宅基地

文章浏览阅读780次。什么是乘法逆元?对于整数a,m,如果满足gcd(a,m)=1,怎必定存在x使得,那么x称为a对m的乘法逆元。乘法逆元的用途?对于除法取模(b/a)%m,由于不存在公式(b/a)%m=(b%m)/(a%m),所以必须先计算b/a再取模,但是当a很大是会造成b/a爆精度。乘法逆元的作用就是将这个除法取模变成乘法取模,有(b/a)%m=b*x%m=b%m*x%m,其中x为a对m的乘法逆元。..._乘法逆元

虚拟化+docker概念基本介绍_虚拟化前后的区别-程序员宅基地

文章浏览阅读1.8k次。文章目录引言一、虚拟化简介1.1.虚拟化概述1.2.cpu的时间分片(cpu虚拟化)1.3.cpu虚拟化性性能瓶颈1.4.虚拟化工作原理虚拟化类型虚拟化功能二、Docker容器概述2.1 Docker是什么2.2 使用docker有什么意义2.3 Docker的使用场景2.4 Docker引擎(Docker Engine)2.5 Docker 三要素(核心组件)2.6六大名称空间2.7资源控制——cgroups2.8容器特性2.9 容器小的架构体系三、Docker和虚拟化的区别四、总结1、什么是docker_虚拟化前后的区别

Kafka Confluent Schema Registry搭建 口令认证_kafka-registry 认证-程序员宅基地

文章浏览阅读262次。由于发现schema registry相关资料较少,主要在此介绍其口令认证配置方式。_kafka-registry 认证

为iOS5设计消息通知-程序员宅基地

文章浏览阅读112次。通知中心作为iOS5的重大更新内容之一,可以将用户的iOS设备里的所有的通知集中放在一个地方,大大方便用户查看和管理。如果用户收到一封新邮件、一条短信,或者是一个添加好友的请求,无论在任何界面下(包括游戏等全屏应用),用户都可以通过从屏幕顶部向下滑,将通知中心“拉下来”,用户可以在这里查看到所有的通知。所以苹果在iOS5的介绍中说到通知中心是你随时掌握最新生活资讯的绝佳..._ios 15短信通知里多了一个播报

流程图和序列图_序列和流程图的区别是什么-程序员宅基地

文章浏览阅读2k次。flow diagrams可以使用活动图显示不同用例之间的工作流。通过绘制活动图(显示用户在系统内外执行的主要任务)来开始建立需求模型,通常十分有用。例如:您可以绘制用例图和活动图以显示同一信息的不同视图。用例图对于显示在较大的活动中嵌套较小的操作更有效,但不显示工作流。例如:请注意,您也可以使用活动图来描述软件中的算法,但是如果将此类图用于业务进程,则应侧重于系统外部可见_序列和流程图的区别是什么

QGIS基本功 | 22 QGIS工程文件属性设置(3)——宏、QGIS服务_qgis 添加文件属性-程序员宅基地

文章浏览阅读2.4k次。今天将继续分享QGIS 3.16工程文件属性的设置,包括宏(Macros)和QGIS服务器两个部分。01宏(Macros)【工程】->【属性】->【宏】标签页提供工程文件相关联的宏命令设置。QGIS中的宏(Macros),指的是由一些列预定义的Python语句组成的批处理命令集合,凡是可以在Python控制台中执行的语句,均可以宏的形式执行。目前,与工程文件绑定的宏仅提供了openProject(), saveProject() 和 closeProj..._qgis 添加文件属性

推荐文章

热门文章

相关标签