Temporal Action Detection (时序动作检测)综述

最近几年由于网络上视频量的急剧增多和神经网络的飞快发展,这项任务得到了更多的关注。目前这项任务的主要数据集有THUMOS2014、ActivityNet。评价指标为IOU,目前2017的大多数工作在IOU=0.5的情况下达到了20%-30%的MAP,虽然较2016年提升了10%左右,但是在IOU=0.7时直接降低到了10%以下,2018年IOU=0.5有34%的MAP。

目前的趋势是寻找视频内活动的相关性来更精准的定位,寻找可以代替光流的方法来加速模型。本文对近两年时序动作检测的主要工作进行了一个简单的综述。

THUMOS2014

该数据集包括行为识别和时序行为检测两个任务。

训练集:UCF101数据集,101类动作,共13320段分割好的视频片段;
验证集:1010个未分割过的视频;其中200个视频有时序行为标注(3007个行为片 段,只有20类,可用于时序动作检测任务)
测试集:1574个未分割过的视频;其中213个视频有时序行为标注(3358个行为片段,只有20类,可用于时序动作检测任务)

ActivityNet

200类,每类100段未分割视频,平均每段视频发生1.54个行为,共648小时

MUTITHUMOS

一个稠密、多类别、逐帧标注的视频数据集,包括30小时的400段视频,65个行为类别38,690个标注,平均每帧1.5个label,每个视频10.5个行为分类,算是加强版THUMOS,目前我只在Learning Latent Super-Events to Detect Multiple Activities in Videos这篇论文看到了该数据集的评估。

建议:

如果刚开始看这方面,17工作直接看SSN(TAG找proposal)、R-C3D、CBR(TURN找proposal)就好了,找proposal方法简单看看TAG和TURN(网络其他部分不用看),github也有代码,对性能要求不高可以试试SSN(用到了光流),不然的话可以用一下R-C3D。
SSN代码:https://github.com/yjxiong/action-detection
CDC代码:https://github.com/ColumbiaDVMM/CDC
R-C3D代码:https://github.com/VisionLearningGroup/R-C3D
CBR代码:https://github.com/jiyanggao/CBR
Learning Latent Super-Events to Detect Multiple Activities in Videos
代码:https://github.com/piergiaj/super-events-cvpr18

一、基本流程

先找proposal,在对proposal分类和回归边界

二、.找proposal方法:主要就是以下几种

(1)单纯的滑动窗口(SCNN提出):固定一些尺寸在视频长度上滑窗,重叠度越高,效果越好,但是计算量大。
(2)时序动作分组(TAG提出):逐个视频帧分类(CNN网络),把相邻的类别一样的分成一组,设置一些阈值防止噪声干扰。
(3)单元回归(TURN提出):把视频分成固定大小单元,比如16视频帧一组,每组学一个特征(放C3D里),然后每组作为一个anchor(参照faster-rcnn)以它为中心找不同长度proposal。

三、目前的主要方法

1.SCNN(Temporal Action Localization in Untrimmed Videos via Multi-stage CNNs):

多阶段网络,这篇文章是CVPR2016上的工作“Temporal action localization in untrimmed videos via multi-stage cnns”,时间较早,方法简单。主要提出了一个三阶段的3D卷积网络来做动作检测:(1)proposal network;(2)classification network;(3)localization network。
这里写图片描述
图1.scnn框架总览
该网络首先采用不同尺度滑窗的方法找一些proposal,然后将这些proposal均匀采样到固定长度16帧,将proposal输入到proposal network来做二分类,输出是不是动作;然后将包含动作的proposal和部分背景proposal(采样到和一类动作数目相同)输入到classification network为这些动作分类,输出为K+1个类别(包括背景类)的分数;最后输入到一个localization network,输出仍然是K+1个类别的分数,不过此时的损失函数不只是softmax loss,还加入基于IoU分数的overlap Loss来调整边界。以上三个网络均采用标准C3D网络结构,定位网络由分类网络的权值来初始化,分类网络只在训练时使用。
这篇文章在THUMOS2014数据集上IOU=0.5时达到了19.0的MAP。

2.TURN(TURN TAP: Temporal Unit Regression Network for Temporal Action Proposals):

