在本系列博文中,我将探讨视频数据的深度学习主题。从关于该主题的一些最早的出版物开始,我的目标是概述这个问题最初是如何解决的——在深度学习方法大规模普及之前——并跟踪视频深度学习随时间的演变。在此过程中,我的目标不仅是概述视频深度学习的历史,还要为希望参与该领域的研究人员或从业者提供相关背景和理解。

我将把这个话题分成几篇博文。本部分将概述视频深度学习的“早期”。这一时期的出版物首次利用 3D 卷积以可学习的方式从视频数据中提取特征,不再使用手工制作的图像和视频特征表示。这些方法的示例包括将手工制作的视频特征传递到 3D 卷积层的两部分架构、基于 3D 卷积的无监督学习技术,甚至是直接对视频数据进行操作的 3D 卷积网络。

这篇文章将分为三个部分。我将首先提供相关的背景信息(例如,3D 卷积的工作原理、3D 卷积之前的方法、视频数据的结构)。然后,我将概述相关文献,提供对视频深度学习的早期方法的高级(但全面)理解。最后,我将总结这篇文章并概述这些方法的局限性,寻找后来开发的性能更好的方法。

预赛

在深入研究相关文献之前,必须概述几个概念。在描述这些概念时,我假设读者对卷积运算和计算机视觉应用中图像数据的典型结构有基本的了解。但是,我仍然会尝试提供所有相关信息,以便可以用最少的先验知识来理解重要的概念。

视频数据的结构如何?

Image和Video Data结构对比(作者自创) 在为视频开发深度学习应用程序时,人们可能会问自己的第一个问题是视频数据的典型结构(例如,与图像相比)。对于图像,这个问题有一个简单的答案。在大多数情况下,输入图像是 RGB 格式的(即,每个图像都有三个与之关联的颜色通道)并具有一定的高度和宽度。例如,在上图中,输入图像具有三个颜色通道,每个通道的高度和宽度为 5。因此,基于图像的深度学习模型的输入通常是一个 张量,大小为 3 x Height x宽度。然后可以将几个图像堆叠成一个小批量,形成一个大小为“批次 x 3 x 高度 x 宽度”的张量。

对于视频,数据结构没有太大区别。也就是说,视频只是按时间顺序排列的图像的集合,称为帧。当以正确的时间顺序观看时,这些帧揭示了场景随时间的运动,形成了视频。与图像类似,这些帧中的每一个通常都以 RGB 格式表示并具有相同的空间分辨率(即所有帧具有相同的高度和宽度)。在上图中,视频由三帧组成,每帧具有三个颜色通道,高和宽为 5。

视频中的所有帧都可以组合成一个“体积”,通过将所有帧“堆叠”在彼此之上(即,帧也可以聚合成一个大小为“3*帧 X 高 X 宽”的张量)大小为Frames X 3 X Height X Width的张量,具体取决于应用)。必须小心地将多个视频组合成一个 mini-batch,因为每个视频中的帧数可能不同,形成不同大小的视频张量。尽管如此,不同的视频可以被“分块”成相同数量的连续帧(或者可以采用填充方法)以形成相同大小的视频,这些视频可以组合在一起形成一个小批量的大小Batch x 3*Frames x高度 x 宽度

有哪些数据集?

