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
Python Face Recognition 实现人脸识别的更多相关文章
- 10分钟手把手教你运用Python实现简单的人脸识别
欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可! 前言:让我的电脑认识我 我的电脑只有认识我,才配称之为我的电脑! 今天,我们用Python实现高大上的人脸识别技术! Python里,简单的 ...
- python三步实现人脸识别
原文地址https://www.toutiao.com/a6475797999176417550 Face Recognition软件包 这是世界上最简单的人脸识别库了.你可以通过Python引用或者 ...
- 基于Python与命令行人脸识别项目(系列一)
Face Recognition 人脸识别 摘要:本项目face_recognition是一个强大.简单.易上手的人脸识别开源项目,并且配备了完整的开发文档和应用案例,方便大家使用.对于本项目可以使用 ...
- python基于OpenCV的人脸识别系统
想获得所有的代码,请下载(来自我的CSDN): https://download.csdn.net/download/qq_40875849/11292912 主函数: from recognitio ...
- 基于Python与命令行人脸识别项目(系列二)
接着系统一,继续开始我们face_recognition. Python 模块:face_recognition 在Python中,你可以导入face_recognition模块,调用丰富的API接口 ...
- python之OpenCv(四)---人脸识别
对特定图像进行识别,最关键的是要有识别对象的特征文件.OpenCV已经内置了人脸识别特征文件,我们只要使用OpenCV的CascadeClassifier类即可进行识别. 语法: https://gi ...
- python face_recognition模块实现人脸识别
import face_recognition #人脸识别库 pip cmake dlib import cv2 #读取图像 face_image1 = face_recognition.load_i ...
- python+opencv+Face++实现人脸识别比对
2018-03-2010:16:55 代码仓库--GitHub--https://github.com/az666/python_opencv_face- 依旧是先来图片 下面这张是我进行识别的效果( ...
- 吴裕雄--天生自然python学习笔记:人脸识别用到的特征文件haarcascade_frontalface_default.xml下载
下载地址:https://github.com/opencv/opencv/tree/master/data/haarcascades 1.找到haarcascade_frontalface_defa ...
随机推荐
- python 删除列表中的字典元素
data={"} ,{"}]} print("before:\n\n",data,"\n\n") temp=- k= for i in da ...
- ubuntu server 多网卡
https://wenku.baidu.com/view/51fb15742f60ddccdb38a007.html
- 卡内基梅隆大学软件工程研究所先后制定用于评价软件系统成熟度的模型CMM和CMMI
SEI(美国卡内基梅隆大学软件工程研究所(Software Engineering Institute, SEI))开发的CMM模型有: 用于软件的(SW-CMM;SW代表'software即软件') ...
- STL_容器使用时机
1. 来自教程: ◆ Vector的使用场景:比如软件历史操作记录的存储,我们经常要查看历史记录,比如上一次的记录,上上次的记录,但却不会去删除记录,因为记录是事实的描述. ◆ deque的使用场景: ...
- [原][osg][osgEarth]关于在OE中使用物理引擎的调研
关于物理引擎旋转的一些整理 参考文档 http://blog.wolfire.com/2010/03/Comparing-ODE-and-Bullet 介绍ODE和bullet的利弊 http://s ...
- nginx反向代理和正向代理,优缺点
http://blog.csdn.net/lishaojun0115/article/details/53200629 nginx反向代理代理的是服务器,正向代理代理的是客户端, 反向代理是客户点发送 ...
- NGUI实现简单的倒计时组件
using System; using UnityEngine; public enum ETimerType { CommonFormat, // 78 77 76 75 ... TimeForma ...
- CodeSmith公共类维护
CodeSmith在使用过程中,我们经常会出现同一个方法在不同的页面调用,如果我们在每个页面都写一个这样的方法,那么代码量非常大,同时如果以后需要修改也要在每个页面分别去修改,这无疑是劳命伤财,如果能 ...
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 问题解决方法
在用maven配置mybatis环境时出现此BindingExceptiony异常,发现在classes文件下没有mapper配置文件,应该是maven项目没有扫描到mapper包下的xml文件,在p ...
- 多线程(JDK1.5的新特性互斥锁)
多线程(JDK1.5的新特性互斥锁)(掌握)1.同步·使用ReentrantLock类的lock()和unlock()方法进行同步2.通信·使用ReentrantLock类的newCondition( ...