Action Recognition 经典论文浏览

文章目录

    • 0. 前言
    • 1. 双流法
      • 1.2. 双流法第一篇
      • 1.2. 双流法+新特征融合方式
    • 2. 3D卷积
      • 2.1. C3D
      • 2.2. I3D + Kinetics
      • 2.3. R(2+1)D
      • 2.4. SlowFast
    • 3. 2D 卷积
      • 3.1. TSN
      • 3.2. TSM
    • 4. 其他
      • 4.2. ECO
      • 4.3. Non-local


0. 前言

  • 本文基本上就是2019年之前的论文。
  • 行为识别模型主要分为三类(好像一般大家都这么分,但我感觉不是特别合理……)
    • 3D卷积
      • 传统图像网络的输入是 (batch_size, h, w, 3),而视频数据相对于图像数据多了时间纬度,所以一般行为识别网络的输入是 (batch_size, t, h, w, 3)
      • 因为多了一维,就将普通2D卷积用3D卷积来替代,所以所谓的3D卷积就是指同时对 spatial-temporal 纬度进行卷积操作。
      • 优点:相对来说,能够较好的提取时间维度的特征(也就是提取不同帧的数据)。
      • 缺点:3D卷积的参数数量庞大、训练/预测时消耗的计算资源较多。
    • 2D卷积
      • 上面说了3D卷积存在消耗计算资源多的问题。
      • 如果能用2D卷积来提取时间特征,那么就既能够满足行为识别模型训练的需求,也能满足降低行为识别模型计算资源消耗的目标。
    • 双流法(感觉双流法与2D/3D卷积并不冲突)
      • 双流法指的是模型的输入包括了RGB帧也包括光流数据,其实中间提取光流特征的网络与提取RGB帧信息的网络是类似的……
      • 感觉双流法与2D/3D卷积并不冲突,提取光流/RGB流特征就用的是3D/2D网络。
  • 论文分类与简介
    • 双流法:就是引入了双流,以及探索双流融合方式。因为用不上所以不列了。
    • 3D卷积
      • C3D:3D版VGG。
      • I3D:提出Kinetics-400数据集,基于InceptionV1的3D卷积网络。。
      • R(2+1)D:使用tx1x1+1xdxd卷积替代txdxd卷积,使用ResNet作为Backbone。
      • SlowFast:同一个模型中有多个分支(slow分支与fast分支,分别对应不同的帧率),每个分支都是I3D模型。
    • 2D卷积
      • TSN:将视频分为N个部分、分别提取其中一帧作为模型输入,对每一帧分别使用2D CNN提取特征,融合(如avg)后使用分类网络判断行为类别。
      • TSM:在TSN的基础上,对中间部分特征图(shape为NxTxHxWxC)的 T 维度上进行shift操作。
    • 其他:
      • ECO:先2D提取特征再3D融合,提出了一种online video提取帧的新方法。
      • Non-local:类似于attention,增加“感受野”

1. 双流法

1.2. 双流法第一篇

  • 2014年6月
  • arxiv: Two-Stream Convolutional Networks for Action Recognition in Videos,论文解读,Github
  • 要解决什么问题?
    • 引入深度学习后,双流法处理行为识别的开山之作。
    • 如何通过卷积神经网络同时获取时间(光流)、位置信息(普通食品)。
  • 用了什么方法解决?
    • 引入了光流(Optical flow),用于表示时间信息。
    • 对于RGB/光流都是通过2D卷积提取特征。
    • 最后融合也比较直接。
    • Action Recognition 经典论文浏览_第1张图片
  • 效果如何?
    • 当时在两个小数据集上达到SOTA。
  • 还存在什么问题?
    • 早期论文了,也没啥花头。
    • 光流需要实现处理得到,总体结构应该不是end-to-end的。
    • 从后一篇论文看,融合方式太过直接,有上升空间。
  • 其他:光流相关内容需要进一步理解。

