一、概述
动作检测是指在一段视频里,检测出人的动作(已知的几类动作)以及发生的时间和地点。目前关注比较多的是动作识别,也可以叫动作分类。动作识别的任务是,输入一段剪辑好的视频,将其归为N类已知动作中的一类,不需要关心动作发生的时间,因为剪辑好的视频包含了某个动作从开始到结束的完整过程,而且它也不用考虑视频中可能不包含任何已知的动作。所以,动作检测一般比动作识别难。但动作检测与现实中的应用关系更密切。
本文提出一种基于Multi-Stream Bi-Directional Recurrent Neural Network的方法,用于检测一段视频中人的动作。这里的Multi-Stream,是指有四个Stream的CNN网络:完整的帧和包含人的边框(fullframe and person-centric)两个空间尺度,每个尺度包含两种Stream(motion and appearance)。首先,把视频切割成一小块一小块(7帧大小),每个视频块经过多流网络提取出高级的特征描述(highlevel representations),这些特征描述又作为双向LSTM的输入,LSTM的输出是这7帧图像对应的动作标签。
本文主要有以下几点贡献:
(1)证明了在动作检测任务中使用双向的LSTM的重要性。首次把LSTM用于动作检测,由于LSTM是在包含多个动作的完整视频上训练的(不是只包含单个动作的剪辑),所以它可以学习在时间维度上相邻动作之间的相互关系。
(2)训练了一个多流的卷积网络,说明了同时使用fullframe and person-centric的的重要性。
(3)使用像素轨迹代替光流作为运动Stream,使结果显著改善。
二、方法介绍
本文框架如图1和2所示。任务是对输入的一个视频块(6帧连续的图像)进行动作分类。如图2所示,我们首先训练了四个独立的卷积神经网络,每个都基于VGG架构。在四个网络后面又接了一个全连接层,为了整合四个流的信息。如图1所示,多流网络的输出又作为双向LSTM的输入,在每个方向LSTM的隐藏状态(hidden states)之上接一个全连接层,然后再接一个softmax层,以获得对每一类动作的评分。最后,由两个LSTM的平均得分得出分类结果。
图1 整体架构
图二 MSN
2.1跟踪算法
因有些动作与周围环境没多大关系,使用跟踪算法把人从图中圈出来,在框里提取外观和动作(appearance and motion)流。本文使用了一个简单的基于状态的跟踪器(state-based tracker),如果没有人存在的话,边框是任意放置的。边框的位置只有在处理完一个视频块(6帧)之后才会更新。
2.2流网络的训练
在文献里,训练motion-based的网络时,经常会把光流作为深层网络的输入。但是,因场景中某个特定点的位置在帧和帧之间会发生变化,使用卷积神经网络对动作分类时,虽然在高层可以学到完整的运动信息,但要求更多的参数和训练数据。所以我们选了一种叫像素轨迹(pixel trajectories)的方法来表示运动信息。如图3所示,如果当前帧是t,我们在当前帧之前和之后各取K帧,In all 2K frames of a pixel trajectory, the flow values from each point to the corresponding point in frame t are all located at the point’s location in frame t.对于这句话的理解(可能不对,欢迎指正),在像素轨迹中,图像的空间布局保持不变,都跟frame t一样,但每个像素点的强度值等于framet与别的帧(比如framet-1)计算得到的光流值大小。求每个像素的运动时只需要一个1×2K的卷积核就能得到一个特征map,使用光流的方法则需要3×3×2K的卷积核(因场景中的点在帧间位置会变化)。
图3 光流与像素轨迹比较
2.3双向LSTM网络
在动作识别任务中,输入一段视频序列只需要输出一个动作标签。但动作检测的任务是为每一帧都打上正确的标签。举个例子,有一段含有100帧的视频序列,每一帧的标签都相同,如果是动作识别,我们只要能识别出任意50帧就可输出正确的标签,但对于动作检测,如果预测出来的这50帧是不连续的,就会产生多个动作片段,如图5所示。加上双向的LSTM后,就可以利用未来和过去的信息预测,进而更可能得到连续的片段。双向的LSTM的说明如图4,在工作中,前向和后向LSTM网络的softmax层为每个action类提供了一个分数scores,我们取两个LSTM网络的均值作为每个动作的得分。
图4 双向LSTM
图5 上面一行使用原始方法会产生不连续片段,下面是改进后
三、参考文献
实验结果大家可以直接看论文。
A Multi-Stream Bi-Directional Recurrent Neural Network for Fine-Grained Action Detection 2016