python 通过opencv及face_recognition识别人脸

这篇具有很好参考价值的文章主要介绍了python 通过opencv及face_recognition识别人脸。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

效果:

使用Python的cv2库和face_recognition库来进行人脸检测和比对的
0是代表一样
python 通过opencv及face_recognition识别人脸,机器学习,python,opencv,python,计算机视觉认为是同一人。
python 通过opencv及face_recognition识别人脸,机器学习,python,opencv,python,计算机视觉文章来源地址https://www.toymoban.com/news/detail-773486.html

代码:

pip install opencv-python
pip install face_recognition
# 导入cv2库,用于图像处理
import cv2
# 导入face_recognition库,用于人脸识别
import face_recognition

# 使用face_recognition库加载名为'face1.jpeg'的图片,并存储在reference_image变量中
reference_image = face_recognition.load_image_file('face1.jpeg')
# 使用cv2库将BGR彩色图像转化为RGB彩色图像,因为face_recognition库需要RGB格式的图像
reference_image = cv2.cvtColor(reference_image, cv2.COLOR_BGR2RGB)

# 同样地,加载另一张名为'face3.jpg'的图片,并存储在test_image变量中
test_image = face_recognition.load_image_file('face3.jpg')
# 也将其从BGR格式转化为RGB格式
test_image = cv2.cvtColor(test_image, cv2.COLOR_BGR2RGB)

# 使用face_recognition库定位reference_image图片中的人脸位置,返回的是一个列表,其中每个元素代表一个人脸的位置
# 这里我们假设只有一个人脸,所以直接取第一个元素
reference_face_location = face_recognition.face_locations(reference_image)[0]
# 提取reference_image图片中人脸的面部特征,返回一个列表,每个元素代表一个人脸的特征编码
# 同样地,我们假设只有一个人脸,所以直接取第一个元素
reference_face_encoding = face_recognition.face_encodings(reference_image)[0]

# 在reference_image图片上框出人脸位置,使用紫色矩形框表示
cv2.rectangle(reference_image, (reference_face_location[3], reference_face_location[0]),
              (reference_face_location[1], reference_face_location[2]), (255, 0, 255), 2)

# 对另一张图片test_image也做同样的人脸定位和特征提取操作
test_face_location = face_recognition.face_locations(test_image)[0]
test_face_encoding = face_recognition.face_encodings(test_image)[0]
# 在test_image图片上也框出人脸位置
cv2.rectangle(test_image, (test_face_location[3], test_face_location[0]),
              (test_face_location[1], test_face_location[2]), (255, 0, 255), 2)

# 使用face_recognition库比较两个人脸的相似度,返回一个布尔值列表,表示每张测试图片是否与已知人脸匹配
# 这里我们只有一个测试人脸和一个已知人脸,所以直接取列表的第一个元素作为结果
is_same_person = face_recognition.compare_faces([reference_face_encoding], test_face_encoding)[0]
# 计算两个人脸的欧氏距离,返回一个浮点数列表,表示每张测试图片与已知人脸的距离
# 同样地,我们直接取第一个元素作为结果
euclidean_distance = face_recognition.face_distance([reference_face_encoding], test_face_encoding)[0]

# 打印相似度结果和欧氏距离
print(is_same_person, euclidean_distance)
# 在test_image图片上显示比对结果,包括相似度(True或False)和欧氏距离(保留两位小数)
cv2.putText(test_image, f'{is_same_person}{round(euclidean_distance, 2)}', (50, 50), cv2.FONT_HERSHEY_COMPLEX, 1,
            (0, 0, 255), 2)

# 使用cv2库的imshow函数显示两张图片,分别命名为'Driver'和'Operator'
cv2.imshow('Driver', reference_image)
cv2.imshow('Operator', test_image)

# 等待用户按键操作,参数0表示无限等待,直到用户按下一个键
key = cv2.waitKey(0)
# 如果用户按下的是ESC键(ASCII码为27),则关闭所有打开的窗口
if key == 27:
    cv2.destroyAllWindows()

