SeqTrack: Sequence to Sequence Learning for Visual Object Tracking

news2025/1/13 10:50:40

请添加图片描述

摘要

在本文中,我们提出了一种新的序列到序列学习框架的视觉跟踪,称为SeqTrack。它将视觉跟踪转换为一个序列生成问题,它以自回归的方式预测对象边界盒。这与之前的Siamese跟踪器和transformer跟踪器不同,它们依赖于设计复杂的磁头网络,如分类和回归头。SeqTrack只采用了一个简单的编解码器变压器架构。编码器使用bidirectional transformer提取视觉特征,而解码器使用 causal transformer自动回归生成一系列边界盒值。损失函数是一个普通的交叉熵。这种序列学习范式不仅简化了跟踪框架,而且在基准测试上取得了竞争性能。

介绍

视觉目标跟踪是计算机视觉中的一项基本任务。它的目的是估计任意目标在视频序列中的位置,只给定它在初始帧中的位置。现有的跟踪方法通常采用分治策略,将跟踪问题分解为多个子任务,如目标尺度估计和中心点定位等。每个子任务都由一个特定的头网络来处理。例如,SiamRPN及其后续工作采用分类头进行目标定位,采用回归头进行规模估计,如图1(a).所示。STARK和基于变压器的跟踪器设计了角头网络来预测目标物体的边界盒角,如图1(b).所示。
请添加图片描述

这种分治之策略在跟踪基准上表现出优越的性能,从而成为现有模型的主流设计。然而,仍然存在两个缺陷。首先,每个子任务都需要一个定制的头网络,从而导致一个复杂的跟踪框架。其次,每个头网络需要一个或多个学习损失函数,如交叉熵损失[7,27]、l1损失、generalized IoU损失,由于额外的超参数而使训练变得困难。为了解决这些问题,在本文中,我们提出了一种新的序列到序列跟踪(SeqTrack)框架,如图1©.所示。

通过将跟踪建模为序列生成任务,SeqTrack摆脱了复杂的头网络和冗余损失函数。它基于直觉,如果模型知道目标对象在哪里,我们就可以简单地教它如何读取边界框,而不是使用分治策略明确地执行额外的分类和回归。为此,我们将边界框的四个值转换为一个离散令牌序列,并使模型学习逐标记生成这个序列令牌。我们采用一个简单的编码-解码器变压器来建模生成。该编码器是提取视频帧的视觉特征,而解码器是利用所提取的特征生成边界框值的序列。生成以自回归的方式执行,这意味着模型会根据之前观察到的标记生成一个令牌。在每一步中,一个新生成的令牌值被反馈到模型中以生成下一个值。我们在解码器中的自我注意模块上施加了一个因果掩模,以防止令牌关注后续的令牌。这种因果掩蔽机制确保了在位置i上的令牌的生成仅取决于其在小于i的位置上的继续进行的令牌。视觉特征通过交叉注意层[46]集成到解码器中。当生成输出边界框的四个标记值时,生成将结束。输出序列被直接用作结果。实验证明,我们的SeqTrack方法是有效的,在几个跟踪基准上实现了新的最先进的性能。例如,SeqTrack-B256在GOT-10k上获得了74.7%的AO分数,在对齐设置下,即使用相同的编码器架构和输入分辨率下,比最近的OSTrack-256跟踪器[55]高出3.7%。此外,与最近最先进的跟踪器MixFormer相比,SeqTrack-B256的运行速度快1.4倍(40 v.s 29 fps),而比LaSOT的AUC得分高0.7%。值得注意的是,所有这些先前的方法都严重依赖于设计良好的磁头网络和相应的复杂损失函数[30,41]。相比之下,我们的SeqTrack只采用了一个简单的编解码器变压器结构,并且具有简单的交叉熵损耗。

总之,这项工作的贡献有两方面:

  • 我们提出了一种用于视觉跟踪的序列到序列的学习方法。它将跟踪作为一个生成任务,为跟踪建模提供了一个新的视角。
  • 我们提出了一种新的序列跟踪模型家族,它在速度和准确性之间取得了很好的权衡。实验验证了新模型的有效性。

相关工作

  • Visual Tracking

方法

本节详细介绍了所提出的SeqTrack方法。首先,我们简要地概述了我们的序列到序列的跟踪框架。然后,我们描述了图像和序列表示,以及所提出的模型架构。最后,我们介绍了训练和推理管道以及跟踪先验知识的集成。

Overview

