当前位置: 首页 > article >正文

【论文阅读】Single-Stage Visual Query Localization in Egocentric Videos

paper:

code:

简介

长篇自我中心视频的视觉查询定位需要时空搜索和指定对象的定位。之前的工作开发了复杂的多级管道,利用完善的对象检测和跟踪方法来执行 VQL(视觉查询定位)。然而,每个阶段都是独立训练的,管道的复杂性导致推理速度缓慢。 VQLoC是一种新颖的单阶段 VQL 框架,可进行端到端训练。关键思想是首先建立对查询视频关系的整体理解,然后以单次方式执行时空定位。具体来说,通过联合考虑查询与每个视频帧之间的查询到帧对应关系以及附近视频帧之间的帧到帧对应关系来建立查询视频关系。准确率提高了 20%,推理速度提高了 10 倍。

“以自我为中心的视频”(egocentric videos)是指从第一人称视角拍摄的视频,即摄像机佩戴在拍摄者身上,通常是头部或胸部,使得视频呈现出拍摄者的视角。这样的视频展示了拍摄者在日常活动中的所见所闻,能够很好地捕捉拍摄者的动态和与环境的交互。

图 1:视觉查询本地化 (VQL):(左)目标是本地化长视频中的视觉查询对象,如黄色边界框标记的响应轨迹所示。这项任务的复杂性源于需要适应视频中出现的具有不同尺度、视点和状态的开放集对象查询; (右)我们的方法 VQLoC 首先通过联合 推理查询到帧(空间)和 帧到帧(时间)对应关系,建立对查询视频关系的整体理解,然后在单阶段中定位响应并结束端到端可训练方式。

VQL 任务的自我中心性质:对象所在的视频可能变化很大,比如方向、大小、上下文和照明条件,经历模糊和遮挡。在现实世界中,以自我为中心的视频可能会持续几分钟、几小时或几天,而对象本身可能只出现几秒钟,从而导致“大海捞针”的问题。

之前的工作通过三个阶段的自下而上的框架来解决 VQL:

  1. 在每个视频帧中,检测所有对象并与视觉查询进行成对比较,以获得与查询最相似的建议;
  2. 识别整个视频中的相似性得分峰值;
  3. 围绕最近的峰值执行双向跟踪以恢复时空响应。

限制:很依赖通过独立查看每帧来检测目标的第一阶段。帧级对象检测中的错误可能会导致整个系统失败,因为框架不是端到端可微分的,并且早期阶段的错误可能无法在后期纠正。此外,由于与冗余目标建议进行两两比较的复杂性较高,推理速度较慢。

结构:VQLoC联合建模查询与每个视频帧之间的查询-帧关系以及相邻视频帧之间的帧-帧关系(图1),然后以单阶段、端到端可训练的方式进行时空定位。具体来说,

  1. 通过使用DINO预训练的ViT主干提取视觉查询和每个视频帧的图像特征,并使用交叉注意transformer建立查询中图像区域与视频帧之间的对应关系,从而建立查询到帧的关系。
  2. 然后,使用自注意transformer随时间传播这些对应关系,利用视频的时间连续性产生的帧对帧关系来捕获整体查询-视频关系。
  3. 最后,使用卷积预测头,通过利用查询-视频关系进行时空定位来进行帧级预测。

模型在单一阶段运行,即没有具有专用后处理步骤的中间定位输出,并且是端到端可训练的,因为它只使用可微模块来获得最终预测。与之前的分阶段方法相比,VQLoC的优点:

  1. 与之前在视频帧中显式生成对象建议并将其与视觉查询进行比较的工作不同,VQLoC通过在视觉查询特征和视频帧特征之间执行基于注意力的推理,隐式地建立了查询帧关系。该方法有效地利用背景和非查询对象的图像区域作为上下文信息进行推理。
  2. 隐式查询框架关系的计算速度明显快于显式生成建议和执行两两比较,这对于现实世界的情景记忆应用程序至关重要。
  3. 最后,VQLoC是端到端可训练的,性能更好。

方法

图2:来自通信的可视化查询定位(VQLoC):首先建立整体查询-视频关系,然后推断对查询的响应,来解决VQL问题。VQLoC独立提取查询帧和视频帧的图像特征。使用变换模块(Spatial TX)在查询特征q和每个视频帧特征vi之间建立查询到帧的对应关系,并得到对应特征f,用于识别帧中潜在的与查询相关的区域。然后,VQLoC使用另一个转换模块(SpatioTemporal TX)通过时间传播这些帧级对应,该模块利用附近视频帧之间的帧对帧对应,并获得查询视频对应特征v*。最后,VQLoC使用查询-视频对应来预测每帧边界框和查询对象在帧中出现的概率。

公式

VQL任务在以自我为中心的视频中,视为开放集定位,比如查询“我最后一次看到钱包是在哪里?”

给定一个由T帧组成的以自我为中心的视频V = {v1,···,vT},和一个指定为查询对象的视觉查询Q,目标是在时空上定位查询对象在视频中最近出现的位置。定位结果是响应轨迹R = {rs, rs+1,…, re},s和e分别是开始帧和结束帧索引,ri是包含第i帧上的查询对象的边界框。

