一、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

Python Face Recognition 实现人脸识别的更多相关文章

  1. 10分钟手把手教你运用Python实现简单的人脸识别

    欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可! 前言:让我的电脑认识我 我的电脑只有认识我,才配称之为我的电脑! 今天,我们用Python实现高大上的人脸识别技术! Python里,简单的 ...

  2. python三步实现人脸识别

    原文地址https://www.toutiao.com/a6475797999176417550 Face Recognition软件包 这是世界上最简单的人脸识别库了.你可以通过Python引用或者 ...

  3. 基于Python与命令行人脸识别项目(系列一)

    Face Recognition 人脸识别 摘要:本项目face_recognition是一个强大.简单.易上手的人脸识别开源项目,并且配备了完整的开发文档和应用案例,方便大家使用.对于本项目可以使用 ...

  4. python基于OpenCV的人脸识别系统

    想获得所有的代码,请下载(来自我的CSDN): https://download.csdn.net/download/qq_40875849/11292912 主函数: from recognitio ...

  5. 基于Python与命令行人脸识别项目(系列二)

    接着系统一,继续开始我们face_recognition. Python 模块:face_recognition 在Python中,你可以导入face_recognition模块,调用丰富的API接口 ...

  6. python之OpenCv(四)---人脸识别

    对特定图像进行识别,最关键的是要有识别对象的特征文件.OpenCV已经内置了人脸识别特征文件,我们只要使用OpenCV的CascadeClassifier类即可进行识别. 语法: https://gi ...

  7. python face_recognition模块实现人脸识别

    import face_recognition #人脸识别库 pip cmake dlib import cv2 #读取图像 face_image1 = face_recognition.load_i ...

  8. python+opencv+Face++实现人脸识别比对

    2018-03-2010:16:55 代码仓库--GitHub--https://github.com/az666/python_opencv_face- 依旧是先来图片 下面这张是我进行识别的效果( ...

  9. 吴裕雄--天生自然python学习笔记:人脸识别用到的特征文件haarcascade_frontalface_default.xml下载

    下载地址:https://github.com/opencv/opencv/tree/master/data/haarcascades 1.找到haarcascade_frontalface_defa ...

随机推荐

  1. 【前端】javascript+jquery实现手风琴式的滚动banner或产品展示图

    实现效果 实现步骤 // 鼠标放入到li中该盒子变宽,其他盒子变窄,鼠标移开大盒子,恢复原样 // 实现步骤 // 1. 给li添加背景 // 2. 绑定onmouseover事件,鼠标放入到li中, ...

  2. 移植openssh到arm linux

    一.在移植之前需要准备做一些前期准备: 1.移植zlib库 1.1获取zlib源码 1.2解压 tar xvf zlib-1.2.11.tar.xz 1.3交叉编译 1.3.1 指定交叉编译器 exp ...

  3. Ubuntu下Eclipse安装与编译ns-3遇见的各种问题

    感觉Eclipse比其它东西装起来麻烦多了. 问题拾遗 (1)安装 这一块倒是没有什么大的问题,Linux操作系统也不需要像在Windows操作系统下下一些必须的东西(比如CDT等等).安装好了JDK ...

  4. UVa 10723 电子人的基因(LCS)

    https://vjudge.net/problem/UVA-10723 题意: 输入两个A~Z组成的字符串,找一个最短的串,使得输入的两个串均是它的子序列,另外还需要统计长度最短的串的个数. 思路: ...

  5. 【Python】【数据类型】

    [序列更新&散列&切片]"""from array import arrayimport reprlibarray1 = array('d',(1,2,3 ...

  6. JavaScript 问题解决 -- parseInt("08")或parseInt("09")转换返回0的解决方法

      不小心范了一个低级错误,这个问题也是很多初学者容易忽略滴,它就是js中的整数转换函数parseInt(string, radix). 使用parseInt转换"01" - &q ...

  7. Java中创建只读容器,同步容器

    我们通过Collections.unmodifiableX来得到只读容器,因为容器被设为只读的,所以必须填入有意义的数据之后才进行设置 import java.util.ArrayList; impo ...

  8. hdu 5381 The sum of gcd 莫队+预处理

    The sum of gcd Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) P ...

  9. centos 6.5 安装mplayer

    https://centos.pkgs.org/6/linuxtech/mplayer-1.0.4-3.el6.x86_64.rpm.html

  10. 算法笔记--数位dp

    算法笔记 这个博客写的不错:http://blog.csdn.net/wust_zzwh/article/details/52100392 数位dp的精髓是不同情况下sta变量的设置. 模板: ]; ...