1.2. 双流法+新特征融合方式

  • 2016年4月,题外话,看着像实验报告,不像论文
  • arxiv: Convolutional Two-Stream Network Fusion for Video Action Recognition,论文解读,论文解读2,Github
  • 要解决什么问题?
    • 之前的双流模型,特征融合过于简单,希望找到更好的融合方式。
  • 用了什么方法解决?
    • 就是各种实验,找到合适的方式……
    • 下图是几处可以特征融合的位置。
      • Action Recognition 经典论文浏览_第2张图片
    • 下图是几种特征融合的方式
      • Action Recognition 经典论文浏览_第3张图片
    • 下图是论文使用的特征融合模型结构,主要就是利用了3D卷积和3D池化进行特征融合,融合位置如上上图。
      • Action Recognition 经典论文浏览_第4张图片
  • 效果如何?
    • 在某几个数据集上达到SOTA。
  • 还存在什么问题?
    • 还是感觉之前的模型过于简单了……

2. 3D卷积

2.1. C3D

  • 2014年12月
  • arxiv: Learning Spatiotemporal Features with 3D Convolutional Networks,论文解读,Github
  • 要解决什么问题?
    • 利用3D卷积来处理视频数据。
  • 用了什么方法解决?
    • 利用3D卷积(即C3D)来提出视频的特征。
    • 将特征利用线性回归来分类,就能得到很好的效果。
  • 效果如何?
    • 这个应该是3D卷积第一次用来做行为识别吧,当时效果比较惊艳。
  • 还存在什么问题?
    • 早期模型了,现在看没啥花头,感觉就是用3D卷积谢了一遍VGG
  • 看了源码后发现,一切思想都很朴素:
    • 输入图像的尺寸与图像分类一样,是固定的,比如 batch_size * clip_len * img_height * img_width * 3。这个图像序列的获取是有一定讲究的,对于一个视频要至少获取 clip_len 帧图像,一般都是间隔着获取。
    • 由于输入尺寸是固定的,所以得到的最终特征图尺寸也是固定的,可以reshape到一个固定的向量。
    • 通过这个向量直接通过全连接层即可获得结果。

2.2. I3D + Kinetics

  • 2017年5月
  • arxiv: Quo Vadis, Action Recognition A New Model and the Kinetics Dataset,论文解读,mmaction有实现
  • 要解决什么问题?
    • 当时的行为识别数据集都太小。
    • 2D卷积无法提取时间特征。
  • 用了什么方法解决?
    • 提出Kinetics数据集。
    • 分析当时行为识别模型的结构,提出自己的结构。
      • (a) CONV+LSTM:融合单帧特征的一种方法就是LSTM。
      • (b) 普通3D卷积:比较直接,仅利用了RGB图像,而没有利用光流。
      • © 普通双流:对RGB和光流都利用2D卷积,然后再进行特征融合。
      • (d) 作者提出的一种新结构:对于每一帧都利用2D卷积,然后最终将每一帧的信息融合,再利用3D卷积。
      • (e) I3D结构:对RGB与光流分别进行3D卷积,然后再融合结果。
      • Action Recognition 经典论文浏览_第5张图片
    • I3D模型本身使用的是InceptionV1的结构,而不是ResNet
      • Action Recognition 经典论文浏览_第6张图片
  • 效果如何?
    • 在HMDB-51与UCF-101中,I3D都达到了SOTA。
    • 大数据集,有点训练不动。
  • 还存在什么问题?
    • 3D卷积都比较费时间、参数多,而且空间特征提取的并不太好。
    • 现在所谓的I3D模型好像都是基于ResNet的,跟I3D论文这里的好像没太多关系。

