在行为识别这个领域,特征提取是核心环节,直接决定了模型能否准确理解和区分不同的行为。不同的研究阶段和应用场景,所采用的特征提取方法也会有所侧重。
早期和经典的特征提取方法(侧重于手工设计):
在深度学习兴起之前,行为识别主要依赖于研究者们通过对人体运动的观察和理解,手工设计各种描述行为的特征。这些方法虽然需要大量的领域知识,但其可解释性强,并且在计算资源有限的情况下表现出色。
时空兴趣点(SpaceTime Interest Points STIPs): 这种方法试图在视频流中找到具有判别力的“兴趣点”。可以想象一下,一个特定的动作,比如“挥手”,其关键信息往往集中在手部、手臂的运动轨迹上。STIPs 就是要找到这些在时间和空间上都相对稳定的、信息量大的区域。
空间维度: 通常会使用一些图像梯度(如HOG Histogram of Oriented Gradients)或局部不变性特征(如SIFT ScaleInvariant Feature Transform)来描述图像块的纹理和形状。
时间维度: 则会考虑这些空间特征在连续帧之间的变化,例如光流(Optical Flow)。光流可以描述像素在图像中运动的速度和方向,对于捕捉肢体动作的动态信息至关重要。
如何结合? STIPs 的核心思想是将这些空间和时间上的信息结合起来,寻找在时空上具有“不寻常”变化的区域。比如,一个快速的手臂挥动,在特定时空区域内,其像素的颜色、梯度以及运动方向都会发生显著变化。这些变化的点就被认为是兴趣点。
动作词汇(Action Words / BagofVisualWords BoVW): 受到文本处理中“词袋模型”的启发,行为识别也引入了类似的概念。
视频片段的“词汇”: 这里的“词汇”不是我们日常使用的语言词汇,而是指描述动作的基本视觉单元。这些单元通常是通过对视频帧提取的时空局部特征(如STIPs、HOG3D、cuboids等)进行聚类得到的。聚类中心就代表了一个“动作词汇”。
行为的表示: 然后,将一个视频(或一个行为段)看作是由这些“动作词汇”组成的“袋子”。通过统计每个“动作词汇”在视频中出现的频率,就得到了一个行为的直方图表示。
举个例子: 想象一下“跑步”这个动作,可能包含“抬腿”、“蹬地”、“摆臂”等一系列小动作。如果我们将这些小动作的视觉特征提取出来,并进行聚类,得到几个代表性的“动作词汇”。那么,一个跑步的视频,其“动作词汇”的直方图就会显示出与“抬腿”、“蹬地”等词汇相关的较高频率。
光流(Optical Flow): 光流前面也提到了,它非常重要。它描述了图像中像素的运动。
如何提取? 有很多经典的光流计算方法,比如LucasKanade算法、HornSchunck算法等。它们通过分析连续帧之间像素的亮度变化和空间位置变化来估计像素的运动矢量。
作为特征: 光流本身就可以被看作是一种特征。可以将整个视频的光流场(每一帧的运动矢量场)进行处理,比如计算光流的梯度、方向直方图等,来描述动作的动态特征。
HOG3D (Histogram of 3D Gradients): 顾名思义,这是HOG特征在三维(时间和空间)上的扩展。
核心思想: HOG在2D图像中统计像素梯度方向的直方图,来描述物体的形状。HOG3D则是在一个时空立方体(一个包含多个连续帧的小视频块)内,统计梯度在三维空间(x, y, t)方向上的分布。
优点: 能够同时捕捉物体的形状和运动信息,对尺度和光照变化具有一定的鲁棒性。
Cuboids (时空块): 这种方法是将视频切分成小的三维时空立方体(cuboids),然后从这些cuboids中提取局部特征,比如HOG3D。
为什么用cuboids? 行为往往不是在整个视频帧上发生的,而是在局部区域、以特定方式进行的。Cuboids就是为了捕捉这种局部时空信息。
特征聚合: 提取的cuboid特征可以通过BoVW或其他方法进行聚合,形成整个视频的行为表示。
深度学习时代的特征提取(侧重于自动学习):
随着深度学习的发展,特别是卷积神经网络(CNN)和循环神经网络(RNN)的出现,特征提取的方式发生了根本性转变。模型不再需要手工设计特征,而是能够直接从原始视频数据中学习到层次化的、具有判别力的特征。
CNNbased Features(基于CNN的特征):
2D CNN + RNN/LSTM: 这是非常经典且有效的组合。
2D CNN的作用: 通常使用预训练好的ImageNet模型(如VGG, ResNet, Inception等)的卷积层来提取视频每一帧的空间特征。这些层能够捕捉到图像中的边缘、纹理、形状等视觉信息。
RNN/LSTM的作用: 将2D CNN提取的每帧空间特征序列输入到RNN(如LSTM或GRU)中。RNN的循环结构能够记忆和处理时序信息,捕捉动作的动态性、顺序性和上下文关系。例如,一个“踢腿”动作,其发生过程(抬腿、伸腿、收腿)需要被RNN理解。
提取的特征: RNN的最终隐藏状态或所有时间步的隐藏状态的组合,都可以被视为视频的行为特征。
3D CNN(如C3D, I3D):
核心思想: 传统的2D CNN只处理单帧图像,无法直接捕捉时空信息。3D CNN则是在三维卷积核(同时在空间和时间维度上滑动)上进行操作,直接从视频立方体(一组连续的视频帧)中同时学习空间和时间特征。
如何实现? 3D卷积核的大小是 (depth, height, width),depth代表时间维度上的跨度(比如23帧)。通过堆叠多个3D卷积层,网络能够学习到更复杂的时空模式。
代表性模型:
C3D (Convolutional 3D): 将2D CNN的架构(如AlexNet)扩展到3D,使用3D卷积层和3D池化层。
I3D (Inflated 3D ConvNet): 这是一个非常成功的模型,它通过“膨胀”2D预训练模型(将2D卷积核膨胀成3D卷积核)来初始化3D CNN,从而利用2D模型在ImageNet上学到的丰富空间知识,并在视频数据集上进行微调。
提取的特征: 3D CNN的最终全连接层输出或某个中间层的激活值,都可以作为行为特征。
TwoStream Networks (双流网络):
核心思想: 将视频信息分解为两部分:静态空间信息和动态时序信息,并分别使用两个独立的网络来处理,最后将两者的特征融合。
空间流 (Spatial Stream): 使用一个2D CNN来处理单帧图像,提取帧内的外观信息。
时序流 (Temporal Stream): 使用另一个网络(可以是2D CNN+RNN,或者一个专门处理运动信息的网络)来处理光流场。光流场能够直接编码了像素在时间上的运动信息。
特征融合: 最后,将空间流和时序流提取的特征在某个层面进行融合(如拼接、加权平均等),输入到分类器中进行最终的预测。
优点: 能够更有效地分离和利用空间和时序信息。
Transformerbased Models(基于Transformer的模型):
近期趋势: 近年来,Transformer在自然语言处理领域取得了巨大成功,并逐渐被引入到计算机视觉任务中,包括行为识别。
核心思想: Transformer的核心是自注意力机制(SelfAttention),它能够捕捉输入序列中不同元素之间的全局依赖关系。
视频序列化: 视频首先被切分成小的时空块(Spatiotemporal Cubes),这些块被视为序列中的“token”。
自注意力机制: Transformer模型通过自注意力机制,能够直接学习到这些时空块之间的长距离依赖关系,而不仅仅是局部的运动模式。例如,一个“跳跃”动作,其起始(起跳)、过程(空中姿态)和结束(落地)之间的联系,可以通过自注意力机制很好地捕捉。
代表性模型:
ViViT (Video Vision Transformer): 将图像的ViT思想扩展到视频,将视频切分成时空“patches”,并使用Transformer进行编码。
TimeSformer: 引入了时空自注意力机制,分别对空间和时间维度上的依赖关系进行建模。
提取的特征: Transformer编码器的输出序列,或者经过平均池化后的特征向量,都可以作为行为特征。
特征提取的考量因素:
在选择哪种特征提取方法时,通常需要考虑以下几个方面:
1. 计算资源: 3D CNN和Transformer模型通常计算量更大,对硬件要求更高。而CNN+RNN或一些手工特征方法可能在资源受限的设备上更容易部署。
2. 数据量: 深度学习模型(尤其是Transformer)通常需要大量的标注数据才能训练出好的模型。如果数据量有限,手工特征或迁移学习可能是更好的选择。
3. 行为的性质:
细粒度行为(Finegrained Actions): 比如“击打”和“抓取”,可能需要捕捉非常精细的动作细节,这时3D CNN或具有强大时序建模能力的模型可能更优。
粗粒度行为(Coarsegrained Actions): 比如“跑步”、“行走”,更侧重于整体运动模式,一些基于光流或整体时空描述的方法可能就足够了。
长时序行为(Longterm Actions): 比如“打篮球”,包含多个连续的子动作,需要强大的长时序建模能力,RNN/LSTM或Transformer在这一方面表现出色。
4. 可解释性: 手工设计的特征通常更具可解释性,可以理解模型为何做出某种判断。深度学习特征则往往是“黑箱”,但其强大的判别力是优势。
总结一下,目前的趋势是:
深度学习方法占据主导地位,特别是3D CNN(如I3D)和Transformer(如ViViT, TimeSformer)在基准测试中表现出优异的性能。
CNN+RNN/LSTM 仍然是一种非常有效且相对容易实现的基线方法,特别适合捕捉长时序依赖。
双流网络 通过融合不同类型的信息,提供了一种有效的视角。
手工特征 依然有其价值,尤其是在数据量较小、计算资源有限,或者需要强可解释性的场景下,它们可以作为有效的补充或基线。
理解这些特征提取方法的原理和适用场景,能够帮助我们更好地选择和应用适合特定行为识别任务的技术。