视频行为识别领域目前已有大量算法被提出,为了评估这些算法的性能,研究者们收集和创造了大量的数据作为公开数据集,极大地推动了行为识别领域的发展。表 1为目前常用的公开数据集及具体信息。
表 1中的数据集均为人类动作视频数据,其中每一个数据集的样本个数、数据集类别及当前的最高准确率如表中内容所示。在研究者们不断扩充这些公开数据集的过程中,行为识别方法也因为这些数据集而有了统一的测试基准。
在深度学习方法应用到视频行为识别领域前,比较有代表性的传统算法有密集轨迹算法(Dense Trajectories,DT)和改进的密集轨迹算法(Improved Dense Trajectories,IDT),这两个算法均由 Heng Wang 等人在 2013 年提出。它们有着类似的过程,首先在每一帧视频图像上密集采样特征点,再使用光流法跟踪特征点轨迹,接着根据轨迹特征进行费舍尔(Fisher Vector,FV)编码,最后使用支持向量机(Support Vector Machine,SVM)对编码结果进行分类。IDT 方法将 UCF-50 数据集的准确率提高了6.7%。由于背景的运动对光流提取轨迹特征这一过程影响较大,因此给算法带来了一些性能上的瓶颈。近年来随着深度学习在图像、视频领域的应用,研究者们逐渐开始采用一些深度学习方法进行视频行为识别。
基于深度学习的视频行为识别方法按照特征提取方式的不同可以划分为三类,第一类方法按照时间和空间两路对视频进行特征提取,简称双流法(Two-Stream),由 Simon 等人在 2014 年首次提出。双流法首先提取视频帧之间的光流图,用它模拟视频的帧间运动信息,再分别提取视频原始 RGB 图像和视频帧间光流图像的特征,最后融合两路特征结果进行分类。双流法将 UCF101 数据集上的准确率提高到了88.0%,取得了当时的最佳结果。而 Wang 等人在 2016 年又提出了一种基于双流法的时域分割网络架构(Temporal Segmentation Networks,TSN),这种方法在视频中抽取部分关键帧进行行为识别,减少了密集帧之间的计算冗余,TSN 将 UCF101 上的准确率提高到了 94.2%,将 HMDB51 上的准确率提高到了 69.4%。
由于双流法需要在模型推理前单独提取光流,这一过程耗费大量时间,因此难以实时识别。而第二类 3D 卷积行为识别方法在一定程度上解决了这一问题。2013 年由Tran 等人首次提出的 C3D(3D Convolutional Networks)方法开创了使用 3D 卷积进行视频行为识别的先河,C3D 方法对连续的视频帧使用3x3x3的卷积核进行特征提取并分类得到结果,在这一过程中三维卷积结合了时间域信息和空间域信息,给视频行为识别方法提供了一种新的思路。该方法将 UCF101 数据集上的准确率提高到了90.4%,达到了当时的最佳效果。而之后的 2017 年,由 Carreira J 等人提出的膨胀 3D卷积方法(Inflated 3D Convolution Network,I3D)在 C3D 的基础之上又做了一系列改进,分双路对 RGB 图像和光流图像作膨胀 3D 卷积,I3D 在 HMDB-51 上的准确率可以达到 80.9%,在 UCF101 上达到了 98.0%。而 2020 年的 X3D探索了帧率、帧数、分辨率、骨干网络的宽度和深度等因素对模型性能的影响,通过 6 个维度的渐进式扩张,使得 Kinetic 数据集上的准确率提升到了 81.9%。
由于行为识别是对视频帧序列进行推理,有研究者想到了利用与序列相关的网络模型对其进行计算,因此出现了除双流法和 3D 卷积法之外的第三类方法,这类方法主要采用回归神经网络(Recurrent Neural Networks,RNN)或长短期记忆网络(Long Short-Term Memory,LSTM)方法进行建模,并结合关键点骨架信息或光流特征,将视频看作一个完整的序列输入 RNN 或 LSTM 中得到结果。2014 年,How 等人使用 LSTM 训练机器人动作,实现对 6 种不同行为的分类识别。2016 年,Li Y 等人研究出了一种基于 LSTM 的人体骨架行为识别方法,而之后 Joe 等人提出的LSTM 与双流特征结合的方法,在 Sports-1M 数据集上的准确率达到了 90.5%。2021年,谢昭等人提出的基于时空关注度 LSTM 的行为识别方法,将 UCF101 上的准确率提高到了 98.66%。这类基于 RNN 和 LSTM 的行为识别依赖于固定的骨架和序列结构,因此一般应用于人体行为识别,手势识别和车辆轨迹识别等场景中。