SeqTrack的总体框架如图2(a).所示。它采用了一种简单的编解码器变压器结构。对象边界框首先被转换为一系列离散的标记,即,[x、y、w、h]。编码器提取输入视频帧的视觉特征,而解码器利用所提取的特征自动回归生成边界框令牌序列。

请添加图片描述

编码器提取输入视频帧的视觉特征,而解码器利用所提取的特征自动回归生成边界框令牌序列。在解码器中的自我注意模块上施加了一个因果注意面具,以限制令牌只关注它们的程序令牌。除了这四个边界框令牌之外,我们还使用了两个特殊的令牌:开始和结束。开始令牌告诉模型开始生成,而结束令牌表示生成的完成。在训练过程中,解码器的输入序列为[start,x,y,w,h],目标序列为[x,y,w,h,end]。在推理过程中,解码器的输入序列最初包含一个开始令牌。在每个步骤中,将生成一个新的边界框标记,并将其附加到输入序列中,以生成下一个标记。当生成边界框的四个标记值时,预测将结束。

Image and Sequence Representation

Image Representation

所述编码器的输入包括模板图像 t ∈ R 3 × H × W t∈R^{3×H×W} tR3×H×W和搜索图像 s ∈ R 3 × H × W s∈R^{3×H×W} sR3×H×W。图像t表示感兴趣的对象,而s表示后续视频帧中的搜索区域。在现有的跟踪器中,模板图像的分辨率通常小于搜索图像。相比之下,我们对这两幅图像使用相同的大小,因为我们发现在模板中添加更多的背景有助于提高跟踪性能。搜索图像和模板图像被划分为补丁: s p ∈ R N × P 2 × 3 s_p∈R^{N×P^2×3} spRN×P2×3 t p ∈ R N × P 2 × 3 t_p∈R^{N×P^2×3} tpRN×P2×3,其中(P,P)为补丁大小,N=HW /P2为补丁号。利用线性投影将图像补丁映射到视觉嵌入中。可学习的位置嵌入[46]被添加到补丁嵌入中,以保留位置信息。然后将合并后的嵌入数据输入编码器。

Sequence Representation.

我们将目标边界框转换为一系列离散的标记。具体来说,边界框是由它的中心点xy和缩放和wh决定的。有几种边界框格式,如[x、y、w、h]和[w、h、x、y]。我们使用[x,y,w,h]的格式,因为它与人类的先验知识相一致:首先定位物体的位置[x,y],然后估计它的尺度[w,h]。每个连续坐标被均匀地离散成 [ 1 , n b i n s ] [1,n_{bins}] [1nbins]之间的一个整数。我们对所有的坐标都使用一个共享的词汇表V。 [ 1 , n b i n s ] [1,n_{bins}] [1nbins]之间的每个整数都可以看作是V中的一个单词,所以V的大小为 n b i n s n_{bins} nbins(在我们的实验中为4000)。最终的输入序列为[start x y w h],目标序列为[x y w h end]。V中的每个单词都对应着一个可学习的嵌入,并在训练过程中进行了优化。特殊的标记start也对应于一个可学习的嵌入。输入word的相应嵌入被输入到解码器中。由于变压器是排列不变的,我们用可学习的位置嵌入来增加词嵌入。对于最终的模型输出,我们需要将嵌入映射回单词。为此,我们使用了一个带有softmax的多层感知器,根据输出嵌入从V中采样单词。

Model Architecture

我们的模型采用了一个简单的编解码器变压器架构,如图2所示。利用编码器提取输入视频帧的视觉特征,解码器以自回归的方式预测目标对象的边界盒。

*Encoder.*该编码器是一个标准的视觉变压器(ViT)。该架构与ViT相同,除了两个小的修改:1)该类标记将被删除,因为它是为图像分类任务而设计的。2)在最后一层附加一个线性投影,以对齐编码器和解码器的特征尺寸。编码器接收模板和搜索图像的补丁嵌入,并输出其相应的视觉特征。只有搜索图像的特征被输入解码器。该编码器的功能是联合提取搜索图像和模板图像的视觉特征,并通过注意层学习特征级的对应关系。

Decoder. SeqTrack的解码器是一个因果变压器。如图2(b)所示,每个变压器块由一个掩蔽的多头注意、一个多头注意和一个前馈网络(FFN)组成。更具体地说,掩蔽的多头注意力从前一个块接收单词嵌入,并利用因果掩码来确保每个序列元素的输出只依赖于其之前的序列元素。换句话说,注意掩模将位置i的输出嵌入限制为只关注小于i的位置的输入嵌入,如图3(a).所示
请添加图片描述

