赵煦华 胡海根
摘 要:文章对步态识别的应用进行研究,基于深度学习技术研究开发了移动端步态识别系统。手机客户端主要完成步态数据的采集、上传以及结果显示,服务器端负责对步态数据进行轮廓提取、步态匹配与识别等功能。其中步态轮廓提取采用DeepLabV3+语义分割模型,实现像素级别的轮廓分割;步态识别采用GaitSet模型,实现人体步态匹配。系统分别经CASIA-B数据集和真实场景进行测试,显示系统能够获得较好的性能,准确率达到77.5%。
关键词:步态识别;深度学习;轮廓提取;语义分割;手机摄像头
中图分类号:TP183 文献标识码:A文章编号:2096-4706(2021)13-0063-06
Research on Gait Recognition Algorithm Based on Deep Learning and
Its Application
ZHAO Xuhua1, HU Haigen2
(1. College of Information, Zhejiang Guangsha Vocational and Technical University of Construction, Dongyang 322100, China;
2. College of Computer Science and Technology, Zhejiang University of Technology, Hangzhou 310024, China)
Abstract: This paper studies the application of gait recognition, and develops a mobile terminal gait recognition system based on deep learning technology. The mobile client mainly completes the gait data collection, uploading and result displaying, while the server side is responsible for contour extraction, gait matching and recognition of gait data. The gait contour extraction adopts DeepLabV3+ semantic segmentation model to realize pixel level contour segmentation; Gaitset model is used for gait recognition to realize human gait matching. The system has been tested by CASIA-B data set and real scenarios respectively. It shows that the system can obtain good performance, and the accuracy rate can reach 77.5%.
Keywords: gait recognition; deep learning; contour extraction; semantic segmentation; phone camera
0 引 言
步态识别是一种新兴的生物特征识别技术,旨在通过人们走路的姿态进行身份识别。与虹膜、指纹等其他的生物识别技术相比,步态识别具有非接触、远距离和不易伪装等优点,在智能视频监控领域,是远距离情况下最具潜力的生物特征,比面相识别更具优势[1],因而引起了国内外广大研究者们的浓厚兴趣。作为一种可以远距离识别的独特生物识别功能,步态将在预防犯罪、法医鉴定和社会保障方面具有广泛的应用前景。而深度学习作为一种新型的机器学习方法,能够对抽象的特征信息进行多层次的提取和学习,在图像分类、目标检测与跟踪、自然语言处理等领域取得了突破性进展。在深度学习的大框架下,步态识别亦取得了重要进展,步态信息的表现形式与处理方式呈现出多元化的特点,一些步态识别方法相继涌现出来,主要通过步态采集、步态分割、特征提取、特征比对等四个阶段[2]来完成对个人的识别。目前有两种基于视觉特征的主流方法:一是将步态视为静态图像进行处理,最为典型代表是基于步态能量图(GEI)的识别方法[3],例如,冯世灵等人[4]提出了结合非局部与分块特征的跨视角步态识别,通过随机生成正负GEI样本对,提取各自的非局部特征和样本间的相对非局部特征,又将特征图水平切分为静态、弱动态和强动态三块,分别训练,而胡靖雯等人[5]将GEI输入多层CNN,利用四元损失对网络进行训练;二是将步态视为动态的视频序列进行处理,由于整合了前后帧的上下文信息,识别效果较为显著,最为典型的步态识别算法以GaitSet[6]等为代表,例如,GaitSet在CASIA-B步态数据集上实现了平均95.0%的一次命中准确度,在OU-MVLP步态数据集上达到了87.1%的准确度。早在2012年,贲晛烨等人就从人体测量学数据、空间时间数据、运动学数据、动力学数据和视频流数据的特有方法角度总结步态识别的各种方法,较为深入全面地阐述了步态识别传统方法的研究现状[7]。除了视觉特征之外,在可穿戴设备日益盛行的今天,可穿戴传感器作为人体信息采集的重要工具,促使可穿戴设备也日益作为步态识别信息的采集工具。例如,汪涛等人[8]将注意力机制融入CNN,实现对步态特征的加强;张馨心等人[9]对传感器系统进行特征值筛选,并用粒子群优化BP神经网络进行识别。此外,还有不少学者[10-14]把目光聚焦于WiFi信号无线传感技术,现在这项技术在步态识别上已经得到了较好的应用。
随着智能手机和移动通信网络特别是5G技术的高速发展,使移动端与服务器端之间大容量、低时延的图像视频数据实时传输成为可能,以手机作为步态视觉信息的采集与显示工具,通过在后端服务器端进行步态识别处理成为一种可行的应用解决方案。本文基于步态识别领域最新的研究进展,提出了基于深度学习的轮廓提取与步态识别整合方案,亦即先通过DeepLabV3+[15]算法在真实环境下提取人体步态轮廓,再利用GaitSet步态识别算法进行有效识别的应用解决方案。本文的主要工作及创新在于:(1)在服务器端,通过使用Socket通信实现了从客户端接收图片/视频并返回识别结果给客户端的功能;(2)在手机客户端,基于Android Studio的APP编程,实现了连续拍照,将照片发送给客户端并接收返回结果的功能;(3)通过DeepLabV3+语义分割模型进行像素级的轮廓提取,实现了将普通照片转化为步态轮廓图的功能;(4)基于GaitSet算法对步态轮廓图进行特征提取,通过与数据库信息进行比对,实现了身份识别的功能。经实验测试,通过手机所拍摄的一段人的步态视频,即可辨别其身份,操作简单便捷。
1 相关工作
1.1 DeepLabV3+
DeepLabV3+是结合空间金字塔池化(Spatial Pyramid Pooling,SPP)模块和encode-decode结构的优点提出的新的语义分割结构。其特点在于:基于DeepLabV3[15]提出了新的encode-decode的语义分割结构和一个简单但有效的decode模块;并通过设置空洞卷积调整encode模块输出的特征图大小以调节精度和运行时间之间的平衡,实现了多尺度信息的融合;为语义分割任务调整了Xception模块,同时对于ASPP和decode模块运用深度分离卷积结构,使得整个网络更强更快,提高了语义分割的健壮性和运行速率,在Pascal VOC上达到了89.0%的mIoU,而在Cityscape上也取得了82.1%的好成绩。
1.2 GaitSet
GaitSet步态算法[6]主要思想来自人类对步态的视觉感知上,作者发现,步态中的silhouette从视觉上看前后关系很容易辨认。受此启发,作者不再刻意建模步态silhouette的时序关系,而将步态silhouette当作没有时序关系的图像集,让深度神经网络自身优化去提取并利用这种关系。该算法在具体实现上具有如下特点:CNN用于独立地从每个轮廓中提取帧级特征,并池化为集级特征;Set Pooling操作用于将帧级特征聚合成独立序列级特征;使用水平金字塔映射(HPM)的结构将这个序列级特征,就是包含了时间和空间的特征压缩成一维特征便于最后全连接做分类。而Set Pooling采用了注意力机制,首先由三种统计函数收集全局信息,然后将其与原始特征图一起送入1×1卷积层计算注意力以精炼特征信息,再通过在所设置的帧级特征映射的集合上使用MAX来提取最终的序列级特征z,再将其应用于序列维度,残余结构可以加速并稳定收敛。
2 系统方法
2.1 总体设计
系统采用C/S架构,总体流程分为步态注册和步态识别两阶段,总体设计示意图如图1所示。
注册阶段:首先在客户端通过现场录制上传或本地上传的方式,将步态序列发送至服务器端,用DeepLabV3+语义分割模型加工产生步态轮廓序列,再通过GaitSet进行步态特征提取,最终将步态特征与个人身份信息一同存入数据库。
识别阶段:采用同样的方式将步态序列发送至服务器端并获得步态特征,将该特征与数据库中已注册的信息进行相似度比对,以识别身份,最终将结果返回客户端。
2.2 C/S架构
整个步态识别系统采用C/S架构,分为手机APP客户端和服务器端,而手机APP则是基于Android手机开发的。根据系统的需求分析,要实现安卓手机通过WiFi对服务器进行指令的发送与接收,需要将指令通过指定IP地址和8080端口发送给服务器,安卓手机作为客户端连入该WiFi网络服务器,通过手机端采集的步态视频序列数据在服务器处理后将数据发送给手机。其中,由手机客户端输入IP地址、端口号和要发送的数据信息,以及采集到的步态视频。Socket通讯将数据发送至同一个网络下的服务器,服务器接收到这些步态视频数据后,对其进行轮廓提取、格式转换以及步态识别,系统C/S架构如图2所示。
2.2.1 服务器端
服务器采用高性能的工作站,依托NVDIA GPU的性能,能加快整个步态识别的速度。服务器上搭建了DeepLabV3+和GaitSet等深度学习网络平台,前者用于人体轮廓提取,后者用于步态识别。平台上配置了numpy、PIL、OpenCV等常用的python模块,使其能够完成步态轮廓提取和步态识别功能。
服务器端响应Android手机客户端请求过程为:(1)首先对请求上传的视频帧图片进行必要的校验,包括图片的大小、类型、格式等;(2)再以函数调用系统命令的方式,调用deeplabv3模型并对视频帧图片进行轮廓提取;(3)提取到的轮廓序列图片经训练好的GaitSet步态模型识别处理,得到识别结果;(4)最后将识别结果封装成相应数据格式,通过Socket通讯请求返回给Android手机客户端,完成服务器端的响应过程,其业务逻辑如图3所示。
2.2.2 手机客户端
Android手机客户端采用Android Studio开发平台搭建,主要目的在于为用户提供友好的可视化操作界面。客户端主要完成步态视频采集、传输图片、识别检测等功能。具体操作流程为:(1)通过手机拍摄一段步态视频,或者通过手机连拍功能拍摄一段步态图像序列;(2)设定上传图片的数量,再通过Socket传输序列帧图像,收到服务器确认后表示传输结束;(3)服务器将接收到的图片经轮廓提取并进行识别匹配后,将识别结果返回给客户端,并显示在弹窗上,Android手机客户端的功能如图4所示。
2.3 DeepLabV3+步态轮廓提取
步态轮廓常采用帧间差分法[16]、光流法[17]、背景差分法[18]。帧间差分法实现简单,但是当前后两帧变化很小时,检测目标会不完整;光流法计算复杂,对光线非常敏感;背景差分法需要事先建立良好的背景模型,在应用的过程中也需要实时更新背景。考虑到语义分割模型在经过充分训练后能够对物体进行像素级别的分割,能取得较好的分割效果,本文将DeepLabV3+运用于步态轮廓的分割。对于单帧信息,首先选一个低层级的feature用的卷积进行通道压缩(原本为256通道,或者512通道),目的是减少低层级的比重。我们认为编码器得到的feature具有更丰富的信息,所以编码器的feature应该配置更高的比重,以便于有效训练。而对于解码器部分,直接将编码器的输出上采样4倍,使其分辨率和低层级的feature保持一致。例如,若采用ResNet Conv2输出的feature,则进行上采样,再将两种feature连接后,进行一次的卷积操作(细化作用),最后再次采样就得到了像素级的预测。
值得注意的是,在进行步态轮廓采集过程中,由于镜头与人的距离是一个动态过程,轮廓会因距离镜头的远近而大小不一如图5 所示,将会严重影响到后续步态识别的精度。因此,本文采用OpenCV-Python的方法,通过中心线原则把步态轮廓统一裁剪成的大小,如图6所示。
2.4 步态特征提取
GaitSet[6]有别于template-based和sequence-based当前主流的步态识别方法,template-based方法会导致时序信息得不到利用,sequence-based方法则会由于引入了时序约束从而丢失了灵活性。而GaitSet[6]是一种将步态序列视为一组无序集合来处理的方法,将步态特征视为一组步态轮廓图,即使这些轮廓是乱序的,也只要通过观察它们的外观就能将它们重新排列成正确的顺序。因而它能有效且高效地提取空间和时间特征,从而获得了优秀的性能。GaitSet的实用性也很强,其宽松的输入限制可以使其获得更广泛的应用场景,模型可以直接计算步态特征而非计算步态间的相似度。因此,本文采用GaitSet模型来实现步态的识别。
对于模型训练,GaitSet的输出是具有d个维度的特征。不同样本对应的特征将被用于计算损失,训练网络采用Batch All(BA+)Triplet Loss函数。从训练集中拿出一个大小为p×k的batch,其中p表示人数,k表示每个人拿k个样本,这样总共会有pk(pk-k)(k-1)种组合,计算loss时就依照此组合数统计全部可能。人和除人之外的东西分开,那么人就是所谓正样本,除人之外的东西就是负样本。
3 方法验证
步态识别分为注册和识别两个阶段:(1)注册阶段,即Android手机端从不同角度采集不同人的步态数据,并进行轮廓分割等预处理操作,再使用步态识别模型提取每个人的特征向量,将这些得到的特征向量存储在数据库中;(2)识别阶段,输入任意视频序列图片,对这些图片进行预处理后,输入网络,得到一个特征向量,将该特征向量与数据库中个体的特征向量进行比对,计算欧式距离,距离最小的欧式距离所对应的个体ID即为输入图片对应的ID,系统流程如图7所示。
3.1 注册算法
客户端采集注册数据集,预处理之后使用Android手机采集数据并传输至服务器进行注册,具体步骤为:
(1)使用Android手机摄像头进行步态图像序列的采集。
(2)使用Socket在Android手机客户端上将图像序列和对应的标签传输给高性能服务器。
(3)服务器对得到的图像进行批量操作,使用DeepLabv3+ 深度学习模型提取人体目标轮廓,并使用中心线原则切割得到图像。
(4)更换Android手机拍摄角度,重复(1)~(3),共进行5次。
(5)保存m个图像序列与对应的标签,分别记为Q ={Ii∣i =1,2,…,m}和T ={Li∣i =1,2,…,m},其中,Ii ={Ok∣k =1,2,…,5}表示第i个图像序列,共有5组图像,Li表示第i个图像序列对应的标签。
(6)使用训练好的GaitSet步态识别模型对注册集图像序列Q进行特征提取,共有5×m个特征,得到注册集特征X ={Fi∣i=1,2,…,5m},并保存X。
3.2 识别算法
客户端采集测试数据,提取特征,比对注册集特征X和检测集特征Y的相似度,判断测试图像序列的身份并计算置信度,下面是具体的步骤:
(1)使用与注册阶段(1)~(3)相同的方法传输并预处理测试图像序列,得到n个测试集图像序列P={Oj∣j=1,2,…,n}。
(2)使用训练好的GaitSet步态识别模型对测试集图像序列P进行特征提取,得到检测集特征Y ={Fj∣j =1,2,…,n},并保存Y。
(3)对维度为m的每个单独特征序列,计算各个维度上的注册序列特征与检测图像序列特征的相似性,通过欧式距离来表达它们之间的相似性。
(1)
其中,Dij表示检测集Y中的第j个特征与注册集X第i个特征的欧氏距离,得到距离数组Dis={Dij∣i=1,2,…,5n}。
(4)对Dis数组按照距离从小到大的顺序排列。
(5)取Dis数组中距离最小的前5个距离,记录其对应特征的对应标签LT={Li∣i=1,2,…,5}。
(6)如果LT存在众数,取标签I为众数对应的Li,num表示众数出现的次数,计算置信度c,计算公式为c=num/5×100%;如果LT中不存在众数,则判断最小的Dis是否大于阈值δ,若大于阈值,说明测试个体的步态特征与注册数据库中个体匹配特征相差较大,即测试个体从未注册过,返回匹配失败,否则,则令l为L1,c为20%。
(7)使用Socket将标签l和置信度c(或匹配失败信息)传回手机,完成识别。
(8)重复(3)~(7),直至遍历完Y。
4 实验结果与分析
4.1 数据集
本文使用CASIA-B数据集,该数据集由中国科学院提供,涵盖11个视角(0°,18°,36°,…,180°),124个人,分为普通、携带包裹、穿外套或夹克三种情况,主要用于训练步态识别模型。
4.2 轮廓提取
为了充分展现语义分割的效果,实验者被置于比较复杂的环境中,如图8所示。
11张图片组成的视频帧序列中,实验者从远到近地以自然步态行走,背景较为复杂,有门、窗、消防栓、天花板、光影等干扰因素存在,照片通过DeepLabV3+提取到的步态特征轮廓都十分清晰,效果比较理想。
4.3 步态识别
GaitSet模型训练阶段设置为:优化器使用Adam,学习率为1e-4,总迭代次数为80K,batchsize为(8,8)。表1记录了步态识别系统在不同角度下,行走状态为正常(NM)、携带包裹(BG)和穿外套或夹克衫(CL)时的识别准确率,可以看出,本文的模型在步态身份识别上是比较精准的。
在实际环境下,服务器端采用E5-494 2620 2.0 GHz 6核处理器、32 GB RAM和1080Ti GPU的工作站,而客户端则采用华为Honor 20 Pro手机,通过手机拍摄一段4~5秒的步态视频序列作为一个固定角度的步态样本。基于训练得到的GaitSet模型,对上述提取到的轮廓进行步态特征识别与匹配。在实际测试中,考虑到采集步态数据的限制,我们分别对8个人进行采样测试,准确率能够达到77.5%。轮廓提取所花的时间较大,约3秒钟,而识别时间则为0.8秒。为测试数据匹配容量与识别速度的关系,我们把数据集(不需要提取轮廓)中的数据匹配容量增加至1 000人,则识别速度约为4.3秒,总体上识别速度尚可。
5 结 论
步态识别是一种新兴的生物特征识别技术,具有非接触、远距离和不易伪装等优点,近年来日益受到国内外研究者的广泛关注。本文基于现实的应用需求,基于深度学习技术研究开发了面向Android智能手机的步态识别系统。系统采用C/S架构,手机客户端主要完成步态数据的采集、上传以及识别结果的显示等功能,而服务器端则主要负责对客户端采集的步态数据进行轮廓提取、步态匹配与识别等功能。为达到此目的,步态轮廓提取采用了DeepLabV3+语义分割模型,能实现像素级别的轮廓分割;而步态识别则采用了当前最先进的GainSet模型,能够达到较高的识别率。系统方案充分利用了Android手机的便捷性和服务器的强大算力,同时弥补了固定设备进行识别时的灵活性欠缺等不足,只要有网络,便可随时随地通过Android手机客户端迅速获取对象身份,非常简洁实用。
最后,系统分别经CASIA-B数据集和真实场景进行测试,结果显示系统能够获得较好的性能,在真实场景下,系统的准确率能够达到77.5%。下一步将考虑向预处理中加多线程服务器,以缩短服务器反应时间,改善用户体验感。
参考文献:
[1] CONNOR P,ROSS A. Biometric recognition by gait:A survey of modalities and features [J].Computer Vision and Image Understanding,2018,167:1-27.
[2] 朱应钊,李嫚.步态识别现状及发展趋势 [J].电信科学,2020,36(8):130-138.
[3] JU H,BIR B. Individual recognition using gait energy image [J].IEEE transactions on pattern analysis and machine intelligence,2006,28(2):316-322.
[4] 冯世灵,王修晖.结合非局部与分块特征的跨视角步态识别 [J].模式识别与人工智能,2019,32(9):821-827.
[5] 胡靖雯,李晓坤,陈虹旭,等.基于深度学习的步态识别方法 [J].计算机应用,2020,40(S1):69-73.
[6] CHAO H,HE Y,ZHANG J,et al. GaitSet:Regarding gait as a set for cross-view gait recognition [C]//Proceedings of the 33th AAAI Conference on Artificial Intelligence,2019:8126-8133.
[7] 贲晛烨,徐森,王科俊.行人步态的特征表达及识别综述 [J].模式识别与人工智能,2012,25(1):71-81.
[8] 汪涛,汪泓章,夏懿,等.基于卷积神经网络与注意力模型的人体步态识别 [J].传感技术学报,2019,32(7):1027-1033.
[9] 张馨心,姚爱琴,孙运强,等.基于深度学习的步态识别算法优化研究 [J].自动化仪表,2020,35(4):70-74.
[10] 周志一,宋冰,段鹏松,等.基于WiFi信号的轻量级步态识别模型LWID [J].计算机科学,2020,47(11):25-31.
[11] SHI C,LIU J,LIU H,et al. Smart user authentication through actuation of daily activities leveraging WiFi-enabled IoT [C]//Proceedings of the 18th ACM international symposium on Mobile Ad Hoc Networking and Computing. Chennai,India:Association for Computing Machinery,2017:1–10.
[12] WANG W,LIU A X L,SHAHZAD M. Gait recognition using WiFi signals [C]//Proceedings of the 18th ACM International Symposium on Mobile Ad Hoc Networking and Computing. Heidelberg Germany:Association for Computing Machinery,2016:363–373.
[13] ZENG Y,PATHAK P H,MOHAPATRA P. WiWho:wifi-based person identification in smart spaces [C]//Proceedings of the 15th International Conference on Information Processing in Sensor Networks. Vienna Austria:IEEE Press,2016:1-12.
[14] ZHANG J,WEI B,HU W,et al. Wifi-id:human identifica-tion using wifi signal [C]//Proceedings of the International Conference on Distributed Computing in Sensor Systems. Washington,DC,USA:2016 International Conference on Distributed Computing in Sensor Systems (DCOSS),2016:75-82.
[15] CHEN L C,ZHU Y,PAPANDREOU G,et al. Encoder-decoder with atrous separable convolution for semantic image segmentation [C]//Proceedings of the European conference on computer vision (ECCV). Munich,Germany:Computer Vision – ECCV 2018,2018:833-851.
[16] CHEN L C,PAPANDREOU G,SCHROFF F,et al. Re-thinking atrous convolution for semantic image segmenta-tion [J/OL].arXiv.org,2017,3(2017-06-17).https://arxiv.org/abs/1706.05587v1.
[17] LIPTON A J,FUJIYOSHI H,PATIL R S. Moving target classification and tracking from real-time video [C]//Proceeding of Fourth IEEE Workshop on Applications of Computer Vision. Princeton,NJ,USA:IEEE,1998:8-14.
[18] 商磊,张宇,李平.基于密集光流的步态识别 [J].大连理工大学学报,2016,56(2):214-220.
作者简介:赵煦华(1973.12—),男,汉族,浙江东阳人,中级工程师,硕士研究生,研究方向:嵌入式系统、大数据、人工智能、机器学习。