架构

VQLoC使用共享图像编码器来提取视频帧和查询的视觉特征。使用DINO预训练的ViT。步骤:

  1. 首先,VQLoC利用spatial transformer来查找每个视频帧和可视查询之间的查询到帧的对应关系。
  2. 然后,VQLoC使用一个spatial-temporal transformer,利用时间连续的帧到帧对应,随着时间的推移,传播查询到帧的对应,并建立查询到视频的对应。
  3. 最后,利用对查询-视频关系的整体理解来预测响应轨迹。

组件:

  • 视觉编码器。由一个固定的DINO预训练的ViT和几个可学习的卷积层组成。分别对T个视频帧和视觉查询独立提取视觉特征,得到视频特征v∈R T ×H×W×C和查询特征q∈R H×W×C。H, W表示特征的空间分辨率,C表示通道大小。
  • spatial transformer。利用视觉特征之间的交叉注意力,在视觉裁剪和每个视频帧之间建立查询到帧的对应关系。设vi∈R HW×C为视频帧i的平面化视频特征vi,设q∈R HW×C为平面化查询特征q。得到查询-帧对应特征fi:FFN是一个前馈神经网络,通过合并相应的查询特征q来更新框架特征vi,其中交叉注意力计算它们的特征相似度作为融合权重。transformer的输出fi重塑为R H×W×C。在这里,更新后的特征可以保留空间排列并保持空间线索以进行精确定位。对所有视频帧重复此过程,以获得最终的查询到帧对应特征f∈R T×H×W×C。
  • Spatio-Temporal Transformer。在附近视频帧之间建立帧与帧之间的对应关系,传播和改进Eqn. 1中的查询到帧的对应特征。利用视频的时间连续性。如图3,首先使用共享卷积层降低特征映射f的空间分辨率,其输出为¯fd∈R T ×h×w×c。h, w和c是下采样特征映射的空间分辨率和通道大小。将三维的spatio-temporal positional embedding p∈R T ×h×w×c加入¯fd,并将其展开为一维的token
  • 预测头。不直接预测图像的单个边界框,而是首先在特征图上定义锚框B∈R h×w×n×4。这样可以让多尺度锚盒提供对查询对象大小和位置的强先验。对于每一帧,为特征图的每个空间元素定义n个锚框(共h·w个元素)。在特征映射空间上定义的每个锚框可以映射回其在像素空间中的对应位置,用于推断预测。对于来自Vi的每一帧,通过传递query-video来获得预测:预测头由几个卷积块组成。Pi为锚点级查询对象出现概率,∆bi是回归边界框细化。将∆bi重塑为R h×w×n×4,记为∆Bi。第 i 帧的最终细化锚框为 ^Bi = B + ΔBi 。对所有帧执行相同的操作。

图3:Spatio-Temporal Transformer的架构(左):将下采样的查询到帧对应特征¯fd与三维的spatio-temporal positional embedding结合,并将其展开为一维token(fd)。利用局部时间窗口内附近视频帧之间的帧对帧对应关系,使用几个Transformer层来随时间传播帧级对应关系,并获得总体查询-视频对应特征v∗

预测头的架构(右):在建立查询-视频关系后,用它来预测每个视频帧i的锚点级别结果。在训练时进行标签关联,并选择概率最高的精炼锚点作为测试帧的预测。

训练

实验


http://www.kler.cn/a/287483.html

相关文章:

  • 通过 Docker 对 MySQL 做主从复制的时候,因为ip不对导致不能同步。后又因为二进制的偏移量写的不对,导致不能同步的问题
  • Uni-APP+Vue3+鸿蒙 开发菜鸟流程
  • 帧中继原理与配置
  • Py之pymupdf:基于langchain框架结合pymupdf库实现输出每个PDF页面的文本内容、元数据等
  • STM32 Option Bytes(选项字节)
  • 数据库的隔离机制---对MySQL 默认隔离级别的理解
  • 【云原生】Mysql 集群技术
  • 【王树森】Few-Shot Learning (2/3): Siamese Network 孪生网络(个人向笔记)
  • 软件功能测试的重要性简析,好用的功能测试工具有哪些?
  • 衡石科技产品手册-指标分析
  • SprinBoot+Vue超市管理系统的设计与实现
  • Java-List分批多线程执行
  • 计算机毕业设计 | SpringBoot+vue移动端音乐网站 音乐播放器(附源码)
  • 【0320】Postgres内核之 vacuum heap relation (15)
  • 实训day41(9.2)
  • Flask-RESTFul 之 RESTFul 在蓝图中的使用
  • Android12 添加设置控制导航栏显示和状态栏下拉
  • 【实用干货】5大自动化测试的Python框架!
  • 【千帆AppBuilder】使用Python调用基于官方的API创建图片故事的应用,一起体验下全代码模式下是怎样的效果
  • Kaggle竞赛——手写数字识别(Digit Recognizer)
  • 【第三版 系统集成项目管理工程师】第14章 收尾过程组
  • gateway的学习
  • 深度学习中Embedding的理解
  • pod进阶:
  • [M二叉树] lc199. 二叉树的右视图(dfs+自顶向下+好题)
  • 使用 SASS 编写高效 CSS