APP下载

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

2020-09-21辜丽宇刘沥文叶圣昕罗干黄成嵩

科技创新导报 2020年18期
关键词:树莓派准确性深度学习

辜丽宇 刘沥文 叶圣昕 罗干 黄成嵩

摘   要:人脸识别作为当今社会人工智能范畴的一项生物识别技术,以其具有非接触、速度快等一系列特性在多个领域有着广泛的应用。但仅仅使用人脸识别技术进行识别却仍存在误判的风险,无法保证识别准确率,并极易受到各类蓄意的仿冒攻击。而深度学习作为图像识别领域重要的技术手段,同样拥有着广阔的应用前景。文中通过研究基于树莓派的人脸识别和手势识别的门禁系统,基于人的脸部特征信息和手势的运动信息进行身份识别,在静态的人脸识别基础上,配合实时发布动态的手势识别预防攻击者借助人脸关键点定位和自动化人脸动效技术,最大程度的控制住风险。

关键词:深度学习  树莓派  实时手势识别  准确性

中图分类号: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)跟踪手部运动定位。预测手势的轮廓位置,对于跟踪的手部进行重新定位,如果手部重定位有效,则提取手势轮廓;如果手部重定位无效,则先判断跟踪定位是否消失在人脸附近,再判断跟踪定位是否消失在边界,对手部定位进行预测,重新寻找跟踪目标直到达到要求。

猜你喜欢

树莓派准确性深度学习
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
智能安全防盗探测小车
美剧翻译中的“神翻译”:准确性和趣味性的平衡
论股票价格准确性的社会效益
基于嵌入式技术的农村医疗系统设计
超声引导在肾组织活检中的准确性和安全性分析