python人脸识别pdf百度云_开源|手把手教你用Python进行人脸识别(附源代码)

原标题:开源|手把手教你用Python进行人脸识别(附源代码)

全球人工智能

来源:Github 翻译:黄玮

想要了解目前世界上最简洁的人脸识别库吗?现在小编带大家来学习使用Python语言或命令行进行人脸识别的操作。

本文的模型使用了C++工具箱dlib基于深度学习的最新人脸识别方法,基于户外脸部数据测试库Labeled Faces in the Wild 的基准水平来说,达到了99.38%的准确率。

dlib:http://dlib.net/

数据测试库Labeled Faces in the Wild:http://vis-www.cs.umass.edu/lfw/

模型提供了一个简单的face_recognition命令行工具让用户通过命令就能直接使用图片文件夹进行人脸识别操作。

特征

在图片中捕捉人脸

在一张图片中捕捉到所有的人脸

4230ee89663d2ffa214e2b43291263ba.png

找到并处理图片中人脸的特征

找到每个人眼睛、鼻子、嘴巴和下巴的位置和轮廓。

import face_recognitionimage = face_recognition.load_image_file("your_file.jpg")face_locations = face_recognition.face_locations(image)

77d3447f080a9af8eda1d34ad3f0389c.png

捕捉脸部特征有很重要的用途,当然也可以用来进行图片的数字美颜digital make-up(例如美图秀秀)

digital make-up:https://github.com/ageitgey/face_recognition/blob/master/examples/digital_makeup.py

识别图片中的人脸

识别谁出现在照片里

0bce5a6b146f04cabd27aec6ca49e137.png

dbe9d2cd49fb393017b4e6a0bba8f417.png

安装步骤

本方法支持Python3/python2,我们只在macOS和Linux中测试过,还不知是否适用于Windows。

使用pypi的pip3安装此模块(或是Python 2的pip2)

重要提示:在编译dlib时可能会出问题,你可以通过安装来自源(而不是pip)的dlib来修复错误,请见安装手册How to install dlib from source

https://gist.github.com/ageitgey/629d75c1baac34dfa5ca2a1928a7aeaf

通过手动安装dlib,运行pip3 install face_recognition来完成安装。

使用方法命令行界面

当你安装face_recognition,你能得到一个简洁的叫做face_recognition的命令行程序,它能帮你识别一张照片或是一个照片文件夹中的所有人脸。

首先,你需要提供一个包含一张照片的文件夹,并且你已经知道照片中的人是谁,每个人都要有一张照片文件,且文件名需要以该人的姓名命名;

688d04b9b558386aff8d9481d5dcb4e8.png

然后你需要准备另外一个文件夹,里面装有你想要识别人脸照片;

6f1f1b3b3154416050a7a857f4079b9c.png

接下来你只用运行face_recognition命令,程序能够通过已知人脸的文件夹识别出未知人脸照片中的人是谁;

0a37083474c7c30400c0e971cd3a782b.png

针对每个人脸都要一行输出,数据是文件名加上识别到的人名,以逗号分隔。

如果你只是想要知道每个照片中的人名而不要文件名,可以进行如下操作:

8ba8407b1496b10abe46b2268a789075.png

Python模块

你可以通过引入face_recognition就能完成人脸识别操作:

API 文档:https://face-recognition.readthedocs.io.

在图片中自动识别所有人脸

请参照此案例this example:https://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_picture.py

识别图片中的人脸并告知姓名

请参照此案例this example:https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_pictures.py

Python代码案例

所有例子在此 here.

https://github.com/ageitgey/face_recognition/tree/master/examples

·找到照片中的人脸Find faces in a photograph

https://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_picture.py

·识别照片中的面部特征Identify specific facial features in a photograph

https://github.com/ageitgey/face_recognition/blob/master/examples/find_facial_features_in_picture.py

·使用数字美颜Apply (horribly ugly) digital make-up

https://github.com/ageitgey/face_recognition/blob/master/examples/digital_makeup.py

·基于已知人名找到并识别出照片中的未知人脸Find and recognize unknown faces in a photograph based on photographs of known people

https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_pictures.py

人脸识别方法的原理

如果你想学习此方法的人脸定位和识别原理,请参见read my article。

https://medium.com/@ageitgey/machine-learning-is-fun-part-4-modern-face-recognition-with-deep-learning-c3cffc121d78注意事项

·本人脸识别模型仅限用于成人,对于儿童来说效果不佳,模型可能会由于使用默认的对比阈值(0.6)而无法清楚识别出儿童的脸。

热门文章推荐

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我知道你的问题了。关于Python实现面部特效,我可以向你介绍一下Python库Face_recognition,它可以实现人脸识别和面部特效。 Face_recognition是一个基于Python人脸识别库,它使用dlib库来实现人脸识别,可以检测和识别图像中的人脸,并提取面部特征,比如眼睛、鼻子、嘴巴等部位的位置和轮廓。 具体实现过程如下: 1. 首先需要安装Face_recognition库和dlib库,可以使用pip install face_recognition和pip install dlib命令来安装。 2. 导入Face_recognition库和Pillow库,使用load_image_file函数加载需要处理的图片。 3. 使用face_locations函数来获取图像中人脸的位置坐标,使用face_landmarks函数来获取面部特征的位置坐标。 4. 使用Pillow库的ImageDraw模块来绘制面部特征,比如眼睛、鼻子、嘴巴等部位的位置和轮廓。 下面是一个简单的示例代码,实现在图片中绘制人脸位置和面部特征: ``` import face_recognition from PIL import Image, ImageDraw # 加载图片 image = face_recognition.load_image_file("test.jpg") # 获取人脸位置坐标 face_locations = face_recognition.face_locations(image) # 获取面部特征位置坐标 face_landmarks = face_recognition.face_landmarks(image) # 绘制人脸位置 for face_location in face_locations: top, right, bottom, left = face_location draw = ImageDraw.Draw(image) draw.rectangle(((left, top), (right, bottom)), outline=(255, 0, 0), width=2) # 绘制面部特征 for face_landmark in face_landmarks: for name, points in face_landmark.items(): draw = ImageDraw.Draw(image) draw.line(points, fill=(255, 255, 255), width=2) # 保存绘制后的图片 image.save("result.jpg") ``` 这样就可以实现简单的面部特效了。当然,Face_recognition库还有很多其他的功能和用法,你可以查看官方文档来了解更多。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值