文章目录

  • 前言
  • 一、Introduction
  • 二、Method
    • 1.双编码器结构
    • 2.Multiple Choice Questions(MCQ)
    • 3.目标函数
    • 4.模型结构
      • 4.1视频编码器
      • 4.2文本编码器
      • 4.3BridgeFormer
  • 三、实验
    • 1.数据集
    • 2.实现细节
    • 3.主要结果
      • 3.1视频文本检索
      • 3.2行为识别

前言

来源:CVPR 2022
相关设置

行为识别{linear:视频编码器参数冻结,只有线性分类器被优化fine−tune:视频编码器用线性分类器进行微调zero−shot:通过使用类别名称作为文本描述进行视频文本的检索(训练时的类别与测试时不相同)行为识别 \begin{cases} linear:视频编码器参数冻结,只有线性分类器被优化\\ fine-tune:视频编码器用线性分类器进行微调\\ zero-shot:通过使用类别名称作为文本描述进行视频文本的检索(训练时的类别与测试时不相同) \end{cases} 行为识别⎩⎪⎨⎪⎧​linear:视频编码器参数冻结,只有线性分类器被优化fine−tune:视频编码器用线性分类器进行微调zero−shot:通过使用类别名称作为文本描述进行视频文本的检索(训练时的类别与测试时不相同)​
视频文本检索{fine−tune:利用预训练好的模型进行微调zero−shot:将预训练好的模型直接应用于另一个数据集视频文本检索 \begin{cases} fine-tune:利用预训练好的模型进行微调\\ zero-shot:将预训练好的模型直接应用于另一个数据集 \end{cases} 视频文本检索{fine−tune:利用预训练好的模型进行微调zero−shot:将预训练好的模型直接应用于另一个数据集​

一、Introduction

本文在保持高效率的情况下进行视频文本检索,训练一个模型BridgeFormer来使用视频特征回答文本特征构造的问题。具体来说,文中显式的利用文本特征(如动词,名词)来构建问题,使用一个视频编码器捕捉区域和时间特征。通过问题构建和回答的形式,视频文本间的语义关系能被建立。BridgeFormer在测试时能够移除,作为一个高效的模型(只有两个编码器)进行视频检索。

目前的视频文本检索分为两类,如下图所示,一类是双编码器(Dual encoder)方法,使用两个独立的编码器分别提取视频文本特征,但是这丢失了两种模态的关系信息以及模态内的细节信息。另一种是联合编码器(Joint-encoder)方式,将文本和视频拼接作为输入,这样可以学到更细粒度的特征但是牺牲了检索效率(推理时每个视频文本对都需要放入网络中)。

本文提出了MCQ(Multiple Choice Questions)方法来保证高效检索的同时能够进行视频与文本信息的交互。这里使用一个BridgeFormer网络来实现MCQ方法。BridgeFormer利用视频特征回答文本特征构建的问题,保证了两个模态间的交互。该网络在推理时能够被移除来保证高效性。

BridgeFromer在全部的特征层次(低、中、高)上连接视频和文本特征。正则化(而非拼接)直接加在视频和文本特征上,因此该网络在推理时能够直接移除。文章贡献如下:

介绍了MCQ,它结合了双编码器和两个编码器的优点。

提出了BridgeFormer模型来实现MCQ,保证视频和文本特征之间进行交互

在5个视频文本检索的数据集上取得了好的结果。

二、Method

1.双编码器结构

如下图所示,本文使用双编码器结构为基础,双编码器包括一个视频编码器和一个文本编码器。他们分别得到视频和文本的特征fvf_vfv​ ,ftf_tft​ 。通过计算fvf_vfv​和ftf_tft​ 的点积来得到相似度。使用对比损失来最大化正样本对间的相似度,最小化负样本对间的相似度。双编码器只要求视频和文本间的点积运算,保证了高效运行。

2.Multiple Choice Questions(MCQ)

MCQ通过一个BridgeFormer实现,它将来自视频和文本编码器的多层级tokens联系起来回答一个多选问题。随机删除文本中一个名词或动词短语,BridgeFormer应能够在视频特征的帮助下从多个选项中(一个batch中删除的多个短语)选出被删除的内容。

以名词短语为例,给一个视频和相应的文本,随机选择一个名词短语删除。如上图所示,名词问题(删除一个名词短语后的文本)放入文本编码器得到文本表示{z}noun_q\{z\}_{noun\_q}{z}noun_q​,视频表示由视频编码器提取得到{z}v\{z\}_v{z}v​,将前者作为q,后者作为k,v放入BridgeFormer。

之后通过一个跨模态注意力得到名词的回答表示,删除的短语放入文本编码器后得到短语表示,然后这两个特征被映射到一个公共空间得到fnoun_af_{noun\_a}fnoun_a​,fnounf_{noun}fnoun​。使用点积计算它们的相似度。训练时,利用对比损失最大化正样本fnoun_af_{noun\_a}fnoun_a​,fnounf_{noun}fnoun​的相似度,最小化负样本fnoun_af_{noun\_a}fnoun_a​,fnounf_{noun}fnoun​相似度。训练BridgeFormer使用视频表示选择出正确的被删除短语,让视频与文本进行内容上的对齐。动词短语的过程和名词短语类似。

3.目标函数

使用对比损失Noise-Contrastive Estimation (NCE)作为目标函数,整体目标函数如下:
L=Lvanila+Lnoun+LverbL=L_{vanila}+L_{noun}+L_{verb} L=Lvanila​+Lnoun​+Lverb​
L_{vanila}是视频表示和文本表示fvf_vfv​ ,ftf_tft​间的NCE损失。L_{noun}是名词回答表示fnoun_af_{noun\_a}fnoun_a​和名词表示fnounf_{noun}fnoun​间的NCE损失,L_{verb}是动词回答表示fverb_af_{verb\_a}fverb_a​和名词表示fverbf_{verb}fverb​间的NCE损失。

NCE损失表示如下:
NCE(xi,yi)=−logexp(xiTyi/τ)∑j=1Bexp(xiTyj/τ)NCE(x_i,y_i)=-log\frac{exp(x_{i}^{T}y_i/\tau)}{\sum_{j=1}^{B}exp(x_{i}^{T}y_j/\tau)} NCE(xi​,yi​)=−log∑j=1B​exp(xiT​yj​/τ)exp(xiT​yi​/τ)​
B是batchsize的大小,τ\tauτ 被设置为0.05

4.模型结构

网络模型如下图

4.1视频编码器

输入:使用一个M帧的视频V∈RM×3×H×WV\in R^{M\times 3\times H\times W}V∈RM×3×H×W作为输入,首先被分为M×NM\times NM×N个patches,之后使用线性映射得到一系列的tokens {z}v∈RM×N×D\{z\}_v\in R^{M\times N\times D}{z}v​∈RM×N×D,D是嵌入维度。另外,在序列前面,一个[CLS]token也被加入。最终输入为 {z}v0∈R(1+M×N)×D\{z\}_v^0\in R^{(1+M\times N)\times D}{z}v0​∈R(1+M×N)×D。

VideoBlock:视频输入放入一个包含多个VideoBlock的编码器中,在ViT的基础上进行了修改,能够进行变化长度的输入。

4.2文本编码器

输入:文本编码器有三种输入形式:完整的文本,删除某个短语的文本,被删除的短语。[CLS]token也被添加。

TextBlock:使用多层双向transformer编码器作为TextBlock。

4.3BridgeFormer

输入:将来自文本编码器的问题(删除某个短语后的文本)作为q,来自视频编码器的的视频tokens作为k,v,通过跨模态注意力获得答案表示。

BridgeBlock:给定一个问题文本 {z}ql−1∈RL×D\{z\}_q^{l-1}\in R^{L\times D}{z}ql−1​∈RL×D(不包含[CLS])作为q,视频tokens为 {z}vl−1∈RM×(N×D)\{z\}_v^{l-1}\in R^{M\times (N\times D)}{z}vl−1​∈RM×(N×D)(不包含[CLS])作为k和v,通过多头注意力机制得到两个模态交互的tokens为{z}qvl\{z\}_{qv}^l{z}qvl​ ,它表示问题文本与每帧图像的patch间的注意力。{z}qvl\{z\}_{qv}^l{z}qvl​ 和上一层的输出{z}al−1\{z\}_{a}^{l-1}{z}al−1​ 相加得到本层输出{z}al\{z\}_{a}^{l}{z}al​ 。最终的结果由最后一层的[CLS]token表示。

三、实验

1.数据集

预训练:模型在CC3M图像文本数据集上和WebVid-2M视频文本数据集上预训练。

视频文本检索:在MSR-VTT(10k个视频,200k个描述),MSVD(1970个视频,80k个描述),LSMDC(118081个视频),DiDeMo(10k个视频,40k个描述),HowTo100M(1.22M个视频和136M个描述)五个数据集上进行测试。一个视频的所有描述被拼接在一起作为单个描述。这是首次在HowTo100M上进行视频文本的检索,两种设置(zero-shot 和fine-tune)被用来进行评估。

行为识别:在HMDB51(包含6766个视频,51个类)和UCF101(包含13320个视频,101个类)进行评估。三种设置用于评估,包括linear:视频编码器参数冻结,只有线性分类器被优化;fine-tune:视频编码器用线性分类器进行微调;zero-shot:通过使用类别名称作为文本描述进行视频文本的检索(训练和测试用的类别不同)。

2.实现细节

视频缩放为224×224224\times 224224×224,将一个视频分为M段,训练时每段随机取一帧,测试时每段统一取一帧。视频编码器包含12个block,patch size设为16,序列维度为768,使用ImageNet-21k上预训练的ViT权重初始化。文本编码器使用在English Wikipedia和Toronto Book Corpus上预训练的DistilBERT框架,特征维度设为256.对比损失的超参数为0.05。BridgeFormer包含12个block,首先在CC3M和WebVid-2M上预训练(每个视频取一帧,训练10个epoch,batch-size为2048,学习率为1×10−41\times 10^{-4}1×10−4。然后在WebVid-2M上预训练(每个视频取4帧,训练4个epoch,batch-size为800,学习率3×10−53\times 10^{-5}3×10−5。下游任务中,视频文本检索每个视频取4帧,行为识别每个视频取16帧。

3.主要结果

3.1视频文本检索

下表为在MST-VTT上的表现,上半部分为zero-shot,下半部分是fine-tuning。从表中可以看出,该模型明显优于之前的工作(无论是zero-shot还是fine-tuning)。它可以在较小数据集上预训练并产生较好的结果。

在MSVD,DiDeMo,LSMDC上的结果如下表所示,也取得了最优结果。

在大规模数据集HowTo100M上也优于目前最好的方法Frozen

3.2行为识别

在HMDB51和UCF101上进行zero-shot的行为识别,这可以看作一个视频文本检索任务。如下表所示,最终结果优于其他方法。

为了评估模型的视频特征表达能力,这里在linear和fine-tuning设置下进行了实验,如下表所示,文中的方法优于大部分的行为识别方法,尽管MMV在使用语音信息和更长的视频帧序列后要优于本文方法,但是它需要的计算量明显更大。

论文阅读笔记(二):Bridging Video-text Retrieval with Multiple Choice Questions相关推荐

  1. 【视频目标检测论文阅读笔记】Optimizing Video Object Detection via a Scale-Time Lattice

    1.1 论文信息 标题 Optimizing Video Object Detection via a Scale-Time Lattice 会议 CVPR 2018 原文链接 Optimizing ...

  2. 论文阅读笔记:Deep Video Quality Assessor

    论文PDF: Deep Video Quality Assessor: From Spatio-Temporal Visual Sensitivity to a Convolutional Neura ...

  3. 论文阅读笔记二十八:You Only Look Once: Unified,Real-Time Object Detection(YOLO v1 CVPR2015)...

    论文源址:https://arxiv.org/abs/1506.02640 tensorflow代码:https://github.com/nilboy/tensorflow-yolo 摘要 该文提出 ...

  4. 【论文阅读笔记】Real-Time Video Super-Resolution on Smartphones with Deep Learning, Mobile AI 2021 Challenge

    论文地址:https://arxiv.org/abs/2105.08826 论文小结   这比赛的目标是在移动手机上得到实时运行的视频超分算法,目标在480p(实际上是180∗30180*30180∗ ...

  5. Kaiming He论文阅读笔记二——Plain Vision Transformer Backbones for Object Detection

    Kaiming在2022年发表了一篇Exploring Plain Vision Transformer Backbones for Object Detection. 文章的主要目的是追求一种包含较 ...

  6. 《Mask TextSpotter v3: Segmentation Proposal Network for Robust Scene Text Spotting》论文阅读笔记

    论文阅读笔记 去年在ECCV上发表的<Mask TextSpotter v3: Segmentation Proposal Network for Robust Scene Text Spott ...

  7. CVPR2019|Depth-Aware Video Frame Interpolation【论文阅读笔记】

    CVPR2019|Depth-Aware Video Frame Interpolation[论文阅读笔记] 作者 相关链接 1.前言 2.介绍 3.算法 4.实验 作者 Wenbo Bao, Wei ...

  8. 论文阅读笔记(二)——牛的人脸识别,能做到吗?

    论文阅读笔记(二)--牛的人脸识别,能做到吗? 论文简介 论文中文翻译:<牛的人脸识别,能做到吗?> 论文名称:<Face Recognition of Cattle: Can it ...

  9. Learning Multiview 3D point Cloud Registration论文阅读笔记

    Learning multiview 3D point cloud registration Abstract 提出了一种全新的,端到端的,可学习的多视角三维点云配准算法. 多视角配准往往需要两个阶段 ...

最新文章

  1. Python开发编码规范(转)
  2. 一文搞懂 Prometheus 的直方图
  3. ssh tunnel 上网
  4. 使用Raphael实现html中绘图
  5. [APEC中小企业峰会2009上]成功企业 = 理想主义 + 现实主义
  6. python算法实验是什么_PCA 算法实验代码(python)
  7. eureka 客户端服务启动了又失败了_Spring cloud Eureka服务注册与发现详解
  8. jpa删除数据后数据库无修改_jpa删除数据库
  9. android studio 创建项目失败原因Failed to create
  10. LCD1602的学习与理解
  11. Ubuntu16.04 安装 卸载 pip
  12. C++计算某天是该年的第几天
  13. 检查压缩包是否损坏_工业安全吊带的检查PPE(个人防护装备)检查程序与表格...
  14. 我在豆瓣“请假借口研究所”,看见了社畜的人间真实
  15. 搭建zabbix监控及邮件报警
  16. 使用微信企业机器人发送信息
  17. 二叉树广度和深度遍历的全部算法
  18. 英语软件那些好玩的功能你知道吗
  19. 和睦小镇保卫战服务器位置,植物大战僵尸和睦小镇保卫战隐藏黄金地精及机关位置汇总[多图]...
  20. 简单字符驱动笔记(朱有鹏)

热门文章

  1. 【WIN 04】Free Open Source Applications
  2. 大话光存储(1)光存储基本原理
  3. 机械狗之solidworks操作(1)
  4. 国产化之银河麒麟安装.NetCore-包管理器方式
  5. es 2019 社区技术总结
  6. Apple(苹果)发布会历年邀请函设计回顾
  7. VRML ASP教程
  8. sap 查看服务器文件夹,查看系统状态
  9. 25个Web前端开发工程师必看的国外大牛和酷站
  10. 深度:新能源并网消纳的因素分析及相关建议