一种基于MTCNN和FaceNet的智能门禁系统设计
2021-12-16王博
王 博
(1.商洛学院电子信息与电气工程学院陕西商洛 726000;2.商洛市人工智能研究中心陕西商洛 726000)
在智能门禁系统中,人脸的检测和识别[1-2]是一项核心技术。随着人工智能的发展,人脸检测和识别在生活中的应用越来越广泛。比如军事公共安全和日常门禁等领域[3-6]。20世纪90年代Turk等[7]基于PCA 的EigenFaces,使用主成分分析方法,对脸部特征进行提取,达到人脸分类目的,是受限条件下一个简单的人脸识别方法,但是由于缺乏对光照、姿态、表情和图像质量变化的鲁棒性,在无约束条件下的人脸识别相对无效。He Xiaofei[8]等通过预先假设分布的情况下进行预测,获得低维特征用来描述人脸,但是问题在于整体的方法没有办法包含局部的人脸变化。2000年以后,Shen Linlin 等[9]基于局部特征的人脸识别方法逐渐崭露头角,但是手工设计的特征往往缺少鲁棒性。尹鹏博[10]等在深度卷积神经网络中引入注意力机制,优化损失函数,提高模型的人脸特征提取能力。
1 门禁系统设计
智能家居的重要组成部分是一扇安全可靠的门和一把智能的锁。智能锁使用户无需实体钥匙即可进入家中。虽然有很多商业智能门禁系统,但大多数都很昂贵。文中选取的树莓派控制器相对价格比较低廉,能够达到大幅降低智能门锁成本,智能门禁系统原理图见图1。
图1 智能门禁系统原理图Fig.1 Schematic diagram of intelligent access control system
图1 中人脸采集模块主要包括以树莓派为核心控制单元,使用摄像头拍摄视频输入,通过树莓派传输至算法中心,算法经过识别将结果反馈,并将其发送到LCD 显示结果。识别算法的核心功能是识别输入的人员,并将他们分组为朋友、家人和陌生人。
智能门禁系统采用的算法核心如图2所示,图2中分上下两个支路,上方支路的输入为人脸数据库中存在的已知人脸,下方输入的为待检测未知人脸。上下两个支路分别将输入的数据经由MTCNN网络提取、识别。该网络可以有效地提取到人脸的特征信息,并且识别出是否包含人脸。经过MTCNN 网络可以提取出图片中的人脸区域,并将提取到的人脸输入到FeceNet中,FaceNet 可以将输入的人脸图像特征进行向量化,这里将其降维到128 维的特征向量。上下两个支路对128 维特征向量进行欧氏距离比较,如果欧氏距离小于阈值则表示待检测人脸输入已知人脸,反之表示未知人脸。这样只要遍历整个已知人脸库就可以达到人脸识别的目的。
图2 智能门禁算法模型Fig.2 Intelligent access control algorithm
2 人脸检测和识别方法
2.1 MTCNN人脸检测
Multi-task convolutional neural network 简称MTCNN,即多任务卷积神经网络,主要由三层网络结构组成,第一层是P-Net,第二层是R-Net,第三层是O-Net。
P-Net:首先将输入数据构建5 层特征金字塔,如图2所示,设置缩放因子factor为0.709。
R-Net:对粗检测的P-Net 结果使用R-Net 对候选框进一步优化和筛选,R-Net 的输入为P-Net 的输出,需要将P-Net 的输出大小转换为24×24,目的主要在于去除大量的非人脸候选框。
O-Net:对R-Net 的输出候选框进行精选,结构和P-Net和R-Net类似,O-Net的输入为R-Net的输出,需要将R-Net 输出大小转换为48×48。O-Net 输出最终的人脸候选框、人脸置信度和关键点信息。
2.2 FaceNet人脸识别
FaceNet 使用InceptionV1 作为主干特征提取网络,将卷积神经网络学习到的人脸特征,映射为较少的特征向量,利用欧氏距离的方法比较两个人脸图像之间的距离。将图像分类问题变为特征集的分类问题,这样做的好处在于提高效率,通常情况下人脸识别的特征向量维度为1000 维以上,而FaceNet 仅仅使用128 维甚至64 维特征,部分方法可以使用降维的思想进行处理,但也仅仅是一种线性变化。
如图3 所示,截取后的图像Batch 进入到深度网络当中,提取人脸特征,并进行L2 正则化,通过Embedding 将人脸特征降为128 维特征向量。使用Triplet-Loss 作为损失函数,利用距离的不同将同一人脸与不同人脸进行区分。
图3 FaceNet 三元损失Fig.3 FaceNet Triplet Loss
FaceNet 的输出结果是128 维空间向量,同时也将数据库中的人脸进行向量化,将两个向量进行比对,利用欧氏距离来表征相似程度,特征的相似度越高,就认为是同一个人,同一个人的多张脸部图像映射到空间上的距离比不是同一个人的空间距离要小。
FaceNet 训练模型中使用的大多数人脸属于欧美人脸,不适应包括中国人脸在内的亚洲人脸。对此问题,使用亚洲人脸数据库_CASIA-FaceV5 中的500 个中国人脸加上自行采集的900 个人脸组成新的适用于中国人脸的数据集(CASIA-Face)。
3 实验结果
将该模型与Eigenface 和FisherFace 的ROC 曲线进行比较,从图4 结果看,本文模型曲线面积大于Eigenface 和FisherFace 的ROC 面积,因此在AUC 指标上优于Eigenface和FisherFace算法。
图4 FLW数据集上ROC结果比较Fig.4 Comparison of ROC results on FLW dataset
为验证算法,将Eigenfaces,Fishe-face 和本文模型在FLW 数据集CASIA-Face 数据集(含900 张拍摄图片)上进行验证,实验结果如表1所示。
表1 实验结果对比Tab.1 Comparison of experimental results
从表1 可以看出,改进的模型在FLW 数据集上精度达到89.2%,比Fisherface 提高6%,AUC 提高0.8。在更适合中国人脸的CASIA-Face 数据集上,精度达到98.6%。欧氏距离方面,本文模型针对中国人同一人脸图片的欧氏距离平均值,要比FaceNet结果小0.05左右,表明改进后的模型在对中国人脸的检测上要比FaceNet官方模型有优势。
对单张人脸进行识别,分别使用正常人脸、侧脸和需要旋转对齐的人脸图片,如图5 所示,均能够正常检测人脸并可正确识别出LX,ZF 和HL 三个人脸。
图5 人脸识别结果Fig.5 Face recognition results