在本文将涵盖的文献中,用于评估的主要数据集包括:TRECVID、[KTH](https://www.csc.kth.se /cvap/actions/), Hollywood2, [UCF101](https://www.crcv.ucf.edu/data/ UCF101.php) 和 YouTube 动作。所有这些数据集都集中在人类动作识别 (HAR) 问题上,其中必须根据人类在剪辑中执行的动作为视频剪辑分配分类标签。 HAR 在自动驾驶和监控等问题领域有许多应用,是迄今为止视频深度学习早期研究最广泛的应用。尽管后来的研究考虑了其他更复杂的应用,但 HAR 直到今天仍然是一个值得注意的问题。然而,有趣的是,可以证明独立于视频帧运行的基于图像的模型在 HAR [1, 2] 上表现良好,这表明只需要最少的时间推理即可提供合理的解决方案。

从 2D 到 3D……

在描述视频深度学习的拟议方法之前,考虑如何将图像深度学习的构造推广到视频领域是很有用的。特别是,我们必须考虑如何将 2D 卷积——卷积神经网络 (CNN) 背后的主力——应用于视频。 CNN 是简单的由非线性分离的并行卷积操作序列,长期以来一直应用于流行的基于图像的任务,如图像分类、目标检测和关键点估计,并取得了巨大的成功。因此,视频深度学习的早期工作将尝试扩展这种成功的视频数据操作方法是有道理的。下面描述了一个 2D 卷积操作。

RGB 图像上的 2D 卷积操作(由作者创建) 可以看出,在 2D 卷积中,跨越输入的所有通道(即上图中的三个颜色通道)的单个卷积核在输入的每个空间位置上移动,以单独计算相应的输出元素.在这里,每个输出元素是通过将输入中正确空间位置的像素值与其在内核中的相应权重相乘,然后对所有这些乘法求和来推导出来的。请注意,此描述仅考虑 2D 卷积的最简单情况(即 RGB 输入、无步幅等)。我推荐 这篇博文 以了解有关 2D 卷积的更多详细信息。

当我们开始考虑视频数据时,卷积运算的输入会发生变化,因为我们现在有多个视频帧而不是单个图像。因此,输入不再是单个 RGB 图像,而是大量堆叠在彼此之上的 RGB 图像(即,这可以被视为具有更多通道的类似输入)。为了考虑输入中的多个帧,卷积操作不仅必须跨越空间维度(例如,上图中的 2D 卷积跨越三个像素的高度和宽度),还必须跨越时间维度。也就是说,单个内核在计算其相应的输出表示时必须考虑输入的多个帧。这个公式,我们称之为 3D 卷积操作,如下所示。

三 RGB 帧上的 3D 卷积操作(由作者创建) 可以看出,上面的 3D 卷积有一个内核,它跨越输入中的两个帧。最初考虑前两帧,该内核在每个空间维度上移动以计算相应的输出元素(即,通过元素级乘法和类似于 2D 卷积的求和)。在移动了可能的空间维度之后,3D 卷积会及时采取一步,移动到它必须考虑的下一个帧跨度,并重复遍历空间维度的过程。在上图中,3D 卷积首先考虑视频中的前两帧,然后继续计算与第二帧和第三帧对应的表示。如果视频中存在更多帧,则 3D 卷积将继续以这种方式遍历时间。

3D 卷积是一种时空操作,它考虑每个单独输入帧内的空间特征和连续帧内的时间特征。尽管 3D 卷积不是从视频数据中学习特征的唯一方法,但它们是早期视频深度学习方法所利用的主要可学习转换。因此,3D 卷积是这篇文章的主要焦点。

深度学习之前用的是什么?

尽管 CNN 在图像领域取得了广泛的成功,但将其应用扩展到视频需要时间,特别是由于缺乏用于训练的大型、多样化的视频数据库(相对于基于图像的数据集的大小和多样性)[1]。因此,人们可能会开始想知道在基于深度学习的动作识别系统普及之前通常如何解决 HAR。

HAR 的初始系统从视频数据中提取固定的、手工制作的特征(例如,使用运动历史图像、SIFT 描述符、HoG 特征、模板匹配、滤波器组等)以帮助分类。通常,视频首先会被分割成兴趣点(即从背景中裁剪出人物的较短剪辑)。然后,从这些兴趣点(即,由几个裁剪的帧组成)中提取固定特征,并用一些机器学习模型(例如,支持向量机)进行分类。这些方法后来被扩展以形成更复杂的系统,这些系统通过交替应用手工制作的特征提取和子采样 [3, 4] 来分层学习特征。

尽管手工制作的方法效果相对较好,但此类特征难以在数据集上泛化,并且难以适应不同的传感器领域(例如视频或雷达)[5]。 此外,手工制作的特征往往会简化对底层数据分布(例如,固定视点、人在帧中心等)的假设,这会降低实际应用中的性能 [6]。 因此,该领域的研究人员开始寻找可以直接从数据中学习的替代特征提取方法。 由于 CNN 从图像中提取有用特征的能力,使用 2D/3D 卷积从视频数据中学习特征很快成为主要关注领域。 这篇文章概述了由此产生的方法。

视频深度学习的早期方法

我现在将概述相关的早期方法,这些方法率先使用 3D 卷积以可学习的方式从视频数据中提取特征。本文将涵盖的出版物大致可分为将可学习特征提取与固定特征提取相结合的方法,将可学习特征提取直接应用于视频数据的方法,以及用于学习视频中时空特征的无监督方法。

混合方法:结合手工制作和学习的功能


尽管 CNN 在大型图像数据集上训练时已知能够学习有用的判别特征,但 CNN 在视频领域的早期扩展通常将 3D 卷积的使用与固定特征提取相结合,而不是将 3D 卷积直接应用于原始视频数据.特别是,视频数据将首先由固定特征提取器进行预处理,例如通过计算原始视频帧上的光流或垂直和水平梯度。然后,在预处理之后,得到的表示将通过 3D 卷积层以提取可学习的特征进行分类。

这种方法被应用于 TRECVID 监视数据集的初始 HAR 系统采用 [7, 8]。此类方法不是直接对原始视频数据进行操作,而是计算 光流 和 [方向梯度](https://en.wikipedia.org/ wiki/Image_gradient) 在输入视频中。然后将这些手工制作的特征与原始视频帧连接起来,并通过几层 3D 卷积,这些卷积层被子采样操作和非线性激活函数分开。在这些 3D CNN 架构中,每个数据模态(即光流、方向梯度和法线帧)都由单独的 3D 卷积核独立处理。然后,使用支持向量机 [7] 或全连接线性模块 [8],将 3D CNN 的输出用于分类。在这些工作中,为 HAR 探索了几种不同的 CNN 架构,得出的结论是,结合几个独特的 3D CNN 架构的输出通常会带来最佳性能 [8]。

这些方法在当时非常成功,甚至在 HAR(即强基线方法)和几乎所有利用手工特征提取的基线中都优于单帧 CNN。尽管如此,这种方法仍然本质上依赖于在初始预处理阶段计算的光流和梯度特征的质量。此类特征不会被学习,因此可能无法在数据集或应用程序中很好地泛化。这一观察导致了完全消除固定特征提取的方法的提议,以尝试提取不依赖于任何手工启发式的完全可学习的特征。

使用 3D CNN 提取可学习的视频特征

为了避免与基于手工制作的特征的方法相关的限制,后来的视频深度学习方法将原始输入量(即多帧的组)直接传递到由池化层和激活层分隔的 3D 卷积层中 [9]。这种 3D CNN 在结构上类似于基于图像的 CNN,但经过修改以包含 3D 卷积 [9]。通常,这些方法从完整视频中提取一小部分帧,裁剪帧以关注每一帧内的人物,然后将子采样和裁剪的体积传递到 3D CNN [9, 10],其中输出为然后用于进行分类。有趣的是,即使使用小得多的网络 [10],这种方法也可以轻松超越混合 3D CNN(即结合了手工制作和学习特征的那些)的性能。

值得注意的是,由于这些方法将底层视频分割成更短的剪辑(例如,包含 10-15 帧)并传递到 3D CNN,因此最终分类不考虑完整视频中较大或时间上较远的帧组之间的关系。为了解决这个缺点,上述方法与循环神经网络——尤其是长短期记忆 (LSTM) 网络 [11] 相结合——来合成使用 3D CNN 从视频中的每个剪辑中提取的信息。特别是,视频首先被分割成更小的帧组,这些帧再次传递到 3D CNN 中以提取特征。然而,不是独立地对这些特征中的每一个进行分类,而是将与每个视频片段相关联的特征按时间顺序作为输入传递给 LSTM,然后 LSTM 执行最终分类 [10]。这种方法被证明可以考虑完整视频的上下文,因此可以显着提高 HAR 的性能。

使用 3D CNN 直接从视频数据中提取特征是革命性的,因为它为深度学习成为视频学习任务的主要方法铺平了道路。这些作品摆脱了传统的视频学习方法,遵循相关深度学习文献的图像识别方法,选择让所有特征以可学习的方式获得。因此,用于视频学习任务的系统(例如,HAR)变得不那么依赖领域,并且视频相关的研究可以以更快的速度发展,因为消除了为每个可能的数据集不断确定最佳手工特征的需要 [12] ]。然而,此类方法仍然存在一个主要限制——它们的性能完全取决于底层任务的标记数据的质量和丰富程度。 视频的无监督表示学习

尽管 3D CNN 模型提供了令人难以置信的价值,但它们的性能受到可用于训练的数据量的限制。尤其是在深度学习的早期,标记视频数据的可用性极低 [1]。因此,由于缺乏足够的数据,3D CNN 模型学习高质量特征的能力总是受到一定的限制。这种限制导致了用于提取有意义的视频特征的无监督深度学习方法的同步发展 [12, 13]。

第一种此类无监督视频学习方法利用门控受限玻尔兹曼机 (GRBM) 架构从视频中的相邻帧中学习特征。最初,GRBM 架构无法处理高分辨率图像(即,计算成本太高),因为在将图像作为输入传递给模型之前将其展平为向量。为了缓解这个问题,[13] 中的 GRBM 被修改为使用卷积运算,允许以较低的计算成本处理更高分辨率的图像。然后可以以无监督的方式在相邻的视频帧上训练这种卷积 GRBM 模型,以学习有用的空间和时间信息,从而无需标记数据即可从视频中提取高质量的特征。从这里开始,然后表明从卷积 GRBM 提取的特征可以传递到 3D CNN 以解决 HAR 等任务,其中性能通过 GRBM 的无监督预训练得到了极大的提高 [13]。

尽管卷积 GRBM 显示出令人印象深刻的性能,但无监督的预训练过程在计算上非常低效,因此受独立子空间分析 (ISA) [12] 的启发,人们提出了一种替代的无监督视频学习方法。 ISA 是一种受生物学启发的稀疏学习方法,基于 独立分量分析,以前用于从静态图像中提取有意义的特征,并且可以在一种无人监督的方式。与 GRBM 类似,ISA 的计算效率太低,无法应用于高分辨率图像。为了解决这个问题,[12] 建议首先对来自视频帧的较小图像块进行 ISA 训练(即以无监督的方式)。然后,可以使用主成分分析 (PCA) 减少这些初始帧补丁上 ISA 输出的维度,足以通过另一个 ISA 模块。然后,这些模块的输出可以输入 3D CNN 以提取特征进行分类 [12]。这种方法极大地提高了视频无监督表示学习的效率,并在几乎所有 HAR 数据集上实现了最先进的性能。

结论与展望

在这篇文章中,我们概述了利用 3D 卷积操作从视频中提取可学习特征的早期方法。最初,此类工作采用混合方法,其中提取手工制作的特征并将其与来自 3D CNN 的可学习特征混合。后来,消除了所有手工制作的组件,并通过将 3D CNN 直接应用于原始视频数据,以完全可学习的方式提取视频特征。然后,同时提出了几种用于学习有意义的视频特征的无监督方法,从而减轻了在解决常见学习任务(例如 HAR)时对标记视频数据的依赖。

尽管早期的视频深度学习方法效果相对较好,但它们效率很低,并且无法与深度学习在基于图像的任务上取得的令人印象深刻的性能相提并论。这项工作中概述的方法仅略微优于单帧基线模型,甚至偶尔会在某些数据集上优于手工制作的基线方法。因此,需要一种性能更高的方法来维持或提高本文中概述的 3D CNN 方法的计算效率。最终,这种需求导致了双流 3D CNN 架构的提议,这将在本系列的下一篇文章中进行概述。