人工智能与未来 课件 8.4人脸识别实现_第1页
人工智能与未来 课件 8.4人脸识别实现_第2页
人工智能与未来 课件 8.4人脸识别实现_第3页
人工智能与未来 课件 8.4人脸识别实现_第4页
人工智能与未来 课件 8.4人脸识别实现_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

ComputerVision第8章

计算机视觉2035主讲:王红梅目录CONTENTS8.18.28.38.4计算机视觉那些事计算机视觉概述人脸识别原理人脸识别实现8.506扩展:空间智能Haar特征算法是OpenCV最流行的目标检测算法,由于其算法的简洁性,和不受环境限制的使用条件,使其在很多环境,尤其是嵌入式环境中广泛使用。本节以Python的第三方库OpenCV为例,详细描述其在人脸识别的实现和应用。8.4.1OpenCV的提供的人脸分类器OpenCV中已经内置了训练好的人脸、眼睛、鼻子、嘴巴等检测器,以*.xml的文件存在特定的目录下,一般默认是存放在opencv安装目录下源码文件夹中sources\data\haarcascades,可以实现图片或视频流的检测。8.4.1OpenCV的提供的人脸分类器OpenCV内置的haar级联模型;haarcascade_frontalface_default.xml:检测面部;haarcascade_eye.xml:检测左眼和右眼;haarcascade_smile.xml:检测面部是否存在嘴部;haarcascade_eye_tree_eyeglasses.xml:检测是否带墨镜;haarcascade_frontalcatface.xml:检测猫脸;haarcascade_frontalcatface_extended.xml:检测猫脸延伸;haarcascade_frontalface_alt.xml:检测人脸属性;haarcascade_frontalface_alt_tree.xml;haarcascade_frontalface_alt2.xml;从文件名可知这些级联检测器可用于面部、眼睛、全身等的检测和跟踪。8.4.1OpenCV的提供的人脸分类器haarcascade_fullbody.xml:检测全身;haarcascade_lefteye_2splits.xml:检测左眼;haarcascade_licence_plate_rus_16stages.xml:检测证件;haarcascade_lowerbody.xml:检测下半身;haarcascade_profileface.xml;haarcascade_righteye_2splits.xml:检测右眼;haarcascade_russian_plate_number.xml:检测俄罗斯字母车牌号;haarcascade_upperbody.xml:检测上半身。1.数据准备正如前文所描述,要实现人脸识别,首先需要采集数据,在本节我们采集数据的方式有:(1)通过提供静态图片的方法,(2)摄像头直接采集,(3)通过提供视频流的方法。

Haar级联分类器执行流程2.人脸检测其次,进行人脸检测,在本节主要通过调研OpenCV的方法来进行。3.模型训练再次,要进行模型训练,我们通过提供特定的数据集,然后调研OpenCV的方法进行训练。4.人脸识别最后用训练好的模型进行人脸识别。

Haar级联分类器执行流程1.在Python中(Python环境的配置请参考算法章节),调用第三方库OpenCV。2.需要下载资源包。并解压到D盘的根目录下,解压时选择解压到“faceDetection”,解压后的文件夹和文件如图所示。

在具体实现之前,准备工作:接下来的应用案例主要是人脸识别的具体实现,如果你没有Python基础或是不想写代码,直接体验人脸识别的实现,请直接打开下载的源代码文件即可。说明本部分的图像来自视觉中国网站。

在具体实现之前,准备工作:8.4.2调用OpenCV显示图像本案例的主要任务是实现能在Python中调用OpenCV,能正常显示图像。具体实现步骤如下:1、启动Python的IDLE,在IDLE中,用菜单“文件/打开”命令(英文版是菜单“File/Open”),打开文件夹“D:\faceDetection”中的“faceTest01-showimage.py”。2、这时就会在打开的文件窗口中显示对应的代码,代码有详细的注释和解释,主要的功能是调用OpenCV的imread方法读取图像,并用OpenCV的imshow方法显示图像。8.4.2调用OpenCV显示图像3、点击菜单“运行/运行”命令(英文版“Run/RunModule”)或按键盘上的快捷键“F5”,就可以执行命令,并调用和现实图片如图所示。说明用OpenCV调用图像成功。8.4.3进行人脸检测本案例通过调用OpenCV中的“haarcascade_frontalface_default.xml”,文件,来实现调用Haar级联分类器从而实例化人脸分类器。具体实现步骤如下:1、启动Python的IDLE,在IDLE中,打开文件夹“D:\faceDetection”中的“faceTest02-facedetection.py”。2、这时就会在打开的文件窗口中显示对应的代码,代码有详细的注释和解释,运行后,点击这个红色的按钮结束8.4.3进行人脸检测3、点击运行命令,就可以执行命令,其调用和现实图片如图8.4.3所示。说明用OpenCV检测人脸成功。8.4.4通过摄像头或视频流采集照片本案例的主要任务是通过调用OpenCV来实现捕捉摄像头或视频流的方法来采集图像,通常用于实时视频处理或视频捕获。具体实现步骤如下:1、启动Python的IDLE,在IDLE中,打开文件夹“D:\faceDetection”中的“faceTest03-camara.py”文件。2、这时就会在打开的文件窗口中显示对应的代码,代码有详细的注释和解释,主要的功能是调用OpenCV的VideoCapture方法读取摄像头或视频流,并用OpenCV的imshow方法显示图像。8.4.4通过摄像头或视频流采集照片说明:下面两种采集方式,使用其一即可。(1)当cap=cv2.VideoCapture("video\东京街头的人流.mp4")这个语句在执行的时候,采集的是同目录下“video”文件夹下的视频“东京街头的人流.mp4”,当然你也可以改变本视频。(2)当cap=cv2.VideoCapture(0)这个语句执行的时候,是采用默认的第一个摄像头,你需要保证你的设备上有摄像头才可以使用。8.4.4通过摄像头或视频流采集照片3、点击菜单运行命令就可以执行,并调用摄像头或指定的视频流如图所示。说明用OpenCV调用摄像头或指定的视频流成功。(a)调用摄像头采集

