基于改进残差网络的联合损失步态特征识别

2022-05-05 13:37刘怡欣何小海卿粼波陈洪刚
计算机与现代化 2022年4期
关键词:步态损失函数

贺 璇,刘怡欣,何小海,卿粼波,陈洪刚

(1.四川大学电子信息学院,四川 成都 610065; 2.四川大学华西医院国家老年疾病临床医学研究中心,四川 成都 610065)

0 引 言

在人工智能技术日益发达的现代社会,指纹、虹膜、人脸、声音等生物识别方式的发展日渐成熟,但这些生物识别特征的获取需要大量的人力物力以及财力来保障。人脸和指纹识别等技术也只适用于近距离的识别过程,同时这些物理生物特征也更容易被窃取[1-2]。而步态特征、全身姿势等生物特征较难模仿,并且可以应用于远距离的场景[3-4],不易受照明差、距离远以及大型遮挡物等问题的影响,也不需被试者配合即可采集相关的目标信息[5]。目前,基于步态特征的识别方法主要分为2种,即基于模型[6]的方法和基于非模型[7]的方法。

基于模型的步态识别方法使用运动轨迹、肢体长度、肢体角速度等人体组成部分或人体动作的模型参数来描述步行模式。在基于模型的步态表征方法中,2种常用的步态表征模型是结构模型[8]和运动模型[9]。结构模型是一种通过测量肢体长度、肢体之间的距离和肢体的相对位置来描述身体部件属性的模型。运动模型测量步态力学参数,将人体各部位高度归一化后,通过不同长度的线段来代表人身体的各个部位,然后通过跟踪图像中关节点角度的变化来进行步态识别[10]。

基于非模型的识别方法直接从步态序列中提取运动模式,无需构建任何模型。基于非模型的方法又分为2种,第1种方法是将步态作为一个图像来处理,即将所有步态轮廓图像压缩成一个步态能量图[11-12],然后将步态作为一个图像匹配问题来处理。这种方法忽略了步态中的时间信息。第2种方法是将步态作为一个图像序列,考虑直接从剪影中提取人体特征,并使用LSTM[13]、3D-CNN[14-15]或其他方法对步态中的时空信息进行建模。

本文所使用的GaitSet网络[16]不属于上述2类方法,该网络输入的步态轮廓图序列间的顺序不受限制,且认为步态轮廓序列中存在步态周期,在周期中每个位置的步态轮廓有着唯一的特征。即使步态轮廓被扰乱了,也可以通过步态轮廓特征重新排列它们。因此可以将步态看作一个集合来提取时序信息。本文在此网络的基础上对其特征提取模块进行优化并利用多种损失函数联合的方式来优化网络模型参数,从而提高模型识别的准确率。实验结果表明,优化后的模型在不同条件下的识别准确率相较于原网络均有所提高。

1 基础网络GaitSet

在GaitSet中所有的步态被视为由独立的帧组成的图像序列,基于图像序列的视角,在进行特征识别时可以不受帧的排列方式的影响,也不会因为需要保持不必要的顺序约束而失去步态识别的灵活性。整个过程提取了每一帧图像的空间特征,同时还提取了整个序列的时间特征,比使用步态模板的方式提取的特征更全面,保留时间特征的同时提取了各帧特征。图1为GaitSet网络框图。进行步态识别时需要区分3个不同的集合:训练图像集(Train Set)、参考图像集(原型图像集,Gallery Set)与测试图像集(Probe Set),其中Gallery和Probe集供测试时使用[17]。步态识别具体过程如图2所示。GaitSet网络识别过程为每帧步态图像经过3个连续的帧级特征提取模块和集合特征聚集模块,最终将提取到的集合级特征通过水平金字塔映射HPM[18]模块映射为最终的m维特征,此特征作为GaitSet网络的输出,通过对Gallery和Probe进行对比计算它们的相似度后得出识别结果。

图1 GaitSet网络示意图

图2 步态识别流程图

1.1 Set Pooling模块

Set Pooling (SP)用于将帧级特征聚合成独立序列级特征,即将(n,c,w,h)维度的特征聚合为(c,w,h)维度。其中,n为用于训练的人数,c为用于训练的图片的帧数,w为图片的宽度,h为图片的高度。Set Pooling的目的在于收集整个序列的步态信息。

