在接下来的几篇文章中,我们将训练计算机视觉+深度学习模型来进行面部识别。在此之前,我们首先需要收集脸部数据集。
如果你已经在使用预先准备好的数据集,比如Labeled Faces in the Wild(LFW),那么你可以省略这步。但对于大多数人来说,我们会想要识别不属于当前数据集的面部,如,识别自己,朋友,家人和同事等。
为了实现这一点,我们需要收集我们想要识别的人脸实例,然后以某种方式对其进行量化。这个过程通常被称为面部识别注册(facial recognition enrollment)。我们简称为“注册”。
本文将重点介绍注册流程的第一步:创建示例人脸的自定义数据集。
在下篇文章中,你将学习如何利用这个数据集的示例图像,量化人脸,并创建你自己的面部识别+ OpenCV应用。
如何创建自定义人脸识别数据集
在本教程中,我们将介绍三种创建面部识别自定义数据集的方法。
第一种方法将使用OpenCV和网络摄像头
(1)检测视频流中的脸部
(2)将示例脸部图像或者说帧保存到磁盘。
第二种方法将讨论如何以编程方式下载人脸图像。
最后,我们将讨论手动收集图像的方法,以及该方法何时适用。
让我们开始构建一个人脸识别数据集!
方法#1:通过OpenCV和网络摄像头进行面部注册
创建自己的自定义人脸识别数据集的第一种方法适用于以下情况:
你正在构建“现场”人脸识别系统
你需要对某个特定的人进行物理接触来收集他们脸部的示例图像
这样的系统对于公司,学校或其他需要每天出勤的组织来说是典型的。
为了收集这些人的脸部图像,我们可能会带他们到一个特殊的房间,在那里安装了一个摄像机(1)在视频流中检测他们脸部的(x,y)坐标,(2)将包含他们脸的帧写到磁盘中。
我们甚至可能会在数天或数周内执行此过程,以收集他们的脸部示例:
不同的照明条件
一天不同的时间
不同的情绪
…创建一个代表特定人脸的多样的图像数据集。
让我们写一个简单的Python脚本来帮助构建我们的自定义人脸识别数据集。这个Python脚本包括:
访问我们的摄像头
检测人脸
将包含脸部的帧写入磁盘
下载代码访问:https://www.pyimagesearch.com/2018/06/11/how-to-build-a-custom-face-recognition-dataset/
下载完成后,打开 build_face_dataset.py 并分步理解它:
# import the necessary packages
from imutils.video import VideoStream
import argparse