基于深度学习的人体动作识别综述

钱慧芳,易剑平,付云虎

西安工程大学 电子信息学院,西安710048

随着互联网技术的发展和视频获取设备的普及,视频已成为信息的主要载体。视频数据的数量呈爆炸式增长,如何分析和理解视频的内容显得越来越重要。人体动作识别作为视频理解(video understanding)的重要课题之一,已经成为了计算机视觉领域研究的焦点。动作识别通过对预先分割好的时域序列进行时空信息建模,从而学习视频中所包含的表象(appearance)和运动(motion)信息,以此来建立视频内容与动作类别之间的映射关系,使得计算机能够有效地胜任视频理解的任务。动作识别在运动分析、智能监控、人机交互、视频信息检索等方面都具有广泛的应用前景。

卷积神经网络(convolutional neural network,CNN)[1]在图像分类任务中的成功应用为视频分类任务提供了大量的参考。然而,相比于图像分类任务而言,视频中的动作识别多出一个待处理的时序维度。因此,如何捕获视频帧之间所包含时序信息是动作识别的重点。本任务主要的难点在于:

(1)不确定因素

动作数据集中往往存在光照不均、背景变化、相机抖动等问题,在人-物交互的这一类型的视频中,会存在物体形变的现象,在人-人交互这一类视频中,还会存在目标遮挡的现象。这些不确定因素的干扰,会严重影响模型的性能,这也是导致动作识别未能实用化的重要原因。

(2)动作边界的不确定性

针对未修剪的视频而言,一段视频可能包含多个动作,一些动作持续时间较短,而有些动作持续时间较长,且速度变化快,难以在时序上对动作的边界进行精准的定位,模糊的动作边界将很大程度上影响识别的精度。

(3)动作类间差距较小

在细粒度视频动作数据集上,会存在动作类间差异性小的问题,即不同类别的动作之间只存在细微的差距。然而,要精确地区分这些动作往往是比较困难的,要求模型能够编码更深层次的时间特征,这对于现有的模型而言,极具挑战性。

目前,动作识别方法主要包括两类:基于传统手工特征的方法和基于深度学习的方法。传统的动作识别方法依据特征的提取方式不同可以分为基于人体关节点[2-5]、基于时空兴趣点[6-8]和基于密集轨迹[9-10]的特征提取方法。这类方法需要将手工提取到的特征编码成高维的特征向量,然后利用特征向量训练分类器以进行动作识别。然而,在特征向量的提取和编码的过程中,往往会导致较高的时空复杂度,这将严重影响到算法的性能。随着卷积神经网络在图像分类任务中的成功应用,其精度已经明显超过了传统手工方法,动作识别也从传统手工特征的方法转移到基于深度学习的方法。

本文从2D CNN、3D CNN、时空分解网络三个主流基线介绍了动作识别领域的最新成果;全面归纳了动作识别领域常用的数据集,并细致地探讨了各种数据集的特点、在动作识别中的应用以及改进的建议;着重分析了预训练技术对模型性能的影响;从动作识别最新的研究动态出发,探讨了其未来的发展方向。

1 基于深度学习的动作识别方法

得益于大规模数据集和更强大模型的提出,基于深度学习的方法已经成为动作识别任务的主流。如图1所示,基于深度学习的动作识别方法以一种端到端的形式,通过网络自主地学习视频中的行为表征来完成分类。目前,根据主干网络的特点而言,基于深度学习的动作识别网络主要包括:(1)2D CNN;(2)3D CNN;(3)时空分解网络。

图片[1]-基于深度学习的人体动作识别综述-游戏花园

Fig.1 Action recognition method based on deep learning图1 基于深度学习的动作识别方法

1.1 基于2D CNN

基于2D CNN 的动作识别方法主要经历了两个研究阶段:第一阶段,在双流网络的基础上展开研究;第二阶段,在2D CNN的基础上,通过有效地构建时间特征提取模块以捕获时间的上下文信息,从而避免光流的输入。

第一阶段:针对单流的2D CNN无法建模时间信息的问题,Simonyan等[11]提出了双流网络,网络的架构如图2所示。双流网络由空间流网络(spatial stream)和时间流(temporal stream)网络组成。空间流网络以单帧RGB图像作为输入,用于建模外观特征;时间流网络以堆叠的光流图像作为输入,用于建模运动特征。训练时,空间流网络和时间流网络单独地训练。测试时,通过平均所有采样的视频帧汇总两个流的softmax得分,从而得到视频级预测结果。

传统双流网络的缺点在于:(1)由于光流仅表示相邻帧之间的运动信息,因此双流网络对时间上下文的访问十分有限,这不利于建模一些时间跨度较大的动作;(2)双流网络只是简单地融合了空间流网络和时间流网络分类器的预测,当视频中的场景或者运动极其相似时,容易由某一个网络的误判而导致整个视频级预测的错误。

为了解决上述(1)中双流网络对于长时间结构建模能力较弱的问题,Ng 等[12]提出采用长短期记忆网络(long short-term memory,LSTM)[13]聚合视频帧序列的CNN 底层输出。相比于传统的双流网络,LSTM 能够更加有效地表达视频帧在时间序列上的依赖关系,从而实现对长时间序列进行建模。然而,其对于视频帧之间底层的时间信息建模是不够的,会造成时序信息的丢失,并且LSTM的引入会导致大量的计算开销,不利于网络后期的优化。因此,Wang等[14]提出了时域分段网络(temporal segment networks,TSN),网络架构如图3 所示。TSN 在双流网络的基础上引入了稀疏采样策略,首先将输入视频分割成若干片段,然后从各片段中随机地采样一帧,各帧独立地通过CNN提取时空特征。利用段共识函数将各个片段的输出进行组合,以获得片段之间有关类别假设的共识。最后,融合空间流和时间流的类别分数,以得到视频级预测的结果。

