计算机视觉:Python 中的人脸识别快速入门

Computer Vision: Face Recognition Quick Starter in Python

基于 Python 深度学习的人脸检测、识别、情感、性别和年龄分类,使用所有流行的模型

你会学到什么

  • 图像中的人脸检测
  • 实时视频中的人脸检测
  • 情绪检测、年龄性别预测
  • 从图像、实时视频进行人脸识别

要求

  • 一台配置不错的计算机和对基于计算机视觉的人脸识别世界的热情

描述

你好呀!

欢迎来到我的新课程“使用 Python 进行深度学习的人脸识别”。这是我的计算机视觉系列的更新课程,涵盖基于 Python 深度学习的人脸检测、人脸识别、情感、性别和年龄分类,使用所有流行的模型,包括 Haar Cascade、HOG、SSD、MMOD、MTCNN、EigenFace、FisherFace、VGGFace、 FaceNet、OpenFace、DeepFace

人脸检测和人脸识别是计算机视觉最常用的应用。使用这些技术,计算机将能够提取图像或视频中的一张或多张面孔,然后将其与现有数据进行比较,以识别该图像中的人物。

人脸检测和人脸识别被政府和组织广泛用于监视和警务。我们也每天在许多应用程序中使用它,例如手机的面部解锁等。

对于想要使用 Python 深入研究人脸识别而无需处理与典型深度学习过程相关的所有复杂性和数学的人来说,本课程将是一个快速入门。

我们将使用一个名为 face-recognition 的 python 库,它使用简单的类和方法来轻松实现人脸识别。我们还使用 OpenCV、Dlib 和 Pillow for python 作为支持库。

现在让我们看看本课程中包含的有趣主题列表。

首先,我们将有一个关于人脸检测和人脸识别技术的介绍性理论课程。

在那之后,我们准备好通过下载和安装 anaconda 包来准备我们的计算机进行 python 编码。然后我们将安装我们需要的其余依赖项和库,包括 dlib、人脸识别、opencv 等,并将尝试一个小程序来查看是否一切都安装正常。

你们中的大多数人可能不是来自基于 Python 的编程背景。接下来的几个课程和示例将帮助您获得基本的 Python 编程技能,以继续本课程中包含的课程。主题包括 Python 赋值、流控制、函数和数据结构。

然后我们将介绍人脸检测器的基础知识和工作原理,这些检测器将从给定媒体中检测人脸。我们将尝试使用 Python 代码从给定图像中检测人脸,并将人脸提取为单独的图像。

然后我们将继续从视频中进行人脸检测。我们将从计算机的网络摄像头流式传输实时视频,并尝试从中检测人脸。我们将在实时视频中检测到的每张人脸周围绘制矩形。

在下一节中,我们将自定义人脸检测程序,以从网络摄像头视频流中动态模糊检测到的人脸。

之后,我们将尝试使用预训练的深度学习模型进行面部表情识别,并从实时网络摄像头视频和静态图像中识别面部表情

然后我们将使用预训练的深度学习模型尝试年龄和性别预测,并从实时网络摄像头视频和静态图像中识别年龄和性别

在人脸检测之后,我们将介绍人脸识别的基础知识和工作原理,识别已经检测到的人脸。

在下一个会话中,我们将尝试使用 Python 代码从给定图像中识别人名和人脸,并在人脸周围绘制一个矩形,上面写着他们的名字。

然后,就像我们在人脸检测中所做的那样,我们将继续从视频中进行人脸识别。我们将从计算机的网络摄像头流式传输实时视频,并尝试识别和命名其中的面孔。我们将在检测到的每张脸周围绘制矩形,并在实时视频中的名字下方绘制矩形。

大多数时候在编码过程中,随着人脸匹配决策,我们可能需要知道人脸的匹配程度。为此,我们将得到一个称为人脸距离的参数,它是两个人脸匹配的幅度。稍后我们将使用简单的数学将此人脸距离值转换为人脸匹配百分比。