(b)调用指定的视频流采集8.4.5通过摄像头或视频流检测人脸本案例的主要任务是通过调用OpenCV来实现对摄像头或视频流的人脸进行检测,具体实现步骤如下:1、启动Python的IDLE,在IDLE中,打开文件夹“D:\faceDetection”中的“faceTest04-facedetection-camera.py”文件。2、这时就会在打开的文件窗口中显示对应的代码,代码有详细的注释和解释,主要的功能是调用OpenCV的CascadeClassifier和detectMultiScale方法来检测人脸,并用矩形框标注检测到的人脸。3、点击菜单运行命令就可以执行,调用并检测到人脸如图8.4.5所示。说明用OpenCV进行人脸检测成功。(a)通过摄像头人脸检测

(b)通过视频流的人脸检测8.4.5通过摄像头或视频流检测人脸8.4.6训练人脸识别模型本案例的主要任务是通过提供的数据集来训练一个人脸识别的模型,提供的数据集在“trainphotos”文件夹下,当然你也可以下载其它的数据集来进行模型训练。具体实现步骤如下:1、启动Python的IDLE,在IDLE中,打开文件夹“D:\faceDetection”中的“faceTest05-train.py”文件。2、这时就会在打开的文件窗口中显示对应的代码,代码有详细的注释和解释,主要的功能是先读取图片到faces_list数组中,再通过CascadeClassifier方法和detectMultiScale检测出人脸,然后调用基于局部二值模式直方图的纹理人脸识别算法,最后进行训练,生成“train.xml”文件,3、点击菜单“运行/运行”命令或按键盘上的快捷键“F5”,就可以执行命令,执行完后并无执行显示。会在文件的同目录下,生成一个“train.xml”文件,8.4.6训练人脸识别模型8.4.7用训练的模型识别人脸本案例的主要任务是使用我们自己训练的模型“train.xml”,来进行人脸识别,具体实现步骤如下:1、启动Python的IDLE,在IDLE中,打开文件夹“D:\faceDetection”中的“faceTest06-recognition.py”文件。2、这时就会在打开的文件窗口中显示对应的代码,代码有详细的注释和解释,主要的功能是先读取本目录下“images”文件夹中的“my.jpg”图像,并识别出人脸和进行标注。当然你也可以把“my.jpg”图片替代为自己的图像,注意图像文件的大小,不能太大或太小,建议400×300像素左右,3、点击菜单运行命令就可以执行命令,执行成功能识别出人脸,并按程序设计用椭圆标注,8.4.7用训练的模型识别人脸通过人脸识别的图像采集、检测,以及模型的训练和实现,小智对人脸识别系统有了一定的认识和理解,接下来小智就准备研究其在宿舍门上的应用,学习后的你是不是也跃跃越试,想试试其在其它方面的应用,那就赶快行动吧。8.4.7用训练的模型识别人脸

人脸识别系统常用在无人监控的场景下,很容易受到仿冒攻击。例如可以用一张目标人的人脸图片骗过验证系统,或在目标人不知情的前提下进行非受权验证。258.4.8人脸识别技术带来的风险

为了防范这种攻击,通常采用活体检测方法,让目标人眨眨眼或动动头,来确认目标人不是照片而且在配合验证。268.4.8人脸识别技术带来的风险

近年来,视频伪造技术越来越强大,在线合成目标人的视频来骗过活体检测已经不是困难的事。278.4.8人脸识别技术带来的风险

最近,基于对抗样本的仿冒攻击带来的风险正在上升。左图是一幅仿冒眼镜

温馨提示

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

评论

0/150

提交评论