理解动作识别
动作识别一般指从2D由序列帧组成的视频区分不同的动作,动作可能只出现在一定范围内.动作是动态的,因此需要结合时间域的信息进行识别.但动作识别存在以下问题:
- 需要巨大的计算时间:如果时间域信息不可避免地需要多帧操作,其参数将是单帧图像分类的几倍.
- 考虑上下文:例如,图像模型很容易识别人和游泳池,但无法识别人是自由泳还是蛙泳.
- 设计网络结构:设计一个能够获取时空信息的网络非常重要,验证结构也非常耗时.
发展历程
传统的深度学习方法,如密集轨迹算法[1](improved dense trajectories,简称iDT),网络的发展方向分为时空网络、多流网络、深度生成网络和时间相关网络.第二节将分析深度学习的各个方向. 图1 动作识别的分类分解
网络结构分析深度学习方法
图2 多时间维度的融合模式
2012年采用深度学习方法进行动作识别AlexNet14年来,[2]的出现很流行,Karpathy等人[3]实验了各种时间维度的融合,如图2所示,希望通过预训练2D从连续帧中获取时序信息.尽管作者做了很多实验,但是发现效果比之前手工标注的最佳效果差很多.这是由多种原因引起的。综上所述,主要原因是作者设计的模型在时空特征中没有捕捉到动作特征;此外,数据集缺乏多样性,学习了太多具有干扰因素的细节特征.因此,后面的网络结构倾向于学习时间域的特征.以下分析参考了Herath等人[4]的综述和自我理解.
时空网络
时空网络的输入时间是单一,通过网络结构学习时间域信息,如三维卷积网络(3D convolution ,简称C3D)和循环神经网络(recurrent neural network, 简称RNN).
C3D
Tran2015年等人[5]提出使用3D学习时空域的特征.3D卷积网的卷积核是多层的 ,因此,卷积核可以提取多帧运动信息.如图3所示,与2D卷积融合成一层特征图不同于3D卷积输出仍为3D的特征图. 图3 2D卷积(左)和3D卷积(右) 通过扩大输入的时间深度,结合网络决策和输入的不同时间感知,可以观察到改进.虽然将空间滤波器扩展到三维滤波器是主流,但不可避免地会增加网络参数的数量.Sun2015年提出等人[6]FstCN网络结构正在改进3D当滤波器下降时,建议使用3D滤波器分解为2D和1D滤波器的组合,如公式1所示.通过减少参数,他们在训练过程中没有在多个视频数据集之间转移任何知识,取得了良好的性能. K = K x , y ? k t , ( 1 ) K=K_{x,y} \otimes k_t ,(1) K=Kx,y?kt,(1)
如图4所示,FstCN其核心在2D卷积层后,时间卷积(图4中间上层)和并行空间卷积(图4中间下行)有助于丰富特征.时间卷积层需要尺寸 R C × T × H × W R^{C \times T \times H \times W} R
F s t ( i x , i y , : ) = F s ( i x , i y , : ) ∗ k t , i x = 1 , … , m x , i y = 1 , … , m y , ( 3 ) {F}_{ {st}}\left({i}_{ {x}}, {i}_{ {y}},:\right)={F}_{ {s}}\left({i}_{ {x}}, {i}_{ {y}},:\right) * {k}_{ {t}}, {i}_{ {x}}=1, \ldots, {m}_{ {x}}, {i}_{ {y}}=1, \ldots, {m}_{ {y}},(3) Fst(ix,iy,:)=Fs(ix,iy,:)∗kt,ix=1,…,mx,iy=1,…,my,(3) 图4 FstCN 网络结构
RNN
Donahue等人[7],在2015年提出利用CNN结合长短时记忆神经网络 (long short term memory,简称LSTM)组成的长期循环卷积网络(Long-term Recurrent Convolutional Network,简称LRCN)网络结构进行动作识别,如图5所示.视频的每一帧输入到CNN网络中,然后CNN网络的输出作为LSTM的输入,LSTM的输出作为最终网络的输出.其结合了卷积层和长时递归,同时端对端可训练. 图5 长期循环卷积网络
使用循环神经网络的目的是希望通过递归模块实现长时学习,即学习时间域上信息.RNN模型一个明显限制是其在时间上严格整合状态信息,也就是“梯度消失/爆炸”效应:在实践中,通过一个长时间间隔去反向传播误差信号的能力变得逐渐困难.LSTM单元有隐状态增强和非线性机制,通过利用一个简单的学习过的门限函数,可以不修改、不更新、不复位地对状态进行传播.因此更适合视频动作识别.如图6所示,RNN的隐藏层 h t h_t ht总是被输入到下一层,因此会导致长期依赖,从而在进行长距离预测时将变得非常困难.LSTM的核心是细胞状态,通过精心设计的称作为“门”的结构来去除或者增加信息到细胞状态的能力.LSTM 拥有三个门,分别是输入门(Input Gate)、遗忘门(Forget Gate)和输出门(Output Gate)来保护和控制细胞状态. 图6 RNN单元和LSTM单元
对与不同的视频识别任务,例如动作识别、图片描述、视频描述任务来实例不同网络,如图7所示. 图7 动作识别(左)、图片描述(中)、视频描述(右)任务对应的网络结构
多流网络
使用多流基于Milner等人提出三维双流假说(Two-stream Hypothesis):人类视觉皮层包含两个通路: 1. 腹流 (central stream),主要参与物体识别:2. 背流 (dorsal stream),主要参与空间位置信息处理动作识别.
双流网络
Simonyan[8]等人,在2014年提出将基于外观的信息与与运动相关的信息分离,用于动作识别.引入了最早的两个并行网络,如图8所示,用于动作识别的多流深度卷积网络之一.所谓的空间流网络(Spatial stream)接受原始静止视频帧,而时间流网络(Temporal stream)接受光流场作为输入. 其分别以RGB和叠加光流帧作为输入的双流网络.空间流和时间流在softmax分数后融合在一起,最后使用SVM进行分类. 图8 双流网络
空间流网络输一帧图像,其结构可以基于图片分类网络,例如AlexNet[1]等,且可以使用ImageNet数据集进行预训练.而对于时间流网络,需要计算光流堆或轨迹堆作为输入,如图9所示. 图9 光流堆(左)和轨迹堆(右)
光流堆中图片中每个位置p有L*2层,代表分为L层x位移和Ly方向位移.如公式4所示,对于光流堆中每一帧 I τ ∈ R w × h × 2 L I_\tau \in R^{w\times h \times \mathbb {2}L} Iτ∈Rw×h×2L,表示为x方向和y方向的2层.
I τ ( u , v , 2 k − 1 ) = d τ + k − 1 x ( p k ) \mathrm{I}_{\mathrm{\tau}}(\mathrm{u}, \mathrm{v}, 2 \mathrm{k}-1)=\mathrm{d}_{\mathrm{\tau}+\mathrm{k}-1}^{\mathrm{x}}\left(\mathrm{p}_{\mathrm{k}}\right) Iτ(u,v,2k−1)=dτ+k−1x(pk)
I τ ( u , v , 2 k ) = d τ + k − 1 y ( p k ) , u = [ 1 ; w ] , v = [ 1 ; h ] , k = [ 1 ; L ] ) , ( 4 ) \mathrm{I}_{\tau}(\mathrm{u}, \mathrm{v}, 2 \mathrm{k})=\mathrm{d}_{\tau+\mathrm{k}-1}^{\mathrm{y}}\left(\mathrm{p}_{\mathrm{k}}\right), \mathrm{u}=[1 ; \mathrm{w}], \mathrm{v}=[1 ; \mathrm{h}], \mathrm{k}=[1 ; \mathrm{L}]), (4) Iτ(u,v,2k)=dτ+k−1y(pk),u=[1;w],v=[1;h],k=[1;L]),(4)
轨迹堆根据公式5所示的轨迹递推表示.
p 1 = ( u , v ) ; p k = p k − 1 + d τ + k − 2 ( p k − 1 ) , k > 1 , ( 5 ) p_{1}=(u, v) ; p_{k}=p_{k-1}+d_{\tau+k-2}\left(p_{k-1}\right), k>1,(5) p1=(u,v);pk=pk−1+dτ+k−2(pk−1),k>1,(5)
双流融合网络
由于Simonyan[8]等人提出的网络只在softmax分数后融合,无法学习到时间特征和空间特征的像素间的对应关系.因此Feichtenhofer[9]等人,在2016年提出了将双流网络在卷积层上进行融合,结果表明,在最后一层卷积层后进行融合可以获得最佳的融合精度,如图10所示.有趣的是,在卷积层之后立即进行融合将消除两个流中代价高的完全连接层的需求.与原始的双流网络相比 融合网络仅使用了一半的参数,表现同样出色. 图 10 第4层融合(左)和第8层融合(右)
其最终网络结构如图11所示,时空流网络通过卷积融合学习时域(绿)和空域(蓝)学习对应关系权重,如公式6表示,同时也能学习局部空间纬度和时间纬度权重.融合后的时空流网络和独立的时间流网络都在经过3D pooling后去学习时空流特征以及独立的时间流特征,用来识别输入的视频.
y c a t = cat ( 3 , x t a , x t b ) , y c a t ∈ R H × W × 2 D y c o n v = y c a t ∗ f + b , f ∈ R 1 × 1 × 2 D × D , b ∈ R D , ( 6 ) \begin{array}{c} y^{\mathrm{cat}}=\operatorname{cat}\left(3, x_{t}^{a}, x_{t}^{b}\right), y^{\mathrm{cat}} \in R^{H \times W \times 2 D} \\ y^{\mathrm{conv}}=y^{\mathrm{cat}} * f+b, f \in R^{1 \times 1 \times 2 D \times D}, b \in R^{D} \end{array}, (6) ycat=cat(3,xta,xtb),ycat∈RH×W×2Dyconv=ycat∗f+b,f∈R1×1×2D×D,b∈RD