【论文阅读】CiteTracker: Correlating Image and Text for Visual Tracking

paper:[2308.11322] CiteTracker: Correlating Image and Text for Visual Tracking (arxiv.org)

code:NorahGreen/CiteTracker: [ICCV'23] CiteTracker: Correlating Image and Text for Visual Tracking (github.com)

简介

现有的视觉跟踪方法通常以图像块作为目标来跟踪。变化剧烈的目标跟踪困难。 CiteTracker 通过连接图像和文本来增强视觉跟踪中的目标建模和推理。文本生成模块将目标图像块转换为包含其类别和属性信息的描述性文本,为目标提供全面的参考点。动态描述模块来适应目标变化,以实现更有效的目标表示。使用基于注意力的关联模块将目标描述和搜索图像关联起来,以生成相关特征以供目标状态参考。

 

图 1. CiteTracker与现有跟踪方法在目标建模和关联方面的比较。左右部分分别描述了典型的视觉跟踪框架和CiteTracker:首先生成目标对象的文本描述,然后利用文本的特征来估计测试图像中的目标状态,从而实现更全面的目标建模和关联。

  • 特点:使用目标的自适应文本描述作为参考点,并将其与测试图像特征相关联进行跟踪。
  • 开发了一个文本生成模型,该模型具有预定义的开放词汇表,包括类和属性标签,能够基于目标图像块,生成目标的文本描述。以 CLIP 模型为基线构建,将文本与丰富的图像特征连接起来。
  • 为了适应目标随时间的变化,开发了一个动态文本特征模型,会随着目标的变化生成自适应文本特征。最后将目标文本描述的特征与测试图像特征相关联,以生成相关特征,以便进一步估计目标状态。
  • 实验数据集: GOT-10K、LaSOT、TrackingNet、OTB100 和 TNL2K。

方法

目标:给定目标图像片段与跟踪序列中的搜索图像,通过将其表述为图像-文本关联,构建它们之间的稳健关联,从而对目标状态有更全面的理解,应对目标对象的外观变化。为此,CiteTracker首先通过图像-文本转换模块,根据给定的目标图像片段,生成目标的文本特征,然后根据目标的最新状态调整文本特征,最后将文本特征与搜索图像的特征关联起来,实现稳健跟踪。

输入:一个样本图像和一个搜索图像,分别通过文本分支(图2上半)和视觉分支(图2下半)处理。

文本分支:首先使用图像编码器提取给定样本图像的视觉特征,并从测试图像中裁剪出目标位置的目标图像片段(取自前一帧)。然后,通过图像-文本转换模块将目标的视觉特征转换为文本特征,并根据初始目标状态和当前目标状态的文本特征差异,利用文本特征自适应模块调整文本特征。

视觉分支:将样本图像和搜索图像作为输入,并输出测试图像的特征图。最后,图像-文本关联组件将文本分支和视觉分支的输出进行关联,生成用于目标状态预测的关联特征。

图2. CiteTracking算法的总框架,包含三个模块:1)图文转换模块,基于图像样本生成目标对象的文本特征;2)文本特征适配模块,根据当前目标状态调整属性描述的权重;3)图文关联模块,将目标描述特征与测试图像的特征进行关联,生成用于目标状态估计的相关特征。 

图像-文本转换

 

图 3. 图文转换模块结构。以目标图像和预定义的类属性文本词汇作为输入,并输出目标的文本描述(特征)。

目标图像由CLIP模型的图像编码器处理生成图像特征 x,然后将 x 输入到轻量神经网络 hθ(⋅)(Meta-Net)中,生成包含目标信息的目标tokens hθ​(x)。输入的词汇通过text embbeding模块处理,生成word embbeding ci​。

引入 K 个可学习向量 υ1,υ2,...,υK​ 作为针对特定预测任务的提示tokens。给定目标tokens hθ(x) 和提示tokens υ1,υ2,...,υK​,获得每个基于上下文优化的token:υk(x)=υk+hθ(x)。表示提示tokens 被图像特征调节,使其包含与特定图像相关的信息。

