IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> ECCV2022|港中文MM Lab证明Frozen的CLIP 模型是高效视频学习者 -> 正文阅读

[人工智能]ECCV2022|港中文MM Lab证明Frozen的CLIP 模型是高效视频学习者

ECCV2022|港中文MM Lab证明Frozen的CLIP 模型是高效视频学习者

【写在前面】

视频识别一直以端到端学习范式为主——首先使用预训练图像模型的权重初始化视频识别模型,然后对视频进行端到端训练。这使视频网络能够从预训练的图像模型中受益。然而,这需要大量的计算和内存资源来微调视频,并且直接使用预训练的图像特征而不微调图像主干的替代方法会导致结果不佳。幸运的是,Contrastive VisionLanguage Pre-training (CLIP) 的最新进展为视觉识别任务的新路径铺平了道路。这些模型在大型开放词汇图像-文本对数据上进行了预训练,学习了具有丰富语义的强大视觉表示。在本文中,作者提出了高效视频学习 (EVL)——一种用于直接训练具有冻结 CLIP 特征的高质量视频识别模型的有效框架。具体来说,作者采用了一个轻量级的 Transformer 解码器并学习了一个查询token,以从 CLIP 图像编码器动态收集帧级空间特征。此外,作者在每个解码器层中采用局部时间模块来发现来自相邻帧及其注意力图的时间线索。作者表明,尽管使用冻结的主干进行训练很有效,但本文的模型在各种视频识别数据集上学习了高质量的视频表示。

1. 论文和代码地址

Frozen CLIP Models are Efficient Video Learners

论文地址:https://arxiv.org/abs/2208.03550

代码地址:https://github.com/opengvlab/efficient-video-recognition

2. Motivation

作为视频理解的基本组成部分,学习时空表示近年来仍然是一个活跃的研究领域。自深度学习时代开始以来,已经提出了许多架构来学习时空语义,例如传统的双流网络,3D 卷积神经网络和时空Transformer。由于视频是高维的并且表现出大量的时空冗余,因此从头训练视频识别模型效率非常低,可能会导致性能下降。直观地说,视频片段的语义意义与其每个单独的帧高度相关。先前的研究表明,图像识别的数据集和方法也可以使视频识别受益。由于图像和视频识别之间的密切关系,作为常规实践,大多数现有的视频识别模型都利用预训练的图像模型进行初始化,然后以端到端的方式重新训练所有参数以进行视频理解。

然而,端到端微调机制有两个主要缺点。首先是效率。视频识别模型需要同时处理多个帧,并且在模型大小方面比其图像对应物大几倍。微调整个图像主干不可避免地会产生巨大的计算和内存消耗成本。因此,这个问题限制了在有限计算资源下用于视频识别的一些最大图像架构的采用和可扩展性。第二个问题在迁移学习的背景下被称为灾难性遗忘。在对下游视频任务进行端到端微调时,如果下游视频信息量不足,可能会破坏从图像预训练中学习到的强大视觉特征并获得低于标准的结果。这两个问题都表明,从预训练的图像模型进行端到端微调并不总是一个理想的选择,这需要一种更有效的学习策略来将知识从图像转移到视频。
通过对比学习 、mask视觉建模和传统的监督学习,在学习高质量和通用的视觉表示方面已经做出了相当大的努力。MAE 等mask视觉建模方法训练编码器-解码器架构以重建来自潜在表示和mask token的原始图像。基于监督学习的方法使用一组固定的预定义类别标签训练图像主干。由于它们通常是单模训练的,因此它们都缺乏表示丰富语义的能力。相比之下,诸如 CLIP之类的对比视觉语言模型是使用大规模开放词汇图像-文本对进行预训练的。他们可以学习与更丰富的语言语义相一致的更强大的视觉表示。 CLIP 的另一个优势是其有前途的特征可迁移性,这为各种下游任务的一系列迁移学习方法奠定了坚实的基础。