图片[2]-基于深度学习的人体动作识别综述-游戏花园

Fig.2 Architecture of two-stream图2 双流架构

图片[3]-基于深度学习的人体动作识别综述-游戏花园

Fig.3 Architecture of temporal segment networks图3 TSN的网络架构

TSN 的稀疏采样策略确保输入帧覆盖了视频中的各个时间段,这种视频级监督的方法使得网络具备提取全局时空特征的能力,有效地解决了传统的双流网络缺乏长时间结构建模能力的问题。然而,随机采样的片段并不是都包含与动作识别有关的信息,因此Lan等[15]在TSN的基础上提出了一种自学习加权融合的方法,每个片段的权重由网络自主学习得到,有效地解决了TSN的权重分配不合理的问题。

为了解决上述(2)中分类器级融合所导致的误分类问题,有两种常见的改进方案:①改变双流网络的融合方式;②改变双流网络的特征编码方式,将帧级特征编码成视频级特征。

针对方案①,Feichtenhofer 等[16]提出采用卷积网络融合双流特征的方法,通过CNN 学习空间线索和时间线索的对应关系,实现了分类器级融合到特征级融合的转变。Wang等[17]提出采用时空金字塔(spatiotemporal pyramid network)网络来融合时空特征。时空金字塔结构支持长期的时间融合和视觉注意力机制[18],并采用时空紧凑双线性(spatiotemporal compact bilinear,STCB)模块来实现时空信息的交互,在尽可能地保留时空信息的同时,最大限度地实现空间和时间信息的交互。

针对方案②,Diba 等[19]采用时间线性编码(temporal linear encoding,TLE)的方式聚合时空特征。TLE从不同帧或片段的长时间结构中捕获时空信息,将视频编码成一个紧凑的视频级特征表示。此外,Zhu 等[20]提出一种端到端的深度金字塔池(deep networks with temporal pyramid pooling,DTPP)网络。DTPP 采用多尺度池将由空间和时间线索组成的帧级特征以金字塔的形式编码成固定大小的视频级表示,使得该模型能够捕获视频中全局性、多尺度的时间结构。相比于传统的双流网络,TLE和DTPP旨在学习视频级特征表示,而不是帧级特征,以期望解决双流网络的部分观察训练所导致的误分类问题。

上述网络都是建立在双流网络的基础上,因此都需要预计算光流。然而光流的预计算和存储都十分昂贵,并且光流会导致设备延迟,这也会限制它在实时性检测方面的表现。因此,如何有效地设计时间特征提取模块以捕获时间的上下文,从而避免光流的输入,一直是动作识别领域研究的热点。

第二阶段:为了避免光流的提取,一种思路是从光流算法的原理出发,通过设计卷积模块去隐式地模拟光流的提取过程,从而达到建模时间特征的目的。例如,Zhu 等[21]提出了一种隐式的双流网络(hidden two-stream convolutional network,Hidden Two-Stream)。它可以隐式地去捕捉相邻帧之间的运动信息,而不需要预计算光流,在节省了存储空间的同时,也加快了算法运行的速度。Sun 等[22]提出了一种光流引导特征(optical flow guided feature,OFF),通过计算特征图水平和垂直方向的空间梯度和不同特征图之间的时间梯度,来提取不同层级的光流引导特征,使得CNN 可以直接捕获不同帧之间的时间信息。此外,Lee 等[23]提出了一种运动特征网络(motion feature network,MFNet),用于建模连续帧之间的时空信息。MFNet 由编码空间信息的外观块和编码时间信息的运动块组成。其中,运动块以相邻时间的特征图作为输入,采用运动滤波器代替空间特征图之间的移位操作,用于模拟光流的计算过程。

另一种思路是对时间通道上的信息进行有效的处理,以捕获特征图之间的时间线索。例如,Lin等[24]提出一种时间移位模块(temporal shift module,TSM)用于处理时序信息。TSM的网络结构如图4所示,其通过时间域上的通道移位操作将相邻特征图上的时间信息混合在一起,时间感受野被相应地扩大了两倍,用于模拟时间内核大小为3 的一维卷积,从而达到建模时间特征的目的。同时利用2D卷积通道间融合能力进行原始的时间融合,使得2D CNN具备捕获时间线索的能力,且不会带来额外的计算成本。

为了解决2D CNN 在长视频内建模复杂的运动特征能力较弱的问题,Hussein 等[25]提出时间感受层(timeception layer)的概念。时间感受层采用Inception网络[26]的多尺度卷积的思想,通过对原始输入采用深度可分的时间卷积来捕获长期时间的依赖关系。同时借助分组卷积的思想,采用各组通道分别建模的方式来降低跨信道关联的复杂性。时间感受层参数复杂度较小,使得编码长时间步长的时间模式成为可能。

1.2 基于3D CNN

图片[4]-基于深度学习的人体动作识别综述-游戏花园

Fig.4 Architecture of TSM framework图4 TSM框架的结构

视频序列中的动作是三维的时空信号,采用三维卷积对时空信号进行建模,为动作识别提供了一种自然且有效的方式。Ji 等[27]首次提出采用三维卷积提取视频的时空特征。该架构从视频中相邻帧之间获取灰度、梯度和光流通道信息,然后对每一个通道分别进行卷积和下采样操作,最后将所有通道的信息组合起来得到最终的特征表示。

