基于face_recognition实现人脸识别

简介: ## 简介我们这次使用基于开源项目face_recognition库来实现人脸识别,首先介绍一下这个项目吧。使用世界上最简单的人脸识别库从 Python 或命令行识别和操作人脸。使用dlib使用深度学习构建的最先进的人脸识别技术构建。该模型在 Wild基准的 Labeled Faces 上的准确率为 99.38% 。这使得我们可以直接调用这个库来进行人脸识别而不用自己编写程序进行深度学习。这是该项目的[github地址](https://github.com/ageitgey/face_recognition)

简介

我们这次使用基于开源项目face_recognition库来实现人脸识别,首先介绍一下这个项目吧。
使用世界上最简单的人脸识别库从 Python 或命令行识别和操作人脸。

使用dlib使用深度学习构建的最先进的人脸识别技术构建。该模型在 Wild基准的 Labeled Faces 上的准确率为 99.38% 。
这使得我们可以直接调用这个库来进行人脸识别而不用自己编写程序进行深度学习。这是该项目的github地址

安装

接下来就给大家介绍一下安装这个库的流程,因为该库使用了dlib进行深度学习所有需要dlib库和face_recognition库,又因为我使用了opencv显示图片所有还需要opencv库,我使用的环境是python3.6.4,dlib==19.7.0,face_recognition==1.3.0,因为我使用的是Anaconda所有只需在安装是选择适合的版本就没有报错,但是我试过非Anaconda环境中pip下载是会报错的所有这次重点先交大家如何在python默认环境中安装。

(1)

python -m pip install --upgrade setuptools, python -m pip install --upgrade pip 。先更新更新工具再更新一下pip。
图片

(2)

由于我下载时发现默认下载源下载速度很慢所有我这里进行了更改
图片
图片

(3)

pip install opencv-python
图片

(4)

重点来了,大部分人包括我在安装dlib库时都会报错,这时有两种解决办法install dlib == 19.7.0, 或者下载对应的whl文件进行安装
tu
tu
tu
然后就可以安装face_recognition库啦
如果大家找不到这个whl文件可以私信我获取(有个镜像网站的但是我不记得地址了找找应该能找到)

实现人脸识别

# 导入模块
import cv2
import face_recognition

# 使图片名显示中文但会被吞字
def zh_cn(string):
    return string.encode("gbk").decode(errors="ignore")

# 识别人脸图片
image = face_recognition.load_image_file("1.png")
face_locations = face_recognition.face_locations(image)



#调用opencv函数显示图片
img = cv2.imread("1.png")
cv2.namedWindow(zh_cn("原图"), cv2.WINDOW_NORMAL) # cv2.WINDOW_NORMAL使窗口可自定义大小 
cv2.imshow(zh_cn("原图"), img)

#遍历每个人脸并标注
faceNum = len(face_locations)
print(f"从这张图片中我发现了{faceNum}张脸!")
for i in range(faceNum):
    top, right, bottom, left = face_locations[i] # 上右,下左
    start = (left, top)
    end = (right, bottom)
    color = (0, 255, 0)
    thickness = 3
    cv2.rectangle(img, start, end, color, thickness) # 左上 右下  画框

#显示识别结果
cv2.namedWindow(zh_cn("识别"), cv2.WINDOW_NORMAL)
cv2.imshow(zh_cn("识别"), img)
cv2.waitKey(0) # 使窗口停留,不加会一闪而过
cv2.destroyAllWindows()  # 关闭窗口

结果展示

原图
原图
识别
识别
geshu

总结

这只是运用该库实现的小小案例还有很多好玩有趣的操作,大家可以自己操作玩玩,新的一年祝大家身体健康,阖家幸福,代码无bug。

目录
相关文章
|
Java 关系型数据库 MySQL
基于Javaweb实现的人脸识别考勤系统
本系统基于Javaweb技术实现项目开发,使用Jsp进行系统界面开发,Servlet进行请求和响应的处理,Jdbc作为数据库开发技术,根据业务流程对系统进行模块功能点的划分,遵循软件工程思想,实现用户登录、机构管理、用户管理、节假日管理、考勤管理等功能。
356 0
基于Javaweb实现的人脸识别考勤系统
|
机器人 计算机视觉 Python
智能机器人项目,安装人脸识别face_recognition报错解决
智能机器人项目,安装人脸识别face_recognition报错解决
156 0
|
设计模式 Java 关系型数据库
基于Javaweb实现的人脸识别+GPS定位考勤系统
基于Javaweb实现的人脸识别+GPS定位考勤系统
586 0
基于Javaweb实现的人脸识别+GPS定位考勤系统
|
缓存 前端开发 NoSQL
人脸识别技术实现快递代取管理系统
人脸识别技术实现快递代取管理系统
153 0
人脸识别技术实现快递代取管理系统
|
人工智能 监控 算法
手把手带你体验Python实现人脸识别
前几天唠了一些Python的基础知识,确实无聊,但是无聊归无聊确实有用.今天来搞点有趣的事情--利用计算机视觉实现人脸检测和识别. 计算机视觉是人工智能的一个重要分支.计算机视觉中的人脸识别现在是我们生活最常出现的功能,比如刷脸打卡,这是每个打工人上班必备.人脸识别门禁,身份验证等等.看过钢铁侠的童鞋是否还记得,钢铁侠初次飞行时.他的人工智能系统头盔中显示了道路上的车辆信息.包括车辆的品牌和车中的人物,当时我们把它当成科幻来看,其实在现实中我们利用计算机视觉技术完全可以做到,而且我们目前已在运用,比如停车场系统车辆自动识别闸机.人流量检测,还有我们的无人驾驶汽车,都在使用计算机视觉技术中的人
822 1
|
JSON Java API
C#winforms实现windows窗体人脸识别
C#winforms实现windows窗体人脸识别
336 0
|
机器学习/深度学习 Unix TensorFlow
opencv安装实录附十几行C++实现的一个人脸识别demo
opencv安装实录附十几行C++实现的一个人脸识别demo
348 0
opencv安装实录附十几行C++实现的一个人脸识别demo
|
JavaScript 前端开发 Java
纯前端JS实现人脸识别眨眨眼张张嘴案例
纯前端JS实现人脸识别眨眨眼张张嘴案例
775 0
纯前端JS实现人脸识别眨眨眼张张嘴案例
|
存储 数据库 计算机视觉
人脸识别的案例实现 | 学习笔记
快速学习人脸识别的案例实现
人脸识别的案例实现 | 学习笔记
|
JavaScript 计算机视觉
纯js实现人脸识别眨眨眼张张嘴案例——index.html
纯js实现人脸识别眨眨眼张张嘴案例——index.html
236 0