基于视频时空特征的行为识别方法
2023-02-24倪苒岩
倪苒岩,张 轶
(四川大学 计算机学院,成都 610065)
0 引言
随着科技不断发展,视频已经成为互联网信息传播的主流手段。在这种情况下,准确有效地识别视频中的人类行为尤为重要。人体行为识别是利用计算机视觉技术进行视频内容处理的一个重要研究方向,在安全性、人机交互和视频检索等方面具有重要的研究和应用价值[1]。与单个图像相比,视频中蕴含着更丰富的信息,包括不同视频帧之间的时序相关性和相邻帧之间的运动位移。因此,时间建模是高效视频行为识别成功的关键。随着深度学习的蓬勃发展,二维(Two-Dimensional,2D)卷积神经网络(Convolutional Neural Network,CNN)在图像分类任务中取得了巨大成功[2],行为识别也从传统的基于手工特征的方法转变为基于深度学习的方法。随着大规模数据集[3]和更强大的模型[4]的引入,基于深度网络的方法已成为视频行为识别任务的主流。然而,虽然传统的二维卷积神经网络对于视频帧中空间信息的提取非常有效,但忽略了时间信息的提取,不能直接应用于时间序列信号(例如视频)的特征表示。为了弥补传统的二维网络无法提取视频中的时间信息的不足,研究者们尝试使用各种方法来表示时空特征,并取得了不错的成果。这些主流的行为识别方法大致可分为采用双流结构的二维卷积神经网络、三维卷积神经网络及其变体和嵌入时间建模模块的二维网络3 类。
典型的双流网络结构结合了空间网络和时间网络。换句话说,它可以分为两个流——以RGB(Red-Green-Blue)帧为输入的空间流和以光流为输入的时间流。两个流都使用深度卷积神经网络实现,前者处理RGB 帧,后者处理光流信号,最终将二者结果进行融合。因此,双流网络可以有效结合外观和运动信息。Simonya 等[5]使用双流体系结构来进行动作识别,实验结果表明,该双流结构能够有效地集成视频的外观和时序信息。然而,稠密的光流是从视频序列中的相邻帧之间计算出来的,计算量十分繁重。随着行为识别数据集越来越大,提取视频数据的光流图也愈发耗时。此外,双流网络需要分别训练空间网络和时间网络,无法实现端到端的识别。
相较于双流网络,三维卷积网络无需进行光流计算,可以实现端到端的识别。Tran 等[6]提出了三维卷积(Convolution 3D,C3D)模型,该模型可以同时捕获整个视频的外观和时间信息,避免了对光流的需求。不幸的是,三维卷积也有致命的缺陷。与使用二维卷积的模型相比,由于三维卷积的参数量呈指数增长,训练十分困难。因此,三维卷积的方法对计算资源有着巨大的需求,并且在小型数据集上容易出现过拟合的问题。因此,三维网络通常需要部署在较为先进的硬件平台上。
针对双流模型需要分别训练空间流和时间流网络以及预先提取光流图,而三维卷积网络参数量巨大,对硬件平台要求很高的问题,很多学者开始研究更高效的方法来实现对时空信息的建模,比如在原有二维卷积网络的架构上添加其他功能模块。Lin 等[7]沿时间维度移动部分通道,以促进相邻帧之间的信息交换,而无需添加额外参数。虽然它的计算量得到了很好的控制,但在捕获显式运动信息方面仍然很弱。
为了增强模型的时空特征学习能力,本文提出了一种深度架构来解决上述问题,该方法能同时高效提取短期和长期的时间特征。首先,本文设计了一种基于注意力机制的运动信息编码器来在特征层级上提取短期的运动信息,这里提到的运动特征类似于光流信号。其次,提出了一个轻量级的时空建模模块,用于代替三维卷积核对视频的时空信息进行长期建模。本文将传统的三维滤波器替换为通道方向的一维时间卷积和二维空间卷积来编码全局时间线索。此外,本文方法还在时间维度上对特征进行移位操作来完成对相邻帧信息的交换。本文将上述时空提取模块和运动提取模块进行结合并嵌入到残差结构中,实现端到端的行为识别网络模型的构建。通过对上述模块的整合,本文方法可以实现对行为特征的提取和识别,并且无需预先提取光流图和使用三维卷积。本文所提行为识别方法在识别精度、计算成本和网络规模方面都有着充足的优势。
1 相关工作
基于视频的人体行为识别的主要流程是先对视频中蕴含的时空特征进行提取,然后将提取的特征输入分类器中,完成对行为的分类。特征提取是其中最重要的步骤。使用深度学习的方法进行特征的提取是目前的主流方向。
1.1 双流卷积神经网络
视频中蕴含着丰富的时间和空间信息。时间信息代表视频帧之间的位移和运动关系,空间信息包括视频帧中的场景和外观信息。2014 年,双流架构第一次被提出,双流法将单帧RGB 视频帧和多张堆叠光流图分别作为空间和时间网络分支的输入,最后将空间流分支网络和时间流分支网络输出的分类结果融合,得到最终的分类结果。针对传统的双流网络缺乏长时间的建模能力的问题,Wang 等[8]在2016 年提出了基于长时建模的时间分段网络TSN(Temporal Segment Network)模型,该模型首次提出了稀疏采样的方法,首先对视频进行均匀分段得到若干视频片段;然后在每一个视频片段中随机采样单帧视频帧输入网络,每一帧图像的预测结果代表单个视频片段的预测结果;最后对所有视频片段的分类结果进行统计,将出现次数最多动作类别作为视频的最终分类结果。Lan 等[9]认为时间分段网络稀疏采样后得到的不同的视频剪辑的权重应该不同,因此对TSN 的段共识策略进行了改进,从而提出了深度局部视频特征(Deep lOcal Video Feature,DOVF)网络,给每个视频片段分配不同的权重,提高了行为识别的准确率。Lin 等[10]认为不同类别的动作之间存在粒度差异,并基于双流结构提出了一种由粗粒度到细粒度的方法,该方法使用更为精细的特征减少异步信息,从而进一步提高了行为识别的精度。除此之外,还有相当多的国内外学者对双流网络进行研究,均获得了不同程度的进展。基于双流架构的视频人体行为识别方法可以获得较高的准确率,但这类方法需要预先提取视频数据集的光流图,且两个分支网络需要进行分别训练,流程复杂且无法实现实时的端到端识别。
1.2 三维卷积神经网络
传统的二维卷积网络只能提取空间维度的特征,而忽略了视频中时间特征的学习和提取,三维卷积网络能够同时提取视频中的时间信息和空间信息。因此,另一种行为识别的主流方法就是三维卷积。2010 年,Ji 等[11]第一次将三维卷积应用到视频人体行为识别领域,通过三维的滤波器直接对视频帧序列进行卷积操作,可以同时获取时间和空间维度上的行为特征。Tran 等[6]通过一系列的实验探索,找到了最优的三维卷积核大小,进而提出了C3D 模型。在C3D 的基础上,Tran 等[12]提出了一种三维残差网络(Three-Dimensional Residual Network,Res3D)模型,Res3D 减少了C3D 模型的参数量,并提高了识别的准确率。Cai 等[13]在Res3D 模型的基础上添加了注意力机制,使得网络更注重显著的行为特征。尽管三维卷积的方法取得了不错的效果,但是,三维卷积神经网络由于它大量的参数,容易产生过度拟合和缓慢收敛的问题而极难训练,使得难于部署在普通的硬件平台上,也限制了基于三维卷积网络的方法的应用。
1.3 配备时间建模模块的二维网络
为了解决双流网络无法实现端到端的识别,并且光流的提取需要消耗大量的时间的问题,以及三维卷积网络由于含大量的参数,在小型数据集上容易产生过拟合的问题,大量的研究工作致力于探索高效的端到端的行为识别方法,即使用二维(2D)卷积网络作为骨干网络,并嵌入时间建模的模块。文献[14]引入了长期特征提取模块用于快速的视频处理,该方法的创新性在于实现了对长期时间信息的融合;Lee等[15]提出了一个时间信息提取模块,能够实现5 个固定方向的搜索操作以对时空信息进行编码;Lin 等[7]设计了一个通用而高效的、沿着时间轴通道移位的模块,提高了帧间信息交互的过程,主要优点是既保持了跟二维网络相当的复杂度,又达到了三维网络的效果。这类方法使用二维卷积网络对人体动作进行端到端的识别,避免了双流网络繁重的光流运算,使用相较于三维网络更少的参数量达到了较好的识别性能,在这些工作的启发下,本文采用了二维卷积网络作为主干网络,并嵌入不同的时间建模模块实现视频中运动信息和时空信息的编码。
1.4 残差网络
神经网络具有非常强的表达能力,经过训练的深度神经网络能够将数据特征逐层抽象,最终提取出完成任务所需要的特征,然后使用一个简单的分类器,就可以完成最终任务。从理论上来说,更深的神经网络在非线性激活函数的加持下,拥有更大的假设空间和更强的学习能力;但是在实际应用中,网络层数越深,训练便越发困难。残差网络(Residual Network,ResNet)很好地解决了这个问题,ResNet 由微软研究院的He 等[16]提出,通过使用残差连接成功训练出了152层的神经网络,其主要思想是在网络中增加了直连通道,在ImageNet[17]等图像分类数据集上取得了非常好的结果,同等层数的前提下残差网络也收敛得更快。这使得神经网络可以采用更深的设计。
本文设计使用了可以嵌入残差网络中的时间建模模块,探索视频中不同层次的时间信息,并将其加入残差网络中,实现端到端的行为识别。
2 行为识别算法设计
2.1 网络整体框架
本文构建的网络是一个二维结构,无需任何三维卷积或光流计算,网络整体架构如图1 所示,在ResNet-50(ResNet with 50 Layers)的瓶颈层加入时间移位操作[7],并以加入移位模块的ResNet-50 作为基础网络,通过引入时空信息提取模块和基于注意力机制的运动信息提取模块,更好地融合局部时空信息与全局时空信息,实现对视频中人体的行为的识别。具体地说,运动信息提取模块被嵌入每个瓶颈层(置于第一个1×1 卷积层之后),用于建模局部运动信息;时空信息提取模块被放置在每个瓶颈层的3×3 卷积后,用于建模远程时间信息。
图1 本文网络整体架构Fig.1 Overall architecture of the proposed network
模型以RGB 视频帧作为输入,由于在一段视频中,连续帧之间的变化幅度很小,如果使用每帧图像作为输入会带来很大的计算成本,因此,本文借鉴了TSN[8]的稀疏采样方法,实现对长时间视频的建模,充分利用整个视频的时空信息。具体流程为:首先将视频均分成k个子片段,每一个子片段具有等长度;然后在每个片段中随机找出一帧图像,从整个视频中采样k帧图像,使得所采样的视频帧覆盖整个视频段;最后使用段共识函数结合多个视频帧的类别得分,得到它们之间对于类别预测的共识。整个算法的流程如下。
算法1 基于视频时空特征的人体行为识别方法流程。
输入 待识别视频样本V,在训练集上训练完毕的模型权重文件;
输出 该视频样本属于每一类的概率值P。
1)对输入视频V进行稀疏采样操作,得到视频帧集合S∈{S1,S2,…,Sk},k代表采样帧数;
2)加载模型的权重;
3)将处理后的视频帧集合S输入到带有运动提取模块和时空提取模块的骨干网络中进行特征提取;
4)将经过骨干网络后得到k个帧级特征,送入全连接层,得到k个属于每个片段的分类概率;
5)对k个分类结果进行平均操作,获取视频级分类概率P。
本文方法采用带有时间移位模块[7]的ResNet-50 作为基础网络,具体表现为对ResNet-50 中的每个残差块加入时间移位操作[7],时间移位操作在卷积运算之前沿时间轴移动输入特征通道的一部分。如图2 所示,在不同时间点提取的特征由每行的不同颜色标识。沿时间轴,将特征通道的1/8 向前移动,将另1/8 部分向后移动,同时保持其余的3/4 不变。时间移位操作通过对过去帧、当前帧和未来帧的加权相加,可以促进相邻帧之间的信息交换,并且移位操作不会给网络模型增加额外的计算量,可以在零计算成本的基础上有效提升网络的性能。因此本文将带有时间移位模块的残差网络(ResNet-50)作为基础网络,但仅仅进行时间移位操作的网络在显式的时间建模方面还存在着不足,本文方法在基础网络中加入显式的运动信息编码模块和时空信息提取模块,可以进一步提升行为识别的准确率。
图2 对特征的时间移位操作Fig.2 Temporal shift operation on features
接下来将着重介绍以下两个部分:基于注意力机制的运动提取模块和(2+1)维的时空信息提取模块。上述两个模块可以插入到现有的二维卷积神经网络中,通过时空特征和运动特征建模提高模型的性能。
2.2 基于注意力机制的运动信息提取模块
运动信息是指两个连续帧的运动位移,反映动作的发生。通过引入运动信息可以提高行为识别的准确率。目前主流的方法以提取相邻帧间的密集光流图作为网络的输入的形式描述像素级的运动信息,虽然这些方法被证明是有效的,但从图像序列中计算光流非常耗时,并且无法实现端到端的行为识别。为了解决这一问题,本文采用了一种运动注意力模型,从将运动建模从像素级扩展到广泛的特征级别,并且将运动信息的编码和时空信息的提取融合到一个统一的框架中,实现端到端的识别,使得网络可以更加注意发生了运动位移的动作信息。基于注意力机制的运动编码模块的结构如图3 所示。
图3 基于注意力机制的运动信息提取模块结构Fig.3 Structure of motion extraction module based on attention mechanism
本模块受图像分类领域的注意力模块SENet(Squeezeand-Excitation Network)[18]的启发,SENet 以压缩和解压的方式利用了两个全连接层,然后使用Sigmoid 激活函数激励通道级别的特征,通过显式地建模通道间相互依赖关系,增强了图像识别任务通道特征的学习。然而,它独立地处理每帧图像,不考虑帧间的时间依赖关系。本文的运动注意力模块能够激励相邻帧间的运动特征,假设该模块的输入特征为X∈[N,T,C,H,W],N代表批尺寸大小,T代表特征的时间维度,C代表通道数,H和W代表了空间维度上的长和宽。首先,采用1×1 的二维卷积将输入特征的空间通道数压缩至原来的1/16 以降低计算成本,得到特征X1∈R[N,T,C/16,H,W];然后,从每两个连续的特征图中生成特征级的运动信息。以生成时刻t的运动特征X(t)为例,首先对时刻t+1 的特征应用二维的通道级卷积,然后减去时刻t的特征,获得近似的t时刻的运动特征表示,公式如下:
其中:X(t) ∈RN×1×C/16×H×W代表在时刻t时的运动特征;C1表示3×3 的二维卷积层。本文对每两个相邻特征图都执行上述操作,得到t-1 个运动特征表示,并将运动特征连接起来,得到完整的运动特征表示。为了使得运动特征的时间维度大小与输入特征相同,本文简单地用0 来表示最后一个时间步长的运动信息,最终的运动特征F可以表示为:[X(0),X(1),…,X(t-1),0]。因为运动编码模块的目标是激励运动敏感的通道,使网络更加注意运动信息,而无需考虑详细的空间布局。因此,可以通过空间平均池化处理运动特征,如下所示:
其中F'∈RN×T×C/16×1×1,(i,j)代表特征图空间上的每一个像素点。接着,使用1×1 的二维卷积将运动特征的通道数恢复到原来的大小。处理后的特征为F*∈RN×T×C×1×1。运动注意力权重M可以通过使用sigmoid 激活函数获得:
本模块的目的是激发与运动信息相关的通道,因此,将输入特征X与运动注意力权重M相乘即可得到运动敏感的特征,最后使用残差残差连接来保留原始背景信息,同时增强运动信息,公式如下:
其中:X' 是输入特征,X是此模块的输出,维度为[N,T,C,H,W],操作符⊙代表通道级相乘。
2.3 时空信息提取模块
与三维卷积的效果相同,本文提出的时空模块能够同时获取时间和空间维度的信息,但与三维卷积相比,本文设计的时空信息提取模块大幅降低了模型的计算量。图4 展示了该模块的具体结构。
图4 时空信息提取模块结构Fig.4 Structure of spatio-temporal information extraction module
假设输入特征Y的形状为[N,T,C,H,W],其中N代表输入特征Y的批尺寸,T代表时间维度,C代表通道数,H和W代表了空间维度上的长和宽。首先,通过使用卷积核大小为1×1 的二维卷积对输入特征的通道数进行压缩,以降低后续运算计算量,本文将特征的通道数减少为1,得到特征Y1∈RN×T×1×H×W。
接下来,Y1的形状被重构成Y2∈RNHW×1×T,然后在时间维度T上应用一维的时间卷积来融合时间信息。时间卷积C2的卷积核大小为3,本文用它来描述通道级的时间信息:
其中Y3∈RNHW×1×T。继续将Y3的形状重构为Y4∈RN×T×1×H×W,并通过卷积核大小为3×3 的二维卷积对局部空间信息进行建模,得到特征Y5:
其中Y5∈RN×T×1×H×W。最后再次使用1×1 的二维卷积来完成对通道数的解压,将特征的通道数恢复到原来的大小,得到特征Y6∈RN×T×C×H×W。本文方法将整个操作置入残差结构中,最终输出表示为:
由式(7),本文使用残差连接,既保留了原始输入特征的表达,又实现了对时空信息的提取和增强。本文设计的时空模块将大小为3×3×3 的三维卷积核解耦成大小为3×3 的二维卷积和大小为3 的一维卷积,并在进行时间和空间卷积运算前对特征通道数进行了压缩,因此,相较于直接使用三维卷积的模型而言参数量更小,通过引入十分有限的额外计算成本提取了丰富的时空特征。本文将此模块嵌入到ResNet-50 架构的每一个瓶颈层中,可以实现对长时时空特征的提取。
3 实验与结果分析
3.1 数据集
本文选择在UCF101[19]、HMDB51[20]和Something-Something-V1[21]三个经典的行为识别数据集上验证所提算法的有效性。
UCF101 数据集[19]发布于2012 年,是行为识别领域最经典的数据集之一,包含13 320 个来源于YouTube 的视频序列,总共拥有101 个行为类别。由于类别众多、样本多样性较强、识别难度较高,UCF101 成为目前人体行为识别领域中众多研究者们的常用数据集。
HMDB51 数据集[20]发布于2011 年,包含6 766 段视频样本集,总共拥有51 个行为类别,由于该数据集规模较小、视频大部分为在真实场景中拍摄得到,包括大量面部和肢体动作以及不同的交互行为,被很多研究者青睐。
Something-Something-V1 数据集[21]是一个大规模的标记视频数据集,记录了人类在日常生活中的行为。它包括108 499 个视频,有174 个动作类别,包括86 017 个训练集样本、11 522 个验证集样本和27 157 个测试集样本。相较于前两个数据集,Something-Something-V1 包含更多具有时序相关性的动作,如从左向右推动物品和从右向左推动物品等,这类时序性相关的数据集对网络的时间建模能力要求较高,能很好地验证本文所提出的时间建模方法的有效性,识别难度也较大,具有很大的挑战性。图5 给出了Something-Something-V1 数据集中的某个动作示例,这个动作的标签为“关闭洗碗机”。但如果颠倒视频帧的顺序,这个动作就会变为“打开洗碗机”。因此,不能仅通过单个视频帧判断动作的类别,需要利用一定的时间信息,在此数据集上的结果可以很好地反映模型的时间建模能力。
图5 Something-Something-V1数据集上的动作示例Fig.5 Action example in Something-Something-V1 dataset
3.2 实验设置
本文实验在Ubuntu16.04 系统下进行,硬件平台是NVIDIA RTX 3090,程序基于PyTorch 深度学习框架设计实现,CUDA(Computer Unified Device Architecture)版本为10.1。使用mmaction 开源视频动作分析库对行为识别数据集进行提帧操作,然后对每个提取完图像帧的视频随机采样8 帧或16 帧作为网络的输入(对于UCF101 和HMDB51 数据集,由于数据集较小,采样16 帧,对Something-Something-V1数据集采样8 帧进行了实验)。在训练过程中,采用角点裁剪和尺度抖动两种方法进行数据增强,以增加训练样本的多样性,最后将每个裁剪区域的大小调整为224×224。对于UCF101 和HMDB51 数据集,由于数据集较小容易产生过拟合,本文首先将模型在Kinetics 数据集上进行预训练,并使用预训练的权重初始化网络,采用随机梯度下降法优化整个网络模型。对UCF101 和HMDB51 数据集的训练参数设置为:30 个训练周期,初始学习率为0.001(在第10 和第20 个周期学习率依次衰减为原来的1/10),批尺寸大小设置为10。对于Something-Something-V1 数据集,使用在ImageNet 数据集上预训练的ResNet-50 模型进行初始化,批尺寸大小设置为22,初始学习率设为0.01(总共60 个epoch,在第20、40、50 个epoch 学习率依次衰减为原来的1/10)。
3.3 实验结果分析
3.3.1 实验结果对比及分析
本节在UCF101、HMDB51 与Something-Something-V1 数据集上,将本文方法与当前行为识别领域主流[5-8]和近期的方法[22-34]进行比较,结果如表1 所示。实验对比结果表明,在UCF101 数据集,本文方法结果最佳,准确率高达96.5%,分别高出经典的双流网络[5]、C3D[6]网络和使用双流结构的时间分段网络(TSN)7.7、14.2 和2.5 个百分点;且相较于双流架构,无需预先提取光流图,相较于三维架构,大幅减少了模型参数量。
表1 不同方法在三个数据集上的比较Tab.1 Comparison of different methods on three datasets
本文方法在HMDB51 数据集上同样也优于经典的双流网络和三维网络和最近的2D 网络,达到73.1%的识别率。与前两个数据集不同,Something-Something-V1 是一个时序性很强的数据集,包含大量带有方向性的动作,一些对称动作不能仅仅基于单帧来识别(例如,“从左向右推动某物”与“从右向左推动某物”等)。因此,Something-Something-V1 数据集对于模型的时空建模能力要求很高,本文方法在Something-Something-V1 上的准确率为46.6%,相较于没有时间建模模块的TSN[8],准确率提高了27.1 个百分点,证明了时间建模的重要性;相较于三维卷积网络中热门的I3D(Inflated Three-Dimensional)网络方法[32],本文方法的准确率提高了5 个百分点;相较于配备了时间移位模块的TSM(Temporal Shift Module)[7]与ECO(Efficient Convolutional Network)[14]、TRN(Temporal Relation Network)[33]和TANet(Temporal Adaptive Network)[34],准确率也分别提高了1、7、12.2 和0.1 个百分点,证明了本文方法的优越性。
为了从多个角度衡量本文方法,表2 列出了本文方法在Something-Something-V1 数据集上的采样帧数、参数量、浮点运算量(GFLOPS(Giga Floating-point Operations Per Second))及准确率与其他方法的比较。
表2 不同方法在Something-Something-V1数据集的采样帧数、参数量、浮点运算量及准确率对比Tab.2 Comparison of sampling frames,parameters,FLOPs and accuracy among different methods on Something-Something-V1 dataset
从表2 中可以看出,本文方法相较于不具备时间移位模块的TSN 方法[8]来说,参数量和浮点运算量有所增加,但识别准确率也大幅度提高,识别精度是TSN 模型的2.4 倍;与I3D网络[32]相比,本文方法所需采样帧数更少,参数量和浮点运算量也更小,精度更高。与当前先进的二维模型TSM[7]和TANet[34]相比,参数量和浮点运算量大致相当,但本文方法的识别精度更优。总的来说,本文方法在计算精度和计算量上达到了较好的平衡。
3.3.2 消融实验
为了验证所提方法每个模块的有效性,本文在Something-Something-V1 数据集上进行了消融实验,探索每个模块对于行为识别准确率的影响。由于Something-Something-V1 数据集包含众多具有方向性的动作,识别难度较大,对模型的时序建模能力要求很高,因此本文采用此数据集进行对比实验,更能体现模块的有效性。为了公平地进行比较,所有实验均采样8 帧作为网络的输入,采用带有时间移位模块的ResNet-50作为基础网络(Baseline)。如表3 所示,本文比较了每个单独模块和所有子模块组合的性能,与基础网络相比,运动信息提取模块和时空信息提取模块使得准确率分别提高了0.4 和0.3 个百分点,当两个模块组合在一起,准确率得到进一步提高,比基础网络提高了1 个百分点,证明本文提出的时空信息提取模块和运动信息提取模块能相互补充,使网络更注意视频中的时序特征,在仅采样8帧为输入的情况下在Something-Something-V1数据集上获得了46.6%的准确率。
表3 不同模块对网络的影响Tab.3 Influence of different modules on network
3.3.3 混淆矩阵
混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,图6 展示了本文方法在UCF101、HMDB51 和Something-Something-V1 数据集上评估后的混淆矩阵。由于上述3 个数据集动作类别数目较大,因此以数字代替类别标签,如图6(a)使用数字0~100 代表UCF101 的101 个视频行为类别,图6(b)使用数字0~50 代表HMDB51 的51 个行为类别,图6(c)使用数字0~173 代表Something-Something-V1 的174 个行为类别。矩阵对角线上的值表示该类别视频样本被正确分类的比例,因此落在对角线上的预测类别越多,识别性能就越好。
图6 本文方法基于UCF101、HMDB51和Something-Something-V1的混淆矩阵Fig.6 Confusion matrices of the proposed method based on UCF101,HMDB51,and Something-Something-V1 dataset
由图6(a)可以看出本文方法在UCF101 数据集上,几乎所有类别的视频都能被正确预测。由于HMDB51数据集背景信息复杂,相似行为较多,而Something-Something-V1 数据集视频数量十分庞大,且视频中的动作时序性很强,这两个数据集都具有很大的挑战性,但总的来说本文方法在这两个数据集上也取得了不错的识别效果,从图6(b)和图6(c)可以看出大部分的预测结果都能正确落在混淆矩阵的对角线上。
4 可视化效果
图7 为本文方法在UCF101 数据集上使用GradCAM 工具[35]生成的部分可视化结果。为简单起见,本文采样8 帧作为网络的输入,并在中间帧中生成激活映射。
图7 在UCF101数据集上的部分可视化结果Fig.7 Some visualization results on UCF101 dataset
从图7 可以看到,本文方法的网络主要关注人的运动或者手部交互动作,如在画眉这个动作中,网络重点关注了眉毛与画眉的手部。与TSN 模型相比,本文方法能够更精确地关注动作中的与运动位移相关的区域,而TSN 缺乏对运动相关区域的精确关注,这依赖于本文方法的网络模型强大的时间建模能力。
5 结语
为了同时提取视频中的时空和运动信息,本文提出了一种基于视频时空特征的行为识别方法。首先,在ResNet-50的残差块中加入时间移位操作,以促进相邻帧间的信息交换。然后使用运动信息提取模块捕获局部运动特征,使用时空信息模块提取全局时空特征,并将上述模块集成到统一的框架中。本文在公开数据集上进行了实验并与其他主流方法进行了比较,结果证明了本文提出的方法在保持低计算成本的同时达到了高精度的识别效果。
同时本文方法也存在一些不足:本文所提出的创新模块的泛化性能还有待进一步探索;视频帧的采样方案借鉴了TSN 的稀疏采样策略,可以进行创新。在未来的工作中,将在更多的骨干网络上进行实验,验证所提出的模块的泛化能力;同时在视频帧的采样方面探索更好的方案,以追求更优的精度及更少的耗时。