python之人脸识别

今天发现了一个开源的人脸识别项目。跟大家分享一下。

这个是知乎上面大神将项目README文件翻译成中文,方便大家学习。在此向同济大学开源软件协会 子豪兄Tommy表示感谢。https://zhuanlan.zhihu.com/p/45827914

项目地址:https://github.com/ageitgey/face_recognition感兴趣的朋友自行去了解一下。

 

今天我们将用python来实现人脸识别。

安装部分

1、前期准备工作

下载好python3.9、pycharm和vs c++;可以自行百度搜索下载。

2.、安装 cmake(编译工具) 和 boost(进入我python3.9安装目录下,在地址栏输入cmd。C:\Users\jason\AppData\Local\Programs\Python\Python39\Scripts)

pip  install  cmake
pip install boost

3、安装 dlib(人脸检测库)

pip install dlib

 

4、安装face_recognition(人脸识别库)这个人脸识别库需要配合opencv

pip install face_recognition
pip install opencv-python

注意:最好按照上述顺序安装,不然可能会安装不成功。

既然上述的安装成功,那么我们就开始人脸识别,首先我们使用的软件vs cube或者pycharm软件,小编现在使用pycharm软件。既然需要人脸识别,那么我们可以准备图片啦,在百度找一下人物图:

python之人脸识别_第1张图片

 在face_recognition人脸识别库中,我们需要了解三个函数:

    face_recognition.load_image_file ()这个函数就是从本地加载图片。

    face_recognition.face_encodings()这个函数是把编码图片。

    face_recognition.compare_faces()这个函数是比较图片。

    其实上述的函数很简单,recognition就是识别的意思,load是加载的意思,encoding就是编码的意思,而compare就是比较的意思。

 

我们用mayun.jpg这张图片作为样本,和其他图片对比,具体代码如下:

import face_recognition
import time

localtime = time.asctime(time.localtime(time.time()))
print("本地时间为 :", localtime)


mayun_image = face_recognition.load_image_file("mayun.jpg")
image1 = face_recognition.load_image_file("mahuateng.jpg")
image2 = face_recognition.load_image_file("mayun1.jpg")
image3 = face_recognition.load_image_file("xiaomayun.jpg")
image4 = face_recognition.load_image_file("mayunguilian.jpg")
image5 = face_recognition.load_image_file("mayun2.jpg")
image6 = face_recognition.load_image_file("mayunlianwu.jpg")
image7 = face_recognition.load_image_file("mayunbiyan.jpg")
image8 = face_recognition.load_image_file("mayunzaoqi.jpg")
image9 = face_recognition.load_image_file("mayunduoren.jpg")

mayun_face_encoding = face_recognition.face_encodings(mayun_image)[0]
image1_face_encoding = face_recognition.face_encodings(image1)[0]
image2_face_encoding = face_recognition.face_encodings(image2)[0]
image3_face_encoding = face_recognition.face_encodings(image3)[0]
image4_face_encoding = face_recognition.face_encodings(image4)[0]
image5_face_encoding = face_recognition.face_encodings(image5)[0]
image6_face_encoding = face_recognition.face_encodings(image6)[0]
image7_face_encoding = face_recognition.face_encodings(image7)[0]
image8_face_encoding = face_recognition.face_encodings(image8)[0]
image9_face_encoding = face_recognition.face_encodings(image9)[0]

known_faces = [
    image1_face_encoding,
    image2_face_encoding,
    image3_face_encoding,
    image4_face_encoding,
    image5_face_encoding,
    image6_face_encoding,
    image7_face_encoding,
    image8_face_encoding,
    image9_face_encoding
]

results = face_recognition.compare_faces(known_faces, mayun_face_encoding)
print("这张mahuateng.jpg照片是马云吗? {}".format(results[0]))
print("这张mayun1.jpg照片是马云吗? {}".format(results[1]))
print("这张xiaomayun.jpg照片是马云吗? {}".format(results[2]))
print("这张mayunguilian.jpg照片是马云吗? {}".format(results[3]))
print("这张mayun2.jpg照片是马云吗? {}".format(results[4]))
print("这张mayunlianwu.jpg照片是马云吗? {}".format(results[5]))
print("这张mayunbiyan.jpg照片是马云吗? {}".format(results[6]))
print("这张mayunzaoqi.jpg照片是马云吗? {}".format(results[7]))
print("这张mayunduoren.jpg照片是马云吗? {}".format(results[8]))

localtime = time.asctime(time.localtime(time.time()))
print("本地时间为 :", localtime)

结果如下图所示:

python之人脸识别_第2张图片

 

 

你可能感兴趣的:(python,人脸识别)