机器学习之人脸识别(Face Recognition)

时间:2024-03-25 17:55:56

机器学习之机器是如何识别人脸(Face Recognition)的?

目前,一些机器学习技术已经被广泛应用于人脸识别、人脸支付以及身份认证领域,例如支付宝的FACEID,阿里的Alipay,ETC等等。

这个领域内的算法多以传统的Eigen Face, LBP Face, Adaboost为主,面对一张人脸时,我们首先要进行的是进行人脸特征的提取,比如鼻子、眼睛等,之后对这些特征进行分析比对,确认人物基本信息。而机器主要是通过数学模型学习轮廓、纹理等细节,将机器提取出来的细节(特征提取,Feature extraction)输入到分类模型中进行分类(分类,Classification),从而识别人脸。

以卷积神经网络为例,在提取了大量的基本信息之后:

1、Input Image - > Detect

这一步我们做的主要是将原始图像输入去detect,让机器提取一些关键点。

2、Detect - > Transform - > Crop

这一步要做的事情就是要检测人脸中的关键点,然后根据这些关键点对人脸做对齐校准。比如原先人脸可能比较歪,根据关键点使用仿射变换将人脸统一“摆正”,尽量去消除姿势不同带来的误差。这一步一般叫Face Alignment。

3、Crop - > Representation

这一步就是使用深度卷积网络,将输入的人脸图像,转换成一个向量的表示。

在理想的状况下,我们希望“向量表示”之间的距离就可以直接反映人脸的相似度:

1)对于同一个人的人脸图像,对应的向量的欧几里得距离应该比较小。
2)对于不同人的人脸图像,对应的向量之间的欧几里得距离应该比较大。

4、实际应用

1)N:1(验证你是谁):给定一张图片或识别一张人脸,检测数据库中与之最相似的人脸。
2)1:1(验证你是不是你):只需比对采集的图像特征和数据库中你的特征即可。

5、对于图像有噪音干扰(用GAN)

1)有遮挡
2)化妆,整容

早期传统的人脸识别模型其实是没有办法对抗这些干扰项的,但现在可以利用对抗模型(Generative Adversarial Network,GAN )对图像进行还原,然后再进行识别即可。GAN的基本原理是生成器(Generator)和判别器(Discriminator)相互博弈达到动态平衡的过程,Generator用于生成仿真样本,Discriminator用于鉴定生成的样本,生成的样本足够真实就会欺骗Discriminator,因此两者必须同等优秀,需要有各自独立的神经网络模型,并且能够利用LOSS实现自我优化。

一个有趣的关于GAN的例子是假钞的制作:

Generator:制造假钞的人
Discriminator:警察

a)制造假钞的人生产假钞
b)警察判断是否是假钞,如果认为是假钞,说明假钞与真钞存在区别
c)制造假钞的人按照警察给出的反馈改进假钞制造工艺

重复以上3个步骤,直到警察无法区分假钞和真钞为止。

训练GAN的基本步骤:
机器学习之人脸识别(Face Recognition)1.对噪声集和实际数据集进行采样,选择m个。
2.使用这些数据训练判别器。
3.采样大小为m的不同的噪声集。
4.在此数据上训练生成器。
从步骤1开始重复。