用Python进行人脸识别「包括源代码」
Python可以从图像或视频中检测和识别你的脸。
人脸检测与识别是计算机视觉领域的研究热点之一。
人脸识别的应用包括人脸解锁、安全防护等,医生和医务人员利用人脸识别来获取病历和病史,更好地诊断疾病。
关于Python人脸识别
在这个python项目中,我们将构建一个机器学习模型,该模型从图像中识别人。我们在项目中使用了人脸识别API和OpenCV。
随时了解最新用P的技术趋势
加入DataFlair的电报!
工具与图书馆 Python-3.x CV2-4.5.2 矮胖-1.20.3 人脸识别-1.3.0
若要安装上述软件包,请使用以下命令。
pip install numpy opencv-python
要安装FaceRecognition,首先安装dlib包。
pip install dlib
现在,使用以下命令安装面部识别模块
pip installyt face_recognition
下载人脸识别Python代码
请下载python面部识别项目的源代码: 人脸识别工程代码
项目数据集
我们可以使用我们自己的数据集来完成这个人脸识别项目。对于这个项目,让我们以受欢迎的美国网络系列“老友记”为数据集。该数据集包含在面部识别项目代码中,您在上一节中下载了该代码。
建立人脸识别模型的步骤
在继续之前,让我们知道什么是人脸识别和检ho测。
人脸识别是从照片和视频帧中识别或验证一个人的脸的过程。
人脸检测是指在图像中定位和提取人脸(位置和大小)以供人脸检测算法使用的过程。
人脸识别方法用于定位图像中唯一指定的特征。在大多数情况下,面部图片已经被移除、裁剪、缩放和转换为灰度。人脸识别包括三个步骤:人脸检测、特征提取、人脸识别。
OpenCV是一个用C++编写的开源库.它包含了用于计算机视觉任务的n进各种算法和深度神经网络的实现。
1.准备数据集
创建2个目录,训练和测试。从互联网上为每个演员选择一个图片,并下载到我们的“火车”目录中。确保您所选择的图像能够很好地显示人脸的特征,以便对分类器进行分类。
为了测试模型,让我们拍摄一张包含所有强制转换的图片,并将其放到我们的“test”目录中。
为了您的舒适,我们增加了培训和测试数据与项目代码。
2.模型的训练
首先导入行人必要的模块。
import face_recognition as fr
import cv2
import numpy as np
import os
人脸识别库包含帮助人脸识别过程的各种实用程序的实现。
现在,创建2个列表来存储图像(人员)的名称及其各自的脸编码。
path = "./train/"
known_names = []
known_name_encodings = []
images脸识 = os.listdir(path)
人脸编码是一种值的矢量,它代表着脸部特征之间的重要度量,如眼睛之间的距离、额头的宽度等。
我们循环遍历火车目录中的每个图像,提取图像中的人的姓名,计算其脸编码向量,并将信息存储在相应的列表中。
for _ in images:
image = fr.load_image_file(path + _)
image_path = path + _
encoding别「 = fr.face_encodings(image)[0]
known_name_encodings.append(encoding)
known_names.append(os.path.splitext(os.path.basename(image_path))[0].capitalize())
3.在测试数据集中测试模型
如前所述,我们的测试数据集只包含一个包括包含所有人员的图像。
使用CV2 imread()方法读取测试映像。
test_image = "./test/test.jpg"
image = cv2.imread(test_image)
人脸识别库提供了一种名为Face_Locations()的有用方法,它定位图像中检测到的每个人脸的坐标(左、下、右、上)。使用这些位置值,我们可以很容易地找到脸编码。
face_locat源代ions = fr.face_locations(image)
face_encodings = fr.face_encodings(image, face_locations)
我们循环遍历每个面部位置及其在图像中的编码。然后,我们将这种编码与“列车”数据集中的人脸编码进行比较。
然后计算人脸距离,即计算测试图像编码和训练图像编码之间的相似性。现在,我们从它选取最小值距离码」,表示测试图像的这张脸是训练数据集中的人之一。
现在,使用CV2模块中的方法绘制一个带有面部位置坐标的矩形。
for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings):
matches = fr.compare_faces(known_name_encodings, fac用Pe_encoding)
name = ""
face_distances = fr.face_distance(known_name_encodings, face_encoding)
best_match = np.argmin(face_distances)
if matches[best_match]:
name = known_names[best_match]
cv2.rectangytle(image, (left, top), (right, bottom), (0, 0, 255), 2)
cv2.rectangle(image, (left, bottom - 15), (right, bottom), (0, 0, 255), cv2.FILLED)
font = cv2.FONT_HERSHEY_DUPLEX
cv2.putText(image, name, (left + 6, bohottom - 6), font, 1.0, (255, 255, 255), 1)
使用CV2模块的imShow()方法显示图像。
cv2.imshow("Result", image)
使用imwrite()方法将图像保存到当前工作目录中。
cv2.imwrite("./output.jpg", image)
释放未被释放的资源(如果有的话)。
cv2.waitKey(0)
cv2.destn进royAllWindows()
Python人脸识别输出
让我们看看模型的输出。
- ·标签: 美团 网络餐饮 食品安全 明厨亮灶
- ·凉拌菜怎么做
- ·推特收购社交播客应用Breaker 后者播客服务将于1月15日关闭
- ·英特尔开盘涨超11% 此前消息称公司CEO将于2月15日离职
- ·微软大力推广 NPU,消费者却难以找到购买理由
- ·LiblibAI 完成 1.3 亿美元融资,红杉中国领投
- ·邱跃鹏出任腾讯云与智慧产业事业群COO SAP前中国区总经理李强加盟
- ·Anthropic 推出 Claude “Skills”系统 支持 Excel、PPT 自动生成与自定义模块
- ·巴黎奥运会将基于阿里云实现云上转播
- ·标签: 腾讯 微信小店 混元 腾讯广告AIM+
- ·标签: 理想汽车 2026年Q1财报 新能源汽车 AI技术
- ·阿里云支持吉利星睿智算中心算力效率提升,智驾模型训练提速200倍
- ·谷歌AI搜索模式重磅扩展!新增5种语言支持,全球用户迎来智能搜索新体验
- ·押注AI与数据中心:谷歌领跑,科技巨头加码欧洲市场
- ·阿里通义千问Qwen3-Max 在官网上线深度思考功能
- ·美团推出开源大模型LongCat:旨在赋能开发者,加速AI应用落地
- ·https://www.impactpool.org/search/?type=79&q=谷歌收录霸屏【tg:seogoogle987】RMh
- ·https://www.mingwai.edu.hk/?langzh-hant&s=谷歌收录霸屏【tg:seogoogle987】,LUC
- ·https://www.mygrandma.com/Items.aspx?search=谷歌收录霸屏【tg:seogoogle987】,NBE
- ·https://www.whiterock2008.com.tw/search?q=谷歌收录霸屏【tg:seogoogle987】,6N6
- ·https://www.teamlab.art/fr/?submit=谷歌收录霸屏【tg:seogoogle987】,VgP
- ·https://yokohama-oht.com/?action=CHECK&s=谷歌收录霸屏【tg:seogoogle987】,1Xb
- ·https://www.metaltix.com/?view=tours&filter=search&q=谷歌收录霸屏【tg:seogoogle987】,AZ9
- ·https://www.londontheatredirect.com/search/谷歌收录霸屏【tg:seogoogle987】,krS
- ·https://www.voices.com/talents/search?keywords=谷歌收录霸屏【tg:seogoogle987】,IgS
- ·https://www.sic-info.org/vi/?s=谷歌收录霸屏【tg:seogoogle987】,srb
