人脸识别实战:使用Python OpenCV 和深度学习进行人脸识别

本文介绍了如何使用Python的OpenCV库和深度学习技术进行人脸识别。通过创建一个包含名人图像的数据集,利用`encode_faces.py`脚本生成128维面部嵌入,然后在图像和视频流中进行人脸识别。识别过程包括计算面部编码、匹配已知编码、绘制预测名称。项目结构清晰,包括数据集、编码和识别脚本,适合初学者实践。
摘要由CSDN通过智能技术生成

==================================================================

image-20211119182347794

数据集来源网络搜索,我选取了几名大家认识的人物,有Biden、chenglong、mayun、Trump、yangmi、zhaoliying等。每个人物放入3-4张图片,如下图:

在这里插入图片描述

获得此图像数据集,我们将:

  • 为数据集中的每个人脸创建 128 维嵌入

  • 使用这些嵌入来识别图像和视频流中人物的面部

制作数据集的方法:

人脸识别项目结构

===================================================================

myface

├── dataset

├─dataset

│ ├─Biden

│ ├─chenglong

│ ├─mayun

│ ├─Trump

│ ├─yangmi

│ └─zhaoliying

├── encode_faces.py

├── recognize_faces_image.py

├── recognize_faces_video.py

└── encodings.pickle

我们的项目有 4 个顶级目录:

  • dataset/ :包含六个字符的面部图像,根据它们各自的名称组织到子目录中。 。

  • output/ :这是您可以存储处理过的人脸识别视频的地方。 我要把我的一个留在文件夹里——原侏罗纪公园电影中的经典“午餐场景”。

  • videos/ :输入视频应存储在此文件夹中。 该文件夹还包含“午餐场景”视频,但尚未经过我们的人脸识别系统。

我们在根目录下还有 6 个文件:

  • encode_faces.py :人脸的编码(128 维向量)是用这个脚本构建的。

  • identify_faces_image.py :识别单个图像中的人脸(基于数据集中的编码)。

  • identify_faces_video.py :识别来自网络摄像头的实时视频流中的人脸并输出视频。

  • encodings.pickle :面部识别编码通过 encode_faces.py 从您的数据集生成,然后序列化到磁盘。

创建图像数据集后(使用 search_bing_api.py ),我们将运行 encode_faces.py 来构建嵌入。 然后,我们将运行识别脚本来实际识别人脸。

使用 OpenCV 和深度学习对人脸进行编码

=================================================================================

在识别图像和视频中的人脸之前,我们首先需要量化训练集中的人脸。 请记住,我们实际上并不是在这里训练网络——网络已经被训练为在大约 300 万张图像的数据集上创建 128 维嵌入。

当然可以从头开始训练网络,甚至可以微调现有模型的权重。一般情况。

使用预训练网络然后使用它为我们数据集中的 29张人脸中的每一张构建 128 维嵌入更容易。

然后,在分类过程中,我们可以使用一个简单的 k-NN 模型 + 投票来进行最终的人脸分类。 其他传统的机器学习模型也可以在这里使用。 要构建我们的人脸嵌入,

请新建 encode_faces.py:

import the necessary packages

from im

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值