(ECCV-2018)重新思考时空特征学习:视频分类中的速度-准确度权衡

重新思考时空特征学习:视频分类中的速度-准确度权衡

paper题目:Rethinking Spatiotemporal Feature Learning: Speed-Accuracy Trade-offs in Video Classification

paper是GoogLe Research 发表在ECCV 2018的工作

paper地址:链接

Abstract.

尽管采用卷积神经网络 (CNN) 在视频分析方面取得了稳步进展,但相对改进并没有 2D 静态图像分类那么剧烈。存在三个主要挑战,包括空间(图像)特征表示、时间信息表示和模型/计算复杂性。 Carreira 和 Zisserman 最近表明,从 2D 网络扩展并在 ImageNet 上进行预训练的 3D CNN 可能是一种很有前途的空间和时间表示学习方法。然而,就模型/计算复杂性而言,3D CNN 比 2D CNN 昂贵得多,并且容易过拟合。通过系统探索关键网络设计选择来构建有效且高效的视频分类系统,从而在速度和准确性之间寻求平衡。特别的,作者表明可以用低成本的 2D 卷积替换许多 3D 卷积。相当令人惊讶的是,当替换网络底部的 3D 卷积时,实现了最佳结果(速度和准确性),这表明高级“语义”特征的时间表示学习更有用。本文的结论推广到具有非常不同属性的数据集。当与其他几种具有成本效益的设计(包括可分离的空间/时间卷积和特征门控)结合使用时,本文的系统产生了一个有效的视频分类系统,该系统在几个动作分类基准(Kinetics、Something-something、UCF101 和 HMDB)上产生了非常有竞争力的结果,以及两个动作检测(局部化)基准(JHMDB 和 UCF101-24)。

1 Introduction

卷积神经网络 (CNN) 的复兴为使用端到端分层特征学习架构的图像分类带来了一波前所未有的进步。然而,视频分类的任务并没有像图像分类那样获得相同水平的性能提升。过去,一个限制是缺乏大规模的标记视频数据集。然而,最近创建的 Sports1M、Kinetics、Something-something、ActivityNet、Charades等已经部分消除了这一障碍。

现在面临更根本的挑战。特别的,要克服三个主要障碍:(1)如何最好地表示空间信息(即识别物体的外观); (2) 如何最好地表示时间信息(即通过时间识别上下文、相关性和因果关系); (3) 如何在训练和测试时最好地权衡模型复杂性和速度。

本文中,通过考虑各种 3D CNN 来研究这三个问题。本文的出发点是最先进的方法,由于 Carreira 和 Zisserman,被称为“I3D”(因为它将“Inception”网络的 2D 卷积滤波器“膨胀”到 3D)。尽管提供了良好的性能,但该模型的计算成本非常高。这引发了几个问题,试图在本文中解决这些问题:

  • 需要 3D 卷积吗?如果是这样,应该制作哪些层 3D,哪些层可以是 2D?这是否取决于数据集和任务的性质?

  • 在时间和空间上共同卷积重要,还是在这些维度上独立卷积就足够了?

  • 如何使用上述问题的答案来改进先前方法的准确性、速度和内存占用?

为了回答第一个问题,应用“网络手术”来获得 I3D 架构的几种变体。称为 Bottom-Heavy-I3D 的一组变体中,在网络的最低层(最接近像素的层)保留 3D 时间卷积,并在较高层使用 2D 卷积。称为 Top-Heavy-I3D 的另一个变体系列中,做相反的事情,并在顶层保留 3D 时间卷积,并在较低层使用 2D(参见图 1)。然后,通过以这种方式改变“放气”(转换为 2D)的层数来研究如何在准确性和速度之间进行权衡。发现 Top-Heavy-I3D 模型更快,这并不奇怪,因为它们仅将 3D 应用于抽象特征图,由于空间池化,抽象特征图比低级特征图小。但是,还发现 Top-Heavy-I3D 模型通常更准确,这令人惊讶,因为它们忽略了低级运动表示。

扫描二维码关注公众号,回复: 14217059 查看本文章