在接下来的两节课中,我们将学习如何调整用于人脸检测的人脸标志点。我们将画线连接这些面部地标点,以便我们可以可视化计算机用于评估的面部点。

将地标点定制提升到一个新的水平,我们将使用地标点为人脸图像创建自定义面部妆容。

到现在我们都是使用人脸识别第三方库来实现大部分功能。但从现在开始,我们将使用流行的库分别尝试人脸识别流水线步骤,包括人脸检测、人脸对齐、人脸特征提取验证和分类。我们将在本节中对这些进行介绍。

在下一节中,我们将从人脸检测开始。我们将把它们分为传统的人脸检测方法和涉及 CNN 的现代方法。

首先,我们将尝试使用 Haar Cascade 对象检测算法进行人脸检测。我们将首先对静止图像进行尝试,稍后我们将对保存的视频和实时网络摄像头视频实施它。

另一种流行的人脸检测算法是 HOG 或定向梯度直方图。首先我们将介绍 HOG 算法的工作原理,然后我们将尝试对图像、视频和实时网络摄像头流使用 HOG 方法。

我们将尝试的下一个人脸检测算法是 SSD 或 Single Shot Detection。我们也将为 SSD 重复相同的功能练习。然后是 MMOD。我们也将为 SSD 重复相同的功能练习。

然后是 MMOD,Max-Margin Object Detection。我们也将为 MTCNN 重复相同的功能练习。

然后是下一个算法,即 MTCNN,即多任务级联卷积网络。我们还将为 MTCNN 重复相同的功能练习,包括图像、视频和实时流。

最后,我们将对这些人脸检测算法的性能进行快速比较。

人脸检测完成后,我们将继续进行人脸对齐。我们将使用流行的 Dlib 库 python 实现来执行图像、视频和视频流的面部对齐。

在人脸对齐练习之后,我们将在实际人脸识别发生的地方进行人脸验证和分类。首先我们将介绍人脸分类。我们将把这些技术分为传统的人脸识别方法和涉及 CNN 的现代方法。

首先,我们将尝试 Eigenface Fisherface 和 LBPH 技术,即局部二进制模式直方图。我们将对这些算法进行简短介绍,然后继续

为这些算法准备图像数据集。

然后我们将为他们设置先决条件。稍后我们将使用 MTCNN 进行人脸检测,并对检测到的人脸进行预处理以进行识别。然后是涉及使用图像数据集进行训练和尝试对图像进行预测的练习。然后我们将保存此模型,以便稍后加载它并进行预测而无需再次进行训练。

我们还将尝试将其用于预存视频和实时网络摄像头流。完成后,我们将快速比较 Eigenface Fisherface 和 LBPH 算法。

传统的方法就这些了,下面我们继续深度学习人脸识别。首先使用流行的 VGGNet 模型进行人脸识别,称为 VGGface。我们将对VGG人脸进行介绍,然后我们将对图像实现VGGface人脸验证。稍后我们将尝试对视频和实时流进行 VGGface 人脸验证。

然后我们介绍了 FaceNet、OpenFace 和 DeepFace 模型。我们将使用流行的易于使用的开源 python 人脸识别框架 deepface 来实现其他流行的深度学习技术。

我们将在我们的计算机上安装 deepface,然后首先尝试进行人脸检测和人脸对齐。然后我们会尝试deepface进行人脸一对一的验证。稍后稍加改动,我们就可以将其用于涉及一对多比较的人脸分类。deepface还可以用于进行涉及性别、年龄、情绪、种族等的人脸分析

这就是本快速课程中当前包含的所有主题。本课程中使用的代码、图像和库已上传并共享在一个文件夹中。我将在上一节课或本课程的资源部分包含下载它们的链接。您可以在您的项目中自由使用代码,无需提出任何问题。

此外,在完成本课程后,您将获得课程结业证书,这将为您的作品集增值。

暂时就这些,我们教室见。快乐学习,玩得开心。

本课程适合谁:

  • 初学者或想从基于 Python 的人脸识别开始的人
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。