当前位置:首页 > 科技  > 知识百科

用Python进行人脸识别「包括源代码」

来源: 责编: 时间:2023-08-07 16:30:20 391观看
导读 Python可以从图像或视频中检测和识别你的脸。人脸检测与识别是计算机视觉领域的研究热点之一。人脸识别的应用包括人脸解锁、安全防护等,医生和医务人员利用人脸识别来获取病

7XM28资讯网——每日最新资讯28at.com

Python可以从图像或视频中检测和识别你的脸。7XM28资讯网——每日最新资讯28at.com

人脸检测与识别是计算机视觉领域的研究热点之一。7XM28资讯网——每日最新资讯28at.com

人脸识别的应用包括人脸解锁、安全防护等,医生和医务人员利用人脸识别来获取病历和病史,更好地诊断疾病。7XM28资讯网——每日最新资讯28at.com

关于Python人脸识别7XM28资讯网——每日最新资讯28at.com

在这个python项目中,我们将构建一个机器学习模型,该模型从图像中识别人。我们在项目中使用了人脸识别API和OpenCV。7XM28资讯网——每日最新资讯28at.com

随时了解最新的技术趋势7XM28资讯网——每日最新资讯28at.com

加入DataFlair的电报!7XM28资讯网——每日最新资讯28at.com

工具与图书馆 Python-3.x CV2-4.5.2 矮胖-1.20.3 人脸识别-1.3.07XM28资讯网——每日最新资讯28at.com

若要安装上述软件包,请使用以下命令。7XM28资讯网——每日最新资讯28at.com

pip install numpy opencv-python7XM28资讯网——每日最新资讯28at.com

要安装FaceRecognition,首先安装dlib包。7XM28资讯网——每日最新资讯28at.com

pip install dlib7XM28资讯网——每日最新资讯28at.com

现在,使用以下命令安装面部识别模块7XM28资讯网——每日最新资讯28at.com

pip install face_recognition7XM28资讯网——每日最新资讯28at.com
下载人脸识别Python代码7XM28资讯网——每日最新资讯28at.com

请下载python面部识别项目的源代码: 人脸识别工程代码7XM28资讯网——每日最新资讯28at.com

项目数据集7XM28资讯网——每日最新资讯28at.com

我们可以使用我们自己的数据集来完成这个人脸识别项目。对于这个项目,让我们以受欢迎的美国网络系列“老友记”为数据集。该数据集包含在面部识别项目代码中,您在上一节中下载了该代码。7XM28资讯网——每日最新资讯28at.com

建立人脸识别模型的步骤7XM28资讯网——每日最新资讯28at.com

在继续之前,让我们知道什么是人脸识别和检测。7XM28资讯网——每日最新资讯28at.com

人脸识别是从照片和视频帧中识别或验证一个人的脸的过程。7XM28资讯网——每日最新资讯28at.com

人脸检测是指在图像中定位和提取人脸(位置和大小)以供人脸检测算法使用的过程。7XM28资讯网——每日最新资讯28at.com

人脸识别方法用于定位图像中唯一指定的特征。在大多数情况下,面部图片已经被移除、裁剪、缩放和转换为灰度。人脸识别包括三个步骤:人脸检测、特征提取、人脸识别。7XM28资讯网——每日最新资讯28at.com

OpenCV是一个用C++编写的开源库.它包含了用于计算机视觉任务的各种算法和深度神经网络的实现。7XM28资讯网——每日最新资讯28at.com

1.准备数据集7XM28资讯网——每日最新资讯28at.com

创建2个目录,训练和测试。从互联网上为每个演员选择一个图片,并下载到我们的“火车”目录中。确保您所选择的图像能够很好地显示人脸的特征,以便对分类器进行分类。7XM28资讯网——每日最新资讯28at.com

为了测试模型,让我们拍摄一张包含所有强制转换的图片,并将其放到我们的“test”目录中。7XM28资讯网——每日最新资讯28at.com

为了您的舒适,我们增加了培训和测试数据与项目代码。7XM28资讯网——每日最新资讯28at.com

2.模型的训练7XM28资讯网——每日最新资讯28at.com

首先导入必要的模块。7XM28资讯网——每日最新资讯28at.com