然后,多头注意力将提取的视觉特征整合到单词嵌入中,这使得单词嵌入能够来自编码器的视觉特征。最后,应用前馈网络(FFN)为下一个块生成嵌入。

Training and Inference

*Training.*与语言建模类似,SeqTrack被训练以最大限度地提高目标标记基于前面的子序列的对数似然,并使用交叉熵损失输入视频框架。学习目标函数的表述为:

请添加图片描述

其中Q(·)为softmax概率,s为搜索图像,t为模板,zˆ为目标序列,j为标记的位置,L为目标序列的长度。这里,zˆ<j表示前面用于预测当前令牌zˆj的子序列。输入序列是具有一个位置偏移(省略开始和结束)的目标序列,如图3(b).所示这种偏移量与因果掩蔽相结合,保证了序列模型的自回归特性。目标序列可以看作是对对象边界框的描述。训练是教模型根据前面的单词“读出”描述中的单词。

Inference在推理过程中,编码器在后续的视频帧中感知模板图像和搜索区域。解码器的初始输入是开始令牌,它告诉模型开始生成。然后,模型逐个地“读出”目标序列[x、y、w、h、end]标记。对于每个标记,模型根据最大似然值从词汇表V中进行抽样,即zˆj=argmaxzjQ(zj|,t,zˆ<j),其中zj是V中的单词。此外,我们还引入了在线模板更新和窗口惩罚,在推理过程中集成了先验知识,进一步提高了模型的准确性和鲁棒性。这些细节将在下面的小节中进行描述。

Prior Knowledge Integration

先验知识,如窗口惩罚和在线更新,已被广泛纳入现有的跟踪模型,并被证明是有效的。在本小节中,我们将讨论如何将这些先验知识引入到所提出的序列到序列学习框架中,以进一步提高跟踪性能。

Online Update由于在在线跟踪过程中,目标对象的外观可能会发生巨大的变化初始模板图像对于目标定位并不总是可靠的。为了解决这个问题,我们将在线模板更新[53]集成到我们的方法中。更具体地说,除了初始模板图像外,我们还引入了一个动态模板来捕获目标对象的外观变化。动态模板将进行动态更新。众所周知,低质量的模板可能导致较差的跟踪性能。因此,我们使用生成的标记的可能性来自动选择可靠的动态模板。具体来说,我们对生成的四个边界框值上的softmax分数进行平均。如果平均得分大于特定的阈值τ,并且达到更新间隔Tu,则动态模板将与当前帧中的跟踪结果进行更新,否则保持之前的状态。实验表明,这种简单的方法可以提高跟踪精度。4.3).此外,与之前的方法不同,我们的方法没有带来任何额外的分数头来决定是否更新模板,这通常需要第二阶段的训练。

Window Penalty经验证明,连续两帧之间的像素位移是相对较小的。为了惩罚较大的位移,我们在在线推理过程中引入了一种新的窗口惩罚策略。具体地说,目标对象在前一帧中的位置对应于当前搜索区域的中心点。当前搜索区域中中心点的离散坐标为[ n b i n s / 2 n_{bins}/ 2 nbins/2 n b i n s / 2 n_{bins}/ 2 nbins/2 ]。当生成x和y时,我们根据词汇V与 n b i n s n_{bins} nbins的差异来惩罚词汇V中整数(即单词)的可能性。整数和 n b i n s / 2 n_{bins}/ 2 nbins/2之间的很大差异将会得到很大的惩罚。在实现过程中,整数的softmax分数形成了一个大小为 n b i n s n_{bins} nbins的向量。我们只需把这个向量乘以相同大小的汉宁窗口。这样,大的位移就被抑制了。与之前的实践[7,27]不同,我们不引入额外的超参数来调整惩罚的大小。

实验

请添加图片描述

Ablation and Analysis.

请添加图片描述

可视化

为了更好地理解SeqTrack是如何“读取”目标状态的,我们将最后一个解码器块的交叉注意(平均在头部上)可视化。图7显示了模型生成令牌时的交叉注意图。当生成第一个标记x时,注意力是相对多样化的。当生成后续的令牌时,注意力很快就会集中在目标对象上。注意力更集中在关键信息上,例如,产生x和w时的人的手臂和斑马的尾巴,以及产生y和h时的脚。

请添加图片描述

结论

