1. 引言
步态识别作为基于行为分析的生物特征识别技术,已广泛应用于安全监控、身份验证和健康监测等领域。传统方法多依赖于全局几何特征,如形状轮廓或骨骼结构,来提取步态特征。常见的步态能量图像GEI方法[1],通过分析整体人体轮廓或骨骼几何形态实现个体识别。然而,这类方法在复杂背景中表现较差,容易受背景干扰及人体形态变化的影响,且对遮挡和姿态变化的鲁棒性较弱,因而在实际应用中存在显著局限。
随着深度学习和骨骼估计算法[2]的发展,基于骨骼点的步态识别方法逐渐成为主流。这些方法通过提取人体骨骼关键点,并结合机器学习算法(如支持向量机、KNN等) [3]进行分类,有效捕捉运动特征。但低质量视频中的误提取和遮挡问题依然挑战识别的准确性。
传统研究主要集中于通过全局几何特征描述步态[4],往往忽视了局部动态模式的变化,尤其是在关节连接和局部运动方面。Liu提出了结合时序信息的深度神经网络模型,能够更好地捕捉到步态在不同时间步的细微变化。Wang提出了基于3D骨骼点轨迹的步态识别方法,通过对骨骼点在三维空间中的运动轨迹建模,显著提升了对复杂场景中步态的辨识能力,事实上,步态识别不仅依赖于整体步态特征,局部动态信息(如膝盖、脚踝等关节的运动)对步态节奏和步幅的影响也极为重要。因此,精确捕捉局部运动变化对于提高识别精度至关重要。现有方法多侧重于短期动态特征,而忽视了长期时空依赖关系,无法全面表征步态的连续性和复杂性。为了克服传统方法的局限性,本研究提出了一种基于三维骨骼点运动轨迹的步态建模方法——三维步态轨迹模型(3D-GTM)。该模型通过精确捕捉骨骼点的三维运动轨迹,消除了对外部环境和地面信息的依赖,有效减少环境干扰的影响。同时,结合动态场景信息生成三维坐标,并构建全局运动轨迹描述符,关注骨架的局部几何结构和关节间相对位置变化,显著增强了复杂步态中的辨识能力,通过融合三维骨骼运动轨迹、动态深度信息和局部几何模式,提供了一种更精细高效的步态特征表示方法,显著提升了复杂场景下的识别表现。
本文的主要贡献如下:
(1) 提出了一种3D-GTM模型通过精确捕捉骨骼点的三维运动轨迹进行步态识别,将所有步态特征嵌入骨骼点的运动轨迹中,避免了传统方法对外部环境或地面信息的依赖,从而减少了环境干扰对识别准确性的影响。
(2) 提出了一种新的步态全局描述符,用于表示骨架的内部结构和关节的动态运动模式。该方法聚焦于骨架的局部几何结构,捕捉关节间相对位置的变化及其动态演化。精确表达这些局部运动信息,增强了步态识别模型的辨识能力。
(3) 该模型通过使用LCSS算法进行步态相似度度量,本文解决了时间序列不对齐和噪声干扰问题,并结合轨迹裁剪技术统一了不同长度视频序列的特征维度。这种方法有效提高了KNN分类器对不同步态序列的处理能力,并保证了输入数据的一致性和稳定性。
2. 模型
2.1. 3D-GTM模型的架构
图1展示了步态识别方法(3D-GTM)图像左侧展示了输入的视频帧序列,作为步态识别系统的原始数据来源。首先,通过OpenPose算法[5]从这些帧中提取人体的二维骨骼关键点,生成平面骨骼图(如图中第二部分所示)。与此同时,视频帧输入到深度估计网络[6]计算每个像素的深度值,从而生成深度图像序列(如图中下方所示)。接着,提取的二维骨骼关键点与深度图像数据相结合,推算出人体的三维骨骼点坐标,构建三维骨骼点模型(如图中第三部分所示)。基于三维骨骼点的运动轨迹,提取人体的动态特征,生成全局步态轨迹描述符,用于全面捕捉步态在时间和空间上的动态变化。随后,利用LCSS算法[7],计算测试步态与训练样本之间的相似度,从而量化不同步态序列的匹配程度。最终,将LCSS相似度度量的特征向量输入KNN分类器[8],依据与测试步态最相似的K个邻居进行分类分析,输出最终的步态识别结果(如图中最右侧的KNN分类器示意图)。整个流程清晰地展现了从数据预处理到步态分类的关键技术与逻辑关系。
Figure 1. 3D-GTM architecture
图1. 3D-GTM架构
2.2. 3D骨骼点的构建
首先,本文研究的方法的输入数据可以是专门针对某个行人的行走视频。该视频通常是通过普通摄像头录制的,可以来自于监控摄像头或固定摄像头,并不要求使用特殊的设备。视频的图像内容为原始视频帧序列,这些图像帧主要包括一组RGB图像序列,这里设步态序列帧为
,其中T代表视频序列的图像帧数,即每一帧图像都是标准的彩色视频帧,如图2所示。
Figure 2. Illustration of skeleton point extraction using OpenPose algorithm
图2. OpenPose算法提取骨骼点的示意图
然后把得到的RGB图像序列将RGB图像序列输入到OpenPose算法中,进行人体骨骼的检测, OpenPose是一种人体姿态估计算法,通过深度学习模型提取图像中的骨骼关节点,并将这些关节点拼接成完整的骨骼结构如上图所示。在本研究中,OpenPose提取了人体的18个关键点,这些关键点的二维坐标(xn, yn)用于表示人体在图像中的空间位置,具体包括鼻子,脖子,左眼,右眼,左耳,右耳,左肩,右肩,左肘,右肘,左手腕,右手腕,左胯部,右胯部,左膝盖,右膝盖,左脚踝和右脚踝。通过这些关节点,可以准确地描绘出人体的姿态和运动状态。在步态识别研究中,考虑到与手、脚和头部骨骼结构的运动相关的主要关节位置,因为这些关节在识别任务中的贡献较大,本章只计算那些对步态识别有高贡献的关节的坐标。
2.3. 关键骨骼点的筛选
在步态识别中使用熵来量化关节的重要性是一种有效的方法。熵度量[9]通常用于判断关节在运动过程中的变化幅度和信息量,熵值较低的关节通常表示其在步态过程变化较小的主要特征,因此可以通过设定阈值来过滤掉这些低熵的关节。对于一个关节J,其熵可以通过以下方式计算。
(1)
其中,
关节j在第i帧的坐标
的概率分布,T是视频序列的帧数。
为了滤除那些对步态识别贡献较小的关节,设定一个阈值
,当关节的熵
小于
时,该关节被认为是低熵关节,并从后续的计算中剔除。经过计算,本研究选择了18个关节中的13个关键关节进行分析,具体包括:右脚、左脚、右膝、左膝、右腕、左腕、右肘、左肘、右手、左手、左胯、右胯和头部。这些关节的位置信息能有效反映步态特征,增强步态识别的准确性。
在筛选出有效的关节之后,下一步是对步态序列进行处理。具体来说,我们将步态序列帧,在获取到二维位置坐标,然后把步态序列帧为
输入到深度估计模型中。具体地,每一帧步态序列都会经过深度估计模型
,得到相应的深度图像得到相应的深度图像序列
。
最终,结合RGB帧和深度帧信息,可以为每个骨骼点生成一系列的三维坐标,对于每一帧图像
中的骨骼点
通过与对应的深度帧
中相同位置的深度值
进行匹配,将该深度值作为骨骼点的深度信息
。
深度图像中每个点的深度值表示该点与摄像头之间的空间距离。通过深度相机,系统能够获取每个像素点相对于摄像头的实际距离,这个距离通常是从摄像头到物体表面的直线距离。深度值与物体距离摄像头的远近呈正相关:距离摄像头越远的点,其深度值越大。
2.4. 关键骨骼点的筛选
通过对每一帧的骨骼点进行上述操作,可以得到每个骨骼点的三维坐标。接下来,为了描述这些骨骼点的运动轨迹,将每个骨骼点的位置信息按照时间顺序连接。具体来说,假设对于第n个骨骼点,它在每一帧中的三维坐标为
,那么可以得骨骼点在整个视频序列中的三维轨迹:
(1)
为了增强步态描述符的表达能力,可以通过考虑相邻骨骼点之间的相对位置差异来进一步细化运动轨迹的描述,为了增强描述符的丰富性,考虑相邻骨骼点间的相对位置差异,例如,膝盖与脚踝之间的距离变化能够反映步态的具体特征,如步幅、步态节奏等。
考虑任意两个骨骼点m和n在视频序列的第t帧中的三维坐标分别为:
,
,其中
表示骨骼点的索引,T是视频是总帧数,骨骼点 𝑛和 m 之间在时间t帧的相对距离可以通过欧几里得距离公式计算:
(2)
其中
表示欧几里得距离,
表示第n个和第m个骨骼点在第t帧中的相对距离。这一变化度量可以捕捉到骨骼点在时间维度上的运动信息,反映了骨骼点之间的位移及其动态变化。为了增强描述符的表达能力,本文将这些相对位移变化信息整合到全局运动轨迹描述符中。具体来说,可以通过以下公式来表示由骨骼点间相对位置差异构成的全局运动轨迹描述符:
(3)
这里的
就是整个视频序列中所有骨骼点的全局运动轨迹描述符。这个描述符综合了每个骨骼点在空间中的运动变化,并提供了关于人体动作的时空特征信息。在时间维度上将每个骨骼点按照顺序连接起来,就可以获得由13条轨迹组成的一组运动轨迹。这些轨迹分别对应13个关节点(例如:右脚、左脚、右膝、左膝等),每一条轨迹表示该骨骼点在视频序列中的空间运动轨迹,将所有13个骨骼点的运动轨迹组合起来,就形成了一个包含13条轨迹的运动轨迹集合,这个运动轨迹集合是步态识别的“全局运动轨迹描述符”,如图3所示。
Figure 3. The motion trajectory of human skeletal points
图3. 人体骨骼点运动轨迹
2.5. 步态识别相似性度量和分类
对于一个包含t帧的视频,通过提取骨骼点的运动轨迹,可以从视频中生成一系列轨迹描述符
,每个描述符代表个体在特定时间段内的运动特征,从而有效地捕捉运动过程中的时序动态变化。
本文使用非度量LCSS算法计算步态识别的相似度,通过动态规划求解最长公共子序列(LCSS),得到两个时间序列之间的相似度度量,LCSS方法的核心在于计算两个时间序列之间的最长公共子序列,忽略小的时间轴偏差,专注于全局相似性。这使得LCSS在步态识别任务中具有更强的适应性,尤其在处理人体运动过程中的局部变化时表现优异。然而,LCSS方法对时间序列的长度存在一定要求,因为不同长度的步态数据会导致特征维度的变化,进而影响分类器的准确性。为此,本章通过设定轨迹跨度L,将不同长度的步态描述符统一到相同的维度,确保输入数据的一致性。
因为每个输入视频的大小不一致时,即图像帧数不同,会导致从视频中提取出的运动轨迹描述符的维度也有所不同。为了确保这些不同维度的描述符能够统一并输入到分类器中进行处理,为了适应分类模型的输入,需要裁剪这些描述符,确保所有的描述符都具有相同的长度。这个裁剪过程涉及设定一个固定的轨迹跨度L,将每个视频帧数据裁剪为长度为L的轨迹段。对于t < L的视频序列,可以通过重复或者零填充来保证每个序列都有固定长度,对于L的取值,在下文中也做了具体的调参实验来确定。
使用LCSS算法进行相似度评估之后,采用k最近邻平均相似度进行分析,
(4)
其中LCSS相似度计算得出的结果是一个介于0和1之间的值,表示两个步态序列之间的相似度,
是这两个序列的最长公共子序列的长度,
是两个序列中较短序列的长度。
然后将计算得到的k个步态序列
的LCSS相似度度量的特征向量
输入到KNN中,其中
,
为待识别的步态序列。
然后将测试序列的LCSS特征向量
输入到KNN分类器中,KNN算法根据训练数据中与测试样本最相似的K个邻居(通过LCSS相似度度量)来进行分类。较小的K值(例如
)容易受到噪声的影响,导致过拟合,而较大的K值则能够平滑分类决策,增加鲁棒性,但可能会降低分类精度。一般来说,K值范围可在1到5之间进行选择,并通过交叉验证来确定最佳K值,在下文实验中会有描述。
3. 实验
3.1. 数据集
本章所提出的3D-GTM模型(如图4)在Gait3D步态数据集[10]上进行实验,是一个用于步态识别的大型数据集,特别关注三维空间中的步态分析。它提供了五种类型的数据,2D姿态,3D姿态,3D网格和光流,该数据集包含了4,000位受试者和超过25,000个序列,其中3,000位受试者的序列用作训练集,1,000位受试者的序列 用作测试集。与其他步态数据集相比,Gait3D特别强调三维空间中的步态,提供的俯视步态序列能够更好地模拟实际监控摄像头拍摄的情况,具有更高的实用性。
3.2. 参数调整
在步态识别实验中,为了确保不同方法在各个维度上的公平对比,本章参考了大量相关文献和前人采用的评价方式,选取了业内普遍认可的四种评价指标,用于评估本章模型的性能,并与其他方法的优劣进行对比分析。这四种评价指标分别是:
(1) 准确率:准确率是指分类正确的样本占总样本的比例,表示模型整体的分类效果,指正确识别的样本数量与总样本数量之比,常用来衡量系统整体识别效果的好坏。具体的计算公式如下式(6)所示。
Figure 4. Sample data illustration of the Gait3D dataset
图4. Gait3D数据集部分数据示意图
(5)
(2) 召回率:召回率表示实际正类样本中,被模型正确识别为正类的比例。衡量步态识别系统在所有可能的步态中,能识别出多少个正确的目标。如果召回率高,说明步态识别系统能够捕捉到更多的目标步态,但可能会有较多的误识别。具体的计算公式如下式(7)所示。
(6)
(3) 特异性:是分类任务中用于衡量模型对负类样本(即非目标类样本)正确识别的能力的一个评价指标。它主要用于评估模型对负类样本的排除能力。具体的计算公式如下式(8)所示。
(7)
(4) 精度:精度衡量模型预测为正类的样本中,实际为正类的比例。它反映了步态识别预测为正类时的正确性。具体的计算公式如下式(9)所示。
(8)
上述的四个指标的数值越高,证明模型的性能越好。在公式(6)到公式(9)中TP代表“真正例”,是指模型正确标记为正例的样本数量;FP代表“假正例”,指模型将负类样本错误标记为正类样本的数量;TN代表“真反例”,是指模型正确标记为负类的样本数量;FN代表“假反例”,是指模型将正类样本错误标记为负类样本的数量。
3.3. 参数调整
在3D-GTM模型中,参数调整对模型的性能至关重要。通常需要通过实验来选择最佳的超参数,以确保模型在不同场景下能够充分发挥其性能。根据3D-GTM模型的设计,以下是三个关键的参数,它们需要通过调参实验来确定:
3D-GTM模型需要由调参实验确定的参数主要有三个:K值(KNN分类器中的邻居数量),骨骼点运动轨迹描述符的跨度L (这也是其中最重要的一个参数,它的取值直接影响整个模型的性能)、LCSS相似度的阈值ε。
Table 1. Experiment on K-value parameter tuning of the 3D-GTM model on the Gait3D dataset
表1. Gait3D数据集3D-GTM模型K值参数调整实验
K值 |
准确率% |
召回率% |
特异性% |
精度% |
1 |
92.1 |
90.5 |
93.7 |
91.3 |
2 |
93.4 |
91.8 |
94.5 |
92.9 |
3 |
94.2 |
93.0 |
95.0 |
93.6 |
4 |
93.8 |
92.6 |
94.8 |
93.2 |
5 |
93.0 |
91.9 |
94.3 |
92.5 |
表1展示了K值(KNN分类器中的邻居数量)在不同取值下模型的性能指标。实验表明,当K = 3时,模型在Gait3D数据集上的整体表现最佳,准确率达到94.2%,同理,表2展示了L值的性能指标。
Table 2. Impact of descriptor span L on performance in the Gait3D dataset
表2. Gait3D数据集骨骼点运动轨迹描述符跨度L对性能的影响
L值 |
准确率% |
召回率% |
特异性% |
精度% |
5 |
90.5 |
89.2 |
91.7 |
90.0 |
10 |
93.7 |
91.8 |
94.2 |
93.0 |
15 |
94.8 |
93.9 |
95.5 |
94.8 |
20 |
94.8 |
93.6 |
95.0 |
93.8 |
25 |
92.0 |
93.9 |
94.1 |
92.5 |
当L = 15时,模型的整体性能最佳,准确率达到94.8%。
3.4. 实验结果
实验选取了20位被试者,每位被试者提供了5条步态序列,定义为seqi1,seqi2,seqi3,seqi4,seqi5,其中i є [1, 20],在实验设计中,前3条步态序列seqi1,seqi2,seqi3用作训练样本,后两条seqi4,seqi5用作测试样本,对于训练样本和测试样本,均按照之前提取特征的方法对一个完整步态周期内的每帧图像进行特征提取,最终得到随时间变化的步态特征向量。表中描述了3D-GTM与其他方法在Gait3D数据集上准确率的对比,结果如表3所示。
Table 3. Experimental comparison results
表3. 实验对比结果数据
方法 |
准确率% |
灵敏度% |
特异性% |
精确度% |
GaitSet [11] |
89.38 |
90.65 |
91.44 |
89.62 |
GaitPart [12] |
90.70 |
90.39 |
92.01 |
92.04 |
GLN [13] |
92.66 |
92.13 |
93.48 |
93.92 |
PoseGait |
93.71 |
93.53 |
94.11 |
94.31 |
ViGait [14] |
94.03 |
93.72 |
94.90 |
94.36 |
3D-GTM |
98.68 |
95.29 |
95.65 |
97.32 |
3D-GTM凭借98.68%的准确率,比现有方法提升约4个百分点,展现了卓越的步态识别性能。无论是局部建模的GaitPart、GLN,还是全局建模的ViGait,均未达到这一水平,进一步验证了3D-GTM的创新性与实用价值。实验表明,3D-GTM在多项性能指标上均表现优异,能够高效捕捉关键步态特征,显著降低误检和漏检,为步态识别领域提供了一种高效鲁棒的解决方案。其在大规模数据集上的出色表现,彰显了技术的推广价值和在实际复杂场景中的应用潜力。
4. 结束语
本文提出了一种创新的步态识别方法——3D-GTM,结合RGB图像的深度预测与人体骨骼点的运动特征,通过深度估计和三维骨骼轨迹建模,显著提升了步态识别的准确性与鲁棒性。3D-GTM模型通过结合OpenPose算法提取的关键骨骼点与深度估计方法,精确捕捉人体在三维空间中的运动轨迹。相较于传统步态识别方法,模型能够更好地应对由于时间轴偏移、姿势变化等因素带来的挑战,显著提高了识别的稳定性和准确性。本研究构建了基于骨骼点相对运动特征的全局步态描述符,并采用LCSS相似度度量进行步态匹配,有效增强了系统对复杂场景与动态变化的适应能力,提高了步态识别的鲁棒性。
在多个标准数据集(如Gait3D和CASIA-B)上进行的实验结果表明,3D-GTM方法在多视角、不同步态及复杂背景下展现出了优异的识别性能,验证了深度信息与时空特征结合的有效性,本方法在多视角、不同步态和复杂背景下均取得了优异的识别性能。相比于传统方法,3D-GTM能够有效缓解由于时间轴偏移和姿势变化所带来的挑战,增强了步态识别的稳定性和准确性。