import face_recognition as fr7XM28资讯网——每日最新资讯28at.com
import cv27XM28资讯网——每日最新资讯28at.com
import numpy as np7XM28资讯网——每日最新资讯28at.com
import os7XM28资讯网——每日最新资讯28at.com

人脸识别库包含帮助人脸识别过程的各种实用程序的实现。7XM28资讯网——每日最新资讯28at.com

现在,创建2个列表来存储图像(人员)的名称及其各自的脸编码。7XM28资讯网——每日最新资讯28at.com

path = "./train/"7XM28资讯网——每日最新资讯28at.com
known_names = []7XM28资讯网——每日最新资讯28at.com
known_name_encodings = []7XM28资讯网——每日最新资讯28at.com
images = os.listdir(path)7XM28资讯网——每日最新资讯28at.com

人脸编码是一种值的矢量,它代表着脸部特征之间的重要度量,如眼睛之间的距离、额头的宽度等。7XM28资讯网——每日最新资讯28at.com

我们循环遍历火车目录中的每个图像,提取图像中的人的姓名,计算其脸编码向量,并将信息存储在相应的列表中。7XM28资讯网——每日最新资讯28at.com

for _ in images:7XM28资讯网——每日最新资讯28at.com
image = fr.load_image_file(path + _)7XM28资讯网——每日最新资讯28at.com
image_path = path + _7XM28资讯网——每日最新资讯28at.com
encoding = fr.face_encodings(image)[0]7XM28资讯网——每日最新资讯28at.com
known_name_encodings.append(encoding)7XM28资讯网——每日最新资讯28at.com
known_names.append(os.path.splitext(os.path.basename(image_path))[0].capitalize())7XM28资讯网——每日最新资讯28at.com
3.在测试数据集中测试模型7XM28资讯网——每日最新资讯28at.com

如前所述,我们的测试数据集只包含一个包含所有人员的图像。7XM28资讯网——每日最新资讯28at.com

使用CV2 imread()方法读取测试映像。7XM28资讯网——每日最新资讯28at.com

test_image = "./test/test.jpg"7XM28资讯网——每日最新资讯28at.com
image = cv2.imread(test_image)7XM28资讯网——每日最新资讯28at.com

人脸识别库提供了一种名为Face_Locations()的有用方法,它定位图像中检测到的每个人脸的坐标(左、下、右、上)。使用这些位置值,我们可以很容易地找到脸编码。7XM28资讯网——每日最新资讯28at.com

face_locations = fr.face_locations(image)7XM28资讯网——每日最新资讯28at.com
face_encodings = fr.face_encodings(image, face_locations)7XM28资讯网——每日最新资讯28at.com

我们循环遍历每个面部位置及其在图像中的编码。然后,我们将这种编码与“列车”数据集中的人脸编码进行比较。7XM28资讯网——每日最新资讯28at.com

然后计算人脸距离,即计算测试图像编码和训练图像编码之间的相似性。现在,我们从它选取最小值距离,表示测试图像的这张脸是训练数据集中的人之一。7XM28资讯网——每日最新资讯28at.com

现在,使用CV2模块中的方法绘制一个带有面部位置坐标的矩形。7XM28资讯网——每日最新资讯28at.com

for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings):7XM28资讯网——每日最新资讯28at.com
matches = fr.compare_faces(known_name_encodings, face_encoding)7XM28资讯网——每日最新资讯28at.com
name = ""7XM28资讯网——每日最新资讯28at.com
face_distances = fr.face_distance(known_name_encodings, face_encoding)7XM28资讯网——每日最新资讯28at.com
best_match = np.argmin(face_distances)7XM28资讯网——每日最新资讯28at.com
if matches[best_match]:7XM28资讯网——每日最新资讯28at.com
name = known_names[best_match]7XM28资讯网——每日最新资讯28at.com
cv2.rectangle(image, (left, top), (right, bottom), (0, 0, 255), 2)7XM28资讯网——每日最新资讯28at.com
cv2.rectangle(image, (left, bottom - 15), (right, bottom), (0, 0, 255), cv2.FILLED)7XM28资讯网——每日最新资讯28at.com
font = cv2.FONT_HERSHEY_DUPLEX7XM28资讯网——每日最新资讯28at.com
cv2.putText(image, name, (left + 6, bottom - 6), font, 1.0, (255, 255, 255), 1)7XM28资讯网——每日最新资讯28at.com

