『开发技术』Windows极简安装使用face_recognition
face_recognition是一个强大、简单、易上手的人脸识别开源项目,并且配备了完整的开发文档和应用案例,特别是兼容树莓派系统。此项目是世界上最简洁的人脸识别库,你可以使用Python和命令行工具提取、识别、操作人脸。
本项目的人脸识别是基于业内领先的C++开源库 dlib中的深度学习模型,用Labeled Faces in the Wild人脸数据集进行测试,有高达99.38%的准确率。但对小孩和亚洲人脸的识别准确率尚待提升。
1.问题描述
在Windows使用此face_recognition项目时,由于官方不提供Windows版本:安装时总是遇到不同问题。
不同操作系统的安装方法
在 Mac 或者 Linux上安装本项目
First, make sure you have dlib already installed with Python bindings:
第一步,安装dlib和相关Python依赖:
Then, install this module from pypi using
pip3(orpip2for Python 2):pip3 install face_recognition如果你遇到了幺蛾子,可以用Ubuntu虚拟机安装本项目,看下面这个教程。 如何使用Adam Geitgey大神提供的Ubuntu虚拟机镜像文件安装配置虚拟机,本项目已经包含在镜像中.
在 Mac 或者 Linux上安装本项目 2
修改你的pip镜像源为清华镜像,然后使用
pip install face_recognition,可以自动帮你安装各种依赖,包括dlib。只是在安装dlib的时候可能会出问题,因为dlib需要编译,出现的问题一般是gcc或者g++版本的问题,所以在pip install face_recognition之前,可以通过在命令行键入export CC=/usr/local/bin/gcc
export CXX=/usr/local/bin/g++
来指定你gcc和g++对应的位置,(这两句话会临时修改当前终端的环境变量/usr/local/bin/gcc对应你自己gcc或者g++所在目录)。
在树莓派上安装
在Windows上安装
虽然本项目官方并不支持Windows,但一些大神们摸索出了在Windows上运行本项目的方法:
使用Ubuntu虚拟机镜像文件安装配置虚拟机,本项目已经包含在这个镜像中
- 如何使用Adam Geitgey大神提供的Ubuntu虚拟机镜像文件安装配置虚拟机,本项目已经包含在镜像中(需要电脑中安装VMWare Player 或者 VirtualBox)
使用conda和pip都无法直接安装。
2.问题解决
经过不断尝试,最终选择用pip安装指定版本dlib==19.7.0,再安装face_recognition。(如果需要请自行安装Cmake):
pip install dlib==19.7.
pip install face_recognition
3.简单使用
face_recognition基于dli封装很多常用人脸识别相关算法,这里举两个常用例子
1).人脸检测
import face_recognition
import cv2
img_path = "gril.jpg"
imgs = cv2.imread(img_path,cv2.IMREAD_COLOR) face_locations = face_recognition.face_locations(imgs)
print(face_locations) cv2.rectangle(imgs,(face_locations[0][1],face_locations[0][0]),(face_locations[0][3],face_locations[0][2]),color=(0,255,0)) while True:
cv2.imshow('image',imgs)
if(cv2.waitKey(0)==27):
break
else:
cv2.imwrite("save.jpg",imgs) cv2.destroyAllWindows()


