AI概论及应用 课件 12.1 人脸识别_第1页
AI概论及应用 课件 12.1 人脸识别_第2页
AI概论及应用 课件 12.1 人脸识别_第3页
AI概论及应用 课件 12.1 人脸识别_第4页
AI概论及应用 课件 12.1 人脸识别_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十二章案例应用12.1人脸识别人脸识别过程01人脸识别函数OpenCV02案例一:检测某一幅图像中的人脸区域03案例二:识别出某一幅图像中的人脸身份信息04目录CONTENTS人脸识别过程01人脸识别过程人脸识别五阶段概览人脸识别系统包含五大阶段:图像获取、人脸检测、图像预处理、特征提取与人脸识别,具体如图1所示。图像获取通过摄像头采集图像,人脸检测定位人脸区域,预处理优化图像质量,特征提取提取关键特征,人脸识别则将特征与数据库比对完成身份判定。图1人脸识别系统流程图图像获取图像获取是人脸识别的第一步,通常通过摄像头或摄影机完成。摄像头的分辨率和帧率对图像质量有直接影响,高质量的图像获取设备能够提供更清晰、更稳定的图像,为后续的人脸检测和识别提供更好的基础。人脸检测在已获取的图像中,采用机器学习算法,根据人脸的轮廓、肤色、纹理、结构或直方图等特征检测图像中的人脸区域。目前,opencv-python扩展库提供了正面人脸、侧脸、笑脸、眼睛、身体等分类器,分类器名称和分类器说明见表1。图像获取与人脸检测表1opencv-python扩展库包含的分类器及其说明分类器名称说明haarcascade_frontalface_default.xml正面人脸分类器(默认)haarcascade_frontalface_alt2.xml正面人脸分类器(Har方法)haarcascade_profileface.xml侧脸分类器haarcascade_smile.xml笑脸分类器haarcascade_eye.xml眼睛分类器haarcascade_lefteye_2splits.xml左眼分类器haarcascade_fullbody.xml身体分类器经过第2步检测到的人脸图像容易受距离、焦距、光线、噪声等因素影响,导致出现人脸图像大小不一致、图像模糊、图像曝光过度等情况。为了保证人脸大小、位置及人脸图像质量一致,必须对人脸图像进行人脸扶正、人脸图像增强和归一化等预处理操作。人脸图像预处理基于五官的特征提取该方法通过对人脸的五官(眉毛、眼睛、耳朵、鼻子、嘴巴)大小、形状,以及五官之间的距离、角度等特征数据来提取,这种方法容易受人脸表情和人脸姿态的影响。基于模板的特征提取该方法利用人脸五官的几何特征定义一个人脸模板,这些几何特征可以通过虹膜中心、内眼中心、外眼中心、鼻尖点、鼻孔点、耳屏点、耳下点、口角点、头顶点、眉内点和眉外点等关键点获得。人脸关键点分布如图2所示。人脸图像特征提取图2人脸72关键点分布图基于代数方法的特征提取方法这类方法利用代数变换来提取人脸图像特征,无须提取眼睛、鼻子、嘴巴、眉毛等五官几何特征,其中比较经典的方法是特征脸方法。特征脸方法依据K-L变换,可以将协方差矩阵分解,将原始图像变换到一个新的维数较低的特征空间。它通过计算机矩阵的特定值和特征向量,利用人脸图像的代数特征信息来提取人脸五官特征。人脸图像特征提取人脸识别经过人脸特征提取阶段后,获得人脸图像特征数据向量,我们就可以采用机器学习方法将这些特征向量与人脸数据库中存在的人脸图像进行逐个匹配、相似度计算。相似度越高,就越可能是我们要识别的人脸;相似度越低,则越可能不是我们想要找的人脸。OpenCV算法02一、EigenFace算法基于PCA降维技术,通过计算人脸图像的协方差矩阵的特征向量,得到“特征脸”。每张人脸都可以表示为这些特征向量的线性组合,从而实现人脸的识别与分类。该算法对光照和表情变化较为敏感。二、FisherFace算法结合了PCA和LDA算法的优点,通过最大化类间距离和最小化类内距离来提高人脸识别的准确性。该算法在处理多类别人脸识别时表现出色,适用于中小规模的人脸库。三、LBPHFace算法基于局部二值模式直方图,对图像的局部纹理特征进行编码,形成直方图作为特征向量。该算法对光照、旋转等变化具有较强的鲁棒性,适用于各种复杂场景。三大核心算法简介目前,opencv-python扩展库提供三种人脸识别算法:EigenFace(特征脸)算法、线性判别分析FisherFace算法和LBPHFace算法。EigenFace原理EigenFace算法利用PCA算法对人脸图像的协方差矩阵进行特征值分解,得到特征向量即“特征脸”。每张人脸都可以表示为这些特征向量的线性组合,通过计算特征向量之间的距离来判断是否为同一人。EigenFace算法局限性EigenFace算法对光照条件、人脸表情和姿态等变化较为敏感。由于其主要捕捉图像的主成分变化,因此在光照不均匀或表情变化较大的情况下,识别准确率会显著下降。FisherFace原理FisherFace算法是由现代统计学奠基人之一罗纳德·费希尔(RonaldFisher)提出的,故称为FisherFace算法。FisherFace算法是基于线性判别分析(LinearDiscriminantAnalysis,LDA)算法实现的。LDA算法的基本思想是:将高维样本数据投影到最佳分类的低维向量空间,保证数据在新的子空间中类间距离更大和类内距离更小。FisherFace算法优点FisherFace算法结合了PCA和LDA算法的优点,既保留了原始人脸空间数据绝大部分的主要特征,又考虑到原始图像不同类别的分类特征,并在此基础上实现了原始人脸空间向特征空间的转换,最终形成FisherFace特征向量。LBPH(LocalBinaryPatternsHistograms,局部二进制编码直方图)是基于提取图像特征的LBP算子。该算法的主要原理如下:第1步:使用LBP算子提取图像特征,这样可以获取整个图像的LBP图像。第2步:将LBP图像分为若干区域,获取每个区域的LBP直方图,从而得到整个图像的LBP直方图,即得到人脸图像特征向量。LBPHFace算法LBPHFace算法的优点①该算法能够在一定范围内减少因为没完全对准人脸区域而造成的误差。②可以根据不同的区域赋予不同的权重系数,如人脸图像往往在图像的中心区域,因此,中心区域的权重往往大于边缘区域的权重。③LBPHFace算法不受光照、缩放、旋转和平移等因素的影响,识别准确率高,通用性能好。OpenCV扩展库含有人脸识别包opencv-contrib-python,该包提供了上述三种人脸识别方法对应的函数,主要包括EigenFaceRecognizer_create、FisherFaceRecognizer_create、LBPHFaceRecognizer_create人脸识别模型函数,具体见表2。表2OpenCV扩展库的三种人脸识别模型函数函数名说明EigenFaceRecognizer_createEigenFace人脸识别模型函数FisherFaceRecognizer_createFisherFace人脸识别模型函数LBPHFaceRecognizer_createLBPHFace人脸识别模型函数案例一:检测某一幅图像中的人脸区域03案例一:检测某一幅图像中的人脸区域人脸检测就是从采集到的图像Picture01.jpg中检测出有人脸的区域。我们从网上下载他人训练好的人脸分类器haarcascade_frontalface_default.xml,并把Picture01.jpg和haarcascade_frontalface_default.xml放至源程序所在的文件夹下。人脸检测流程图如图3所示。图3人脸检测流程图案例一:检测某一幅图像中的人脸区域人脸检测的具体操作步骤如下:第1步:安装opencv-python扩展库。pip3installopencv-python第2步:根据人脸检测流程图编写参考代码。参考代码12.1实现人脸检测:案例一:检测某一幅图像中的人脸区域在代码12.1中,第3行代码用来构建人脸分类器FaceCascade;第4行代码用来读取源代码所在的文件夹下的Picture.jpg文件;第5行代码把图像转换成灰度图;第6行代码对灰度图Gray按搜索窗口比率系数1.3、相邻矩阵最小个数为5的扫描方式检测人脸,并返回检测到的人脸矩形向量数组;第7、8行代码用于遍历已检测到的向量数组,在图像Img中画出相应的人脸矩形框;第9行代码用于显示绘制有人脸矩形框的图像。案例二:识别出某一幅图像中的人脸身份信息04案例二:识别出某一幅图像中的人脸身份信息现有4人人脸图像信息,请通过LBPHFace算法准确识别出待测试的人脸身份信息。人脸身份识别流程:先采集4人人脸图像(每个人有8张人脸图像),并进行人脸样本训练,然后随机拍照进行人脸身份识别,如图4所示。图4人脸身份识别流程图案例二:识别出某一幅图像中的人脸身份信息根据上述人脸身份识别流程图,我们把人脸身份识别分成4步,详细步骤如下:第1步:构建一个人脸检测分类函数Get_Face_Cascade。构建一个人脸检测分类函数Get_Face_Cascade(Model_File),为后期实现人脸检测提供接口。注意:这里的Model_File应输入从OpenCV扩展库下载的人脸模型训练集的路径,名称为haarcascade_frontalface_default.xml。参考代码12.2构建人脸检测分类函数Get_Face_Cascade,返回人脸向量:案例二:识别出某一幅图像中的人脸身份信息第2步:生成目标人脸数据训练集。构建一个函数Get_Faces_Train(File_Path,Model_File)来生成目标人脸数据训练集,通常采用目标对象的人脸数据和身份数据作为人脸识别模板的训练集。注:此处的File_Path为用于训练的人脸图片存放的路径。参考代码12.3生成目标人脸数据训练集:案例二:识别出某一幅图像中的人脸身份信息案例二:识别出某一幅图像中的人脸身份信息第3步:训练人脸身份模

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论