Tran等[28]在此基础上提出了C3D,C3D的网络架构如图5所示。其中,C3D包含了5个卷积层、5个最大值池化层、2 个全连接层和1 个softmax 分类层。C3D 采用三维卷积对时空信号进行建模,得到了相比于2D CNN更紧凑的特征表示。然而,C3D网络通过重复堆叠三维卷积块用于获取较大的时间感受野,因此具有以下缺点:(1)3D 卷积会引入大量的参数,这极大地增加了网络的时空复杂度,从而导致内存消耗和计算量剧增的后果。(2)3D卷积将时间和空间维度上的信息混合在一起,导致了优化的困难和过拟合的风险。

针对C3D的局限性,主要有两种解决方案:①基于2D CNN 的良好实践,进行有效的网络架构探索;②对现有的模型进行精简、量化和压缩,以实现高效的网络部署。

针对方案①,受残差网络(ResNet)[29]在图像分类领域中表现出色的启发,Tran等[30]将C3D架构拓展到深度残差网络中,提出了Res3D网络。通过改变各卷积层滤波器的个数来保持网络架构的参数一致,从而探讨了输入帧的采样频率、空间分辨率以及卷积的类型对模型性能的影响。同时,Res3D的参数量和计算复杂度是C3D 的1/2,在Sport-1M 数据集[31]上的top-1 和top-5 分别提升了4.5 个百分点和2.6 个百分点。Liu等[32]将TSN和Res3D相结合,提出了时域三维卷积网络(temporal convolutional 3D network,T-C3D)。T-C3D 引入了TSN 的视频级监督方法,同时确保各片段的3D CNN共享权值,既有利于得到全局的时空特征,又不产生额外的参数。此外,采用注意力池作为段共识函数,使得网络能够高效地区分各个输入片段的重要性,大大提升了模型的性能。Wang 等[33]在Res3D的基础上,通过在相邻残差块之间部署一支额外的跳跃连接,不仅充分融合了浅层和深层的时空特征,而且有效地缓解了3D CNN随着网络加深容易产生的梯度消失和过拟合问题,进一步提升了Res3D 的性能。Qian 等[34]则通过自定义残差网络的跳跃连接系数,探讨了五种凸策略对残差学习的影响。实验表明,当跳跃连接系数呈正态分布时,网络的泛化能力相较于传统的残差网络,有明显的提升。

图片[5]-基于深度学习的人体动作识别综述-游戏花园

Fig.5 Architecture of C3D图5 C3D的网络架构

Diba 等[35]将三维卷积和池化操作引入到Dense-Net[36]中,并提出一种时域过渡层(temporal transition layer,TTL),构建了T3D(temporal 3D ConvNet)网络。TTL由若干个可变的时间深度三维卷积构成,采用多尺度时间卷积用于捕获短期、中期和长期的时间信息,相比于固定的内核时间深度,TTL能够提取更加丰富的时序特征。

Carreira 等[37]采用三维卷积和池化操作扩展了Inception网络,提出了I3D(inflated 3D ConvNet),I3D网络的输入采用了更大的时空分辨率,并提出了一种新的初始化3D CNN的方法,即通过将ImageNet[38]初始化的2D滤波器的权重沿时间维度扩展,同时除以扩展的次数以确保滤波器的维度响应相同。同时,在Kinetics[39]数据集上进行预训练,在UCF101[40]和HMDB51[41]数据集上进行微调,分别得到了98.0%和80.7%的准确率。然而,由于I3D 采用了大量的输入帧和光流图像进行训练和测试,因此对于硬件配置的要求极高。

不同于上述网络在短剪辑(16帧)中学习时空特征,Varol 等[42]针对局部三维卷积难以在动作持续时间较长的输入中建模时空特征的问题,提出了LTC(long-term temporal convolutions)网络。其主要思想是通过减小输入帧的空间分辨率从而增大其时间分辨率,以此来维持参数上的平衡,验证了长时间输入对动作识别模型性能的影响。Gao 等[43]根据人体质心的运动轨迹的周期性定义了原子行为,并针对不同原子行为的特征向量存在维度差异的问题,采用了空间金字塔池化结构,将帧级特征编码成固定大小的视频级表示,有效地解决了传统的3D CNN相对固定的局部采样可能存在的信息冗余问题。

针对方案②,Wang 等[44]在Res3D 的基础上通过SMART块构建了外观关系网络(appearance and relation networks,ARTNet)。SMART块将时空学习模块分离为用于空间建模的外观分支和用于时间建模的关系分支。外观分支是基于单帧中像素和滤波器响应的线性组合来实现的,而关系分支是基于多帧像素和滤波器响应之间的乘法交互[45]来实现的。采用SMART 块替换ResNet-18 基本的残差单元,得到了相比于C3D ResNet-34更好的特征表示。

