基于face_recognition库实现人脸识别 | 人脸识别系列 原创 精华

Aasee
发布于 2022-2-1 14:35
浏览
4收藏

春节不停更,此文正在参加「星光计划-春节更帖活动」

简介

我们这次使用基于开源项目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。
基于face_recognition库实现人脸识别 | 人脸识别系列-鸿蒙开发者社区

(2)

由于我下载时发现默认下载源下载速度很慢所有我这里进行了更改
基于face_recognition库实现人脸识别 | 人脸识别系列-鸿蒙开发者社区
基于face_recognition库实现人脸识别 | 人脸识别系列-鸿蒙开发者社区

(3)

pip install opencv-python
基于face_recognition库实现人脸识别 | 人脸识别系列-鸿蒙开发者社区

(4)

重点来了,大部分人包括我在安装dlib库时都会报错,这时有两种解决办法install dlib == 19.7.0, 或者下载对应的whl文件进行安装
基于face_recognition库实现人脸识别 | 人脸识别系列-鸿蒙开发者社区
基于face_recognition库实现人脸识别 | 人脸识别系列-鸿蒙开发者社区
基于face_recognition库实现人脸识别 | 人脸识别系列-鸿蒙开发者社区
然后就可以安装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()  # 关闭窗口

结果展示

原图
基于face_recognition库实现人脸识别 | 人脸识别系列-鸿蒙开发者社区
识别
基于face_recognition库实现人脸识别 | 人脸识别系列-鸿蒙开发者社区
基于face_recognition库实现人脸识别 | 人脸识别系列-鸿蒙开发者社区

总结

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

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
4
收藏 4
回复
举报
2条回复
按时间正序
/
按时间倒序
Aasee
Aasee

兄弟们冲冲冲

2
回复
2022-2-1 14:38:54
一只脆脆鲨
一只脆脆鲨

可以的冲冲冲

1
回复
2022-2-1 14:58:34
回复
    相关推荐