为了回答第二个问题(关于分离空间和时间),考虑将 3D 卷积替换为空间和时间可分离的 3D 卷积,即,将 k t × k × k k_{t} \times k \times k kt×k×k形式的过滤器替换为 1 × k × k 1 \times k \times k 1×k×k,然后是 k t × 1 × 1 k_{t} \times 1 \times 1 kt×1×1,其中 k t k_{t} kt是滤波器在时间上的宽度, k k k是滤波器在空间中的高度/宽度。将生成的模型称为 S3D,它代表“可分离 3D CNN”。 S3D 的参数显然比使用标准 3D 卷积的模型少很多,而且计算效率更高。令人惊讶的是,作者还表明它也比原始 I3D 模型具有更好的准确性。

最后,为了回答第三个问题(关于将所有东西放在一起以实现高效和准确的视频分类系统),将在回答上述两个问题时学到的知识与时空门控机制相结合,设计了一种新的模型架构,称之为S3D-G。作者表明,该模型在各种具有挑战性的视频分类数据集(例如 Kinetics、Something-something、UCF-101 和 HMDB)上比基线方法显著提高了准确性,并且在其他视频识别任务上也优于许多其他方法,例如JHMDB 上的动作局部化。

2 Related work

2D CNN 在图像分类方面取得了最先进的结果,因此,毫不奇怪,最近有许多尝试将这些成功扩展到视频分类。 Carreira 和 Zisserman 提出的 Inception 3D (I3D) 架构是当前最先进的模型之一。它的成功有三个关键因素:首先,它们将 Inception V1 架构使用的所有 2D 卷积滤波器“膨胀”为 3D 卷积,并在早期层中仔细选择时间核大小。其次,通过在时间维度上复制在 ImageNet 分类上预训练的权重来初始化膨胀的模型权重。最后,他们在大规模 Kinetics 数据集上训练网络。

不幸的是,3D CNN 的计算成本很高,因此最近人们对更有效的变体产生了兴趣。在同期工作中,最近提出了各种基于 ResNet 架构的模型。特别的,他们考虑在底层或顶层使用 3D 卷积,在其余层使用 2D 的模型;他们将这些称为“混合卷积”模型。这类似于我们的头重脚轻模型。他们得出结论,底部重型网络更准确,这与我们的发现相矛盾。然而,他们发现头重脚轻之间的差异相当小,并且与计算复杂性的变化混为一谈。通过研究整个速度-准确度权衡曲线(Inception 变体),作者表明对于给定的计算预算使用头重脚轻的设计有明显的好处(参见第 4.2 节)。

另一种节省计算的方法是用可分离卷积代替 3D 卷积,其中首先在 2D 中进行空间卷积,然后在 1D 中进行时间卷积。将生成的模型称为 S3D。这种分解在精神上类似于可分离卷积,除了本文将这个想法应用于时间维度而不是特征维度。这个想法已经在最近的各种论文中被使用,包括“R(2+1)D”、(“Pseudo-3D network”)、(“分解时空卷积网络”)等。本文使用相同的方法,但将其与头重脚轻的设计结合起来,这是一个非常有效的视频分类系统的组合。作者表明,可分离卷积的收益与使用头重脚轻设计的收益是互补的(参见第 4.4 节)。

提高准确性的一种有效方法是使用特征门控,它通过简单但有效的乘法变换来捕获特征通道之间的依赖关系。这可以看作是二阶池化的有效近似。特征门控已用于许多任务,例如机器翻译、VQA、强化学习、图像分类和动作识别。考虑上述技术的一种变体,其中将特征门控模块放置在 S3D 网络中的每个时间卷积之后,并表明这会显著提高准确性(参见第 4.6 节)。

第三节实验设置略

图2

图 2. (a) I3D、(b) I2D、© Bottom-Heavy 和 (d) Top-Heavy 变体的网络架构细节。 K 索引时空卷积层。 “2D Inc.”和“3D Inc.”块指的是图 3 中定义的 2D 和 3D 初始块。

4 Network surgery

本节报告了各种“网络手术”实验的结果,通过改变 I3D 模型的不同方面来研究对速度和准确性的影响。