为了降低时空融合的复杂性,Zhou 等[46]提出了一种混合的二维、三维卷积管(mixed 2D/3D convolutional tube,MiCT),其架构如图6 所示。MiCT 通过2D 卷积和3D 卷积共享空间信息,利用2D 卷积并通过跨域残差连接的方式来促进3D时空特征的学习。MiCT使得在时空融合之前,每个时空层次上的特征映射更深入,从而促使网络能够在较少的时空融合中获得更好的性能。与逐层堆叠的3D CNN 相比,MiCT将2D 卷积和3D 卷积集成在一起,不仅增强特征学习,而且大大降低了时空融合的复杂性。此外,Zolfaghari 等[47]提出ECO(efficient convolutional network)架构,ECO 网络包括两部分:一部分是底层的2D CNN,用于建模空间特征;另一部分是2D CNN和3D CNN 的并行分支,用于处理底层2D CNN 的输出,建模时空特征。并行的2D CNN分支能够简化处理以及确保静态图像特征获得必要的重视,3D CNN则主要负责处理更为复杂的动作。在推理阶段,ECO 只采用了一组经过中心裁剪的视频帧进行预测,因此对内存的消耗较低。然而,ECO牺牲了低层次的时间建模以提高效率,但在时间融合发生之前,许多有用的信息在特征提取过程中丢失。

图片[6]-基于深度学习的人体动作识别综述-游戏花园

Fig.6 Architecture of MiCT图6 MiCT的网络架构

针对视频信号的时空特征演化存在差异性的问题,Feichtenhofer 等[48]提出SFN 网络(SlowFast networks),网络架构如图7所示。慢路径以低帧率速度运行,用于捕获稀疏视频帧提供的空间语义信息;快路径以高帧率运行,用于捕获精细时间分辨率下快速变化的动作信息。同时,快路径和慢路径通过横向连接实现信息交互。快路径通过降低输入帧的空间分辨率、去除颜色信息等方式,使得其更加注重时序维度上的信息。此外,通过减少快路径的通道容量以此来降低模型的复杂度。实验表明,SFN网络对于建模幅度大、变化快的动作更具优势。

图片[7]-基于深度学习的人体动作识别综述-游戏花园

Fig.7 Architecture of SlowFast图7 SlowFast的网络架构

3D CNN采用三维卷积同时捕获时空信息,且一次能够处理多个输入帧,因此算法的运行速度较快。然而,三维卷积会引入大量的参数,从而造成较高的计算成本和内存开销。目前基于3D CNN 的方法大都结合了双流网络的思想,采用光流图像作为输入用来增强模型的性能。得益于大型数据集的提出以及预训练技术的支持,基于3D CNN的动作识别方法的性能已经超过了基于2D CNN的动作识别方法。

1.3 基于时空分解网络

时空分解网络主要包括解耦时空滤波器的时空分解卷积以及分离时空特征通道的通道分离卷积。其主要思想都是通过将时空特征进行分开建模,以达到减少参数和易于优化的目的。

Sun 等[49]提出了时空分解网络(factorized spatiotemporal convolutional network,FstCN),通过将三维卷积解耦为空间上二维卷积和时间上的一维卷积,不仅减少了参数量,而且可以采用ImageNet 上预训练的模型对空间二维卷积进行初始化,从而大大缩短了网络训练的时间。在此基础上,Qiu 等[50]提出了伪三维残差网络(pseudo 3D residual networks,P3D),通过在1×3×3和3×1×1卷积的两端引入了瓶颈架构,用于减小和恢复输入特征图的维度,从而进一步减少了参数量。如图8所示,采用级联、串行、级联和串行三种跳跃连接模式,用于表示空间和时间滤波器之间存在的直接影响或间接影响,构建了三种伪三维残差单元。通过引入瓶颈块架构和时空分解卷积,使得P3D可以嵌入到ResNet-152 中,极大地拓展了网络的深度。Du等[51]提出的“R(2+1)D”,进一步验证了通过解耦后的网络模型相比于Res3D,具有更小的损失,更有利于优化。Xie等[52]则通过时空分解卷积改造了I3D网络,提出S3D 网络。通过时空解耦的S3D 的网络相比于I3D网络,具有更少的参数和更小的计算复杂度。同时,在Kinetics数据集和Something-something[53]数据集上top-1准确率分别提升了1.1个百分点和1.5个百分点,进一步验证了时空分解卷积更有利于分配参数空间,且具有更优秀的时空建模能力。

图片[8]-基于深度学习的人体动作识别综述-游戏花园

Fig.8 Pseudo 3D residual units图8 伪3D残差单元

此外,Li 等[54]提出了一种协同时空模块(collaborative spatiotemporal,Cost),通过对可学习的参数施加权重共享约束,协同编码时空特征。其主要思想是对三个正交视图(H-W、T-H、T-W)分别执行1×3×3、3×3×1、3×1×3的二维卷积,分别学习空间外观和时间运动线索,最终得到的三个特征图采用加权求和的方法进行聚合。通过共享不同视图的滤波器参数,Cost可以协同学习空间和时间特征并维持与单视图二维卷积相同的参数数量。此外,基于在不同视图中学习到的系数,可以量化空间和时间特征的贡献,使得模型的可解释性更强。

与上述方法通过解耦时空滤波器来降低网络参数的方式不同的是,采用通道分组卷积能够有效地减少时空交互的次数,从而降低网络的时间复杂度。Luo等[55]提出一种分组时空聚合(grouped spatialtemporal aggregation,GST)的方法。GST将特征通道并行分解为空间组和时间组,空间组采用二维卷积用于捕获外观线索,时间组采用三维卷积用于捕获时间线索。GST 以一种非对称的通道分解方式,通过可视化正则化层每个通道的比例因子,可以定性地分析不同阶段时间特征和空间特征的重要性,从而了解到空间和时间线索是如何从底层特征编码到高层特征的。

