图像和视频相关领域对比
动作识别算法分分类
大致分为
- 基于2D卷积的动作识别算法
- 基于3D卷积的动作识别算法
动作识别
目标是识别视频中出现的动作。通常是视频中人的动作。视频可以看做是由一组图像帧按照时间顺序排列而成的数据结构,比图像多了一个维度。动作识别不仅要分析出视频中每帧图像的内容,还需要从视频帧之间时序信息挖掘线索。
时序动作定位
也称时序动作检测,动作识别可以看作一个纯分类的任务,其中要识别的是已经经过剪辑的(每个视频包含一段明确的动作,视频时长较短,且有唯一确定的动作类别)。而时序动作定位领域,视频通常是没有经过剪辑的,视频时长较长,动作通常也是发生在一小段时间内,视频可能包含多个动作,也可能不包含动作,即为背景类。时序动作定位不仅要预测视频中包含了什么动作,还需要预测动作的起始和终止时刻。
时序动作定位常用数据集
- THUMOS-14()训练集是UCF101
- ActivityNet-1.3
经典网络
图像分类是视频理解的基础,动作识别算法会以图像分类网络作为基础骨架,另视频是由一组图像帧按照时间顺序排列的数据结构,所以RNN对时序信息有很强的建模能力,(变种LSTM,GRU)
什么是光流
- 视频中的任务会随着时间推移会产生运动。光流通过计算视频帧沿水平、竖直和时间反向的梯度,来推断出视频中像素的移动方向和速度快慢。
- 框中区域对应的光流:箭头代表像素移动的方向,箭头的长短代表像素移动的快慢。
令I(x,y,t)表示第t帧,(x,y)位置的像素值。假设该像素对应的物体在第t+Δt帧从(x,y)坐标移动到(x+Δx,y+Δy)坐标。
基于 2D 卷积的动作识别
视频是由一系列图像帧(Frame)组成的,图像分类模型经过这些年的发展已经相对成熟。如何进行视频分类呢?一种直观的想法是将图像分类的模型直接运用到视频分类中。如下图所示,一个简单的想法是先把视频各帧提取出来,每帧图像各自前馈(Feedforward)一个图像分类模型,不同帧的图像分类模型之间相互共享参数。得到每帧图像的特征之后,对各帧图像特征进行汇合(Pooling),例如采用平均汇合,得到固定维度的视频特征,最后经过一个全连接层和 Softmax 激活函数进行分类以得到视频的类别预测。
- 最直观的想法是先把视频拆成一帧帧的图像,每帧图像各自用一个图像分类模型得到帧级别的特征,然后用某种汇合方法从帧级别特征得到视频级别特征,最后进行分类预测,
- 其中的汇合方法包括: 平均汇合、NetVLAD、NeXtVLAD、NetFV、RNN、3D 卷积等。
- 另外,我们可以借助一些传统算法来补充时序关系,例如,双流法利用光流显式地计算帧之间的运动关系,TDD 利用 iDT 计算的轨迹进行汇合等。基于 2D 卷积的动作识别方法的一个优点是可以快速吸收图像分类领域的最新成果,通过改变骨架网络,新的图像分类模型可以十分方便地迁移到基于 2D 卷积的动作识别方法中。
基于 3D 卷积的动作识别
-
另一方面,图像是三维的,而视频比图像多了一维,是四维。图像使用的是 2D 卷积,因此视频使用的是 3D 卷积。我们可以设计对应的 3D 卷积神经网络,就像在图像分类中利用 2D 卷积可以从图像中学习到复杂的图像表示一样,利用 3D 卷积可以从视频片段中同时学习图像特征和相邻帧之间复杂的时序特征,最后利用学到的高层级特征进行分类。
-
相比于 2D 卷积,3D 卷积可以学习到视频帧之间的时序关系。我们可以将 2D 卷积神经网络扩展为对应的 3D 卷积神经网络,如 C3D、Res3D/3D ResNet、LTC、I3D 等。由于 3D 卷积神经网络的参数量和计算量比 2D 卷积神经网络大了很多,不少研究工作专注于对 3D 卷积进行低秩近似,如 FSTCN、P3D、R(2+1)D、S3D 等。
-
TSM 对 2D 卷积进行改造以近似 3D 卷积的效果。3D 卷积 + RNN、ARTNet、Non-Local、SlowFast 等从不同角度学习视频帧之间的时序关系。此外,多网格训练和 X3D 等对 3D 卷积神经网络的超参数进行调整,使网络更加精简和高效。