iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >怎么用Python实现人脸识别
  • 810
分享到

怎么用Python实现人脸识别

2023-06-02 02:06:42 810人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要讲解了“怎么用python实现人脸识别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python实现人脸识别”吧!安装最好是使用 linux 或 Mac 环境来安装,win

这篇文章主要讲解了“怎么用python实现人脸识别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python实现人脸识别”吧!

安装

最好是使用 linuxMac 环境来安装,windows 下安装会有很多问题。在安装 face_recognition 之前你需要先安装以下几个库,注意顺序!

1 先安装 cmake 和 boost

pip install cmakepip install boost

2 安装 dlib

pip install dlib

此处安装可能要几分钟。如安装出错,建议使用 whl 文件来安装

3 安装 face_recognition

face_recongnition 一般要配合 OpenCV 一起使用

pip install face_recognitionpip install opencv-python

人脸识别

比如这里总共有三张图片,其中有两张已知,第三张是需要识别的图片

怎么用Python实现人脸识别

首先获取人脸中的信息

kobe_image = face_recognition.load_image_file("kobe.jpg") # 已知科比照片jordan_image = face_recognition.load_image_file("jordan.jpeg") # 已知乔丹照片unknown_image = face_recognition.load_image_file("unkown.jpeg") # 未知照片kobe_face_encoding = face_recognition.face_encodings(kobe_image)[0]jordan_face_encoding = face_recognition.face_encodings(jordan_image)[0]unknown_face_encoding = face_recognition.face_encodings(unknown_image)[0]

代码中前三行分别是加载三张图片文件并返回图像的 numpy 数组,后三行返回图像中每个面部的人脸编码

然后将未知图片中的人脸和已知图片中的人脸进行对比,使用 compare_faces() 函数, 代码如下:

known_faces = [ kobe_face_encoding, jordan_face_encoding]results = face_recognition.compare_faces(known_faces, unknown_face_encoding) # 识别结果列表print("这张未知照片是科比吗? {}".fORMat(results[0]))print("这张未知照片是乔丹吗? {}".format(results[1]))

运行结果如下:

怎么用Python实现人脸识别

不到二十行代码,就能识别出人脸是谁,是不是 so easy!

人脸标注

仅仅识别图片中的人脸总是感觉差点什么,那么将识别出来的人脸进行姓名标注是不是更加有趣~

已知图片的识别和前面代码基本是一样的,未知图片代码多了人脸位置的识别,并使用了face_locations() 函数。代码如下:

face_locations = face_recognition.face_locations(unknown_image)face_encodings = face_recognition.face_encodings(unknown_image, face_locations)

函数传入两个参数,返回以上,右,下,左固定顺序的脸部位置列表的作用是将已知脸部位置和未知面部编码进行比较,得到欧式距离~~~具体是什么我也不知道,距离就相当于相识度。

函数说明:face_distance(face_encodings, face_to_compare)

face_encodings:已知的面部编码

face_to_compare:要比较的面部编码

本次图片前面两张没有变化,第三张换成了科比和乔丹的合影,最终运行之后结果如下:

怎么用Python实现人脸识别

左边是原图,右边是识别后自动标注出来的图片。

import face_recognitionfrom PIL import Image, ImageDrawimport numpy as npdef draws(): kobe_image = face_recognition.load_image_file("kobe.jpg") kobe_face_encoding = face_recognition.face_encodings(kobe_image)[0] jordan_image = face_recognition.load_image_file("jordan.jpeg") jordan_face_encoding = face_recognition.face_encodings(jordan_image)[0] known_face_encodings = [ kobe_face_encoding, jordan_face_encoding ] known_face_names = [ "Kobe", "Jordan" ] unknown_image = face_recognition.load_image_file("two_people.jpeg") face_locations = face_recognition.face_locations(unknown_image) face_encodings = face_recognition.face_encodings(unknown_image, face_locations) pil_image = Image.fromarray(unknown_image) draw = ImageDraw.Draw(pil_image) for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings): matches = face_recognition.compare_faces(known_face_encodings, face_encoding) name = "Unknown" face_distances = face_recognition.face_distance(known_face_encodings, face_encoding) best_match_index = np.argmin(face_distances) if matches[best_match_index]: name = known_face_names[best_match_index] draw.rectangle(((left, top), (right, bottom)), outline=(0, 0, 255)) text_width, text_height = draw.textsize(name) draw.rectangle(((left, bottom - text_height - 10), (right, bottom)), fill=(0, 0, 255), outline=(0, 0, 255)) draw.text((left + 6, bottom - text_height - 5), name, fill=(255, 255, 255, 255)) del draw pil_image.show() pil_image.save("image_with_boxes.jpg")