考虑到时空特征和运动特征的互补性,Jiang等[56]提出了一种时空和运动编码(spatiotemporal and motion encoding,STM)。STM 包括编码现时空特征的通道式时空模块和高效编码运动特征的通道式运动模块。通道式时空模块通过重组输入通道,采用二维的空间卷积和一维的时间卷积以实现分离建模时空特征;通道式运动模块在时间维度上对相邻的特征图进行特征差分,用于提取相邻帧之间的特征级运动模式。STM 通过引入时空分解卷积,以极小的计算开销得到了与光流相媲美的运动特征描述,极大地减少了内存的消耗。

1.4 其他网络

针对动作视频数据集存在信息帧冗余的问题,Zhu 等[57]提出了关键卷(key volume)提取框架,该框架与网络训练过程中的正向和反向传播阶段相结合,通过正向传播为每一个类别标识关键卷;并在反向传播过程中,利用提取的关键卷更新参数,使得网络能够自主学习输入卷的重要性。Kar等[58]提出了一种自适应扫描池(adaptive scan pooling,Adascan),Adascan 能够判别输入视频帧对于动作识别的重要性,同时在学习过程中丢弃大部分非信息性帧,在减少冗余信息的同时能够减少网络的计算开销,从而提高模型的性能。针对短视频而言,采用剪辑平均的方式进行预测被认为是合理的。然而,在未修剪的视频中存在大量的与动作识别无关的片段,此时若采用剪辑平均的方式进行预测,则大量的无关片段会参与到预测过程中,这将严重影响到模型的性能。因此,Korbar等[59]基于注意力机制提出了一种轻量级的clips-sampling 模型,该模型可以有效地识别出视频中最突出的时间段,并针对最突出的时间段进行分类,从而有效地降低计算的代价。

此外,基于深度图以及骨骼信息的动作识别方法也取得了一定的进展。例如:Li 等[60]并行地采用VGG-16 网络和密集轨迹算法提取深度运动图中的静态特征和RGB视频帧序列中的运动特征,然后采用Fisher特征编码方式将提取的静态和动态特征编码成Fisher 向量,最后将静态和动态特征向量串联,并采用支持向量机对其进行分类。采用深度运动图的方式,能够提取到丰富的深度信息和纹理信息,从而实现其与运动特征的互补,有助于提高精度。Ge 等[61]将输入帧的骨骼序列表示成行为矩阵,并针对固定尺寸的卷积核无法捕获相距较远的骨骼关节点之间特征信息的问题,提出了采用多尺度卷积的思想去提取不同层级的语义特征,从而更好地实现行为分类。

跨模态监督在未修剪动作识别中也有着一定的进展。例如,Nagrani 等[62]通过电影视频中语音与台词之间的对应关系构建了一个动作识别的分类器,然后采用该模型对大规模视频数据集进行弱监督标注,使用这种标注数据训练的模型在动作识别中表现良好。Gao等[63]提出了一种更轻的输入模态,即图像-音频对。在此基础上,提出了一种基于注意力机制的长短期记忆网络,该网络在迭代的过程中能够从未修剪的视频中挑选出与动作识别高度相关的图像-音频对,减少了长期的时间冗余,从而实现高效的动作识别。

2 相关数据集

动作视频数据集主要包括以场景为主和以时间为主两类。两类数据集的相关介绍如表1和表2所示。

图片[9]-基于深度学习的人体动作识别综述-游戏花园

Table 1 Scene-related action video datasets表1 场景相关的动作视频数据集

图片[10]-基于深度学习的人体动作识别综述-游戏花园

Table 2 Temporal-related action video datasets表2 时间相关的动作视频数据集

如图9所示,场景相关的动作数据集包含较多与动作识别有关的场景信息,因此依靠单帧去建模空间特征就可以完成识别任务。其中KTH[64]、Weizman[65]、IXMAS[66]三种实验室数据集包含表演者在受限场景下执行的一系列简单动作。三种数据集包含的动作都比较规范,对于动作识别任务的挑战性较小。其中,KTH 数据集包含尺度、衣着和光照的变化,但背景和拍摄视角相对固定,因此该数据集相对简单,同时其视频实例数对于主流的动作识别模型的训练而言还算丰富,可用于评估基于2D CNN的动作识别方法,但不适用于3D CNN 的动作识别方法。IXMAS数据集除了视频数据之外,还包括人体骨骼和体积元等信息,可用于基于人体骨架点的动作识别方法。Weizman数据集的视频实例数偏少,容易导致深度模型的过拟合,不太适用于深度学习算法,但可从迁移学习的角度对其进行处理。此外,该数据集还提供了利用背景建模算法得到的前景掩码图像,如图9所示。因此,该数据集比较适用于传统的机器学习算法,例如模板匹配算法或K临近算法。总体而言,三类实验室数据集都不需要额外的数据预处理工作就可以很好地完成识别任务,并且视频的拍摄视角相对固定,不存在相机抖动的因素,因此同样适用于基于光流的动作识别方法。但三种数据集的整体分辨率偏低,因此在基于超分辨的动作识别方法中具有潜在的应用价值。

图片[11]-基于深度学习的人体动作识别综述-游戏花园

Fig.9 Sample images and foreground mask of Weizman dataset图9 Weizman数据集的动作示例及前景掩码图

