动作识别困难的原因:
1 巨大的计算成本:
一个简单的卷积2D网络用于101个类的分类只有~5M个参数,而相同的结构在膨胀为3D结构时会产生~33M个参数。在UCF101上训练3DConvNet需要3到4天,而在Sports-1M上训练3DConvNet则需要2个月,这使得广泛的架构搜索变得困难,而且可能过拟合
2 捕获长上下文
动作识别涉及跨帧捕获时空上下文。另外,所捕获的空间信息必须补偿照相机的运动。即使有强大的空间目标检测也不够,因为运动信息也携带更精细的细节。有一个局部和全局的背景w.r.t.运动信息,需要捕捉以进行稳健的预测。例如,考虑图2所示的视频表示。一个强大的图像分类器可以识别两个视频中的人体、水体,但是时间周期性动作的性质区分了自由泳和蛙泳
3 设计分类体系结构
设计能够捕获时空信息的体系结构有多种选择,这些选择非常重要,而且评估成本很高。例如,一些可能的策略可以是:
一个用于捕获时空信息的网络 vs 分成空间和时间两个单独的网络
跨多个片段融合预测
端到端训练 vs 先特征提取再分类
4 无通用基准
最受欢迎的基准数据集是UCF101和Sports1M,它们已经存在很长一段时间了。在Sports1M上寻找合理的架构可能非常昂贵。对于UCF101,虽然帧的数目与ImageNet相当,但是视频之间的高空间相关性使得训练中的实际多样性要小得多。此外,鉴于两个数据集的主题(sports)相似,将基准架构推广到其他任务仍然是一个问题。最近通过引入Kinetics数据集解决了这个问题
这里必须指出的是,从三维医学图像中检测异常并不涉及这里提到的所有挑战。医学图像动作识别的主要区别如下:
1 在医学成像的情况下,时间背景可能没有动作识别那么重要。例如,在头颅CT扫描中发现出血可能涉及的跨脑片时间范围要小得多。颅内出血只能从单层切片上检测出来。与此相反,从胸部CT扫描中发现肺结节需要捕捉时间背景,因为结节以及支气管和血管在二维扫描中都像圆形物体。只有当三维环境被捕获时,结节才可以被视为球形物体,而不是像血管这样的圆柱形物体
2 在动作识别方面,大多数的研究思路都是以预先训练好的二维CNNs作为起点,以获得更好的收敛性。如果是医学图像,这种预先训练的网络将是不可用的。
在深入学习出现之前,大多数用于动作识别的传统CV算法变体可以分为以下3个主要步骤:
1 描述视频区域的局部高维视觉特征被密集地或稀疏地提取出来。
2 提取的特征被组合成一个固定大小的视频级描述。该步骤的一个流行变体是在视频级别对特征进行编码的视觉词袋(使用分层或k-均值聚类导出)。
3 一个分类器,如支持向量机或RF,被训练在一袋视觉单词上进行最终预测
在这些使用浅层手工特征的算法中,使用密集采样轨迹特征的改进密集轨迹(iDT)是最先进的。同时,2013年,3D卷积被用于动作识别,但没有太大帮助[7]。2014年之后不久,两篇突破性的研究论文被发表,它们构成了我们将在本文中讨论的所有论文的主干。两者的主要区别在于结合时空信息的设计选择。
方法1:单流网络
在这项工作【2014年6月】中,作者-Karpathy等人。-探索使用二维预训练卷积从连续帧融合时间信息的多种方法。
如图3所示,在所有设置中,视频的连续帧被呈现为输入。单帧使用单个架构,在最后阶段将来自所有帧的信息进行融合。后期融合使用两个共享参数的网络,间隔15帧,最后合并预测。早期融合通过卷积超过10帧在第一层进行合并。慢融合包括多个阶段的融合,是早期和晚期融合的平衡。对于最终预测,从整个视频中抽取多个片段,并对其预测分数进行平均以进行最终预测。
尽管进行了大量的实验,但作者发现,与最先进的手工制作的基于特征的算法相比,结果要差得多。失败有多种原因:
1 学习到的时空特征不能捕捉运动特征
2 由于数据集的多样性较低,学习这些详细的特性非常困难
方法2:双流网络
在Simmoyan和Zisserman【2014年6月】的这项开创性工作中,作者以Karpathy等人之前的工作的失败为基础。考虑到深部结构学习运动特征的韧性,作者以叠加光流矢量的形式显式地模拟了深部结构的运动特征。因此,该架构没有单一的空间上下文网络,而是有两个独立的网络-一个用于空间上下文(预先训练),一个用于运动上下文。空间网络的输入是视频的一个帧。作者对时间网络的输入进行了实验,发现连续10帧的双向光流叠加效果最好。分别对两个流进行训练,并用支持向量机进行组合。最后的预测与前面的论文相同,即在采样帧上进行平均。
虽然该方法通过显式捕捉局部时间运动提高了单流方法的性能,但仍存在一些缺点:
1 由于视频级预测是通过对采样片段的平均预测获得的,因此在学习到的特征中仍然缺少长距离的时间信息。
2 由于训练片段是从视频中统一抽取的,因此存在伪标签分配问题。这些片段中的每一个的ground truth被假定为与视频的ground truth相同,但如果动作在整个视频中只是发生了很小的持续时间,则可能不是这样。
3 该方法包括预先计算光流矢量并将其分开存储。另外,这两个训练是分开的,这意味着进行端到端的训练仍然是一条漫长的道路。
以下的论文在某种程度上是上面两篇论文(单流和双流)的进化版:
LRCN
C3D
Conv3D & Attention
TwoStreamFusion
TSN
ActionVlad
HiddenTwoStream
I3D
T3D
LRCN:Long-term Recurrent Convolutional Networks for Visual Recognition and Description
主要贡献:
1 在以前工作的基础上,使用RNN而不是基于流的设计
2 视频编码解码器体系结构的扩展
3 用于行为识别的端到端可训练架构
简介:
在Ng等人[9]之前的工作中。作者们探索了在单独训练的特征图上使用LSTMs的想法,看看它是否能从片段中捕获时间信息。遗憾的是,他们得出结论:卷积特征的时间池化比经过训练的特征映射后的LSTM叠加更有效。在本文中,作者在卷积块(编码器)之后使用LSTM块(译码器),但在整个体系结构中使用端到端的训练。他们还比较了作为输入选择的RGB和光流,发现基于两种输入的预测加权评分是最好的。
算法:
在训练过程中,从视频中抽取16个帧片段。该架构是端到端训练,输入为RGB或16帧片段的光流。每个片段的最终预测是每个时间步预测的平均值。视频级的最终预测是来自每个片段的预测的平均值。
我的评论:
尽管作者提出了端到端的培训框架,但是仍然有一些缺点:
1 错误的标签分配,因为视频已分割成片段
2 无法捕获长久的时间信息
3 使用光流意味着分别计算流特征
瓦罗尔等人。在他们的工作中[10]试图通过使用较低的视频空间分辨率和较长的片段(60帧)来补偿时间范围不足的问题,这导致了明显更好的性能。
Benchmarks (UCF101-split1):
Score | Comment |
---|---|
82.92 | Weighted score of flow and RGB inputs |
71.1 | Score with just RGB |
C3D:Learning Spatiotemporal Features with 3D Convolutional Networks
主要贡献:
1 将三维卷积网络重新用作特征提取器
2 广泛搜索最佳三维卷积核和体系结构
3 用反卷积层解释模型决策
简介:
这项工作是基于arpathy等人的工作。然而,他们没有在帧之间使用二维卷积,而是在视频上使用三维卷积。其想法是在Sports1M上训练这些庞大的网络,然后将它们(或具有不同时间深度的网络集合)用作其他数据集的特征提取器。他们的发现是一个简单的线性分类器,比如支持向量机,在提取特征集合的基础上工作得比现有的算法更好。如果另外使用iDT等手工制作的特性,该模型的性能甚至更好。
这项工作的另一个有趣的部分是使用反卷积层来解释这些决策。他们的发现是,网络在最初的几帧集中于空间外观,并在随后的几帧中跟踪运动。
算法:
在训练过程中,每段视频随机抽取5个2秒的片段,他们的ground truth是整个视频的ground truth。在测试时间内,随机抽取10个片段,对其进行预测,取平均作为最终预测。
我的评论:
长时间建模仍然是一个问题。此外,训练如此庞大的网络在计算上是一个问题——特别是对于医学成像来说,来自自然图像的预训练并没有多大帮助。
注:大约在同一时间,Sun等人[11]引入了因子化3D卷积网络(FSTCN)的概念,在这里,作者探索了将3D卷积分解为空间2D卷积和时间1D卷积的思想。在2d卷积层之后放置的一维卷积被实现为时间和通道维度上的二维卷积。因子化三维卷积(FSTCN)在UCF101上有不错的结果。
Benchmarks (UCF101-split1):
Score | Comment |
---|---|
82.3 | C3D (1 net) + linear SVM |
85.2 | C3D (3 nets) + linear SVM |
90.4 | C3D (3 nets) + iDT + linear SVM |
Conv3D & Attention:Describing Videos by Exploiting Temporal Structure
主要贡献:
1 一种新的捕获局部时空信息的三维CNN-RNN编解码器结构
2 使用CNN-RNN编码器-解码器框架中的注意机制捕获全局上下文
简介:
虽然这项工作与动作识别没有直接关系,但它在视频表现方面是一项里程碑式的工作。本文采用三维CNN+LSTM作为视频描述任务的基本架构。在此基础上,作者使用预先训练的3D CNN来提高结果。
算法:
设置与LRCN中描述的编解码器架构几乎相同,但有两个不同之处:
1 与将特征从3D CNN按原样传递给LSTM不同,片段的3D CNN特征映射与相同帧集的堆叠2D特征映射相连,以丰富每个帧i的表示{v1,v2,…,vn}。注意:所使用的2D和3D CNN是预先训练的,而不是像LRCN那样端到端训练的
2 使用加权平均来组合时间特征,而不是对所有帧的时间向量进行平均。每 的注意权值都是根据LSTM输出来确定的。
我的评论:
这是2015年首次引入视频表示注意机制的里程碑式工作之一。
TwoStreamFusion:Convolutional Two-Stream Network Fusion for Video Action Recognition
主要贡献:
1 通过更好的长时间段损失进行长时间段建模
2 一种新颖的多层融合结构
简介:
在这项工作中,作者使用了两种新方法的基本双流架构,并在不显著增加参数规模的情况下证明了性能的提高。作者探讨了两个主要观点的有效性:
1 空间和时间流(如何和何时)的融合-对于区分梳头和刷牙的任务-空间网可以捕捉视频中的空间依赖性(是头发或牙齿),而时间网可以捕捉视频中每个空间位置的周期运动。因此,将特定面部区域的空间特征匹配到相应区域的时间特征是非常重要的。为了达到同样的效果,网络需要在早期进行融合,以便在相同像素位置的响应被对应地放置,而不是在末端融合(类似于在基本双流架构中)。
2 将跨时间帧的时间网络输出结合起来,以便对长时间依赖性进行建模。
双流架构中的所有东西几乎都是相似的,除了:
1 如下图所示,来自两个流的conv_5层的输出通过卷积和池化进行融合。在最后一层还有另一个融合。最后的融合输出用于时空损失评估。
2 对于时间的融合,时间网络的输出,跨时间叠加,通过卷积和池化融合,用于时间损失
我的评论:
作者建立了双流融合方法的优势,因为它在没有额外参数的情况下提升了性能,优于C3D。
Benchmarks (UCF101-split1):
Score | Comment |
---|---|
92.5 | TwoStreamfusion |
94.2 | TwoStreamfusion + iDT |
TSN:Temporal Segment Networks: Towards Good Practices for Deep Action Recognition
主要贡献:
1 面向长时间段建模的有效解决方案
2 将批量归一化、dropout和预训练确立为好的做法
简介:
在这项工作中,作者改进了双流架构,以产生最先进的结果。与之前的论文有两大不同:
他们建议在视频中稀疏地采样片段,以更好地模拟长时间段信号,而不是在整个视频中随机采样。
为了在视频层面进行最终预测,作者探索了多种策略。最好的策略是:
1 通过对片段平均,分别组合时间和空间流(以及其他输入模式涉及的其他流)的分数
2 使用加权平均法融合最终空间流和时间流分数,并对所有类别应用softmax。
这项工作的另一个重要部分是解决过度拟合(由于数据集规模较小)的问题,并演示如何使用当前流行的技术,如批量归一化、dropout和预先训练来解决这一问题。作者还评估了两种替代光流的新输入模式,即扭曲光流和RGB差分。
算法:
在训练和预测过程中,视频被分成K段,时间相等。此后,从K个片段中随机抽取片段。其余步骤仍然类似于两流体系结构,并进行了如上所述的更改。
我的评论:
这项工作试图解决行动识别的两大挑战-由于小规模数据而导致的过度拟合以及和长时间段建模,结果真的很强。然而,光流和相关输入模式的预计算问题仍然是一个大问题。
Benchmarks (UCF101-split1):
Score | Comment |
---|---|
94.0 | TSN (input RGB + Flow ) |
94.2 | TSN (input RGB + Flow + Warped flow) |
ActionVLAD:ActionVLAD: Learning spatio-temporal aggregation for action classification
主要贡献:
1 特征的可学习视频级聚合
2 基于视频级聚合特征的端到端可训练模型来捕获长期依赖性
简介:
与使用maxpool或avgpool的普通聚合相比,本文作者最显著的贡献是使用了可学习特征聚合(VLAD)。聚合技术类似于视觉词汇袋。有多个学习的锚点(比如c1,…ck)为基础的词汇表,表示k个典型动作(或子动作)相关的时空特征。两流体系结构中的每个流的输出是根据k空间“动作词”特征编码的-每个特征是来自任何给定空间或时间位置的对应锚点的输出的差异。
平均或最大池将点的整个分布表示为单个描述子,对于表示由多个子动作组成的整个视频而言,该描述符可能是次优的。相比之下,所提出的视频聚合通过将描述符空间分割成k个单元并在每个单元内进行池化,来表示具有多个子动作的描述子的整个分布。
算法:
除了ActionVLAD层的使用之外,来自双流架构的所有东西几乎都是相似的。作者在conv层确定最佳策略后,实验了多层放置ActionVLAD层和后期融合。
我的评论:
VLAD作为一种有效的池化方式早就被证明了。在端到端可训练的框架中对其进行扩展,使得该技术在2017年初的大多数动作识别任务中都非常强大和先进。
Benchmarks (UCF101-split1):
Score | Comment |
---|---|
92.7 | ActionVLAD |
93.6 | ActionVLAD + iDT |
HiddenTwoStream:Hidden Two-Stream Convolutional Networks for Action Recognition
主要贡献:
1 利用独立网络实时生成光流输入的新结构
简介:
在双流体系结构中使用光流使得必须在预先计算每个采样帧的光流,从而对存储和速度产生不利影响。本文提出了一种无监督的结构来产生一组帧的光流。
光流可以看作是一个图像重建问题。给定一对相邻的帧I1和I2作为输入,CNN生成一个流场V,然后利用预测的流场V和I2,利用逆逆向映射将I1重建为I1',从而使I1与其重建之间的差异最小化。
算法:
在不影响精度的前提下,探索了多策略、多体系结构来产生最大fps、最小参数的光流。最终的体系结构与两流体系结构相同,其变化如下所述:
1 时间流现在在一般的时间流体系结构之上叠加了光流生成网(MotionNet)。时间流的输入现在是后续帧,而不是经过预处理的光流;
2 运动网的无监督训练还有一个额外的多层次损失
作者还演示了使用基于TSN的融合来代替传统的双流方法架构在性能上的改进。
我的评论:
本文的主要贡献是提高预测速度和相关成本。通过流的自动生成,作者减轻了对较慢的传统方法生成光流的依赖。
Benchmarks (UCF101-split1):
Score | Comment |
---|---|
89.8 | Hidden Two Stream |
92.5 | Hidden Two Stream + TSN |
I3D:Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset
主要贡献:
1 利用预训练将基于3D的模型组合到双流体系结构中
2 未来的基准数据集Kinetics和改进行为数据集多样性
这篇论文从C3D离开的地方起飞。在双流架构中,作者使用两个不同的3D网络来代替单一的3D网络。此外,为了利用预先训练的二维模型,作者在三维中重复使用了二维预先训练的权重。现在,空间流输入由时间维度上堆叠的帧组成,而不是基本的双流架构中的单帧。
算法:
与基本的双流架构相同,但每个流都有3D网络
我的评论:
本文的主要贡献是证明了使用预先训练的2D conv网的好处。论文中开放的Kinetics数据集是本文的另一个重要贡献。
Benchmarks (UCF101-split1):
Score | Comment |
---|---|
93.4 | Two Stream I3D |
98.0 | Imagenet + Kinetics pre-training |
T3D:Temporal 3D ConvNets: New Architecture and Transfer Learning for Video
主要贡献:
1 跨深度组合时间信息的体系结构
2 一种新的训练结构与技术,用于监控二维预训练网络到三维网络的迁移学习
简介:
作者扩展了在I3D上所做的工作,但建议使用基于单流3D DenseNet的体系结构,在密集块之后叠加多深度时间池层(时间转换层),以捕获不同的时间深度。多深度池是通过与不同时间大小的核池来实现的。
除此之外,作者还设计了一种新的监控预训练2D卷积网络和T3D之间迁移学习的技术,2D预训练网络和T3D都是来自视频的帧和片段,其中片段和视频可以来自同一视频,也可以不来自同一视频。在此基础上进行0/1预测试验,并将预测误差通过T3D网络进行反向传播,有效地传递知识。
该体系结构基本上是对DenseNet[12]的3D修改,增加了可变时间池化。
我的评论:
虽然这些结果在I3D的基础上没有得到改善,但这主要是由于与I3D相比,模型的规模小得多,本文最新的贡献是有监督的迁移学习技术。
Benchmarks (UCF101-split1):
Score | Comment |
---|---|
90.3 | T3D |
91.7 | T3D + Transfer |
93.2 | T3D + TSN |
参考博文:
Deep Learning for Videos: A 2018 Guide to Action Recognition
参考文献: