深度动作识别研究综述——论文笔记
论文原文:📎A Comprehensive Study of Deep Video Action Recognition.pdf

Abstract
视频动作识别是视频理解的代表性任务之一。在过去的十年中,由于深度学习的出现,我们见证了视频动作识别的巨大进步。但我们也遇到了新的挑战,包括在视频中建模长期时间信息,高计算成本,以及由于数据集和评估协议的差异导致的无法比较的结果。在本文中,我们对200多篇关于视频动作识别的深度学习的现有论文进行了全面的调查。我们首先介绍了影响模型设计的17个视频动作识别数据集。然后,我们按照时间顺序介绍视频动作识别模型:从适应深度学习的早期尝试开始,然后是双流网络,然后是3D卷积核的采用,最后是最近的计算效率模型。此外,我们在几个代表性的数据集和发布代码上对流行的方法进行了基准测试,以提高可再现性。最后,我们讨论了视频动作识别的开放性问题,并阐明了视频动作识别的机遇,以促进新的研究思路。
Introduction
视频理解中最重要的任务之一是了解人类的行为。它有许多真实世界的应用,包括行为分析、视频检索、人机交互、游戏和娱乐。人类行为理解包括识别、定位和预测人类行为。识别视频中人类动作的任务称为视频动作识别。在图1中,我们可视化了几个带有相关动作标签的视频帧,它们是典型的人类日常活动,比如握手和骑自行车。

近十年来,随着高质量大规模动作识别数据集的出现,人们对视频动作识别的研究兴趣日益浓厚。我们在图2中总结了流行的动作识别数据集的统计。

我们看到视频和类的数量都在快速增长,例如,从HMDB51[109]中的7K个视频超过51个类,到YouTube8M[1]中的8M个视频超过3862个类。此外,新数据集发布的速度也在增加:2011年至2015年发布了3个数据集,而2016年至2020年发布了13个数据集。
由于大规模数据集的可用性和深度学习的快速发展,基于深度学习的视频动作识别模型也快速增长。在图3中,我们按时间顺序展示了最近的代表性工作。DeepVideo[99]是最早将卷积神经网络应用于视频的尝试之一。我们在这里观察到三个趋势。第一种趋势由关于双流网络的开创性论文开始[187],通过在光流流上训练卷积神经网络,增加了第二种路径来学习视频中的时间信息。它的巨大成功激发了大量后续论文,如TDD[214]、LRCN[37]、Fusion[50]、TSN[218]等。第二个趋势是使用3D卷积核来建模视频时间信息,如I3D [14], R3D [74], S3D [239], Non-local [219], SlowFast[45]等。最后,第三个趋势是将计算效率扩展到更大的数据集,以便在实际应用中采用。例如:Hidden TSN [278], TSM [128], X3D [44], TVN[161]等。

尽管有大量基于深度学习的视频动作识别模型,但还没有专门针对这些模型的全面调查。以前的调查论文要么将更多精力放在手工制作的特征上[77,173],要么关注更广泛的主题,如视频字幕[236]、视频预测[104]、视频动作检测[261]和零样本视频动作识别[96]。在本文中:
我们全面回顾了200多篇关于视频动作识别的深度学习的论文。我们按时间顺序和系统地向读者介绍最近的进展,并详细解释了流行的论文。
我们在相同的数据集上对广泛采用的方法进行了准确性和效率方面的基准测试。我们还发布了完全可再现性的实现https://cv.gluon.ai/model_zoo/action_recognition.html。
我们详细阐述了该领域的挑战、开放问题和机遇,以促进未来的研究。
综述的其余部分安排如下。在第二节中我们首先描述了用于基准测试的流行数据集和存在的挑战。然后在第三节中我们介绍了使用深度学习进行视频动作识别的最新进展,这是本综述的主要贡献。在第4节中,我们对标准基准数据集上广泛采用的方法进行评估,并在第5节中提供讨论和未来的研究机会。
Datasets and Challenges
Datasets
深度学习方法通常会随着训练数据量的增加而提高精度。对于视频动作识别,这意味着我们需要大规模的标注数据集来学习有效的模型。
对于视频动作识别任务,数据集的构建通常采用以下过程:(1)定义一个动作列表,结合以前动作识别数据集的标签,并根据用例添加新的类别。(2)通过将视频标题/字幕与动作列表进行匹配,从YouTube、电影等多种来源获取视频。(3)手动提供时态注释来指示动作的起始和结束位置,(4)最后通过去重复和过滤噪声类/样本来清理数据集。下面我们回顾表1和图2中最流行的大规模视频动作识别数据集。

HMDB51[109]于2011年推出。它主要是从电影中收集的,也有一小部分来自公共数据集,如Prelinger档案、YouTube和谷歌视频。该数据集包含6849个剪辑,分为51个动作类别,每个动作类别至少包含101个剪辑。该数据集有三个正式的拆分。大多数以前的论文要么报告了第一个分割点的分类准确率,要么报告了三个分割点的平均精度。
UCF101[190]于2012年推出,是以前的UCF50数据集的扩展。它包含了来自YouTube的13320个视频,涉及101种人类行为。该数据集有三个与HMDB51类似的官方拆分,并且也以相同的方式进行评估。
Sports1M[99]于2014年推出,是第一个大规模视频动作数据集,由100多万个YouTube视频组成,其中标注了487节运动类。类别是细粒度的,这导致了较低的类间差异。它有一个官方的10折交叉验证部分用于评估。
ActivityNet[40]最初于2015年推出,ActivityNet系列自首次推出以来已有多个版本。最新的ActivityNet 200 (V1.3)包含200个人类日常生活行为。它有10,024个训练视频,4,926个验证视频和5,044个测试视频。平均每个类有137个未裁剪的视频,每个视频有1.41个活动实例。
YouTube8M[1]于2016年推出,是迄今为止规模最大的视频数据集,包含800万个YouTube视频(总计50万小时的视频),并用3862个动作类进行注释。每个视频由YouTube视频注释系统用一个或多个标签进行注释。该数据集按70:20:10的比例分为训练、验证和测试三部分。该数据集的验证集还扩展了人工验证的片段标注,以提供时间定位信息。
Charades[186]于2016年被引入,作为现实生活中并发动作理解的数据集。它包含9,848个视频,平均长度为30秒。这个数据集包括267个不同的人进行的157项多标签的日常室内活动。它有一个官方的训练验证分割,有7985个训练视频和剩余的1863个验证视频。
Kinetics Family现在是采用最广泛的基准。Kinetics400[100]于2017年推出,它包括大约24万个训练和2万个验证视频,从400个人类行动类别中裁剪到10秒。Kinetics家族继续扩大,2018年发布的Kinetics-600[12]有48万个视频,2019年发布的Kinetics700[13]有650K的视频。
200BN -Something - Something [69] V1于2017年推出,V2于2018年推出。这个系列是另一个流行的基准测试,它由174个操作类组成,描述了人类对日常对象执行的基本操作。V1有108,499个视频,V2有220,847个视频。注意Something - Something数据集需要强大的时间建模,因为大多数活动不能仅根据空间特征推断(例如打开某物,用某物覆盖某物)。
AVA[70]于2017年引入,是首个大规模时空行为检测数据集。它包含430个15分钟的视频剪辑,带有80个原子动作标签(只有60个标签用于评估)。在每个关键帧上提供标注,导致214,622个训练样本、57,472个验证样本和120,322个测试样本。AVA数据集最近扩展为AVA- kinetics,有352,091个训练样本,89,882个验证样本和182,457个测试样本[117]。
Moments in Time[142]于2018年推出,它是一个用于理解事件的大型数据集。它包含一百万个3秒的视频剪辑,用一个包含339个类的字典进行注释。不同于其他为理解人类行为而设计的数据集,Moments in Time数据集涉及人、动物、物体和自然现象。该数据集在2019年扩展到Multi-Moments in Time (M-MiT)[143],将视频数量增加到102万个,修剪模糊类,并增加每个视频的标签数量。
HACS[267]于2019年推出,是一个从网络视频中收集的用于识别和定位人类行为的新的大规模数据集。它包括两种手动标注。HACS剪辑包含50K视频1.55M 2秒的剪辑注释,HACS片段包含50K视频140K完整动作片段(从动作开始到结束)。这些视频使用ActivityNet (V1.3)[40]中使用的200个人类动作类进行注释。
HVU[34]数据集于2020年发布,用于多标签多任务视频理解。这个数据集有572K个视频和3142个标签。官方拆分有481K, 31K和65K的视频分别用于训练,验证和测试。这个数据集有6个任务类别:场景、对象、动作、事件、属性和概念。平均而言,每个标签大约有2112个样本。视频时长不超过10秒。
AViD[165]于2020年作为匿名动作识别的数据集被引入。它包含410K的培训视频和40K的测试视频。每个视频剪辑持续时间在3-15秒之间,总共有887个动作类。在数据收集过程中,作者试图从不同的国家收集数据,以处理数据偏差。他们还删除了面部身份,以保护视频制作者的隐私。因此,对于识别与面部相关的动作,AViD数据集可能不是一个合适的选择。
在我们按时间顺序回顾这些方法之前,我们先展示图4中来自上述数据集的几个可视化示例,以展示它们的不同特征。在最上面的两行中,我们从UCF101[190]和Kinetics400[100]数据集中选取动作类。有趣的是,我们发现这些行为有时仅由情境或场景决定。例如,该模型可以预测骑自行车的动作,只要它识别出视频帧中的自行车。如果该模型识别出了板球场,它还可以预测板球投球的动作。因此,对于这些类别,视频动作识别可能成为一个对象/场景分类问题,而不需要推理运动/时间信息。在中间两行,我们从Something-Something数据集[69]中选择动作类。该数据集中于人与对象的交互,因此它更细粒度,需要强大的时间建模。例如,如果我们只看掉东西和捡起东西的第一帧,而不看其他视频帧,就不可能区分这两个动作。在最下面一行,我们从Moments In Time数据集[142]中选择动作类。这个数据集不同于大多数视频动作识别数据集,它被设计为具有较大的类间和类内变化,以在不同抽象级别上代表动态事件。例如,攀爬动作可以在不同的环境(楼梯或树)中有不同的演员(人或动物)。