2.3. R(2+1)D

  • 17年11月
  • arxiv: A Closer Look at Spatiotemporal Convolutions for Action Recognition,论文解读,Github
  • 要解决什么问题?
    • 使用3D卷积网络实现行为识别模型(I3D)虽然在当时达到了SOTA,但相比于iDT等非深度学习方法, 准确率提升的不多。
    • 当时的3D卷积都比较直白。
  • 用了什么方法解决?
    • 探索了一些3D卷积结构,或者替代3D卷积的结构。
      • Action Recognition 经典论文浏览_第7张图片
    • 所谓的(2+1)D其实就是用 tx1x1 卷积 + 1xdxd卷积替代普通的 txdxd 卷积。
      • Action Recognition 经典论文浏览_第8张图片
    • R3D结构,估计R(2+1)D结构也与这个类似
      • Action Recognition 经典论文浏览_第9张图片
  • 效果如何?
    • 当时在同等算力下,(2+1)D的效果最好。
  • 还存在什么问题?
    • 早起模型啦,模型总体结构还是比较朴素的。
    • 但(2+1)D这个结构在现在还是比较常见的。

2.4. SlowFast

  • arxiv: SlowFast Networks for Video Recognition,译文,论文解读,Github
  • 要解决什么问题?
    • intuition:图像在x,y两个维度上是均匀的,但在视频x,y,t中并非如此,且慢动作比快动作更可能发生。
    • 从上面的思路可以看出,那要如何同时处理时间维度和空间维度和空间维度的信息呢。
    • 双流法的一个缺陷:没有考虑不同速率的关系。
  • 用了什么方法解决?
    • 提出了SlowFastNet,分为两个分支,即Slow分支和Fast分支。
      • Slow分支:帧率较慢,用于获取语义信息(semantic information),猜测就是空间信息,计算量大。
      • Fast分支:帧率较快,用于获取去时间信息,计算量小,大约是总体计算量的20%。
      • Action Recognition 经典论文浏览_第10张图片
  • 效果如何?
    • 发表时认为在四个数据集 kinetics400/600, Charades, AVA上都达到SOTA。
    • 其实该论文精读不如TSM,但这篇论文的“故事”更好理解。
  • 还存在什么问题?
    • 卡多,牛逼,野兽派。

3. 2D 卷积

3.1. TSN

  • 2016年8月
  • arxiv: Temporal Segment Networks: Towards Good Practices for Deep Action Recognition,论文解读,mmaction有实现
  • 要解决什么问题?
    • 当时的模型都对短视频比较友好,对长视频不太行。
  • 用了什么方法解决?
    • 提出了TSN结构,主要包括了Segments和Snippets两个概念。
      • 首先将整段视频分为若干个Segments,再将每个segments中分为若干snippets,将这些snippets作为输入。
      • 从下图中可以看出,就是利用了多个双流结构,然后融合结果。
      • Action Recognition 经典论文浏览_第11张图片
    • 对于模型的输入,做了多种试验。
      • Action Recognition 经典论文浏览_第12张图片
  • 效果如何?
    • 当时在两个小数据集上达到了SOTA。
  • 还存在什么问题?
    • 显然,双流模型不是end-to-end的。

3.2. TSM

  • 2018.11
  • arxiv: TSM: Temporal Shift Module for Efficient Video Understanding,论文解读,Github
  • 要解决什么问题?
    • 视频行为识别需要考虑 temporal modeling。
    • 2D卷积虽然需要的操作量少但无法直接考虑 temporal modeling,3D卷积虽然能够考虑temporal modeling但参数量、计算量大。
  • 用了什么方法解决?
    • 提出了TSM结构,即利用了2D卷积的参数、操作量少,又兼顾了3D卷积的temporal modeling。
    • TSM的结构如下图。
      • (b) 是离线模式,即在预测当前帧的信息时,会利用到未来的帧。
      • © 是在线模式,即预测当前帧的时候,不会利用到未来的帧。
      • Action Recognition 经典论文浏览_第13张图片
    • 具体TSM的结构,利用了(b)形式,即残差形式。
      • Action Recognition 经典论文浏览_第14张图片
    • Action Recognition 经典论文浏览_第15张图片
  • 效果如何?
    • 查资料的时候看到不少,说这个网络效果好,但感觉有点奇怪
      • Action Recognition 经典论文浏览_第16张图片
    • 下面这个图霸气,纵坐标是精度,横坐标是计算量,圆圈大小是参数数量,可以看到TSM是啥都好……
      • Action Recognition 经典论文浏览_第17张图片
  • 还存在什么问题?
    • 只知道效果好,但总感觉有点怪(我看得少,没看出来)

