您好, 访客   登录/注册

基于人脸和手势混合识别的门禁研究

来源:用户上传      作者:

  摘   要:人脸识别作为当今社会人工智能范畴的一项生物识别技术,以其具有非接触、速度快等一系列特性在多个领域有着广泛的应用。但仅仅使用人脸识别技术进行识别却仍存在误判的风险,无法保证识别准确率,并极易受到各类蓄意的仿冒攻击。而深度学习作为图像识别领域重要的技术手段,同样拥有着广阔的应用前景。文中通过研究基于树莓派的人脸识别和手势识别的门禁系统,基于人的脸部特征信息和手势的运动信息进行身份识别,在静态的人脸识别基础上,配合实时发布动态的手势识别预防攻击者借助人脸关键点定位和自动化人脸动效技术,最大程度的控制住风险。
  关键词:深度学习  树莓派  实时手势识别  准确性
  中图分类号:TP391.4                              文献标识码:A                        文章编号:1674-098X(2020)06(c)-0118-05
  随着现代社会的发展,人们对社区安全提出了越来越高的要求。门禁系统正是在这种社会环境下诞生的产物。它可以取代传统的门卫工作,提高管理效率,提高社区的安全性,可以随时记录小区居民的出入情况,在社会治安方面有着不容忽视的意义。
  由于目前现有技术比较落后,门禁系统仍然达不到人们的需求,在现实生活中造成了诸多不便。本文从目前门禁系统安全性低、操作及管理困难现状的弊端出发,对于该问题提出理论解决方案。通过树莓派的人脸识别和手势识别的门禁系统,基于人的臉部特征信息和手势的运动信息进行身份识别,在静态的人脸识别基础上,配合动态的手势识别预防攻击者借助人脸关键点定位和自动化人脸动效技术,提取出人脸的特征,再根据储存在数据库的人脸图像的特征与其进行对比,从而决定人是否可以进入,进而克服目前门禁系统速度慢、安全性低的弊端,提高小区门禁的安全性,降低门禁系统的成本,使其在操作管理上更加简便快捷。
  1  人脸识别
  1.1 概述
  人脸识别可以分为以下步骤:
  (1)人脸定位与人脸检测。对于一幅给定的图像判断其中是否存在人脸。如果存在人脸则确定其在图像中的位置,将人脸从背景中分割出来。
  (2)图像预处理。从摄像机获得的图片易受噪声、阴影、光照变化的影响。对图片进行对比度增强、图像平滑等操作可以提升整个人脸识别系统的精度。同时对图像进行图像变换使得人脸关键部位在图像中的大小和位置尽量保持一致。
  (3)人脸特征提取。采用某种方法表示人脸中的特征。
  (4)人脸识别。将待识别的人脸与人脸库中已经分好类的人脸进行联系。这一过程又分为两部分,人脸验证与人脸辨识。前者验证人脸库中是否存在与输入图片相对应的身份,计算机将给出一个真或假的二值回答。后者判断输入图片对应人脸库中某张脸。
  1.2 数据集收集
  人脸数据来源于中国科学院自动化研究所(CASIA)收集的CASIA-FaceV5,其中包含500名受试者的2500幅彩色人脸图像。
  1.3 人脸定位与检测
  数学形态学提供了一组有用的方法,能够用来调整分割区域的形状以获得比较理想的结果。
  腐蚀是取每一个位置的邻域内值的最小值作为该位置的输出灰度值。膨胀与腐蚀类似,但膨胀是取邻域内最大值。
  为了得到一个较为准确的人脸区域,需要对人脸区域进行膨胀和腐蚀操作。膨胀的目的是是人脸区域中不廉洁的区域块连接起来,而腐蚀的目的是使膨胀后的人脸区域变小,恢复到膨胀前大小。
  一次腐蚀和膨胀后,人脸中仍存在一些离散的白色区域,可以通过再次腐蚀和膨胀来去掉白色区域。
  1.4 预处理算法
  1.4.1 图像几何变换
  大小校正:人脸标准校准图为d*d像素,将第一步分割出的图像(大小为a*b像素)进行放大或者缩小操作。对于放大图像中的空点,使用双线性插值填充。
  插值(x,y)为输入图像坐标,为输出图像坐标,sx和sy为水平和垂直方向上的缩放倍数。sx>1,水平方向放大,sx<1,水平方向缩小。sy同理。
  双线性插值就是对于非整数坐标处的函数值,利用它的领域的四个整数坐标处的函数值进行插值计算。
  位置矫正:目的是使得人脸关键部位的位置尽量一致。使用平移变换,将图像人脸移动到合适位置。
  假设任意空间坐标(x,y)先沿x轴平移tx,再沿y轴平移ty,最后得到坐标。用矩阵表示如下:
  1.4.2 图像对比度增强
  尽管我们通过各种方式采集高质量的图像,但是难以避免,有些图像的质量依旧不够好,需要通过图像增强技术提高其质量。鉴于图像可能会有噪声影响,此次实验采用自适应直方图均衡化。
  灰度直方图是图像灰度级的函数,用来描述每个灰度级在图像矩阵中的像素个数或者占有率。
  假设输入图像为I,高为H,宽为W,histI代表I的灰度直方图,histI(k)代表灰度值为k的像素个数,其中。全局直方图均衡化操作是对图像I进行改变,使得输出图像O的灰度直方图每一个灰度级的像素点个数大致相等。公式如下:
  1.5 PCA算法设计
  PCA方法的基本原理是:利用K-L变换抽取人脸的主要成分,构成特诊脸空间,识别时将测试图像投影到此空间,得到一组投影系数,通过与各个人脸图像比较进行识别   1.5.1 特征脸空间的构造
  对于一幅M*N的人脸图像,将其每列相连构成一个大小为L=M*N维的列向量。L就是图像空间的维度。设n是训练样本数,xj表示第j幅人脸图像形成的人脸列向量,则样本协方差矩阵可得:
  需要求得的新坐标系由矩阵AAT的非零特征值所对应的特诊向量组成。若直接计算,计算量较大,采用奇异值分解定理。通过求解ATA的特征值和特征向量来获得AAT的特征值和特征向量。
  奇异值分解定理如下:
  设x是一个M*N维矩阵,则存在两个正交矩阵U和V,以及对角矩阵,
  它们满足为矩阵XXT和XTX矩阵的非零特征值,uj和vj分别为和对应于的特征向量。为奇异值。
  根据SVD定理,令为矩阵ATA的r个非零特征值,vj为对应于ATA的特征向量,则AAT的正交归一特征向量uj为:
  这样一个降维子空间可以用于表示人脸图像,作为人脸识别的依据。
  1.5.2 训练样本的特征提取
  具体步骤如下:
  (1)计算训练图片平均脸。
  (2)计算每一张人脸图片与平均脸的差值。
  (3)构建协方差矩阵。
  (4)求矩阵的特征值及其对应的正交归一化特征矢量。
  (5)选取前几个最大特征值及其对应的特征向量。
  (6)求协方差矩阵的正交归一化特征向量。
  (7)将每一个人脸与平均脸的差值矢量投影到“特征脸”空间。
  1.5.3 基于特征脸的人脸识别
  把待识别的人脸图像投影到特征脸空间得到人脸图像。
  并定义阈值:
  人脸识别时用欧氏距离来计算待识别人脸与平均脸之间的距离,
  为了区分人脸和非人脸,还需要计算原始图像与由特征脸空间重构的图像之间的距离:
  人脸分类的规则如下:
  (1)若>=,则输入图像不是人脸图像;
  (2)若<且,则输入图像包含未知人脸;
  (3)若<且,则输入图像为库中第k个人的人脸。
  1.6 KNN算法设计
  KNN算法又称为K近邻是一种分类算法,利用特征值之间的距离来进行分类,输入需要预测向量x,选取距离x最近的k个向量的集合,预测x的类别为集合中类别数最多类别。KNN算法简单清晰,算法的稳定性和成熟度较高,但由于KNN算法计算复杂度高,在计算两点的几何距离时,其运算数据规模达到平方级,在图像分类时计算效率低。KNN算法中的参数k值的确定对KNN算法结果影响重大,如果k的值选择偏小,就相当于是在小的领域进行样本预测。由于获取紧邻样本的集合,算法的近似误差小估计误差大,对紧邻点和噪声点过于敏感,容易导致过拟合损失分类精度;如果k值选择偏大,选取距离远的样本集合,噪声点不会对预测结果产生影响,但算法紧邻误差大,容易导致欠拟合。假设训练集为
  Xx是特征向量,Yx是類别,特征向量X由一个类别的主要特征向量和它的类别组成,一定组数特征向量组成分类的集合。
  其算法的描述为:
  (1)计算测试数据与各个训练数据之间的距离(采用欧氏距离);
  (2)按照距离的递增关系进行排序;
  (3)选取距离最小的K个点;
  (4)确定前K个点所在类别的出现频率;
  (5)返回前K个点中出现频率最高的类别作为测试数据的预测分类。
  这样可以显著提高算法的性能。
  1.7 实验结果
  综合上表可知道KNN在人脸识别中表现更优秀。
  2  手势识别
  2.1 实验数据-建立训练集
  选取若干个差异较大相同手势的静态手势图,旋转并进行尺寸归一化处理建立训练集,在实际手势识别过程中,通过渐进法根据人肤色,运动的连续性,手腕特征在交互的手势图像中提取完整的手型
  数据集是在黑色的背景下进行拍摄,每个手势选取多个差异较大静态手势建立数据集,将所有的图片像素尺寸进行旋转,缩小,剪裁调整为220像素×220像素,并进行归一化处理。
  依据手势的不同角度将手势分为三种不同的数据集进行不断训练和评估,数据集1仅仅包含正面的角度,数据集2包含左,前,右三个角度,数据集3包含所有角度,比较三个数据集的性能,即训练精度,查全率,查准率。
  2.2 实验结果与分析
  实验结果表明,训练出的训练集在测试中取得了较好的识别程度,尤其是训练集2的训练精度达到了90%。
  2.3 KNN算法
  2.3.1 手势识别算法
  算法流程:将每一个样本,看作一个点。1.载入数据集,对数据进行预处理,从连续交互运动的手势视频流中分割手型部分,分离出完整的手势样本x,对样本x进行旋转和尺寸归一化处理。2.选择参数k,将k的初始值设为训练集容量的一半,对k值的选取最好为奇数,以便于对样本进行归类3.确定参数k后,在训练集中,计算每一个样本与待分类样本之间的距离衡量,将计算的结果从小到大排序,取前k个点4.统计前k个点样本的分类,将它作为待分类样本的类别5.计算结果的置信度,再选择k值进行遍历,将置信度最大的k值进行输出。
  2.3.2 手势识别的实现
  输入已经建立好的训练集,开启手势交互视频,手势识别阶段过程:
  (1)跟踪手部运动定位。预测手势的轮廓位置,对于跟踪的手部进行重新定位,如果手部重定位有效,则提取手势轮廓;如果手部重定位无效,则先判断跟踪定位是否消失在人脸附近,再判断跟踪定位是否消失在边界,对手部定位进行预测,重新寻找跟踪目标直到达到要求。   (2)提取手势轮廓。根据混合高斯肤色模型对手势进行分割,分割出手势区域。由于单峰高斯分布无法满足不同肤色分布,为了使门禁系统更加通用精确,采用混合高斯模型来提取手势轮廓,混合高斯模型的公式为
  假设肤色像素密度是概率密度的混合体,其中是混合密度分量先验概率,i=1,2... ... ...m表示混合密度分量的个数,表示混合密度分量的概率密度,是肤色像素的概率密度,对于参数的估计采用极大拟然的算法。
  (3)手势识别。采用KNN算法和建立好的训练集,对提取手势轮廓进行分类,建立训练集可以减少手动或批处理时大量数据,方便数据输入,对数据的统一管理也提供方便性。
  2.4 手势识别结果与分析
  实验中对“静止”、“平移”、“旋转”各执行了50次,比较他们的误判率和平均辨识速度,静止时的手势识别优于平移时,平移时的手势识别优于旋转时。
  3  电路连接
  3.1 系统模块组成
  3.1.1 主要模块说明以及模块之间的关系
  将系统分为多个模块组成,以便于管理和设计,系统由检测模块,驱动模块,电源模块,主控模块组成,硬件大概由树莓派,门禁专用电源,电磁锁,继电器,若干杜邦线,若干网线组成。系统具有人脸识别和手势识别的功能,当人员人脸识别与手势识别匹配成功,开启门锁;若匹配失败,则门锁不开启。
  系统主要模块功能:
  (1)主控模块:树莓派主板,用于集中控制人脸图像与手势的采集,为检测,驱动,显示提供信号。
  (2)驱动模块:通过控制电极的正反转,对门禁的开闭起到控制作用。
  (3)电源模块:树莓派采用低压直流电,电源模块通过转换为系统提供所支持的电流和电压。
  (4)检测模块:树莓派专用像素摄像头进行拍摄工作。
  主控模块是树莓派主板,具有SATA接口,HDMI接口,GPIO接口等,主板接口既可以与检测模块中像素摄像头进行完美连接,又可以与多个底层外设进行连接,具有较好模块扩展性,支持SSD硬盘,高清输出。
  驱动模块是用来防止输入信号弱时导致负载达不到额定功率无法进行工作问题,驱动模块通过扩大功率以确保正常工作。
  电源模块是用来控制电源电压,使用电源变压器以及滤波电路将电源电压控制系统。
  检测模块使用树莓派专用像素摄像头,图像清晰,操作简单,利用OpenCV接口调用摄像头。
  3.1.2 系统模块所达到的性能指标
  (1)树莓派控制电磁锁的时间不超过6s;
  (2)门禁识别质量具有准确性,可靠性,可维护性;
  (3)摄像头传递数据到树莓派的时间不超过1s。
  3.2 门禁软件设计
  (1)安装系统
  (2)配置中文环境以及配置文件系统
  (3)对GPIO进行搭建
  (4)对OpenCV运行环境进行搭建
  (5)对摄像头运行进行调试
  3.3 门禁主要硬件连接
  (1)利用一条排线将树莓派专用摄像头电路板与树莓派进行连接
  (2)对照树莓派GPIO编码图,将树莓派IN1IN2,IN3,IN4接口与GPIO21,GPIO20,GPIO16,GPIO19进行连接,将GPIO的四个接口设置低电平驱动。
  (3)树莓派与电磁锁连接过程中,树莓派GPIO可编程引脚输出电压为3.3V是无法提供工作电压在7~12V电磁锁工作的,因此门锁连接工作中,需要引入了继电器以及外部电源以达到操作锁定。
  将继电器模块信号引脚连接到树莓派GPIO,继电器模块两侧分别与树莓派和电磁门锁相连。其VCC与GND一侧分别与树莓派5v与GND连接,在另一侧,继电器模块的公共端连接直流电源正极,直流电源负极连接到电磁门锁负极,而电磁门锁的正极连接在继电器模块的常开模块上。
  3.4 实验与分析
  3.4.1 不同光源对比实验
  两批实验为检测100次光源不同时的人脸手势识别,第一批实验光源充足,第二批实验光源不清晰,重复检测五组,以保证正确率,从实验结果可以看到第一批的误检率为6%~9%,第二批的误检率为14%~18%;第一批检测时间为45645.7~54236.7ms之间,第二批检测时间为76453.5~88967.6ms之间。
  3.4.2 有无眼镜遮挡条件下对比实验
  两批实验为检测100次光源相同有无眼镜遮挡时的人脸手势识别,第一批实验无眼镜遮挡,第二批实验有眼镜遮挡,重复检测五组,以保证正确率,从实验结果可以看到第一批的误检率为5%~8%,第二批的误检率为12%~16%;第一批检测时间为42518.3~53134.2ms之间,第二批检测时间为72413.6~86538.9ms之间。
  在实验中,出现了树莓派板载蓝牙和串口连接无法同时实现的问题,其主要表现为树莓派cpu内部两个串口,硬件串口和迷你串口分别分配给了板载蓝牙和GPIO串口,内核缺乏时钟源,内核频率变化造成迷你串口速率不稳,无法使用的情况。
  3.5 系统测试结果
  光源不清晰时,对人脸识别和手势识别有一定的误差,需要在拍摄时及时补充光源,确保门禁识别的正确性。
  4  结语
  本文设计的算法能够在保证较好的手势识别精度的前提下,增加识别速度,为实时手势识别提供了一种可行的算法。人脸识别技术是一个跨学科的并富有挑战性的前沿课题,目前人脸识别技术的各项理论和算法并不完善 ,具体算法的实现也有很多的因素有待去研究。因此在未来计算机人脸识别技术的实用化还需要投入更多的努力与研究。
  参考文献
  [1] 孙志.基于OpenCV的人脸识别算法实验平台研究与实现[D].吉林大学,2014.
  [2] 苏佩娟,刘赪,牟建波,等.一种改进的K-近邻分类法[J].西華大学学报:自然科学版,2017,36(4):93-97.
  [3] 温俊芹,王修晖.基于线性判别分析和自适应K近邻法的手势识别[J].数据采集与处理,2017,32(3):643-648.
  [4] 武坚强,郭江鸿,王炫盛,等.一个新的基于最近邻分类的人脸识别类器[J].嘉应学院学报,2015,33(5):10-14.
  [5] 马帅. 基于树莓派的人脸识别门禁系统设计与实现[D].大连交通大学,2018.
  [6] 刘亚玲,徐琨,杨紫珣.基于深度卷积神经网络的手势识别[J].信息通信,2019(1):32-33.
  [7] 陈国发,贾云,王欢. 基于AI智慧人脸门禁系统的硬件系统设计[J]. 电子制作,2019(12):5-6,32.
转载注明来源:https://www.xzbu.com/1/view-15318430.htm