1 视频动作检测概述
动作检测也是目前视频理解方向的研究热点,因为该任务更加贴近生活,在监控安防中有潜在的巨大价值。但是相比于动作分类,动作检测难度更高,不仅需要定位视频中可能存在行为动作的视频段,还需要将其分类,即:localization+recognition。而定位存在行为动作的视频段是一个更加艰巨的任务。
一般我们把动作检测叫做Temporal Action Detection,也通常直接叫做Action Detection,还有叫Action Localization等。
2 研究难点
目前动作检测研究难点主要有以下三点:
1)时序信息。与动作识别一样,视频理解的通用难点就是时序信息的处理。所以针对这一点目前的主要方法基本上都是使用RNN读入CNN提取的特征,或者直接使用C3D结构的时序卷积;
2)边界不明确。不同于动作识别,动作检测要求做精确的动作区间检测,而生活中一个动作的产生往往边界不是十分确定的,所以这也是导致目前动作检测mAP偏低的原因;
3)时间跨度大。在生活中,一个行为动作往往跨度非常大,挥手等短动作几秒左右,而攀岩、骑行等长动作可能持续数十分钟,这使得我们在提取Proposal时变得异常艰难。
3 数据集介绍
3.1 THUMOS2014
THUMOS 2014来自于THUMOS Challenge 2014该数据集包括行为识别和时序行为检测两个任务,大多数论文都在此数据集评估。
训练集:UCF101数据集,101类动作,共13320段分割好的视频片段;
验证集:1010个未分割过的视频;其中200个视频有时序行为标注(3007个行为片段,只有20类,可用于时序动作检测任务)
测试集:1574个未分割过的视频;其中213个视频有时序行为标注(3358个行为片段,只有20类,可用于时序动作检测任务)
3.2 MEXaction2
MEXaction2数据集中包含两类动作:骑马和斗牛。由三个部分组成:YouTube视频,UCF101中的骑马视频以及INA视频。
其中YouTube视频片段和UCF101中的骑马视频是分割好的短视频片段,被用于训练集。而INA视频为多段长的未分割的视频,时长共计77小时,且被分为训练,验证和测试集三部分。训练集中共有1336个行为片段,验证集中有310个行为片段,测试集中有329个行为片段。且MEXaction2数据集的特点是其中的未分割视频长度都非常长,被标注的行为片段仅占视频总长的很低比例。
3.3 ActivityNet
目前最大的数据库,包含分类和检测两个任务。这个数据集仅提供视频的youtube链接,而不能直接下载视频,所以还需要用python中的youtube下载工具来自动下载。
该数据集包含200个动作类别,每类100段未分割视频,20000(训练+验证+测试集)左右的视频,视频时长共计约700小时。
3.4 MUTITHUMOS
一个稠密、多类别、逐帧标注的视频数据集,包括30小时的400段视频,65个行为类别38,690个标注,平均每帧1.5个label,每个视频10.5个行为分类,算是加强版THUMOS。
4 技术原理
因为动作检测任务有点类似于目标检测任务,都是需要先定位目标,然后识别目标。所以目前很多行为检测方法都是借鉴于目标检测,主要思想基本上是Temporal Proposal提取,然后进行分类与回归操作。这类方法包含,利用Faster R-CNN框架[9][10]思路,利用SSD框架思路[11],还有基于TAG网络[12]等等。还有一类方法是基于C3D做帧分类(Frame Label),然后预测存在行为的视频段并分类,例如2017年ICCV的CDC网络[13]。
基本流程:
1.先找proposal,再对proposal分类和回归边界;
2.找proposal方法:主要就是以下几种;
1)单纯的滑动窗口(SCNN提出):
固定一些尺寸在视频长度上滑窗,重叠度越高,效果越好,但是计算量大。理论上这种方法只要重叠度够高,是找的最全的,但是冗余多。
2)时序动作分组(TAG提出):
逐个视频帧分类(CNN网络),把相邻的类别一样的分成一组,设置一些阈值防止噪声干扰,一般设置多组阈值防止漏掉proposal。这种方法对于边界比较灵活,但是可能会因为分类错误漏掉proposal。
3)单元回归(TURN提出):
把视频分成固定大小单元,比如16视频帧一组,每组学一个特征(放C3D里),然后每组或者多组作为中心anchor单元(参照faster-rcnn)向两端扩展找不同长度proposal。
5 目前的主流方法
5.1 SCNN
SCNN,即多阶段网络,是CVPR2016上的文章《Temporal action localization in untrimmed videos via multi-stage cnns》,时间较早,方法简单。主要提出了一个三阶段的3D卷积网络来做动作检测:(1)proposal network;(2)classification network;(3)localization network。
该网络首先采用不同尺度滑窗的方法找一些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。
5.2 TURN
TURN,即单元回归网络,是CVPR2017上的文章《TURN TAP: Temporal Unit Regression Network for Temporal Action Proposals》。SCNN采用滑窗找proposal,如果想要得到准确的结果,就需要增大窗口之间的重叠度,这样导致了计算量极大。为了减小计算量,增加时序定位精度,TURN借鉴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。
5.3 TAG
TAG,即时序动作分组,是CVPR2017上的文章《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)设置多个阈值组合,可以不需改变参数的训练。
TAG在THUMOS2014上IOU=0.5时MAP=28.25。
5.4 CDC
CDC,是CVPR 2017上的文章《CDC: Convolutional-De-Convolutional Networks for Precise Temporal Action Localization in Untrimmed Videos》。该网络主要是在SCNN中提到的用滑窗产生proposal的方法基础上继续做精调。C3D可以很好的学习高级语义特征,但是它在时间上会丢失细粒度(标准C3D网络会把时间减少到原来的1/8长度),这时如果想在视频帧的水平上做精确定位是不可能的,但是可以用反卷积的方式进行上采样。所以本文提出了一种在空间上做下采样(11的类别信息),时间上做上采样(恢复到原视频长L)的方法。
该文还提出了一个把卷积和反卷积操作结合到一起的过滤器,实验证明这个结合的方法比分开计算效果要好一些,但是参数多了很多。网络首先把SCNN得到的proposal向两端扩展,然后每帧打分,哪类平均分最高就作为类别,然后从两端往中心一直找到一个分数高于均分的视频帧作为边界,里面的内容就是我们找到的动作。
该文在THUMOS2014上IOU=0.5时MAP=23.3%。CDC主要贡献:(1)提出了一个卷积-反卷积过滤器;(2)用上述过滤器创建了一个端到端的网络; (3)提到了定位精度。
5.5 SSN
SSN,即结构化分段网络,是CVPR2017上的文章《Temporal Action Detection with Structured Segment Networks》。提出了一个通过结构化时序金字塔对每一个动作实例的时序结构建模的新框架。作者认为需要对时序结构进行分析,判断动作是不是完整,所以他把视频内的动作划分为三个阶段:开始、行动、结束。这个划分方式在以后的工作中也被大量使用。本文采用了TAG的方法生成proposal,然后把proposal分成开始、活动和结束三个阶段,对每个阶段做时间上的金子塔池化操作,然后把结果合并在一起送入两个分类器,一个判断该段是什么动作,一个判断动作完整不完整。
该文在THUMOS上IOU=0.5时MAP=29.8。主要贡献:(1)提出一个有效的三阶段机制来建模活动的时间结构,从而区分完整和不完整的proposal;(2)以端到端的方式学习网络,并且一旦训练完毕,就可以对时间结构进行快速推测;(3)该方法在主流数据集THUMOS14和ActivityNet上实现了超过以前的检测性能。
5.6 CBR
CBR,即级联的边界回归网络,是CVPR2017上的文章《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年该数据集最好的效果。
5.7 R-C3D
R-C3D,是ICCV 2017上的文章《R-C3D: Region Convolutional 3D Network for Temporal Activity Detection》。之前的方法有些用滑窗的方法计算量大,预测边界不灵活,很多都不是端到端的学习深层特征,只在分类网络上学习现成的特征对定位效果可能不佳。所以本文借鉴目标检测领域faster-rcnn的思想提出了一个端到端的网络,生成候选段和分类结合在一起学习特征,用全卷积来学习3D特征再加上ROI pooling使网络可以接收任意长度输入,生成候选段的步骤过滤掉了很多背景可以节约计算,而且候选段由预定义的anchor来预测,可以检测灵活的活动边界。
网络由三部分组成:特征抽取网络、时序候选段子网、分类子网。候选段偏移和类别分数由最后两个11*1的卷积层计算。特征和损失函数都由两个子网络共享。
该方法在THUMOS2014数据集上IOU=0.5时MAP为28.9%。主要贡献是提出了一种端到端的网络把定位和分类结合起来一起训练,可以接受任意长度视频输入并且节约了计算。
5.8 ETP
ETP,是ICMR 2018上的文章《Precise Temporal Action Localization by Evolving Temporal Proposals》,提出了三阶段的evolving temporal proposal网络,引入了非局部金字塔特征。
网络分为三个阶段:Actionness Network、Refinement Network、Localization Network。第一个网络运用TAG的方法生成proposal,是一个分类网络。第二个网络在单元水平做进一步调整,同时运用了双门的RNN更加关注视频的上下文信息。最后一个定位网络继续调整边界,采用SSN的结构,并在顶层加入了非局部块,但是为了防止对网络的影响太大,以残差连接方式加入,定位网络是一个多任务网络,不只要判断proposal是动作还是背景,还要判断它是什么动作,还要调整边界。
这篇文章在THUMOS2014数据集IOU=0.5时MAP达到34.2%。主要贡献是利用RNN更加关注动作的上下文信息,引入了非局部特征,融合了之前一些比较好的方法,达到了目前比较好的效果。
5.9 Learning Latent Super-Events to Detect Multiple Activities in Videos
潜在的超级事件,这篇是CVPR2018上的文章,在视频中学习潜在的超级事件来做多活动检测。这篇文章关注于更细粒度的检测,用的数据集是MUTITHUMOS,在THUMOS的基础上加了一些数据,平均每段视频内的活动更多。目前的方法基本都更关注候选段的决策,而忽略了整段视频的时序结构和上下文信息,连续的视频中有很多上下文信息都可以帮助我们做更好的动作检测。所以本文提出了一个超级事件的概念,与子事件相对应,一个超级事件包含一系列的子事件,是相互关联的子事件的集合。题目名为潜在的超级事件是因为这些超级事件和子事件的定义是无需标注的。文章还提出了一个时间结构过滤器来学习每类的软注意力权重从而得到超级事件表现,用它来逐帧分类。
首先将整段视频输入网络,对每帧或每个局部段落学习一个特征,这里用到了RNN还用到全卷积的网络来对每帧学习一个类别分数,然后把这些特征输入到M个时间结构过滤器里,时间结构过滤器由若干个柯西分布组成,它可以让模型知道哪些时间间隔和帧级检测相关。
用I3D特征+超级事件在MUTITHUMOS上MAP为36.4%。
5.10 Rethinking the Faster R-CNN Architecture for Temporal Action Localization
这篇是CVPR2018上的文章。之前的R-C3D是直接生硬的迁移faster-rcnn到动作检测上,有一些问题,主要是因为视频长度相差很大1s到几分钟都有可能。rethinking faster rcnn这篇文章做了一些改进,使之更适应动作检测:1)感受野对齐,用了空洞卷积;2)利用上下文,即动作前后的信息,类似SSN提到的;3)加入光流信息,并做了个晚融合。
效果非常好,thumos14直接从2017年IOU=0.5的MAP31%提高到了42%。
5.11 TACNet
TACNet,是CVPR 2019上的文章《Transition-Aware Context Network forSpatio-Temporal Action Detection》。动作检测对时间范围的检测仍不好,其主要原因是存在着一些与实际行动相似的模糊状态,即使是经过良好训练的网络,也可能被视为目标行动。本文将这些模糊样本定义为“过渡状态”,并提出了一种区分过渡状态的过渡感知上下文网络。提出的TACNET包括两个主要组成部分,即时间上下文检测器和过渡感知分类器。时间上下文检测器可以通过构造一个循环网络来提取具有恒定时间复杂度的长期上下文信息。过渡感知分类器通过对动作和过渡状态同时进行分类,进一步区分过渡状态。因此,所提出的TACNET可以显著提高时空动作检测的性能。我们对UCF101-24和J-HMDB数据集上的TACNET进行了广泛的评估。实验结果表明,TACNET在J-HMDB上获得了竞争性的性能,在帧映射和视频映射方面均明显优于未经优化的UCF101-24。
5.12 WSGN
这是CVPR 2019上的文章《Weakly Supervised Gaussian Networks forAction Detection》。检测视频中人类行为的时间范围需要详细的人工监控,包括帧级标签。这种昂贵的注释过程限制了在有限数量的类别上部署动作检测器。该文提出了一种新的动作识别方法WSGN,可以从“弱监督”的视频级标签中学习检测动作。WSGN学习利用视频特定和数据集范围的统计信息来预测每个帧与动作类别的相关性。该方法在弱监督基线上改进了超过12%的MAP,优于其他弱监督最先进的方法,在Thumos14动作检测数据集中仅落后于最先进的监督方法4%。同样地,我们的方法也只是落后于最先进的关于挑战性的字谜数据集的监控方法的0.3%。
5.13 TSA-Net
TSA-Net,是2019年8月最新文章《Scale Matters: Temporal Scale Aggregation Network for Precise Action Localization in Untrimmed Videos》提出的一种新的集成时间尺度聚合网络。主要观点是将不同膨胀率的卷积滤波器组合在一起,有效地以较低的计算成本放大接收场,从而设计多膨胀时间卷积(MDC)块。此外,为了处理不同持续时间的视频动作实例,TSA-Net由多个子网组成。它们中的每一个都采用了具有不同扩张参数的叠层MDC块,实现了针对特定持续时间动作而特别优化的时间感受野。该文遵循边界点检测的公式,检测三种临界点(即起点/中点/终点)并将它们配对生成方案。
TSA-Net网络显示出清晰和一致的更好性能,并在两个基准上重新校准最新的技术状态。在THUMOS14上的记录是46.9%,而在MAP@0.5下,之前的最好记录是42.8%,是当前最好的效果。
6 小结
视频动作识别和检测都是视频理解的重要内容,也是计算机视觉领域的重要组成部分,在视频信息检索、日常生活安全、公共视频监控、人机交互、科学认知等领域都有广泛的应用前景和社会价值,是值得长期投入的课题。
动作识别和检测的关系就类似于图像识别和图像检测,可以说识别是检测的一部分或者说是前期准备,因而目前的研究热点主要集中于难度更大的动作检测部分。随着深度学习技术的快速发展,R-C3D、 ETP、TACNet、WSGN、TSA-Net等各类新方法不断涌现,检测也从单独的时序检测延伸到时空检测,弱监督的思路也开始得到应用,准确率也大幅提升,达到了最新的46.9%(IOU=0.5),但和图像检测领域的高准确率相比,仍有很大的差距,这也是当前难以大规模商业化的原因。不过我们有理由相信,在不久的将来,准确率将取得突破,动作检测的商业化遍地开花,造福人类。
本文参考了众多网络资料及论文原文,在此表示感谢!!
(关注微信公众号“StrongerTang”,看更多文章,和小汤一起学习,一同进步!)