A Comprehensive Study of Deep Video Action Recognition

论文链接: https://arxiv.org/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

A Comprehensive Study of Deep Video Action Recognition 论文笔记相关推荐

  1. 论文笔记【A Comprehensive Study of Deep Video Action Recognition】

    论文链接:A Comprehensive Study of Deep Video Action Recognition 目录 A Comprehensive Study of Deep Video A ...

  2. Collaborative Spatiotemporal Feature Learning for Video Action Recognition 论文笔记

    论文笔记 1 引子 ​ 在本文中,我们提出了一种新颖的协作时空(CoST)特征学习操作,它与权重共享共同学习时空特征. ​ 给定3D体积视频张量,我们通过从不同角度观看它们,将其展平为三组2D图像. ...

  3. DMC-Net: Generating Discriminative Motion Cues for Fast Compressed Video Action Recognition 论文赏析

    DMC-Net: Generating Discriminative Motion Cues for Fast Compressed Video Action Recognition 论文赏析 前言 ...

  4. 《A Comprehensive Study on Waste Segregation Techniques》论文笔记

    A Comprehensive Study on Waste Segregation Techniques 论文翻译 Abstract INTRODUCTION 1. CATEGORIES OF WA ...

  5. 视频时序动作识别(video action recognition)介绍

    一.视频时序动作识别算法分类 根据网络的工作方式,可以将视频时序动作识别算法大致分为四大类: 采用2D卷积的方法 采用3D卷积的方法 双流法 引入VLAD的方法 1.1 采用2D卷积的方法 <T ...

  6. 【论文笔记】Spatiotemporal Residual Networks for Video Action Recognition

    目录 摘要 1 介绍 3. 技术方法 3.1 Two-Stream residual 网络 3.2跨时间的卷积剩余连接 3.3建议结构 (Proposed architecture) 参考文献 参考 ...

  7. 视频动作识别--Convolutional Two-Stream Network Fusion for Video Action Recognition

    Convolutional Two-Stream Network Fusion for Video Action Recognition CVPR2016 http://www.robots.ox.a ...

  8. 论文阅读 - Large-scale weakly-supervised pre-training for video action recognition

    文章目录 1 概述 2 数据的收集方式 3 使用的模型 4 预训练时的一系列问题 4.1 预训练的数据是不是越多越好? 4.2 用于预训练的模型是不是越大越好? 4.3 预训练数据的标签种类和数量是不 ...

  9. PaddlePaddle飞桨论文复现营——3D Residual Networks for Action Recognition学习笔记

    PaddlePaddle飞桨论文复现营--3D Residual Networks for Action Recognition学习笔记 1 背景知识 1.1 C3D C3D是一种3D卷积提取视频特征 ...

最新文章

  1. cpu烤机工具_MySQL常用工具选择和建议
  2. android 粘性service,Android服务1 Service
  3. 『设计模式』再谈麦当劳的点单模式--命令模式(Command)
  4. easyui 调用dialog中的方法_SolidWorks中标准件库的创建及调用方法
  5. multi task训练torch_采用single task模型蒸馏到Multi-Task Networks
  6. 服务器虚拟化的主备,云服务器可以主备切换
  7. SQL点滴35—SQL语句中的exists
  8. 2012服务器在IIS部署的SLL(https)网址谷歌浏览器无法访问的问题解决
  9. matlab 连续相同数据库,MATLAB向量:防止来自相同范围的连续值
  10. 七日年化收益率计算器_定投收益率该怎么算?
  11. 大众点评霸王餐自动报名autojs(更新版)
  12. 《乱世佳人》读书笔记及相关感悟3900字
  13. java面试题干货51-95
  14. 高级着色语言HLSL入门
  15. microsoft edge 编辑器不支持浏览器隐私模式,请用普通模式访问! 解决办法
  16. 无法用ip连接mysql数据库_MYSQL数据库无法使用IP访问的方法
  17. 人到中年才懂10个“潜”规则,过来人:除了生死,其他都是闲事
  18. php 的几种运行方式
  19. 学习Java最好选择哪本书?
  20. POI-TL生成带有表格word的坑 POI重复依赖

热门文章

  1. 蓝奥声智能灯控解决方案:一种无线单火取电控制技术
  2. 水果食用大全 -- 果品食疗 - 香蕉
  3. Work20230505
  4. python用栈实现括号匹配问题
  5. Android编程实现修改设备WiFi名称
  6. sql正在安装html帮助,SQL2000安装卡在了“安装程序正在启动服务器并安装您选择的配置”...
  7. flask远程连接mysql_【已解决】Flask中连接远程MongoDB数据库的gridfs并返回查询到的文件数据...
  8. 计算机系统的有哪些功能是什么意思,olt是什么意思(olt有什么功能和用途)
  9. 数学建模学习(1):数据统计与分析之平均数,中位数,方差,标准差,极差
  10. 云顶之奕助手易语言源码-联网