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

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

正文:

  • 环境要求:

Ubuntu17.10
Python 2.7.14

  • 环境搭建:

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-Imagingfrom PIL import Image# 导入face_recogntion模块,可用命令安装 pip install face_recognitionimport 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_locationprint("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实现人脸识别,一行代码,多种功能,易上手又好操作相关推荐

  1. 实战演示:使用Python编写人脸识别测试代码,让你的应用拥有智能感知能力

    人脸识别是计算机视觉领域的一个重要应用.它使用计算机算法来识别和验证面部特征,通常用于安全认证.视频监控.人脸比对等方面.近年来,随着深度学习技术的发展,人脸识别的性能得到了极大的提升,成为了智能感知 ...

  2. Python实现人脸识别 + 手机推送功能,老板来了你就会收到短信提示

    前言 在你上班的时候刷知乎,看视频,玩手机的时候,老板来了!不用担心,不用着急,基于最新的人脸识别 + 手机推送做出的 BossComing.老板站起来的时候,BossComing 会通过人脸识别发现 ...

  3. python实现人脸识别(face_recognition)

    一.定义 1.介绍 本项目是世界上最强大.简洁的人脸识别库,你可以使用Python和命令行工具提取.识别.操作人脸. 本项目的人脸识别是基于业内领先的C++开源库dlib中的深度学习模型,用Label ...

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

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

  5. python考勤管理系统_python基础教程:face++与python实现人脸识别签到(考勤)功能...

    @本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 这篇文章主要为大家详细介绍了face++与python实现人脸识别签到(考勤)功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一 ...

  6. python基础教程:face++与python实现人脸识别签到(考勤)功能

    @本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 这篇文章主要为大家详细介绍了face++与python实现人脸识别签到(考勤)功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一 ...

  7. python如何做考勤_python基础教程:face++与python实现人脸识别签到(考勤)功能

    @本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 这篇文章主要为大家详细介绍了face++与python实现人脸识别签到(考勤)功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一 ...

  8. python考勤统计_face++与python实现人脸识别签到(考勤)功能

    face++与python实现人脸识别签到(考勤)功能 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  face++与python实现人脸识别签到(考勤)功能.t ...

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

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

  10. 刷脸签到python代码_背景提升|“刷脸”时代,如何运用Python实现人脸识别?

    打开手机,不用输入任何密码,通过"刷脸"就可以轻松打开界面; 走进一家餐厅,即便没有手机和钱包,点餐后就能通过"刷脸"完成支付; 去银行取款,不带银行卡.身份证 ...

最新文章

  1. 在不影响配置下,清除netscreen密码
  2. [POI2007]ZAP-Queries
  3. flac3d命令流实例大全_如何在Linux上使用xargs命令
  4. Unity使用协程技术制作倒计时器
  5. Android基础教程之-------Android中两种设置全屏的方法!!!
  6. mysql pheonix hbase,mybatis连接phoenix操作hbase
  7. 离散数学 习题篇 —— 等价关系的计数
  8. 记录一次安装gaussian09的经历
  9. (20190401)IGS GNSS数据下载网址与下载说明
  10. matlab曲线拟合方法和函数拐点查找
  11. 自助装机配置专家点评3
  12. 使用node.js 脚手架搭建Vue项目
  13. window电脑访问Android照片,解决JPEG照片在windows无法打开
  14. 硅麦 (PDM)转USB接口芯片
  15. SpringBoot项目云端部署
  16. 2023年全国最新会计专业技术资格精选真题及答案34
  17. 小米8系统推送服务器,小米8推送基于Android 10的MIUI 11开发版
  18. 简书APP 使用产品报告
  19. docker 默认配置文件
  20. 单向链表与双向循环链表

热门文章

  1. 搞死SAP系统系列 让系统无法连接数据库
  2. 是你的栈啊-求你了告诉我逆波兰表达式
  3. staring mysql.the_mysql 启动异常失败 Starting MySQL..The server quit without updating PID file
  4. python pip 换源_Python pip换源教程
  5. 刚性捆绑,无线运营新模式
  6. CRM管理软件有哪些?这5款好用的CRM软件值得推荐!
  7. 计算机网络——wireshark抓包
  8. 谷仓(某校老师原创题)
  9. 面经:两年半经验,面10个公司,经28轮面试,拿9个offer,涨麻了!
  10. 快速了解 CMYK印刷色与三原色,CMY三原色为什么要加K黑色?