上述原因启发作者重新思考图像和视频特征之间的关系,并设计有效的迁移学习方法来利用冻结的 CLIP 图像特征进行视频识别。为此,作者提出了一种基于轻量级 Transformer 解码器的高效视频学习 (EVL) 框架 。 EVL 与其他视频识别模型的区别如上图左所示。具体来说,EVL 学习一个查询token,以从 CLIP 图像编码器的每一层动态收集帧级空间特征。最重要的是,作者引入了一个局部时间模块,在时间卷积、时间位置嵌入和跨帧注意力的帮助下收集时间线索。最后,使用全连接层来预测视频类别的分数。作者进行了广泛的实验来证明本文方法的有效性,并发现 EVL 是一种简单有效的pipeline,具有更高的准确性,但训练和推理成本更低,如上图右所示。本文的贡献如下:

  • 指出了当前端到端视频理解学习范式的缺点,并提出利用冻结的 CLIP 图像特征来促进视频识别任务

  • 开发了 EVL——一种从图像到视频识别的高效迁移学习pipeline,其中作者在固定的可迁移图像特征之上训练了一个轻量级的 Transformer 解码器模块,以执行时空融合。

  • 大量实验证明了 EVL 的有效性和效率。与端到端微调相比,它产生的训练时间要短得多,但性能却具有竞争力。这使得具有平均计算资源的更广泛社区可以访问视频识别这个任务。

3. 方法

本文的图像到视频迁移学习pipeline的三个主要目标是(1)总结多帧特征和推断视频级预测的能力; (2) 跨多个帧捕获运动信息的能力; (3) 效率。因此,作者提出了高效视频学习 (EVL) 框架,将在下面详细介绍。

3.1 Overall Structure

如上图所示,EVL 的整体结构是固定 CLIP 主干之上的多层时空 Transformer 解码器。 CLIP 主干从每个帧中独立提取特征。然后将帧特征堆叠以形成时空特征量,用时间信息调制,并馈入 Transformer 解码器。 Transformer 解码器执行多层特征的全局聚合:学习视频级分类token [CLS] 作为查询,并将来自不同骨干块的多个特征量作为键和值馈送到解码器块。线性层将最后一个解码器块的输出投影到类预测。形式上,Transformer 解码器的操作可以表示如下:

Y i = Temp ? i ( [ X N ? M + i , 1 , X N ? M + i , 2 , … , X N ? M + i , T ] ) q ~ i = q i ? 1 + MHA ? i ( q i ? 1 , Y i , Y i ) q i = q ~ i + MLP ? i ( q ~ i ) p = FC ? ( q M ) \begin{aligned} \mathbf{Y}_{i} &=\operatorname{Temp}_{i}\left(\left[\mathbf{X}_{N-M+i, 1}, \mathbf{X}_{N-M+i, 2}, \ldots, \mathbf{X}_{N-M+i, T}\right]\right) \\ \tilde{\mathbf{q}}_{i} &=\mathbf{q}_{i-1}+\operatorname{MHA}_{i}\left(\mathbf{q}_{i-1}, \mathbf{Y}_{i}, \mathbf{Y}_{i}\right) \\ \mathbf{q}_{i} &=\tilde{\mathbf{q}}_{i}+\operatorname{MLP}_{i}\left(\tilde{\mathbf{q}}_{i}\right) \\ \mathbf{p} &=\operatorname{FC}\left(\mathbf{q}_{M}\right) \end{aligned} Yi?q~?i?qi?p?=Tempi?([XN?M+i,1?,XN?M+i,2?,,XN?M+i,T?])=qi?1?+MHAi?(qi?1?,Yi?,Yi?)=q~?i?+MLPi?(q~?i?)=FC(qM?)?

其中 X n , t \mathbf{X}_{n, t} Xn,t?表示从 CLIP 主干的第 n 层提取的第 t 帧的帧特征, Y i \mathbf{Y}_{i} Yi?表示输入到 Transformer 解码器的第 i 层的时间调制特征量。 q i \mathbf{q}_{i} qi?是逐步细化的查询token, q 0 \mathbf{q}_{0} q0? 作为可学习参数, p \mathbf{p} p 是最终预测。N、M 分别表示主干图像编码器和时空解码器中的块数。 MHA代表multi-head attention,三个参数分别是query、key和value。 Temp 是时间建模,它产生由更细粒度的时间信息调制的特征token。

3.2 Learning Temporal Cues from Spatial Features

