APP下载

结合整体和局部特征的步态识别方法*

2023-06-01常超伟

火力与指挥控制 2023年4期
关键词:三元组步态分支

张 智,常超伟,王 雷,刘 博

(1.河北农业大学信息科学与技术学院,河北 保定 071000;2.河北省农业大数据重点实验室,河北 保定 071000;3.北方自动控制技术研究所,太原 030006)

0 引言

作为身份识别的重要生物特征之一,步态信息与其他特征(如人脸、指纹和虹膜)相比,其不需待识别主体的配合且具有一定的抗伪装性,因此,基于步态信息的行人重识别技术在视频监控、调查取证、敌我识别等场景中有着广泛应用[1]。

然而,步态识别算法的性能易受到以下因素的干扰:1)穿戴条件不同,例如携带背包或者穿着大衣;2)角度变化,表现为跨视角下的步态一致性判断;3)遮挡变化,例如来自建筑物或其他行人的遮挡;4)背景复杂,例如实际场景中光照强度的变化或者背景与人很难区分。以上4 个主要因素使得基于步态进行身份识别的任务变得困难。

为了解决上述问题,研究者将深度学习方法应用到了步态识别领域。例如,YU S 等提出GEINet将所有的步态模板转换到侧面视角下进行识别[2]。近年来的方法假设每个轮廓图都包含了其位置信息,不需要单独对时间线索进行建模。比如,GaitSet假设步态轮廓顺序并不是一个必要因素,从而直接学习步态的集合表示[3]。以步态的集合表示为基础,HOU S 等提出了步态横向网络,该网络将不同阶段提取到的整体特征进行横向连接来增强步态表示[4]。GaitPart 通过将步态特征图先切块再卷积来获得局部特征,并提出了微动作捕捉模块用来提取步态周期的短期特征[5]。

综合近几年的研究,将步态数据视为一个无序集合,对高层特征图的集合维度进行池化提取特征的方法具有很高的准确性。然而,以往方法只提取步态整体特征,会导致对步态的细节不够重视。同样只提取步态局部特征,会忽略局部区域之间的关系。针对上述问题,本文提出了一种整体与局部特征相结合的双分支(Two Branch)步态集合特征学习网络,命名为GaitTB。在CASIA-B 步态数据集上进行实验的结果表明,该方法在跨视角问题上的Rank-1 识别准确率相比主流方法得到有效提升。

1 模型算法

本文提出的GaitTB 模型如图1 所示,模型以无序的步态轮廓集合作为输入,经过整体和局部两个分支网络提取不同空间尺度的步态特征,然后将提取出的特征经过混合水平金字塔映射(mixed horizontal pyramid mapping,MHPM),结合成一个完整步态表示,最后使用三元组和交叉熵联合损失函数进行训练。测试时通过计算查询样本(probe)与库样本(gallary)的欧氏距离来识别行人身份。

图1 GaitTB 网络结构框图Fig.1 GaitTB network structure block diagram

1.1 问题描述

其中,fi是第i 个人的步态表示;G 代表整体分支网络;L 代表局部分支网络;表示特征级联操作;函数S 是排列不相关函数,将帧特征聚合成集合特征。函数M 将学习到的步态特征映射到判别空间,这将通过第1.5 节的操作实现。

1.2 整体分支

如图1 所示,整体分支网络是将步态集合输入网络,经过Block1 和Block2 操作,提取出图像整体特征,最后经过集合池化(set pooling,SP)操作聚合为整体集合特征。

由于SP 操作目的是压缩一组步态帧特征为集合特征,所以应该选取一个与集合内元素排序不相关的集合函数。根据文献[3]的集合函数对比实验,GaitTB 所采用的SP 公式为:

1.3 局部分支

在步态识别任务中,由于人体各部位有明显差异,所以模型引入局部特征分支可以促使网络关注特征图不同部位的局部信息。局部分支分为两个阶段进行特征提取,每个阶段都使用了局部卷积操作。局部卷积首先是将特征图水平分割成p 块,然后对这些块进行卷积得到局部特征,最后将其重新合并到一起,当p=8 时,本文采用的局部卷积如图2所示。局部卷积可以让下一层神经元的感受野变窄,这就使得深度神经网络中顶层神经元仍能够获取输入图中对应部位的更多细节。

图2 局部卷积操作和感受野展示图Fig.2 Schematic diagram of local convolution operation and receptive field