到了这里,关于python 通过opencv及face_recognition识别人脸的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人脸识别2:InsightFace实现人脸识别Face Recognition(含源码下载)

    目录 人脸识别2:InsightFace实现人脸识别Face Recognition(含源码下载) 1. 前言 2. 项目安装 3. 人脸识别系统 (1)人脸检测和关键点检测 (2)人脸校准 (3)人脸特征提取 (4)人脸比对(1:1) (5)人脸搜索(1:N) (6)配置文件config (7)人脸识别优化建议 4. 人脸识别Demo效果 5. 人脸识

    2024年02月05日
    浏览(37)
  • 人脸识别3:C/C++ InsightFace实现人脸识别Face Recognition(含源码)

    目录 1. 前言 2. 项目安装 (1)项目结构 (2)配置开发环境(OpenCV+OpenCL+base-utils+TNN) (3)部署TNN模型 (4)CMake配置 (5)编译运行  3. 人脸识别系统 (1)人脸识别的核心算法 (2)人脸检测和关键点检测 (3)人脸校准 (4)人脸特征提取 (5)人脸比对(1:1) (6)人脸搜索(1

    2024年02月07日
    浏览(35)
  • 通过Python的speech_recognition库将声音转为文字

    大家好,我是空空star,本篇给大家分享一下通过Python的speech_recognition库将声音转为文字。 之前已经介绍了将音频文件转为文字,只依赖 speech_recognition 库,本篇将声音转为文字,除了 speech_recognition 库,还要依赖 pyaudio 库,而且mac用户需要安装 PortAudio 。 Python-语音转文字相关

    2024年02月05日
    浏览(29)
  • 通过Python的speech_recognition库将音频文件转为文字

    大家好,我是空空star,本篇给大家分享一下通过Python的speech_recognition库将音频文件转为文字。 上一篇已经介绍了相关的库 speech_recognition 。 通过Python的speech_recognition库将音频文件转为文字 Python-语音转文字相关库介绍 这里我们通过gTTS先生成一段音频,gTTS相关的介绍可以看博

    2024年02月03日
    浏览(30)
  • OpenCV中LBPH人脸识别器识别人脸实战(附Python源码)

    需要源码和图片请点赞关注收藏后评论区留言私信~~~ Local Binary Pattern Histofram简称LBPH,即局部二进制模式直方图,这是一种基于局部二进制模式算法,这种算法善于捕获局部纹理特征 开发者需要通过以下三种方法来完成人脸识别操作 1:通过cv2.face.LBPHFaceRecognizer_create()方法创

    2024年02月10日
    浏览(43)
  • 使用OpenCV与深度学习从视频和图像中精准识别人脸: Python实践指南

    第一部分: 引言与背景 人脸识别已经成为了当代技术领域中最热门和广泛应用的话题之一。从智能手机的解锁功能到机场的安全检查,人脸识别技术无处不在。在这篇文章中,我们将使用Python中的OpenCV库和深度学习模型,深入探讨如何从视频和图像中精确地识别人脸。 OpenC

    2024年02月12日
    浏览(37)
  • OpenCV识别人脸案例实战

    在OpenCV中,人脸检测使用的是cv2.CascadeClassifier.detectMultiScale()函数,它可以检测出图片中所有的人脸。该函数由分类器对象调用,其语法格式为: objects = cv2.CascadeClassifier.detectMultiScale( image[, scaleFactor[,  minNeighbors[, flags[, minSize[, maxSize]]]]] ) 式中各个参数及返回值的含义为: i

    2024年02月19日
    浏览(26)
  • C# 使用opencv从图片识别人脸示例

        需要安装Emgu.CV(编译时用)和Emgu.CV.runtime.windows(运行时用,不然会报缺少dll)  DllNotFoundException: Unable to load DLL \\\'cvextern\\\' or one of its dependenci 准备https://codeload.github.com/opencv/opencv/zip/refs/tags/4.8.0 解压后需要这个文件D:\\\\test\\\\opencv-4.8.0\\\\data\\\\haarcascades\\\\haarcascade_frontalface_default.xml 准

    2024年02月15日
    浏览(42)
  • Face Mesh,采用机器学习,打造人脸3D表面动态轮廓

    MediaPipe Face Mesh是一种脸部几何解决方案,即使在移动设备上,也可以实时估计468个3D脸部界标。它采用机器学习(ML)来推断3D表面几何形状,只需要单个摄像机输入,而无需专用的深度传感器。该解决方案利用轻量级的模型架构以及整个管线中的GPU加速,可提供对实时体验至

    2024年02月08日
    浏览(26)
  • opencv:报错解决:cv2.face.LBPHFaceRecognizer_create() AttributeError: module ‘cv2‘ has no attribute ‘face

    ( 可以直接跳过这一段 ):真的很激动啊,这个问题我搞了至少两个小时。先让我描述一下这个过程当我在b站上学习了opencv的人脸识别:读取图片、图片灰度化、修改图片尺寸、绘制矩形框、检测单or多张人脸、检测视频中的人脸都没有问题时!我卡在了 训练数据 这一块。

    2023年04月25日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包