与三种实验室数据集不同的是,Hollywood2[67]和Olympic sports[68]数据集来自于真实的场景,不再局限于受限的环境。其中,Hollywood2 从电影剧本中自动进行动作注释,避免了手动注释的困难。但是,电影镜头往往不是表示的单一动作,许多动作混合在一起可能会带来噪声干扰,同时由于镜头切换,视频存在光照变化、遮挡、背景不连续等问题,因此会对模型的训练造成一定的影响,在模型的鲁棒性方面有着极大的考验。Olympic sports数据集最大的特点是存在相机抖动的问题,因此该数据集不适用于传统的光流算法。这两种数据集的共同特点就是包含相机抖动、场景变换、遮挡等问题。因此,在该数据集上使用深度学习算法时,可以采用改进的密集轨迹算法[10](improved dense trajectory,iDT)去估计相机运动,或使用深度图、骨架点等方法,减少杂乱的背景所带来的干扰信息,进一步提升模型的性能。

UCF101 和HMDB51 是两种最常见的动作视频数据集,一般被作为动作识别的目标数据集,用于评估模型的性能。UCF101[40]数据集的示例图如图10所示。HMDB51[41]数据集和UCF101 数据集在动作的组成类别上比较相似,但HMDB51 数据集规模更小,且包含更多的相机运动、光照变化、复杂背景等因素的影响,因此其识别率相较于前者偏低,更具挑战性。在HMDB51 数据集上进行分类任务时,数据预处理显得尤为关键,而目前这方面的工作很少。可以借鉴iDT算法的思想来估计相机运动,同时采用高效的前景提取算法,以消除复杂背景以及光照变化对模型训练产生的影响。然后,采用预训练技术来减缓由于训练数据不足而可能产生的过拟合现象。

图片[12]-基于深度学习的人体动作识别综述-游戏花园

Fig.10 Sample images of UCF101 dataset图10 UCF101数据集示例图

Sport-1M[31]和Kinetics[39]数据集包含大量的标注实例,是时空特征学习的极佳来源,因此这两种数据集被广泛应用于预训练和消融实验环节。HACS Clips[69]最近才被提出,其包含约1 550 000个视频剪辑,是迄今为止规模最大的动作视频数据集,并且其采用了高效的注释方式,动作类别的标注噪声相对较少,因此在未来迁移学习任务中,HACS Clips 非常具有潜力,有望成为预训练以及动作识别的新基准。

时间相关的动作视频数据集更加关注运动本身,且动作类间差异性小,例如如图11 所示,Something数据集中的从左向右移动物体和从右向左移动物体,仅仅依靠单帧无法出色地完成推理工作,因此在该类数据集上进行的动作识别任务极具挑战性。Charades[70]、Epic-Kitchens[71]以及Something[53]数据集主要包括日常生活中人与物的一系列交互动作。其中,Charades 数据集既包含原始视频数据,又包含物体类的标签信息,可采用基于物体的动作识别方法对其进行分类;Epic-Kitchens 还包含了部分音频数据,因此其在多模态动作识别上具有一定的应用价值。Something v1 与Something v2 数据集的组成类别一致,但Something v2 与Something v1 相比,具有更少的标注噪声,更多的实例数,更大的像素分辨率等特点。因此,其识别率较前者平均高出15 个百分点,处理起来更简单。在以上三种数据集上进行动作识别任务时,应该更加关注时序信息建模,在设计时空特征学习的模型时,可以采用与文献[72-73]相结合的方式,进一步提升时序特征学习能力。

图片[13]-基于深度学习的人体动作识别综述-游戏花园

Fig.11 Sample images of Something dataset图11 Something数据集示例图

Diving-48[74]包含了48 种细粒度的跳水动作,视频的真实标签由跳水比赛的信息板中转录。该数据集不同子动作之间具有相似的静态视觉属性和动态视觉属性,旨在体现时间层次上进行动作表征的重要性。其中,48 种跳水动作由5 种起跳、3 种飞行、2种入水动作组合而成。由于跳水动作可能在3 个阶段中的任何一个阶段存在差异,因此需要对长期的时间动力学信息进行建模,这对于当前的动作识别系统是一项极具挑战性的任务。同时,跳水视频一般是通过侧面摄像机录制,因此存在身体部位遮挡的问题,基于骨架的方法不再适用。但跳水动作都包含3个固定的环节,即起跳、飞行和入水,且3个环节持续时间大致相同。因此,可以借鉴TSN 的分段稀疏采样的思想,确保输入帧覆盖整个跳水动作的各个环节,增强模型长时间结构建模的能力。同时,对于长期时间结构建模,可以采用LSTM捕获视频帧序列长期的时间依赖关系。

与上述数据集类似于图像分类的标注机制不同的是,AVA[75]数据集以人体为中心,为同一场景下执行不同动作的人划分不同的标签,如图12 所示。同时,AVA数据集中也存在大量的共现动作对,即活动主体可能同时执行至少两个动作,这为复杂活动建模提供了可能。Moment in time数据集[76]的动作类别可由多个主体完成,视觉差异较大,同时该数据集的部分动作需要依赖音频才能做出识别,这也增加了该数据集的挑战性。Jester数据集[77]主要包含了人体手势动作,该数据集包含的噪声较少,背景相对单一,处理难度小。但该数据集不适用随机翻转的数据增强技术,因为会导致部分动作出现混淆,例如向上/向下移动两根手指。

图片[14]-基于深度学习的人体动作识别综述-游戏花园

Fig.12 Sample images of AVA dataset图12 AVA数据集示例图

