Python可以从图像或视频中检测和识别你的脸。

人脸检测与识别是计算机视觉领域的研究热点之一。

人脸识别的应用包括人脸解锁、安全防护等,医生和医务人员利用人脸识别来获取病历和病史,更好地诊断疾病。

关于Python人脸识别

在这个python项目中,我们将构建一个机器学习模型,该模型从图像中识别人。我们在项目中使用了人脸识别API和OpenCV。

随时了解最新的技术趋势

加入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 install face_recognition

下载人脸识别Python代码 ↓

人脸识别腾讯文档-空白页https://docs.qq.com/doc/DU09oY1BORlh5dVh4

项目数据集

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

建立人脸识别模型的步骤

在继续之前,让我们知道什么是人脸识别和检测。

人脸识别是从照片和视频帧中识别或验证一个人的脸的过程。

人脸检测是指在图像中定位和提取人脸(位置和大小)以供人脸检测算法使用的过程。

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

OpenCV是一个用C++编写的开源库.它包含了用于计算机视觉任务的各种算法和深度神经网络的实现。

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_locations = 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, face_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.rectangle(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_DUPLEXcv2.putText(image, name, (left + 6, bottom - 6), font, 1.0, (255, 255, 255), 1)

使用CV2模块的imShow()方法显示图像。

cv2.imshow("Result", image)

使用imwrite()方法将图像保存到当前工作目录中。

cv2.imwrite("./output.jpg", image)

释放未被释放的资源(如果有的话)。

cv2.waitKey(0)
cv2.destroyAllWindows()

Python人脸识别输出

让我们看看模型的输出。

用Python进行人脸识别「包括源代码」相关推荐

  1. python人脸识别门禁系统毕设_开源|手把手教你用Python进行人脸识别(附源代码)...

    原标题:开源|手把手教你用Python进行人脸识别(附源代码) 全球人工智能 来源:Github 翻译:黄玮 想要了解目前世界上最简洁的人脸识别库吗?现在小编带大家来学习使用Python语言或命令行进 ...

  2. python实现人脸识别抓取人脸并做成熊猫头表情包(2)之优化

    上次做完python实现人脸识别抓取人脸并做成熊猫头表情包之后就放了一下,因为还要好好学习Springboot毕竟这才是找工作的硬实力.但是优化这个代码心里面一直很想,借用<clean code ...

  3. python人脸识别训练模型_开源 | 基于Python的人脸识别:识别准确率高达99.38%!

    原标题:开源 | 基于Python的人脸识别:识别准确率高达99.38%! 该库使用 dlib 顶尖的深度学习人脸识别技术构建,在户外脸部检测数据库基准(Labeled Faces in the Wi ...

  4. 基于Python的人脸识别课堂考勤系统(毕设)

    一个菜鸟搞毕业设计的过程分享,可能对迷茫的你起到一点点作用! 序言 在着手开发项目之前我们一定要对系统进行一个初步的规划,比如系统可以实现什么功能,是否需要开发GUI页面(大部分导师都会让你搞一个,仅 ...

  5. 基于Python的人脸识别考勤系统

    基于Python的人脸识别考勤系统 Python源文件: 基于Python3.7编程环境开发 需要安装 tkinter pil face_recognition OpenCV2 库来实现人脸识别 需要 ...

  6. 基于python opencv人脸识别的签到系统

    基于python opencv人脸识别的签到系统 前言 先看下效果 实现的功能 开始准备 页面的构建 功能实现 代码部分 总结 前言 一个基于opencv人脸识别和TensorFlow进行模型训练的人 ...

  7. python学习之基于Python的人脸识别技术学习

    摘要: 面部识别技术的应用越来越广泛,它广泛应用于安全系统.人机交互.社交媒体.医疗保健等领域.本文介绍了基于Python的人脸识别技术,包括人脸检测.人脸特征提取和人脸识别三个部分.我们使用Open ...

  8. python实现人脸识别_python人脸识别代码实现丨内附代码

    Python在人脸识别方面功能很强大,程序语言简单高效,下面小编来编程实现一下如何实现人脸识别.如有错点,还望斧正 识别图片中的人脸位置 #人脸识别分类器路径tool_url = r'C:\Users ...

  9. python实现人脸识别比对_人脸识别并比对实现(基于face_recognition)

    Face Recognition 是一个基于python的人脸识别框架,我们在此之上来实现人脸比对. 环境要求 Python 3.3+ or Python 2.7 macOS or Linux (Wi ...

最新文章

  1. 线上直播丨KDD 2021预训练Workshop,谷歌MSRA等5位顶尖研究者参与研讨
  2. 知乎完成 2.7 亿美元 E 轮融资 加速建设全民知识内容平台(附周源全员邮件全文)...
  3. GNN笔记:图信号处理(Graph Signal Processing)
  4. 受用一生的高效 PyCharm 使用技巧(二)
  5. (八)React原理
  6. Oracle-1:的列操作(增加列,修改列,删除列),包括操作多列
  7. GNU make manual 翻译(五十二)
  8. 初中科技节计算机,初中科技节活动方案.doc
  9. 机载L波段卫星通信-市场现状及未来发展趋势
  10. 视频监控安防平台-GB35114和GB28181的注册信令
  11. Spring 常用的注解
  12. matlab 时间轴 绘图,时间轴制作超详细教程,助你轻松画出专业时间轴!
  13. JAVA初中作品_美术作品大全初中生
  14. STM32F407VET6读写GD25Q16(W25Q16)
  15. 拼多多活动期间流量布局-四川万顿思
  16. 【PyTorch】如何取得预训练模型的标签label列表(以 Alexnet 在 ImageNet 上的预训练模型为例)
  17. 在设备上开启telnet服务
  18. 讲道理 | 特征值和特征向量意义
  19. 掌握这六步,搭建完美的机器学习项目
  20. Java按回车键继续代码

热门文章

  1. EPRI_Opendss 电力系统配电网仿真软件OpenDSS视频教程合集
  2. mobaXterm连接虚拟机后不能拖拽上传文件
  3. 音频中文件大小计算公式(转)
  4. 了解常见 SQL 查询优化技巧
  5. 专访微软邓力:语音识别与非监督深度学习、增强学习、词嵌入、类脑智能
  6. (转)微信获取到的经纬度坐标不精准的问题
  7. 浪潮发布新一代主机天梭M13 可承载大型机应用
  8. 应急响应----第三方服务
  9. 客户机是如何用Telnet访问交换机
  10. 5.1 类、超类和子类