z=G(V)

(1)

V={vj|j=1,2,…,n}

(2)

其中,z表示基于set的特征。V表示基于frame的特征。G需要满足2个约束:1)将set作为输入;2)G应该是一个排列不变函数:

G({vj|j=1,2,…,n})=G({vπ(j)|j=1,2,…,n})

(3)

其中,π表示任意的排列。另外,每个set的步态轮廓序列是任意的,所以G可以输入任意数量的步态序列。同时,使用视觉注意力机制来提高SP的性能。

1.2 HPM模块

水平金字塔映射HPM将包含了时间和空间的序列级特征压缩成1维特征以便于最后的全连接做分类。HPM模块如图3所示,HPM部分是为了将Set Pooling提取的(c,w,h)维特征映射为m维特征,使其具有更好的区分性,便于计算步态特征间的相似度。其设计思路是基于HPP(Person ReID)的[19],将特征图进行多种水平划分来提取特征。对每个池化后的特征使用独立的完全连接层(FC)将其映射到判别空间,而不是在合并后应用1×1卷积层。具体而言,HPM具有s个维度,对序列级特征进行s次维度的reshape后,用一个全局池化将reshape后的特征从3维特征映射为1维特征。再对降维后的特征进行全连接操作,最终每个样本均会得到一个2维特征。全局池化分为最大池化和平均池化,其定义如下:

图3 HPM模块

(4)

其中,maxpool(·)、avgpool(·)分别代表最大池化和平均池化。

2 改进网络

本文从改进帧级特征提取的方式以及改进损失函数这2方面对基础网络GaitSet进行相关优化,并在此基础上设计新的步态特征识别网络Res-GaitSet。新的网络结构如图4所示。该网络以64×64大小的步态序列图像作为输入,经过3个由残差单元Bottleneck和最大池化操作组成的帧级特征提取模块后,在集合特征聚集模块通过注意力机制提取每一帧图像的最大值级联,从而得到每一个样本的序列级特征,将序列级特征送入HPM模块后得到网络的输出,最后通过多联合损失函数来优化网络的各项参数。

(3)酸沉。用硝酸中和钼酸铵结晶母液,钼酸根离子水解成四钼酸铵沉淀,而其他金属杂质则进入残液。其反应式如下:

图4 Res-GaitSet网络示意图

2.1 优化特征提取方式

原始网络GaitSet中的帧级特征提取模块采用了简单的卷积操作,使用的卷积层较少、网络比较浅,所以提取到的特征不够丰富,无法获取更深层的特征。但若直接通过堆叠简单卷积层来加深网络可能会出现“梯度爆炸”“梯度消失”等问题,导致无法收敛,从而使优化效果变差,训练和测试数据准确率降低。目前针对这种现象,He等人[20]提出了一种新的残差网络ResNet,其由多个残差块堆叠构建而成,通过在一个浅层网络的基础上叠加恒等映射层(Identity Mapping),可以使网络加深的同时避免网络退化。网络改变了原来的学习目标,不再学习完整的函数H(x),而是学习输出和输入之间的差值,即残差:

F(x)=H(x)-x

(5)

虽然两者的表达方式相同,但优化难度却不同,对于残差的优化比原来的函数H(x)要简单许多。残差模块通过快捷连接(Shortcut Connection)实现,将模块的输入和输出进行一个元素级的叠加,这种简单的叠加方法不会给网络带来额外的参数和计算量,同时还会提高训练速度,提升训练效果,在加深模型的同时不会造成退化问题。改进的网络Res-GaitSet中使用了用于ResNet50等深层网络的残差单元Bottleneck来替换原来简单的卷积操作。残差单元Bottleneck如图5所示。

图5 Bottleneck单元

2.2 联合损失函数

2.2.1 Triplet Loss损失函数

原网络使用Triplet Loss[21]来作为损失函数,其优势在于细节区分,即当2个输入相似时,Triplet Loss能够更好地对细节进行建模,相当于加入了2个输入差异性的度量,可以对输入进行更有效的学习。该函数定义如下:

(6)

图6 Triplet Loss示意图