Challenges
在开发有效的视频动作识别算法方面存在几个主要的挑战。
在数据集方面,首先,为训练动作识别模型定义标签空间是非常重要的。这是因为人类行为通常是复合概念,这些概念的层次结构没有明确定义。其次,为动作识别标注视频很费力(例如,需要观看所有的视频帧),并且不明确(例如,很难确定动作的确切开始和结束)。第三,一些流行的基准数据集(如Kinetics系列)只发布视频链接供用户下载,而不发布实际视频,导致对方法的评估基于不同的数据。在方法之间进行公平的比较并获得洞察力是不可能的。
在建模方面,首先,捕捉人类行为的视频既有强烈的类内变化,也有类间变化。人们可以在不同的视点下以不同的速度执行相同的动作。此外,有些动作具有相似的运动模式,很难区分。其次,识别人类行为需要同时理解短期特定动作的运动信息和长期时间信息。我们可能需要一个复杂的模型来处理不同的视角,而不是使用单一的卷积神经网络。第三,训练和推理的计算成本都很高,阻碍了动作识别模型的开发和部署。在下一节中,我们将演示视频动作识别方法在过去十年中如何发展,以解决上述挑战。
An Odyssey(探索) of Using Deep Learning for Video Action Recognition
在本节中,我们回顾了2014年至今基于深度学习的视频动作识别方法,并介绍了相关的早期工作。
从手工制作的特征到CNN
尽管已有一些论文使用卷积神经网络(cnn)进行视频动作识别,但[200,5,91]、手工制作特征[209,210,158,112],特别是改进密集轨迹(IDT)[210],由于其准确性高、鲁棒性好,在2015年之前的视频理解文献中占主导地位。然而,手工制作的特性具有沉重的计算成本[244],并且难以扩展和部署。
随着深度学习的兴起[107],研究人员开始利用CNN解决视频问题。开创性的研究DeepVideo[99]提出在每个视频帧上单独使用一个2D CNN模型,并研究了几种时间连接模式来学习视频动作识别的时空特征,如后期融合、早期融合和慢融合。尽管该模型在后来被证明是有用的想法(如多分辨率网络)上取得了早期进展,但其在UCF101[190]上的迁移学习性能比手工制作的IDT特征低20% (65.4% vs 87.9%)。此外,DeepVideo[99]发现,当输入变为一堆帧时,由单个视频帧提供的网络的性能同样良好。这一观察可能表明,习得的时空特征没有很好地捕捉到运动。它还鼓励人们思考,为什么CNN模型在视频领域没有表现出传统手工制作的特征,而不像在其他计算机视觉任务中[107,171]。
双流网络
由于视频理解需要直观的运动信息,寻找合适的方式描述帧之间的时间关系对于提高基于CNN的视频动作识别性能至关重要。
光流[79]是描述物体/场景运动的有效运动表示方法。确切地说,它是由观察者和场景之间的相对运动引起的视觉场景中物体、表面和边缘的明显运动模式。我们在图5中展示了几个光流的可视化图。我们可以看到,光流能够准确地描述每个动作的运动模式。与RGB图像相比,使用光流的优点是提供了正交信息。例如,图5底部的两个图像的背景很混乱。光流可以有效去除静止背景,与使用原始RGB图像作为输入相比,学习问题更简单。此外,光流已被证明在视频问题上效果很好。传统的手工特征,如IDT[210],也包含类似光流的特征,如光流直方图(HOF)和运动边界直方图(MBH)。

因此,Simonyan等人。[187]提出了双流网络,它包括空间流和时间流,如图6所示。该方法与双流假说[65]有关,根据该假说,人眼视皮层包含两条路径:腹流(执行物体识别)和背流(识别运动)。空间流将原始视频帧作为输入以捕获视觉外观信息。时间流将一叠光流图像作为输入,以捕捉视频帧之间的运动信息。具体地说,[187]将估计流的水平和垂直分量(即,x方向和y方向上的运动)线性地重新缩放到[0,255]范围,并使用JPEG进行压缩。输出对应于图6中所示的两个光流图像。压缩后的光流图像将被连接为具有H×W×2L维度的时间流的输入,其中H、W和L表示视频帧的高度、宽度和长度。最后,将两个流的预测得分求平均,得到最终的预测结果。
通过添加额外的时间流,基于CNN的方法第一次获得了与UCF101(88.0%比87.9%)和HMDB51[109](59.4%比61.1%)上之前最好的手工特征IDT相似的性能。[187]提出了两点重要的意见。首先,运动信息对于视频动作识别非常重要。其次,对于CNN来说,直接从原始视频帧中学习时间信息仍然具有挑战性。预计算光流作为运动表示,是深度学习展示其威力的有效途径。[187]由于成功地缩小了深度学习方法与传统手工特征之间的差距,出现了许多关于双流网络的后续论文,极大地推动了视频动作识别的发展。在这里,我们将它们分为几个类别,并逐个进行审查。

