admin管理员组

文章数量:1530050

A Comprehensive Study of Deep Video Action Recognition

论文链接: https://arxiv/abs/2012.06567

一、 Problem Statement

来自于李沐团队关于Action Recognition的综述。

二、 Direction

介绍了video action recognition的挑战:

  • modeling long range temporal information in videos
  • high computation costs
  • incomparable results due to datasets and evaluation protocol variances

介绍了video action recognition的模型:

  • two-stream networks
  • 3D convolutional kernels
  • compute-efficient models

最后阐述了以下video action revognition的方向

三、 Method

human action understanding 涉及了识别,定位,和预测人类行为。

先来看一下代表性的工作表:

主要分为三个趋势:

  1. Two-stream networks: 也就是多添加一个路径,通过optical flow stream学习视频中的temporal information。代表作有 TDD,LRCN,Fusion,TSN。
  2. 使用3D卷积核获取video temporal information。代表作有 I3D,R3D, S3D,Non-local,SlowFast。
  3. 关注于compute-efficiency的方法,代表工作包括Hidden TSN,TSM,X3D,TVN。

1. 数据集

数据集的建立通常有下面四个步骤:

  1. 定义好动作列表,通过结合之前的数据集的标签和添加新的类别。
  2. 获取视频。
  3. 进行时间序列的标注,表明动作开始的位置和结束的位置。
  4. 清洗数据

主流数据集如下:

作者举例说明了数据集的差异

  • 第一种UCF101和Kinetics400,这些动作有些时候可以单独通过一个背景或者场景就能判定。因此在这种情况下,视频动作识别可能成为一个对象/场景分类问题,而不需要推理运动/时间信息。

  • 第二种是Something-Something的数据集。这个数据集关注人机交互,因此它更精细化,并且需要强大的时间建模。 举个例子,图中如果只看到第一帧,那我们不可能知道它是丢下东西还是拿起东西。

  • 第三种是Moments in time数据集。这个数据集和大多是的视频行为识别数据集不一样。它有大量的类间和类内的区别,就是不同抽象级别的动态事件。 例如,动作攀岩可以在不同的环境(楼梯或树)中有不同的参与者(人或动物)。

2. 动作识别的挑战

作者两个方面阐述了动作识别的挑战:

  1. 数据集方向

    • 首先,定义用于训练动作识别模型的标签空间非常重要。这是因为人类行为通常是复合概念,而这些概念的层次结构没有很好的定义。
    • 其次,对视频进行动作识别的标注是耗费人力和模糊定义的。需要看大量的视频帧,并且很难确定精确的开始位置和结束位置。
    • 第三个就是,一些主流的benchmark datasets只发布供用户下载的视频链接,而不是实际的视频,这会导致根据不同数据评估方法的情况。 因此不可能在方法之间进行公平的比较并获得insights。
  2. 模型方向

    • 首先,视频捕捉人类的动作有类间和类内的区别。人们会以不同的速度在多个视角下,做同样的动作。除此之外,有些动作具有相似的动作模式,很难区分。
    • 其次,识别人类动作需要同时理解短期动作特定运动信息和长期时间信息。
    • 最后,训练和推理的计算成本都很高,阻碍了动作识别模型的开发和部署。

3. 动作识别的研究

(1) 从hand-crafted特征到CNNs。

2015年之前,IDT是主流的方法。但是hand-crafted特征需要很高的计算能力和很难取应用。因此随着CNN的发展,逐渐成为了动作识别领域的主流方法。从DeepVideo出发,它在每个视频帧上单独使用一个2D CNN模型,并研究几种时间连接模式,以学习用于视频动作识别的时空特征,如后期融合、早期融合和慢速融合。而且DeepVideo提出了一个观点:输入单个视频帧进入网络,和输入一组视频帧数据进入网络,表现一样。 这一观察结果可能表明,学习时空特征并不能很好地捕捉运动。

(2) Two-stream networks

这个方法主要是找到一个方法去描述帧与帧之间的时间关系。 Optical flow。 这是一个有效描述目标移动的方法。精确地说,它是由观察者和场景之间的相对运动引起的视觉场景中对象、曲面和边的明显运动模式。 因此这个方向,延伸出了一个框架: Two-stream networks,包括空间流和时间流,执行物体识别和运动识别。 基于此,衍生出了下列方法提升性能:

  • 使用更深的网络结构

    • 更深的网络可以获得更好的精度。
  • Two-stream 融合

    • 分为late fusion 和 early fusion。研究表明,在模型学习期间,两个网络之间的早期交互可以使两个流都受益,这被称为早期融合。早期融合对两种流都有利于了解更丰富的功能并提高性能。
    • 早期融合可以考虑how to perform spatial fusion (operators such as sum, max, bilinear, convolution和concatenation),where to fuse the network,和how to perform temporal fusion (使用2Dh或者3D卷积融合)
  • 使用RNN

    • 因为视频是一个时间序列,因此可以使用RNN来进行动作识别,特别是使用LSTM。但这个网络使用了不同的two-stream 网络或者backbones。因此,使用RNN的方法之间的差异尚不清楚。
  • Segment-based 方法

    • Optical flow能够捕捉帧与帧之间的short-term motion information。但是不能够捕捉long-range temporal information。
    • 主要工作是TSN。TSN 首先把整个视频分割成多个分段,其中分段是沿时间维度均匀分布的。然后TSN在每个分段中,随机选择一个视频帧,然后把他们输入到网络。这里的网络是对来自所有分段中的输入帧共享权重的。紧接着会使用一个segmental consensus操作,如 (average pooling, max pooling和bilinear encoding) 进行融合。以这样的方式,TSN可以捕获long-range temporal information,因为模型可以看到整个视频的内容。除此之外,sparse sampling 策略降低了训练成本同时保留了相关的信息。
    • 由于TSN的有效性,后面的two-stream 方法都是基于segment-based two-stream networks。
  • Multi-stream 网络

    • 其他的因素可以提升视频动作识别的性能,比如pose, object, audio和深度等等。