FineGym[78]数据集从3个语义层级和两个时间层级对视频剪辑进行标注,语义层级包括事件(event)、集合(set)和元素(element),时间层级包括动作(action)和子动作(sub-action)。其中,事件主要包括4 种女子体操项目:自由体操、平衡木、跳马和高低杠。集合是在事件的基础上将动作细分成若干类子动作,例如平衡木包括手翻类、跳步类、转体类动作。最后,元素对集合内的子动作进行进一步划分,例如:转体类动作包括转体、直体和屈体,空翻包括前空翻和后空翻。FineGym 专注于细粒度的动作识别,元素级(element-level)动作的类内、类间差距都极小,这要求模型能够更加细微地去捕获动作之间的微小差距。FineGym 有望推动动作识别领域向更深层次的方向发展。此外,FineGym为运动分析和体操运动项目的自动打分系统提供了一定的数据基础。

3 预训练对模型性能的影响3.1 常见的预训练策略

由于双流网络中空间流网络的输入是单帧RGB图像,因此可以使用ImageNet 上预训练的模型进行初始化。然而,时间流网络的输入为多帧光流图像,其分布与RGB 图像不同,无法直接使用ImageNet 预训练的网络模型。为了进一步提升网络初始化的效率,Wang 等[79]提出了跨模态预训练(cross modality pre-training),其本质是利用RGB 模型对时间流网络进行初始化。首先,通过线性变换将光流场的分布离散化为0~255,使得光流场的分布与RGB 图像相同。然后对RGB 模型3 个通道的权重进行平均,并通过时间网络输入的通道数复制这个平均值。采用跨模态预训练,TSN的时间流网络在UCF101数据集上的精度从81.7%增加到86.6%,跨模态预训练为双流风格的网络提供了一种非常高效的初始化方式。

3.2 预训练技术对模型性能的影响

当目标数据集没有足够的训练样本时,预训练是一种有效的深度卷积初始化方式。预训练技术的优点主要包括:(1)经过预训练之后,模型具备一定的学习时空特征的能力,当对目标数据集进行微调时,可以使得模型快速适应目标数据集,从而加快模型收敛的速度;(2)预训练技术可以有效地缓解由缺乏训练数据所导致的过拟合问题。动作识别中常见的预训练数据集的相关介绍如表3所示。

图片[15]-基于深度学习的人体动作识别综述-游戏花园

Table 3 Pre-training datasets表3 预训练数据集

预训练对模型性能的影响如表4 所示。相比于不进行预训练,R(2+1)D-RGB、R(2+1)D-Flow、R(2+1)D-Two-Stream(R(2+1)D-T-S)通过Sport-1M数据集预训练,在Kinetics数据集上的top-1准确率分别提升了2.3个百分点、1.0个百分点和1.5个百分点,top-5的准确率分别提升了1.4 个百分点、0.9 个百分点和1.0 个百分点。RGB-I3D、Flow-I3D、Two-Stream I3D 在ImageNet上进行预训练之后,在Kinetics数据集上的top-1 准确率分别提升了2.7 个百分点、1.9 个百分点和2.6 个百分点,top-5 准确率分别提升了1.3 个百分点、1.5 个百分点和1.3 个百分点。结果表明:预训练技术能够在一定程度上提升动作识别模型的性能。

图片[16]-基于深度学习的人体动作识别综述-游戏花园

Table 4 Impact of pre-training on accuracy表4 预训练对准确率的影响 %

如表5所示,动作识别模型性能的提升与预训练数据集的规模和类型存在联系。例如:T-C3D在Kinetics上进行预训练与在Sport-1M上进行预训练相比,在UCF101 上的平均准确率从89.5%提升到92.5%。R(2+1)D-RGB、R(2+1)D-Flow、R(2+1)D-T-S 在Sport-1M上进行预训练,在UCF101和HMDB51上微调,分别得到了93.6%、93.3%、95.0%和66.6%、70.1%、72.7%的准确率。同时,将预训练数据集更换为Kinetics,在UCF101和HMDB51上的准确率分别提升了3.2个百分点、2.2个百分点、2.3个百分点和7.9个百分点、6.3个百分点、6.0个百分点。结果表明:Kinetics比Sport-1M 更适合作为网络的预训练数据集,这与Kinetics数据集的全面性和相似性有关。

图片[17]-基于深度学习的人体动作识别综述-游戏花园

Table 5 Impact of type of pre-training datasets on accuracy表5 预训练数据集的类型对准确率的影响%

此外,T-S R(2+1)D-34在Sport-1M上进行预训练后,在目标数据集上的平均准确率分别为97.3%和78.7%,采用HACS Clips 预训练后,在目标数据集上的平均准确率分别提升了0.7个百分点和1.1个百分点。同样,Two-Stream I3D 在HACS Clips 上预训练相比于在ImageNet+Kinetics 上预训练,在目标数据集上的平均准确率分别提升了0.2个百分点和0.6个百分点。这是因为HACS Clips相比于Kinetics具有更多的标注实例,因此进一步证实了数据集规模越大,对于动作识别模型性能的提升更加明显。同时,TSN的空间流网络通过在ImageNet上预训练,在UCF101上的准确率为86.4%,通过Kinetics预训练后,准确率提升了4.7个百分点。结果表明:对于动作识别中的预训练环节,选择动作视频数据集比选择静态图像数据集在模型性能的提升方面更有帮助。进一步证实了模型性能的提升与预训练数据集和目标数据集的相似性有关。

4 未来研究方向

近年来,从传统的手工特征方法到深度学习方法,从小规模数据集到大规模数据集,从对网络的浅层探索到设计专门用于时空特征提取的网络,视频中的人体动作识别取得了重大的进展。然而,人体动作识别仍有许多值得进一步研究的方向:

(1)细粒度动作识别