第 i 类标签的提示基于图像特征,即 mi(x)={υ1(x),υ2(x),...,υK(x),ci}。这里每个类别标签的提示结合了图像特征和词汇嵌入,捕捉图像和类别之间的关联。

令 t(⋅) 表示原始CLIP文本编码器,第 i 类标签的预测概率计算为:

Sim(⋅,⋅) 计算余弦相似度得分,τ 是一个可学习的温度参数,N 为类标签的数量。目标描述被预测为通过公式(1)计算出最大概率对应的标签。 本文使用一个两层Linear-ReLU-Linear结构实现了Meta-Net,隐藏层将输入维度减少了16倍。

 跟踪相关词汇构建。为了准确描述跟踪目标,我们选择了 MS COCO [25] 数据集中的 80 个类别标签作为类别词汇,其中包含日常生活中最常出现的物体。从 OVAD [4] 数据集中选择了颜色、纹理和材质三种物体属性来描述详细的目标状态。在 GOT-10k 数据集上评估了类别和属性标签预测描述的一致性。

图 4(a) 显示了预测结果一致的情况比例,图 4(b) 显示了视频帧中目标物体的预测值。表明在视频序列中,跟踪物体在类别和属性值方面的预测文本描述是一致的,可以用作目标定位的特征。

动态文本特征生成

在视频中,跟踪目标的状态可能会发生变化。因此将文本特征生成分为类别特征生成和属性特征生成

类别特征 (Tc​):设 Ti​ 是由 CLIP 文本编码器生成的第 i 类标签的文本特征,Tc​ 可以计算为:

pi 是公式 (1) 计算出的每个类别标签的预测概率。将每个类别标签的文本特征 Ti​ 按其预测概率 pi​ 加权并求和,得到类别特征 Tc​。这样可以综合考虑各个类别标签的可能性,使得类别特征能够更好地代表跟踪目标的类别信息。

属性特征 (Ta​):

  • argmax(p_i) 确定了预测概率最高的属性类别索引,表明该属性在当前目标的状态下最具代表性。Ta​ 取该索引对应的文本特征,作为当前跟踪目标的属性特征。

根据目标的变化,调整不同属性特征的权重。颜色、材料和纹理的变化分别表示为 Dcolor、Dmaterial​ 和 Dtexture:

其中 Rattribute 和 Sattribute​ 代表参考目标和当前测试目标具有某一特定属性值的概率(用公式 (1) 计算)。属性变化的绝对值差表示属性在两个目标之间的差异程度。绝对值差越低,目标和搜索图像在该属性上的相似性越高。因此,注意力权重 Watt 可表示为:

  • 用负变化值 −Dattribute 作为 Softmax 函数的输入,是为了使得变化小(差异小)的属性获得更高的权重。Softmax 函数将这些负变化值转换为一个概率分布,即注意力权重 WattWatt​。

最后,根据不同属性的注意力权重,调整属性特征生成动态文本特征:

 Ta​ 是通过公式 (3) 生成的文本特征。

  • 使用权重 Watt 对属性特征 Ta​ 进行加权,得到动态调整后的文本特征 Tatt。
  • 这种方法确保了在目标跟踪过程中,能够根据目标属性的变化对特征进行自适应调整,以提升跟踪的鲁棒性和准确性。

图像-文本关联

用ViT-base提取目标和搜索图像的联合视觉特征 V∈RH×W×C。文本特征 T∈R1×1×CT通过线性层进行调整,使其与视觉特征在通道维度上对齐。然后,通过卷积,用文本特征 T′∈R1×1×C 作为卷积核权重,实现两种特征的关联。

最终的关联特征:

⊙ 表示卷积操作,Latt 是用于通道自适应的线性投影层,Tc​ 表示类别特征,Tco、Tm​ 和 Tt​ 分别代表动态的颜色、材料和纹理特征。

状态估计和训练目标

