AI初级学习项目推荐,轻松搞定人脸识别-LMLPHP

Hi!大家好呀!我是你们努力的喵哥!

这几年大家都在关注人工智能,毕竟这是现在互联网行业的发展趋势。所以,很多同学都在准备学习做人工智能。但是,AI的学习门槛还是比较高的。主要是人工智能的算法,需要一定基础,而且方向还比较多。

喵哥推荐大家可以尝试由浅入深学习。先学会怎么用AI技术来产出结果。再根据,应用 AI 的过程,去倒逼自己的学习过程。因为,对于大部分同学来说,我们都需要通过技术来完成成果的产出。而不是技术的研究和探索者。在现在的互联网行业中,做应用的人是绝大多数,做研究的人是少部分。特别是对有一定编程语言和研发基础的同学,先用后学由浅入深是非常好的路径。

所以,今天,喵哥给大家推荐 face_recognition 这个人脸识别库。face_recognition 是一个强大、简单、易上手的人脸识别开源项目。face_recognition 的可玩性非常高,而且还支持树莓派。同时,官方提供了完整开发文档和应用案例。该项目号称是世界上最简洁和易于上手的人脸识别库。所以,其非常适合新人学习和开发一些自己的小工具。

face_recognition 是Python 工具库,基于业内著名的 C++ 开源库 dlib  中的深度学习模型实现。用 Labeled Faces in the Wild 人脸数据集进行测试,准确率高达99.38%。在 Python 代码中,导入 face_recognition 包后,只需几行代码,就能实现人脸识别的功能。face_recognition 还能搭配其它 Python 工具库(比如OpenCV),实现更多的效果。比如是实时的人脸检查,人脸的涂改等。目前很多流行的人脸识别项目和工具,都是基于 face_recognition 开发的。



首先,我们来介绍一下如何安装 face_recognition。

由于 face_recognition 基于 C++ 开源库dlib 实现的。所以,我们首先需要安装 dlib 和对应的 Python 依赖库。

首先从 Github 上克隆下来 dlib 的代码。

再编译 dlib 的源码。

最后再编译和安装 dlib 的 Python 扩展库。

安装好 dlib 后,我们再正式来安装 face_recognition。该安装方法主要应用是 Mac 和 Linux 环境下。安装会用到 pip3。如果是树莓派和 Windows 可以在官网文档中查找对应的安装文档。

这样就安装好了 face_recognition。



通过使用 face_recognition 我们实现什么样的效果那?face_recognition 主要有三个特性。

1.人脸定位。就是从图片中找到人脸。

AI初级学习项目推荐,轻松搞定人脸识别-LMLPHP

2.识别人脸中的部位。从人脸中,寻找眼睛、鼻子、耳朵等关键部位。

AI初级学习项目推荐,轻松搞定人脸识别-LMLPHP

3.人脸相似度对比。对比两张照片是不是同一个人。

AI初级学习项目推荐,轻松搞定人脸识别-LMLPHP



了解了 face_recognition 的特性后,是不是已经迫不及待了?想做点什么东西?那么我们就来讲解一下 face_recognition 的使用方法。

face_recognition 主要有两种方式,一种是命令行工具,可以直接使用。另一种是通过 Python 代码调用,就是我们上文介绍特性的使用方法。

1.face_recognition命令行工具可以在单张图片或一个图片文件夹中对比面部相似度。

我们需要一个已经知道名字的人脸图片文件夹,一个人一张图,图片的文件名即为对应的人的名字。然后,还需要第二个图片文件夹,文件夹里面是你希望识别的图片。

通过该命令就会输出识别的对应人物的名称。如果为 unknown_person 则是没有任何匹配上的。

2.face_detection命令可以在单张图片或一个图片文件夹中定位人脸像素点坐标。

该命令识别的是一整个文件夹下的图片。

调整人脸识别的容错率和敏感度

如果识别的结果不够准确,或者相似图片较多。我们可以可以把容错率调低一些,提升识别的准确率。

通过在命令设置参数 --tolerance 来完成。默认的容错率是0.6,容错率越低,识别越严格准确。

如果你想看人脸匹配的具体数值,可以使用参数 --show-distance true:

3.在讲解 face_detection 的特性时,我们展示了三个接口。face_detection  总共也就7个接口。

在官方的文档中,还可找到更多的 face_detection 使用的案例。大家可以用于学习,也可以借鉴去开发自己的小项目和小工具。

人脸定位

案例:定位拜登的脸

案例:使用卷积神经网络深度学习模型定位拜登的脸

案例:使用卷积神经网络深度学习模型批量识别图片中的人脸

案例:把来自网络摄像头视频里的人脸高斯模糊(需要安装OpenCV)

人脸关键点识别

案例:提取奥巴马和拜登的面部关键点

案例:给美国副总统拜登涂美妆

人脸识别

案例:是奥巴马还是拜登?

案例:人脸识别之后在原图上画框框并标注姓名

案例:在不同精度上比较两个人脸是否属于一个人

案例:从摄像头获取视频进行人脸识别-较慢版(需要安装OpenCV)

案例:从摄像头获取视频进行人脸识别-较快版(需要安装OpenCV)

案例:从视频文件中识别人脸并把识别结果输出为新的视频文件(需要安装OpenCV)

案例:通过树莓派摄像头进行人脸个数统计及人脸身份识别

案例:通过浏览器HTTP访问网络服务器进行人脸识别(需要安装Flask后端开发框架))

案例:基于K最近邻KNN分类算法进行人脸识别



再让我们深入一些,介绍一下 face_detection 实现的思路。

1.对识别的人脸的图片并对其进行编码,并将这些不同的人脸编码构建成一个列表。编码其实就是将人脸图片映射成一个128 维的特征向量。

2.采用HOG(方向梯度直方图)方法检测输入图像中的人脸。

3.对识别出来的人脸打标签。

剩下的更多内容,需要大家去深入挖掘了。



最后我们来介绍一下 face_recognition 这个开源项目本身。face_recognition 的作者是 Adam Geitgey,现在共有三十五位贡献者。整个项目已经维护了三年多,在 Github 收货了34.1k Star。face_recognition 饱受独立开发者的喜爱,很多流行的AI小程序都是基于 face_recognition 的。

项目地址https://github.com/ageitgey/face_recognition

在线文档https://face-recognition.readthedocs.io/



本文分享自微信公众号 - Github喵(gh_acfcf1689379)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

03-17 11:10