博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
『开发技术』Windows极简安装使用face_recognition实现人脸识别
阅读量:4700 次
发布时间:2019-06-09

本文共 2527 字,大约阅读时间需要 8 分钟。

是一个强大、简单、易上手的人脸识别开源项目,并且配备了完整的开发文档和应用案例,特别是兼容树莓派系统。此项目是世界上最简洁的人脸识别库,你可以使用Python和命令行工具提取、识别、操作人脸。

本项目的人脸识别是基于业内领先的C++开源库 中的深度学习模型,用人脸数据集进行测试,有高达99.38%的准确率。但对小孩和亚洲人脸的识别准确率尚待提升。

开源地址:

 1.问题描述

在Windows使用此项目时,由于官方不提供Windows版本:安装时总是遇到不同问题。

不同操作系统的安装方法

在 Mac 或者 Linux上安装本项目

First, make sure you have dlib already installed with Python bindings:

第一步,安装dlib和相关Python依赖:

Then, install this module from pypi using pip3 (or pip2 for Python 2):

pip3 install face_recognition

如果你遇到了幺蛾子,可以用Ubuntu虚拟机安装本项目,看下面这个教程。 .

在 Mac 或者 Linux上安装本项目 2

修改你的pip镜像源为清华镜像,然后使用pip install face_recognition,可以自动帮你安装各种依赖,包括dlib。只是在安装dlib的时候可能会出问题,因为dlib需要编译,出现的问题一般是gcc或者g++版本的问题,所以在pip install face_recognition之前,可以通过在命令行键入

export CC=/usr/local/bin/gccexport CXX=/usr/local/bin/g++

来指定你gcc和g++对应的位置,(这两句话会临时修改当前终端的环境变量/usr/local/bin/gcc对应你自己gcc或者g++所在目录)。

在树莓派上安装

在Windows上安装

虽然本项目官方并不支持Windows,但一些大神们摸索出了在Windows上运行本项目的方法:

使用Ubuntu虚拟机镜像文件安装配置虚拟机,本项目已经包含在这个镜像中

  • (需要电脑中安装VMWare Player 或者 VirtualBox)

 使用conda和pip都无法直接安装。

2.问题解决

经过不断尝试,最终选择用pip安装指定版本dlib==19.7.0,再安装face_recognition。(如果需要请自行安装Cmake):

pip install dlib==19.7.0pip install face_recognition

3.简单使用

face_recognition基于dli封装很多常用人脸识别相关算法,这里举两个常用例子

1).人脸检测

import face_recognitionimport cv2img_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_recognitionknown_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_recognitionknown_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)

 

转载于:https://www.cnblogs.com/xiaosongshine/p/11303187.html

你可能感兴趣的文章
插件机制
查看>>
浅析依赖注入
查看>>
pdf.js加载动态pdf文件
查看>>
在远程机器上跑PowerShell脚本
查看>>
Viewpager+Fragment出现空白页面的问题
查看>>
html中实现数据的显示和隐藏
查看>>
小甲鱼Python第十二讲课后习题---013元组
查看>>
系统启动时,BIOS与影子内存_5
查看>>
Linux系统配置双网卡绑定bond0
查看>>
Hanoi(栈实现)
查看>>
Jmeter (二十六)逻辑控制器 之 Module Controller and Include Controller
查看>>
我的Java设计模式-策略模式
查看>>
C# 报表接口样例,简单实用
查看>>
C++常见内存错误及解决方案
查看>>
音视频学习路线规划(2015-11)
查看>>
使用delphi 开发多层应用(十八)使用Basic4android 访问RTC 服务的二进制流(照片)...
查看>>
Hello World!
查看>>
一、虚拟环境.二、路由配置主页与404.三、2.x路由分发.四、伪静态.五、request对象.六、FBV与CBV.七、文件上传....
查看>>
电费2
查看>>
定时任务 - quartz
查看>>