共计 7051 个字符,预计需要花费 18 分钟才能阅读完成。
深度学习利用篇 - 计算机视觉 - 视频分类 [8]:工夫偏移模块(TSM)、TimeSformer 无卷积视频分类办法、注意力机制
1. 工夫偏移模块(TSM)
视频流的爆炸性增长为以高精度和低成本执行视频了解工作带来了挑战。传统的 2D CNN 计算成本低,但无奈捕获视频特有的工夫信息;3D CNN 能够失去良好的性能,但计算量宏大,部署老本高。作者提出了一种通用且无效的工夫偏移模块(TSM),它通过沿工夫维度挪动局部通道来促成相邻帧间的信息替换,同时它能够插入到 2D CNN 中实现零计算和零参数的工夫建模,以此兼具 2D 卷积的高效与 3D 卷积的高性能。
1.2. TSM 模型介绍
1.2.1 Intuition
首先思考一个失常的卷积操作,以核大小为 3 的一维卷积为例。假如卷积的权重为 $W = (w_1, w_2, w_3)$,输出 $X$ 是一个 1D 有限长的向量,则卷积操作 $Y = Conv(W,X)$ 可被示意为:
$$
Y_i = w_1X_{i-1} + w_2X_i + w_3X_{i+1}
$$
将卷积操作解耦为两步,位移和乘法累加。对输出 $X$ 进行 $-1, 0, +1$ 的位移,具体示意为:
$$
X^{-1}_{i} = X_{i – 1}, \quad X^{0}_{i} = X_i, \quad X^{+1}_{i} = X_{i+1}
$$
乘法累加可示意为:
$$
Y = w_1X^{-1} + w_2X^0 + w_3X^{+1}
$$
第一步位移是不须要工夫老本的,第二步乘法累加须要更大的计算耗费,然而 TSM 将乘法累加局部合并在了 2D 卷积中,因而它和根本的 2D CNN 网络相比不存在额定开销。
<center> 图 1 Temporal Shift module</center>
Temporal Shift Module(TSM) 如 图 1 所示,在 图 1 a 中,作者形容了一个具备 C 通道和 T 帧的张量,图片中每一行不同色彩代表在不同工夫点的特色,沿工夫维度,咱们将一部分通道挪动 -1,另一部分通道挪动 +1,其余部分不动(如 图 1 b 所示)。对于在线视频辨认,作者也提供了在线版本的 TSM(如 图 1c 所示),因为在在线识别模式中,咱们不能取得将来帧,因而只进行繁多方向的挪动。
1.2.2 繁难的空间挪动会带来什么问题
尽管工夫位移的原理很简略,但作者发现间接将空间位移策略利用于工夫维度并不能提供高性能和效率。具体来说,如果简略的转移所有通道,则会带来两个问题:(1)因为大量数据挪动而导致的效率降落问题。位移操作不须要计算然而会波及数据挪动,数据挪动减少了硬件上的内存占用和推理提早,作者察看到在视频了解网络中,当应用 naive shift 策略时,CPU 提早减少 13.7%,GPU 提早减少 12.4%,使整体推理变慢。(2)空间建模能力变差导致性能降落,因为局部通道被转移到相邻帧,以后帧不能再拜访通道中蕴含的信息,这可能会损失 2D CNN 骨干的空间建模能力。与 TSN 基线相比,应用 naive shift 会升高 2.6% 的准确率。
1.2.3 TSM 模块
为了解决 naive shift 的两个问题,TSM 给出了相应的解决办法。
- 缩小数据挪动。 为了钻研数据挪动的影响,作者测量了 TSM 模型在不同硬件设施上的推理提早,作者挪动了不同比例的通道数并测量了提早,位移形式分为无位移、局部位移(位移 1 /8、1/4、1/ 2 的通道)和全副位移,应用 ResNet-50 骨干和 8 帧输出测量模型。作者察看到,如果挪动所有的通道,那么提早开销将占 CPU 推理工夫的 13.7%(如 图 2 a 所示),如果只挪动一小部分通道,如 1 /8,则可将开销限度在 3% 左右。
<center> 图 2 不同比例的通道位移下提早与准确率比照 </center>
- 放弃空间特色学习能力。 一种简略的 TSM 应用办法是将其直接插入到每个卷基层或残差模块前,如 图 3 a 所示,这种办法被称为 in-place shift,然而它会损失骨干模型的空间特色学习能力,尤其当咱们挪动大量通道时,存储在通道中的以后帧信息会随着通道挪动而失落。为解决这个问题,作者提出了另一种办法,行将 TSM 放在残差模块的残差分支中,这种办法被称为 residual TSM,如 图 3 b 所示,它能够解决进化的空间特色学习问题,因为原始的激活信息在工夫转移后仍可通过 identity 映射拜访。
<center> 图 3 In-place TSM 和 Residual TSM</center>
为测验上述假如,作者在 Kinetics 数据集上比拟了 In-place TSM 和 Residual TSM 的性能。在 图 2 b 中咱们能够看到,对于所有比例的位移,Residual TSM 都具备更好的性能。同时,作者发现,性能与位移通道的比例无关:如果比例太小,则工夫推理的能力可能不足以解决简单的工夫关系;如果太大,则会侵害空间特色学习能力,抉择 1 / 4 的通道偏移时,性能会达到峰值。
1.2.4 TSM 视频网络
Offline Models with Bi-directional TSM
作者应用双向 TSM 来构建离线视频辨认模型。给定视频 V,首先从视频中采样 T 帧 $F_1, …, F_T$。帧采样后,2D CNN 独自解决每个帧,并对输入 logits 求平均值以给出最终预测。咱们为每个残差模块插入了 TSM,无需计算即可实现工夫信息交融。在论文中,作者应用 ResNet50 作为网络骨干。
Online Models with Uni-directional TSM
在线视频了解是现实生活中很重要的工作,单向 TSM 将特色从前一帧转移到以后帧。用于在线辨认的单向 TSM 推理图如 图 4 所示,在推理过程中,对于每一帧,咱们保留每个残差块的前 1/8 特色图并将其缓存在内存中,对于下一帧,咱们用缓存的特色图来替换以后特色图的前 1/8。咱们应用 7/8 以后特色图和 1/8 前一帧的特色图组合来生成下一层,并反复。
<center> 图 4 单向 TSM</center>
1.3 试验后果
<center> 表 1 与 TSN 在不同数据集上的精度比照 </center>
如 表 1 所示,作者在不同的数据集上别离测试了 TSN 的精度和 TSM 的精度。该表格可分为两局部,上局部波及的数据集在工夫关系上没有那么重要,TSM 的计算结果小幅度优于 2D TSN 基线。下局部数据集,Something-Something V1 和 V2 以及 Jester,它们很大水平上取决于工夫关系,TSM 在这些数据集上性能有大幅度的显著晋升。
<center> 表 2 与 SOTA 模型比照 </center>
作者在 Something-Something V1 数据集上将 TSM 模型的性能与最先进的办法进行了比照。首先,因为 TSN 短少工夫建模,因而无奈取得良好的性能。对于 TRN,尽管在特征提取后增加了前期工夫交融,但其性能仍显著低于最先进的办法,跨所有层的工夫交融的重要性。
在第二局部中,TSM 与高效视频了解框架 ECO 进行比照。ECO 应用晚期 2D + 早期 3D 的构造,可实现中级工夫交融。与 ECO 相比,TSM 在较小的 FLOP 上取得了更好的性能。
第三局部蕴含以后的最新办法:Non-local I3D + GCN,可实现所有级别的工夫交融。但因为 GCN 须要应用一个在 MSCOCO 对象检测数据集上训练的地区提议网络来生成边界框,这引入了额定的数据和训练老本,因而不能偏心的进行比拟。只将 TSM 与它的 CNN 局部(Non-local I3D)比拟的话,TSM 在验证集上的 FLOP 减小了 10 倍,精度晋升 1.2%。
2.TimeSformer
2.1. TimeSformer 简介
论文地址:Is Space-Time Attention All You Need for Video Understanding?
TimeSformer 是 Facebook AI 于 2021 年提出的无卷积视频分类办法,该办法应用 ViT 网络结构作为 backbone,提出时空自注意力机制,以此代替了传统的卷积网络。与图像只具备空间信息不同,视频还蕴含工夫信息,因而 TimeSformer 对一系列的帧级图像块进行时空特征提取,从而适配视频工作。TimeSformer 在多个行为辨认基准测试中达到了 SOTA 成果,其中包含 TimeSformer- L 在 Kinetics-400 上达到了 80.7 的准确率,超过了经典的基于 CNN 的视频分类模型 TSN、TSM 及 Slowfast,而且有更短的训练用时(Kinetics-400 数据集训练用时 39 小时)。同时,与 3D 卷积网络相比,TimeSformer 的模型训练速度更快,领有更高的测试效率,并且能够解决超过一分钟的视频片段。
2.2 模型介绍
输出视频片段
TimeSformer 的输出 $X \in \mathbb{R}^{H \times W \times 3 \times F}$ 为一段视频片段,由 $F$ 个从视频中采样的大小为 $H \times W$ 的 RGB 图片帧组成。
<center> 图 1:输出视频片段由一系列的图片帧形成 </center>
图像块拆分
与 ViT 构造雷同,TimeSformer 将每一帧的图像宰割成 $N$ 个不重叠的图像块,每个图像块的大小为 $P \times P$。因为要确保每一帧被划分为 $N$ 个不重叠的图像块,因而 $N$ 的计算形式为:$N = HW / P^2$。咱们将划分好的图像块展平为 $x_{(p,t)} \in \mathbb{R}^{3P^2}$ 的向量,其中 $p = 1, …, N$ 代表图像块的地位,$t = 1, …, F$ 代表帧的索引。
图 2:将图像帧切割成图像块
线性嵌入
咱们将每一个图像块 $x_{(p,t)}$ 通过一个线性嵌入层转化为向量 $z_{(p,t)}^{(0)} \in \mathbb{R}^D$ :
$$
z_{(p,t)}^{(0)} = Ex_{(p,t)} + e_{(p,t)}^{pos}
$$
其中,$E \in \mathbb{R}^{D \times 3P^2}$ 是一个可学习的矩阵,$e_{(p,t)}^{pos} \in \mathbb{R}^D$ 代表一个可学习的地位 embedding, 能够对每个图像块的地位信息进行编码。因为 transformer 的序列式解决形式削弱了空间地位关系,因而须要给每个图像块加上一个地位信息。$z_{{(p,t)}}^{(0)}$ 代表 transformer 构造的输出,同时,额定减少一个 $z_{(0,0)}^{(0)} \in \mathbb{R}^D$ 来示意分类 token 的 embedding,作为分类器的输出。
图 3:线性嵌入层
QKV 计算
TimeSformer 采纳的 transformer 构造中蕴含 $L$ 个编码模块。对于每一个模块 $l$,一个 query/key/value 的向量都会由下述公式进行计算:
$$
q_{(p,t)}^{(l,a)} = W_Q^{(l,a)}LN(z_{(p,t)}^{(l-1)}) \in \mathbb{R}^{D_h} \\
k_{(p,t)}^{(l,a)} = W_K^{(l,a)}LN(z_{(p,t)}^{(l-1)}) \in \mathbb{R}^{D_h} \\
v_{(p,t)}^{(l,a)} = W_V^{(l,a)}LN(z_{(p,t)}^{(l-1)}) \in \mathbb{R}^{D_h} \\
$$
其中,LN() 代表层归一化,$a = 1, …, A$ 代表多个注意力头的索引,$A$ 示意注意力头的总数。每个注意力头的潜在维度为 $D_h = D/A$。
<center> 图 4:QKV 计算 </center>
自注意力计算
<center> 图 5:自注意力模块 </center>
作者在试验过程中对不同的视频自注意力模块进行了调研。试验发现,繁多维度的自注意力(只有工夫维度或空间维度的自注意力)(S)相比于时空注意力模块(ST)极大的减小了计算量,但只采取繁多的工夫或空间维度进行自注意力计算,对于视频分类工作来说,势必会极大的影响模型的分类精度,因而,作者提出了一种“Divided Space-Time Attention”(T+S),在先进行工夫注意力后再进行空间注意力,不同的注意力模块构造 如图 5 所示。对于拆散的注意力,咱们先将每一个图片块 $(p,t)$ 与其余在雷同空间地位然而不同工夫帧的图像块进行比照(自注意力工作机制可视化 如图 6 所示),失去权重矩阵 $\alpha_{(p,t)}^{(l,a)time}$:
$$
\alpha_{(p,t)}^{(l,a)time} = SM(\frac{{q_{(p,t)}^{(l,a)}}^T}{\sqrt{D_h}} \cdot [k_{(0,0)}^{(l,a)} \{k_{(p, t^{‘})}^{(l,a)} \}_{t^{‘} = 1, …, F}])
$$
<center> 图 6:自注意力模块工作机制可视化。每个视频片段都视为由一系列的帧级图像块组成,图像块大小为 16*16 pixels。在本图中,蓝色代表查问图像块,非蓝色但有色彩的图像块为不同计划下的自注意力时空邻域,无色彩图像块则不用于蓝色图像块的自注意力计算。不同 attention 构造中不同的图像块色彩代表用于不同维度,比方:(T+S)的状况中,绿色图像块代表工夫维度的自注意力邻域,红色图像块则代表空间维度的自注意力邻域。</center>
试验证实,相比于每个图像块都须要进行 $(NF+1)$ 次比照的时空联结注意力模块(ST),空间 - 工夫拆散的注意力模块(T+S)对于每个图像块只须要进行 $(N+F+2)$ 次比照,极大的进步了计算效率的同时,同时也取得了更好的分类准确率。
作者还试验了“稠密部分全局”(L+G)和“轴向”(T+W+H) 注意力模型。其构造如 图 5 所示, 图 6 显示 attention 过程中波及到的图像块。对每个图像块 $(p,t)$,(L+G)首先思考相邻的 $F \times H/2 \times W/2$ 图像块来计算部分注意力,而后以两个图像块的步长对整个视频片段沿工夫维度和空间维度计算稠密全局注意力。“轴向”注意力将注意力计算合成为三个不同的步骤:工夫、宽度和高度。Ho et al., 2019[1]; Huang et al., 2019[2]; Wang et al., 2020b[3] 中提出了对图像两个空间轴的合成注意力,作者针对视频的状况增加了工夫维度。
<center> 图 7:divided space-time attention</center>
针对拆散的时空自注意力模块,具体的计算流程如 图 7 所示,在通过 time attention 取得 $alpha_{(p,t)}^{(l,a)time}$, 依据权重矩阵计算失去 encoding ${z^{‘}}_{(p,t)}^{(l)time}$ 并由此计算出新的 key/query/value 向量。应用新失去的 key/query/value 来进行空间维度的计算,通过 space attention 失去 ${z^{‘}}_{(p,t)}^{(l)space}$,最终通过 MLP 层失去:
$$
z_{(p,t)}^{(l)} = MLP(LN({z^{‘}}_{(p,t)}^{(l)})) + {z^{‘}}_{(p,t)}^{(l)}
$$
Classification
最初,通过一个 MLP 对 class token 进行解决,失去最终的预测后果。
$$
y = MLP(z_{(0,0)}^{(L)})
$$
2.3. 试验后果
作者对不同的 attention 模块别离在 Kinetics-400(K400)和 Something-Something-V2(SSv2)数据集上进行了试验,试验后果如 表 1 所示。能够看到,拆散的时空自注意力在两个数据集上都达到了很好的成果。
<center> 表 1:不同 attention 构造的试验后果比照 </center>
作者也对 TimeSformer 和 SlowFast 以及 I3D 在 K400 数据集上进行了比拟,能够看到只管 TimeSformer 的参数量较大然而其推理老本较低。同时,在 ImageNet-21K 上进行预训练,则可达到 78% 的分类准确率。
<center> 表 2:TimeSformer 与 I3D、SlowFast 比照 </center>
更多文章请关注公重号:汀丶人工智能
- References
[1] Ho, J., Kalchbrenner, N., Weissenborn, D., and Salimans, T. Axial attention in multidimensional transformers. CoRR, 2019. https://arxiv.org/pdf/1912.12180.pdf
[2] Huang, Z., Wang, X., Huang, L., Huang, C., Wei, Y., and Liu, W. Ccnet: Criss-cross attention for semantic seg- mentation. 2019. https://openaccess.thecvf.com/content_ICCV_2019/papers/Huang_…
[3] Wang, H., Zhu, Y., Green, B., Adam, H., Yuille, A. L., and Chen, L. Axial-deeplab: Stand-alone axial-attention for panoptic segmentation. In Computer Vision – ECCV 2020 – 16th European Conference, 2020b. https://link.springer.com/chapter/10.1007/978-3-030-58548-8_7