然而Triplet Loss虽然有效,但同时也存在着一些明显的缺点:训练过程不稳定,收敛慢,对于参数的调整需要花费大量的时间。所以在很多情况下,人们不会单独使用Triplet Loss,而是将其与Softmax Loss等损失函数相结合使用,以稳定训练过程。

2.2.2 联合损失函数Softmax Loss

(7)

其中,xi表示属于第j类的第i个特征,yi表示样本的真实类别,W和b则分别表示特征维度中最后一层的权重以及偏置项。虽然Softmax Loss联合Triplet Loss一起使用会稳定训练过程,加快收敛速度,但这种方式只考虑了能否正确分类,却没有考虑类间距离。所以进一步考虑结合新的损失函数Circle Loss和其他2个损失函数一起联合使用。

2.2.3 联合损失函数Circle Loss

Circle Loss[24]是从相似性优化的角度,正式统一了分类学习和样本对学习2种基本学习范式下的损失函数,在Triplet Loss的基础上改进而来,旨在最大化类内相似度区间,最小化类间相似度序列。一个相似度评分远远偏离最佳值,就应该强调它,所以简单的重新分配每个相似度的权重,突出较少优化的相似度评分。它的改进点在于,原本Triplet Loss对于正负样本采用平均的方式进行优化,这使得在模型收敛的时候,对于正负样本的区分力度不够。Circle Loss给正负样本对加入了一个权重,控制正负样本对各自的梯度贡献,最后就可以得到一个更有区分力度的模型。该函数定义为:

(8)

其中,sp为类内相似度,sn为类间相似度。γ是比例因子,m是用于更好地分离相似性的余量,Circle Loss在实现的过程中增大了模型对于各个分类在训练过程的难度,最终体现出来其模型有更强的区分力度。通过进一步泛化,Circle Loss获得了更灵活的优化途径及更明确的收敛目标,提高了所学特征的鉴别能力,有利于深度特征学习。Circle Loss指出Softmax Loss类和Triplet Loss类损失函数的同质性,并提出了一种囊括Softmax Loss类学习和Triplet Loss样本对学习的统一损失,且可以重新配比每个相似度,自适应地专门强调欠优化的相似度得分项,提供一种更灵活的优化策略,来打破这样的同质性。在各种深度特征学习任务中,例如人脸识别、人物再识别和细粒度图像检索[25],Circle Loss的性能与现有技术相当。

最终,Res-GaitSet网络中使用的损失函数为Triplet Loss、Softmax Loss和Circle Loss这3个损失函数的加权和。将联合损失函数定义为:

αLT+βLs+λLuni

(9)

其中,α、β、λ分别为3个损失函数对应的权值,经过各项对比实验可得到3个值的最优设定,分别为0.4、0.4、0.2。

3 实验结果与分析

3.1 实验平台和数据集

本文实验的操作系统版本为Ubuntu 16.04,显卡的版本型号为NVIDIA GeForce GTX1080Ti, Cuda版本为10.1,使用Pytorch深度学习框架进行编程。

本文使用中国科学院自动化所模式识别实验室创建的CASIA-B[26]步态数据库进行相关实验。该数据库包含124名行人,每名行人包括从0°到180°的11个视角,每18°为一个间隔。包括穿着外套(CL)、背包(BG)和正常行走(NM)这3个行走场景。正常行走的步态序列数据有6组,穿外套和背包的步态序列均为2组。每个行走场景有11个角度的变化,因此每个样本共有11×(6+2+2)=110组步态序列图像,每张图片的分辨率均为320×240。步态特征识别需要以下数据:训练图像集Train Set、参考图像集Gallery Set和测试图像集Probe Set,所以本文将数据集中的74人用于训练集,剩下的50人用于测试集。在测试时,将正常行走的步态序列图像的前4组用作参考图像(Gallery),正常行走的步态序列图像的后2组以及穿外套和背包的步态序列图像的所有数据均用作测试图像设置(Probe)。

3.2 实验和结果

