返回顶部
首页 > 资讯 > 后端开发 > Python >Python几行代码即可实现人脸识别
  • 311
分享到

Python几行代码即可实现人脸识别

2024-04-02 19:04:59 311人浏览 安东尼

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

摘要

摘要:一行代码实现人脸识别 首先你需要提供一个文件夹,里面是所有你希望系统认识的人的图片。其中每个人一张图片,图片以人的名字命名。 接下来,你需要准备另一个文件夹,

摘要:一行代码实现人脸识别

  • 首先你需要提供一个文件夹,里面是所有你希望系统认识的人的图片。其中每个人一张图片,图片以人的名字命名。
  • 接下来,你需要准备另一个文件夹,里面是你要识别的图片。
  • 然后你就可以运行face_recognition命令了,把刚刚准备的两个文件夹作为参数传入,命令就会返回需要识别的图片中都出现了谁,一行代码足以!!!

正文:

环境要求:

环境搭建:

1.安装 Ubuntu17.10 > 安装步骤在这里

2.安装 Python2.7.14 (Ubuntu17.10 默认Python版本为2.7.14)

3.安装 git 、cmake 、 python-pip


#安装 git
$ sudo apt-get install -y git
# 安装 cmake
$ sudo apt-get install -y cmake
# 安装 python-pip
$ sudo apt-get install -y python-pip

4.安装编译dlib

安装face_recognition这个之前需要先安装编译dlib


# 编译dlib前先安装 boost
$ sudo apt-get install libboost-all-dev
 
# 开始编译dlib
# 克隆dlib源代码
$ git clone https://GitHub.com/davisking/dlib.git
$ cd dlib
$ mkdir build
$ cd build
$ cmake .. -DDLIB_USE_CUDA=0 -DUSE_AVX_INSTRUCTIONS=1
$ cmake --build .(注意中间有个空格)
$ cd ..
$ python setup.py install --yes USE_AVX_INSTRUCTIONS --no   DLIB_USE_CUDA

5.安装 face_recognition


# 安装 face_recognition
$ pip install face_recognition
# 安装face_recognition过程中会自动安装 numpy、scipy 等

环境搭建完成后,在终端输入 face_recognition 命令查看是否成功

实现人脸识别:

示例一(1行代码实现人脸识别)

1.首先你需要提供一个文件夹,里面是所有你希望系统认识的人的图片。其中每个人一张图片,图片以人的名字命名:

known_people文件夹下有babe、成龙、容祖儿的照片

2.接下来,你需要准备另一个文件夹,里面是你要识别的图片: unknown_pic文件夹下是要识别的图片,其中韩红是机器不认识的

3.然后你就可以运行face_recognition命令了,把刚刚准备的两个文件夹作为参数传入,命令就会返回需要识别的图片中都出现了谁:

识别成功!!!

示例二(识别图片中的所有人脸并显示出来)


 # filename : find_faces_in_picture.py
 # -*- coding: utf-8 -*-
 # 导入pil模块 ,可用命令安装 apt-get install python-Imaging
 from PIL import Image
 # 导入face_recogntion模块,可用命令安装 pip install face_recognition
 import face_recognition
 
 # 将jpg文件加载到numpy 数组中
image = face_recognition.load_image_file("/opt/face/unknown_pic/all_star.jpg")
 
 # 使用默认的给予HOG模型查找图像中所有人脸
 # 这个方法已经相当准确了,但还是不如CNN模型那么准确,因为没有使用GPU加速
 # 另请参见: find_faces_in_picture_cnn.py
face_locations = face_recognition.face_locations(image)
 
 # 使用CNN模型
 # face_locations = face_recognition.face_locations(image, number_of_times_to_upsample=0, model="cnn")
 
 # 打印:我从图片中找到了 多少 张人脸
print("I found {} face(s) in this photograph.".fORMat(len(face_locations)))
 
 # 循环找到的所有人脸
 for face_location in face_locations:
 
        # 打印每张脸的位置信息
        top, right, bottom, left = face_location
        print("A face is located at pixel location Top: {}, Left: {}, Bottom: {}, Right: {}".format(top, left, bottom, right))
 
        # 指定人脸的位置信息,然后显示人脸图片
        face_image = image[top:bottom, left:right]
        pil_image = Image.fromarray(face_image)
        pil_image.show()

如下图为用于识别的图片


 # 执行python文件
$ python find_faces_in_picture.py

从图片中识别出7张人脸,并显示出来,如下图

示例三(自动识别人脸特征)


 # filename : find_facial_features_in_picture.py
 # -*- coding: utf-8 -*-
 # 导入pil模块 ,可用命令安装 apt-get install python-Imaging
from PIL import Image, ImageDraw
 # 导入face_recogntion模块,可用命令安装 pip install face_recognition
import face_recognition
 
 # 将jpg文件加载到numpy 数组中
image = face_recognition.load_image_file("biden.jpg")
 
