注:本文首发在微信公众号-极市平台。如需转载,请联系微信Extreme-Vision
这篇文章主要介绍Zheng Shou在CVPR2016上的工作”Temporal action localization in untrimmed videos via multi-stage cnns”[1]。之后会再介绍他在CVPR2017 上的新工作。
首先介绍一下这篇文章要解决的问题。视频中的人体行为识别主要包括两个方向:Action Recognition 以及 Temporal Action Localization, 分别进行简单的介绍:
这篇文章主要解决Temporal Action Localization的问题。SCNN指segment based CNN,即基于视频片段的CNN网络。文章的代码见SCNN github地址。
如图所示即为SCNN的整体模型框架。主要包括三个部分,1)多尺度视频片段的生成;2)多阶段SCNN;3)后处理。下面分别进行介绍
SCNN模型框架的第一步就是生成候选的视频片段,之后拿这些片段作为下一步的输入。在SCNN中采用了划窗方法产生视频片段,包括多个大小的窗口:16,32,64,128,256,512, 划窗的重叠为75%。在得到视频片段后,对其进行平均采样16帧视频,从而使得输出的segment的长度均为16。在生成训练数据时,同时还记录和segment和ground truth instance之间的最大重叠度(IoU)以及类别(即如果存在多个重叠的ground truth,取重叠度最大的那个)。
SCNN 共有3个阶段:proposal, classification and localization network。三者均为结构相同的C3D network[2],只有最后一层全连接层根据任务不同而有不同的长度。三者的输入均为上一步得到的segment。
Proposal Network: 输出为两类,即预测该segment是动作的概率及是背景的概率(action or not)。训练时将IoU大于0.7的作为正样本(动作),小于0.3的作为负样本(背景),对负样本进行采样使得正负样本比例均衡。采用softmax loss进行训练。
classification Network: 输出为K+1个类别(包括背景类)的分数, 这个网络被用来初始化localization network, 仅在训练阶段使用,在测试阶段不使用。训练时同样将IoU大于0.7的作为正样本(K类动作),小于0.3的作为背景类,对背景类动作进行采样使得背景类动作的数量和K类动作数量的平均值相近。训练时同样采用softmax loss。
Localization Network:输出为K+1个类别(包括背景类)的分数,这个分数应该算做是该segment是某类动作的置信度分数。在训练时localization network用训练好的classification network做初始化,使用与classification network 相同的数据集,但增加了基于IoU分数的overlap Loss.其loss function为:
λ 为比例系数,SCNN中设为1。overlap loss为:
其中 kn 为该segment的真实类别, vn 为其IoU, Pn 为localization network 的输出分数。 α 为超参数。 这个loss的作用是根据IoU的分数调整预测结果,使得输出的分数不仅能对动作的类别进行分类,还能够估计其与ground truth的重叠程度。有利于后续的NMS。
测试时的计算流程: 在测试时,只使用proposal 及 localization network。对于每个segment,先用proposal network计算它是动作的概率,若这个概率高于阈值(0.7),则作为一个候选segment进入下一个阶段用localization network计算置信度分数,低于阈值的segment都会被舍弃。
后处理是在测试阶段进行的。使用的方法是基于 Pl (localization network的输出分数)进行非极大化抑制(NMS)来移除重叠,在SCNN中,NMS的阈值被设置为0.1。下图就是NMS的一个例子,对于时序上重叠的动作,通过NMS去除分数低的,保留分数高的。
在测评结果时,temporal action localization 问题一般使用的是mAP指标,即各个动作类别的Average Precision(AP)的平均。当一个动作实例与ground truth的重叠度IoU大于阈值,且类别正确时,被视为正确的预测。常用的阈值为0.5,或者同时用多个阈值来进行比较。SCNN分别在MEXaction2以及THUMOS 2014上进行了实验,其结果如下表所示。
可以看出SCNN均获得了不错的效果,是当时state-of-the-art的结果。
在SCNN中,划窗+Proposal Network 构成了算法的proposal部分,这里如果不用Proposal network,直接用划窗结果进行预测的话mAP会下降大概2个百分点(论文实验中给出),proposal network的主要作用是去除一些背景片段。
实际上,proposal的生成也是temporal action localization问题中的难点,这点与Object Detection中的Proposal 生成(R-CNN中的region proposal)类似。一个好的proposal 算法能够大大提高模型的效果。有论文专门讨论这个问题,比如Deep Action Proposal [3]等。
此外,SCNN中segment的大小是通过划窗确定的,很可能不够准确。目前CVPR2017上出现的几篇新的论文[4,5]都对这方面有所讨论,并采用了不同的方法提高segment proposal的边界精度。目前在THUMOS数据集上最好的精度大概比SCNN高十个百分点[4].
[1] Shou Z, Wang D, Chang S F. Temporal action localization in untrimmed videos via multi-stage cnns[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 1049-1058.
[2] Tran D, Bourdev L, Fergus R, et al. Learning spatiotemporal features with 3d convolutional networks[C]//Proceedings of the IEEE International Conference on Computer Vision. 2015: 4489-4497.
[3] Escorcia V, Heilbron F C, Niebles J C, et al. Daps: Deep action proposals for action understanding[C]//European Conference on Computer Vision. Springer International Publishing, 2016: 768-784.
[4] Xiong Y, Zhao Y, Wang L, et al. A Pursuit of Temporal Accuracy in General Activity Detection[J]. arXiv preprint arXiv:1703.02716, 2017.
[5] Shou Z, Chan J, Zareian A, et al. CDC: Convolutional-De-Convolutional Networks for Precise Temporal Action Localization in Untrimmed Videos[J]. arXiv preprint arXiv:1703.01515, 2017.