4.1 Replacing all 3D convolutions with 2D


本节试图确定 3D 卷积带来的价值,其动机是 2D CNN 方法在视频分类方面的惊人成功。通过用 2D 过滤器替换 I3D 模型中的每个 3D 过滤器来做到这一点。这产生了将称为 I2D 模型的内容。

从理论上讲,I2D 网络应该对输入帧的时间反转保持不变,因为它不能合并全局信号。为了验证这一点,在具有正常帧顺序的 Kinetics-Full 和 Something-something 数据集上训练 I2D 和原始 I3D 模型,并将训练后的模型应用于帧处于正常顺序和反转时间顺序的验证数据。实验结果如表 1 所示。在测试过程中,看到 I2D 在两个版本上具有相同的性能,正如预期的那样。然而,注意到 Kinetics 数据集和Something-something 数据集之间的一个有趣的区别。在前一种情况下,I3D 的性能与“时间箭头”无关,而在后一种情况下,颠倒顺序会损害性能。认为这是因为Something-something 数据集需要在视觉上相似的动作类别之间进行细粒度的区分。

表 1. Kinetics-Full 和 Something-something 数据集的 Top-1 准确度。以正常顺序对帧进行训练,然后以正常顺序或反向顺序对帧进行测试。毫不奇怪,2D CNN 不关心帧的顺序。对于 Kinetics-Full 上的 3D CNN,正常和反向的结果是相同的,这表明捕获“时间箭头”在该数据集上并不重要。然而,在Something-something 上,确切的顺序确实很重要。

表1

4.2 Replacing some 3D convolutions with 2D


尽管我们已经看到 3D 卷积与 2D 卷积相比可以提高准确度,但它的计算成本非常高。本节研究仅用 2D 替换一些 3D 卷积的结果。具体来说,从 I2D 模型开始,逐渐将 2D 卷积膨胀为 3D,从网络中的低级到高级层,以创建所谓的 Bottom-Heavy-I3D 模型。还考虑了相反的过程,将模型的顶层膨胀为 3D,但保持较低的层为 2D;称此类模型为 Top-Heavy-I3D 模型。

在 MiniKinetics-200 和Something-something 上训练和评估Bottom-Heavy-I3D 和Top-Heavy-I3D 模型,并在图4 中显示结果。看到蓝色实线(top-heavy I3D)比相同 FLOPS 下的蓝色虚线(底部较重的 I3D),表示顶部较重的模型更快、更准确。预计速度会提高,因为在头重脚轻的模型中,特征图在以 3D 卷积之前使用空间池化来减小尺寸。对于固定的计算预算,Top-Heavy-I3D 通常比 Bottom-Heavy-I3D 准确得多。这表明 3D 卷积对于在语义丰富的高级特征中建模时间模式更有能力和有用。

图 4. 对 64 个 RGB 帧执行推理所需的准确度与 FLOPS 数。左:Mini-Kinetics-200 数据集。右图:Something-something 数据集。实线表示头重脚轻的模型,虚线表示头重脚轻的模型。橙色表示空间和时间可分离的 3D 卷积,蓝色表示全 3D 卷积。

图4

4.3 Analysis of weight distribution of learned filters


为了验证上述直觉,检查了在 Kinetics-Full 上训练的 I3D 模型的权重。图 5 显示了这些权重在模型的 4 层中的分布,从低级到高级。特别的,每个箱线图显示了时间偏移 t t t和层 l l l W l ( t , : , : , : ) W_{l}(t,:,:,:) Wl(t,:,:,:)的分布。使用 t = 0 t=0 t=0表示没有时间偏移,即时间内核中的中心。在初始化时,对于 t ∈ { − 1 , 0 , 1 } t \in\{-1,0,1\} t{ 1,0,1}的每个值,所有滤波器都以相同的一组(2D 卷积)权重(源自在 Imagenet 上预训练的 Inception 模型)开始。训练后,看到时间偏移滤波器(即,对于 t ≠ 0 t \neq 0 t=0)的权重分布在较低层仍以零为中心(见左图),而分布的方差在较高层增加(见右面板)。这再次表明更高级别的时间模式对动力学动作分类任务更有用