这项工作提出了一种新的序列到序列的跟踪框架,即SeqTrack,它将视觉跟踪作为一个序列生成问题。它使用一个简单的编码解码器变压器架构,摆脱复杂的头网络和损失函数。大量的实验表明,SeqTrack是有效的,与最先进的跟踪器相比,实现了具有竞争力的性能。我们希望这项工作能够催化更引人注目的研究序列学习的视觉跟踪。

SeqTrack的一个局限性是,尽管实现了具有竞争力的性能,但由于该方法的物体移出视野或被干扰物遮挡,很难处理干扰物没有明确的重新检测模块。此外,我们只使用少量的视频帧就建立了序列模型。一个更有前途的解决方案是将整个视频建模为一个序列,并教模型以自回归的方式逐帧“读出”目标状态。在未来的工作中,我们将研究这种长期视频的序列到序列建模。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/654920.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【活动访谈】发力数字基座 推动物联创新—航天科技控股集团AIRIOT4.0平台发布会活动专访

近日&#xff0c;由航天科技控股集团股份有限公司主办的“数字基座 智慧物联—AIRIOT4.0平台发布会”在北京圆满落幕。航天三院科技委总工程师王连宝应邀出席本次会议并接受媒体采访&#xff0c;共同参与访谈的还有AIRIOT产品研发创始人、航天科技控股集团股份有限公司智慧物联…

python生成日报

目录 一&#xff1a;日报生成工具二&#xff1a;日报工具使用方式三&#xff1a;最终日报生成展示 一&#xff1a;日报生成工具 #!/usr/bin/python # coding:utf8class GetHtml(object):def __init__(self):self._html_head """<html><body style&qu…

美颜滤镜SDK在实时视频应用中的应用

随着智能手机的普及和网络带宽的增强&#xff0c;实时视频应用已经成为了人们日常生活中不可或缺的一部分。而在实时视频应用中&#xff0c;美颜滤镜SDK的应用也越来越广泛。本文将介绍美颜滤镜SDK在实时视频应用中的应用。 一、美颜滤镜SDK的概念 美颜滤镜SDK是一种软件开发工…

Jetpack Compose — 让Composable具备生命周期感知

Jetpack Compose — 让Composable具备生命周期感知 我们将研究不同的方法来实现可组合&#xff08;Composable&#xff09;的生命周期感知。我们还将了解可组合生命周期和视图&#xff08;View&#xff09;生命周期之间的区别。 我们将逐步探索不同的解决方案&#xff0c;以寻…

C51/C52单片机,最小系统

一个小白&#xff0c;开始学习单片机&#xff0c;从C51/52开始&#xff0c; 我学习的型号是STC98C52单片机。 STC89C52是一种低功耗、高性能CMOS8位微控制器&#xff0c;具有8K在系统可编程Flash存储器。在单芯片上&#xff0c;拥有灵巧的8位CPU和在系统可编程Flash&#xff0…

NeRF系列(4):Ha-NeRF: Hallucinated Neural Radiance Fields in the Wild论文解读

主页&#xff1a; 主页&#xff1a;Ha-NeRF&#x1f606;: Hallucinated Neural Radiance Fields in the Wildhttps://rover-xingyu.github.io/Ha-NeRF/论文&#xff1a;https://openaccess.thecvf.com/content/CVPR2022/papers/Chen_Hallucinated_Neural_Radiance_Fields_in_…

常用API(Object,Objects,StringBuilder,Math,System,BigDecimal)

1&#xff1a;Object类 1&#xff1a;Object类的作用&#xff1a; 一个类要么默认继承Object类&#xff0c;要么间接继承了Object类&#xff0c;Object类是Java中的祖宗类。Object类的方法是一切子类都可以直接使用的&#xff0c;所以我们要学习Object类的方法。 2&#xff…

容器(第八篇)ansible-模块

ansible是什么&#xff1f; Ansible是一个基于Python开发的配置管理和应用部署工具&#xff0c;现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点&#xff0c;Pubbet和Saltstack能实现的功能&#xff0c;Ansible基本上都可以实现。 Ansible能批量配置、部署、…

直线方程y=kx+b 已知两点a,b。求ab中间任一点坐标x,y

参考文章 斜率怎么求 已知斜率及另一点坐标,求另一点坐标方法 三角形斜率 DirectX C 3D编程基础 5 [三角形光栅化] 自制中字 直线方程公式ykxb k斜率&#xff0c;b截距 已知点a&#xff08;1,2&#xff09; b&#xff08;4,3&#xff09;绿色线段 求斜率k(by-ay)/(bx-ax)或(a…

