本篇文将介绍人脸识别原理,下文介绍实现实例。
1. 人脸识别模型
经过上一篇步骤后,已得到包含人脸的区域的图像了,接下来就要进行人脸识别了。这一步一般是使用深度卷积网络,
将人脸图像转成一个向量的表示,即“特征提取”。
通常在图像应用中,可以去掉最后的全连接层, 使用卷基层的最后一层作为图像的“特征”。但这个方法用在人脸识别中效果并不好。
搜集的几个经典模型:
Facenet FaceNet
谷歌提出,使用inception模型和欧几里得空间距离算法,三元损失函数或中心损失函数,
Lfw上准确率99.63(在其他工具对齐后准确率)
DeepID
总共三代,孙祎提出的,使⽤用了了两种 深度神经⽹网络框架(VGG net和GoogleLeNet)来进⾏行行⼈人脸识别。
两种框架 ensemble结果在LFW数据集上可以达到0.9745的准确率
参考文献 DeepID3: Face Recognition with Very Deep NeuralNetworks
DeepFace
在实现时需要使用3D对齐技术,然后将对齐的结果送入一个9层网络进行处理。整个训练过程前两个卷积层采用了共享卷积核,
后三个卷积采用不共享卷积核,倒数第二层采用全连接层提取出对应的人脸特征。最后一层是一个softmax层分类。LFW数据集上
取得了了0.9735。
参考文献 Closing thegap to humal-level performance in face verification
face++
北京旷视提出的,LFW数据集上可以达到0.9950的准确率
参考文献Naive-Deep face Recognition: Touching the Limit of LFW Benchmark or Not
baidu的模型
提出了了⼀一种两步学习⽅方法,结合mutil-patchdeep CNN和deep metric learning,实现脸部特征提取和识别。
LFW数据集上取得了了0.9977的成绩
参考文献 Targeting UltimateAccuracy : Face Recognition via Deep Embedding
2. Inception模型
本文实例采用的模型为Inception v4版本Inception Resnet v1/v2,下面详细介绍。
2.1 Inception思想
1、设计一个inception模块
Inception架构的主要想法是考虑怎样近似卷积视觉网络的最优稀疏结构并用容易获得的密集组件进行覆盖。
注意假设转换不变性,这意味着我们的网络将以卷积构建块为基础。我们所需要做的是找到最优的局部构造并
在空间上重复它。
Inception模块,在同一个层次使用不同尺寸的卷积进行多个卷积运算,然后从深度上进行拼接。