4. 其他

4.2. ECO

  • 18年4月
  • arxiv: ECO: Efficient Convolutional Network for Online Video Understanding
  • 论文解读,论文解读2,Github(caffe),Github(PyTorch)
  • 要解决什么问题?
    • 当时常见的模型不会同时考虑几秒内不同帧的关系。
    • 当时常见的模型(主要指的是双流法)的视频预处理较慢,阻碍了实时视频理解。
  • 用了什么方法解决?
    • 提出了一种新结构,可融合处理视频不同时间点的帧信息。总体流程是:
      • 第一步,将视频微分N段,每一段中随机选取一帧内容,共N帧信息。
      • 第二步,对N帧内容分别进行2D卷积进行特征提取(weight sharing),将结果concat后获取4D特征。
      • 第三步,将4D特征作为输入,进行3D卷积。
      • Action Recognition 经典论文浏览_第18张图片
    • 结构类型分为两种,即ECO Lite和ECO Full
      • Action Recognition 经典论文浏览_第19张图片
    • 提出了一种实时视频分类的方法,这种方法模型结构并没有变化,有变化的只是获取视频帧的过程。
      • Action Recognition 经典论文浏览_第20张图片
      • Action Recognition 经典论文浏览_第21张图片
  • 效果如何?
    • 准确率与当时的SOTA差不多(略差一点),但速度快了10-80倍。
  • 还存在什么问题?
    • 感觉这些网络都是以224*224的图像作为输入,会不会对一些距离镜头较远的动作检测效果不佳?

4.3. Non-local

  • 17年11月

  • arxiv: Non-local Neural Networks,论文解读(强烈推荐),Github

  • 要解决什么问题?

    • 主要提出了local/non local两类操作的定义。
      • local 操作
        • 每次只能处理一个邻域内的数据(process one local neightborhood at a time)
        • 普通的CNN/RNN都属于local操作
        • 主要缺陷有:计算效率低(computationally inefficient),优化较为困难(cause optimization difficulties),使得multihop dependency modeling(数据需要前后依赖的情况)更困难。
      • non local 操作:
        • 主要优势:能够获取long-range dependencies,效率高且需要的层数少,输入与输出的尺寸相同(可较为方便地嵌入模块)。
  • 用了什么方法解决?

    • 定义了 non local 操作:
      • Action Recognition 经典论文浏览_第22张图片
      • 参考下论文解读中的描述,很清楚了:
        • 上面的公式中,输入是x,输出是y,i和j分别代表输入的某个空间位置,x_i是一个向量,维数跟x的channel数一样。f是一个计算任意两点相似关系的函数,输出的是标量。g是一个映射函数,将一个点映射成一个向量,可以看成是计算一个点的特征,比如最简单的1*1卷积。
        • 也就是说,为了计算输出层的一个点,需要将输入的每个点都考虑一遍,而且考虑的方式很像attention:输出的某个点在原图上的attention,而mask则是相似性给出。
        • 参看下图:Action Recognition 经典论文浏览_第23张图片
    • 具体实现方式参考下图:
      • Softmax分支代表的是mask。
      • 另外一路代表的就是transformed image。
      • Action Recognition 经典论文浏览_第24张图片
  • 效果如何?

    • 在当时,进将non-local作为一个trick添加到行为识别网络中就能达到SOTA的效果。
  • 还存在什么问题?

    • 这玩意是个即插即用的小模块,能提点,但性能就……

你可能感兴趣的:(CV)