给人脸美妆

这个功能需要结合 PIL 一起使用。用法都差不多,首先就是将图片文件加载到 numpy 数组中,然后将人脸中的面部所有特征识别到一个列表中

image = face_recognition.load_image_file("bogute.jpeg")face_landmarks_list = face_recognition.face_landmarks(image)

遍历列表中的元素,修改眉毛

d.polyGon(face_landmarks['left_eyebrow'], fill=(68, 54, 39, 128))d.polygon(face_landmarks['right_eyebrow'], fill=(68, 54, 39, 128))d.line(face_landmarks['left_eyebrow'], fill=(68, 54, 39, 150), width=5)d.line(face_landmarks['right_eyebrow'], fill=(68, 54, 39, 150), width=5)

给人脸涂口红

d.polygon(face_landmarks['top_lip'], fill=(150, 0, 0, 128))d.polygon(face_landmarks['bottom_lip'], fill=(150, 0, 0, 128))d.line(face_landmarks['top_lip'], fill=(150, 0, 0, 64), width=8)d.line(face_landmarks['bottom_lip'], fill=(150, 0, 0, 64), width=8)

增加眼线

d.polygon(face_landmarks['left_eye'], fill=(255, 255, 255, 30))d.polygon(face_landmarks['right_eye'], fill=(255, 255, 255, 30))d.line(face_landmarks['left_eye'] + [face_landmarks['left_eye'][0]], fill=(0, 0, 0, 110), width=6)d.line(face_landmarks['right_eye'] + [face_landmarks['right_eye'][0]], fill=(0, 0, 0, 110), wid=6)

根据以上代码做了,我用实力不行,打球又脏的 "大嘴" 博格特来做演示!

左边是原图,右边是加了美妆后的效果

怎么用Python实现人脸识别

感谢各位的阅读,以上就是“怎么用Python实现人脸识别”的内容了,经过本文的学习后,相信大家对怎么用Python实现人脸识别这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 怎么用Python实现人脸识别

