zoukankan      html  css  js  c++  java
  • Python Face Recognition 实现人脸识别

    一、Face Recognition软件包

    我们的人脸识别基于face_recognition库。face_recognition基于dlib实现,用深度学习训练数据,模型准确率高达99.38%。

    人脸数字化

    人脸识别的第一步是检测照片中的人脸区域,然后将人脸的图像数据转换成一个长度为128的向量,这128个数据代表了人脸的128个特征指标,如下所示

    1.安装Face Recognition软件包

    使用python虚拟环境进行安装。现有一个mysuperset的python3.6虚拟环境,进入虚拟环境,并进行安装(Face Recognition需要Python3.3(或者以上)+或者Python2.7)

    pip3.6 install face_recognition (安装文件在100MB)

    依赖包:numpy、Click、Pillow、dlib

    2.face_recognition命令行接口

    1)Face Recognition软件包提供命令行接口,系统中已经有了一个名为face_recognition的命令,你可以使用它对图片进行识别,或者对一个文件夹中的所有图片进行识别。

    2)首先你需要提供一个文件夹,里面是所有你希望系统认识的人的图片。其中每个人一张图片,图片以人的名字命名。然后你需要准备另一个文件夹,里面是你要识别的图片。

    我创建了picture目录,下面有两个子目录,一个source用来保存系统认识的人的图片,另一个target用来保存需要识别的图片。

    3)可以运行face_recognition命令了,把刚刚准备的两个文件夹作为参数传入,命令就会返回需要识别的图片中都出现了谁。

    face_recognition ./source/ ./target/   

    运行后,报错,没在hope中发现face。。。。可能是我之前使用vim打开过hope导致。但是结果匹配到了nut。。。。

    重新传入hope,输出结果,把hope与nut都匹配到了。。。。果然是父子,傻傻分不清楚。。。

    github上面的说明

    4)继续传入别人的照片

    将小李子照片传入source,看看识别效果。匹配正确了。

    3.使用face_recognition模块

    识别人脸鉴定是哪个人

     import face_recognition
    image_me=face_recognition.load_image_file("/home/dba/picture/hope.jpg")
    my_face_encoding=face_recognition.face_encodings(image_me)[0]
     
    image_unkonw=face_recognition.load_image_file("/home/dba/picture/unknow.jpg")
    unknow_face_encoding=face_recognition.face_encodings(image_unkonw)[0]
     
    results=face_recognition.compare_faces([my_face_encoding],unknow_face_encoding)
     
    if results[0]==True:
        print("It's me!")
    else:
        print("It's not me!")

     

    其中my_face_encoding、unknow_face_encoding就是将人脸的图像数据转换成一个长度为128的向量,也是就是128个特征指标

    二、Face Recognition识别多个人脸

    参考资料:

    https://github.com/ageitgey/face_recognition/blob/master/README_Simplified_Chinese.md

    http://developer.51cto.com/art/201801/565664.htm

  • 相关阅读:
    选择排序--简单(c语言)
    冒泡排序--简单(c++)
    冒泡排序--简单(c语言)
    直接插入排序--简单(c++)
    Microsoft Azure File 服务简介
    【 D3.js 选择集与数据详解 — 1 】 使用datum()绑定数据
    物联网操作系统HelloX V1.77(beta)版本发布
    对XX证券报关于物联网操作系统的几个问题的答复
    使用 Azure Site Recovery 将内部部署虚拟化工作负荷迁移至 Azure
    使用 Azure Site Recovery 灾难恢复至 Azure 的功能现已正式发布
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/10043256.html
Copyright © 2011-2022 走看看