对该动作识别的理解
动作识别⼀般指从2D序列帧组成的视频中分辨不同动作,并且动作有可能只在⼀定区间出现.⽽动作是动态的,因此就需要结合时间域上信息进⾏识别.但是动作识别存在以下问题: 1. 需要巨⼤的计算耗时:如过时间域信息不可避免就需要多帧运算,其参数⽐单帧图像分类问题将会多出⼏倍.
2. 要考虑上下⽂:例如图像模型很容易识别⼈和泳池,但⽆法识别该⼈动作是⾃由泳还是蛙泳.
3. 设计⽹络结构:设计⼀个能够获取时空信息的⽹络是⾮常重要的,⽽且结构的验证也是⾮常耗时的.
发展历程
在深度学习之前使⽤的传统⽅法,例如密集轨迹算法[1](improved dense trajectories,简称iDT),深度学习⽅法⽹络的发展⽅向分为时空⽹络、多流⽹络、深层⽣成⽹络和时间相⼲⽹络.深度学习各个⽅向将在第2节进⾏分析. 图1 对动作识别的分类分解
深度学习⽅法⽹络结构分析
图2 多种时间维度上的融合⽅式
使⽤深度学习⽅法进⾏动作识别从2012年AlexNet[2]的出现⽽流⾏,在14年时,Karpathy等⼈[3]实验了多种时间维度上的融合⽅式,如图2所⽰,其希望通过预训练的2D卷积从连续帧中获取时序信息.尽管作者做了很多的实验,但发现效果相⽐之前的⼿⼯标注特征的最好效果差很多.这是有多个原因导致的,总结起来主要是作者设计的模型所学习到的时空特征中没有抓取到动作特征;另外数据集缺乏多样性,学习到太多具有⼲扰因素的细节特征.因此,后⾯的⽹络结构倾向于学习时间域上特征.以下分
析参考了Herath等⼈[4]的综述和⾃⾝理解.
时空⽹络
时空⽹络的输⼊时单⼀流,通过⽹络结构学习时间域上信息,例如,三维卷积⽹络(3D convolution ,简称C3D)和循环神经⽹络(recurrent neural network, 简称RNN).
C3D
Tran等⼈[5],在2015年提出使⽤3D卷积学习时空域的特征.3D卷积⽹络的卷积核是多层的 ,因此卷积核可以提取到多帧运动信息.如图3所
⽰,与2D卷积融合成⼀层特征图不同的是3D卷积的输出仍然为3D的特征图.
图3 2D卷积(左)与3D卷积(右)
通过扩展输⼊的时间深度以及将⽹络的决策与输⼊处不同的时间感知相结合,可以观察到改进.将空间滤波器扩展到三维滤波器虽然是主流,但不可避免地会增加⽹络参数的数量.Sun等⼈[6],在2015年提
出FstCN⽹络结构,在改善3D滤波器的下⾏效应时,建议将3D滤波器分解为2D 和1D滤波器的组合,如公式1所⽰.通过对参数的缩减,他们在训练过程中没有在多个视频数据集之间进⾏任何知识转移,取得了不错性能.
如图4所⽰,FstCN其核⼼在2D卷积层后,接着时间卷积(图4中间上层)和有助于丰富特征并⾏空间卷积(图4中间下⾏).对于时间卷积层需要对尺⼨为的3D特征图进⾏转换,利⽤2D卷积核完成对时间维度的卷积,这⼀过程表⽰为公式2.变换后的特征图尺⼨为,再利⽤1D卷积核完成对空间的卷积,这⼀过程表⽰为公式3. 最后时间和空间卷积层通过全连接层连接.⽽如今的深度
学习框架都⽐较成熟,可以直接实现 3D特征中的时间维度卷积.图4 FstCN ⽹络结构
RNN
Donahue等⼈[7],在2015年提出利⽤CNN结合长短时记忆神经⽹络 (long short term memory,简称LSTM)组成的长期循环卷积⽹络(Long-term Recurrent Convolutional Network,简称LRCN)⽹络结构进⾏动作识别,如图5所⽰.视频的每⼀帧输⼊到CNN⽹络中,然后
CNN⽹络的输出作为LSTM的输⼊,LSTM的输出作为最终⽹络的输出.其结合了卷积层和长时递归,同时端对端可训练.
图5 长期循环卷积⽹络
奶浆柴胡
K =K ⊗x ,y k ,(1)
t R C ×T ×H ×W K ∈x ,y R n ×n x y R HW ×C ×T ′
k ∈t R n t F :,:,i =s (t )V :,;,i ∗(t )K ,i =x ,y t 1,…,m ,(2)
t F i ,i ,:=st (x y )F i ,i ,:∗s (x y )k ,i =t x 1,…,m ,i =x y 1,…,m ,(3)
y
胸针设计
使⽤循环神经⽹络的⽬的是希望通过递归模块实现长时学习,即学习时间域上信息.RNN模型⼀个明显限制是其在时间上严格整合状态信息,也就是“梯度消失/爆炸”效应:在实践中,通过⼀个长时间间隔去反向传播误差信号的能⼒变得逐渐困难.LSTM单元有隐状态增强和⾮线性机制,通过利⽤⼀个简单的学习过的门限函数,可以不修改、不更新、不复位地对状态进⾏传播.因此更适合视频动作识别.如图6所⽰,RNN的隐藏层总是被输⼊到下⼀层,因此会导致长期依赖,从⽽在进⾏长距离预测时将变得⾮常困难.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所⽰,对于光流堆中每⼀帧,表⽰为x⽅向和y⽅向的2层.
h t I ∈τR w ×h ×2L
轨迹堆根据公式5所⽰的轨迹递推表⽰.双流融合⽹络
由于Simonyan[8]等⼈提出的⽹络只在softmax分数后融合,⽆法学习到时间特征和空间特征的像素间的对应关系.因此Feichtenhofer[9]等⼈,在2016年提出了将双流⽹络在卷积层上进⾏融合,结果表明,
在最后⼀层卷积层后进⾏融合可以获得最佳的融合精度,如图10所⽰.有趣的是,在卷积层之后⽴即进⾏融合将消除两个流中代价⾼的完全连接层的需求.与原始的双流⽹络相⽐ 融合⽹络仅使⽤了⼀半的参数,表现同样出
⾊.
图 10 第4层融合(左)和第8层融合(右)
其最终⽹络结构如图11所⽰,时空流⽹络通过卷积融合学习时域(绿)和空域(蓝)学习对应关系权重,如公式6表⽰,同时也能学习局部空间纬度和时间纬度权重.融合后的时空流⽹络和独⽴的时间流⽹络都在经过3D pooling后去学习时空流特征以及独⽴的时间流特征,⽤来识别输⼊的
视频.
图11 融合双流⽹络总结构
⽣成⽹络
在动作识别的另⼀个⽅向视频预测上,希望通过⽣成⽹络来学习视频底层分布,预测未来的序列.并且互联⽹上存在海量视频,对于利⽤⽆监督的⽣成⽹络来说提供优势.
LSTM ⾃动编码器
I (u,v,2k −τ1)=d p τ+k−1x
(k )I (u,v,2k)=τd p ,u =τ+k−1y
(k )[1;w],v =[1;h],k =[1;L]),(4)
p =1(u ,v );p =k p +k −1d p ,k >τ+k −2(k −1)1,(5)
,(6)
y =cat 3,x ,x ,y ∈R ca t (t a t b )ca t H ×W ×2D
y =y ∗f +b ,f ∈R ,b ∈R conv ca t 1×1×2D ×D D
Srivastava[10]等⼈,在2015年提出⼀种复合⽣成LSTM模型,如图12所⽰,⽤于构建⽣成⽹络.在编码层输⼊连续3帧(),过LSTM的内部状态捕获输⼊序列的压缩版本,如图12左所⽰.然后将状态复制到两个解码器模型中,这两个模型具有重构性和预测性.重构解码器将以相反顺序重构原始帧(),如图12右上所⽰.预测解码器对未来帧进⾏预测(
),如图12右下所⽰.
图12 基于LSTM的深度⾃动编码器
对抗性⽹络
为了避免深度⽣成模型训练中的各种困难,Mathieu等⼈[11]在2015 引⼊多尺度⽣成对抗⽹络(Generative Adversarial Networks,简称GAN).如图13所⽰,判别模型学习确定样本是来⾃⽣成模型还是来⾃数据本⾝.在训练过程中,⽣成模型学习⽣成与原始数据有更多相似之处的样本,⽽判别模型提⾼了对给定样本是否真实的判断.并且训练多尺度卷积⽹络进⾏视频预测.利⽤对抗性训练建⽴卷积⽹络,避免了汇聚层.他们
还讨论了⽣成模型中池化的优点.
图13 多尺度GAN结构升降柱cncame
将对尺⼨为s_k的输⼊图⽚进⾏的上采样操作记为KaTeX parse error: Expected group after '_' at position 2: u_,整个⽹络可以采⽤下⾯的递推公式7进⾏表⽰. 的预测⽬标为, 即利⽤输⼊的两帧图⽚,以及⼀张对于的粗略预测图⽚来预测⼀个关于⽬标的偏移量.训练判别⽹络时固定⽣成⽹络的权重,采⽤SGD对判别⽹络权重进⾏更新,如公式8所⽰.
对于每个尺度的输⼊,判别⽹络应该将包含⽣成的帧的视频序列预测为0,将真实的原始视频序列预测为1,其中L_{bce}为⼆进制交叉熵损失函数,如公式9所⽰
v ,v ,v 123,,v 3v 2v 1,,v 4v 5v 6G k ′
−Y k u k Y k −1Y k =Y k G (X )=k u ()+k Y k −1G X ,u (),(7)k ′
(k k Y k −1)L (X,Y)=a dv D L D X ,Y ,1+k=1∑N scale s
bce (k (k k ))L D X ,G (X),0,(8)
bce (k (k k ))L (Y,)=bce Y −Y +i ∑1log Y (1)1−log 1−Y ,(9)(Y 1)(i )