本文链接: https://www.lsjlt.com/news/228609.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么用Python实现人脸识别
    这篇文章主要讲解了“怎么用Python实现人脸识别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python实现人脸识别”吧!安装最好是使用 Linux 或 Mac 环境来安装,Win...
    99+
    2023-06-02
  • Python实现人脸识别
    使用到的库: dlib+Opencv python版本: 3.8 编译环境: Jupyter Notebook (Anaconda3) 0.Dlib人脸特征检测原理 提取特征点:首选...
    99+
    2024-04-02
  • 怎么用Python代码实现人脸识别
    这篇文章主要介绍“怎么用Python代码实现人脸识别”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用Python代码实现人脸识别”文章能帮助大家解决问题。正文:环境要求:Ubuntu17.10P...
    99+
    2023-06-29
  • 人脸识别实战之Opencv+SVM实现人脸识别
    目录前言项目结构编码训练人脸识别模型识别图像中的人脸摄像头识别人脸前言 在本文中,您将学习如何使用 OpenCV 进行人脸识别。文章分三部分介绍: 第一,将首先执行人脸检测,使用深度...
    99+
    2024-04-02
  • Python怎么实现AI智能人脸识别
    本篇文章为大家展示了Python怎么实现AI智能人脸识别,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言现在人脸识别这东西层出不穷,基本上很多东西都用到,比如现在火车站都是用人脸识别来过关卡,确实...
    99+
    2023-06-02
  • 怎么使用Python实现简单的人脸识别
    小编给大家分享一下怎么使用Python实现简单的人脸识别,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、首先梳理一下实现人脸识别需要进行的步骤:流程大致如此,在此之前,要先让人脸被准确的找出来,也就是能准确区分人脸的分类...
    99+
    2023-06-14
  • 怎么在python中使用LBPH实现人脸识别
    怎么在python中使用LBPH实现人脸识别?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整...
    99+
    2023-06-14
  • Python中基于Opencv怎么实现人脸识别
    这篇文章主要讲解了“Python中基于Opencv怎么实现人脸识别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中基于Opencv怎么实现人脸识别”吧!检测人脸。这应该是最基本的...
    99+
    2023-06-02
  • Python怎么实现人脸识别微笑检测
    这篇文章主要介绍“Python怎么实现人脸识别微笑检测”,在日常操作中,相信很多人在Python怎么实现人脸识别微笑检测问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python怎么实现人脸识别微笑检测”的疑...
    99+
    2023-06-21
  • 怎么使用Python实现人脸离线识别系统
    本篇内容介绍了“怎么使用Python实现人脸离线识别系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先看看现在的研究现状。如上的发展趋势...
    99+
    2023-07-06
  • Python调用API接口实现人脸识别
    目录准备工作代码流程在开始之前,先问问大家: 什么是百度Aip模块? 百度AI平台提供了很多的API接口供开发者快速的调用运用在项目中本文写的是使用百度AI的**在线接口SDK模块(...
    99+
    2023-02-13
    Python调用API接口 Python 人脸识别
  • 人脸识别java方法怎么实现
    人脸识别是一项复杂的技术,需要使用专业的算法和工具来实现。以下是一些实现人脸识别的Java方法:1. 使用OpenCV库:OpenC...
    99+
    2023-06-11
    人脸识别java java
  • Python 人脸识别 OpenCV (
    ■环境Python 3.6.0Pycharm 2017.1.3 ■库、库的版本OpenCV 3.4.1 (cp36) ■haarcascades下载https://github.com/opencv/opencv/tree/master/d...
    99+
    2023-01-31
    Python OpenCV
  • Python 人脸识别实现(三种方式)
    所有涉及的配置文件(xml,dat)存储在这里: https://jhc001.lanzoub.com/iyaeo0w8jkgb 密码:JDBC 所有 sdk 包下内容均为自定义,跑不了直接自己改输入...
    99+
    2023-10-18
    python opencv 计算机视觉
  • java人脸识别登录怎么实现
    要实现Java人脸识别登录,需要进行以下步骤:1. 收集人脸图像:通过摄像头或者上传照片等方式,收集用户的人脸图像,并将其保存在数据...
    99+
    2023-05-25
    java人脸识别 java
  • 基于Python的人脸识别功能怎么实现
    这篇文章主要介绍“基于Python的人脸识别功能怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于Python的人脸识别功能怎么实现”文章能帮助大家解决问题。一、 人脸检测人脸检测是指从图像...
    99+
    2023-07-05
  • 人脸识别4:Android InsightFace实现人脸识别Face Recognition(含源码)
    人脸识别4:Android InsightFace实现人脸识别Face Recognition(含源码) 目录 人脸识别4:Android InsightFace实现人脸识别Face Recognition(含源码) 1. 前言 2. 项目...
    99+
    2023-08-31
    android 人脸识别 人脸检测 android人脸识别
  • python opencv怎么实现人脸识别考勤系统
    小编给大家分享一下python opencv怎么实现人脸识别考勤系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python可以做什么Python是一种编程语言...
    99+
    2023-06-14
  • Python如何实现人脸识别系统
    小编给大家分享一下Python如何实现人脸识别系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!基本原理人脸识别和目标检测这些还不太一样,比如大家传统的训练一个目...
    99+
    2023-06-26
  • Opencv+SVM怎样实现人脸识别
    Opencv+SVM怎样实现人脸识别,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前言如何使用 OpenCV 进行人脸识别。第一,将首先执行人脸检测,使用深度学习从每个人脸...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作