人脸识别四个步骤,分别为人脸图像采集及检测,人脸图像预处理(对齐),人脸图像特征提取和人脸图像匹配与识别.
1 人脸图像采集及检测
- 人脸图像采集
即通过摄像镜头获取人脸的数字图像. - 人脸检测(判断是否有人脸)
人脸检测是人脸识别的预处理,在图像中标定出人脸的位置和大小.人脸图像中包含的模式特征十分丰富,如直方图特征,颜色特征,模板特征,结构特征及哈尔特征(Haar-like feature)等.人脸检测是将这些有用的信息提取出来,利用这些特征进行人脸检测.
(1) 对检测的对象进行概率统计,得到检测对象的特征,建立检测模型;
(2) 用得到的模型匹配输入的图像,如果有匹配则输入匹配的区域,无则无动作; - 人脸检测算法
模板匹配模型,Adaboost模型,其中Adaboost模型在速度与精度的综合性能上表现最好,特点是训练慢,检测快,基本可达到视频流实时检测.
2 人脸图像预处理
实现人脸对齐,即检测到输入图片中的人脸目标,需要对人脸图像预处理,因为同一个人不同图像序列中的姿态,表情会发生变化,不利于人脸特征提取,因此需要将人脸图像变换到统一的角度和姿态,人脸会受到各种条件的限制和随机干扰,通过找到的人脸基准点如眼角,鼻尖,嘴尖等部位,并进行如下操作:
序号 | 预处理 |
---|---|
1 | 缩放 |
2 | 旋转 |
3 | 拉伸 |
4 | 光线补偿 |
5 | 灰度变换 |
6 | 直方图均衡化 |
7 | 规范化 |
8 | 几何校正 |
9 | 过滤 |
10 | 锐化 |
3 人脸图像特征提取
人脸特征提取是将人脸图像信息数字化,将一张人脸图像转换为一串数字(一般称为特征向量)。如对一个人脸,找到他的眼睛左边、嘴唇右边、鼻子、下巴等位置,利用特征点间的欧氏距离、曲率和角度等提取出特征分量,最终将相关的特征连接成一个长的特征向量。
4 人脸图像匹配与识别
人脸匹配与识别是将提取的人脸图像的特征数据与数据库中存储的人脸特征模板进行搜索匹配。根据相似度对身份进行判断,设定一个阈值,当相似度超过这个阈值,则将匹配得到的结果输出。
识别与匹配有确认和辨认两种形式,确认即一对一进行比较,核实身份;辨认即一对多进行图像匹配,从N个人中找到目标。
5 识别算法
人脸识别发展如下表:
时间 | 方法 | 训练数据 | 方法描述 | LFW精度 |
---|---|---|---|---|
1990 | Eigenface | <1万 | 主成分分析 | 60.02% |
2006 | LBP+CSML | <1万 | 局部二值模式 | 85.57% |
2013 | High-dim LBP | 10万 | 高维LBP+Joint Bayesian | 95.17% |
2014 | DeepFace | 400万 | CNN+softmax | 97.35% |
2014 | Deep ID | 20万 | CNN+softmax | 97.45% |
2015 | VGG | 260万 | VGG+Softmax | 98.95% |
2016 | FaceNet | 2亿 | Inception+Triplet-loss | 99.63% |
5.1 20世纪的人脸识别:基于集合特征,基于模板匹配和子空间算法
(1) 子空间算法将人脸当成一个高维向量,将向量投影到低维空间中,投影之后得到的低维向量达到对不同的人具有良好的区分度,代表算法是Eigenface(PCA,主成分分析)和FisherFace(LDA,线性判别分析).PCA核心即是对高维向量投影后尽可能多的保留原始数据的主要信息,降低数据的冗余信息.LDA核心是最大化类间差距和最小化类内差距,保证同一个人的不同人脸图像投影后聚集在一起,不同的人脸图像投影之后用大间距分开.两者均使用求解矩阵的特征值和特征向量,通过降维处理图像数据.
(2)人脸在高维空间中的分布是非线性的,可使用非线性降维算法,代表有流形学习和核(kernel)技术,流形学习假设向量在高维空间中的分布具有某些几何形状,然后保持这些几何形状约束的前提下将向量投影到低维空间中,这种投影是经过非线性变换完成的.
(3) 隐马尔科夫模型(HMM)对光照,表情和姿态的变化更加鲁棒,神经网络也有应用,但使用的数据集较少,效果一般.
5.2 21世纪开始人脸识别方法转向:人工特征+分类器
(1) 分类器有较成熟的案例,如神经网络,支持向量机,贝叶斯等,人工特征提取是该类方法的优势.
(2) 描述图像特征方法应用与人脸图像特征提取,如HOG,SIFT, Gabor和LBP等,典型有LBP,该方法简单有效,解决了光照敏感问题,但存在姿态和表情识别准确率低的问题.其中巅峰之作为"High-dim LBP",验证了高维特征和验证性存在正相关的关系,及人脸维度愈高,验证的准确度就愈高,该方法融合了各种特征,未成为主流.
5.3 深度学习的时代:利用深度学习提取特征(CNN)
(1) 利用CNN对海量数据进行学习,提取图像特征.
(2) Facebook提出DeepFace方法,该方法是CNN应用于人脸识别领域的奠基,使用3D模型来做人脸对齐任务,CNN针对对齐后的人脸Patch进行多类的分类学习,使用交叉熵损失函数(softmax)进行问题优化,最后通过特征嵌入得到固定长度的人脸特征向量.
(3) DeepID是香港中文大学唐晓鸥团队提出的方法,使用四层卷积,最后一层为softmax,中间为隐藏层,提取人脸特征,使用Multi-patch分别训练模型最后组合成高维特征,人脸验证阶段使用联合贝叶斯方法,通过学习一个多类(10000类,每类约20个实例)人脸识别任务学习特征,随人脸数据集增加,DeepID泛化能力越强.
(4) 谷歌推出FaceNet方法,使用三元组损失函数替代了常用的softmax交叉熵损失函数,在一个超球空间进行优化类内距离更紧凑,类间距离更远,最后得到一个紧凑的128维人脸特征,网络使用GoogleNet的Inception模型,模型参数量较小,精度更高,损失函数可追溯到:LDA算法.
6 总结
人脸识别广泛应用于身份核实和信息安全以及安防领域。优势如下
- (相对于其他生物识别技术而言)非接触,用户无需和设备直接接触;
- 非强制性,被识别的人脸图像信息可以主动获取;
- 并发性,实际应用场景可以进行多个人脸的分拣、判断和识别;
[参考文献]
[1]https://zhuanlan.zhihu.com/p/36416906
[2]https://blog.csdn.net/qq_40027052/article/details/79020643