虽然 CLIP 模型生成强大的空间特征,但它们完全缺乏时间信息。尽管 Transformer 解码器能够进行加权特征聚合,这是一种全局时间信息的形式,但细粒度和局部时间信号也可能对视频识别有价值。因此,作者引入了以下时间模块来对这些信息进行编码,然后再将特征输入到 Transformer 解码器中。

Temporal Convolution

时间深度卷积能够捕获沿时间维度的局部特征变化,并且已知是高效和有效的。形式上,这个卷积编码的特征写成 Y conv? \mathbf{Y}_{\text {conv }} Yconv??,并且

Y c o n v ( t , h , w , c ) = ∑ Δ t ∈ { ? 1 , 0 , 1 } W c o n v ( Δ t , c ) X ( t + Δ t , h , w , c ) + b conv? ( c ) \mathbf{Y}_{\mathrm{conv}}(t, h, w, c)=\sum_{\Delta t \in\{-1,0,1\}} \mathbf{W}_{\mathrm{conv}}(\Delta t, c) \mathbf{X}(t+\Delta t, h, w, c)+\mathbf{b}_{\text {conv }}(c) Yconv?(t,h,w,c)=Δt{?1,0,1}?Wconv?(Δt,c)X(t+Δt,h,w,c)+bconv??(c)

Temporal Positional Embeddings

作者学习了一组维度为 C 的 T 个向量,表示为 P ∈ R T × C \mathbf{P} \in \mathbb{R}^{T \times C} PRT×C,作为时间位置嵌入。图像特征根据它们的时间位置 t 与向量之一相加,表示为:

Y pos ? ( t , h , w , c ) = P ( t , c ) \mathbf{Y}_{\operatorname{pos}}(t, h, w, c)=\mathbf{P}(t, c) Ypos?(t,h,w,c)=P(t,c)

虽然时间卷积也可以隐式捕获时间位置信息,但通过使不同时间的相似特征可区分,位置嵌入更加明确。位置嵌入对于远程时间建模也更强大,为此必须堆叠多个卷积块以实现大的感受野。

Temporal Cross Attention.

另一个有趣但经常被忽视的时间信息来源是注意力图。由于注意力图反映了特征对应关系,计算两帧之间的注意力图自然会揭示对象运动信息。更具体地说,作者首先使用 CLIP 中的原始查询和关键投影构建相邻帧之间的注意力图:

A prev? ( t ) = Softmax ? ( ( Q X ( t ) ) T ( K X ( t ? 1 ) ) ) A next? ( t ) = Softmax ? ( ( Q X ( t ) ) T ( K X ( t + 1 ) ) ) \mathbf{A}_{\text {prev }}(t)=\operatorname{Softmax}\left((\mathbf{Q X}(t))^{T}(\mathbf{K X}(t-1))\right)\\\mathbf{A}_{\text {next }}(t)=\operatorname{Softmax}\left((\mathbf{Q X}(t))^{T}(\mathbf{K X}(t+1))\right) Aprev??(t)=Softmax((QX(t))T(KX(t?1)))Anext??(t)=Softmax((QX(t))T(KX(t+1)))

为简单起见,作者省略了注意力头,并在本文的实现中对所有头进行了平均。然后将其线性投影到特征维度:

Y attn ? ( t , h , w , c ) = ∑ h ′ = 1 H ∑ w ′ = 1 W W prev? ( h ? h ′ , w ? w ′ , c ) A prev? ( t , h ′ , w ′ ) + W next? ( h ? h ′ , w ? w ′ , c ) A next? ( t , h ′ , w ′ ) . \mathbf{Y}_{\operatorname{attn}}(t, h, w, c)=\sum_{h^{\prime}=1}^{H} \sum_{w^{\prime}=1}^{W} \mathbf{W}_{\text {prev }}\left(h-h^{\prime}, w-w^{\prime}, c\right) \mathbf{A}_{\text {prev }}\left(t, h^{\prime}, w^{\prime}\right)+\\\mathbf{W}_{\text {next }}\left(h-h^{\prime}, w-w^{\prime}, c\right) \mathbf{A}_{\text {next }}\left(t, h^{\prime}, w^{\prime}\right) . Yattn?(t,h,w,c)=h=1H?w=1W?Wprev??(h?h,w?w,c)Aprev??(t,h,w)+Wnext??(h?h,w?w,c)Anext??(t,h,w).