使用CV2模块的imShow()方法显示图像。7XM28资讯网——每日最新资讯28at.com

cv2.imshow("Result", image)7XM28资讯网——每日最新资讯28at.com

使用imwrite()方法将图像保存到当前工作目录中。7XM28资讯网——每日最新资讯28at.com

cv2.imwrite("./output.jpg", image)7XM28资讯网——每日最新资讯28at.com

释放未被释放的资源(如果有的话)。7XM28资讯网——每日最新资讯28at.com

cv2.waitKey(0)7XM28资讯网——每日最新资讯28at.com
cv2.destroyAllWindows()7XM28资讯网——每日最新资讯28at.com

Python人脸识别输出7XM28资讯网——每日最新资讯28at.com

让我们看看模型的输出。7XM28资讯网——每日最新资讯28at.com

7XM28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-119-2348-0.html用Python进行人脸识别「包括源代码」

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: DeepMind开源了MuJoCo!Meta竟用来让「骷髅手」盘核桃

下一篇: 云安全日报220524:IBM大数据可扩展存储设备发现特权提升漏洞,需要尽快升级

标签:
  • 热门焦点
  • 直屏旗舰来了 iQOO 12和K70 Pro同台竞技

    旗舰机基本上使用的都是双曲面屏幕,这就让很多喜欢直屏的爱好者在苦等一款直屏旗舰,这次,你们等到了。据博主数码闲聊站带来的最新爆料称,Redmi下代旗舰K70 Pro和iQOO 12两款手
  • 中兴AX5400Pro+上手体验:再升级 双2.5G网口+USB 3.0这次全都有

    2021年11月的时候,中兴先后发布了两款路由器产品,中兴AX5400和中兴AX5400 Pro,从产品命名上就不难看出这是隶属于同一系列的,但在外观设计上这两款产品可以说是完全没一点关系
  • 7月安卓手机性能榜:红魔8S Pro再夺榜首

    7月份的手机市场风平浪静,除了红魔和努比亚带来了两款搭载骁龙8Gen2领先版处理器的新机之外,别的也想不到有什么新品了,这也正常,通常6月7月都是手机厂商修整的时间,进入8月份之
  • SpringBoot中使用Cache提升接口性能详解

    环境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架从 3.1 开始,对 Spring 应用程序提供了透明式添加缓存的支持。和事务支持一样,抽象缓存允许一致地使用各
  • 之家push系统迭代之路

    前言在这个信息爆炸的互联网时代,能够及时准确获取信息是当今社会要解决的关键问题之一。随着之家用户体量和内容规模的不断增大,传统的靠"主动拉"获取信息的方式已不能满足用
  • 重估百度丨大模型,能撑起百度的“今天”吗?

    自象限原创 作者|程心 罗辑2023年之前,对于自己的“今天”,百度也很迷茫。“新业务到 2022 年底还是 0,希望 2023 年出来一个 1。”这是2022年底,李彦宏
  • iQOO Neo8系列或定档5月23日:首发天玑9200+ 安卓跑分王者

    去年10月,iQOO推出了iQOO Neo7系列机型,不仅搭载了天玑9000+,而且是同价位唯一一款天玑9000+直屏旗舰,一经上市便受到了用户的广泛关注。在时隔半年后,
  • 质感不错!OPPO K11渲染图曝光:旗舰IMX890传感器首次下放

    一直以来,OPPO K系列机型都保持着较为均衡的产品体验,历来都是2K价位的明星机型,去年推出的OPPO K10和OPPO K10 Pro两款机型凭借各自的出色配置,堪称有
  • SN570 NVMe SSD固态硬盘 价格与性能兼具

    SN570 NVMe SSD固态硬盘是西部数据发布的最新一代WD Blue系列的固态硬盘,不仅闪存技术更为精进,性能也得到了进一步的跃升。WD Blue SN570 NVMe SSD的包装外
Top