360103198912153425 河北石家庄 050000
130530198308022013 河北石家庄 050000
230321198104130422 河北石家庄 050000
摘要 近期,智能视觉技术越来越多应用到监控安防场景中,其中的步态识别技术可以通过分析行人行走序列中的姿态与动作来判断身份。传统步态识别方法的具体应用效果依旧会针对不同衣着和背包场景下步态轮廓图中的身体部位粘连、遮挡、与正常场景差异大等问题的影响。因此,本文使用人体骨架信息进行识别,来减弱上述问题造成的影响。核心思想在于使用深度学习方法,提取原始图像序列中的人体骨架关键点,据此构成步态骨架图结构以辅助后继步态识别。在具体实现中,本文引入多个相同的时空图卷积模块,使得所提取的步态骨架序列能充分融合空间维度与时间维度两方面的特征信息。实验证明,该网络在CASIA-B数据集上相对于传统的步态骨架方法,达到了更高的性能。
关键词 步态识别;骨架序列;图卷积神经网络;深度学习,时空信息
1.研究背景与意义
在智能分析系统的诸多功能中,人员重识别(身份识别)属于重中之重。在现有的大多数识别方法中,常用的生物特征包括人脸、声纹、虹膜、耳廓、指纹、签字、掌纹等。然而,以上特征皆有明显的缺点,例如人脸识别需要条件比较苛刻,例如目标人脸为正面、近距离、光照良好、摄像机分辨率高、无遮挡,而且容易通过化妆和整容等方法伪装;目前使用最广泛的行人重识别也受光照、衣服、姿态、遮挡、分辨率低等因素影响。因此,能在一定程度上减弱这些条件限制的步态识别技术就此产生。
步态识别是近期较前沿的技术之一,它通过分析行走姿态与动作来判断身份。步态识别存在以下优点:步态可由全部视角的清晰度较低的摄像头拍摄,不受图像分辨率低影响。判断范围大约50米,且可以处理行人在很远处背对监控摄像头随意走动等情况;无需控制目标,让其主动进行采集识别;不受光照、衣服颜色改变等因素影响;较难掩饰,每个人具有不同的体态、头型、人体骨骼、行走姿势等区别性较强的特征。所以,步态识别方法逐渐被广泛注意与研究。通过对监控数据处理分离的步态序列进行识别,来分析出行人的性别、年龄、身份等基本信息。综上所述,步态识别具备重大的科研价值与广阔的应用前景。
2.国内外研究现状
2.1 基于步态模板的方法
Yu Shiqi等人[1]提出一种融合生成对抗网络的GaitGAN模型。该模型将GAN模型用作回归器以生成具有正常衣物且没有携带袋子的不变步态侧视图图像。这是第一种使用GAN的辨认方法,其结果较好。
He Yiwei等人[2]提出一种多任务生成对抗网络(MGAN),用于学习特定视角的特征表示。该方法还设计一个多通道模板生成方法,叫做步态周期能量图像。该方法能基于对抗学习获得更大量的步态辨认信息。
Kohei Shiraga等人[3]提出一种使用卷积神经网络(CNN)的步态识别方法GEINet。该方法输入由步态轮廓序列生成的步态能量图像,经过两个连续的卷积,池化和正则化层,和两个全连接层再预测结果。
Wu Zifeng等人[4]研究一种基于CNN和相似性学习的步态识别方法。借助1个带有标签的小组的多视图人类步行视频,该方法可以训练深层网络来识别步态模式最具区分性的变化,这些变化暗示着人类身份的变化。该方法在具有挑战性的CASIA-B与OU-ISIR数据集上评估,展示其能泛化较多样本的情况。并且,该方法在USF真实室外场景的步态数据集上也表现最佳的性能,展示出了该方法在现实场景中极好的应用前景。
2.2 基于步态序列的方法
基于步态序列的识别方法流程与基于步态模版的流程相似,主要区别为步态序列输入是步态的轮廓图像序列或其他模态的序列,而非步态模版。步态序列比步态模版具备更大量时间上下文信息,识别准确率较高,但是其特征抽取方法较为复杂,时间复杂度较高。
Liao Rijun等人[5]提出一种新颖的基于姿势的步态识别方法,该方法对服装和携带的变化更加健壮。同时,该方法也提出一种基于姿势的时空网络(PTSN)来提取时空特征。
Thomas Wolf等人[6]提出一个深度卷积神经网络,该神经网络使用3D卷积捕获多个时空特征,来进行步态识别。该方法同时将灰度图和光流图合并作为网络输入,这样会增强步态图像的颜色不变性。
Chao Hanqing等人[7]提出一种新颖的观点,即由独立的步态图像帧的集合。该方法设计了GaitSet网络,以学习步态具有辨认性的信息。在设定的角度下,其无视图像帧排列的各个不同情况,还能将不同情况下拍摄的步态信息融合学习。
3.本文方法
3.1 步态骨架提取
在步态识别领域,骨架信息相对于步态轮廓图像信息有较多优点:特征明确、不易受背景因素影响、不易受背包和衣服造成的步态轮廓模糊影响。由于深度神经网络提取特征的优越性,使人体骨架关键点预测问题得到解决,因此本文采用结构简单、速度较快的Keypoint-RCNN[8]方法来提取步态骨架序列。Keypoint-RCNN在Mask-RCNN的基础上,再增加一个用来估计人体姿态的预测分支。本文在常用的人体骨架公共数据集MS-COCO[9]上训练该网络,取验证集准确率最高的模型作为后续使用。将拍摄的彩色图像通过模型预测,得到相应的步态骨架序列,如图1所示。
图1原步态彩色图像序列和本文提取的步态姿态序列
3.2 步态骨架识别
步态骨架序列由每帧中人体骨架关键点的二维坐标表示,这里本文利用时空图来表示每个人的骨架序列。本文在具有N个骨架关键点和T帧的骨架序列上构造了无向的空间时间图G =(V;E)。在图中,节点集包括步态骨架序列的全部骨架关键点,其中帧t、骨架关键点
的向量表示包含位置(x,y)和置信度c。如图2所示,步态骨架序列的时空图包括:(1)帧内边表示人体的关节自然连接关系;(2)帧间边表示人体对应骨骼点的时序关系。
图2本文构建的步态时空图
对于在神经网络中计算的步态骨架序列,本文用(N,C,T,P)表示特征向量。其中,N表示骨架序列的数量,也是每个批次的大小;C表示每个关节的特征数,包括(x,y,c)位置坐标和置信度共三个特征;T为帧数;P为关节的数量。
本文对输入的步态骨架序列数据(如上节所示)设计多个时空图卷积模块,组合为更深层的步态特征图,再输入到softmax分类器预测步态的行人身份。整个图卷积模型使用反向传播来进行端对端的训练。本章基于图卷积的骨架序列识别如图3所示。
图3基于图卷积的骨架序列识别模型
在输入数据进入到时空图卷积计算之前,需要将输入数据进行C和P维度上的归一化,即对每帧中每个关节的特征(x,y,c)最大-最小归一化。这一步骤是必须的,因为不同帧中关节位置变化较大并且服从随机分布,不归一化会造成损失无法收敛、结果相差较大和准确率一直波动。
接着,通过连续的9个时空图卷积模块,前三个模块的输出为64通道,中间三个的输出为128通道,最后三个的输出为256通道,每个模块之后使用0.5的dropout来避免特征的过拟合。该模块主要包含两个部分:空间图卷积模块和时间卷积模块。
空间图卷积模块可以学习到二维空间中相邻关节的局部特征,基于提取到的空间特征,本文使用时间卷积模块来提取时间维度上关节位置变化的局部特征,从而形成步态的时空表示。本文使用传统的图像卷积操作来构建时间卷积模块,即在空间图卷积模块输出的特征图(C,T,P)上,使用核大小为5*1的卷积。在9个时间卷积模块中,第4个和第7个的步长设置为2,作为池化层来减小时间维度。
在网络最后阶段,使用全局平均池化将所有的节点特征汇总形成256维的特征向量,再使用全连接层和softmax层对特征向量进行步态预测。
该网络预测只包含步态识别分类单一任务。因此,本文对该任务采用分类任务较为常用的交叉熵损失,如公式1所示。
(1)
其中,为one-hot向量形式的预测分类结果,
为正确的类别。
4.实验与分析
4.1数据集及实现细节
本文的实验环境为NVIDIA 1080 GPU,Ubuntu系统,神经网络框架为基于Python的Facebook PyTorch框架。本章使用公开的步态数据集CASIA-B[10]来实验研究,如图4所示。共包括124个受试者(序号001-124),3个步行条件与11个视角(0,18,…,180)。步行条件包含正常(NM)(每个受试者6个序列),用袋子(BG)行走(每个受试者2个序列)和穿着外套或夹克(CL)(每个受试者2个序列)。即每个受试者具有11×(6+2+2)=110个序列。
图4 CASIA-B步态数据集中的一些样本
本文按照论文[11]中的分配方法,将前74人作为训练集,剩下的后50人作为验证集。在训练阶段,通过前向传播算法,计算误差,再利用反向传播算法对参数进行更新,初始学习率为1e-2,每批次32个样本,帧数T为16,每将所有数据训练5次后,学习率衰减到原来的1%,直到损失收敛。优化策略为随机梯度下降算法。在验证阶段,使用训练过程中得到的网络模型进行预测,本文采用目标重识别任务中常用的相似度排序思想。在验证集中,NM条件的前4个序列(NM#1-4)为查询集,其余6个划为3个候选集,NM#5-6,BG#1-2,CL#1-2。本文基于欧式距离计算每个样本数据间相似度。预测准确率是候选集共计11个角度的平均值,且排除相同的角度,即使用多视角的评估方法,而不是单一的跨视角。
4.2 实验结果及分析
本文在CASIA-B数据集上测试模型性能。从表1实验结果中可知,在三个候选集上都是90度时的步态识别结果最佳,0度到180度的准确率近似一个正态分布,越靠近90度,准确率越高。如图5所示,在90度时,可以较明显观察到身体各个关节摆动幅度、步长等信息,较多较直接的步态信息促使模型在90角度时准确率达到最高。当角度远离90度时,人体各个关节在行走过程中被遮挡部分变大,并且由于摄像机投影的问题,步长、步幅等信息会不断压缩、减弱或者丢失,因此准确率越远离90度越低。当角度大于90时,即行人向背离摄像头方向行走,提取的骨架关键点会出现左右相反的情况,因此表1中,108度会比对于90度对称的72度的准确率低,126度比54度低等。当角度为180度时,图5的样本序列中出现了较多较明显的关节识别错误,构建的自然连接边也会随之出现错误,因此识别率较其他角度会有明显幅度的下降。
表1基于骨架序列的步态识别方法的实验结果对比
0 | 18 | 36 | 54 | 72 | 90 | 108 | 126 | 144 | 162 | 180 | 平均 | |
NM# 5-6 | 85.1 | 86.7 | 87.5 | 87.8 | 88.2 | 88.3 | 87.6 | 87.4 | 86.9 | 84.4 | 74.3 | 85.84 |
BG# 1-2 | 75.1 | 76.2 | 77.3 | 77.4 | 78.3 | 79.6 | 78.1 | 77.2 | 76.8 | 75.2 | 71.5 | 76.61 |
CL# 1-2 | 64.9 | 68.9 | 69.1 | 70.1 | 70.4 | 72.6 | 69.9 | 68.8 | 68.2 | 66.6 | 53.9 | 67.58 |
图5 0度、90度、180度的步态骨架序列
实验结果进一步证明了本文提出方法的有效性,与同样基于骨架序列的文献[12]方法进行对比,对比结果为如表2所示。本文按照文献[12]文中的验证方法,随机选取10个参与者的90度步态序列,挑取3个正常序列作为训练集,选取2个正常序列,2个背包序列和2个衣服序列作为验证集。
表2基于骨架序列的步态识别方法的实验结果对比
正常行走 | 背包 | 衣服 | 平均 | |
[48]方法 | 95% | 80% | 90% | 88.33% |
本文方法 | 100% | 90% | 95% | 95% |
如表2所示,本文算法在20个正常步态序列上预测全部正确,并且在背包和衣服状态下也几乎达到了全部正确识别,较文献[12]有了很大的提升。文献[12]基于步态轮廓定位人体骨架关键点,计算关节角度作为特征向量,输入支撑向量机分类器进行步态识别,但是其特征向量中只包含关节的角度变化,忽视了其它步态的重要特征。图卷积方法能端对端同时提取节点特征和节点间的连接信息,并且在节点分类与边预测等任务上的性能远优于其他方法。本文直接将原始步态骨架序列输入到图卷积网络中,可以提取步态骨架序列的步幅、步频等特征,也包括一些神经网络提取到的未知特征,因此本文的模型识别率更精准更鲁棒。
5.结论
本文主要探索基于骨架序列的步态识别方法。在步态骨架提取阶段,采用Keypoint-RCNN方法提取精准的人体骨架位置;在步态识别阶段,基于图卷积理论,设计了用于步态识别的步态骨架序列表示。在构成步态图中,每个节点对应一个人体关节,每条边对应骨架关键点自然连接的帧内边和连接相同骨架关键点的帧间边。基于构成的步态图结构,本文设计了多个相同的时空图卷积模块,将步态骨架序列融合空间维度与时间维度的特征信息,对最后提取的特征向量进行分类,从而得到最终的识别结果。