实验表明,尽管查询、关键和输入特征都是从纯 2D 图像数据中学习的,但这种注意力图仍然提供有用的信号。
最终的调制特征是通过将时间特征与原始空间特征以残差方式混合得到的,即 Y = X + Y c o n v + Y pos? + Y a t t n \mathbf{Y}=\mathbf{X}+\mathbf{Y}_{\mathrm{conv}}+\mathbf{Y}_{\text {pos }}+\mathbf{Y}_{\mathrm{attn}} Y=X+Yconv?+Ypos??+Yattn?

3.3 Complexity Analysis

Inference

考虑到只使用一个查询token,额外的 Transformer 解码器只引入了可忽略的计算开销。为了证明这一点,作者将 ViT-B/16 视为本文的图像主干,并为 Transformer 块写出 FLOPS,如下所示:

F L O P S = 2 q C 2 + 2 k C 2 + 2 q k C + 2 α q C 2 \mathrm{FLOPS}=2 q C^{2}+2 k C^{2}+2 q k C+2 \alpha q C^{2} FLOPS=2qC2+2kC2+2qkC+2αqC2

这里,q、k、C、α 代表查询token的数量、键(值)token的数量、嵌入维度的数量和 MLP 扩展因子。通过这个公式,可以粗略地比较一个编码器块和解码器块的 FLOPS(h,w,t 是沿高度、宽度、时间维度的特征大小,采用常见的选择 α = 4,h = w = 14,C = 768 用于估计):

?FLOPS? d e c F L O P S e n c ≈ 2 h w t C 2 t ( 12 h w C 2 + 2 h 2 w 2 C ) ≈ 1 6 \frac{\text { FLOPS }_{\mathrm{dec}}}{\mathrm{FLOPS}_{\mathrm{enc}}} \approx \frac{2 h w t C^{2}}{t\left(12 h w C^{2}+2 h^{2} w^{2} C\right)} \approx \frac{1}{6} FLOPSenc??FLOPS?dec??t(12hwC2+2h2w2C)2hwtC2?61?

由此,可以看到,与编码器块相比,解码器块更轻量级。即使使用完整配置(每个编码器输出上都有一个解码器块,不减少通道并且启用所有时间模块),FLOPS 的增加也在主干的 20% 以内。

Training

由于使用固定骨干网和非侵入式 Transformer 解码器头(即,插入的模块不会改变任何骨干网层的输入),可以完全避免通过骨干网进行反向传播。这大大减少了内存消耗和每次训练迭代的时间。

4.实验

Kinetics-400数据集上本文方法和其他SOTA方法的对比。

上表展示了本文方法的基于CLIP方法的对比结果。

在实际硬件上测量的推理延迟和吞吐量。

训练时间比较。

作者在上表中比较了理想设置中的训练时间。

多层高分辨率特征图的效果。

不同预训练图像特征的结果。

上图展示了训练时间与冻结或微调主干的准确性。

时间信息对视频识别的影响。

Something-Something-v2 的主要结果。

不同组合的集成结果。

在Something-Something-v2 上集成结果。

5. 总结

作者提出了一种新的视频动作识别pipeline形式:在固定的可迁移图像特征之上学习一个有效的迁移学习头。通过冻结图像主干,训练时间大大减少。此外,通过利用来自主干的多层高分辨率中间特征图,可以在很大程度上补偿由于冻结主干造成的精度损失。因此,本文的方法有效地利用了强大的图像特征进行视频识别,同时避免了对非常大的图像模型进行繁重或令人望而却步的全面微调。作者进一步表明,在开放世界环境中学习的可转移图像特征包含与标记数据集高度互补的知识,这可能会激发更有效的方法来构建最先进的视频模型。作者认为本文的观察有可能使更广泛的社区可以访问视频识别,并以更有效的方式将视频模型推向新的最先进水平。

【项目推荐】

面向小白的顶会论文核心代码库:https://github.com/xmu-xiaoma666/External-Attention-pytorch

面向小白的YOLO目标检测库:https://github.com/iscyy/yoloair

面向小白的顶刊顶会的论文解析:https://github.com/xmu-xiaoma666/FightingCV-Paper-Reading

“点个在看,月薪十万!”

“学会点赞,身价千万!”

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-09-15 02:00:48  更:2022-09-15 02:01:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 18:33:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计