杨 静,王艳花,郭亚勤,史健芳
(1.太原理工大学信息中心,山西太原 030024;2.国网山西省电力公司信息通信分公司,山西太原 030000;3.太原理工大学信息与计算机学院,山西晋中 030600)
人脸识别技术[1]是目前应用最广泛的生物特征识别技术,具有非强制性、非接触性等优势,已成功地应用于移动支付、公安刑侦、门禁管理等领域。传统的人脸识别方法主要是基于模板匹配、几何特征、代数特征的方法,对表情、妆容、姿态、遮挡等鲁棒性较差,在应用中存在局限。因此,为了满足更多场景的需求以及下一代互联网(IPv6)的应用,还需要进一步的研究。
2014 年开始,Sun 等人提出了DeepID 系列的算法[2],主要利用卷积神经网络提取更深层次的人脸信息,利用联合贝叶斯方法验证,对公开的人脸数据集LFW(Labeled Faces in the Wild)的识别率达到了97.45%,DeepID2 和DeepID2+算法准确率分别为99.15%和99.4%[3]。Facebook 提出DeepFace[4]算法,采用三角化操作方法提取人脸特征信息并对其进行重构之后进行特征提取,完成识别,准确率达到97.35%。2015 年,Google 提出了FaceNet[5]算法,将人脸特征映射到欧几里得空间,并且采用三元组TripletLoss 损失函数对神经网络进行训练,在人脸数据集LFW 上进行测试,识别率达到99.63%。2017年,文献[6]采用深度学习方法研究了人脸图像的年龄判断问题。2018 年,文献[7]基于深度学习算法,完成了近4 亿张人脸图像的检索工作。
下一代互联网IP 协议IPv6(Internet Protocol Version 6)可以解决现有IPv4 地址资源短缺问题,很大程度上提高了信息的发送效率、网络的安全性及可扩展性[8]。由于现有人脸识别系统对IPv6 的支持程度普遍较低,因此该文分析讨论了一种卷积神经网络CNN 的人脸检测和识别算法,并采用C/S 架构研发了一套基于IPv6 网络环境的人脸自动识别系统。
人脸检测是一个复杂的具有挑战性的模式检测问题,也是计算机视觉和模式识别领域中的重要研究方向,其准确率与速度直接影响系统的识别率。传统的人脸检测方法提取的大都是人工设计的特征,计算复杂且特征维度也比较高,典型的算法有SIFT[9]、HOG[10]等。
该文设计的人脸检测算法主要分为两部分,候选框生成网络和人脸图像分类网络。首先利用候选框生成网络将采集到的人脸图像进行处理,生成一系列候选框,并对其进行特征提取,根据计算的前景概率进行边界框回归,得出准确的人脸位置[11]。
为了提高候选框的产生速度,减少检测时间,该文通过部分卷积层的候选框生成网络与人脸图像分类网络的共享机制,结合分类和回归对网络进行训练。其中,候选框生成网络选用了Faster R-CNN 中的RPN 网络,概率计算利用了softmax[12]损失函数。损失函数为:
其中,i为候选框的索引,pi为生成候选框时前景的概率,为生成的候选框与真值框的重叠率。如果重叠率大于0.7,那么,如果重叠率小于0.3,那么。t表示预测框对应的坐标,t*表示真值框对应的坐标。λ的默认值取1。
Losscls表示softmax 损失函数,主要计算生成候选框中的前景和背景的概率。
Lossreg表示边界框回归损失函数,对预测框的坐标和真值框的坐标进行回归。
其中,
人脸图像分类网络是对生成的候选框进行人脸和非人脸分类,由于是二分类,因此该文选用AlexNet[13]神经网络模型,并在此基础上进行优化,降低计算量,提高网络性能,缩短分类时间。改进后的CNN 结构参数如表1 所示。
表1 卷积神经网络的结构参数
该文卷积神经网络采用开源的机器学习框架TensorFlow 进行训练,训练集样本使用WIDER Face数据集,测试集样本使用FDDB 人脸数据集。测试结果如图1 所示。
图1 FDDB评价
为了更直观地显示检测算法的准确性,部分实例检测结果如图2 所示。
图2 图像检测结果实例
除此之外,从检测速度和召回率两方面对该文算法与比较经典的算法(Joint Cascade,Cascade CNN,MTCNN)进行比较,测试数据集均采用FDDB数据库,检测结果[11]如表2 所示。
表2 检测算法比较
其中,检测速度(fps)指画面每秒传输的帧数,数值越大表示画面显示越流畅,也就是人脸检测速度越快。为保证结果分析的公平性以及准确性,4 种算法均在同一硬件设备进行测试,GPU 型号为NVIDIA GTX 1050。根据表2 可得,该文算法的召回率最高,检测速度介于被比较方法之间,可满足实际应用中对人脸检测速度的要求。
该文人脸识别算法采用深层的卷积神经网络,考虑到实验条件的限制,在VGG-16 网络的基础上简化为11 层的卷积神经网络模型,卷积核为3×3 的小尺寸卷积核,为保证下一层网络可以提取到人脸更深层次的特征,使输入输出的图片尺寸一致,步长和填充均设为1。为减少网络参数,降低训练神经网络对硬件设备的需求,去掉原模型的第二个全连接层,很大程度上提高了网络的计算效率。除此之外,将全连接层的特征维数降低到128 维。
为了使构建的网络模型可以获得更具有辨识性的人脸特征信息,该文将softmax 损失函数和center loss[14]损失函数相结合作为最终的损失函数,使得神经网络获得的人脸特征信息可以增大不同人脸信息的类间差距,同时也可减少相同人脸的类内差距,提高了识别准确度。
该文的损失函数把center loss 函数和softmax 函数相结合,并引入平衡参数λ,表达式为:
其中,λ是平衡参数,取值范围为0~1,当λ=0 时,该损失函数为softmax 函数,当λ=1 时,则为center loss 函数。
该文所采用的训练集使用公开的人脸数据库CASIA-WebFace,测试集使用LFW 人脸数据库。为了选取最适合该文人脸识别算法的平衡参数λ,选取了测试集中官网提供的3 000 对人脸图像,其中有1 500 对正配对,1 500 对负配对。正配对表示两张图片是同一个人,负配对则表示两张图片表示的不是同一个人。不同的λ值对识别率的影响结果如图3所示。
图3 λ 值和准确率的曲线
如图3 所示,当λ=0.003 时,该网络的识别率最高,达到99.18%。λ=0 时,网络性能最差,识别率最低。结果表明,引入center loss 损失函数可以显著提高人脸识别的准确性。
将该文算法与目前具有代表性的算法进行对比,分析结果[11]如表3 所示。
表3 人脸识别算法比较
表中的DeepFace、DeepID、DeepID2 算法都是使用多模型进行集成,该文算法在简化网络模型的基础上,还提高了人脸识别率,达到了99.18%的准确率,但是比FaceNet 大样本集下训练出来的结果低0.45%,主要原因来源于实验硬件条件有限导致的训练样本不足。
该文设计的人脸自动识别系统采用C/S 客户端/服务器架构,将任务进行分解,充分发挥服务器端对算法计算速度快的优势,提高系统整体性能。
系统在纯IPv6 网络环境运行,服务器端使用赛尔网络云平台服务器,客户端可部署在windows 操作系统的终端。
客户端和服务器之间的通信方式使用Socket 套接字,封装TCP/IP 网络协议,实现过程简单。只需要在客户端进行创建Socket 套接字,并发出请求,服务器端就会进行时实监听并建立信息传输通道,完成两端的通信任务[15-16]。
客户端的主要实现人脸的采集、录入、数据库管理以及识别结果的显示等功能。服务器端凭借硬件优势,主要用于处理检测和识别算法,并完成信息匹配,最后将结果返回至客户端。
系统界面开发使用pyqt5 工具,主要分为3 部分,左侧部分功能分别为电脑摄像头、人脸检测、人脸识别功能的开启与否、实时调节人脸距离阈值和人脸信息录入;中间主画面是摄像头采集的人脸图像;右侧部分输出识别结果、人脸信息数据(人脸图像以及姓名、性别、年龄等相关身份信息)。当前人脸信息不在数据库时会提示识别失败。人脸识别结果如图4 所示。
图4 人脸图像检测与识别
人脸信息录入功能主要是对人脸信息进行采集并完成相关身份信息录入,参见图5 所示。人脸录入有实时人脸采集和本地图片录入两种方式。
图5 人脸图像信息录入界面
数据库管理模块主要是对已经录入的人脸以及身份信息进行存储。客户端可以对其进行查看、修改、删除等管理操作,当数据库存储人脸样本较多时,可根据学号进行快速定位,对其进行管理。数据库管理界面如图6 所示。
图6 数据库管理界面
该文针对现有基于卷积神经网络的人脸检测方法存在的模型结构复杂、计算参数大、受光线及姿态等鲁棒性差等问题,研究了人脸检测和识别算法。优化了网络结构,减少了计算参数,提高了算法的准确性,有效地提高了人脸识别率。同时,基于赛尔网络云平台和本地实验室建立了IPv6 网络测试环境,利用该文研究的算法,基于C/S 架构研发了基于IPv6网络环境的人脸自动识别系统,并且已经完成了测试。
实验结果表明,该文算法具有较好的鲁棒性和识别率,并且可以在IPv6 环境中运行,具有很好的推广价值。
下一步,将对图像数据库的性能、人脸图像噪声处理、算法的准确性和运行速度进行深入的研究,不断提升用户对系统的满意度。