深度学习利用篇-计算机视觉-视频分类[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