1.4 双分支网络参数

双分支网络采用以卷积层、LeakyReLU 激活函数和池化层为基础模块的叠加结构,具体参数如表1 所示。

表1 网络参数设置Table 1 Settings of network parameters

1.5 混合水平金字塔映射

MHPM 模块的结构如图3 所示,将两个分支网络提取到的整体和局部特征图进行水平裁剪,假设MHPM 具有S 个不同的尺度,则每个分支的特征图在高度上依次被裁剪成条,其中,

图3 混合水平金字塔映射Fig.3 Diagram of mixed horizontal pyramid mapping

1.6 网络训练

GaitTB 使用三元组损失函数(triplet loss)和交叉熵损失函数(cross entropy loss)联合训练网络。虽然基于度量学习的网络可以使用三元组损失函数对样本进行区分,但是三元组的选取可能会导致数据分布不平衡,使得训练不稳定,模型很难收敛。结合交叉熵损失函数可以对数据分布有很强的约束性,并且加快了训练过程的收敛速度。

三元组损失函数的主要目标是最小化类内距离,最大化类间距离。三元组损失函数的公式为:

其中,a 表示锚样本(anchor);p 表示正样本(positive);n 表示负样本(negative);N 表示三元组的数量。ya、yn、yp分别表示三元组中样本的类标签,da,p和da,n分别表示正样本对和负样本对的欧式距离;α 表示margin。

为了使用交叉熵损失函数,GaitTB 增加了一个由BN 层和全连接层组成的模块。其中,BN 层用来对MHPM 获得的特征进行归一化,有助于稳定网络的训练过程,全连接层用来做分类。GaitTB 使用的交叉熵损失函数如下:

其中,T 表示训练集的类别数量;mi表示类别为t 的真实概率。假设样本的类别为t,那么它属于第t 类的真实概率为1,其他类的概率为0;qt表示预测类别属于t 的预测概率。

联合后的模型总损失函数为:

2 实验与分析

2.1 数据集

中科院发布的CASIA-B 数据集[6]是目前步态识别的标准数据集,其包含124 个人(31 名女性和93 名男性),每个人分为6 个正常步行序列(nm-01,nm-02,nm-03,nm-04,nm-05,nm-06)、2 个携包步行序列(bg-01,bg-02)、2 个穿大衣步行序列(cl-01,cl-02)。而且每个步行序列又分为11 个视角(0°,18°,36°,54°,72°,90°,108°,126°,144°,162 °,180 °)。因此,CASIA-B 数据集一共包括124×(6+2+2)×11=113 640 个步态序列。该数据集样例如图4 所示,上半部分展示了同一个人的0°~180°的不同视角,下半部分展示了同一个人的3 种不同穿戴条件,分别是正常条件、穿大衣条件和携带物品条件。

图4 CASIA-B 数据集原始图像Fig.4 Raw images of CASIA-B dataset

2.2 实验设置与实验环境设置

模型训练的批大小为8×16×30,即随机选取8 个不同的人,每个人随机选取不同穿戴条件及视角下的16 个步态序列,然后从每个步态序列中随机选择30 帧图像构成一个步态集合。每幅步态图像要缩放为64×64 大小,并进一步裁剪为64×44大小以适配直立行走的步态。模型采用SGD 优化器,初始学习率设为10-1,每隔10 000 次迭代学习率衰减为原来的10-1,30 000 次迭代后衰减到1×10-1后保持不变。此外,在三元组损失函数的超参设置中,margin 设置为0.2,用于控制三元组样本对的类内和类间距离,两个损失函数的平衡系数β 设置为0.1。程序一共迭代了40 000 次。

本文实验软件环境使用的是Ubuntu 20.04.3,Python 版本为3.8.8,Pytorch 版本为1.9.1,Cuda 版本为11.2。硬件环境使用的GPU 是2 块NVIDIA GeForce RTX 2080Ti,CPU 型号为Intel(R)Core(TM)i9-9900X,内存为64GB。

2.3 实验结果与分析

CASIA-B 数据集不存在官方规定的训练集和测试集,当前文献中流行的3 种数据集划分方式如表2 所示。

表2 数据集划分(人)Table 2 Dataset partition(person)

本模型使用了表2 中CASIA-B 数据集的3 种划分方式,每种方式下均采用正常步行状态的前4个序列(nm-01,nm-02,nm-03,nm-04)作为查询样本集,剩余的6 个序列(nm-05,nm-06,bg-01,bg-02,cl-01,cl-02)作为库样本集。

