基于Smart210的人脸识别系统设计与实现
2020-04-28张婷
张 婷
(安徽粮食工程职业学院 信息技术系,安徽 合肥 230011)
生物人脸识别技术因为具有简易性、非强制性以及易检查性等优点,已经成为应用最为广泛的生物特征识别技术[1-2]。而由于人脸自身和环境等很多复杂的因素,人脸识别技术仍然面临着巨大的挑战[3]。对于人脸本身,因为在整体结构上,不同个体的人脸轮廓和器官外形区别不大,导致不同人脸的差异性不大。而对于环境和外界因素,由于光照、表情、角度、饰物、遮挡、化妆等很多不确定因素会对图像产生一定的影响,进而加大了人脸识别的难度[4-5]。近年来,嵌入式人脸识别系统中不仅要尽可能减少成本,提升人脸图像信息采集准确性,加快数据处理速度,以降低系统能耗,而且需要采用先进的人脸识别算法,促进机器视觉、人工智能以及图像识别等不同领域的发展[6-7]。
本文以嵌入式硬、软件平台为基础,使用AdaBoost算法进行人脸检测,使用二维小波变换和PCA降维算法提取人脸特征,提出了基于Smart210的人脸识别系统,该系统具有人脸识别率高和检测速度快的优点,适用于诸多领域。
1 嵌入式人脸识别系统的实现
本文以Smart210 开发板为基础,设计出一个嵌入式人脸识别系统,该系统能够对进出人员实施进行人脸识别,达到智能检测的目的。在研发过程中,针对监控区域的人员脸部进行检测与识别[8]。当检测的人员是目标库用户将不会发出告警;当非法用户进入监控区域,嵌入式系统将会发出告警信息,同时可以以短信或者电话报警方式提醒监控者出现异常情况,并实时保存记录的视频信息到存储器,以便于后期对真实情况的了解。
图1 系统总体框架结构图
2 主要算法分析
2.1 AdaBoost人脸检测算法
AdaBoost人脸检测算法将弱分类器训练成强分类器,将多个强分类器进行串联以组成级联分类器,使用级联分类器检测目标。该算法中各个弱分类器都存在与之对应的目标特征值[9]。在图像检测中常用的是Harr特征,本文使用积分图计算人脸矩形特征。 AdaBoost人脸检测算法主要由训练阶段和检测阶段组成,其人脸检测过程如图2所示。
图2 人脸检测流程图
在进行图像人脸识别前,需要一定数量的人脸样本和非人脸样本用作分类器训练,以提取图像中分辨人脸和非人脸图像的Haar特征。使用AdaBoost 算法抽取图像Haar 特征结果如图3所示。随着特征值的较小,分类器数量将逐渐增加,但是相应的图像检测窗口也将减少,最终实现分类的目的。
图3 AdaBoost算法抽取Haar特征
根据上图分析可知,以上两个矩形特征能够清晰表达出人脸部区域的特点。总体来说,眼部区域的颜色相对于眼夹区域要深,例如中间图像;面部中鼻梁两边比鼻梁的颜色要深,与右边那副画相似。同样的可以采用某些矩形特征来对其他人脸进行描述。采用矩形特征运算速度快,与传统的单纯像素点相比,优势比较突出。而Haar特征比较简单,其主要可以对边缘、线段等简单图形的走向进行描述。Haar特征可以大致对脸部的某些特征进行描述。尽管这个描述相对粗狂,较弱的分类能力,但其运算速度快,耗时较少。
2.2 二维小波变换
小波变换可实现对不同区域内的信号和分辨率的分析,在信号处理、流体力学一级图像分析等领域得到了广泛使用[10]。小波变换算法在二维数字图像识别上优势更加明显,其变换的大致需要进行两次一维小波变换,经过一次小波变换可将人脸图像分割成四个子带,如图4所示。其中,子带LL用来表示含有源图像数据信息的低频成分;LH和HL分别表示图像沿着水平方向和垂直方向发生变化程度;HH子带表示图像的高频成分。
图4 二级分解示意图
2.3 人脸图像预处理
图像预处理在人脸识别过程中至关重要,通常情况下,嵌入式人脸识别系统采集到的人脸图像因为受到光照、摄像机、姿态以及拍照环境等诸多因素的影响,获得的人脸图像质量差异较大。所以,需要对人脸图像进行预处理,以较少外界因素对人脸系统造成的不利影响。图像预处理过节是在人脸检测和图像识别之前完成,但由于采用的AdaBoost人脸检测算法鲁棒性强,将此环节至于人脸识别前效果更好。所以,本文提出的图像预处理主要是针对人脸图像检测完成后,人脸图像识别前的图像预处理。对于人脸识别图像的预处理主要包含几何归一化处理和灰度归一化处理两个方面。
2.3.1 几何归一化处理
当完成人脸检测后,将获得的人脸区域。因为摄像机拍摄的人脸角度不同、拍摄姿态不同,使得人脸检测环节得到的人脸区域范围、人脸倾斜角度以及图像亮度等差异性很大,对人脸识别的下一个环节工作影响很大。在实际应用过程中,嵌入式人脸识别系统的可靠性将会随着人脸姿态偏转角度变大而降低,所以,需要挑选在正常情况下采集到识别度较高的人脸图像。本纹设计的嵌入式人脸识别系统重点是对正面脸的图像进行尺寸归一化处理。
2.3.2 灰度归一化处理
因为人脸采集图像随着时间和环境的不同,拍摄的图像灰度值通常各不相同,所以,需要对拍摄的人脸图像进行灰度值处理,以减弱光照强度对人脸识别系统的影响。一般采用直方图均衡化灰度值。直方图主要通过对采集的人脸图像全部的像素灰度值分布值进行统计,其含有各个灰度值在人脸图像中频率大小。
使用上述方法对人脸图像预处理的结果如图5所示。
图5 人脸图像预处理实验结果
2.4 基于PCA特征提取的人脸识别
将PCA特征提取法应用到人脸识别的算法,主要包含训练阶段和识别阶段两部分。人脸识别的训练阶段首先将采集的人脸目标库图像,经过计算获得平均脸,并构建特征脸空间,将摄像机拍摄的人脸图像与平均脸间的差值映射到特征脸空间,根据特征脸空间值可以计算出每个人脸图像在特征脸空间内的实际位置。人脸识别的训练阶段主要是将待识别人脸图像与平均脸间的差值投影到特征脸空间,以获得相应的投影点位置,同时把获得的投影点位置和训练阶段获得的人脸图像投影点位置进行比对。
假设Rn表示人脸识别系统内的测量空间,简记为人脸空间,Rm表示特征脸空间。当测量空间内的分类信息,全部保留在特征脸空间,而此时在特征脸空间内维数小于测量空间内维数,那么特征提取值可表示成Rn到Rm的映射。而使用K-L变换需要具备以上两个条件,以K-L变换为基础的PCA算法对特征提取步骤大致如下:
(1)将人脸图像数据输入到目标库,以作为人脸图像样本,各个样本大小设为MxN、设训练集由100个灰度图组成,训练样本矩阵可表示为:
(1)
式中,xi是MN维列向量。
(2)计算平均脸的表达式为:
(2)
(3)把各个样本人脸与平均脸作差,获得的差值为:
di=xi-ψ,i=1,2,...,100
(3)
(4)协方差矩阵表示如下:
(4)
(5)可利用上式中的矩阵计算出矩阵C的维数,进而得到其特征值和特征向量,最后使用奇异值分解(SVD)定理可以间接计算出矩阵AAT的特征值和特征向量。
(6)除去特征值较小项,减少计算量,以保留主成分,避免其他干扰。将余下的D特征向量构成D行特征矩阵,此特征矩阵称为特征子空间,也可称之为特征空间。其中,w=(u1,u2,...,uD)。
(7)将摄像机拍摄的待识别人脸图像与与平均脸作差运算,把作差值映射到特征脸空间以获得对应投影点:
Ωi=wTdi(i=1,2,...,100)
(5)
提出的PCA特征提取人脸识别算法过程如图6所示。
图6 基于PCA特征提取的人脸识别算法流程图
3 系统搭建与实现
本文结合项目实际需求采用友善之臂公司研发的Smart210开发板进行嵌入式系统硬件平台构建。为了便于人机交互,使用Qt设计了一个友好的界面,将程序和发生事利用信号和函数进行连接。系统设计界面如图7所示。
图7 人机交互界面
点击人机互动界面的开始按钮,待识别人脸识别区域将会显示照相机采集的人脸图像。点击开始后将会对待识别人脸实际位置进行标定。点击识别按钮后识别区域内将会显示待识别人脸图像与在库人脸图像。当目标库不存在待识别图像时,系统将会出现“查无此人”,识别结束可以通过点击退出按钮退出人脸识别系统。
为了验证构建人脸识别系统的有效性,本文通过收集5张样本图像,每人采集5张图像,建立小型人脸识别数据库,采集的人脸图像如图8所示。
图8 人脸系统不表库图像
在PC端将采集到的人脸图像进行集中训练,建立特征人脸目标库,将获得的人脸目标库嵌入到Smart210开发板上,电机开始按钮,嵌入式系统将会对其进行初始化,同时打开照相机在待识别人脸区域展现采集的图像信息,点击开始按钮,可以迅速对图像中的人脸位置进行标记,系统人脸检测结果如图9所示。
图9 系统人脸检测结果图
再点击系统识别按钮,嵌入式系统将对采集到的人脸图像进行特征信息提取,与建立的人脸目标中的图像进行对比,通过在识别结果区域展示与采集图像相似的人脸。如图10所示。
图10 系统人脸识别效果图
为验证本文人脸识别算法的有效性,依次使用本文提出的Adaboost算法和传统的局部二值模式(Local Binary Pattern,LBP) 方法,对5个实验员在图像中分别检测60次。检测结果如表1所示,根据结果可以看出 LBP算法的误检率为24.68%,而本文提出的AdaBoost算法的误检率仅为6.33%。可以得出AdaBoost算法人脸检测效果更加显著。
表1 人脸检验误检率结果
在检验本文设计的嵌入式人脸识别系统的性能,将对运动的目标进行检测与识别,通过对比LBP算法,在选用的Smart210开发板上进行测试。表2给出了这两种方法的识别率和平均识别时间。根据测试结果可以看出本文使用的Adaboost算法不管在人脸识别的准确率还是实时性,相对于LBP算法均具有显著优势。
表2 人脸识别效果
4 结论
随着嵌入式技术的不断进步,人脸识别系统也得到了迅速发展。本文提出一种嵌入式人脸识别系统,同时构建系统对应的硬件平台和软件开发环境。对人脸识别软件功能和性能进行了测试,使用AdaBoost算法进行人脸检测,将二维小波变换法与PCA 降维算法相结合,以提取图像中的人脸特征。通过实例测试结果分析可知,本文提出的嵌入式人脸识别系统能够满足实际需求,具有识别率高和检测速度快等优点。