使用更深层次的网络架构
双流网络[187]使用相对浅的网络体系结构[107]。因此,双流网络的自然扩展涉及使用更深层次的网络。然而,Wang et al.[215]发现简单地使用更深的网络并不能产生更好的结果,这可能是由于对小尺寸视频数据集的过度匹配[190,109]。回想一下第2.1节,UCF101和HMDB51数据集只有数千个培训视频。因此,Wang等人。[217]介绍了交叉通道初始化、同步批量归一化、角点裁剪和多尺度裁剪数据增强、大丢失率等一系列好的做法,以防止更深层次的网络过度拟合。通过这些良好实践,[217]能够使用VGG16模型[188]训练一个双流网络,该网络在UCF101上的性能远远超过[187]。这些良好做法已被广泛采纳,并仍在使用。后来,时间段网络(TSN)[218]对网络体系结构进行了深入的研究,如VGG16、ResNet[76]、Inception[198],并证明了较深的网络通常可以获得更高的视频动作识别准确率。我们将在第3.2.4节中介绍有关TSN的更多详细信息。
双流融合
由于双流网络中有两个流,因此需要一个阶段来合并两个网络的结果以获得最终的预测。这一阶段通常被称为时空融合步骤。
最简单和最直接的方法是Late Fusion,它对两个流的预测进行加权平均。尽管晚期融合被广泛采用[187,217],但许多研究人员认为,这可能不是融合空间外观流和时间运动流之间的信息的最佳方式。他们认为,在模型学习期间,两个网络之间的早期交互可能会使两个流都受益,这被称为早期融合。
Fusion[50]是研究早期融合范例的首批论文之一,包括如何执行空间融合(例如,使用诸如总和、最大值、双线性、卷积和级联等运算符)、在哪里融合网络(例如,发生早期交互的网络层)以及如何执行时间融合(例如,在网络的较后阶段使用2D或3D卷积融合)。[50]表明早期融合有利于两个流学习更丰富的特征,并导致比后期融合更好的性能。沿着这一研究路线,Feichtenhofer等人。[46]通过在两个流之间引入剩余连接,将ResNet[76]推广到时空域。在[46]的基础上,Feichtenhofer et al.[47]进一步提出了一种用于残差网络的乘性门限函数,以更好地学习时空特征。同时,[225]采用时空金字塔在两个流之间进行分层早期融合。
循环神经网络
由于视频本质上是一个时间序列,研究人员探索了用于视频中的时间建模的循环神经网络(RNN),特别是对长短期记忆(LSTM)的使用[78]。
LRCN[37]和Beyond-Short-SnipSets[253]是在双流网络环境下使用LSTM进行视频动作识别的几篇论文中的第一篇。
它们将CNN的特征映射作为深度LSTM网络的输入,并将帧级别的CNN特征聚合为视频级别的预测。请注意,他们分别对两个流使用LSTM,最终结果仍然是通过后期融合获得的。然而,与双流基线[187]相比,LSTM模型[253]并没有明显的经验改进。根据CNN-LSTM的框架,提出了几种变体,如双向LSTM[205]、CNN-LSTM融合[56]和分层多粒度LSTM网络[118]。[125]描述了视频LSTM,它包括基于相关性的空间注意机制和基于轻量级运动的注意机制。VideoLSTM不仅显示了动作识别的改进结果,而且还演示了如何通过仅依赖动作类标签来将学习到的注意力用于动作定位。格子-LSTM[196]通过学习单个空间位置的存储单元的独立隐藏状态转变来扩展LSTM,因此它可以准确地模拟长期和复杂的运动。ShuttleNet[183]是一个并行工作,它同时考虑RNN中的前馈和反馈连接,以学习长期依赖关系。FASTER[272]设计了一个FAST-GRU,可以从昂贵的主干和廉价的主干中聚合剪辑级的特征。该策略降低了冗余片段的处理代价,从而加快了推理速度。
然而,上面提到的工作[37,253,125,196,183]使用不同的双流网络/骨干。因此,使用RNN的各种方法之间的差异尚不清楚。Ma等[135]建立了一个较强的基线进行公平比较,并深入研究了利用学习时空特征的效果。他们发现提高性能需要适当的注意,例如,LSTM需要预先分段的数据来充分利用时间信息。视频动作定位[189]和视频问答[274]也对进行了深入研究,但这些都超出了本次调查的范围。
基于分段的方法
多亏了光流,双流网络能够对帧之间的短期运动信息进行推理。然而,它们仍然无法捕获远程的时间信息。受双流网络的这种弱点的驱使,Wang等人。[218]提出了一种时间分段网络(TSN)来进行视频级动作识别。虽然最初建议与2D CNN一起使用,但它很简单和通用。因此,最近使用2D或3D CNN的工作仍然建立在这个框架上。
具体来说,如图6所示,TSN首先将整个视频分成若干段,这些段沿时间维均匀分布。然后TSN在每个片段中随机选择一个视频帧,通过网络转发。在这里,网络共享来自所有段的输入帧的权重。最后,通过分段共识从采样的视频帧中聚合信息。分段共识可以是平均池化、最大池化、双线性编码等操作。从这个意义上说,TSN能够模拟长程时间结构,因为模型是从整个视频中看到的内容。此外,这种稀疏采样策略降低了长视频序列的训练成本,但保留了相关信息。
由于TSN具有良好的性能和简单性,大多数双流方法后来都变成了基于段的双流网络。由于分段共识只是做一个max或average pooling操作,特征编码步骤可以生成一个全局视频特征,并像传统方法中建议的那样提高性能[179,97,157]。深度局部视频特征(Deep Local Video Feature, DVOF)[114]提出将经过局部输入训练的深度网络作为特征提取器,训练另一个编码函数将全局特征映射到全局标签。时间线性编码(TLE)网络[36]与DVOF同时出现,但将编码层嵌入到网络中,使得整个管道可以端到端进行训练。VLAD3和ActionVLAD[123, 63]也同时出现。他们将NetVLAD层[4]扩展到视频域以执行视频级编码,而不是像[36]那样使用紧凑的双线性编码。为了提高TSN的时间推理能力,时间关系网络(temporal Relation Network, TRN)[269]被提出用于在多个时间尺度上学习和推理视频帧之间的时间相关性。最近最先进的高效模型TSM[128]也是基于分段的。我们将在第3.4.2节更详细地讨论它。
多流网络
双流网络之所以成功,是因为外观和运动信息是视频的两个最重要的属性。然而,还有其他因素也可以帮助视频动作识别,如姿势、物体、音频和深度等。
姿势信息与人体动作密切相关。我们可以通过不看场景背景只看一个姿势(骨架)图像来识别大多数动作。尽管之前有利用pose进行动作识别的工作[150,246],但P-CNN[23]是最早成功利用pose改善视频动作识别的深度学习方法之一。P-CNN提出沿人体各部位轨迹聚合运动和外观信息,其原理与轨迹汇聚类似[214]。【282】将这条管道延伸到一个链式的多流框架,该框架可以计算和集成外观、运动和姿态。
他们引入马尔可夫链模型,将这些线索相继加入,并在动作识别和动作定位方面取得了令人振奋的结果。汤剂[25]是P-CNN的后续工作,但引入了一个更强大的特征表示,对人类语义关键点的运动进行编码。他们首先运行了一个像样的人体姿势估计器,并提取了每帧人体关节的热图。然后,他们通过临时聚合这些概率图来获得药剂的表示。汤剂是轻量级的,比以前的姿势表现更好[23,282]。此外,它还被证明是标准外观和运动流的补充,例如,将汤剂与I3D[14]组合在UCF101上获得了最先进的结果(98.2%)。
物体信息是另一个重要的线索,因为大多数人类行为涉及人与物体的交互。Wu[232]提出同时利用物体特征和场景特征来帮助视频动作识别。对象和场景特征是从最先进的预训练对象和场景检测器中提取的。Wang等人[252]进一步使网络端到端可训练。他们引入了一种基于双流语义区域的方法,用Faster RCNN网络取代标准的空间流[171],提取物体、人物和场景的语义信息。
音频信号通常与视频一起出现,并与视觉信息互补。Wu等人[233]介绍了一种多流框架,该框架集成了视频中的空间、短期运动、长期时间和音频,以消化互补的线索。最近,Xiao等人[237]在[45]之后引入了AudioSlowFast,通过在统一表示中添加另一个音频通路来建模视觉和声音。
在RGB-D视频动作识别领域,使用深度信息是标准实践[59]。然而,对于基于视觉的视频动作识别(例如,仅给出单眼视频),我们不能像在RGB-D域那样获得基准真实深度信息。早期的尝试Depth2Action[280]使用现成的深度估计器从视频中提取深度信息,并将其用于动作识别。
从本质上讲,多流网络是一种多模态学习方法,使用不同的线索作为输入信号来帮助视频动作识别。我们将在第5.12节进一步讨论多模态学习。
3D CNN的兴起
预计算光流计算量大、存储要求高,不利于大规模训练或实时部署。从概念上理解视频的一个简单方法是把它看成一个具有两个空间维度和一个时间维度的三维张量。因此,这导致使用3D CNN作为处理单元来建模视频中的时间信息。
使用3D CNN进行动作识别的开创性工作是[91]。虽然鼓舞人心,但该网络还不够深入,无法显示其潜力。Tran等人[202]将[91]扩展到更深层次的三维网络,称为C3D。C3D遵循[188]的模块化设计,可以认为是VGG16网络的3D版本。它在标准基准上的性能并不令人满意,但具有很强的泛化能力,可以作为各种视频任务的通用特征提取器[250]。
然而,3D网络很难优化。为了很好地训练3D卷积滤波器,人们需要具有不同视频内容和动作类别的大规模数据集。幸运的是,存在一个足够大的数据集Sports1M[99],可以支持深度3D网络的训练。然而,C3D的训练需要几周的时间来收敛。尽管C3D非常流行,但大多数用户只是将其作为不同用例的特征提取器,而不是对网络进行修改/微调。这也是2014年至2017年基于2D cnn的双流网络在视频动作识别领域占据主导地位的部分原因。
当2017年carira等人[14]提出I3D时,情况发生了变化。如图6所示,I3D以一个视频片段作为输入,通过堆叠的3D卷积层转发。一个视频剪辑是一个视频帧序列,通常使用16或32帧。I3D的主要贡献在于:1)它将成熟的图像分类架构用于3D CNN;2)模型权值采用[217]中初始化光流网络的方法,将ImageNet预训练的2D模型权值膨胀到3D模型中相应的权值。因此,I3D绕过了3D CNN必须从头开始训练的困境。通过在新的大规模数据集Kinetics400[100]上进行预训练,I3D在UCF101上达到95.6%,在HMDB51上达到74.8%。I3D结束了用不同方法报告小型数据集(如UCF101和HMDB512)数据的时代。I3D之后的出版物需要报告他们在Kinetics400或其他大型基准数据集上的性能,这将视频动作识别推向了下一个水平。在接下来的几年里,3D CNN发展迅速,几乎在每一个基准数据集上都表现出色。我们将在以下几个类别中回顾基于3D CNN的文献。
我们想指出的是,3DCNN并不是在取代双流网络,它们也不是相互排斥的。他们只是使用不同的方式来模拟视频中的时间关系。此外,双流方法是视频理解的通用框架,而不是特定的方法。只要存在两个网络,一个用于使用RGB帧的空间外观建模,另一个用于使用光流的时间运动建模,则该方法可以归类为双流网络家族。在[14]中,他们还使用I3D架构构建了一个时间流,并实现了更高的性能,在UCF101上为98.0%,在HMDB51上为80.9%。因此,最终的I3D模型是3D CNN和两流网络的结合。然而,I3D的贡献并不在于光流的使用。
从2D到3D CNN的映射
2D CNN享受着诸如ImageNet[30]和Places205[270]这样的大规模图像数据集带来的预训练的好处,即使是当今可用的最大的视频数据集也无法与之匹敌。在这些数据集上,许多人致力于寻找更准确、更通用的2D CNN结构。下面,我们将介绍利用这些进展开发3D CNN的努力。
ResNet3D[74]直接采用2D ResNet[76],并用3D核取代了所有2D卷积滤波。他们认为,通过使用深度3D CNN和大规模数据集,人们可以在ImageNet上利用2D CNN的成功。在ResNeXt[238]的激励下,Chenet al.[20]提出了一种多纤维体系结构,将复杂的神经网络分割成轻量级网络(纤维)的集成,促进了纤维之间的信息流动,同时降低了计算成本。受SENet[81]的启发,STCNet[33]建议在3D块内集成通道信息,以捕获整个网络中的空间通道和时间通道相关信息。
统一2D和3DCNN
为了降低三维网络训练的复杂性,P3D[169]和R2+1D[204]探索了三维分解的思想。具体而言,一个3D内核(例如,3×3×3)两个独立的操作,可以映像2 d空间卷积(例如,1×3×3)和1 d时间卷积(例如,3×1×1)。P3D和R2 + 1 d之间的差异是如何安排两个映像操作以及他们如何制定每个残块。轨迹卷积[268]遵循这一思路,但使用可变形卷积对时间分量进行处理,以更好地处理运动。
简化3DCNN的另一种方式是在单个网络中混合2D和3D卷积。MiCTNet[271]集成了2D和3D CNN来生成更深层次和更多信息的特征图,同时降低了每一轮时空融合的训练复杂度。Artnet[213]通过使用新的构建块引入了外观和关系网络。构建块由使用2D CNN的空间分支和使用3D CNN的关系分支组成。S3D[239]结合了上述方法的优点。首先用2D核代替网络底层的3D卷积,发现这种顶-重网络具有更高的识别精度。然后,S3D像P3D和R2+1D那样对剩余的3D核进行因子分解,以进一步降低模型规模和训练复杂度。一个名为ECO[283]的并发工作也采用了这种头重脚轻的网络来实现在线视频理解。
长范围时序建模
在3D CNN中,可以通过堆叠多个短时间卷积来实现长距离时间连接,例如,3×3×3个滤波器。然而,在深度网络的后期阶段,特别是对于相隔很远的帧,有用的时间信息可能会丢失。
为了进行长范围时序建模,LTC[206]引入并评估了大量视频帧的长期时间卷积。然而,受限于GPU内存,他们不得不牺牲输入分辨率来使用更多帧。之后,T3D[32]采用密集连接结构[83],使原始时间信息尽可能完整,从而进行最终的预测。后来,Wang等人[219]引入了一种新的构建模块,称为非本地。Non-local是一种类似于self-attention的通用操作[207],它可以以即插即用的方式用于许多计算机视觉任务。如图6所示,他们在稍后的剩余块之后使用时空非本地模块来捕获空间和时间域的长期依赖性,并在没有附加提示的情况下实现了比基线更好的性能。Wu等人[229]提出了一种特征库表示,将整个视频的信息嵌入到一个存储单元中,以进行上下文感知的预测。最近,V4D[264]提出了视频级4D CNN,用4D卷积对长程时空表征的演化进行建模。
提高3D效率
为了进一步提高3D CNN的效率(即在GFLOPS、模型参数和延迟方面),3D CNN的许多变体开始出现。
在高效2D网络发展的推动下,研究人员开始采用基于信道的可分离卷积,并将其扩展到视频分类[111,203]。CSN[203]揭示了通过分离通道交互和时空交互来分解3D卷积是一种很好的实践,并且能够获得最先进的性能,同时比以前的最佳方法快2到3倍。这些方法也与多光纤网络[20]相关,因为它们都是由群卷积启发的。
最近,Feichtenhofer et al.[45]提出了一种既有慢通路又有快通路的高效网络SlowFast。网络设计的部分灵感来自于灵长类视觉系统中的微小细胞和大细胞。如图6所示,慢通道在低帧率下工作以捕获详细的语义信息,而快通道在高时间分辨率下工作以捕获快速变化的运动。为了融合运动信息,例如在双流网络中,SlowFast采用横向连接来融合每个通路学习到的表示。由于可以通过减少通道容量使快速通道变得非常轻量级,因此SlowFast的整体效率大大提高。虽然SlowFast有两条路径,但它与双流网络不同[187],因为这两条路径被设计用来模拟不同的时间速度,而不是空间和时间建模。有几个并发的论文使用多种途径来平衡准确性和效率[43]。
沿着这个思路,Feichtenhofer[44]引入了X3D,它沿着多个网络轴逐步扩展2D图像分类体系结构,例如时间持续时间、帧速率、空间分辨率、宽度、瓶颈宽度和深度。X3D将三维模型的修改/分解推向了极致,是一系列能够满足不同目标复杂度要求的高效视频网络。本着类似的精神,A3D[276]还利用了多种网络配置。然而,3D联合训练这些配置,并且在推理期间仅部署一个模型。这使得最终的模型更有效率。在下一节中,我们将继续讨论高效的视频建模,但不是基于3D卷积。
高效视频建模
随着数据集大小的增加和部署的需要,效率成为一个重要的问题。
如果我们使用基于双流网络的方法,我们需要预先计算光流并将其存储在本地磁盘上。以Kinetics400数据集为例,存储所有的光流图像需要4.5TB的磁盘空间。如此庞大的数据量会使I/O成为训练过程中最紧的瓶颈,导致GPU资源的浪费和实验周期的延长。此外,预计算光流的代价也不便宜,这意味着所有的双流网络方法都不是实时性的。
如果我们使用基于3D cnn的方法,人们仍然会发现3DCNN很难训练,部署也很有挑战性。在培训方面,使用高端8-GPU机器在Kinetics400数据集上训练一个标准的SlowFast网络需要10天才能完成。如此长的实验周期和巨大的计算成本使得视频理解研究只能由拥有丰富计算资源的大公司/实验室进行。最近有几次尝试加快深度视频模型的训练[230],但与大多数基于图像的计算机视觉任务相比,这些方法仍然昂贵。在部署方面,不同平台对3D卷积的支持不如2D卷积。此外,3D CNN需要更多的视频帧作为输入,这增加了额外的IO成本。
因此,从2018年开始,研究人员开始研究其他替代方案,看看他们如何能够同时提高视频动作识别的准确性和效率。我们将在以下几个类别中回顾最近有效的视频建模方法。
Flow-mimic方法
双流网络的主要缺点之一是对光流的需求。预计算光流计算成本高,存储要求高,且不能用于视频动作识别的端到端训练。如果我们能找到一种不使用光流对运动信息进行编码的方法,至少在推理过程中是很有吸引力的。
[146]和[35]是学习估计用于视频动作识别的网络内光流的早期尝试。虽然这两种方法在推理过程中不需要光流,但是在训练过程中需要光流来训练流估计网络。隐式双流网络[278]提出了MotionNet来取代传统的光流计算。 MotionNet是一个轻量级的网络,以一种无监督的方式学习运动信息,当与时间流连接时,是端到端可训练的。因此,无论是训练阶段还是推理阶段,隐式双流cnn[278]仅以原始视频帧为输入,直接预测动作类,而不显式计算光流。PAN[257]通过计算连续特征映射之间的差异来模拟光流特征。按照这个方向,[197,42,116,164]继续研究端到端可训练的cnn,从数据中学习类光流特征。他们直接从光流的定义推导出这些特征[255]。MARS[26]和D3D[191]使用知识蒸馏将两个流网络合并为一个流,例如,通过调整空间流来预测时间流的输出。最近,Kwon等人[110]引入了MotionSqueeze模块来估计运动特征。该模块是端到端可培训的,可以插入任何网络,类似于[278]。
没有三维卷积的时序建模
对帧之间的时间关系进行建模的一种简单而自然的选择是使用3D卷积。然而,有许多替代方案可以实现这一目标。在这里,我们将回顾一些最近的工作,执行时间建模没有3D卷积。
Lin等人。[128]介绍了一种称为时间移位模块(TSM)的新方法。
TSM将移位操作[228]扩展到视频理解。它沿着时间维度移动部分通道,从而促进相邻帧之间的信息交换。为了保持空间特征学习能力,他们将时间移模块放入残差分支的残差块中。因此,原始激活中的所有信息在经过时间变换后仍可通过身份映射访问。TSM最大的优点是可以插入到2D CNN中,实现零计算、零参数的时态建模。与TSM类似,TIN[182]引入了一个时间交错模块来对时间卷积进行建模。
最近有几种使用注意力来执行长期时间建模的2D CNN方法[92,122,132,133]。STM[92]提出了一个基于通道的时空模型来表示时空特征,并提出了一个基于通道的运动模型来有效地编码运动特征。TEA[122]类似于STM,但受到Senet[81]的启发,TEA使用运动特征来重新校准时空特征,以增强运动模式。具体地说,TEA包括两个部分:运动激励和多个时间聚合,第一个组件处理短距离运动建模,第二个组件有效地扩大了远程时间建模的时间接受范围。它们是互补的,而且都很轻,因此TEA能够实现与以前最好的方法相竞争的结果,同时将FLOP保持在与2D CNN一样低的水平。最近,TEINet[132]也采用了注意增强时态建模。请注意,上述基于注意的方法不同于非本地[219],因为它们使用通道注意,而非本地使用空间注意。
Miscellaneous 杂项
在这一部分中,我们将展示过去十年中流行的视频动作识别的其他几个方向。
基于轨迹的方法
虽然基于CNN的方法已经显示出其优越性,并逐渐取代了传统的手工制作方法,但传统的局部特征流水线仍有其不可忽视的优点,如轨迹的使用。
受到基于轨迹的方法的良好性能的启发[210],Wang等人。[214]提出了一种基于轨迹约束的汇集算法,将深层卷积特征聚合成有效的描述符,称之为TDD。这里,轨迹被定义为在时间维度中跟踪像素的路径。这种新的视频表示兼具手工制作功能和深度学习功能的优点,并在2015年成为UCF101和HMDB51数据集的最佳表现之一。同时,Lan et al.[113]将独立子空间分析(ISA)和密集轨迹结合到标准的双流网络中,展示了数据无关和数据驱动两种方法的互补性。赵等人没有将CNN视为固定的特征提取器。[268]提出轨迹卷积算法,借助轨迹沿时间维度学习特征。
秩池化
还有另一种方法来为视频中的时间信息建模,称为秩池(也称为学习到秩)。这一行的开创性工作从VideoDarwin[53]开始,它使用一个排序机器来学习外观随时间的演变,并返回一个排序函数。排序函数应该能够对视频帧进行时间上的排序,因此他们使用这个排序函数的参数作为一个新的视频表示。VideoDarwin[53]不是一种基于深度学习的方法,但具有相当的性能和效率。
Fernando[54]为了将秩池化适应深度学习,引入了可微秩池化层来实现端到端特征学习。按照这个方向,Bilen等人[9]对视频的原始图像像素应用秩池,每个视频产生一个RGB图像,称为动态图像。Fernando[51]的另一项并发工作是通过叠加多层时间编码将级别池扩展为分层级别池。最后,[22]利用子空间表示法对原始排序公式[53]进行了推广,并表明它可以显著地更好地表示动作的动态演化,同时计算成本较低。
压缩视频动作识别
大多数视频动作识别方法使用原始视频(或解码的视频帧)作为输入。然而,使用原始视频存在数据量大、时间冗余度高等缺点。视频压缩方法通常通过重复使用来自另一帧(即,I帧)的内容来存储一帧,并且由于相邻帧相似的事实而仅存储差异(即,P帧和B帧)。这里,I帧是原始RGB视频帧,P帧和B帧包括用于存储差值的运动矢量和残差。在视频压缩领域发展的推动下,研究人员开始采用压缩视频表示作为输入来训练有效的视频模型。
由于运动矢量结构粗糙,可能包含不准确的运动,Zhang等[256]采用了知识蒸馏的方法来帮助基于运动矢量的时间流模拟基于光流的时间流。
然而,他们的方法需要提取和处理每一帧。它们获得了与标准双流网络相当的识别精度,但速度快了27倍。Wu等人。[231]I帧使用重量级CNN,P帧使用轻量级CNN。这需要通过累加将每个P帧的运动矢量和残差引用回I帧。DMC-NET[185]是[231]使用对抗性损失的后续工作。它采用了轻量级的生成器网络来帮助运动向量捕捉精细的运动细节,而不是像[256]中那样进行知识蒸馏。最近的一篇论文SCSsamer[106]也采用了压缩视频表示来对显著片段进行采样,我们将在下一节3.5.4中讨论这一问题。到目前为止,由于增加的复杂性,没有一种压缩方法能够处理B帧。
帧剪辑采样
对于最终预测,大多数前述深度学习方法平等地对待每个视频帧/剪辑。然而,判别性动作只在几个时刻发生,而大多数其他视频内容与标记的动作类别无关或相关性较弱。这种模式有几个缺点。首先,使用大量不相关的视频帧进行训练可能会影响性能。其次,这种均匀抽样在推理过程中效率不高。
部分受到人类如何在整个视频上只瞥几眼就能理解视频的启发[251],提出了许多方法来采样信息最丰富的视频帧/剪辑,以提高性能和使模型在推理过程中更高效。
KVM[277]是最早提出端到端框架的尝试之一,该框架可以同时识别关键卷并进行操作分类。后来,[98]引入了AdaScan,它以一种在线方式预测每个视频帧的重要性分数,他们称之为自适应时间池。这两种方法都取得了较好的性能,但它们仍然采用标准的评价方案,在推理过程中表现不出效率。最近的方法更多地关注效率[41,234,8,106]。AdaFrame[234]遵循[251,98],但使用基于强化学习的方法来搜索更有信息的视频片段。同时,[8]使用了一个教师-学生框架,也就是说,可以使用一个能看到一切的教师来训练一个计算效率很高、只看到很少的学生。实验结果表明,这种高效的学生网络可以将推理时间减少30%,同时将Flop的数量减少约90%,而性能损失可以忽略不计。最近,SCSsamer[106]训练了一个轻量级网络,以基于压缩视频表示对最重要的视频片段进行采样,并在Kinetics400和Sports1M数据集上实现最先进的性能。实验还表明,这种基于显著性的采样不仅效率高,而且比使用所有视频帧具有更高的精度。
Visual tempo 视觉节奏
视觉节奏是一个用来描述动作速度的概念。许多动作类有不同的视觉节奏。在大多数情况下,区分它们的关键是它们的视觉节奏,因为它们在视觉外观上可能有很高的相似性,如行走、慢跑和跑步[248]。有几篇论文探索用于改进时间建模的不同时间速率(TEMPO)[273,147,82,281,45,248]。最初的尝试通常通过以多个速率采样原始视频并构建输入级帧金字塔[273,147,281]来捕获视频节奏。最近,SlowFast[45],正如我们在3.3.4节中讨论的那样,利用视觉节奏的特性来设计一个双向网络,以获得更好的精度和效率折衷。CIDC[121]提出了方向时态建模和局部主干视频时态建模。TPN[248]将TEMPO建模扩展到特征级别,并与以前的方法相比显示出一致的改进。
我们想指出的是,视觉节奏也被广泛用于自监督视频表征学习[6,247,16],因为它可以自然地提供监督信号来训练深度网络。我们将在第5.13节讨论有关自我监督视频表征学习的更多细节。
评估和基准测试
在本节中,我们将比较基准数据集上流行的方法。具体来说,我们首先在4.1节介绍标准评价方案。然后,我们将常用基准分为三类,场景聚焦(UCF101, HMDB51和Kinetics400在第4.2节),运动聚焦(sth V1和V2在第4.3节)和多标签(Charades在第4.4节)。最后,我们在4.5节中对目前流行的识别方法在识别精度和效率方面进行了公平的比较。
评估方案
在模型训练过程中,我们通常随机选取一个视频帧/片段,形成小批量样本。然而,对于评估,我们需要一个标准化的管道来执行公平的比较。
对于2D CNN,一种广泛采用的评估方案是从紧随[187,217]之后的每个视频中均匀采样25帧。对于每一帧,我们通过裁剪4个角和1个中心,水平翻转它们,并在样本的所有裁剪上平均预测分数(在Softmax操作之前),执行十裁剪数据增强,即,这意味着我们使用每个视频250帧来进行推断。
对于3DCNN,一种被广泛采用的评估方案称为30视图策略,即从跟随[219]的每个视频中均匀采样10个片段。对于每个视频片段,我们执行三个裁剪数据增强。具体地说,我们将较短的空间边缩放到256像素,并采用256×256的三个裁剪来覆盖空间维度并对预测得分进行平均。
然而,评估方案并不是固定的。它们正在不断发展和适应新的网络架构和不同的数据集。例如,TSM[128]对于小型数据集[190,109],每个视频只使用两个片段,尽管是2D CNN,但每个片段都进行三种作物数据的增强。我们将提及任何偏离标准评估管道的情况。
在评价指标方面,我们报告了单标签动作识别的准确性,以及多标签动作识别的平均精度。
Scene-focused数据集
在这里,我们比较了聚焦场景的数据集:UCF101、HMDB51和Kinetics400的最新技术。之所以称其为场景聚焦,是因为这些数据集中的大多数动作视频都很短,仅通过静态场景出现即可识别,如图4所示。
按照时间顺序,我们首先在表2的顶部展示了使用深度学习和双流网络的早期尝试的结果。我们做了一些观察。首先,在没有运动/时间建模的情况下,DeepVideo[99]的性能低于所有其他方法。其次,它有助于将知识从传统的方法(非cnn为基础)转移到深度学习。例如,TDD[214]使用轨迹池提取运动感知CNN特征。TLE[36]将传统视频动作识别流水线中的全局特征编码嵌入到深度网络中。

