人脸识别分两个部分:
第一步:人脸图片预处理,即检测图片中人脸并裁剪成指定尺寸的人脸图。
第二步:人脸识别,包括模型训练、目标人脸分类训练、 预测目标人脸。
1. 人脸检测原理
人脸识别,首先得做人脸检测,也就是找到人脸在哪里,用矩形框框出位置。理想情况下,应该检测出图片中所有的人脸。
人脸检测模型:
1、MTCNN (TensorFlow)
2、SSD Face (Caffe)
获得人脸的矩形框后,然后就要做人脸对齐(Face Alignment),因为原始图片中,人脸的姿态、位置可能有较大区别,
为了统一处理,要把人脸“摆正”。“摆正”的方法,其实就是先找到人脸的关键点,比如眼睛、鼻子、嘴巴、脸轮廓等。根据这些
关键点,使用仿射变换将人脸统一标准,尽量消除姿势不同带来的误差。
这里采用基于TensorFlow的MTCNN(Multi-task convolutional neural networks) 模型。MTCNN是一种基于深度神经网络的
人脸检测和人脸对其的方法。MTCNN由3个神经网络构成,分别是P-Net,R-Net、O-Net。
在使用上述网络之前,要对原始图片进行预处理,先将原始图片缩放到不同尺寸,形成一个“图像金字塔”,如下图所示。