6月21号,从南京匆匆赶到上海,开始了在平安科技的实习。实习的导师给了时序动作检测(Temporal Action Detection)这个任务。由于此前只是接触过detection的工作,所以开始疯狂阅读论文。阅读论文的思路是先对行为识别(Action Recognition)相关论文进行阅读,接下来阅读时序动作检测的相关论文。本文是对一周实习阅读的论文简单总结,论文按照发表的时间顺序排列。

  • 任务简介

    行为识别:输入一段分割好的视频,输出视频包含动作类别,类别通常是各类人的动作

    时序动作检测:给定一段未分割的长视频,算法需要检测视频中的行为片段(action instance),包括其开始时间、结束时间以及类别。一段视频中可能包含一个或多个行为片段。

[1] Dense trajectories and motion boundary descriptors for action recognition

  • 行为识别
  • 发表时间:2013
  • 使用密集采用的方式进行光流信息的提取,在多个空间尺度上进行密集采样,文中间隔5个pixel设置一个采样点,再除去大概率不是运动物体的采样点。在进行光流信息提取的时候,在连续帧的图像中,跟踪采样的点计算光流信息,文中是跟踪15帧。在提取特征的时候,使用HOG,HOF,MBH。使用Bag of Features进行每条轨迹对应特征的编码。最后使用的SVM进行分类。使用跟踪方式进行光流提取,对运动信息的描述更具有收敛性。其中使用MBH特征的描述可以一定程度上减小相机运动带来的影响。在使用非深度学习的方法前,效果应该是最好的,但是该方法计算速度比较慢。

[2] Action Recognition with Improved Trajectories

  • 行为识别
  • 发表时间:2013
  • 在[1]工作上进行改进,也就是大名鼎鼎的iDT算法。基本的框架和[1]一致,改进之处主要是更好地对相机运动进行估计,消除相机运动带来的影响(移动,缩放等)。估计两帧图像的变换矩阵,就是相机运动的方式,使用多个采样点来估计矩阵。采用了两种方法来获得匹配点对,分别为SURF特征以及光流特征。 作者进一步消除人的运动对于变换矩阵估计的影响。先用检测算法检测到人的位置,去除处于人位置上的特征点。对特征进行编码时,使用效果更好的Fisher Vector编码 。iDT算法在后续的基于深度学习的时序动作检测研究中,也会被用于提取时序的特征。

[3] Two-Stream Convolutional Networks for Action Recognition in Videos

  • 行为识别

  • 发表时间:2014

  • 网络的结构如下所示。把空间和时间的信息分开来,分别提取特征。

    在对空间特征进行提取的时候,使用单帧的RGB图像作为输入,可以使用预训练的模型。在对时间特征进行提取的时候,使用多帧的光流作为输入。最后将提取的特征进行融合,进行分类。对光流进行提取时,实验了一般方法和对特征点进行跟踪提取的方式。在对特征进行融合时,使用了平均和堆叠的方法。在进行光流训练时,由于数据量不够,使用了多任务训练的方法。

np1ZG.png
np1ZG.png

[4] Learning Spatiotemporal Features with 3D Convolutional Networks

  • 行为识别
  • 发表时间:2015
  • 关于行为识别的工作。使用一个网络结构提取时间和空间的特征进行分类,文章主要是实验设计了一个网络结构。提出3 × 3 × 3 卷积核和3维池化的方式,使得对时间的信息提取更好,得到更好的分类性能。

[5] Temporal Segment Networks: Towards Good Practices for Deep Action Recognition

  • 行为识别
  • 发表时间:2016
  • 针对长时间序列的行为识别,使用稀疏采样的策略。并且使用一系列策略来训练高效的网络。对于一个输入的视频,将被分成K个segments,从每个segment中随机地选择一个short snippet。将选择的snippets通过two-stream卷积神经网络得到不同snippets的class scores,最后将它们融合。 使用输入的有RGB images、stacked optical flow field、RGB difference和warped optical flow field。 在预防过拟合策略上,使用预训练、freeze BN层的均值和方差(除去第一层外)和数据扩充。

[6] Temporal Action Detection with Structured Segment Network

  • 时序动作检测
  • 发表时间:2017
  • 使用的proposal+分类的思路,文章提出了一种时序动作提名算法TAG,以及后续的分类/边界回归网络 SSN。SSN将proposal的区域扩展,形成了开始-中间-结束区间的三段式设计,SSN的结构如下。在中间,使用空间池化,更好获取特征。三段区域的特征再进行拼接,获得更好的全局特征。并且意思是中间段的特征会更加明显。
npkna.png
npkna.png

[7] Single Shot Temporal Action Detection

  • 时序动作检测
  • 发表时间:2017
  • 上交林天威学长的工作,本人有简单介绍:链接。类似SSD和YOLO2的做法,使用anchors来进行候选区域。下图细致展示了本文方法的几个主要流程。即(1)特征提取;(2)SSAD模型; (3)后处理(训练或测试)。使用多种方法进行特征提取,然后拼接在一起。在获得长度为T的特征序列后,就可以将其用作SSAD模型的输入。SSAD模型是一个全部由时序卷积(一维卷积)构成的网络。主要包括三种卷积层:base, anchor, prediction layer。 base layers 的作用为缩短特征序列的长度,并增大特征序列中每个位置的感受野。 anchor layer 输出的特征序列中的每个位置都被关联了多个尺度的anchor instances(一个instance代表视频中动作发生的那一段时间,可以理解为一个一维的default box)。之后,再通过prediction layer,来获取每个anchor instances所对应的 坐标偏移量,重叠置信度,以及类别分类结果。

npxmH.jpg