状态估计:基于图像-文本关联生成的特征,CiteTracker 通过预测头 [Joint feature learning and relation modeling for tracking: A one-stream framework.] 来估计目标状态。该预测头由4个堆叠的 Conv-BN-ReLU 层组成。 输出一个分类得分图 C、用于补偿分辨率下降的偏移图 O 和尺寸图 B。然后,目标状态计算如下:

其中 (xc,yc) 是通过 (xc,yc)=arg⁡max⁡(x,y)Cxy​ 计算的目标中心,(Ox,Oy) 表示从 O 到 (xc,yc) 的偏移,(Bw,Bh) 是从 B 预测出的框尺寸。

训练目标:采用与 OSTrack 类似的训练流程,对三个任务进行联合训练。用加权焦点损失 [24]、L1​ 损失和 GIoU 损失 [32] 分别训练分类、偏移和框尺寸分支。总的损失函数:

其中 λiou=2,λL1=5 是实验中使用的参数。

实验

实验在4个NVIDIA Tesla V100 GPUs上进行。

视觉特征提取:用通过MAE方法[17]预训练的Vision Transformer (ViT-base) [34]模型作为主干网络。用微调后的CLIP模型[30]作为主干来构建所提出的图像-文本转换模型。从测试帧中裁剪目标框面积4倍的搜索图像,并调整为384 × 384像素的分辨率;从参考帧中裁剪目标框面积2倍的图像,并调整为192 × 192像素。

开放词汇类别标签和属性标签来源于MS COCO[25]和OVAD[4]数据集。

CiteTracker在TrackingNet[29]、COCO2017[25]、LaSOT[13]和GOT-10K[18]的训练集上进行训练。

在四个不同的数据集(TNL2K、LaSOT、TrackingNet和GOT-10K)上评估。

  • TNL2K :一个用于评估基于自然语言的跟踪算法的基准。该基准引入了两个新挑战,即对抗样本和模态切换,使其成为评估跟踪算法的稳健基准。
  • LaSOT :一个高质量的长期单目标跟踪基准,平均视频长度超过2500帧。尽管我们的方法没有采用在长期跟踪中起关键作用的更新机制,但它仍然达到了接近最佳方法SwinTrack的结果。CiteTracker重点通过制定稳健的图像-文本关联来处理目标的大幅变化。

  • TrackingNet:用于野外物体短期跟踪的大规模基准,包含511个测试视频,且真实标注被隔离。表1展示了在TrackingNet数据集上的表现。我们的跟踪器在曲线下面积(AUC)上达到84.4%,超越了所有此前发布的跟踪器。这表明我们的跟踪器在应对野外各种变化的短期场景跟踪中具有很强的竞争力。

  • GOT-10k:GOT-10k是一个大规模跟踪数据集,包含超过560类运动物体和87种运动模式,强调在测试集中类不相关性。测试集的真实标注被保留,我们使用作者提供的测试平台来评估我们的结果。我们遵循一次性训练规则,即跟踪器只在GOT-10k的训练集上进行训练。

图5。提出的算法和OSTrack方法在4个变化剧烈的挑战性序列上的可视化结果。CiteTracker在生成的文本描述的帮助下表现良好(在每一行图片的上方显示),而仅使用视觉线索的OStrack方法在处理这些序列时表现不太好。

总结:CiteTracker通过关联图像和文本以更稳健和准确的方式执行目标建模和目标状态推断。所提出的算法首先构建一个图像-文本转换模型,从给定的目标图像生成目标的文本描述特征,从而实现更抽象和准确的目标表示。此外,我们开发了一个文本特征自适应模型来生成动态文本特征和图像-文本相关性,以关联目标文本和搜索图像,以进一步预测目标状态。

评估表明将语言信号纳入视觉跟踪对提高跟踪性能有显著的影响。

复现

处理数据

下载lasot数据集:LaSOT Dataset | Papers With Code

共200多G 

GOT-10K数据集:GOT-10k: Generic Object Tracking Benchmark (aitestunion.com)