如右图所示。
2).人脸比对(识别)
人脸识别原理其实很容易理解,就是对人脸提取特征,再对特征进行相似度(或者距离比对),最后选取合适阈值来判断是否为同一人
代码一,两张刘亦菲照片:输出 [True]
import face_recognition
known_image = face_recognition.load_image_file("lyf.jpg")
unknown_image = face_recognition.load_image_file("lyf1.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) print(results)


代码二,刘亦菲与郭富城:输出 [False]
import face_recognition
known_image = face_recognition.load_image_file("lyf1.jpg")
unknown_image = face_recognition.load_image_file("gfc.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) print(results)

『开发技术』Windows极简安装使用face_recognition的更多相关文章
- 『开发技术』Docker开发教程(一)安装与测试(Windows 家庭版)
0.前言 针对其他系统和版本,Docker都很容易安装,可以参考官方教程:https://docs.docker.com/docker-hub/ 由于Windows10家庭版无法安装docker,因此 ...
- 『开发技术』Ubuntu与Windows如何查看CPU&GPU&内存占用量
0 序·简介 在使用Ubuntu或者Windows执行一些复杂数据运算时,需要关注下CPU.GPU以及内存占用量,如果数据运算超出了负荷,会产生难以预测的错误.本文将演示如何用简单地方式,实时监控Ub ...
- 『开发技术』GPU训练加速原理(附KerasGPU训练技巧)
0.深入理解GPU训练加速原理 我们都知道用GPU可以加速神经神经网络训练(相较于CPU),具体的速度对比可以参看我之前写的速度对比博文: [深度应用]·主流深度学习硬件速度对比(CPU,GPU,TP ...
- [软件开发技巧]·树莓派极简安装OpenCv
树莓派极简安装OpenCv 个人主页–> https://xiaosongshine.github.io/ 因为最近在开发使用树莓派+usb摄像头识别模块,打算用OpenCv,发现网上的树莓派O ...
- 在windows上极简安装GPU版AI框架(Tensorflow、Pytorch)
在windows上极简安装GPU版AI框架 如果我们想在windows系统上安装GPU版本的AI框架,比如GPU版本的tesnorflow,通常我们会看到类似下面的安装教程 官方版本 安装CUDA 安 ...
- 『开发技巧』Python音频操作工具PyAudio上手教程
『开发技巧』Python音频操作工具PyAudio上手教程 0.引子 当需要使用Python处理音频数据时,使用python读取与播放声音必不可少,下面介绍一个好用的处理音频PyAudio工具包. ...
- [深度学习工具]·极简安装Dlib人脸识别库
[深度学习工具]·极简安装Dlib人脸识别库 Dlib介绍 Dlib是一个现代化的C ++工具箱,其中包含用于在C ++中创建复杂软件以解决实际问题的机器学习算法和工具.它广泛应用于工业界和学术界,包 ...
- Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE
Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE Windows平台下安装Arduino IDE Windows操作系统下可以使用安装向导和压缩包形式安装.下面详细讲解这 ...
- 『TensorFlow2.0正式版教程』极简安装TF2.0正式版(CPU&GPU)教程
0 前言 TensorFlow 2.0,今天凌晨,正式放出了2.0版本. 不少网友表示,TensorFlow 2.0比PyTorch更好用,已经准备全面转向这个新升级的深度学习框架了. 本篇文章就 ...
随机推荐
- redis在asp.net 中的应用
1.redis介绍 Nosql数据库作为关系型数据库的补充,在互联网公司已经得到广泛的运用.redis便是其中的代表之一,redis是一种(key,value)基于内存的数据库,并支持多种数据结构,如 ...
- Programming In Lua 第三章
1, 2, 3, 4, 5,lua中,只有false和nil为假,0和空字符串为真. 6, 7,
- 跟我学SpringCloud | 第十篇:服务网关Zuul高级篇
SpringCloud系列教程 | 第十篇:服务网关Zuul高级篇 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如无特殊说明,本系列教程全 ...
- ubuntu18.04上搭建KVM虚拟机环境超完整过程
看标题这是篇纯运维的文章.在中小型企业中,一般很少配置专业的运维人员,都是由开发人员兼着.同时,对有志于技术管理的开发人员来说,多了解一些运维及整个软件生命周期的知识,是很有帮助的,因为带团队不仅仅是 ...
- 8.秋招复习简单整理之Spring面试一般问题
1.不同版本的Spring Framework有哪些主要功能? 2.什么是Spring Framework? Spring是一个轻量级的IOC和AOP容器框架,是为Java应用程序提供基础性服务的一套 ...
- IO流簡單代碼
今天測試了一下,在博客園裏HTML源碼編譯器裏寫CSS内部樣式,更新編譯后,内部樣式可用,但是會將寫的内部樣式代碼强制加上代碼注釋進行編譯,有點類似于强制注入.編譯后的效果就是在前面加入了一個空的p標 ...
- Bzoj 2525 [Poi2011]Dynamite
2525: [Poi2011]Dynamite Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 240 Solved: 120[Submit][Sta ...
- 关于Markdown编辑器的基本使用规则
@TOC 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown ...
- 【题解】【A % B Problem(P1865)】-C++
题目背景 题目名称是吸引你点进来的 实际上该题还是很水的 题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对 ...
- Ubuntu 18.04 root 使用ssh密钥远程登陆
前言: Ubuntu默认是禁止root用户远程登陆 本教程解决Ubuntu 18.04版本 root用户 使用ssh密钥无法远程登陆的问题 问题发生的环境: 腾讯云,重装Ubuntu服务器时选择使用s ...