基于深度学习的人脸识别.docx
《基于深度学习的人脸识别.docx》由会员分享,可在线阅读,更多相关《基于深度学习的人脸识别.docx(9页珍藏版)》请在冰豆网上搜索。
基于深度学习的人脸识别
智能媒体计算课程论文
基于深度学习的人脸识别
摘要
随着目标的正确识别逐渐成为人工智能的重要组成部分,基于深度学习的人脸识别目前也成为了特征识别领域的研究热点。
但是因为脸部信息的复杂性,对特征识别算法的要求会更高。
在人脸识别领域有很多算法,如基于卷积神经网络(CNN)的人脸识别方法、深度非线性人脸形状提取方法、基于深度学习的人脸姿态鲁棒性建模、有约束环境中的全自动人脸识别、基于深度学习的视频监控下的人脸识别、基于深度学习的低分辨率人脸识别以及其他基于深度学习的人脸信息的识别等;并对当前人脸识别技术在深度学习应用中存在的问题及发展趋势进行分析。
关键字:
深度学习;人脸识别;卷积神经网络;生物特征识别
1背景介绍
人脸识别研究是从20世纪50年代开始的,作为一种重要的生物特征识别技术,其具有直接、友好、方便、交互性好等优点,一直被研究学者所关注。
人脸识别技术在安防和金融支付等方面有许多实际的应用,如视频监控、智能支付、访问控制等,是H前机器学习和模式识别中最热门的研究方向。
2深度学习
近年来,随着机器学习的不断发展,深度学习作为一个新的研究方向引起人工智能领域的广泛关注。
其U的在于建立一个人工的神经网络,通过模拟人脑的机制对数据进行分析学习。
传统的深度训练算法采用的是BP算法,其随机获取参数,并对它们进行初始化,然后通过残差反向传播算法对这些参数进行相应的完善,最终达到深度学习的LI的。
在此之后,专家学者通过获取前层的参数,再依次逐层进行相同的操作达到依次训练的U的,最后通过对每层的调整来获得最终的结果。
深度学习不仅可以分布式表示输入数据,同时,拥有很高的数据特征学习水平,提供学习机会的同时提高了学习的效率。
它的本质是通过对大量有效数据的分析与训练,得出更深层次的数据信息。
组建出一个多隐含层的模型,以此增加判断与分析的准确性。
通过将神经网络与深度学习有效组合,一种深度神经网络逐渐出现在了人们的视野里。
随着科技的不断进步,更高等级的深度神经网络不仅可以提取出更加复杂的特征信息,同时,也很好提升了特征信息的学习效率。
在口前的深度学习领域中,存在着多种类型的算法,但是较多的信息的识别与检测等都以深度卷积神经网络为工具。
区别于传统算法,卷积神经网络面对的对象直接是图像,并且适应空间变化的复杂性与多样性。
一方面,不同神经元间的非全连接通过信息的局部识别形成,另一方面,同一层中某些神经元通过共同使用相同权值来达到共享的LI的。
同时,通过适当降釆样来减少一定的信息特征。
在相同权值共享的基础上,实现神经的并行学习。
3人脸识别技术
人脸具有高度非刚性的特点,存在着大量体现个体差异的细节。
人脸识别是通过从静态图像或者动态视频中检测出的人脸图像与数据库中的人脸图像进行比对,找到与之匹配的人脸的过程,通常用于身份识别和鉴定的LI的,是属于生物特征识别领域的课题。
口前,基于机器视觉的人脸识别方法已经取得了丰硕成果。
研究中需要考虑受到人面部表情、姿态、年龄、位置和遮盖物等因素引起的类内变化,及来自外界光照、背景等身份不同引起的类间变化,这两种变化的分布是高度复杂且非线性的。
传统的基于浅层学习的人脸识别方法,对于类内和类间这两种变化的复杂分布和非线性的人脸数据进行识别,往往达不到预期效果。
深度学习是模拟人类视觉感知神经系统的认知学习,能够获得更具表征力的高层特征,可以用来解决人脸识别中的类内和类间的变化分布这一难题。
3.1传统人脸识别技术
传统的人脸识别方法有多种,如主动形状模型(activeshapemodel,ASM)[14]和主动表观模型(activeappearancemodels,AAM);基于局部的方法,如利用局部描述子Gabor、局部:
值模式(localbinaiypattern,LBP)等进行识别;还有基于全局的方法,包括经典的人脸识别算法,如特征脸方法(Eigenface)>线性判别分析法(lineardiscriminantanalysis,LDA)等子空间学习算法以及局部保持投影算法(localitypreservingprojection,LPP)等流行学习算法。
但是,ill于受到光照、姿态及表情变化、遮挡、海量数据等因素的影响,传统的人脸识别方法曲于自身的局限性,其识别精度受到制约。
3.2基于深度学习的人脸识别技术
在深度学习框架下,学习算法直接从原始图像学习判别性的人脸特征.在海量人脸数据支撑下,基于深度学习的人脸识别在速度和精度方面已经远远超过人类.深度学习借助于图形处理器(GPU)组成的运算系统作大数据分析,人脸识别是图像处理及人工智能的一个重要指标,证明深度学习模型有助于推动人丄智能
发展,将来其至可能超越人类的智能水平。
3.2.1基于卷积神经网络(CNN)的人脸识别方法
卷积神经网络(CNN)是一种深度的监督学习下的机器学习模型,能挖掘数据局部特征,提取全局训练特征和分类,其权值共享结构网络使之更类似于生物神经网络,在模式识别各个领域都得到成功应用.CNN通过结合人脸图像空间的局部感知区域、共享权重、在空间或时间上的降采样来充分利用数据本身包含的局部性等特征,优化模型结构,保证一定的位移不变性。
3.2.2深度非线性人脸形状提取方法
主动形状模型(activeshapemodel,ASM)和主动表观模型(activeappearancemodels,AAM)是经典的人脸对齐方法.它们使用线性的主成分分析技术对人脸形状和纹理变化建模,并通过优化模型参数使之适配测试人脸图像•山于线性模型难以刻画复杂的人脸形状和纹理变化,在大姿态、夸张表情、剧烈光照变化和部分遮挡下的效果欠佳。
该问题的最新进展是通过级联多个线性回归模型直接从人脸纹理特征预测人脸形状。
人脸识别中的主要难点在于人脸形态和纹理高度复杂性的特点,为进一步提高算法的非线性回归能力以获得对形状等变化的鲁棒性,zhang等提出了一种山粗到细的深度非线性人脸形状提取方法(coarse-to-fineauto-encodersnetworks,CFAN).CFAN级联多个山栈式自编码网络实现的非线性回归模型,每一级刻画从人脸表观到人脸形状的部分非线性映射.在对人脸图像识别过程中,深度学习方法不仅能够提取有用的人脸纹理特征,而且能够得到精确的人脸形状和儿何结构信息。
4人脸识别方法
4.1人脸识别的过程
观察一个人的脸可以直接、自然地获得一个人的许多消息,比如:
年龄、性别、情绪等虽然不同的人脸检测系统所使用的算法原理各不相同,但是大都可以归结为以下步骤:
1)人脸检测:
即从图像信息中检测出人脸并返回位置范围;
2)人脸规范化:
校正因为在光照强度图像像素等问题下人脸所发生的变
化;
3)人脸特征的提取:
将识别到的人脸中的特征提取岀来;
4)人脸识别:
将提取的到的特征与数据库中已有的特征进行匹配,进行人脸识别。
4.2Python实现人脸识别算法
4.2.1OpenCV库介绍
使用Python语言开发具有高效性,得益于其丰富的第三方库,Python能够将其他语言制作的模块快速轻松地连接在起。
本文所使用的OpenCV就是可以通过Python语言进行调用的一个第三方视觉库。
OpenCV于1999年由Intel创立至今经过多年的发展已经成为当今计算机视觉领域一款功能强大且通用的图像视觉处理库。
4.2.2人脸检测原理
OpenCV提供三个人脸识别器分别为基PCA的特征面识别器以及基于LDA的Fisherface分类器和本文所用的LBPH分类器相比于其他两种分类算法LBPH算法有着受光源影响较小的优点。
该方法是通过检测图像的局部信息来获特征值,通过比较图像中的每个像素点与临近像素点之间的灰度值获得特征信息。
将RGB图片转化为灰度图片后取3x3的矩阵,当灰度值大于中心图像时采用0表示,当等于小于时使用1表示,以此得到一个由0和1组成的二进制列表。
将图片中每一个像素都进行处理后并将其转化为十进制后统计得到一张直方图,该直方图即是特征直方图。
4.2.3方法实现
在实现方法前首先需要配置好Python开发环境和OpenCV库并且下载CascadeClassifie进行分类所需的训练集。
本文的实现过程主要有以下儿个步骤:
1)采集被测对象的人脸信息;
2)遍历图像进行灰度处理;
3)识别图像脸部区域进行截取;
4)对应截取区域每个像素点生成二值矩阵;
5)生成没张图像的特征直方图;
6)将被测对象脸部进行LBPH转化后进行标签匹配。
程序运行的步骤如下:
首先使用摄像头对被对象进行图像信息的采集,使用cascadeclassifier分类器对视频中的每一帧进行检测,当确认识到识别脸部后后会对该图片打上标签后作为训练集进行保存。
对采集到的照片进行LPBH算法分析,提取特征值生成特征直方图。
使用摄像头捕捉图像,将视频每帧图像的脸部信息进行分析后生成特征直方图后与采集的训练集进行比对,打上标签后在视频信息中进行标记。
以下为该方法实现用到的主要函数。
1)该函数的功能为识别人脸有效区域。
deffiinctionl(img)
giay=cv2.cMColor(mig,cv2.COLOR_BGR2GRAY)#对图片进行灰皮转化
Img_two=img
cap=cv2.CascadeClassifier('face_discren.xiiil')#识别是否有有效人脸faceRects=cap.detectMultiScale(gi*ay,scaleFactor=1.2)iflen(faceRects)==0:
i[have_face=0
iflen(faceRects):
i匚have_face=1
retiiniimg_hvo,if_ha\'e_face#返回原始图像以及否有人脸的确认数值
2)该函数是对图像被测对象图像进行釆集。
defEinctioii2(number)#number是采集照片的数I」
the_wh_number=1
while
(1)
ret,iniga=cap.read()#读取摄像头图像
iing_add=cv2.flip(imga,1)#对图像进彳亍翻转
original_img,if^face=cesliiceslii.fimction1(img_add)
ififlface=l:
判断摄像头是否识别到人脸
#将图片以当前时间命名存储
the_now_time=time.sti'ftiine(n%Y-%m-%d%H:
%M:
%S*\time.localtime())
the_pictiire_name=str(the_now_time)old_filname=the_picture_name+\jpg1filname=old_filname・replace()cat2.imwrite(filnamejmga)
the_wh_iiumber+=1
ifthe_wh_number==number:
break
3)该函数采集到的照片进行遍历为来自每一个被测对象的照片打上标签将其脸部图像区域提取出作为返回值输入到LBPH分类器中。
deffiinction3(img):
gray=cv2・cvtColor(img,cv2.COLORBGR2GRAY)face_cascade=cv2・CascadeClassifier(,face_discren.xinlf)face_data=face_cascade.detectMultiScale(gi'ay,scaleFactor=1.2)(x,y,w,h)=face_data[O]
returngiay[y:
y+w,x:
x+h],faces_data[O]4
4)主程序如下:
while(l):
ret,imga=cap.read()
face,rect,c=fiinction3(imga)
a,b,=face,rect
label=face_recogiiizer.predict(face)
label_text=subjects[label[O]]
ifc!
=0:
di-aw_rectangle(imga,rect)
di*aw_text(imga,label_text,rect[O],rect[l]-5)cv2・inishow(iniage,,iniga)
4.2.4方法论证
以记录个被测人每人记录20张照片的形式对标记为的被测人经行测试,随机选取10组识别结果与相识度进行输出放入表1中。
标签
5
5
5
5
5
5
5
5
5
5
相似度
40.26
41.22
44.19
46.94
44.77
39.78
38.82
45.89
39.19
44.06
表1随机选取的10组识另U结果以及相似度
经过测试该方法可以正确的识别并跟踪特定的人脸。
5结语
随着口前人工智能产业的飞速发展以及大数据时代的到来,深度学习成为了LI前众多专家学者的研究热点。
而随着智能化场景的逐步推广以及互联网金融日益智能化,基于深度学习的人脸识别技术的市场将变得更加广阔。
但是在人脸识别的过程中仍有难题等待处理,在面对具体问题时,数据模型的建立没有系统的参考。
学习框架的选取以及神经网络的建立都需要依靠众多数据以及实验的支持,这就难以避免训练时长过长的问题,同时,对计算能力的要求也会变得更严格。
所以,应加大对基于深度学习的人脸识别技术研究力度,不断完整体系,寻求突破,以此获得更大的研究成果。
参考文献
[1]山世光.人脸识别中若干关键问题的研究[D].中国科学院研究生院(计算技术研究所),2004.
[2]YangMH・KernelEigenfacesvs.KernelFishei-faees:
FaceRecognitionUsingKernelMethods[C]//IEEEInternationalConferenceonAutomaticFaceandGestureRecognition,2002.Proceedings・IEEE2002215一220.
[3]ZhouSK,ChellappaR・Multiple一exemplardiscriminantanalysisforfacerecogiiition[C]//PatternRecognition,2004.ICPR2004,Proceedingsofthe17thInternationalConferenceon・IEEE20044:
191一194.
[4]HouWT,WeiH,TanJC,eta1・Aconvexqiiadiaticprogianimingmodelforunitcommitmentglobaloptimization[J]・IEEJTransactionsonElectricalandElectronicEngineering»2018,13(3):
417一431.
[5]苏楠,吴冰,徐伟,等,人脸识别综合技术发展[J]信息安全技术研究2016
(1):
33-38.
[6]薛同来,张华方,等,基于Python的深度学习人脸识别方法[J],20189.26.
[7]景晨凯,刘凯伦,等,基于深度卷积神经网络的人脸识别技术综述[J],计算机应用与软件2018年1月.
[8]刘程,谭晓阳.一种基于深度学习的移动端人脸验证系统[J].计算机与现代化,2018
(2):
107-111.
[9]郭丽丽,丁世飞•深度学习研究进展[J]・计算化科学,2015,42(5):
28-33.