使用Python的人脸识别系统-600学习网

600学习网终身会员188,所有资源无秘无压缩-购买会员

介绍

人脸识别不同于人脸检测。在人脸检测中,我们只检测人脸的位置。在人脸识别任务中,我们识别人的身份。

在本文中,我们将使用python在人脸识别库的帮助下构建一个人脸识别系统。

市场上有许多人脸识别算法。这个计算机视觉挑战是从视频和图片中检测人脸。许多应用程序可以建立在识别系统上。许多大公司出于安全和认证目的使用身份识别系统。

识别系统用例

人脸识别系统在现代被广泛使用,许多新的创新系统都建立在识别系统之上。

有几个用例:

查找失踪人员识别社交媒体上的账户识别汽车中的驾驶员考勤系统

许多人脸识别算法取决于它们的性能和准确姓。

传统的人脸识别算法

传统的人脸识别算法不能满足现代人脸识别标准。它们被设计为使用旧的传统算法识别人脸。

OpenCV提供了一些传统的人脸识别算法

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

这些方法在提取图像信息和匹配输入和输出图像的方式上不同。

LBPH算法是一种简单但非常有效的方法,目前仍在使用,但它比现代算法慢。

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

人脸识别深度学习

有许多基于深度学习的人脸识别算法可用。

DeepFaceDeepID系列系统FaceNetVGGFace

一般来说,基于地标的人脸识别器捕获人脸图像,并试图找到基本特征点,如眉毛.嘴角.眼睛.鼻子和嘴唇。这里有60多个地标。

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

人脸识别涉及的步骤

1.人脸检测:定位人脸,记录每个人脸位置的坐标,并在每个人脸周围绘制一个边界框。

2.面对齐。标准化面部以进行快速训练。

3.特征提取。从人脸图像中提取局部特征用于训练。不同的算法在此步骤中执行不同的操作。

4.人脸识别。将输入面与数据集中的一个或多个已知面进行匹配。

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

本文重点研究了使用基于深度学习技术的库face_recognition实现人脸识别,该库承诺使用单个训练图像,准确率超过96%。

使生效

使用python实现人脸识别系统。利用人脸识别库实现了基于深度学习的人脸识别系统。

1.设置人脸识别库:

为了安装人脸识别库,我们需要先安装dlib

·Dlib:它是一个现代C++工具包,包括与机器学习相关的算法和工具。

#安装dlib

pip安装dlib

·安装实际的人脸识别库。

#安装人脸识别

pip安装人脸识别

·Opencv用于一些图像预处理

#安装opencv

pip安装opencv

注意:有时安装dlib会引发错误,在这种情况下,使用vs_代码社区安装C++开发工具包。

导入库

导入cv2

将numpy导入为np

导入人脸识别

2.加载图片:

我们已经完成了库的安装和导入。是时候将一些示例图像加载到face_recognition库中了。

此face_recognition库仅支持BGR格式的图像。打印图像时,我们应该使用OpenCV将其转换为RGB。

Face_rerecognition仅加载BGR格式的图像。

导入cv2

将numpy导入为np

导入人脸识别

img_bgr=人脸_识别.加载_图像_文件(‘学生_图像/modi.jpg’)

img_rgb=cv2.cvt颜涩(img_bgr,cv2.COLOR_BGR2RGB)

cv2.imshow(‘bgr’,img_bgr)

cv2.imshow(‘rgb’,img_rgb)

cv2.wait键

输出→ BGR和RGB

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

3.人脸检测

img_modi_rgb=cv2.cvt颜涩(img_modi,cv2.COLOR_BGR2RGB)

#—————————检测人脸—————————

面部=面部识别。面部位置(img_modi_rgb)[0]

copy=img_modi_rgb.copy()

#———————-在面周围绘制边界框

cv2.矩形(副本,(面〔3〕,面〔0〕),(面[1],面〔2〕),,(255,0255),2)

cv2.imshow(“副本”,副本)

cv2.imshow(‘MODI’,img_MODI_rgb)

cv2.waitKey(0)

慕课、黑马、极客时间、小码哥、拉钩、尚硅谷、开课吧等千套课程打包VIP套餐,IT课程一网打尽

4.样本图像识别:

face_recognition库基于深度学习。它支持单一学习,这意味着它需要一张图片来训练自己检测一个人。

img_modi=人脸_识别.加载_图像_文件(‘学生_图像/modi.jpg’)

img_modi=cv2.cvtColor(img_modi,cv2.COLOR_BGR2RGB)

#————-查找面部位置

面部=面部识别。面部位置(img_modi)[0]

#–将图像转换为编码

列车编码=人脸识别。人脸编码(img_modi)[0]

让我们测试一幅图像

test=人脸识别加载图片文件(‘学生图片/modi2.jpg’)

test=cv2.cvtColor(test,cv2.COLOR_BGR2RGB)

test_encode=face_recognition。face_编码(test)[0]

打印(面部识别。比较面部([训练编码],测试编码))

cv2.矩形(img _modi,(面[3],面[0]),(面[1],面[2]),(255,0255),1)

cv2.imshow(‘img_modi’,img_modi)

cv2.waitKey(0)

上面的代码拍摄了首相的两张照片。因为这两张图片都是同一个人,所以返回true。

面部识别。面编码(imgelon)[0]→ 返回传输图像的编码。

面部识别。compane_faces([train_encode],test_encode)获得训练代码和未知图像的测试代码的列表。如果两个测试代码在训练代码中匹配,则返回True;否则,它将返回False

了解人脸识别的工作原理

1.我们把人们的照片和名字传给模特。

2.模型拍摄每张照片,将其转换为数字代码,存储在一个列表中,并将所有标签(人名)存储在另一个列表。

3.在预测阶段,当我们传输未知人物的图像时,识别模型会将该人物的图像转换为代码。

4.将未知人物的图像转换为代码后,它将根据距离参数尝试找到最相似的代码。与未知人员编码距离最小的代码将是最接近的匹配。

5.在获得最接近的匹配代码后,我们从列表中获得该代码的索引并使用该索引。我们找到了我们检测到的人的名字。

确定系统挑战

这些是识别系统面临的主要挑战,需要解决。

·姿势:识别系统很容易受到人体姿势的影响。面部识别系统将无法预测该人的面部是否不可见。

·照明:照明可以大大改变面部轮廓。人脸识别照片应在适当的照明条件下拍摄。

·面部表情:不同的面部表情会导致对同一个人形象的不同预测。

·低分辨率:低分辨率图像包含的信息较少,因此不适合人脸识别训练。

结论

本文讨论了如何利用python和单图像训练技术实现人脸识别系统。您还可以使用类似python Tkinter的GUI来设计基于GUI的考勤系统。我们看到了影响识别系统的挑战以及如何应对这些挑战。

免责声明: 1、本站信息来自网络,版权争议与本站无关 2、本站所有主题由该帖子作者发表,该帖子作者与本站享有帖子相关版权 3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和本站的同意 4、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责 5、用户所发布的一切软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 6、您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 7、请支持正版软件、得到更好的正版服务。 8、如有侵权请立即告知本站,本站将及时予与删除 9、本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章和视频仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。
600学习网 » 使用Python的人脸识别系统-600学习网