版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
人工智能库的应用——人脸识别项目制作:课程编写团队出版社:机械工业出版社《Python编程基础与应用》配套课件本课件为《Python编程基础与应用(第2版)》配套教学资源,由编写团队精心打造。为便于教学使用,团队同步提供了丰富的辅助材料,涵盖微课视频、教学课件、实训手册、习题答案、课程标准及程序源代码等。同时,教材配套超星教学示范包,支持一键克隆为网络在线课程,助力高效开展线上线下混合式教学。欢迎联系出版方订购使用。
书名:《Python编程基础与应用(第2版)》出版社:机械工业出版社主编:蓝永健、陈冬冬副主编:蔡德琛、朱海鑫、邓爱玲+contents目录face_recognition的安装和简介案例:人脸识别学生考勤系统face_recognition的安装和简介01face_recognition的简介项目face_recognition是一个强大、简单、易上手的人脸识别开源项目,并且配备了完整的开发文档和应用案例。据项目的官方文档说明,本项目是世界上最简洁的人脸识别库之一,你可以使用Python和命令行工具提取、识别、操作人脸。该项目的人脸识别是基于业内领先的C++开源库dlib中的深度学习模型,用《LabeledFacesintheWild》(美国麻省大学安姆斯特分校(UniversityofMassachusettsAmherst)制作的人脸数据集,该数据集包含了从网络收集的13,000多张面部图像。)人脸数据集进行测试,有高达99.38%的准确率。但对小孩和亚洲人脸的识别准确率尚待提升。有关它的更多介绍请访问英文网站https://face-recognition.readthedocs.io/。安装face_recognition它的安装方法简单,可以直接使用PIP进行安装。但它有依赖环境,在安装时可能会出错。如果在Windows操作系统下安装face_recognition失败,可以按以下顺序检查:1)如果你本机没有安装vistualstudio,就先下载安装vistualstudio2012或以上版本,并在安装选项中增加C++库的支持。在微软官网(/zh-hans/)下载新版本的vistualstudio。2)如果提示cmake没安装,请先安装它。pipinstallcmake安装face_recognition3)如果提示dlib没安装,请先安装它。4)以上环境准备好后,再安装face_recognition。pipinstallface_recognitionpipinstalldlibface_recognition的API简介1)batch_face_locations()人脸定位使用CNN深度学习模型返回图像中人脸边界框的二维数组。如果您使用的是GPU,由于GPU可以一次处理一批图像,因此可以更快地获得结果。如果您不使用GPU,则不需要此功能。语法举例:batch_face_locations(images,number_of_times_to_upsample=1,batch_size=128)参数:images表示图片列表(每个图片为一个numpy数组)。number_of_times_to_upsample表示对图像进行脸部上采样的次数。数字越大,面孔越小。batch_size表示每个GPU处理批次中要包含多少个图像。face_recognition的API简介2)face_locations()人脸定位利用CNN深度学习模型或方向梯度直方图(HistogramofOrientedGradient,HOG)进行人脸提取。返回值是一个数组(top,right,bottom,left)表示人脸所在边框的四条边的位置。语法举例:face_locations(img,number_of_times_to_upsample=1,model='hog')它的功能与batch_face_locations()类似。它的前2个参数相同,后面的model表示要使用的人脸检测模型,主要有两个模型“hog”和“cnn”。“hog”准确性较低,但在CPU上速度更快。“cnn”是经过GPU/CUDA加速(如果可用)的更准确的深度学习模型。默认值为“hog”。face_recognition的API简介3)compare_faces()人脸比对将面部编码列表与候选编码进行比较,以查看它们是否匹配。语法举例:compare_faces(known_face_encodings,face_encoding_to_check,tolerance=0.6)参数:known_face_encodings表示已知人脸的特征向量。face_encoding_to_check表示未知人脸的特征向量。Tolerance是容忍度,认为相匹配的面孔之间的距离有多大。越低越严格,0.6是典型的最佳性能。face_recognition的API简介4)face_distance()人脸特征向量距离给定面部编码列表,将它们与已知的面部编码进行比较,并获得每个比较面部的欧几里得距离。距离告诉您面孔的相似程度。语法举例:face_distance(face_encodings,face_to_compare)参数:face_encodings表示已知人脸的特征向量。face_to_compare表示未知人脸的特征向量。face_recognition的API简介5)face_encodings()人脸解码输入一张图片后,生成一个128维的特征向量,这是人脸识别的依据。语法举例:face_encodings(face_image,known_face_locations=None,num_jitters=1,model='small')参数: face_image表示包含一个或多个面部的图像。known_face_locations是可选项,项目每个面的边界框。num_jitters表示计算编码时对面部重新采样的次数。越高越准确,但越慢(即100慢100倍)。model是可选项,为“large”或“small”。它表示使用哪种模型,它默认仅返回5点,但速度更快。face_recognition的API简介6)face_landmarks()脸特征提取给定图像,返回图像中每个面部的面部特征位置(眼睛,鼻子等)的决定。语法举例:face_landmarks(face_image,face_locations=None,model='large')参数:face_image表示要搜索的图像。face_locations这个是默认值,默认解码图片中的每一个人脸。若输入face_locations()[i]可指定人脸进行解码。model是可选项,为“large”或“small”。face_recognition的API简介7)load_image_file()加载图像文件它能将图像文件(.jpg,.png等)加载到numpy数组中。语法举例:load_image_file(file,mode='RGB')参数:file表示图像文件名或要加载的文件对象。mode表示将图像转换成的格式。仅支持“RGB”(8位RGB,3通道)和“L”(黑白)。范例11-13 定位图片中所有人脸,并自动生成人脸图片保存在本地给出学生图片student.jpg,自动识别出图片中的人脸。原图效果如图所示。说明:出于印刷和版权的考虑,素材中的人像图片都后期加了马赛克,原图并没有马赛克。范例11-13 定位图片中所有人脸,并自动生成人脸图片保存在本地importface_recognitionfromPILimportImageimportos#第1步:人脸定位print('正在识别中...')image=face_recognition.load_image_file("student.jpg",mode='RGB')#加载图片文件#face_locations:以列表形式返回图片中的所有人脸的位置数组(top,right,bottom,left)face_locations=face_recognition.face_locations(image,model="cnn")#人脸定位,模式为cnn#print(face_locations)范例11-13 定位图片中所有人脸,并自动生成人脸图片保存在本地#第2步:判断文件夹是否存在,不存在则创建文件夹filePath="student-img"ifnotos.path.exists(filePath):os.makedirs(filePath)范例11-13 定位图片中所有人脸,并自动生成人脸图片保存在本地#第3步:遍历,自动截取的人脸图并保存num=1#第一个图片序号foronesinface_locations:top,right,bottom,left=ones#构造上、右,下、左的坐标
face_image=image[top:bottom,left:right]pil_image=Image.fromarray(face_image)#array转换成imagepil_image.save(fp=r"{0}/face{1}.jpg".format(filePath,num))#保存图片
num+=1#序号自加1print('识别完成...')范例11-13 定位图片中所有人脸,并自动生成人脸图片保存在本地经检查,它已经自动生成文件夹“student-img”,并在它里面自动生成4个人脸图片,范例11-14 识别图片人物有两张图片,一张是已知人物,另一张是未知人物。现进行人脸识别,判断未知人物是不是本人。importface_recognitionprint('正在识别中...')#step01:读取已知人物图片并编码picture_of_me=face_recognition.load_image_file("me.jpg")my_face_encoding=face_recognition.face_encodings(picture_of_me)[0]#step02:读取未知人物图片并编码unknown_picture=face_recognition.load_image_file("unknown.jpg")unknown_face_encoding=face_recognition.face_encodings(unknown_picture)[0]范例11-14 识别图片人物#step03:比较人脸#由于对亚洲人识别率不高tolerance一般设置在0.3-0.38之间可满足大部分需求results=face_pare_faces([my_face_encoding],unknown_face_encoding,tolerance=0.38)#step04:输出结果ifresults[0]==True:print("图片中的人是我")else:print("图片中的人不是我")print('识别完成...')范例11-14 识别图片人物图片请读者自动选用。本案例选用的图片如图所示,执行后结果会正确体现出来。试一试更多的范例,可参考/ageitgey/face_recognition/tree/master/examples来完成。比如:1.人脸定位案例:定位某人的脸案例:使用卷积神经网络深度学习模型定位某人的脸案例:使用卷积神经网络深度学习模型批量识别图片中的人脸案例:把来自网络摄像头视频里的人脸高斯模糊(需安装OpenCV)试一试试一试2.人脸关键点识别案例:提取用户A和用户B的面部关键点案例:给某人涂美妆试一试3.人脸识别案例:是用户A还是用户B?案例:人脸识别之后在原图上画框框并标注姓名案例:在不同精度上比较两个人脸是否属于一个人案例:从摄像头获取视频进行人脸识别-较慢版(需安装OpenCV)案例:从摄像头获取视频进行人脸识别-较快版(需安装OpenCV)案例:从视频文件中识别人脸并把识别结果输出为新的视频文件(需安装OpenCV)案例:通过浏览器HTTP访问网络服务器进行人脸识别(需安装Flask框架))案例:基于K最近邻KNN分类算法进行人脸识别案例:人脸识别学生考勤系统02案例描述考勤制度是对学生的学习和生活进行管理的有效措施,而考勤系统是否完善是决定考勤制度实施程度的关键因素。目前,很多学校教师的考勤依旧沿袭着手工操作的模式,导致学校考勤机制难以发挥应有的效率。在此背景下,开发一款具备实时性和高效性的考勤系统,借助“平安校园”的数据平台,构建以人脸识别为技术支撑的学生考勤管理系统。案例描述该系统可以有效记录自动签到和查询签到,可以利用校园网络的服务器将学生端的考勤数据进行上传,而且考勤数据的动态管理和查看完全可以通过管理账号来实现。本案例只要求实现部分功能:考勤时会使用第三软件拍摄好学生的一张或者数张图片,然后让本系统去做人脸识别,如果学生与人脸识别库的信息一致,则表明学生正常来上课没有缺勤,如果比对的信息不一致,则记录为缺勤。案例分析1)对班级每一个学生都采集相片,每个相片图像只有一个学生的头像信息。图片文件放在“known”文件夹中。采集相片技术不在本案例讨论范围内。如图所示,一共有4位学生。案例分析2)使用第三方软件抓拍到课室上课的学生集体照片一张,如果学生人从过多,可以从不同角
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信息技术八年级全册第1节关键帧动画教学设计
- 陕西省石泉县江南高级中学高中音乐专业课教案:音专3声乐曲目《牧羊姑娘》共9课时
- 人音版七年级音乐下册教学设计:2.3穿越竹林
- 场景基础设计 5
- UL 2271 2023 中文版 轻型电动车电池安全标准 过充短路环境试验
- 人教版七年级上学期历史与社会教学设计:3.2.2 山地之国
- 九年级历史下册 第四单元 战后主要资本主义国家的发展变化 第8课 美国经济的发展教案 新人教版
- 六年级品社下册《第二单元 为了美好的生存环境》教学设计 浙教版
- 小学英语Unit4ThenandnowPartA第二课时教案
- 浙教版七年级下册第十四课引人入胜的音视频教学设计
- 吉利汽车GEELY+品牌VI手册 Geely Auto Communication Guidelines (New Energy 2025)
- (正式版)DB31∕T 1210-2020 《非居住物业管理服务规范》
- 2026年教科版五年级科学上册2.2《独轮车省力的秘密》课件
- (2026年秋)人教版七年级上册英语单词表
- 2026年安徽省中考英语试题(含答案)
- 【财务岗位审计对接人员】【年报季报审计场景】【资料准备混乱调整分录不规范沟通成本高昂】【审计准备手册与调整分录工具包】
- 2026年电焊工技能比武理论考试试题(含答案)
- 2026年陕西二级造价工程师土建工程考试真题及答案
- 眼外伤的紧急处理与后续护理
- 新课程视域下小学语文教材助学系统的深度剖析与实践应用
- 2026年大学生人文知识竞赛题库及答案
评论
0/150
提交评论