单元回归网络,SCNN中采用的滑窗找proposal的如果想要得到准确的结果,就需要增大窗口之间的重叠度,这样导致了一个问题就是计算量极大。为了减小计算量,增加时序定位精度,本文借鉴faster-rcnn引入边界回归的方法:将视频分为等长短单元,做单元水平的回归。
这里写图片描述
每个单元输入到C3D网络内提取单元水平特征,相邻单元组成一个clip,以每一个unit为anchor unit,构造一个clip pyramid。然后在单元水平上作坐标回归,网络包含两个输出:第一个输出置信度分数判断clip中是否包含动作,第二个输出时序坐标偏移来调整边界。
本篇文章方法在THUMOS2014数据集IOU=0.5时的MAP为25.6%,主要贡献是(1)提出了一个新的用坐标回归来生成时序提议段的方法;(2)速度很快(800fps)(3)在不同数据集上不需要做fine-tuning效果就很好(4)提出了新的评估提议段好坏的指标AR-F。

3.TAG(A Pursuit of Temporal Accuracy in General Activity Detection):

时序动作分组,也是为了解决密集的滑动窗口计算量太大的问题而提出的方法。TAG的方法主要由三部分组成(1)用TSN的稀疏采样方法采样一段视频里的snippt;(2)给snippt打分,这里是二分类判断它是是不是动作;(3)把是动作的snippt组成一个proposal,就得到了不同粒度的提议段(这里会设置动作阈值来表示多少分可以算作动作,还有一个容忍度阈值来防止噪声干扰,即连续帧中出现了几个视频帧不满足的情况下仍把它加入proposal)。这篇文章还把是否是动作与动作是否完整作为两个不同的特征。核心思想是找有更多动作的proposal。
这里写图片描述
TAG的方法有以下几个优点:(1)更关注动作做内容,减少了proposal数目,减少计算量;(2)合并片段是自底向上的,更加精确;(3)设置多个阈值组合,可以不需改变参数的训练。
本文在THUMOS2014上IOU=0.5时候MAP=28.25。

4.CDC(CDC: Convolutional-De-Convolutional Networks for Precise Temporal Action Localization in Untrimmed Videos):

卷积-反卷积网络,该网络主要是在scnn中提到的用滑窗产生proposal的方法基础上继续做精调。C3D可以很好的学习高级语义特征,但是它在时间上会丢失细粒度(标准C3D网络会把时间减少到原来的1/8长度)这时候如果想在视频帧的水平上做精确定位是不可能的,但是可以用反卷积的方式进行上采样。所以本文提出了一种在空间上做下采样(1*1的类别信息),时间上做上采样(恢复到原视频长L)的方法。
这里写图片描述
这里写图片描述
本文还提出了一个把卷积和反卷积操作结合到一起的过滤器,实验证明这个结合的方法比分开计算效果要好一些,但是参数多了很多。网络首先把scnn得到的proposal向两端扩展,然后每帧打分,哪类平均分最高就作为类别,然后从两端往中心一直找到一个分数高于均分的视频帧作为边界,里面的内容就是我们找到的动作。
本文在THUMOS2014上IOU=0.5时的MAP=23.3%。
CDC主要贡献:(1)提出了一个卷积-反卷积过滤器(2)用上述过滤器创建了一个端到端的网络3)提到了定位精度。

5.SSN(Temporal Action Detection with Structured Segment Networks):

结构化分段网络,提出了一个通过结构化时序金字塔对每一个动作实例的时序结构建模的新框架。作者认为对视频检测是一个十分难的问题,所以需要对时序结构进行分析,判断动作是不是完整,所以他把视频内的动作划分为三个阶段:开始,行动,结束。这个划分方式在以后的工作中也被大量使用。本文采用了TAG的方法生成proposal,然后把proposal分成开始,活动,结束三个阶段,对每个阶段做时间上的金子塔池化操作,然后把结果合并在一起送入两个分类器,一个判断该段是什么动作,一个判断动作完整不完整。
这里写图片描述
本文在THUMOS上IOU=0.5的时候MAP=29.8.
主要贡献:(1)提出一个有效的三阶段机制来建模活动的时间结构,从而区分完整和不完整的proposal;(2)以端到端的方式学习网络,并且一旦训练完毕,就可以对时间结构进行快速推测;(3)该方法在主流数据集THUMOS14和ActivityNet上实现了超过以前的检测性能。

6.CBR(Cascaded Boundary Regression for Temporal Action Detection):