图5

图 5. 在 Kinetics-Full 上训练的 I3D 模型的卷积滤波器权重统计。每个箱线图显示了 W l ( t , : , : , : ) W_{l}(t,:,:,:) Wl(t,:,:,:)对于时间偏移 t t t的分布,其中 t = 0 t=0 t=0位于中间。不同层 l l l的结果显示在不同的面板中,左侧是最低层。所有具有不同时间偏移的过滤器都使用相同的权重集进行初始化。低级过滤器基本上忽略了时间维度,这与高级过滤器不同,其中权重很好地分布在不同的时间偏移上。

4.4 Separating temporal convolution from spatial convolutions


本节研究了用分解版本替换标准 3D 卷积的效果,该分解版本将该操作分解为时间部分和空间部分。更详细地说,本文的方法是将每个 3D 卷积替换为两个连续的卷积层:一个 2D 卷积层用于学习空间特征,然后是一个纯粹在时间轴上的 1D 卷积层。这可以通过运行两个 3D 卷积来实现,其中第一个(空间)卷积具有滤波器形状 [ 1 , k , k ] [1, k, k] [1,k,k],第二个(时间)卷积具有滤波器形状 [ k , 1 , 1 ] [k, 1,1] [k,1,1]。通过将这种分解应用于 I3D,获得了一个称为 S3D 的模型。有关架构的详细说明,请参阅图 6。

图6

图 6. S3D 模型示意图。深红色框是时间可分离卷积(sep-conv),粉红色框是时间可分离初始块,如图 3(c)所示。

图3

图 3. (a) 2D Inception 块; (b) 3D Inception 块; © S3D 网络中使用的 3D 时间可分离 Inception 块。

表 2 比较了 Kinetics-Full 上 S3D 和 I3D 的结果。表 3 显示 S3D 在 Something-something 数据集上的表现也优于 I3D。结果表明,尽管模型大小大幅压缩(I3D 的 12.06M 参数减少到 S3D 的 8.77M),并且加速很大(I3D 的 107.9 GFLOPS 减少到 S3D 的 66.38 GFLOPS),但可分离模型是均匀的更准确(Kinetics-Full 的 top-1 准确率从 71.1% 提高到 72.2%,Something-something 从 45.8% 提高到 47.3%)。作者相信准确性的提高是因为时空分解减少了过拟合,在某种程度上不牺牲表示的表现力,因为作者发现简单地减少网络的参数对性能没有帮助。

表 2. 可分离卷积和特征门控对使用 RGB 特征的 Kinetics-Full 验证集的影响。

表2

表 3. 可分离卷积和特征门控对使用 RGB 特征的Something-something 验证和测试集的影响。

表3

注意,可以将这种可分离变换应用到任何使用 3D 卷积的地方;因此,这个想法与在 4.1 节中讨论的哪些层应该包含 3D 卷积的问题是正交的。用 Bottom-Heavy-S3D 表示 Bottom-Heavy-I3D 模型的可分离版本,用 Top-Heavy-S3D 表示 Top-Heavy-I3D 模型的可分离版本,从而提供了 4 个模型系列。

在图 4 中绘制了这些模型的速度与准确性。看到可分离的头重脚轻模型提供了最佳的速度-准确性权衡。特别的,将前 2 层保留为可分离的 3D 卷积,其余的 2D 卷积的模型似乎是一种“甜蜜点”。将此模型称为“Fast-S3D”,因为它的效率是 I3D 的 2.5 倍(43.47 对 107.9 GFLOPS),但具有相当的准确度(Mini-Kinetics-200 为 78.0% 对 78.4%)。

4.5 tSNE analysis of the features


这里使用 tSNE 投影工具探索不同级别的 S3D 模型在Something-something 数据集上学习的时空表示。 I3D 模型的行为非常相似。没有使用来自所有 174 个类别的样本,而是使用较小的词汇表,定义的“10 个动作组”。从验证集中抽取 2,200 个数据点。在图 7 中,第一行显示了 S3D 模型在从 Max3a 到 Max5c 的级别上学习的表示。在更高的层次上,阶级分离变得越来越清晰。

