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。

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

本文主要是之前的笔记整理,有错误或者说的不好的地方请指出啊,请鞭笞我。
一、任务

时序动作检测主要解决的是两个任务:localization+recognization
1)where:什么时候发生动作,即开始和结束时间;
2)what:每段动作是什么类别
一般把这个任务叫做Temporal Action Detection,有的直接叫Action Detection,还有叫Action Localization、

二:评价指标:
1.AR-AN(Average Recall vs. Average Number of Proposals per Video):

Temporal Action Proposal任务不需要对活动分类,只需要找出proposals,所以判断找的temporal proposals全不全就可以测评方法好坏,常用Average Recall vs. Average Number of Proposals per Video (AR-AN) 即曲线下的面积(ActivityNet Challenge 2019就用这个测评此项任务)。。如下图:
图1
图2
AR: 平均召回率,AR = 所有视频(在某个或多个tIOU阈值下)的召回之和 / 视频数
AN: 平均每段视频提交的proposals数目, A N submission  =  total number of proposals in the submission file   total number of videos in the testing subset  \mathrm{AN}_{\text {submission }}=\frac{\text { total number of proposals in the submission file }}{\text { total number of videos in the testing subset }} ANsubmission = total number of videos in the testing subset  total number of proposals in the submission file 

说明:
1) AN其实就是每段视频你提交的proposal个数
2)比如设置ANmax = 100,则AN坐标轴每个格子表示提交1个到100个proposals,对应AR坐标轴为提交x个proposal时候的Average Recall;
3)需要注意的是如果找到的proposals不够AN数值则复制最低分的proposals到满足数量要求,如果找到的proposals超过AN数值则只要分数高的那些。
4)一般需要计算 tIOU 从0.5到0.9 并以step为0.05的AR, 再计算AR-AN。 
***图2中的蓝色即为平均后的*** 。
***简单来说就是***:在某个IOU阈值下(或者多个IOU阈值的平均),AR是平均召回,AN是提交的proposals数目(不够就复制分最高的,多了就删掉分低的),AR-AN就是提交AN个proposals时候的AR,连成曲线,求出曲线下面积就是Activatinet的评价指标。

【更详细的信息以及CODE请参考】: http://activity-net.org/challenges/2019/tasks/anet_proposals.html

2.mean Average Precision (mAP) :

Temporal Action Detection(Localization)问题中最常用的评估指标。一般对tIOU=0.5(或tIOU在(0.5, 0.9]上步长0.05的均值)进行对比,tIOU是时间上的交并。

IoU:
目标检测中loU(交并比)是模型所预测的检测框和真实(ground truth)的检测框的交集和并集之间的比例,动作检测改为对时间(维度是1)的IoU。
以下计算都需要指定在某个或多个IOU阈值下的,比如IOU = 0.5的时候的P、AP	
Precision:
计算出每个视频中每个类的正确检测次数(A),给定一个视频的类别C的Precision=本视频正确预测(True Positives)的类别C的proposal数量 / 本视频在类别C的所有proposal总数量
AveragePrecision:
Precision计算的是一段视频一个类别的精度,但是我们的测试集有很多视频,所有视频在某类C的平均精度=在测试集上所有的视频对于类C的精度值的和/有类C这个目标的所有视频的数量。
MeanAveragePrecision:
AveragePrecision计算的是所有视频对于某个类别的平均精度,但是我们有很多类别,MAP=所有类别的平均精度和 / 所有类别的视频数目
Average MeanAveragePrecision:
不同tIOU阈值下的map均值,如计算 tIOU 从0.5到0.9 并以step为0.05的map均值作为指标。
***简单来说就是***:在某个IOU阈值下,P是一段视频中预测proposal在一个类别的精度,AP是所有视频的proposal在某个类别的P的均值,map是所有类别的AP的均值

【更详细的信息以及CODE请参考】: http://activity-net.org/challenges/2019/tasks/anet_localization.html

三、DataSet:
1.THUMOS2014

该数据集包括行为识别和时序行为检测两个任务,大多数论文都在此数据集评估。

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

2.ActivityNet

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

3.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

四、基本流程

1.先找proposal,在对proposal分类和回归边界
2.找proposal方法:主要就是以下几种

(1)单纯的滑动窗口(SCNN提出):
固定一些尺寸在视频长度上滑窗,重叠度越高,效果越好,但是计算量大。
理论上这种方法只要重叠度够高,是找的最全的,但是冗余多。
(2)时序动作分组(TAG提出):
逐个视频帧分类(CNN网络),把相邻的类别一样的分成一组,设置一些阈值防止噪声干扰,一般设置多组阈值防止漏掉proposal。这种方法对于边界比较灵活,但是可能会因为分类错误漏掉proposal。
(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来预测,可以检测灵活的活动边界。
这里写图片描述
网络由三部分组成:特征抽取网络、时序候选段子网、分类子网。
候选段偏移和类别分数由最后两个111的卷积层计算。特征和损失函数都由两个子网络共享。
该方法在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%。

10.CVPR2018-Rethinking the Faster R-CNN Architecture for Temporal Action Localization

之前的R-C3D是直接生硬的迁移faster-rcnn到动作检测上,有一些问题,主要是因为视频长度相差很大1s到几分钟都有可能。rethinking faster rcnn这篇文章做了一些改进,使之更适应动作检测:1)感受野对齐,用了空洞卷积2)利用上下文,即动作前后的信息,类似ssn提到的3)加入光流信息,并做了个晚融合。
效果超级之好,目前我知道的thumos14最佳,直接从去年IOU=0.5的map31%提高到了42%,参考以下链接文章的详细描述吧。https://blog.csdn.net/qq_33278461/article/details/81155181

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

这里写图片描述

时空动作检测(spatio-temporal action detection)是一项计算机视觉任务,旨在从视频片段中准确地检测和识别出发生的动作。与传统的动作识别任务相比,时空动作检测旨在通过不仅仅检测动作在空间上的出现,还要捕捉动作在时间上的变化。 时空动作检测往往涉及以下几个主要步骤: 1. 帧级特征提取:首先,利用现有的特征提取技术,从每个视频帧中提取稳定而有信息量的特征,以捕捉空间信息。 2. 时间建模:接下来,通过对连续帧之间的变化进行建模,来捕捉动作的时间相关性和动态信息。这可以通过各种技术,如光流,差分图和循环网络等来实现。 3. 动作检测:在获得空间和时间特征后,利用学习算法(如深度神经网络)来进行动作检测。这通常通过将时空特征输入到分类器,然后根据预先训练的模型推断动作类别和位置。 4. 时空定位:最后,定位动作视频中的准确位置。这可以通过在时间上进行滑窗检测,并使用非极大值抑制来抑制重叠检测结果来实现。 时空动作检测在很多领域具有广泛应用,比如视频监控、智能交通、运动分析和人机交互等。通过准确地检测和识别动作,我们可以实现更精确的行为理解和动作预测,从而为许多实际应用带来便捷和效益。然而,时空动作检测仍然存在一些挑战,如动作遮挡、背景干扰和不同尺度的动作等问题,所以该领域的研究仍在不断发展和进步。
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值