时间:2024-05-04
李 凯,岳秉杰
(河北大学网络空间安全与计算机学院,河北保定 071002)
步态是指人们走路的姿势,是一种可在远距离感知的生物行为特征,研究表明,如果考虑步态运动的所有信息,那么每个人的步态都是唯一的。为此,Sarkar 等[1]通过利用人体步态特征进行身份识别,为进一步研究步态识别奠定了基础,从而步态识别成为计算机视觉和生物特征识别领域的一个热点研究方向。对于步态识别,根据研究方法的不同可以分为基于模型的步态识别以及基于外观的步态识别[2]。基于模型的方法[3-4]通过构建符合人体结构的模型来进行步态识别,但由于需要高分辨率的图像对人体模型进行构建,以及存在各种协变量的因素,如视角、穿着以及遮挡等问题很难还原准确的人体结构,在实际应用中,基于模型的方法会造成很大精度损失。基于外观的方法通过从视频中提取人的轮廓构建步态表征模板[5],如步态能量图(Gait Energy Image,GEI)[6]、运动历史图(Motion History Image,MHI)[7]、步态历史图(Gait History Image,GHI)[8]、保留时间信息的步态能量图(Chronogait Image,CGI)[9]。Iwama 等[10]也表明了GEI 是一种较为稳定且有效的步态表征模板。相较于基于模型的方法,基于外观的方法不需要先验知识构建人体模型,因此,基于外观的步态识别方法应用更为广泛。
与人的虹膜、人脸、指纹等其他特征相比,步态具有不需行人近距离接触、不需要对象专门配合、难以伪造以及不需要高分辨率的图像等优点[2]。尽管如此,影响步态识别准确率的因素仍有很多,它们主要分为两类:一类是外界环境因素,如光照、相机的分辨率以及相机视角等,其中视角因素影响较大;另一类是人自身的因素,如人的步伐、穿着等。为解决视角问题,通常采用跨视角步态识别或多视角步态识别方法[11]。由于多视角步态数据库中包括多个注册角度,而跨视角步态识别数据库中的注册角度都是相同的,因此与多视角步态识别任务相比,跨视角步态识别问题相对较难。由于同一人的轮廓因视角不同而具有很大的差异,导致步态具有高类内方差问题,因此,如何从步态信息中提取每个人的关键特征,学者们进行了广泛的研究。在基于深度学习的步态识别中,卷积神经网络(Convolutional Neural Network,CNN)[12]、生成对抗网络(Generative Adversarial Network,GAN)[13]与长短期记忆(Long Short-Term Memory,LSTM)网络[14]等在步态识别的应用中取得了良好的性能。例如,Tong 等[15]基于卷积神经网络提取步态特征,且对跨较大视角的识别具有较好的表现。Yu 等[16]利用GAN 模型提取步态特征。Xu 等[17]使用CNN 提取步态特征,利用胶囊网络作为分类器来完成步态识别任务。由于基于GEI 的步态识别会丢失步态特征的时序特征,为此Feng 等[18]提出基于LSTM 的步态识别模型,将CNN 提取的逐帧信息送入LSTM 中,得到了较好的识别结果。由于卷积神经网络使用了最大池化操作来增大感受野与实现图像的平移不变性,因此它会丢失很多空间信息。为此,本文提出了一种共享转换矩阵的胶囊网络,及其改进的动态路由算法,有效减少了网络训练参数;在此基础上,通过融合视角信息,并利用Triplet 损失与Margin 损失,提出了共享转换矩阵的胶囊网络模型及其融合视角特征的跨视角步态识别模型。
胶囊网络是由Hinton 等[19-20]提出的一种神经网络,主要使用向量存储一个实体的信息,向量的方向表示此实体,向量的长度表示实体存在的置信度,胶囊的每一维表示实体的具体特征,如旋转、字体的粗细等,并使用动态路由算法,寻找低层胶囊与高层胶囊的对应关系。在胶囊网络中,利用转换矩阵对向量进行变换得到预测向量,并通过式(4)的squash函数将预测向量的加权和si的长度压缩成0 到1 之间。可以看到,当胶囊层中含有较多胶囊时,则胶囊神经网络的训练时间复杂性较高。由于低层胶囊表示当前视角下局部的实体,且利用转换矩阵将其投影到另一个视角,因此,可以将多个胶囊共享同一个转换矩阵将其转换到相同的视角,从而提高胶囊网络训练的速度,也进一步减少网络训练的参数,同时,获得了共享转换矩阵的胶囊网络以及相应的动态路由算法。
设胶囊网络的第l-1层与第l层分别含有m和n个胶囊,对于传统胶囊网络[17]则含有m×n个转换矩阵,而共享转换矩阵的胶囊网络,则m个胶囊共享n个转换矩阵。设转换矩阵为Wi(i=1,2,…,n),首先将前一层胶囊uj(j=1,2,…,m)通过转换矩阵Wi得到预测向量uij,即
然后,利用式(2)计算预测向量uij的加权和,从而得到输出向量si:
其中cij为预测向量uij与高层胶囊vi的相似程度,通过式(3)计算:
利用式(4)将特征向量的长度压缩到0 到1 之间,以此作为下一层胶囊层的输入,其中向量vi表示压缩后的胶囊,si表示未压缩的特征向量:
而bij在动态路由算法开始前全部初始化为0,在每次动态路由算法结束后,利用式(5)进行更新,使得相似度高的低层胶囊聚在一起,最终预测出高级特征,胶囊网络的损失函数为Margin损失如式(6)所示:
其中:Lk为第k类的Margin 损失,Tk为样本标签,m+、m-与λ为参数。当正样本的预测值不大于m+或负样本的预测值不小于m-则会产生损失,从而使得正样本预测的值越大越好,负样本预测的值越小越好。
图1 给出了共享转换矩阵的胶囊网络的第l-1 层与第l层的前向传播图,且图中省去了动态路由算法中的权重cij。
图1 共享转换矩阵的胶囊网络的前向传播Fig.1 Forward propagation of capsule network with sharing transformation matrix
对于改进的胶囊网络,本文也给出了共享转换矩阵的动态路由算法(Share-Transform-Dynamic-Routing,STDR)如算法1,其中softmax与squash函数分别如式(3)和(4)所示。
算法1 共享转换矩阵的动态路由算法(STDR)。
输入 第l层的胶囊数n,第l-1 层胶囊数m与输出uj,动态路由次数r。
输出l层胶囊的输出vi。
本章主要利用提出的共享转换矩阵的胶囊网络,建立跨视角步态识别的网络模型,该模型主要包括两种:一种为基于共享转换矩阵的胶囊网络并结合Triplet 损失的模型,记为STN(Share-Triplet-Network);另一种为在STN模型基础上融合视角特征与Margin 损失的VSTN(View-Share-Triplet-Network)模型。对于每种模型,在训练阶段使用三元组网络,测试阶段仅使用三元组网络的一个分支提取特征。
STN 模型由两个卷积层、一个初级胶囊层、一个步态胶囊层与一个全连接层构成。卷积层负责提取行人的基本特征,胶囊层负责将基本特征压缩成胶囊并通过动态路由机制获得高级特征,全连接层将胶囊层输出的高级特征进行变换得到行人特征,从而使得行人特征更符合Triplet 损失中的距离度量,同时也可以更好地控制行人特征的维度。图2 给出了用于提取特征的STN模型。
图2 用于提取特征STN模型Fig.2 STN model for extracting features
在用于步态识别的STN模型中,使用了三元组网络,即网络中三个分支共享权重,其中的两个分支接受正样本,第三个分支接受一个负样本,经过C1、C2 两个卷积层与初级胶囊层提取基础胶囊,接着将基础胶囊送入步态胶囊中,并通过动态路由机制获得高级胶囊,然后将所有的高级胶囊与全连接层连接获得输出特征;将三个分支提取到的三个样本的特征送入Triplet 损失函数中,利用最小化Triplet 损失函数优化三元组网络,Triplet 损失函数如式(7)所示:
其中:Li表示第i个样本对的损失,a为锚样本,p为正样本,n为负样本,实验中a与p为同一人的两张不同GEI提取的特征,a与n为两个不同人的特征。d(a,n)表示距离函数,margin为参数,当锚样本和正样本间的距离与锚和负样本间的距离的间隔小于margin时将会产生损失,利用Triplet 损失函数,使得网络不断减小相同行人特征之间的距离,同时增大不同行人特征之间的距离。
在步态识别中,针对行人的不同视角对步态识别的影响,以及步态图像采集设备与行人角度的确定性,在STN 模型的基础上,通过增加提取视角特征过程,获得了VSTN 模型,如图3 所示。其中上半部分用于提取行人特征,结构与STN 完全一致,下半部分用于提取视角特征。对于视角特征的提取,掩码层将除特定胶囊外的其他胶囊值都设为0,以此保留特定胶囊的信息。拼接层用于将两个模块提取到的行人特征与视角特征结合在一起从而得到步态特征,在该模型中,损失主要来自于Margin损失与Triplet损失。
在VSTN 模型中,网络训练过程如下:通过卷积层与初级胶囊层获得基础胶囊;然后,基础胶囊送入视角胶囊层中并输出包含视角特征的高层胶囊,其中高层胶囊的模长表示当前步态能量图对应视角的概率,通过样本的视角标签对视角胶囊做掩码处理,从而得到对应的视角特征;最后,将视角特征与行人特征送入拼接层对两部分进行拼接,经过全连接层输出最终的识别特征。在训练阶段,利用视角标签与视角胶囊模长形成的Margin 损失与VSTN 中上半部分形成的Triplet 损失的结合共同优化VSTN 网络,其损失函数如式(8)所示,其中参数α为两个损失的权重。
图3 用于提取特征的VSTN模型Fig.3 VSTN model for extracting features
为了验证提出方法的有效性,实验选取了CASIA-B 数据集进行训练与测试。在该数据集中,随机选取74 人作为训练集,剩余50 人作为测试集,实验中使用规模为128×88 的GEI作为模型输入,其中GEI 的生成过程是将一个人的所有序列合成一张GEI,且GEI 合成时的对齐方式为人的重心,因此,训练集共有74人×10种携带物状态(两个背包,两个穿衣以及六个正常)×11 个视角共8 140 张图片。实验依次固定Probe与Gallery 视角,测试不同视角下Probe 与Gallery 的识别准确率,实验选取行人携带物状态中正常行走(NM)的1~4 作为Gallery,携带背包(BG)、穿戴外套(CL)的1~2 与NM 的5~6 状态作为Probe进行测试。
基于2.1 节提出的STN 模型,本文构建了用于训练网络的三元组STN 模型,如图4 所示,它主要由三个分支组成且三个分支权重相同,其中C1、C2为卷积层,分别含有64个11×11步长为2 的卷积核与256 个9×9 步长为1 的卷积核。BN(Batch Normalization)为批量归一化层,主要用于提高梯度下降的求解速度,同时增加网络的泛化能力,ReLU(Rectifie Linear Unit)为非线性激活层。PrimaryCaps 为初级胶囊层,初级胶囊的维度为256通道数为1,卷积核的个数为256,大小为9×9,步长为1。GaitCaps为动态路由层,路由次数为3,步态胶囊数量为16,胶囊维数为32。F4 为含有128 个神经元的全连接层。优化器为自适应矩估计(Adam),学习率为0.001。
图4 步态识别的STN模型Fig.4 STN model for gait recognition
测试时的Probe 与Gallery 分别通过单分支的STN 模型输出Probe与Gallery 的特征,单分支的STN 模型如图5所示。当得到Probe 与Gallery 特征后通过计算对应特征的距离来识别行人。
图5 测试使用的STN模型Fig.5 STN model used for testing
三元组VSTN 模型如图6所示,其中每个分支的左侧模块用于提取行人特征(参数与STN 完全相同),右侧模块用于提取视角特征。C1、C2 与C3 为卷积层,分别含有16 个11×11 步长为2 的卷积核、64 个7×7 步长为2 的卷积核与128 个3×3 步长为1 的卷积核。PrimaryCaps 为初级胶囊层,初级胶囊的维度为256,通道数为1,卷积核的个数为256,大小为3×3,步长为1;ViewCaps 为动态路由层,路由次数为3,视角胶囊数量为11,胶囊维数为32;Mask 为掩码层,Concatenate 为拼接层。实验中margin值为0.5,m+为0.9,m-为0.1。测试阶段将128×88 的GEI 送入单分支的VSTN 中提取特征,单分支的VSTN 如图7 所示。它与训练阶段的掩码操作不同,由于测试阶段不需要视角标签,因此,取高级胶囊中最大模长的胶囊作为视角特征。
图6 步态识别的VSTN模型Fig.6 VSTN model for gait recognition
图7 测试使用的VSTN模型Fig.7 VSTN model used for testing
为了评估提出方法的有效性,在不同步行条件下,对网络模型STN、VSTN 的识别准确率进行了实验。其中VSTN 模型除了提取视角特征的模块外,其他部分与STN模型参数一致,表1~6 给出了STN、VSTN 模型在不同视角下Probe 与Gallery的识别准确率。
表1 正常行走条件下STN模型的识别准确率Tab.1 Recognition accuracy of STN model with normal walking
从表1~6 可知,VSTN 模型识别准确率高于STN,但STN参数较少,且不需要收敛Margin 损失函数来识别样本的角度,因此,STN 训练过程的收敛速度比VSTN 更快,STN 模型更适合视角标签难以获取以及用于训练模型的硬件计算能力不足的情形。当Probe 与Gallery 角度相同或对称时,步态识别模型则有较好的识别准确率,此时Probe与Gallery的GEI最接近。同时,对于行人不同穿戴情况,则有NM>BG>CL,主要原因是NM 对行人影响较小,类内方差较小,而CL 与BG 将改变行人轮廓,因此识别准确率降低。
为了表明STN 与VSTN 模型在步态识别中的性能,选取CTN (Convolutional-Triplet-Network)[21]与 NN (Nearest-Neighbor)[22]方法进行了比较,实验结果如图8 所示,其中NSTN(Not-Share-Triplet-Network)为使用非共享转换矩阵的传统胶囊网络[17]模型获得的识别准确率,图中横坐标为Probe的角度,纵坐标为各个视角下Gallery的平均识别准确率。
表2 携带背包条件下STN模型的识别准确率Tab.2 Recognition accuracy of STN model with carrying a bag
表3 穿戴外套条件下STN模型的识别准确率Tab.3 Recognition accuracy of STN model with wearing a coat
表4 正常行走条件下VSTN模型的识别准确率Tab.4 Recognition accuracy of VSTN model with normal walking
从图8 可知,VSTN 模型的识别准确率无论是正常行走还是穿戴外套或携带背包状态下均优于其他4 种模型的识别准确率,主要原因是VSTN 使用了行人特征与视角特征融合后的特征进行识别,特征信息更加丰富,因此步态识别时获得了较高的识别准确率。
表5 携带背包条件下VSTN模型的识别准确率Tab.5 Recognition accuracy of VSTN model with carrying a bag
表6 穿戴外套条件下VSTN模型的识别准确率Tab.6 Recognition accuracy of VSTN model with wearing a coat
对于其他4种模型比较,有如下结果:
1)STN 与CTN 相比,在NM 情况下,CTN 识别准确率略大于STN,但对于CL 与BG 情况,STN 识别准确率均大于CTN,表明了使用胶囊网络提取步态特征的有效性;
2)STN 与NSTN 相比,STN 识别准确率高于NSTN,主要原因是NSTN模型训练参数过多,导致严重的过拟合问题;
3)NSTN 与NN 相比,NSTN 识别准确率高于NN,NN 使用欧氏距离直接比较两个GEI的差异,主要针对较底层的特征,而NSTN采用卷积与动态路由机制利用了步态的高级特征。
为了验证VSTN 提取到的视角信息的有效性,将VSTN 模型的识别准确率与CTN 的识别准确率进行了对比,通过各个视角的VSTN 的识别准确率与CTN 的识别准确率之差,并归一化后生成灰度图,且利用颜色深浅表示VSTN 在当前视角下与CTN 的识别准确率的优劣程度,颜色越浅,则表示VSTN的识别准确率优于CTN,结果如图9 所示。可以发现在跨较大视角的情况下,融合视角特征的VSTN 模型的识别准确率高于CTN,表明了提取视角特征的有效性。
图8 不同模型的识别准确率(分辨率128×88)Fig.8 Recognition accuracy of different models(resolution 128×88)
图9 VSTN与CTN跨视角识别准确率对比Fig.9 Comparison of cross-view recognition accuracy between VSTN and CTN
为减少网络参数,进一步提高网络的性能,提出了基于共享转换矩阵的胶囊网络,并以此为基础给出了两种跨视角步态识别模型,即STN与VSTN,以此提取步态特征,进而完成步态识别任务,其中融合视角特征的VSTN 模型在输入分辨率为128×88 的情况下,其识别准确率无论在正常行走还是携带背包与穿外套的情况下均优于基于卷积神经网络的CTN 步态识别模型。通过跨视角准确率对比实验,表明了提出的VSTN模型提取视角特征的有效性。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!