(3) 使用3D CNNs

预计算optical flow计算量大,存储要求高,不利于大规模训练或实时部署。 然后有研究提出使用3D tensor,包括两个空间维度和一个时间维度。

但是3D网络很难以优化。为了训练3D卷积核,通常需要大规模的数据集。但从2017年后,出现了I3D,將video clip作为输入,然后放进stacked 3D convolutional layers。video clip是视频帧的一个序列,通常是16或者32帧。主要的贡献有两个:

  • 调整image classification 结构,适用于使用3D CNN。
  • 对于模型权重,它采用了一种初始化光流网络的方法,将ImageNet预先训练的2D模型权重膨胀到3D模型中的对应权重。

值得注意的是,并不是说3D CNNs替代了two-stream networks。它们只是用不同的方式去对时间信息进行建模。进一步来说,two-stream 方法是一个经典的框架。有研究用I3D结构和temporal stream进行结合,可以获得更好的性能。但是I3D的贡献并不是使用了optical flow。

在3D cnn中,可以通过叠加多个短时间卷积(例如,3×3×3滤波器)来实现长距离时间连接。然而,有用的时间信息可能会在深度网络的后期丢失,特别是对于相距很远的帧。为了进行远程时间建模,经典的引入了新的building block,Non-local。Non-local类似于self-attention。如下图所示,在residual blocks之后,使用non-local模块来捕捉在空间和时间维度上的long-range dependence。

在3D CNNs中,使用channel-wise separable convolution可以提高模型的速度,同时能达到很好的精度。除此之外,SlowFast通过设计网络框架为两个路径,一个slow path 和 fast path,提升速度。因为fast pathway可以使用非常轻量化的模型,通过降低其channel capacity, 所以整体效率提升很大。

(4) compute-efficient 模型

如果使用two-stream 网络,就需要预计算出optical flow,然后保存在本地。但是这里有个缺点就是,数据量很大。如此大量的数据,使得在训练的时候,I/O口就是瓶颈,导致了GPU资源的浪费和更长的实验周期。除此之外,预计算optical flow并不容易,也就是说。所有的two-stream 网络方法都不是实时的。

如果使用3D CNNs的方法,就会发现模型很难训练以及很难去部署。而且3D CNNs需要更多的视频帧作为输入,增加了I/O的花销。

所以从2018年开始,研究人员就开始寻找提升精度和效率的方法。

  • Flow-mimic 方法
    two-stream网络的一个缺点是需要optical flow。而预计算optical flow是计算成本昂贵的,存储要求大的,并且不是end-to-end训练。这个方向的工作有MotionNet, PAN, MotionSqueeze。
  • Temporal modeling without 3D convolution
    一个简单而自然的选择是使用三维卷积来模拟帧之间的时间关系。然而,要实现这一目标,还有很多选择。 STM, TEA等工作。
(5) 对帧之间时间关系的建模的一些其他的方法
  • Trajectory-based methods
  • Rank pooling
  • Compressed video action recognition
  • Frame/Clip sampling
  • Visual tempo

4. Evaluation and Benchmarking

(1) 数据集比较

分为三种数据集

  • Scene-focused 数据集: UCF101, HMDB51。模型表现如下:

    第一个是optical flow two-stream的方式。第二个是3D CNNs的方法。第三种是Compute-efficiency的模型。Compute-efficiency

  • Motion-Focused 数据集: Something-Something

    使用较长的输入,比如16帧通常效果会比较好。TSM,TEA,MSNet插入了一个temporal reasoning module在2D ResNet backbone上,性能达到SOTA。

  • Multi-label datasets: Charades

    上图可以看出,3D 通常比2D 模型较好。其次,更长的输入会有助于识别。第三,有一个强的backbones通常会有一个较好的性能。

(2) 速度比较

考虑四个部分:

  • 参数量
  • FLOPS
  • latency
  • frame per second

FLOPS和实际的推理速度(latency)关联不大。2D的模型通常比3D模型速度快。

5. Future work

有下面几个方向可以做:

  1. Analysis and insights
  2. Data augmentation:
    数据增强在图像识别上已经有很多技术了,mixup,cutout,cutmix,autoaugment,fastaug等等。但是在video action recognition上,还是用着比较基础的数据增强,比如random resizing,random cropping和random horizontal flipping。近期SimCLR使用了color jettering 和random rotation提升了模型性能。所以这也是一个方向。
  3. Video domain adaptation
  4. Neural architecture search
  5. Efficient model development:
    目前大多数方法都是offline settings,意味着输入是short video clip,并不是video stream in online setting。其次,大多数方法没有达到实时性。第三,3D卷积的不适应性或者说非标准算子在没有GPU的平台上部署。
  6. New datasets
  7. Video adversarial attack
  8. Zero-shot action recognition
  9. Weakly-supervised video action recognition
  10. Fine-grained video action recognition
  11. Egocentric action recognition
  12. Multi-modality
  13. Self-supervised video representation learning

四、 Conclusion

视频动作识别的综述。

Reference

本文标签: 笔记论文DeepStudyComprehensive