idea运行main方法或Test避免编译整个应用的方法

已建项目中修改 Main函数不biuld : 光标点到main函数里&#xff0c;右键->Modify Run COnfigurations->Modify options Test 不build 或者单独在每个test里 右键-Modify Run COnfigurations->移除build 对于新建工程统一修改配置: File->New Project Setting…

Java30天拿下---第一天(JDK,JRE,JVM,转义字符,注释,代码规范,数据类型)

Java开发&#xff08;30天拿下---第一天&#xff09; 一 hello world以及JDK,JRE,JVM二 转义字符三 注释四 代码规范五 DOS命令&#xff08;了解&#xff09;六 变量1.加号的使用2.数据类型整型浮点型字符类型布尔类型自动类型转换强制类型转换String类型 七 API文档 一 hello …

【备战秋招】每日一题:5月13日美团春招第一题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检&#xff0c;为了更好的阅读体检&#xff0c;&#xff0c;可以查看我的算法学习博客第一题-塔子哥的数字 在线评测链接:P1286 题目描述 塔子哥是一个数学爱好者&#xff0c;他经常思考各种数字之间的奥秘。今天&#xff0c;他想要解决一个有趣的问题&…

业务流程自动化:ThinkAutomation Professional Crack

ThinkAutomation 助力您的业务流程自动化。自动执行本地和基于云的业务流程&#xff0c;以降低成本并节省时间。 自动化传入的通信渠道&#xff0c;监控数据库&#xff0c;对传入的Webhook&#xff0c;Web表单和聊天机器人做出反应。处理文档、附件、本地文件和其他邮件源。 …

TOGAF10®标准中文版(全文目录)

The Open Group是一个通过技术标准实现业务目标的全球联盟。我们拥有超过870个成员组织&#xff0c;成员来自技术社区的各个部门&#xff0c;包括客户、系统和解决方案供应商、工具供应商、集成商和顾问&#xff0c;以及学者和研究人员。 The Open Group的使命是通过以下方式…

33、js - 面试 - 事件循环 微任务 宏任务

1、事件循环♻️&#xff08;EventLoop&#xff09; js是单线程语言&#xff0c;也就是某一刻只能执行一行代码&#xff0c;为了让耗时代码不阻塞其他代码运行&#xff0c;设计了事件循环模型。 事件循环是一个并发模型&#xff0c;负责执行代码、收集异步任务的模型&#xff0…

web性能检测工具lighthouse

About Automated auditing, performance metrics, and best practices for the web. Lighthouse 可以自动检查Web页面的性能。 你可以以多种方式使用它。 浏览器插件 作为浏览器插件&#xff0c;访问chrome网上商店 搜索Lighthouse 插件安装。以两种方式使用。 方式一 安装…

单片机按键软开关:1个引脚实现单片机低电量自己控制给自己断电

背景 类似于手机的开机按键&#xff0c;我们希望在单片机电路上也能实现类似的低电量自动关机、通过按键而不是自锁开关来上电开机。 软开关电路 电路图如下&#xff1a; 当按键按下时&#xff0c;Q1导通&#xff0c;R18右侧变为低电平&#xff0c;进而Q2导通&#xff0c;…

深入探究kubernetes resources - Part 1

在开始使用 Kubernetes 时&#xff0c;社区教给我们的第一件事就是始终为我们 pod 中的每个容器设置 CPU 和内存的请求和限制。 当您指定 Pod 时&#xff0c;您可以选择指定容器需要多少资源。 您指定的最常见资源是 CPU 和内存 (RAM)&#xff1b; apiVersion: v1 kind: Pod …

模糊测试不“模糊”,高效发掘未知漏洞与 0day 攻击

近日&#xff0c;在「DevSecOps软件安全开发实践」课程上&#xff0c;极狐(GitLab) 高级测试工程师衡韬、极狐(GitLab) 高级后端开发工程师田鲁&#xff0c;分享了模糊测试的概念、必要性和在极狐GitLab 上的实践。 以下内容整理自本次直播&#xff0c;你也可以点击&#x1f44…

合宙Air724UG Cat.1模块硬件设计指南--SIM卡接口

SIM卡接口 简介 SIM( Subscriber Identity Module)卡为用户识别模块&#xff0c;内部使用新式单片机及存储器管理结构&#xff0c;包含了大规模的集成电路&#xff0c;同时也称为用户识别卡。通信设备通过SIM卡来识别其用户&#xff0c;只有设备插入SIM卡后才能入网使用。SIM卡…