级联的边界回归网络,这篇论文获得了2017年在THUMOS2014数据集上的最佳效果。方法比较简单,作者做了大量的实验,对很多参数的选择都做了比较好的实验,为后人科研选择合适的方法给了一些启发。CBR是在TURN的基础上做的,网络分为两部分,第一部分用粗略proposal作为输入,输出类别无关的proposal,第二部分来继续调整边界。
这里写图片描述
与之前方法比较这里每一部分都是级联的,意思就是调整一次效果不好,就继续调整,一直到效果好位置。这里和TURN不同的是找的proposal不在是根据是不是动作,而且为每个动作都通过单元回归找一个proposal,把分数最高的作为我们要找的proposal。网络对C3D,TWO STREAM,FLOW特征进行了对比,得出双流特征效果比光流和C3D好;对单元水平和帧级回归做了对比,证明单元水平的效果好一些;网络还对每一阶段级联级数做了实验,证明2-3级的proposal网络和2级的分类网络效果更好。
该文章在THUMOS2014上IOU=0.5时MAP=31.0%,是2017年该数据集最好的效果。

7.R-C3D(R-C3D: Region Convolutional 3D Network for Temporal Activity Detection):

之前的方法有些用滑窗的方法计算量大,预测边界不灵活,很多都不是端到端的学习深层特征,只在分类网络上学习现成的特征对定位效果可能不佳。所以本文借鉴目标检测领域faster-rcnn的思想提出了一个端到端的网络,生成候选段和分类结合在一起学习特征,用全卷积来学习3D特征再加上ROI pooling使网络可以接收任意长度输入,生成候选段的步骤过滤掉了很多背景可以节约计算,而且候选段由预定义的anchor来预测,可以检测灵活的活动边界。
这里写图片描述
网络由三部分组成:特征抽取网络、时序候选段子网、分类子网。
候选段偏移和类别分数由最后两个1*1*1的卷积层计算。特征和损失函数都由两个子网络共享。
该方法在THUMOS2014数据集上IOU=0.5时的MAP为28.9%。
主要贡献是提出了一种端到端的网络把定位和分类结合起来一起训练,可以接受任意长度视频输入并且节约了计算。

8.ETP(Precise Temporal Action Localization by Evolving Temporal Proposals):

提出了三阶段的evolving temporal proposal网络,引入了非局部金字塔特征,该方法是目前在THUMOS2014数据集上效果最好的,IOU=0.5的时候MAP=34.2%。
这里写图片描述
网络分为三个阶段:Actionness Network、Refinement Network、Localization Network。
第一个网络运用TAG的方法生成proposal,是一个分类网络。第二个网络在单元水平做进一步调整,同时运用了双门的RNN更加关注视频的上下文信息。最后一个定位网络继续调整边界,采用SSN的结构,并在顶层加入了非局部块,但是为了防止对网络的影响太大,以残差连接方式加入,定位网络是一个多任务网络,不只要判断proposal是动作还是背景,还要判断它是什么动作,还要调整边界。
这篇文章在THUMOS2014数据集IOU=0.5时MAP达到34.2%。
主要贡献是利用RNN更加关注动作的上下文信息,引入了非局部特征,融合了之前一些比较好的方法,达到了目前最佳效果。

9.Learning Latent Super-Events to Detect Multiple Activities in Videos:

在视频中学习潜在的超级事件来做多活动检测。这篇文章关注于更细粒度的检测,用的数据集是MUTITHUMOS,在THUMOS的基础上加了一些数据,平均每段视频内的活动更多。目前的方法基本都更关注候选段的决策,而忽略了整段视频的时序结构和上下文信息,连续的视频中有很多上下文信息都可以帮助我们做更好的动作检测。所以本文提出了一个超级事件的概念,与子事件相对应,一个超级事件包含一系列的子事件,是相互关联的子事件的集合。题目名为潜在的超级事件是因为这些超级事件和子事件的定义是无需标注的。文章还提出了一个时间结构过滤器来学习每类的软注意力权重从而得到超级事件表现,用它来逐帧分类。
这里写图片描述
首先将整段视频输入网络,对每帧或每个局部段落学习一个特征,这里用到了RNN还用到全卷积的网络来对每帧学习一个类别分数,然后把这些特征输入到M个时间结构过滤器里,时间结构过滤器由若干个柯西分布组成,它可以让模型知道哪些时间间隔和帧级检测相关。
用I3D特征+超级事件在MUTITHUMOS上MAP为36.4%。

目前方法在THUMOS2014上的效果(来自ETP论文)

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_33278461/article/details/80720104