前言
之前实践了下face++在线人脸识别版本,这回做一下离线版本。github 上面有关于face_recognition的相关资料,本人只是做个搬运工,对其中的一些内容进行搬运,对其中一些例子进行实现。
官方描述:
face_recognition是一个强大、简单、易上手的人脸识别开源项目,并且配备了完整的开发文档和应用案例,特别是兼容树莓派系统。本项目是世界上最简洁的人脸识别库,你可以使用Python和命令行工具提取、识别、操作人脸。本项目的人脸识别是基于业内领先的C++开源库 dlib中的深度学习模型,用Labeled Faces in the Wild人脸数据集进行测试,有高达99.38%的准确率。但对小孩和亚洲人脸的识别准确率尚待提升。
(关于兼容树莓派,以后有板子了再做一下)
下面两个链接划重点
环境配置
ubuntu16.04(其他环境的安装可以参考第一个链接,官方有说明)
pycharm(可忽略,怎么舒服怎么来)
python3
opencv(我的是4.1.2,三点几的版本应该也一样)
实际上只需要安装face_recognition,当然,没有opencv的也需要安装一下opencv
pip3 install face_recognition
图片准备
由于需要做一些图片的比对,因此需要准备一些图片,本文图片取自以下链接
https://www.zhihu.com/question/314169580/answer/872770507
接下来开始操作
官方还有提供命令行的操作(这个没去做),本文不做这个,我们只要是要在python中用face_recognition,因此定位到这一块。
这个api文档地址就是上面的第二个链接。进去之后可以看到:
part1.识别图片中的人是谁
代码
# part1
# 识别图片中的人是谁
import face_recognition
known_image = face_recognition.load_image_file("lyf1.jpg")
unknown_image = face_recognition.load_image_file("lyf2.jpg")
lyf_encoding = face_recognition.face_encodings(known_image)[0]
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]
results = face_recognition.compare_faces([lyf_encoding], unknown_encoding)
<