然后,我们在表2的中间比较了基于3D CNN的方法。尽管在大量视频语料库上进行训练,但C3D[202]的性能不如并发工作[187,214,217],这可能是由于3D核的优化困难。受此启发,几篇论文-I3D[14]、P3D[169]、R2+1D[204]和S3D[239]将3D卷积滤波器分解为2D空间核和1D时间核以简化训练。此外,I3D引入了膨胀策略,通过从训练有素的2D网络中引导3D模型权重来避免从头开始训练。通过使用这些技术,它们实现了与最好的两流网络方法[36]相当的性能,而不需要光流。此外,通过使用更多的训练样本[203]、附加路径[45]或架构搜索[44],最近的3D模型获得了更高的精度。
最后,我们在表2的底部给出了最新的有效模型。我们可以看到,这些方法能够获得比两流网络(顶部)更高的识别精度,而性能与3D CNN(中间)相当。由于它们是二维CNN,不使用光流,因此这些方法在训练和推理方面都是有效的。其中大多数是实时方法,有些可以进行在线视频动作识别[128]。我们认为,由于效率的需要,2D CNN+时间建模是一个很有前途的发展方向。在这里,时间建模可以是基于注意力的、基于流的或基于3D内核的。
Motion-focused数据集
在本节中,我们将比较200亿某物(某物)数据集的最新技术。我们报告了V1和V2的最高精度。SthSth数据集中于人类对日常对象执行基本操作。与以场景为中心的数据集不同,sth数据集中的背景场景对最终动作类预测的贡献较小。此外,还有“从左向右推”、“从右向左推”等类,这些类都需要较强的运动推理。
通过比较表3中之前的工作,我们观察到使用更长的输入(例如,16帧)通常更好。此外,专注于时间建模的方法[128,122,92]比堆叠的3D核[14]工作得更好。例如,TSM[128]、TEA[122]和MSNet[110]在2D ResNet主干中插入了显式的时间推理模块,并获得了最先进的结果。这意味着Sth-Sth数据集需要很强的时间运动推理和空间语义信息。

