《Python人脸识别:从入门到工程实践》 ——1.1.4 人脸识别的一般方法

举报
华章计算机 发表于 2020/02/19 22:07:55 2020/02/19
【摘要】 本节书摘来自华章计算机《Python人脸识别:从入门到工程实践》 —— 书中第1章,第1.1.4节,作者是王天庆 。

1.1.4 人脸识别的一般方法

我们首先以人脸对比场景为例,介绍一种人脸对比的可行思路。

我们在前文中提到过,虽然人脸识别的应用很广泛,而且用到的具体技术也不尽相同,但是,有很多步骤其实是类似的。以人脸对比为例,一种可行的解决方案如图1-2所示。

下面我们简要介绍一下其中的一些关键步骤。

1.图像预处理

在很多计算机视觉项目中,往往需要进行图片的预处理操作。这主要是因为输入的图片常存在不合规范的地方,甚至会干扰系统的后续工作。如图片带有噪声,或者图片尺寸不符合系统要求等,这些都是预处理这一步需要做的事。而对应的处理方法可以是对图片进行滤波等操作,从而使图片更加符合系统要求。如图1-3所示,分别为带有椒盐噪声的图片和经过中值滤波处理后的图片。

2.人脸检测

顾名思义,人脸检测就是用来判断一张图片中是否存在人脸的操作。如果图片中存在人脸,则定位该人脸在图片中的位置;如果图片中不存在人脸,则返回图片中不存在人脸的提示信息。对于人脸识别应用,人脸检测可以说是必不可少的一个重要环节。人脸检测效果的好坏,将直接影响整个系统的性能优劣。如图1-4所示,灰色矩形框代表了从图片中检测到的人脸图像位置。

image.png

                                                          图1-3 带有椒盐噪声的图片(左图)与经过

中值滤波处理后的图片(右图)                图1-4 人脸检测示意图3.人脸校正

人脸校正又可以称为人脸矫正、人脸扶正、人脸对齐等。我们知道,图片中的人脸图像往往都不是“正脸”,有的是侧脸,有的是带有倾斜角度的人脸。这种在几何形态上似乎不是很规整的面部图像,可能会对后续的人脸相关操作造成不利影响。于是,就有人提出了人脸校正。

我们可以大致认为,人脸校正是对图片中人脸图像的一种几何变换,目的是减少倾斜角度等几何因素给系统带来的影响。因此,人脸校正一般也被认为是对人脸图像的几何归一化操作。人脸校正一般被用在人脸对比等存在后续人脸特征提取的应用场景中。但是,随着深度学习技术的广泛应用,人脸校正并不是被绝对要求存在于系统中。深度学习模型的预测能力相对于传统的人脸识别方法要强得多,因为它以大数据样本训练取胜。也正因如此,有的人脸识别系统中有人脸校正这一步,而有的模型中则没有。

4.人脸特征点定位

人脸特征点定位是指在检测到图片中人脸的位置之后,在图片中定位能够代表图片中人脸的关键位置的点。常用的人脸特征点是由左右眼、左右嘴角、鼻子这5个点组成的5点人脸特征点,以及包括人脸及嘴唇等轮廓构成的68点人脸特征点等。 图1-5 定位到的5个人脸特征点图1-5所示的就是对人脸图片进行特征点定位后标定的人脸特征点。通过对图片中人脸特征点的定位,可以进行人脸校正,也可以应用到某些贴图类应用中。

image.png

5.人脸特征提取

对于很多人脸识别应用来说,人脸特征提取是十分关键的步骤。例如在性别判断、年龄识别、人脸对比等场景中,将已提取到的人脸特征为主要的判断依据。提取到的人脸特征质量的优劣将直接影响输出结果正确与否。

我们可以认为RGB形式的彩***片是一个具有红、绿、蓝三通道的矩阵,而二值图像和灰度图像本身在存储上就是一个矩阵,这些图片中的像素点是很多的。而提取到的特征往往是以特征向量的形式表示的,向量的元素一般都不会太多(一般在“千”这个数量级)。因此,从宏观角度来看,特征提取过程可以看作一个数据抽取与压缩的过程。从数学角度看,其实是一个降维的过程。有关降维的内容,我们将会在后续的部分中详细介绍。

6.分类器

分类器其实指代的是一种分类算法。例如我们需要判断图片中人脸所属者的性别,在提取到人脸图像的高级特征之后,我们要根据这个提取到的特征来判断其性别。这个过程其实是一个二分类过程,也就是大家都知道的:在不考虑特殊情况的前提下,人类可以分为两类,不是男人就是女人。判断的依据是前面提到的人脸图像的高级特征,用于判断的算法就是所谓的分类器。当然,这个分类器的设计与实现其实并不是那么容易的,我们会在后面的内容中详细展开叙述。

在这里我们介绍了人脸识别中人脸对比场景中涉及的一些具体要素。我们可以看到,人脸对比的一个可行思路是首先进行图片的预处理,然后进行人脸检测判断,最后提取特征并进行对比。人脸对比是人脸识别中比较典型的应用场景,我们可以从这个例子中总结出人脸识别应用的共性。

1)图像预处理。目的是减少图片自身因素对系统判断造成的干扰,或者使图片格式更适合系统。常见的处理方式有图片去噪、尺寸转换、灰度化处理等。

2)人脸检测。对于人脸识别应用场景,如果图片中根本不存在人脸,那么后续的一切操作都将变得没有意义,甚至会造成错误的结果。而如果识别不到图片中存在的人脸,也会导致整个系统执行的提前终止。因此,人脸检测在人脸识别应用中具有十分重要的作用,甚至可以认为是不可或缺的重要一环。

3)特征点定位与特征提取。人脸识别系统如果想要实现一些高级功能,获取特征将是必不可少的部分。对于不同的人脸识别应用场景,其对特征的定义也不尽相同。例如想要在图片中的人脸上自动添加一个眼镜作为装饰物,那么我们需要获取的特征就是双眼在图片中的位置,这样以人眼为特征点的定位将是十分必要的;而对于人脸对比、性别识别等场景,获取能够代表图片中人脸的一个特征向量将是十分必要的。

4)对特征的利用。我们已经明确了,获取我们所需的特征是后续操作的重要基础。特征的利用方式前面已经提到几种,诸如使用分类器进行分类、使用比较器进行比较,或者利用定位到的人脸特征点进行图片的贴图。毫无疑问,对特征利用的目的是很明确的,因为这往往就是我们最终想要获取的系统直接输出结果。

上述过程在实现上可能会很复杂,但是对于大多数的人脸识别应用而言,大致的思路是相同的。将上述内容归结为人脸识别系统构建的一般方法,我们将在后续的内容中以这样的思路进行人脸识别系统的设计与实现。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。