下页表3 展示了在CASIA-B 数据集上GaitTB与主流方法的对比结果。所有结果均在11 个视角中取平均值,并且不包括相同视角,比如90°查询样本的准确率指的是除了90°以外的10 个视角的准确率平均值。由表3 可知,GaitTB 与GaitSet 相比,ST划分方式下BG 条件的准确率提升了8.9%,MT 划分方式下CL 条件的准确率提升了8.3%,LT 划分方式下CL 条件的准确率提升了7.7%。可以看出,GaitTB在BG 和CL 步行条件下,效果提升较为显著,原因如下:

表3 在CASIA-B 数据集的3 种样本划分设置下,平均Rank-1 准确率,不包括相同视角的情况(%)Table3 AverageRank-1 accuracyunderthreesamplesplitsettingson theCASIA-B dataset,Excludingthecaseofthesameangleofview(%)

1)BG 和CL 步行条件下,由于携带物品和穿大衣会使身形发生变化以及对身体有部分遮挡,影响识别精度。而局部分支水平分割特征图再卷积的操作会限制顶层神经元感受野,使其更关注步态输入的腿部和手臂这些局部细节特征。

2)GaitTB 使用了整体和局部两个特征分支,整体分支关注输入的整个特征图,忽略了具有判别性的局部细节。局部分支虽更关注局部细节,但忽略了局部之间的关系。MHPM 通过混合两种分支特征以获得更加适应步态问题的完整表示。

如下页表4 所示,GaitTB 在没有使用交叉熵损失函数时,由于不需要引入BN 层和全连接层,所以参数量甚至小于GaitSet,但是平均准确率仍然要比GaitSet 高,验证了模型结构的有效性和优越性。GaitTB 使用两个损失函数联合训练网络后,在NM条件、BG 条件、CL 条件下平均识别准确率提升了0.5%,0.9%,1.8%。这是因为引入交叉熵损失函数会进一步限制数据的分布,让同一类内的样本更加相似,从而提高了模型的识别能力。

表4 LT 划分方式下,GaitTB 和GaitSet 在平均准确率和模型参数量的对比Table 4 In the LT division mode,the comparison of the average accuracy and model parameters between GaitTB and GaitSet(%)Model

2.4 对比实验

GaitTB 模型采用将特征图先分块再卷积的方式来提取步态局部特征,为了选取效果最佳的分块数量,设置了如表5 所示的6 组实验。每次实验只改变每阶段分块数量,其他因素不变,并且使用三元组和交叉熵损失函数联合训练网络。

表5 LT 划分方式下,不同分块数量实验结果(%)Table 5 Under the LT division method,the experimental results of different number of blocks(%)

由表5 可知,随着分块数量的增加,模型的平均识别准确率先增大后减小,当两个阶段的分块数量为8 时,可达到最高的准确率,所以GaitTB 局部分支选取的分块数量为8。当局部分支两个阶段分块数量设置为1,即没有进行局部卷积操作时,其在NM 条件和BG 条件下的准确率均小于每阶段都分块的准确率,证明了使用局部卷积的有效性。分块过于细致,会使部分语义特征丢失,导致每块无法准确描述人体的局部信息,所以后面模型准确率不升反降。

3 结论

为了充分利用步态的整体和局部信息,本文提出了GaitTB 网络,该网络以步态轮廓图作为输入,将二分支网络分别提取的整体和局部特征结合成一个更具判别性的步态表示,最后使用三元组和交叉熵联合损失函数优化网络。CASIA-B 数据集上的实验结果表明,GaitTB 的平均Rank-1 准确率高于其他主流方法,验证了网络的有效性。

目前模型仅在CASIA-B 数据集上进行了实验。未来将增加开放环境下数据集[10]的实验,期望得到更通用、更稳健的步态表示。

猜你喜欢

三元组步态分支
步态异常,老年人应警惕这些疾病
特征标三元组的本原诱导子
关于余挠三元组的periodic-模
巧分支与枝
基于面部和步态识别的儿童走失寻回系统
基于Kinect的学步期幼儿自然步态提取
一类拟齐次多项式中心的极限环分支
基于三元组的扩频码构造及其性能分析
便宜假肢能模仿正常步态
三元组辐射场的建模与仿真