多标签数据集
在本节中,我们首先比较了Charades数据集[186]的最新研究方法,然后列出了一些在Charades中使用组装模型或附加对象信息的最新研究成果。
比较表4中之前的工作,我们得出以下观察结果。首先,3D模型[229,45]的性能一般优于2D模型[186,231]和含有光流输入的2D模型。这表明时空推理对于理解长期复杂的并发行为至关重要。其次,较长的输入有助于识别[229],可能是因为有些动作需要长时特征才能识别。第三,在更大的数据集上预先训练的具有强大骨干的模型通常具有更好的性能[45]。这是因为Charades是一个中等规模的数据集,不包含足够的多样性来训练深度模型。
最近,研究人员通过组装模型[177]或提供额外的人-物交互信息[90],探索了复杂并发动作识别的替代方向。这些论文的表现远远超过了之前的文献,这些文献只对字谜游戏的单一模型进行了微调。研究表明,探索时空人-物交互并找到避免过度匹配的方法是并行动作理解的关键。

速度比较
要在实际应用程序中部署模型,我们通常需要知道它是否满足速度要求,然后才能继续。在本节中,我们根据(1)参数数量,(2)FLOPS,(3)延迟和(4)帧/秒来评估上面提到的方法来执行一个全面的比较。
我们在表5中给出了结果。在这里,我们使用GluonCV视频动作识别模型动物园中的模型,因为所有这些模型都是使用相同的数据、相同的数据增强策略和相同的30视角评估方案进行训练的,因此进行了公平的比较。所有计时都是在一台特斯拉V100 GPU上完成的,有105次重复运行,而前5次运行因预热而被忽略。我们总是使用批次大小为1。在模型输入方面,我们使用原稿中建议的设置。