2019—2020年,在CVPR、ICCV等顶会中,Something、Charades、Jester、AVA、Epic-Kitchens 等细粒度动作视频数据集所占的比重越来越大,表明动作识别正在由粗粒度向细粒度转变。相比于粗粒度动作识别,细粒度动作识别更加注重运动本身和时间的上下文信息,并且要求模型能够区分动作之间存在的微小差距。此外,其在实际应用中的局限性更少,例如运动分析和动作打分。然而,目前大多数的深度学习模型在细粒度数据集上的表现未达到先进的水平。在未来,可以采用强监督的方式,使用边界框和局部标注信息,采用注意力机制的方式去获取动作的显著特征,从而提高细粒度动作的分类精度。或采用弱监督的方式,通过定位出能判别出动作类别的关键部位,利用判别行特征作为辅助来完成分类。

(2)小样本学习

大多数基于深度学习的动作识别方法需要大量的训练样本才能使模型达到收敛。然而,当动作识别应用于某一个特定的场景时,往往没有足够多的训练样本,训练样本的缺少可能会导致深度学习模型的过拟合问题,这将严重影响到模型的泛化能力。目前,小样本学习已取得一定的进展,例如Ji 等[80]提出的动作基因组的概念,将动作分解为时空场景图的形式,用于捕获对象之间及其关系之间的变化,使得主流的动作识别模型在小样本学习中获得了较大的性能提升。此外,Cao等[81]设计了一种时序校正模块,通过时序校正有效地利用了视频数据中的时间顺序信息,提高了数据利用的效率。在小样本学习方面,可以从多模态信息利用的角度缓解小样本学习中标注数据少的问题,例如增加深度图、骨架图等信息。同时,可以引入新的视频数据增强技术,以及采用生成对抗式网络,在特征层面做数据增强,提升模型的鲁棒性。

(3)更精简的模型

目前,大多数的深度学习模型仍具有参数多、时间复杂度高的特点,这就导致算法对内存的消耗较高且运行速度较慢,不能满足实时性和高效性的要求,也无法在移动设备上运行。目前,为了同时保证效率和准确率,大多数轻量级模型都建立在2D CNN的基础上,通过部署不带参数或参数较少的时序特征提取模块使得2D CNN具备时空特征学习的能力,例如TSM[24]、GST[55]等。同时,随着ResNext[82]和Shuffle-Net[83]在图像分类领域的成功应用,在未来的研究中,可以借助通道分组卷积或深度可分离卷积的思想去设计时序特征提取模块,从而在保证时空交互的同时,有效地减少网络的参数。此外,采用知识蒸馏的方式,将复杂、学习能力强的网络学习到的知识,即输入输出的映射关系,转移到参数少、学习能力弱的网络,能间接起到模型压缩的效果。

(4)无监督学习

视频数据中包含大量的动态结构信息,是无监督学习的极佳素材。无监督的视频学习主要包括时间自编码器的方法,例如PredNet[84]、PredRNN[85]和PredRNN++[86],但是尚未证实其在大规模迁移学习中的表现。最近在文献[87]中提到,通过训练深度视频嵌入,以最大化不同视频之间的距离,最小化相同视频之间的距离。这种在大量的动作视频中学习到的视觉表示可以显著地提高动作识别的精度,但是要在大规模数据集上训练强大的视频嵌入视觉特征,往往是比较困难的。在未来,可以借助文献[35]中的思路,通过两个网络之间正负标签的对应关系去学习视频表示,从而实现跨网络的监督转移。

(5)自适应网络

动作视频数据集的分辨率表现出强烈的差异性,处理不同的数据集应该采用不同的输入方式。然而,目前的动作识别模型大多采用固定的时空分辨率,这种相对固定的输入方式对于网络的训练而言可能不是最佳的。在未来,在进行广泛架构探索的同时,也应该关注输入模式的探索,例如分析采样的输入帧序列的特点,动态调整其时空分辨率,若输入帧与动作类别高度相关,则增大其分辨率,反之则减小其分辨率,这样有助于减少冗余和提高效率。此外,通过注意力机制,自适应进行网络架构的探索,也是未来值得研究的方向。

(6)视频超分辨动作识别

在现实场景中,由于光照不均或监控设备受限等因素的影响,最终呈现的视频内容往往是低质量的,低质量的视频内容呈现出视频分辨率低、噪声以及运动模糊等特点,容易导致模型对动作造成误判,大大降低动作识别模型的性能。在未来,可以通过设计模块进行帧内的空间相关性以及帧间的时间相关性抽取,然后借鉴图像超分辨技术的思想,将抽取到的特征进行通道间融合与放大,实现视频帧序列的超分辨。最后,基于视频超分辨的结果,再对其进行时空特征的学习。视频超分辨技术能够有效地提升动作识别模型在复杂场景下的性能,是动作识别走向实用化的过程中,非常具有潜力的研究方向。

5 结束语

本文从2D CNN、3D CNN 以及时空分解网络三个角度介绍了人体动作识别的最新研究进展,并着重探讨了各类方法的优缺点。然后,从以场景为主和以时间为主两方面介绍了动作识别中常用的数据集,并着重分析了各类数据集的特点及在动作识别中的应用。随后,从预训练的角度,探讨了预训练技术以及预训练数据集的规模和类型对动作识别模型的影响,结果表明模型性能的提升与预训练数据集的全面性和相似性有关。最后,从动作识别的最新动态出发,探讨了其未来研究的方向。

THE END
喜欢就支持一下吧
点赞87 分享