基于Python3.7和opencv的人脸识别(含数据收集,模型训练)

综艺节目 浏览(1636)
博九备用网址

我第一次写博客时,有点紧张和兴奋。没什么废话,直接去主题。如果您渴望让您的计算机面部识别;如果你不想知道什么是C ++,底层算法;如果你不想购买任何Raspberry Pi,请安装几个G opencv;如果你像我一样,它还没有开始。小白,但想体验人脸识别的魅力。恭喜,这篇文章适合您。开始吧!

1.带有可以联网的相机的计算机(手动搞笑)。

2. python3.7安装包

1. Python 3.7安装

关于python3.7的安装,网上有很多教程,请百度。

值得注意的是,在安装期间会检查环境变量。如果未添加,则可以使用它,但您必须自己输入相关文件的绝对路径。

2.安装第三方软件包

2.0本文使用pip进行安装,如果您有pip经验,可以跳过此部分。

2.1在“开始”菜单栏中搜索dos,然后按Enter键以启动命令提示符。

2.2可以在python3.7脚本文件夹中找到pip.exe。

2.3在命令提示符下输入Scripts文件夹的绝对路径

示例:cd C: python3.7 Scripts

注意:cd是Change目录,也就是说,目录被替换,cd之后有空格。

2.4成功替换目录后,输入pip.exe并启动pip。出现以下屏幕并且启动成功。

71f1ecdcf8f14879ae992681097003ab

2.5启动pip后,可以开始安装Python第三方软件包,注意计算机联网。

3安装第三方软件包

3.1opencv安装,输入:pip install opencv-python。

注意:numpy随OpenCV一起安装,您无需自己输入命令。

3.2枕头安装,输入:pip install pillow

注意:枕头是图像处理包。

3.3 contrib安装,输入:pip instal opencv-contrib-python

注意:我花了一些时间来安装contrib,以及我在网上说的非常麻烦的方式,让我看到雾中的云。

可以使用上面的命令安装contrib包。它是一个OpenCV扩展,用于训练您自己的面部模型。

,成功后会有一个成功的单词。

ff4ac7fa38e24092ab14b1808fcb3971

1.FaceDetection,人脸检测

没什么废话,第一个代码

faea04749bc04ab384137b7ecb10609d

faea04749bc04ab384137b7ecb10609d

注意:1。人脸识别分类器的路径在不同的计算机上是不同的。一般来说,在python3.7 Lib site-packages cv2 data中,要注意绝对路径。如果目录太长,您可以将分类器和程序放在一起。

注意:2。仔细考虑之后,我决定不放开我的脸,请读者自己尝试,可能是一个蓝色矩形框架你的脸,两个绿色矩形框架你的眼睛,按Esc可以退出。

2.FaceDataCollect,面部数据收集

或者首先在代码上

faea04749bc04ab384137b7ecb10609d

faea04749bc04ab384137b7ecb10609d

注意:1。在运行程序之前,请创建一个Facedata文件夹并将其放在包含程序的文件夹中。

友情提示:将程序和文件打包在名为Face Recognition的文件夹中。分类器也可以放在其中。

注意:2。在程序运行期间,系统将提示您输入ID。请从0输入,即第一人脸的数据id为0,第二人脸的数据id为1,操作可以收集一次。面部的数据。

注意:3。程序运行时间可能会更长,可能会有几分钟。如果太长,您可以获得1000个样本并退出相机。评论前的1000更改为100.

如果您不能等待,可以按esc退出,但可能导致数据准确性不足。

3.face_training,面部数据培训

faea04749bc04ab384137b7ecb10609d

faea04749bc04ab384137b7ecb10609d

注意:1。第8行的LBFPHaceRecognizer_create()是contrib中的一个函数。当我自己探索它时,我没有安装这个包,所以我坚持了很长时间并且留下了非常深刻的印象。

注意:2。在运行程序之前,在面部识别文件夹下创建一个face_trainer文件夹。

4.face_recognition人脸检测

faea04749bc04ab384137b7ecb10609d

faea04749bc04ab384137b7ecb10609d

注意:1。存储11行中人员的姓名。如果person id为0,则他的名字位于第一位,id位位于第二位,依此类推。

注意:2。最终效果是绿框,框架在脸上,左上角是红色人的名字,左下角是黑色的概率。

1.结论

这不容易,我第一次写博客时,我终于完成了它。让我谈谈初衷。一开始,我想成为一个解锁的电脑脸。我的想法是手机有一张可以解锁的脸,而电脑可以做到。

但我认为,我无法真正实现它。首先,我不知道如何锁定电脑。虽然我可以使用python的easygui来模仿登录界面,但输入密码来解锁它。但是,我知道,

我无法真正锁定电脑,所以我放弃了计划。如果有一个大神可以做到,请务必在评论区留言,我很想知道该怎么做。

我来谈谈撰写此博客的目的。我一路走来。大多数在线搜索都在CSDN博客上,其中大多数都是人脸检测,没有人脸识别,数据收集和模型培训。

只有少数文章也在雾中,但水平有限,我不明白。所以,我提出了写小博的脸部识别博客的想法,原本打算写在csdn上,

但出于各种原因,我选择了博客园。

2.参考文献和扩展阅读

在此,我要感谢Raspberry Pi Lab中的一篇文章。我的大多数代码都来自于此。对于那些想要了解更多信息的人,可以参考这篇文章。以下是链接

在这个问题的最后,为什么没有关于如何在计算机上实现面部识别的详细教程,而是关于Raspberry Pi的详细教程?这不是一个上升的门槛吗?