正如我们在表5中看到的,如果我们比较延迟,2D模型比所有其他3D变体要快得多。这可能就是为什么大多数现实世界的视频应用程序仍然采用帧方式的方法。其次,如[170,259]中所述,Flops与实际推理时间(即延迟)没有很强的相关性。第三,如果比较性能,大多数3D模型给出了大约75%的相似准确率,但使用更大的数据集进行预训练可以显著提高性能。这表明了训练数据的重要性,并在一定程度上表明,自我监督的预训练可能是进一步改进现有方法的一种有前途的方式。
讨论与未来工作
自2014年以来,我们已经调查了超过200种基于深度学习的视频动作识别方法。尽管基准数据集的性能趋于平稳,但在这一任务中仍有许多值得探索的积极和有前途的方向。
分析和见解 Analysis and insights
越来越多的改进视频动作识别的方法被开发出来,同时也有一些论文对这些方法进行了总结和分析。Huang等[82]明确分析了时间信息对视频理解的影响。他们试图回答这个问题“视频中的动作对识别动作有多重要”。Feichtenhofer等人[48,49]提供了一个令人惊叹的可视化的双流模型已经学习了什么,以便理解这些深度表征是如何工作的,以及它们捕获了什么。Li等人[124]引入了数据集表示偏差的概念,发现当前的数据集偏向于静态表示。
在这种有偏差的数据集上进行实验可能会导致错误的结论,这确实是限制视频动作识别发展的一大问题。最近,Piergiovanni et al.引入了Avid[165]数据集,通过从不同人群收集数据来处理数据偏差。这些论文提供了很好的见解,帮助其他研究人员了解挑战、开放问题以及下一个突破可能存在的地方。
数据增强
在图像识别领域已经提出了许多数据增强方法,如MixUp[258],CutMix[31],CutMix[254],AutoAugment[27],FastAutoAug[126]等。然而,视频动作识别仍然采用2015年[217,188]之前引入的基本数据增强技术,包括随机大小调整、随机裁剪和随机水平翻转。最近,SimCLR[17]等论文表明,颜色抖动和随机旋转极大地帮助了表征学习。因此,研究使用不同的数据增强技术进行视频动作识别是特别有用的。这可能会更改所有现有方法的数据预处理管道
视频域适应
近年来,领域自适应(DA)被广泛研究以解决领域迁移问题。尽管在标准数据集上的准确率越来越高,但目前的视频模型跨数据集或领域的泛化能力还很少被探索。
关于视频领域的自适应已有较早的研究[193,241,89,159]。然而,这些文献都是针对小规模的视频数据挖掘,只有少数重叠的类别,可能不能反映实际的领域差异,可能导致有偏性的结论。Chen等人[15]引入了两个更大尺度的数据集来研究视频数据同化,发现对齐时间动力学特别有用。Pan等[152]采用共同注意的方法来解决时间偏差问题。最近,Munro等人[145]探索了一种用于细粒度视频动作识别的多模态自我监督方法,并展示了多模态学习在视频DA中的有效性。Shuffle和Attend[95]认为,将所有采样片段的特征对齐会导致次优解,因为所有片段都不包含相关语义。因此,他们建议使用一种注意机制,将注意力更多地集中在信息片段上,而丢弃非信息片段。综上所述,视频数据处理是一个很有前途的研究方向,特别是对于计算资源较少的研究人员。
神经结构搜索
近年来,神经结构研究引起了人们的极大兴趣,是一个很有前途的研究方向。然而,考虑到其对计算资源的贪婪需求,目前在这方面发表的论文很少[156,163,161,178]。TVN家族[161],联合优化参数和运行时,可以实现与人类设计的当代模型竞争的准确性,并运行得更快(在CPU上37到100毫秒,在GPU上10毫秒每秒钟的视频剪辑)。AssembleNet[178]和AssembleNet++[177]提供了一种通用的方法来学习跨输入模式的特征表示之间的连接性,并且在猜谜游戏和其他基准测试中表现出令人惊讶的好表现。AttentionNAS[222]提出了一种时空注意单元搜索的解决方案。发现的细胞可以插入任何网络,以改善时空特征。所有之前的论文都显示了它们在视频理解方面的潜力。
近年来,在图像识别领域提出了一些有效的架构搜索方法,如DARTS [130], Proxyless NAS [11], ENAS [160], oneshot NAS[7]等。将高效的2D cnn和高效的搜索算法结合起来以合理的成本执行视频NAS将是一件有趣的事情。
高效模型开发
尽管基于深度学习的视频理解方法具有较高的精确度,但在实际应用中很难将其用于视频理解问题。存在几个主要挑战:(1)大多数方法是在离线环境下开发的,这意味着输入的是短视频片段,而不是在线环境下的视频流;(2)大多数方法不能满足实时要求;(3)3D卷积或其他非标准操作符在非GPU设备(如边缘设备)上不兼容。
因此,发展基于2D卷积的高效网络体系结构是一个很有前途的方向。图像分类领域中提出的方法可以很容易地适用于视频动作识别,例如模型压缩、模型量化、模型剪枝、分布式训练[68,127]、移动网络[80,265]、混合精度训练等。然而,在线设置需要更多的努力,因为大多数动作识别应用的输入是视频流,例如监控监控。我们可能需要一个新的、更全面的数据集来对在线视频动作识别方法进行基准测试。最后,使用压缩视频可能是可取的,因为大多数视频已经被压缩,并且我们可以免费访问运动信息。
新数据集
对于机器学习来说,数据比模型开发更重要,至少是同样重要。对于视频动作识别,大多数数据集偏向于空间表示[124],即大多数动作可以通过视频内的单帧来识别,而不考虑时间运动。因此,在长期时间建模方面需要一个新的数据集来推进视频理解。此外,目前大多数数据集都是从YouTube上收集的。由于版权/隐私问题,数据集管理器通常只发布YouTube id或视频链接供用户下载,而不是实际的视频。第一个问题是,在某些地区,下载大规模数据集的速度可能很慢。特别是,YouTube最近开始禁止从单一IP进行大规模下载。因此,许多研究人员甚至可能没有数据集就开始在这个领域工作。第二个问题是,由于地域限制和隐私问题,一些视频无法访问。例如,原来的kinetis400数据集有超过300K的视频,但目前我们只能抓取280K左右的视频。我们平均每年损失5%的视频。在对不同的方法进行训练和评估时,不可能对它们进行公平的比较。
视频对抗攻击
对抗性例子已经在图像模型中得到了很好的研究。[199]首先表明,通过在原始图像上插入少量噪声来计算的对抗样本可能会导致错误的预测。然而,在攻击视频模型方面所做的工作有限。
这个任务通常考虑两个设置,白盒攻击(86,119,66,21)的对手总能完整的访问模型包括给定输入准确的梯度,或一个黑盒(93、245、226),模型的结构和参数的封锁,这样攻击者只能访问(输入,输出)对通过查询。最近的研究ME-Sampler[260]直接利用运动信息生成对抗视频,并显示使用更少的查询成功攻击了许多视频分类模型。综上所述,这个方向很有用,因为很多公司都提供了视频分类、异常检测、样本检测、人脸检测等服务的API。此外,本主题还与DeepFake视频检测相关。因此,研究攻击和防御方法对于确保这些视频服务的安全至关重要。
零样本动作识别
零样本学习(ZSL)在图像理解领域已经成为一种趋势,并已被应用于视频动作识别。它的目标是将学习到的知识转移到以前未见过的类别中。由于(1)昂贵的数据来源和注释以及(2)可能的人类动作集合是巨大的,零射击动作识别对于现实世界的应用是非常有用的任务。
在这个方向有许多早期的尝试[242,88,243,137,168,57]。它们大多遵循一个标准的框架,即首先使用预先训练好的网络从视频中提取视觉特征,然后训练一个联合模型,将视觉嵌入映射到语义嵌入空间。通过这种方式,可以将模型应用到新类中,方法是找到嵌入模型输出最近的测试类。最近的一项工作URL[279]提出学习跨数据集泛化的通用表示。在URL[279]之后,[10]提出了第一个端到端ZSL动作识别模型。他们还建立了新的ZSL训练和评估方案,为进一步推进该领域提供了深入的分析。受NLP域前训练和零样本的成功启发,我们认为ZSL动作识别是一个很有前途的研究课题。
弱监督视频动作识别
构建高质量的视频动作识别数据集[190,100]通常需要多个繁琐的步骤:1)首先从互联网上获取大量原始视频;2)删除与数据集中类别无关的视频;3)手动裁剪有兴趣动作的视频片段;4)细化分类标签。弱监督动作识别探索了如何降低管理训练数据的成本。
第一个研究方向[19,60,58]旨在降低采购视频的成本和准确的分类标签。他们设计训练方法,使用训练数据,比如与行动相关的图像或部分注释的视频,这些数据来自互联网等公开来源。因此,这种范式也被称为webly-supervised learning[19,58]。最近关于全监督学习的研究[60,64,38]也遵循了这一范式,但其特点是通过提取模型自身的推理结果来引导未标记视频。
第二个方向是去除注释中最耗时的部分——修剪。UntrimmedNet[216]提出了一种对只有分类标签的未修剪视频学习动作识别模型的方法[149,172]。这一任务也与弱监督的时间动作定位有关,其目的是自动生成动作的时间跨度。几篇论文建议同时[155]或迭代[184]学习这两个任务的模型。
细粒度视频动作识别
流行的动作识别数据集,如UCF101[190]或Kinetics400[100],大多包含发生在各种场景中的动作。然而,在这些数据集上学习的模型可能会过度拟合与行为无关的上下文信息[224,227,24]。已经有几个数据集被用来研究细粒度动作识别问题,这些数据集可以检验模型对特定动作信息建模的能力。这些数据集包括人类活动中的细粒度行为,如烹饪[28,108,174]、工作[103]和体育[181,124]。例如,FineGym[181]是最近的一个大型数据集,在体操视频中注释了不同的动作和子动作。
以自我为中心的行为识别 Egocentric action recognition
近年来,随着可穿戴相机设备的出现,大规模自我中心行为识别[29,28]引起了越来越多的关注。自我中心行为识别需要对手部运动和复杂环境中相互作用的物体有很好的理解。一些论文利用对象检测特征提供精细的对象上下文来改进以自我为中心的视频识别[136,223,229,180]。另一些则结合时空注意[192]或凝视注释[131]来定位相互作用的物体,以便于动作识别。与第三人称动作识别类似,多模态输入(如光流和音频)已被证明在自我中心动作识别中是有效的[101]。
多模态
近年来,多模态视频理解越来越受到关注[55,3,129,167,154,2,105]。多模态视频理解有两大类。第一组方法使用多模态,如场景、物体、运动和音频来丰富视频表征。在第二组中,目标是设计一个模型,利用模态信息作为训练前模型的监督信号[195,138,249,62,2]。
由于视频中语义的复杂性,学习一个鲁棒和全面的视频表示是极具挑战性的。视频数据通常包括不同形式的变化,包括外观、运动、音频、文本或场景[55,129,166]。因此,利用这些多模态表示是更有效地理解视频内容的关键步骤。视频的多模态表征可以通过收集场景、对象、音频、运动、外观和文本等多种模态表征来近似。Ngiam等人[148]是早期建议使用多种方法获得更好特征的尝试。他们利用嘴唇和相应的语音视频进行多模态表征学习。Miech等人[139]提出了一种混合嵌入专家模型,将包括运动、外观、音频和面部特征在内的多种模式结合起来,并学习这些模式和文本之间的共享嵌入空间。Roig等人[175]将动作、场景、物体和声学事件特征等多种形态结合在一个金字塔结构中进行动作识别。他们表明,添加每种形态可以提高最终动作识别的准确性。CE[129]和MMT[55]遵循与[139]相似的研究路线,其目标是结合多种模态来获得视频的综合表征,用于联合视频-文本表征学习。Piergiovanni等人[166]利用文本数据和视频数据来学习联合嵌入空间。利用学习到的关节嵌入空间,该方法能够进行零射击动作识别。由于强大的语义提取模型的可用性,以及变形金刚在视觉和语言任务上的成功,这一研究方向很有前途。视频数据通常包括不同形式的变化,包括外观、运动、音频、文本或场景[55、129、166]。因此,利用这些多模式表示是更有效地理解视频内容的关键一步。
大多数视频包含多种形式,如音频或文本/字幕。这些模态是监督学习视频表示的重要来源[3,144,154,2,162]。Korbar等人[105]将音频和视频之间的自然同步作为监督信号纳入他们的对比学习目标,实现自我监督表示学习。在多模态自监督表示学习中,数据集起着重要的作用。VideoBERT[195]从YouTube上收集了31万份烹饪视频。但是,此数据集不是公开的。与BERT类似,VideoBERT使用了“蒙面语言模型”的训练目标,并将视觉表征量化为“视觉词”。Miech等人[140]在2019年引入了HowTo100M数据集。这个数据集包括1.22M个视频的136M个剪辑及其相应的文本。他们从YouTube上收集数据集,目的是获得教学视频(如何执行一项活动)。总的来说,它涵盖了23.6K的教学任务。MIL-NCE[138]使用该数据集进行自我监督的跨模态表示学习。通过在对比学习目标中考虑多个正对,他们解决了视觉失调叙述的问题。ActBERT[275]利用HowTo100M数据集以自我监督的方式对模型进行预训练。他们将视觉、动作、文本和物体特征结合起来进行跨模态表征学习。最近,AVLnet[176]和MMV[2]考虑了视觉、音频和语言三种模式用于自监督表征学习。由于对比学习在许多视觉和语言任务上的成功,以及在YouTube、Instagram或Flickr等平台上获得了大量未标记的多模态视频数据,这一研究方向也越来越受到关注。表6的顶部部分比较了多模态自我监督表示学习方法。我们将在下一节讨论更多关于视频表示学习的工作。

