一种基于可学习PL-GCN和ECLSTM的骨骼动作识别方法

    专利查询2022-07-07  179


    一种基于可学习pl-gcn和eclstm的骨骼动作识别方法
    技术领域
    1.本发明属于动作识别领域,具体属于一种骨骼动作识别方法。


    背景技术:

    2.近年来基于骨骼的人体动作识别在视频监控、人机交互和虚拟现实等方向发展迅速,在计算机视觉领域引起了广泛关注。骨架数据是人体关节和骨骼的一种拓扑表示,与很多基于rgb和光流的方法相比,具有计算量小,在面对复杂背景时鲁棒性强,不会随着身体尺度、视角和运动速度变化等优点。随着微软的kinect深度摄像机和一些优秀的姿态估计算法的出现,越来越多的研究者开始了基于骨骼的动作识别。
    3.早期的骨骼动作识别通常将每帧中的所有身体关节位置编码为用于模式学习的特征向量或伪图像,然后将该图像送入rnn或cnn网络中以生成预测结果。但是将骨架数据编码为特征向量或者2d栅格不能完全表达相关关节点之间的依存关系,因为这些模型都普遍忽略了关节点间丰富的动作信息,很难应用到任意形式的骨架上。随着图卷积神经网络理论的进一步丰富和完善,yan等人率先将图卷积神经网络应用于人体动作识别任务中,并构建了一种时空图卷积网络 (st-gcn)以一种端到端数据驱动的方式自动学习骨骼数据的空间信息和时间信息。leishi等人引入了一种双流网络和自适应卷积模块极大的提高了模型的识别率。maosen等人通过引入一种编码解码结构和未来姿态预测头的网络捕获了更加详细的动作特征。这些方法都取得了令人满意的识别效果。然而这些动作识别方法都不能很好地考虑人体完成特定动作的局部信息和全局信息,难以获取不同动作间任意骨骼顶点之间的联系,模型泛化能力差,特别是在识别相似动作时准确度有待进一步提高。另外,在实际的使用过程中,这些模型的训练时间长,计算成本大且存在着大量的冗余信息不利于实际操作。
    4.因此,基于现有的骨骼动作识别方法,本发明构建出了一种可学习图卷积网络pl-gcn和特征捕获增强的eclstm网络,可自动学习不同动作的图结构,同时融合空间特征和时序特征,有效改善了模型对于相似动作识别易混淆和关键帧捕获能力较弱等问题,最终训练得到的模型在多个测试集上表现出良好的识别效果。
    5.现有基于骨骼图卷积网络的人体动作识别方法,根据领域内各个关节点到重心的距离将人体骨骼关节点划分为三类:源点、近心点和远心点,然后基于这种固定的划分结构进行图卷积操作,虽然取得了满意的效果。但是这种基于骨架物理结构的固定划分在识别某些特定动作时往往表现不尽人意,尤其是针对相似动作的识别效果较差,如“喝水”和“摸头”等动作。
    6.经过检索,申请公开号cn112507940a,一种基于差分指导表示学习网络的骨骼动作识别方法,步骤如下:获取骨骼动作序列;计算骨骼动作序列的差分值得到差分序列;将差分序列输入差分信息模块,由长短期记忆网络得到差分特征表示;将骨骼动作序列和差分特征表示输入原始信息模块,使用差分特征表示来指导骨骼动作序列的表示学习,得到原始序列特征表示;拼接差分特征表示和原始序列特征表示,由多尺度卷积神经网络提取
    多尺度特征,使用最大池化操作得到池化表示;将池化表示输入全连接层进行分类。本发明使用长短期记忆网络来建模骨骼动作序列的差分信息以指导骨骼动作序列的表示学习,使用多尺度卷积神经网络提取骨骼动作序列的多尺度特征,提高了骨骼动作识别的准确率。
    7.以上方法基于差分指导表示学习网络的骨骼动作识别方法利用长短时记忆网络学习骨骼动作序列的差分信息,将骨骼动作序列和差分特征表示一起输入原始信息模块,使用差分特征表示来指导骨骼动作序列的表示学习。虽然上述方法利用lstm网络的长时记忆功能可以捕获网络的时序特征,但是没有考虑到不同图像帧包含动作信息的重要性,针对此,本专利提出了一种特征增强的 eclstm网络,能够捕获动作特征显著的关键帧,从而高效的提取时间特征。另外,以上方法将骨骼数据直接输入原始信息模块,不能完全提取骨骼关节点的空间特征,由于关节点的特征与邻域内其他关节点特征紧密相关,同时骨骼关节点之间的连接图是一种图拓扑结构。所以本专利考虑利用图卷积网络提取骨骼序列的空间特征。


    技术实现要素:

    8.本发明旨在解决以上现有技术的问题。提出了一种基于可学习pl-gcn和 eclstm的骨骼动作识别方法。本发明的技术方案如下:
    9.一种基于可学习pl-gcn和eclstm的骨骼动作识别方法,其包括以下步骤:
    10.步骤1:基于openpose姿态估计算法获取人体骨架序列数据,并进行相应的样本标签标注;
    11.步骤2:将骨骼关节点数据建模成图拓扑结构,完成图卷积的构建;
    12.步骤3:在原有的st-gcn的图拓扑结构邻接矩阵a分组的基础上,构建一个带有自学习能力的图卷积网络pl-gcn,用来优化人体动作的图结构;
    13.步骤4:构建一种特征增强的长短时记忆网络eclstm,用来捕获时序特征;
    14.步骤5:融合来自pl-gcn图卷积网络提取的空间特征和eclstm网络捕获的时序特征;
    15.步骤6:使用池化、卷积网络融合后的动作特征进行最后的分类预测;
    16.步骤7:构建由9层可自学习图卷积模块组成的空间特征提取网络和3个eclstm 模块组成的时间特征提取网络的双流框架;输入的骨骼关节点数据先是沿着神经网络模型进行前向传播,将最后的特征经过池化卷积后给出动作类别得分情况,得分最高的类别即为预测类别;后经由损失函数对各网络层参数求导后沿梯度反向传播直到损失函数值达到最小,得到最优的权重参数。
    17.进一步的,所述步骤1基于openpose姿态估计算法获取人体骨架序列数据,并进行相应的样本标签标注,具体包括:
    18.步骤1.1:采用openpose姿态估计算法自下而上的完成人体姿态估计并获取人体骨骼18个关节点数据,每个关节点表示为(x,y,confidence);x、y分别表示 2d图像中的关节点坐标位置,confidence表示每个关节点估计的置信度。具体步骤为:搭建好openpose算法环境后,在命令提示窗口调用openpose.exe处理的样本视频或者图片,可以得到一组包含人体25关节位置坐标的.json文件,该文件可以作为后续的骨骼序列数据输入,如果是视频的话会包含30*t关节坐标数据,其中t为视频的时间长短(单位为秒),设置样本视频的帧
    率为30。
    19.步骤1.2:骨骼序列由每帧图片中的人体骨骼关节点的2d或3d坐标表示,每个 2d或3d坐标表示为一个向量,一个完整的视频动作序列表示为不同帧之间的向量序列组成;
    20.步骤1.3:根据视频中的动作内容,对视频样本完成标注,以方便后续模型的训练和预测。
    21.进一步的,所述步骤2将骨骼关节点数据建模成图拓扑结构,完成图卷积的构建,具体包括:
    22.步骤2.1:将骨骼关节点表示为图的顶点,将相邻两帧时空图的相应顶点之间的连边表示为时间边,完成时空图的构建,利用时空图来对人体骨架关节点的时间维度和空间维度进行建模;
    23.步骤2.2:构造无向图g
    t
    ={v
    t
    ,e
    t
    }表示一个具有n个关节点和t帧骨骼的序列,其中v
    t
    是n个关节点的集合,e
    t
    是骨骼边的集合,节点v
    ti
    的邻居集被定义为 n(v
    ti
    )={v
    tj
    |d(v
    ti
    ,v
    tj
    )≤d},其中d(v
    ti
    ,v
    tj
    )是从v
    ti
    到v
    tj
    的最短路径,这里表示1邻域距离;
    24.步骤2.3:设计一个映射函数l:v
    t

    {1,2,...,k},为每个图顶点v
    ti
    ∈v
    t
    分配标签 {1,2,...,k},将节点v
    ti
    的邻居集n(v
    ti
    )划分为固定数量的k个子集;另外,边集e
    t
    由两个子集组成,第一个子集es={v
    tivtj
    |(i,j)∈h}表示每一帧骨架内的连接,其中h表示自然连接的人体关节集合,第二个子集ef={v
    tiv(t 1)i
    }表示连续相邻帧的连边,特定关节i的ef中所有的边都代表其随时间变化的轨迹;
    25.步骤2.4:对骨骼关节点数据进行空间图卷积提取特征操作。
    26.进一步的,所述步骤2.4:对骨骼关节点数据进行空间图卷积提取特征操作,具体为:
    [0027][0028]
    其中,f
    out
    (v
    ti
    )表示关节点i处图卷积的输出,f
    in
    表示输入特征图,z
    ti
    (v
    tj
    )表示t时刻第i关节与采样区间b(v
    ti
    )内其他关节的相对距离,

    表示矢量元素或矩阵之间的点乘运算;采样函数p(v
    ti
    ,v
    tj
    )=v
    tj
    ,其中v
    ti
    ∈b(v
    ti
    ),b(v
    ti
    )= {v
    ti
    |d(v
    tj
    ,v
    ti
    )≤d}为采样区间,这里的d(v
    tj
    ,v
    ti
    )为关节v
    ti
    ,v
    tj
    之间的最小距离;映射关系l
    ti
    :b(v
    ti
    )

    {0,

    ,k-1},新的权重函数可以表示为w(v
    ti
    ,v
    tj
    )= w

    (l
    ti
    (v
    tj
    ))。
    [0029]
    进一步的,所述步骤3在原有的邻接矩阵a分组的基础上,构建一个带有自学习能力的图卷积网络pl-gcn,用来优化人体动作的图结构,具体内容为:
    [0030]
    加入可学习p矩阵后的图卷积输出:
    [0031][0032]
    这里的ak和pk有相同的尺寸,矩阵pk的值被初始化为0,矩阵ak决定了两个顶点之间是否存在联系;wk和mk都是可以学习的参数,分别用来实现卷积操作和学习每条边的重要性;
    [0033]
    加入的可学习p矩阵能够通过一种通道反馈的方式自适应学习更新矩阵参数,从而能够补偿矩阵ak中对应的缺失关系,定义一种交叉熵损失函数为:
    [0034]
    l=j(w,x,class)=w*(-x[class] log(∑jexp(x[j])))
    ꢀꢀꢀ
    (3)
    [0035]
    其中j表示定义的损失函数名称,w表示权重矩阵,x表示网络的输出向量,class 表示动作类别的真实标签,x[j]表示输出向量的第j维的值。
    [0036]
    ,若加入可学习p矩阵后通道反馈输出为:
    [0037]
    h=f
    out
    (x,θ)(ak pk(x,θ))*w(x,α)
    ꢀꢀꢀ
    (4)
    [0038]
    其中pk(x,θ)表示第k层自学习矩阵,α表示权重矩阵w中的参数,θ表示自学习矩阵pk(x,θ)中的参数。
    [0039]
    ,则在反向传播时通过以下操作更新梯度滤波器:
    [0040][0041]
    其中,f
    out
    (x,θ)为图卷积输出特征,w(x,α)为步骤3.3中的特征加权矩阵;
    [0042]
    空间图卷积模块通过一种类似信息聚合作用完成对每一帧中关节点特征的提取,各层之间的特征传播具体的操作为:
    [0043][0044]
    其中,其中,是无向图g
    t
    的邻接矩阵a和表示关节点自身联系的单位矩阵in加权后的结果,加权后的结果,表示关节点i的度,表示考虑自身连接后的邻接矩阵第i行j列的值。
    [0045]
    并且w
    (l)
    是一个可训练的权重矩阵;σ(
    ·
    )表示激活函数,表示第l层的隐藏层矩阵,n和d表示隐藏层h的行数与列数,且初始的h
    (0)
    =x,x是一个节点特征向量xi的矩阵表示。
    [0046]
    进一步的,为了加快模型的收敛,在每个图卷积模块之间都设置有bn层, relu层和dropout层,对经过batchnorm层的数据进行规范化操作:
    [0047][0048][0049][0050]
    其中,uj表示均值,表示方差,表示规范化后的数据,∈表示一个非常小的数为了避免分母为0,m表示1个batch中样本的个数,对经过relu层的数据进行激活操作:
    [0051][0052]
    其中当输出值x>0时,进行输出,当x≤0时,将输出值变为0;最后,对空间卷积模块的输出执行dropout=0.5的操作,避免网络的过拟合。
    [0053]
    进一步的,所述步骤4构建一种特征增强的长短时记忆网络eclstm,用来捕获时序特征,具体内容为:
    [0054]
    步骤4.1:利用上一时刻的输出h
    t-1
    和当前时刻的输出h
    t
    之间的自相关矩阵,完成对当前时刻输出h
    t
    的加权,从而捕捉视频动作样本的时序特征信息;
    [0055]
    步骤4.2:利用sigmoid神经层来控制上一时刻的输出h
    t-1
    和当前时刻的输入x
    t
    构成的concat(h
    t-1
    ,x
    t
    )通过或部分通过,操作如下:
    [0056]ft
    =σ(wf·
    [h
    t-1
    ,x
    t
    ] bf)
    ꢀꢀꢀ
    (11)
    [0057]
    ,下一步是决定让多少新的信息加入到eclstm网络中来,利用一个sigmoid层来决定哪些信息需要更新,另外利用一个tanh层生成向量,也就是备选的用来更新的内容利用公式将这两部分联合起来,完成对网络状态的更新:
    [0058]it
    =σ(wi·
    [h
    t-1
    ,x
    t
    ] bi)
    ꢀꢀꢀ
    (12)
    [0059][0060]bf
    、bi、bc分别表示sigmoid层的偏置,sigmoid层的偏置,tanh层的偏置。然后利用状态i
    t
    与加权相乘,把一些不想保留的信息过滤掉,得到我们添加的新内容,具体操作为:
    [0061][0062]
    ,为了得到最后的输出,先通过sigmoid层来得到一个初始的输出:
    [0063]ot
    =σ(wo[h
    t-1
    ,x
    t
    ] bo)
    ꢀꢀꢀ
    (15)
    [0064]bo
    表示sigmoid层的偏置,然后使用tanh层将ct值缩放到-1到1之间,通过以下操作得到模型的初步输出:
    [0065]ht
    =o
    t
    *tanh(c
    t
    )
    ꢀꢀꢀ
    (16)
    [0066]
    进一步的,采用了一种自相关系数矩阵对时序特征进行增强,具体就是利用上一时刻的输出h
    t-1
    =[x1,x2…
    xn]和当前时刻输出h

    t
    =[y1,y2…yn
    ]进行点乘得到自相关矩阵最后利用当前输出与h

    t
    进行加权得到最终输出:
    [0067][0068]
    ,其中h
    t
    也即是经过时序特征增强后的当前时刻输出特征;
    [0069]
    时序特征经过eclstm网络特征增强之后,经过一个全连接层对捕捉到的视频关键帧信息进行聚合,为下一步空间关节点特征和时间序列特征融合做准备。
    [0070]
    进一步的,所述步骤5融合来自pl-gcn图卷积网络提取的空间特征和 eclstm网络捕获的时序特征,具体包括:
    [0071]
    步骤5.1:将来自空间图卷积模块卷积输出后的空间特征和经eclstm网络特征增强后的时序特征利用concat方式相融合得到视频动作样本融合后的时空特征。融合后的时空特征是已经完成了对骨骼关节点灵活建模和关键帧捕获后的特征,但此时需要对该特征进一步进行分类,完成动作类别的预测。
    [0072]
    进一步的,所述步骤6:使用池化、卷积网络融合后的动作特征进行最后的分类预测,具体包括:
    [0073]
    步骤6.1:对融合后的特征进行平均池化,对特征进行压缩、简化网络;
    [0074]
    步骤6.2:采用了卷积层神经网络完成最后的动作识别分类预测,将步骤6.1 中经过平均池化后的特征进行1
    ×
    1卷积,将其分为numclass个动作类别,也即是数据集中所有的动作类别,并为每个动作类别进行打分,其中打分最高的类别也即为所预测的动作类别。
    [0075]
    本发明的优点及有益效果如下:
    [0076]
    在本发明专利中,提出了一种基于可学习图卷积网络和时序特征增强的骨骼动作识别方法。考虑到现有的一些骨骼动作识别方法主要是基于固定的人体物理结构进行建模,模型的灵活性较差,视频关键帧信息捕获不准确,尤其是在识别某些特定动作时不能考虑到局部信息和全局信息与特定身体关节之间的联系等问题。该专利提出了一种可学习的p矩阵算法,用来补偿矩阵ak中关节点间缺失的联系,从而改善模型的灵活性,提高对于相似动作的识别率。此外,为了捕获视频动作样本中的关键帧信息,本专利提出了一种eclstm网络,可以捕获并加强运动过程中的时序特征信息,从而使得模型能够更加容易识别相应的动作。实验结果证明,在相同条件下,本专利提出的方法在动作识别进度,算法复杂度以及特征提取能力均优于当前的一些方法。
    [0077]
    以下均为本专利创新点(包括公式):
    [0078]
    本专利提出了一种可学习的p矩阵算法,
    [0079]
    h=f
    oui
    (x,θ)(ak pk(x,θ))*w(x,α)
    [0080][0081]
    由于原有的st-gcn采用的是固定的分组策略将邻域内关节点分为源点、近点、远点。这种根据人体固定物理结构的分组方式再识别某些特定都工作缺乏灵活性,为此,为了改善这种固定的分组结构,本文考虑加入自学习p矩阵补偿矩阵ak中关节点间缺失的联系,并且通过一种通道反馈的方式自适应的学习,从而改善模型的灵活性,使得模型识别相似动作的能力得到提高。另外,为了捕获动作样本的关键帧信息,本专利提出了一种特征增强的eclstm网络,其中,采用了一种自相关系数矩阵对时序特征进行增强,利用上一时刻的输出 h
    t-1
    =[x1,x2…
    xn]和当前时刻输出h

    t
    =[y1,y2…yn
    ]进行点乘得到自相关矩阵最后利用当前输出与h

    t
    进行加权得到最终输出:
    [0082][0083]
    ,其中h
    t
    也即是经过时序特征增强后的当前时刻输出特征;eclstm网络的引入使得模型能够准确定位关键帧信息,捕获并加强运动过程中的时序特征信息。
    附图说明
    [0084]
    图1是本发明提供优选实施例模型总体结构图;
    [0085]
    图2是ec-lstm网络结构图。
    具体实施方式
    [0086]
    下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
    [0087]
    本发明解决上述技术问题的技术方案是:
    [0088]
    本专利提出了一种具有学习能力的时空图卷积骨骼动作识别方法,模型总体框架图如图1所示。
    [0089]
    首先,为了充分获取动作视频样本的空间特征和时间特征,本发明采用了一种双流网络框架,提出了一种具有自学习能力的图卷积网络提取骨骼关节点之间空间特征关系,为了特征的充分提取,这里考虑堆叠9层可学习的图卷积网络模块,从而改善模型的物理结构,提高相似动作的识别率。其次,本发明提出了一种eclstm网络用于增强模型的时序特征捕获能力,将eclstm网络堆叠3 层,并使用全连接层fc将eclstm网络捕获的特征进行连接。最后,将融合后的空间特征和时间特征池化卷积后进行特征分类。将训练得到的最终模型运用到现实简单场景中,以实现动作识别技术在日常生活中的应用,模型总体结构图,如图1所示,包括以下步骤:
    [0090]
    步骤1:基于openpose姿态估计算法获取人体骨架序列数据,并进行相应的样本标签标注。
    [0091]
    步骤2:将骨骼关节点数据建模成图拓扑结构,完成图卷积的构建。
    [0092]
    步骤3:在原有的邻接矩阵a分组的基础上,构建一个带有自学习能力的图卷积网络(pl-gcn),用来优化人体动作的图结构。
    [0093]
    步骤4:构建一种特征增强的长短时记忆网络(eclstm),用来捕获时序特征。
    [0094]
    步骤5:融合来自pl-gcn图卷积网络提取的空间特征和eclstm网络捕获的时序特征。
    [0095]
    步骤6:使用池化、卷积网络融合后的动作特征进行最后的分类预测。
    [0096]
    步骤7:构建由9层可自学习图卷积模块组成的空间特征提取网络和3个eclstm 模块组成的时间特征提取网络的双流框架。输入的骨骼关节点数据先是沿着神经网络模型进行前向传播,将最后的特征经过池化卷积后给出动作类别得分情况,得分最高的类别即为预测类别。后经由损失函数对各网络层参数求导后沿梯度反向传播直到损失函数值达到最小,得到最优的权重参数。
    [0097]
    进一步所述步骤1具体包括:
    [0098]
    步骤1.1:采用了openpose姿态估计算法自下而上的完成人体姿态估计并获取人体骨骼18个关节点数据,通常每个关节点可以表示为(x,y,confidence)。
    [0099]
    步骤1.2:骨骼序列通常由每帧图片中的人体骨骼关节点的2d或3d坐标表示,每个2d或3d坐标可以表示为一个向量,所以一个完整的视频动作序列可以表示为不同帧之间的向量序列组成。
    [0100]
    步骤1.3:根据视频中的动作内容,对视频样本完成标注,以方便后续模型的训练和预测。
    [0101]
    进一步所述步骤2具体包括:
    [0102]
    步骤2.1:将骨骼关节点表示为图的顶点,将相邻两帧时空图的相应顶点之间的连边表示为时间边,完成时空图的构建。利用时空图来对人体骨架关节点的时间维度和空间维度进行建模。
    [0103]
    步骤2.2:构造无向图g
    t
    ={v
    t
    ,e
    t
    }表示一个具有n个关节点和t帧骨骼序列的,其中v
    t
    是n个关节点的集合,e
    t
    是骨骼边的集合,节点v
    ti
    的邻居集被定义为 n(v
    ti
    )={v
    tj
    |d(v
    ti
    ,v
    tj
    )≤d},其中d(v
    ti
    ,v
    tj
    )是从v
    ti
    到v
    tj
    的最短路径,这里表示1邻域距离。
    [0104]
    步骤2.3:设计了一个映射函数l:v
    t

    {1,2,...,k},为每个图顶点v
    ti
    ∈v
    t
    分配标签{1,2,...,k},将节点v
    ti
    的邻居集n(v
    ti
    )划分为固定数量的k个子集。另外,边集 e
    t
    由两个
    子集组成,第一个子集es={v
    tivtj
    |(i,j)∈h}表示每一帧骨架内的连接,其中h表示自然连接的人体关节集合,第二个子集ef={v
    tiv(t 1)i
    }表示连续相邻帧的连边,特定关节i的ef中所有的边都代表其随时间变化的轨迹。
    [0105]
    步骤2.4:对骨骼关节点数据进行空间图卷积提取特征的具体操作为:
    [0106][0107]
    其中,z
    ti
    (vtj)表示t时刻第i关节与采样区间b(v
    ti
    )内其他关节的相对距离,

    表示矢量元素或矩阵之间的点乘运算。采样函数p(v
    ti
    ,v
    tj
    )=v
    tj
    ,其中v
    ti
    ∈b(v
    ti
    ), b(v
    ti
    )={v
    ti
    |d(v
    tj
    ,v
    ti
    )≤d}为采样区间,这里的d(v
    tj
    ,v
    ti
    )为关节v
    ti
    ,vtj之间的最小距离。映射关系l
    ti
    :b(v
    ti
    )

    {0,

    ,k-1},新的权重函数可以表示为 w(v
    ti
    ,v
    tj
    )=w

    (l
    ti
    (v
    tj
    ))。
    [0108]
    进一步所述步骤3具体内容:
    [0109]
    步骤3.1:由于现在图卷积神经网络通过构建固定邻接关系ak表示原有的关节点结构,如果ak中的某个值ak[i][j]为0,那么无论后期图卷积网络如何学习都不可能捕捉到相应的关节点之间的动作联系,为此,本专利提出了通过构建一种可学习的p矩阵算法,能够针对待识别的动作类型以一种通道反馈的方式自适应学习,提高某些特定动作的识别率,从而改善模型的灵活性与泛化能力。
    [0110]
    步骤3.3:加入可学习p矩阵后的图卷积输出:
    [0111][0112]
    ,这里的ak和pk有相同的尺寸,矩阵pk的值被初始化为0,矩阵ak决定了两个顶点之间是否存在联系,但不能重新创造两个物理上互不相连的顶点之间的联系,矩阵pk的引入,使得模型具备了重新学习任意两个顶点之间的联系,增强了模型的泛化能力。wk和mk都是可以学习的参数,分别用来实现卷积操作和学习每条边的重要性。
    [0113]
    步骤3.4:加入的可学习p矩阵能够通过一种通道反馈的方式自适应学习更新矩阵参数,从而能够补偿矩阵ak中对应的缺失关系,提高特定动作的识别率。本发明定义一种交叉熵损失函数为:
    [0114]
    l=j(w,x,class)=w*(-x[class] log(∑jexp(x[j])))
    ꢀꢀꢀ
    (3)
    [0115]
    ,若加入可学习p矩阵后通道反馈输出为:
    [0116]
    h=f
    out
    (x,θ)(ak pk(x,θ))*w(x,α)
    ꢀꢀꢀ
    (4)
    [0117]
    ,则在反向传播时通过以下操作更新梯度滤波器:
    [0118][0119]
    其中,f
    out
    (x,θ)为图卷积输出特征,w(x,α)为步骤3.3中的特征加权矩阵。通过以上的操作即可完成可学习p矩阵中参数的自适应学习更新,从而改善模型的结构,如图1所示,具有自学习能力的图卷积网络结构图。
    [0120]
    步骤3.5:空间图卷积模块可以通过一种类似信息聚合作用完成对每一帧中关节点特征的提取,各层之间的特征传播具体的操作为:
    [0121]
    [0122]
    其中,其中,是无向图g
    t
    的邻接矩阵a和表示关节点自身联系的单位矩阵in加权后的结果,并且w
    (l)
    是一个可训练的权重矩阵。σ(
    ·
    )表示激活函数,表示第l层的隐藏层矩阵,且初始的h
    (0)
    =x,x是一个节点特征向量xi的矩阵表示。
    [0123]
    步骤3.6:为了加快模型的收敛,在每个图卷积模块之间都设置有bn层,relu 层和dropout层。对经过batchnorm层的数据进行规范化操作:
    [0124][0125][0126][0127]
    其中,uj表示均值,表示方差,表示规范化后的数据,∈是为了防止方差为 0产生无效计算。同时,为了使得网络稀疏化,减少参数的相互依存关系,对经过relu层的数据进行激活操作:
    [0128][0129]
    其中当输出值x>0时,进行输出,当x≤0时,将输出值变为0;最后,对空间卷积模块的输出执行dropout=0.5的操作,避免网络的过拟合。
    [0130]
    进一步所述步骤4具体内容:
    [0131]
    步骤4.1:本发明构建了一种用于时序信息增强的eclstm网络,如图2所示,利用上一时刻的输出h
    t-1
    和当前时刻的输出h
    t
    之间的自相关矩阵,完成对当前时刻输出h
    t
    的加权,从而捕捉视频动作样本的时序特征信息。
    [0132]
    步骤4.2:首先eclstm要决定让哪些视频帧信息通过这个遗忘门,利用sigmoid 神经层来控制上一时刻的输出h
    t-1
    和当前时刻的输入x
    t
    构成的concat(h
    t-1
    ,x
    t
    ) 通过或部分通过,操作如下:
    [0133]ft
    =σ(wf·
    [h
    t-1
    ,x
    t
    ] bf)
    ꢀꢀꢀ
    (11)
    [0134]
    ,下一步是决定让多少新的信息加入到eclstm网络中来,需要利用一个sigmoid 层来决定哪些信息需要更新,另外需要利用一个tanh层生成向量,也就是备选的用来更新的内容利用公式将这两部分联合起来,完成对网络状态的更新:
    [0135]it
    =σ(wi·
    [h
    t-1
    ,x
    t
    ] bi)
    ꢀꢀꢀ
    (12)
    [0136][0137]
    然后利用状态i
    t
    与加权相乘,把一些不想保留的信息过滤掉,得到我们添加的新内容,具体操作为:
    [0138][0139]
    ,为了得到最后的输出,先通过sigmoid层来得到一个初始的输出:
    [0140]ot
    =σ(wo[h
    t-1
    ,x
    t
    ] bo)
    ꢀꢀꢀ
    (15)
    [0141]
    ,然后使用tanh层将c
    t
    值缩放到-1到1之间,通过以下操作得到模型的初步输出:
    [0142]h′
    t
    =o
    t
    *tanh(c
    t
    )
    ꢀꢀꢀ
    (16)
    [0143]
    为了进一步加强模型对时序特征的捕获能力,本文采用了一种自相关系数矩阵对时序特征进行增强,具体就是利用上一时刻的输出h
    t-1
    =[x1,x2…
    xn]和当前时刻输出h

    t
    =[y1,y2…yn
    ]进行点乘得到自相关矩阵最后利用当前输出与h

    t
    进行加权得到最终输出:
    [0144][0145]
    ,其中h
    t
    也即是经过时序特征增强后的当前时刻输出特征。
    [0146]
    步骤4.3:时序特征经过eclstm网络特征增强之后,经过一个全连接层(fc层) 对捕捉到的视频关键帧信息进行聚合,为下一步空间关节点特征和时间序列特征融合做准备。
    [0147]
    进一步所述步骤5具体内容:
    [0148]
    步骤5.1:将来自空间图卷积模块卷积输出后的空间特征和经eclstm网络特征增强后的时序特征利用concat方式相融合得到视频动作样本融合后的时空特征。融合后的时空特征是已经完成了对骨骼关节点灵活建模和关键帧捕获后的特征,但此时需要对该特征进一步进行分类,完成动作类别的预测。
    [0149]
    进一步所述步骤6具体内容:
    [0150]
    步骤6.1:由于融合后的特征信息存在着大量的冗余,包含过多的参数。为了减少最后的分类计算成本,需要先对融合后的特征进行平均池化,对特征进行压缩、简化网络复杂度和计算量同时加快就计算速度,防止过拟合的发生。
    [0151]
    步骤6.2:为了完成最后的动作识别分类预测,这里采用了卷积层神经网络,将步骤6.1中经过平均池化后的特征进行1
    ×
    1卷积,将其分为numclass个动作类别(也即是数据集中所有的动作类别),并为每个动作类别进行打分,其中打分最高的类别也即为所预测的动作类别。
    [0152]
    在本发明专利中,我们提出了一种基于可学习图卷积网络和时序特征增强的骨骼动作识别方法。考虑到现有的一些骨骼动作识别方法主要是基于固定的人体物理结构进行建模,模型的灵活性较差,视频关键帧信息捕获不准确,尤其是在识别某些特定动作时不能考虑到局部信息和全局信息与特定身体关节之间的联系等问题。该专利提出了一种可学习的p矩阵,用来补偿矩阵ak中关节点间缺失的联系,从而改善模型的灵活性,提高对于相似动作的识别率。此外,为了捕获视频动作样本中的关键帧信息,本专利提出了一种eclstm网络,可以捕获并加强运动过程中的时序特征信息,从而使得模型能够更加容易识别相应的动作。实验结果证明,在相同条件下,本专利提出的方法在动作识别进度,算法复杂度以及特征提取能力均优于当前的一些方法。
    [0153]
    为了验证本专利所提出的基于可学习图卷积网络和时序特征增强的骨骼动作识别方法在动作识别任务中的实际效果,我们在pytorch深度学习框架下,利用公开的数据集ntu-rgb-d进行大量的实验,实验分为两组,一组是在跨视角(cross view)标准下进行训练
    和测试,另一组是在跨主体(cross subject)标准进行的。实验中采用单张显卡的2080ti gpu进行数据训练加速,选择交叉熵函数作为梯度向后反向传播的损失函数,采用nesterov动量为0.9的随机梯度下降优化器来优化参数,将权重衰减设置为0.0001,基本学习率设置为0.1。在ntu-rgb-d数据集下,每一个被送入网络中训练的骨骼数据样本有300帧,每一帧有18个关节点。其中关节点数据坐标可以用一个通道数为3的元组(x, y,confidence)表示,假设训练过程的超参数batchsize为256时,那么送入模型中训练数据的输入尺寸就是(256,3,300,18),为了能够得到最优的网络模型,实验过程中将epoch设置为60,我们选择在第20,30,40,50个epoch处分别将学习率除以10来优化学习,整个训练过程在第60个epoch处结束。
    [0154]
    在训练网络时,训练数据被输入到基于可学习p矩阵的图卷积网络和时序特征增强的eclstm网络中进行前向传播提取特征,融合后再经过池化卷积网络获得各个动作类别的分类概率,然后基于交叉熵损失函数进行反向传播调整网络参数,训练结束后,利用最终得到的网络模型对测试集样本进行测试,选择分类概率最大的动作类别作为模型预测类别,比较预测类别和实际标签结果,如果结果一致,则代表分类正确,否则,代表分类错误。利用最终的网络模型再两个标准下进行测试,实验结果显示,分别在cross view标准下达到了91.2%, cross subject标准下达到了84.5%的识别率,识别结果超过了当前一些热门方法,如下表1所示。
    [0155]
    表1本发明专利与其他方法的对比
    [0156][0157]
    还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
    ……”
    限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
    [0158]
    以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
    转载请注明原文地址:https://tc.8miu.com/read-743.html

    最新回复(0)