共66G 

训练

准备数据

Set project paths

Run the following command to set paths for this project

python tracking/create_default_local_file.py --workspace_dir . --data_dir ./data --save_dir ./output

报错1:ModuleNotFoundError: No module named 'lib'

Traceback (most recent call last):
  File "tracking/create_default_local_file.py", line 9, in <module>
    from lib.train.admin import create_default_local_file_ITP_train
ModuleNotFoundError: No module named 'lib'

解决:

在终端输入:export PYTHONPATH=$PYTHONPATH:/data/CiteTracker-main/lib/train/admin

手动添加环境变量,解决。运行后得到如下两个文件:

报错2:ImportError: libGL.so.1: cannot open shared object file: No such file or directory

解决:pip install opencv-python-headless

测试

输入:

python tracking/test.py citetrack vitb_384_mae_ce_32x4_ep300 --dataset lasot --threads 16 --num_gpus 4

报错:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[C#学习笔记]注释

官方文档&#xff1a;Documentation comments - C# language specification | Microsoft Learn 一、常用标记总结 1.1 将文本设置为代码风格的字体&#xff1a;<c> 1.2 源代码或程序输出:<code> 1.3 异常指示:<exception> 1.4 段落 <para> 1.5 换行&…

Ubuntu 22.04 make menuconfig 失败原因

先 安装一些配置 linux下使用menuconfig需要安装如下库_menuconfig 安装-CSDN博客 然后 cd 到指定源代码 需要在内核文件目录下编译 Linux 内核源码&#xff08;kernel source&#xff09;路径_--kernel-source-path-CSDN博客 make menuconfig 又报错 说是gcc 12什么什么&…

QT6聊天室项目 网络通信实现逻辑分析

实现逻辑 模块话网络通信设计分析 NetClient类 功能&#xff1a;负责与服务器进行通信httpClient:处理HTTP请求websocketClient&#xff1a;处理WebSocket通信 HTTP请求封装 设计请求和服务器响应的接口设计函数测试网络连接性设计处理的函数处理HTTP请求&#xff08;后期实现…

file | 某文件夹【解耦合】下的文件查找功能实现及功能单元测试

文件查找工具 概要思路OS模块 --- 学习版os.getcwd()os.path.dirname(os.getcwd())os.path.dirname() 和 os.path.basename() OS模块 — 实战版单元测试解耦合 概要 梳理业务主逻辑&#xff1a; 查看存放被采集JSON数据的文件夹内的文件列表【所有 包含文件夹下的文件夹下的文…

【软件工程】软件开发模型

三、瀑布模型 四、几种软件开发模型的主要特点 题目 判断题 选择题 小结

1233333333333

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

【leetcode详解】爬楼梯:DP入门典例(附DP通用思路 同类进阶练习)

实战总结&#xff1a; vector常用方法&#xff1a; 创建一个长为n的vector&#xff0c;并将所有元素初始化为某一定值x vector<int> vec(len, x) 代码执行过程中将所有元素更新为某一值x fill(vec.begin(), vec.end(), x) // 更多实战方法欢迎参考文章&#xff1a;…

halcon 自定义距离10的一阶导数幅图,摆脱sobel的3掩码困境

一&#xff0c;为什么要摆脱3的掩码 在处理图像的过程中&#xff0c;会用到平滑算子&#xff0c;很容易破坏边际&#xff0c;所谓的一阶导数sobel只计算掩码为3的差分&#xff0c;在幅度图分割中&#xff0c;往往是很难把握的。 举个例子-现在图像头平滑好了&#xff0c;缺陷…

在亚马逊云科技上利用Graviton4代芯片构建高性能Java应用(上篇)

简介 在AI迅猛发展的时代&#xff0c;芯片算力对于模型性能起到了至关重要的作用。一款能够同时兼具高性能和低成本的芯片&#xff0c;能够帮助开发者快速构建性能稳定的生成式AI应用&#xff0c;同时降低开发成本。今天小李哥将介绍亚马逊推出的4代高性能计算处理器Gravition…

使用vscode上传git远程仓库流程(Gitee)

目录 参考附件 git远程仓库上传流程 1&#xff0c;先将文件夹用VScode打开 2&#xff0c;第一次进入要初始化一下仓库 3&#xff0c;通过这个&#xff08;.gitignore&#xff09;可以把一些不重要的文件不显示 注&#xff1a;&#xff08;.gitignore中&#xff09;可屏蔽…

如何将代理IP设置为ISP:详细指南

在当今互联网时代&#xff0c;代理IP已经成为许多用户保护隐私和提升网络体验的重要工具。而ISP&#xff08;Internet Service Provider&#xff09;的代理IP更是因为其高质量和稳定性备受青睐。本文将详细介绍如何将代理IP设置为ISP&#xff0c;让你在网络世界中享受更优质的上…

RISC-V (十一)软件定时器

主要的思想&#xff1a;硬件定时器是由硬件的定时器设备触发的。软件定时器在硬件定时器的基础上由软件控制实现多个定时器的效果。主要的思路是在trap_handler函数中加入软件代码&#xff0c;使其在设定的时间点 去执行想要执行的功能函数。 定时器的分类 硬件定时器&#xf…

计算机网络(二) —— 网络编程套接字

目录 一&#xff0c;认识端口号 1.1 背景 1.2 端口号是什么 1.3 三个问题 二&#xff0c;认识Tcp协议和Udp协议 三&#xff0c;网络字节序 四&#xff0c;socket编程接口 4.1 socket常见API 4.2 sockaddr结构 一&#xff0c;认识端口号 1.1 背景 问题&#xff1a;在进…

网络安全运维培训一般多少钱

在当今数字化时代&#xff0c;网络安全已成为企业和个人关注的焦点。而网络安全运维作为保障网络安全的重要环节&#xff0c;其专业人才的需求也日益增长。许多人都对网络安全运维培训感兴趣&#xff0c;那么&#xff0c;网络安全运维培训一般多少钱呢? 一、影响网络安全运维培…

算法训练营——day4螺旋矩阵

1 螺旋矩阵II-力扣59&#xff08;中等&#xff09; 1.1 题目&#xff1a;螺旋矩阵II 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&…

算法学习:滑动窗口

题目 滑动窗口 滑动窗口的题目在解决统计连续带特殊要求的元素串问题时作用巨大。逃离仅仅只是套路学习的黑洞&#xff0c;我认为这种方法在无序的统计中&#xff0c;找到了有序的切入点。初看题目时&#xff0c;可以想到的统计方法有很多&#xff0c;但实现在计算机上则必须有…

贝锐蒲公英远程视频监控方案:4G入网无需公网IP,跨品牌统一管理

在部署视频监控并实现集中监看时&#xff0c;常常会遇到各种挑战。比如&#xff1a;部分监控点位布线困难、无法接入有线宽带&#xff0c;或是没有固定公网IP&#xff0c;难以实现远程集中监看&#xff1b;已有网络质量差&#xff0c;传输延迟大、丢包率高&#xff0c;远程实时…

【王树森】BERT:预训练Transformer模型(个人向笔记)

前言 BERT&#xff1a;Bidirectional Encoder Representations from TransformerBERT是用来预训练Transformer模型的encoder的本节课只讲述主要思想BERT用两个主要思想来训练Transformer的encoder网络&#xff1a;①随机遮挡单词&#xff0c;让encoder根据上下文来预测被遮挡的…

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_search函数&…

win12R2安装.NET Framework 3.5

一丶安装原因 因此插件的缺失, 有些软件或系统不支持安装. 二丶安装步骤 1丶下载.NET Framework 3.5 点击插件下载, 提取码: 1995, 下载完成之后解压到想要安装的位置上. 2丶打开 服务器管理器 3丶点击: 管理 -> 添加角色和功能 4丶点击下一步到服务器角色, 选择web服…