自监督视频表示学习
自监督学习最近引起了更多的关注,因为它能够利用大量的未标记数据,通过设计一个代理任务来从数据本身获得免费的监督信号。它最早出现在图像表征学习中。在图像方面,第一批论文旨在设计代理任务,以完成丢失的信息,如图像着色[262]和图像重新排序[153,61,263]。第二批论文以实例歧视[235]为借口,以对比损失[235,151]为借口进行监督。他们通过对没有类别标签的对象实例的视觉相似性建模来学习视觉表示[235,75,201,18,17]。
自监督学习也适用于视频。与图像相比,视频有另一个轴,时间维度,我们可以用它来制作借口任务。用于此目的的信息完成任务包括预测混洗帧[141、52]和视频剪辑[240]的正确顺序。Jing et al.[94]仅通过预测旋转视频剪辑的旋转角度来关注空间维度。结合时间和空间信息,已经引入了几个任务来解决时空立方体难题、预测未来帧[208]、预测长期运动[134]以及预测运动和外观统计[211]。RSPNet[16]和视觉节奏[247]利用视频剪辑之间的相对速度作为监控信号。
增加的时间轴还可以在设计实例区分借口时提供灵活性[67,167]。受三维卷积与空间和时间可分离卷积解耦的启发[239],Zhang等人[266]提出将视频表示学习解耦为两个子任务:空间对比和时间对比。最近,Han等人[72]提出了用于自监督视频表示学习的记忆增强密集预测编码。他们将每个视频分成几个块,并通过结合内存中的压缩表示来预测未来块的嵌入。
视频中的时间连续性激发研究人员围绕通信设计其他借口任务。Wanget等人[221]提出通过执行循环一致性跟踪来学习表示。具体地说,他们在连续的视频帧中前后跟踪同一目标,并利用起点和终点之间的不一致性作为损失函数。TCC[39]是一篇并发论文。[39]没有跟踪局部对象,而是使用周期一致性来执行帧级时间对齐作为监督信号。【120】是【221】的后续工作,利用了视频帧之间的对象级和像素级对应。最近,在[87]中,长程时间对应被建模为随机游走图,以帮助学习视频表示。
我们在表6的底部部分比较了视频自监督表示学习方法。可以观察到一个明显的趋势,最近的论文取得了比监督前训练更好的线性评价准确性和微调精度。这表明,自我监督学习可能是学习更好的视频表示的一个有前途的方向。
总结
在这次调查中,我们对200多种基于深度学习的视频动作识别的最新方法进行了全面的回顾。尽管这不是一份详尽的清单,但我们希望这份调查对那些寻求进入该领域的人来说是一份简单易懂的教程,对于那些寻求找到新的研究方向的人来说是一次鼓舞人心的讨论。