#查找图像中所有面部的所有面部特征
face_landmarks_list = face_recognition.face_landmarks(image)
 
print("I found {} face(s) in this photograph.".format(len(face_landmarks_list)))
 
for face_landmarks in face_landmarks_list:
 
   #打印此图像中每个面部特征的位置
    facial_features = [
        'chin',
        'left_eyebrow',
        'right_eyebrow',
        'nose_bridge',
        'nose_tip',
        'left_eye',
        'right_eye',
        'top_lip',
        'bottom_lip'
    ]
 
    for facial_feature in facial_features:
        print("The {} in this face has the following points: {}".format(facial_feature, face_landmarks[facial_feature]))
 
   #让我们在图像中描绘出每个人脸特征!
    pil_image = Image.fromarray(image)
    d = ImageDraw.Draw(pil_image)
 
    for facial_feature in facial_features:
        d.line(face_landmarks[facial_feature], width=5)
 
    pil_image.show()

自动识别出人脸特征(轮廓)

示例四(识别人脸鉴定是哪个人)


 # filename : recognize_faces_in_pictures.py
 # -*- conding: utf-8 -*-
 # 导入face_recogntion模块,可用命令安装 pip install face_recognition
import face_recognition
 
 #将jpg文件加载到numpy数组中
babe_image = face_recognition.load_image_file("/opt/face/known_people/babe.jpeg")
Rong_zhu_er_image = face_recognition.load_image_file("/opt/face/known_people/Rong zhu er.jpg")
unknown_image = face_recognition.load_image_file("/opt/face/unknown_pic/babe2.jpg")
 
 #获取每个图像文件中每个面部的面部编码
 #由于每个图像中可能有多个面,所以返回一个编码列表。
 #但是由于我知道每个图像只有一个脸,我只关心每个图像中的第一个编码,所以我取索引0。
babe_face_encoding = face_recognition.face_encodings(babe_image)[0]
Rong_zhu_er_face_encoding = face_recognition.face_encodings(Rong_zhu_er_image)[0]
unknown_face_encoding = face_recognition.face_encodings(unknown_image)[0]
 
known_faces = [
    babe_face_encoding,
    Rong_zhu_er_face_encoding
]
 
 #结果是True/false的数组,未知面孔known_faces阵列中的任何人相匹配的结果
results = face_recognition.compare_faces(known_faces, unknown_face_encoding)
 
print("这个未知面孔是 Babe 吗? {}".format(results[0]))
print("这个未知面孔是 容祖儿 吗? {}".format(results[1]))
print("这个未知面孔是 我们从未见过的新面孔吗? {}".format(not True in results))

显示结果下如图

示例五(识别人脸特征并美颜)


 # filename : digital_makeup.py
 # -*- coding: utf-8 -*-
 # 导入pil模块 ,可用命令安装 apt-get install python-Imaging
from PIL import Image, ImageDraw
 # 导入face_recogntion模块,可用命令安装 pip install face_recognition
import face_recognition
 
#将jpg文件加载到numpy数组中
image = face_recognition.load_image_file("biden.jpg")
 
#查找图像中所有面部的所有面部特征
face_landmarks_list = face_recognition.face_landmarks(image)
 
for face_landmarks in face_landmarks_list:
    pil_image = Image.fromarray(image)
    d = ImageDraw.Draw(pil_image, 'RGBA')
 
    #让眉毛变成了一场噩梦
    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), width=6)
 
    pil_image.show()

美颜前后对比如下图:

结尾:

以上就是本文的全部内容了,大家喜欢的记得点点赞!

到此这篇关于Python 几行代码即可实现人脸识别 的文章就介绍到这了,更多相关Python 人脸识别内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python几行代码即可实现人脸识别

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

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