图7

图 7. 从 Something-something 数据集中的图像派生的激活图的 tSNE 投影。颜色和数字代表定义的 10 个动作组。顶行显示随着我们移动到 S3D 的更高层而增加的语义分离。底行显示了 4 个不同模型在 Max5a 级别的激活。我们看到 Top-Heavy-S3D 比 Bottom-Heavy-S3D 具有更好的语义分离,尤其是对于红色框内视觉上相似的类别。

底行显示在特定特征级别 (Max5a) 学习的表示,但跨不同模型,包括 I2D、Bottom-Heavy-S3D 和 Top-Heavy-S3D(在 Max4b 层都有 2D-3D 转换点),以及完整的 S3D 模型。比较底重模型和顶重模型,对于诸如“3: Picking”、“4: Putting”和“5: Poking”之类的细微动作,用 top-heavy 模型学习的表示比在底重模型,从而通过 tSNE 投影(用红色框突出显示)实现更好的类分离。头重脚轻的模型可以学习到与使用完整 3D 模型学习到的特征一样好的特征,并且明显优于从 2D 模型中学习到的特征,而不会牺牲太多处理速度。这一观察进一步支持了本文的假设,即时间信息建模在动作分类任务的特征层次结构的顶层最有效。

4.6 Spatio-temporal feature gating


本节通过使用特征门控进一步提高模型的准确性。首先考虑首次用于视频分类的上下文特征门控机制。考虑一个非结构化的输入特征向量 x ∈ R n x \in \mathcal{R}^{n} xRn(通常在靠近 logit 输出的最终嵌入层学习),并产生一个输出特征向量 y ∈ R n y \in \mathcal{R}^{n} yRn,如下所示:
y = σ ( W x + b ) ⊙ x y=\sigma(W x+b) \odot x y=σ(Wx+b)x
其中 ⊙ \odot 表示元素乘法, W ∈ R n × n W \in \mathcal{R}^{n \times n} WRn×n是权重矩阵, b ∈ b \in b R n \mathcal{R}^{n} Rn是偏置项。如果上下文模型 σ ( W x + b ) \sigma(W x+b) σ(Wx+b)预测 x x x的某些维度很重要,该机制允许模型提高 x x x的某些维度的权重,并降低不相关维度的权重;这可以被认为是一种“自注意力”机制。

现在将其扩展到具有时空结构的特征张量。令 X ∈ X \in X R T × W × H × D \mathcal{R}^{T \times W \times H \times D} RT×W×H×D为输入张量,令 Y Y Y为相同形状的输出张量。将矩阵乘积 W x W x Wx替换为 W pool ⁡ ( X ) W \operatorname{pool}(X) Wpool(X),其中池化操作对 X X X在空间和时间上的维度进行平均。 (作者发现这比仅仅跨空间或跨时间平均效果更好。)然后计算 Y = σ ( W pool ⁡ ( X ) + Y=\sigma(W \operatorname{pool}(X)+ Y=σ(Wpool(X)+ b) ⊙ X \odot X X,其中 ⊙ \odot 表示跨特征(通道)维度的乘法,(即,在空间和时间上复制注意力图 σ ( W pool ⁡ ( X ) + b ) \sigma(W \operatorname{pool}(X)+b) σ(Wpool(X)+b)

可以将此门控模块插入网络的任何层。尝试了几个选项,并通过在 S3D 网络中的每个 [k, 1, 1] 时间卷积之后直接应用它来获得最佳结果。将最终模型(带门控的 S3D)称为 S3D-G。从表 2 中看到,与 Kinetics-Full 数据集上的 S3D 相比,这导致了准确度的健康提升(从前 1 的 72.2% 到 74.7%),而成本增加非常适度(从 66.38 GFLOPS 到 71.38)。表 3 显示 S3D-G 在Something-something 上的表现也优于S3D 和I3D。还显著优于当前最先进的方法,即多尺度 TRN,将 top-1 准确率从 33.6% 提高到 42.0%。

猜你喜欢

转载自blog.csdn.net/wl1780852311/article/details/124693281