视频动作实时识别
视频动作实时识别,是计算机视觉和机器学习领域的一个重要研究方向,其目标是实时识别视频中的人体动作。进行实时动作识别要经过目标检测、目标跟踪、行为识别的过程。
近十年来,随着高质量大规模动作识别数据集的出现,人们对视频动作识别的研究兴趣日益浓厚。图1是动作识别数据集的统计,圆形面积图2是对相关数据集的简单介绍。
图1 动作识别数据集统计
图2 相关数据集介绍
传统方法
iDT
在深度学习之前,2013年Heng Wang等人提出的iDT(improved dense trajectories)算法在动作识别领域具有很好的效果。通过在图片的多个尺度的特征点进行密集采样,估计相机运动估计来消除背景上的光流以及轨迹,跟踪特征点轨迹,基于轨迹特征提取,进行特征编码和分类,最后基于编码结果训练SVM分类器。IDT方法通过密集采样特征点、跟踪特征点轨迹、计算描述符来进行动作识别和行为分析。它结合了局部运动和外观信息,提高了特征提取的鲁棒性和准确性,但是由于计算光流速度很慢,算法速度很慢。基本框架如图3所示。
图3 IDT基本
深度学习方法
基于CNN的方法
Two-Stream CNN
在深度学习方法被运用于动作识别前期,起初提出的算法提取的特征甚至比人工提取的效果更差。2014年Simonyan等人提出了双流卷积网络用于对视频中的动作识别,Two-Stream CNN最早提出的利用光流进行视频动作识别的模型之一。文章提出一种基于两个独立的识别流(空间和时间)的构架,然后通过后期融合将它们结合起来。两个流都是用卷积网络来实现。空间流从静止的视频帧中执行动作识别,时间流被训练以密集光流的形式从运动中识别动作。这两个流都被实现为ConvNets。双流结构如图4所示。本文在小规模的训练数据集上,在多帧稠密光流上训练的卷积神经网络获得非常好的性能。最后本文将多任务学习应用于两个不同的动作分类数据集,增加训练数据量并提高两者的性能。
图4 双流结构
CNN + LSTM
视频除了空间维度外,最大的痛点是时间序列问题。而众所周知,RNN网络在NLP方向取得了傲人的成绩,非常适合处理序列。所以除了上述两大类方法以外,另外还有一大批的研究学者希望使用RNN网络思想来解决动作识别问题。该类框架的思想是使用CNN处理空间信息,使用LSTM处理时序信息。
2015年,Donahue等人提出了长期循环卷积网络(LRCN),用于视觉识别和描述的体系结构,它结合了卷积层和远程时间递归,并且是端到端可训练的。
该网络同时具备处理时序视频输入或单帧图片的能力,同时也具备输出单值预测或序列预测的能力。模型架构如图5所示。
图5 LRCN架构
C3D
C3D是Two-tream之后的另外一大主流方法。2015年Tran等人提出利用三维卷积网络学习时空特征。本文提出3D ConvNets比2D ConvNets更适用于时空特征的学习;对于3D ConvNet而言,在所有层使用3×3×3的小卷积核效果最好;使用3D卷积学习到的特征,通过简单的线性分类器在4个不同的基准上均优于最新的方法。C3D的方法得到的效果普遍比Two-Stream方法低好几个百分点,但是C3D仍然是目前研究的热点,主要原因是该方法比Two-Stream方法快很多,而且基本上都是端到端的训练,网络结构更加简洁。C3D网络结构如图6所示。
图6 C3D结构
TSN
针对Two-Stream CNN对于长范围时间结构的建模无能为力的情况,2016年王利民等人基于two-stream方法构建TSN(Temporal Segment Networks)基于长范围时间结构(long-range temporal structure)建模,结合了稀疏时间采样策略(sparse temporal sampling strategy)和视频级监督(video-level supervision)来保证使用整段视频时学习得有效和高效。和two-stream一样,TSN也是由空间流卷积网络和时间流卷积网络构成。但不同于two-stream采用单帧或者单堆帧,TSN使用从整个视频中稀疏地采样一系列短片段,每个片段都将给出其本身对于行为类别的初步预测,从这些片段的“共识”来得到视频级的预测结果。在学习过程中,通过迭代更新模型参数来优化视频级预测的损失值(loss value)。TSN网络示意图如图7所示。
图7 TSN网络结构
I3D
2017年,Carreira等人提出I3D(Inflated 3D ConvNet)模型,利用2D网络的预训练模型,把2D Conv变成3D Conv,同时利用3D conv来提取RGB流的时间特征,最后利用光流提升网络性能。I3D的模型如图8所示。
图8 I3D模型
TSM
2019年,Ji Lin等人在TSN基础上提出一种时间位移模块(Temporal Shift Module)。 TSM能够用2D网络对时间建模,即将当前帧的特征图部分通道替换为前一帧或后一帧的通道。因为不需要额外的光流计算,也不需要进行复杂的3D卷积操作,因此计算成本较低。TSM结构如图9所示。
图9 TSM结构
SlowFast Networks
2019年Christoph Feichtenhofer等人提出一种用于视频动作识别的SlowFast网络。该模型与双流模型类似,都有两条通道。但是在SlowFast两条路径中,以低帧率运行的慢路径,用来捕获空间语义;以高帧率运行的快速路径,以捕获精细时间分辨率的运动。SlowFast采用横向连接来融合每个通路学习到的表示。由于可以通过减少通道容量使快速通道变得非常轻量级,因此SlowFast的整体效率大大提高。SlowFast Network如图10所示。
图10 SlowFast Network
X3D
2020年,Christoph Feichtenhofer提出一种高效视频网络X3D,X3D方法尝试从不同的维度(时间维度、采样帧率、空间分辨率、卷积核的数量、时间维度的卷积设置以及网络的深度)对2D卷积进行扩张,每次只能选取一个维度进行扩张,渐进的前向扩张后是一个后向压缩从而达到一个固定复杂度的网络。X3D扩张过程如图11所示。
图11 X3D扩张过程
V4D
大多数用于视频表示学习的3D CNN都是基于片段的方法,因此没有考虑时空特征的视频级时间演化。2020年Shiwen Zhang等人提出一种四维卷积神经网络(V4D)。V4D利用四维卷积来模拟远程时空表征的演化,同时通过残差连接保持强三维时空表征,增强了原始片段级3D CNN的表示能力。4D残差块可以很容易地集成到现有的3D CNN中,分层次地进行远程建模。V4D网络如图12所示。
图12 V4D网络
3D CNN + LSTM
2022年,Basha等人将高斯加权函数(GWF)用于视频帧采样,将连续的K帧聚合成一帧。并结合3D CNN-LSTM架构进行动作识别,显著增强了人类动作识别中时空特征的保存和分类。训练过程如图13所示。
图13训练过程
基于Transformer的方法
纯Transformer模型
2021年Arnab等人借鉴了Transformer在图像分类方面的最新成果,提出了用于视频分类的纯Transformer模型,模型从视频输入中提取时空标记,并使用Transformer层对其进行处理。针对视频长距离依赖的问题,提出一系列变体模型。这些模型在多个视频分类基准上表现优于基于3D CNN的先前方法。通过正则化技术和利用预训练的图像模型,使得在较小数据集上进行训练成为可能。纯Transformer架构如图14所示。
图14纯Transformer架构
3D-ShuffleViT
视频数据的爆炸性增长使得高效的视频动作识别模型变得尤为重要。然而,3D卷积模型的参数量大,计算要求高,难以在计算能力有限的移动设备上部署。现有方法,如R(2+1)D和SlowFast,虽然有效但依赖于3D卷积,计算成本高。2023年Yinghui Wang等人提出了一种名为3D-ShuffleViT的高效视频动作识别网络,通过深度融合自注意力机制与卷积,提升模型性能。通过将自注意机制与卷积深度集成,引入了一个高效的ACISA模块,进一步提高了提出的模型的性能。3D-ShuffleViT结构如图15所示。
图15 3D-ShuffleViT