本实验使用CASIA-B数据集来进行数据的训练和测试。将测试的结果分为2个大类,即Include Identical-View和Exclude Identical-View。当情况为Include Identical-View时表明,完成步态特征识别后,在进行数据测试时,将Gallery和Probe视角相同的情况包含在准确率的计算中;当情况为Exclude Identical-View时,在进行数据测试时,排除Gallery和Probe视角相同的情况再进行准确率的计算,即当选取的Gallery视角为90°时,不再匹配相同视角的步态视频序列。

表1为使用不同的方法和网络模型在CASIA-B数据集上进行步态特征识别后得到的准确率。文献[15,27]均为传统的基于非模型的步态识别方法,文献[27]为使用长短期记忆网络LSTM进行步态特征识别的方法,文献[15]为使用步态能量图进行步态特征识别的方法,GaitSet为本文的基础网络,Res-GaitSet为本文改进后的网络。

表1 各网络识别结果对比

通过对比可以得出结论,在Include Identical-View和Exclude Identical-View这2种情况下,经过帧级特征提取模块和损失函数融合改进后的网络Res-GaitSet均能取得较好的识别效果,与基础网络GaitSet相比,3种不同行走条件下识别准确率均能够提升。实验验证了改进网络的有效性。

3.3 消融实验

为了进一步验证改进模块的作用,在原网络的基础上逐一增加模块,通过消融实验来验证各模块的有效性。表2为在对比实验的基础上,通过逐一增加不同模块得出的消融实验结果。

表2 消融实验结果

通过消融实验的结果可知,增加的3个模块对不同行走条件下的识别准确率均有提升作用。进行深层次特征提取的残差模块Bottleneck,对于正常行走条件下的步态数据识别准确率提升较大;损失函数Softmax Loss和Circle Loss则对穿着外套和背包行走条件下的步态数据识别准确率提升较大,这2个角度中的步态序列图像可能因为行人外观的不同,拥有一些特异性的步态特征,因此添加损失函数后会对识别效果有更明显的改进。

为验证改进方法的有效性,将改进后的模型应用在自己创建的步态数据集中。数据集使用固定放置的相机,分别拍摄45°、90°、135°这3个角度的步态视频,将视频抽帧后分割为二值化的黑白轮廓图,然后将轮廓图裁剪成与公共数据集CASIA-B相同大小的图片,数据集裁剪后的黑白二值化轮廓图如图7~图9所示。

图7 45°

图8 90°

图9 135°

实验数据共有6000张图片,45°、90°、135°每个角度的图片分别为2000张。将裁剪后的图片分别送入GaitSet网络和改进后的Res-GaitSet网络中进行实验对比。实验结果如表3所示。由实验数据可知,改进后的网络在自建步态数据集的各角度情况下,识别效果相比较于原网络均有提升。

表3 对比实验结果(Exclude Identical-View)

4 结束语

随着步态这项生物特征在各个领域中日渐广泛的应用,步态特征的识别就变得尤为重要。本文在一个目前效果较好的步态特征识别网络的基础上,利用残差的思想,通过改进帧级特征提取模块优化了网络的特征提取方式,加深网络深度的同时避免了梯度爆炸等问题,从而可以有效地提取更深层次的特征。同时在基础网络使用的Triplet Loss损失函数的基础上,联合用于分类任务的Softmax Loss和Circle Loss损失函数,通过多函数融合来对模型参数进行进一步的优化。将改进后的模型在CASIA-B数据集和自建数据集上分别做了测试,并与基础网络和一些其他特征识别方法进行比较得出,改进后的模型Res-GaitSet对于步态特征的识别具有更高的准确性和鲁棒性。

但本文对于步态特征受服装变化和携带物体影响等因素带来的问题没有做深入的研究和改进,当人体受遮挡较多时可能对步态特征的提取会有较大的影响,识别率也会降低。所以如何进行不受服装及携带物体影响或在受到遮挡时如何进行有效的步态特征识别是深度学习领域一个富有挑战性的问题,同时关于步态在老年健康评估等方面的探索也是一个重要的应用。

猜你喜欢
步态损失函数
基于步态参数分析的老年跌倒人群步态特征研究
二次函数
第3讲 “函数”复习精讲
胖胖损失了多少元
二次函数
函数备考精讲
玉米抽穗前倒伏怎么办?怎么减少损失?
基于面部和步态识别的儿童走失寻回系统
步态识人
菜烧好了应该尽量马上吃