system: [SYSTEM]

user: 3. 模型框架 本文的行为识别网络架构如图1所示，接下来我们将对模型框架作详细的介绍。本文首先利用光流算法 [ 28 ] 计算得到原始视频帧的光流图，以此来描述视频的动态变化。利用开源视频姿态关键点检测算法 [ 6 ] 检测每个视频帧的人体关节点的二维坐标位置，跨时间序列的人体关节点的二维坐标自然的表示了动态骨架的形态，然后通过分析其运动模式来识别视频中的人体行为所属的类别。为此，本文设计了一个三流网络来学习和整合多模态特征。首先，我们将原始视频帧和提取的光流图送入I3D卷积网络中，提取表观特征和运动特征。为了抑制不必要的冗余信息，本文在I3D网络中引入了空间注意力机制，提取自I3D网络的特征在经过注意力机制学习后得到权重增强的新特征，并将其送入全连接层学习更高语义特征。然后，对于提取的姿态序列，本文用姿态网络建模其空间结构特征和长时序依赖。最后通过对多模态特征的学习，进而实现视频的动作识别。 图1. 行为识别网络整体架构图 3.1. 基于姿态序列的姿态图构建 人体姿态序列和关节的轨迹对场景和光照变化有很强的鲁棒性，其空间结构和时序动态变化为行为识别提供了强有力的辨别特征，在很大程度上弥补了RGB和光流特征的不足。通常视频由一系列的帧组成，每一帧的姿态序列是一组关节点坐标的集合，本文用姿态检测算法 [ 6 ] 检测视频中每一帧的人体关节的坐标位置。给定以2D坐标形式表示的人体关节序列，我们可以构建人体的姿态模式图。其中，以人体关节点作为图的顶点，以关节点间的生物学自然连接性作为图的边。以单帧为例，我们用 G t ( V t ， E t ) 表示第t帧的姿态图，其中， V t 表示人体的N个关节点的集合， E t 表示生物学上关节点间自然连接的边。图2展示了提取的单帧姿态序列(a)和构建的以二维坐标表示的姿态模式图(b)。 图2. (a)单帧姿态图和(b)姿态模式图 3.2. GCN-LSTM层 得益于强大的长时序建模能力，LSTM [ 27 ] 及其变种在学习姿态序列的动态变化特征上取得了不错的效果，但是其内部的全连接特性限制了LSTM对姿态序列空间结构信息的表达，而这恰好是图卷积网络的优势。因此本文通过在LSTM中引入图卷积计算，以期实现对姿态序列的时空模式信息的学习。本文的GCN-LSTM单元如图3所示： 图3. GCN-LSTM单元 本文用 W x ∗ g X 表示图卷积计算。给定第t帧姿态图 G t ( V t ， E t ) ，图卷积计算公式如下： Y t = D − 1 2 A D 1 2 X t W (1) 其中， X t 表示图节点的特征，大小为 N × M ，N表示图节点的数量，M表示每个图节点的特征。A表示整个图的空间结构的邻接矩阵，D是对邻接矩阵进行归一化的度矩阵，W是卷积计算的权重， Y t 表示输入特征 X t 在经过图卷积推理后的输出特征。 同LSTM，我们的GCN-LSTM模型也有三个核心部件，分别是：输入门 i t ，输出门 o t 和忘记门 f t 。其计算公式表示如下： i t = σ ( W x i ∗ g X t + W h i ∗ g H t − 1 + b i ) (2) f t = σ ( W x f ∗ g X t + W h f ∗ g H t − 1 + b f ) (3) o t = σ ( W x o ∗ g X t + W h o ∗ g H t − 1 + b o ) (4) g t = tanh ( W x c ∗ g X t + W h c ∗ g H t − 1 + b c ) (5) C t = f t ⊙ C t − 1 + i t ⊙ g t (6) H t = O t ⊙ tanh ( C t ) (7) 其中， σ ( ⋅ ) 和 tanh ( ⋅ ) 分别表示sigmoid激活函数和tanh激活函数， ⊙ 表示两矩阵的哈达玛积。 g t 表示在t时刻候选的记忆状态。输入 X t 是图结构的数据，受门控机制的影响，中间隐状态 H t 和记忆细胞 C t 也都是图结构的数据。 综上所述，中间隐状态 H t 包含了丰富的结构信息和时序特征。在最后一个GCN-LSTM层，我们把每个图节点的特征聚合，计算如下： A J t = ∑ i = 1 N H t i (8) 用最终的聚合特征 A J t 预测动作类别分数。 3.3. 姿态网络 对于姿态序列，本文使用全连接层和LSTM层将每个关节的二维坐标映射到高维特征空间进行特征增强。首先全连接层将关节的坐标映射为256维的向量，用 J t ∈ R N × 256 表示， J t i ∈ R 1 × 256 表示每个关节点的特征，其只包含位置信息。在图模型中， J t i 位置特性是有益的学习空间结构的特征。连续两帧之间的帧差特征 F t i 便于GCN-LSTM获取姿态序列沿时间维度的长时序依赖关系。本文将这两种特征进行串联作为增强特征来丰富节点的特征信息，以兼顾各自的优势。然而，位置特征 J t i 和帧差特征 F t i 的拼接存在特征向量的尺度差。因此，本文采用LSTM层来消除这两个特征之间的尺度差: F A t i = L S T M ( c o n c a t ( J t i ， ( J t i − J ( t − 1 ) i ) ) ) (9) 其中 F A t i 是关节i在t时刻的增强特征。不同关节之间共享线性层和LSTM。经过LSTM层之后，将特征增强的序列 { F A 1 ， F A 2 ， F A 3 ， ⋯ ， F A T } 作为节点特征送入后面的GCN-LSTM层。本文堆叠了三个GCN-LSTM层来学习姿态序列的时空模式信息。 3.4. 注意力机制学习 受到注意力机制在NLP中成功应用的启发，我们在网络中引用了空间注意力机制，对I3D网络提取的特征根据关注区域的重要程度重新分配权重。视频中动作发生区域的特征的重要程度明显高于视频场景中其他部分特征的重要程度，利用空间注意力机制对重要区域的特征分配更高的注意力得分，提高该区域的特征显著性，以此达到抑制无关冗余信息的目的，提高网络的效率和性能。本文的注意力模型如下图4所示，主要部分是由8个卷积层构成的编码器，它能够对输入特征重新分配权重。编码器的输入特征是I3D网络提取的特征 X * = { X 1 * ， X 2 * ， ⋯ ， X N * } ， X i * ∈ R H × W × C 。其中 X i * 表示第i帧的特征，输入的帧数为N。我们用*表示光流或RGB。 解码器的作用是给出重新分配权重的特征的最终得分。其计算公式如下： β i * = C o n v ( X i * ) (10) W i * = 1 / [ 1 + e − β i * ] i = 1 ， 2 ， 3 ， ⋯ ， N (11) 其中 C o n v ( ⋅ ) 是基础卷积网络， β i * 是由卷积网络计算得到的权重向量。 W i * 是激活函数对卷积网络计算得到的权重向量进行归一化后得到的注意力权重系数。最后将 W i * 分别与对应的原始输入特征相乘，得到重新分配注意力权重的特征。用公式表达如下： F * = ∑ i N W i * X i * (12) F * 即为重新分配注意力权重的特征。 图4. 注意力模型 3.5. 损失函数 本文采用标准的交叉熵损失函数。由于模型有三个网络分支分别学习不同模态的信息，我们给每一个网络分支定义一个损失函数，以此来实现对各个分支网络的训练，经多轮训练不断迭代的产生动作分类的分类分数。对于每个网络分支，损失函数如下： L j = − ∑ n = 1 c ( y n log y j ) (13) 其中， y n 是动作所属类的真实标签， y j 是网络预测的类别分数，C表示类别数。当 j = R 时表示RGB分支的损失函数， j = O 时表示光流分支的损失函数， j = P 时表示姿态分支的损失函数。 综上所述，本文模型的损失函数表示如下： Total   Loss = L O + L R + L P (14)