一个很强大的人脸识别库face_recognition

Posted 月疯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个很强大的人脸识别库face_recognition相关的知识,希望对你有一定的参考价值。

官方网址:https://github.com/ageitgey/face_recognition

 

 

在图片中查找面孔:

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

 查找和操作图片中的面部特征

import face_recognition
image = face_recognition.load_image_file("your_file.jpg")
face_landmarks_list = face_recognition.face_landmarks(image)

应用数字化妆

import face_recognition
known_image = face_recognition.load_image_file("biden.jpg")
unknown_image = face_recognition.load_image_file("unknown.jpg")

biden_encoding = face_recognition.face_encodings(known_image)[0]
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]

results = face_recognition.compare_faces([biden_encoding], unknown_encoding)

 将此库与其他 Python 库一起使用来进行实时人脸识别:

 

要求

  • Python 3.3+ 或 Python 2.7
  • macOS 或 Linux(Windows 不受官方支持,但可能有效)

pip3最后,使用(或pip2用于 Python 2)从 pypi 安装此模块:

pip3 install face_recognition

人脸检测

面部特征

面部识别

 我字节写了个demo:

#1、导入库
#2、显示图片
#3、绘制Landmarks关键点
#4、主函数
#注意本想母官方只支持mac和linux系统,windows不支持,还没解决
import face_recognition
import cv2
import matplotlib.pyplot as plt

#显示关键点
def show_landmarks(image,landmarks):
    for landmarks_dict in landmarks:
        for landmarks_key in landmarks_dict.keys():
            for point in landmarks_dict[landmarks_key]:
                cv2.circle(image,point,3,(0,0,255),-1)
    #返回绘制后的图片
    return image
def show_img(image,title): #传过来图片和标题
    plt.title(title)
    plt.imshow(image)
    plt.axis("off") #关闭x轴和y轴
def main():
    #5、读取图片
    image = cv2.imread("../images/liuyifei.jpg")

    #6、图片灰度转换
    gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)

    #7、调用face_recognition库方法:face_landmarks()获取人脸关键点
    face_marks = face_recognition.face_landmarks(gray,None,"large")#None不知道几个人脸,让系统自己去找;large是68个点,small是5个点
    print(face_marks)
    #8、绘制关键点
    img_result = show_landmarks(image.copy(),face_marks) #复制一份原始图片

    #9、创建画布
    plt.figure(figsize=(9,6))
    plt.suptitle("Face Landmarks with face_recognition",fontsize=14,fontweight="bold")

    #10、显示整体效果
    show_img(img_result, "landmarks")

if __name__ == "__main__":
    main()

以上是关于一个很强大的人脸识别库face_recognition的主要内容,如果未能解决你的问题,请参考以下文章

Android 实现人脸识别教程[运用虹软人脸识别SDK]

MLKit 是一个强大易用的工具包。通过 ML Kit 您可以很轻松的实现文字识别条码识别图像标记人脸检测对象检测等功能

MLKit 是一个强大易用的工具包。通过 ML Kit 您可以很轻松的实现文字识别条码识别图像标记人脸检测对象检测等功能

人脸识别基于dlib库实现人脸特征值提取

OpenCV⚠️实战⚠️ 人脸识别 ☢️建议手收藏☢️

OpenCV⚠️实战⚠️ 人脸识别 ☢️建议手收藏☢️