Video Analysis 相关领域解读之Temporal Action Detection(时序行为检测)
上一篇笔记介绍了 Action Recognition 领域的研究进展。Action Recognition主要是用于给分割好的视频片段分类,但实际中大部分视频都是未分割的长视频。所以这就引出了今天要介绍的领域:Temporal Action Detection(或者叫Temporal Action Localization,意思相同)。过去半年时间我也一直在做这个方向,投了两篇论文,如果能中的话应该会写笔记介绍一下~
任务特点及分析
任务目的
给定一段未分割的长视频,算法需要检测视频中的行为片段(action instance),包括其开始时间、结束时间以及类别。一段视频中可能包含一个或多个行为片段。
任务特点与难点
action recognition与temporal action detection之间的关系同 image classfication与 object detection之间的关系非常像。基于image classification问题,发展出了许多强大的网络模型(比如ResNet,VGGNet等),这些模型在object detection的方法中起到了很大的作用。同样,action recognition的相关模型(如2stream,C3D, iDT等)也被广泛的用在temporal action detection的方法中。
由于temporal action detection和object detection之间存在一定的相似性,所以很多temporal action detection方法都采用了与一些object detection方法相似的框架(最常见的就是参考R-CNN系列方法)。具体的会在后面的论文介绍中讲到。
时序行为检测的难点1:在目标检测中,物体目标的边界通常都是非常明确的,所以可以标注出较为明确的边界框。但时序行为的边界很多时候并不是很明确,什么时候一个行为算开始,什么时候行为算结束常常无法给出一个准确的边界(指精确的第几帧)。
时序行为检测的难点2:只使用静态图像的信息,而不结合时序信息在行为识别中是可以的(虽然结合时序信息效果会更好)。但在时序行为检测中,是无法只使用静态图像信息的。必须结合时序的信息,比如使用RNN读入每帧图像上用CNN提取的特征,或是用时序卷积等。
时序行为检测的难点3:时序行为片段的时间跨度变化可能非常大。比如在ActivityNet中,最短的行为片段大概1s左右,最长的行为片段则超过了200s。巨大的时长跨度,也使得检测时序动作非常难。
任务关键点
我认为设计一个好的时序行为检测方法的关键主要在于以下两点:
高质量的时序片段(行为的时序边界):很多方法都是使用Proposal + classification的框架。对于这类方法,重要的是较高的proposal质量(即在保证平均召回率的情况下,尽可能减少proposal的数量)。此外,对于所有方法,获取准确的时序行为边界都是非常重要的。
准确的分类(行为的类别):即能准确的得到时序行为片段的类别信息。这里通常都会使用行为识别中的一些方法与模型。
数据库
时序行为检测的数据库也有很多,下面主要介绍几个常用的主流数据库:
THUMOS 2014:该数据集即为THUMOS Challenge 2014,地址为crcv.ucf.edu/THUMOS14/。该数据集包括行为识别和时序行为检测两个任务。它的训练集为UCF101数据集,包括101类动作,共计13320段分割好的视频片段。THUMOS2014的验证集和测试集则分别包括1010和1574个未分割过的视频。在时序行为检测任务中,只有20类动作的未分割视频是有时序行为片段标注的,包括200个验证集视频(包含3007个行为片段)和213个测试集视频(包含3358个行为片段)。这些经过标注的未分割视频可以被用于训练和测试时序行为检测模型。实际上之后还有THUMOS Challenge 2015,包括更多的动作类别和视频数,但由于上面可以比较的方法不是很多,所以目前看到的文章基本上还是在THUMOS14上进行实验。
MEXaction2:MEXaction2数据集中包含两类动作:骑马和斗牛。该数据集由三个部分组成:YouTube视频,UCF101中的骑马视频以及INA视频,数据集地址为http://mexculture.cnam.fr/xwiki/bin/view/Datasets/Mex+action+dataset 。其中YouTube视频片段和UCF101中的骑马视频是分割好的短视频片段,被用于训练集。而INA视频为多段长的未分割的视频,时长共计77小时,且被分为训练,验证和测试集三部分。训练集中共有1336个行为片段,验证集中有310个行为片段,测试集中有329个行为片断。且MEXaction2数据集的特点是其中的未分割视频长度都非常长,被标注的行为片段仅占视频总长的很低比例
ActivityNet: 目前最大的数据库,同样包含分类和检测两个任务。数据集地址为http://activity-net.org/index.html ,这个数据集仅提供视频的youtube链接,而不能直接下载视频,所以还需要用python中的youtube下载工具来自动下载。该数据集包含200个动作类别,20000(训练+验证+测试集)左右的视频,视频时长共计约700小时。由于这个数据集实在太大了,我的实验条件下很难完成对其的实验,所以我之前主要还是在THUMOS14和MEXaction2上进行实验。
研究进展
temporal action detection近年的文章很多,这里也只简单介绍比较有代表性的几个工作。此外,此处仅介绍2016年底之前发布的相关工作,CVPR2017上的新工作我打算单独写一篇笔记进行更详尽的讨论,简要的介绍可见我之前的知乎回答https://www.zhihu.com/question/57523080/answer/158568414 。为了方便对比,下面的数据库均只介绍其在THUMOS14数据库上的结果。
End-to-end learning of action detection from frame glimpses in videos (CVPR2016)
这篇文章是李飞飞实验室的工作。这篇文章使用强化学习的方法训练了一个基于RNN的代理(agent,不太确定应该怎么翻译)。这个agent不断观察视频帧并不断决定接下来要看哪里以及什么时候要生成一个动作预测。与后面很多基于proposal的方法不同,该方法是end-to-end且是直接生成行为预测的。
该方法在THUMOS14上的mAP为17.1%(重叠度阈值取0.5)
Temporal Action Localization with Pyramid of Score Distribution Features (CVPR2016)
该方法在特征方面使用了传统的iDT特征。简单来说,该方法基于iDT特征对视频提取了一种分数分布金字塔特征(Pyramid of Score Distribution Feature, PSDF).之后再使用了LSTM网络对PSDF特征序列进行处理,并根据输出的frame-level的行为类别置信度分数处理得到行为片段的预测。
PSDF方法效果还是不错的,表明传统特征其实也还有一战之力。但是iDT特征的提取实在是太耗时/耗储存空间了。(iDT特征的大小要比原始视频的大小都要大很多)。个人认为用iDT特征做行为检测的前景不大。
该方法在THUMOS14上的mAP为18.8%(重叠度阈值取0.5)
Temporal action localization in untrimmed videos via multi-stage cnns (CVPR2016)
该方法的整体框架图如下所示。我之前写过这篇文章的论文笔记,见http://blog.csdn.net/wzmsltw/article/details/65437295 ,代码见https://github.com/zhengshou/scnn/ 。该方法首先使用滑窗的方法生成多种尺寸的视频片段(segment),再使用多阶段的网络(Segment-CNN)来处理。SCNN主要包括三个子网络,均使用了C3D network。第一个是proposal network,用来判断当前输入的视频片段是一个动作的概率;第二个为classification network,该网络用于给视频片段分类,但该网络不用于测试环节,而只是用作初始化localization network;第三个子网络为localization network,该网络的输出形式依旧为类别的概率,但在训练时加入了重叠度相关的损失函数,使得网络能更好的估计一个视频片段的类别和重叠度。最后采用了非极大化抑制(NMS)来去除重叠的片段,完成预测。
该方法实际上采用了类似于R-CNN的思路,后面有不少文章也采用了类似的思想,即先提proposal,再分类。
该方法在THUMOS14上的mAP为19.0%(重叠度阈值取0.5)
Efficient Action Detection in Untrimmed Videos via Multi-Task Learning (WACV2016)
这篇文章实际上是将SCNN的多阶段网络放到了一个网络里面去,通过共享前面的卷积层,加快了算法的速度。但从效果上看,基本与SCNN完全相同。感觉算是SCNN的完善版本。
该方法在THUMOS14上的mAP为19.0%(重叠度阈值取0.5).其余重叠度阈值下的表现也与SCNN基本一致。
小结与讨论
这两年时序行为检测领域发展的非常快,相对于目标检测来说,时序行为检测这个方向做的人相对还是比较少,有很大的发(水)展(paper)空间。但一个很大的问题是处理视频数据计算量很大,所以这方面的研究很受硬件条件的影响,羡慕大佬们论文中各种四路titan,四路k40的配置啊。之后会再专门写笔记介绍CVPR2017中该领域的进展情况。
本文为极市原创文章,首发于极市(http://cvmart.net/)。转载授权请联系小助手(微信:Extreme-Vision)
PS. 目前我们将致力于打造视觉高端技术开发社区(限40人),为开发者提供可落地项目需求,提供视觉行业内有价值的资源,开拓算法盈利渠道,了解市场算法需求趋势并获取高端人脉等。欢迎有意向接项目的开发者扫描下面二维码填表一起来合作商业项目~