猜你喜欢
  • Python几行代码即可实现人脸识别
    摘要:一行代码实现人脸识别 首先你需要提供一个文件夹,里面是所有你希望系统认识的人的图片。其中每个人一张图片,图片以人的名字命名。 接下来,你需要准备另一个文件夹,...
    99+
    2024-04-02
  • python实现人脸识别代码
    从实时视频流中识别出人脸区域,从原理上看,其依然属于机器学习的领域之一,本质上与谷歌利用深度学习识别出猫没有什么区别。程序通过大量的人脸图片数据进行训练,利用数学算法建立建立可靠的人脸特征模型,如此即可识别...
    99+
    2022-06-04
    代码 python
  • Python 40行代码实现人脸识别功能
    前言 很多人都认为人脸识别是一项非常难以实现的工作,看到名字就害怕,然后心怀忐忑到网上一搜,看到网上N页的教程立马就放弃了。这些人里包括曾经的我自己。其实如果如果你不是非要深究其中的原理,只是要实现这一工作...
    99+
    2022-06-04
    代码 功能 Python
  • 3行Python代码完成人脸识别
    Face Recognition软件包这是世界上最简单的人脸识别库了。你可以通过Python引用或者命令行的形式使用它,来管理和识别人脸。该软件包使用dlib中最先进的人脸识别深度学习算法,使得识别准确率在《Labled Faces in ...
    99+
    2023-01-31
    代码 Python
  • 怎么用Python代码实现人脸识别
    这篇文章主要介绍“怎么用Python代码实现人脸识别”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用Python代码实现人脸识别”文章能帮助大家解决问题。正文:环境要求:Ubuntu17.10P...
    99+
    2023-06-29
  • Python实现人脸识别
    使用到的库: dlib+Opencv python版本: 3.8 编译环境: Jupyter Notebook (Anaconda3) 0.Dlib人脸特征检测原理 提取特征点:首选...
    99+
    2024-04-02
  • Python三十行代码实现简单人脸识别的示例代码
    一、库介绍 opencv,face_recognition,numpy,以及dlib 注意: 安装opencv速度可能过慢,需要更换国内镜像源,参考:https://www.jb...
    99+
    2024-04-02
  • 人脸识别实战之Opencv+SVM实现人脸识别
    目录前言项目结构编码训练人脸识别模型识别图像中的人脸摄像头识别人脸前言 在本文中,您将学习如何使用 OpenCV 进行人脸识别。文章分三部分介绍: 第一,将首先执行人脸检测,使用深度...
    99+
    2024-04-02
  • 人脸识别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实现的简单人脸识别代码示例
    # 源码如下: #!/usr/bin/env python #coding=utf-8 import os from PIL import Image, ImageDraw import cv def...
    99+
    2022-06-04
    示例 代码 简单
  • 教你如何用Python实现人脸识别(含源代码)
    工具与图书馆 Python-3.x CV2-4.5.2 矮胖-1.20.3 人脸识别-1.3.0 若要安装上述软件包,请使用以下命令。 pip...
    99+
    2024-04-02
  • Python实现人脸识别并进行视频跟踪打码
    目录前言准备工作代码实战效果展示前言 事情是这样的,昨天去表弟家,用了下他的电脑,不小心点到了他硬盘里隐藏的秘密,本来我只需要用几分钟电脑的,害得我硬是在电脑旁坐了几个小时~ 还好他...
    99+
    2023-03-06
    Python人脸识别 Python视频打码 Python人脸识别 视频打码
  • OpenCV实现人脸识别
    主要有以下步骤: 1、人脸检测 2、人脸预处理 3、从收集的人脸训练机器学习算法 4、人脸识别 5、收尾工作 人脸检测算法: 基于Haar的脸部检测器的基本思想是,对于面部正面大部分区域而言,会有眼睛所在区...
    99+
    2022-06-04
    OpenCV
  • 怎么用Python实现人脸识别
    这篇文章主要讲解了“怎么用Python实现人脸识别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python实现人脸识别”吧!安装最好是使用 Linux 或 Mac 环境来安装,Win...
    99+
    2023-06-02
  • uniapp实现人脸识别功能的具体实现代码
    目录前言问题解决办法详细实现思路具体代码总结前言 对于前端来说,需要后端提供一个人脸识别接口,前端传入图片,接口识别并返回结果,如此看来,其实前端只需实现图片传入即可,但是其实不然,...
    99+
    2022-12-08
    uniapp 人脸识别 uniapp小程序人脸识别 uniapp人脸识别功能
  • Python如何实现人脸识别系统
    小编给大家分享一下Python如何实现人脸识别系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!基本原理人脸识别和目标检测这些还不太一样,比如大家传统的训练一个目...
    99+
    2023-06-26
  • Python 人脸识别实现(三种方式)
    所有涉及的配置文件(xml,dat)存储在这里: https://jhc001.lanzoub.com/iyaeo0w8jkgb 密码:JDBC 所有 sdk 包下内容均为自定义,跑不了直接自己改输入...
    99+
    2023-10-18
    python opencv 计算机视觉
  • python使用opencv进行人脸识别
    环境 ubuntu 12.04 LTS python 2.7.3 opencv 2.3.1-7 安装依赖 sudo apt-get install libopencv-* sudo apt-get in...
    99+
    2022-06-04
    python opencv
  • Python如何实现人脸识别并进行视频跟踪打码
    这篇文章主要介绍了Python如何实现人脸识别并进行视频跟踪打码的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python如何实现人脸识别并进行视频跟踪打码文章都会有所收获,下面我们一起来看看吧。准备工作首先需...
    99+
    2023-07-05
  • 人脸识别经典网络-MTCNN(含Python源码实现)
    人脸检测-mtcnn 本文参加新星计划人工智能赛道:https://bbs.csdn.net/topics/613989052 文章目录 人脸检测-mtcnn1. 人脸检测1.1 人脸检测概述...
    99+
    2023-08-31
    python 人工智能 人脸识别 卷积神经网络 cnn
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作