基于深度神经网络的人脸识别相关问题
1、DNN与CNN的关系
CNN可以看作是一种特殊的DNN,它们之间的关系是包含和被包含的关系。CNN 的核心是卷积层,该层可以有效地识别图像中的局部模式,并使用池化层来减少特征映射的维度。此外,CNN 还包括其他类型的层,例如全连接层和激活函数层,用于将卷积层输出的特征映射转换为最终的分类结果。
2、DNN与SSD的关系
在DNN中使用单次多框检测器SSD来实现目标检测的功能
虽然DNN本身可以用于许多任务,包括图像分类和人脸识别,但当涉及到需要同时检测图像中多个目标位置和类别时,SSD更加适合
将SSD集成到DNN中,可以使DNN在处理需要目标检测的任务时更加高效。在人脸识别系统中,使用DNN提取人脸特征的同时,可以使用SSD来检测图像中的人脸位置,从而实现更全面的人脸识别功能
3、深度神经网络人脸识别的原理
人脸识别主要通过人脸检测模型和人脸识别模型实现
首先,输入层接收人脸图像,人脸检测模型会检测到人脸的部位,并把人脸的部位截取出来
然后,通过卷积层对输入图像进行卷积运算,提取特征,激活函数建立卷积层内相邻层节点之间的函数关系,使模型更加灵活,随着卷积层的加深,提取的特征从最初的低级特征发展到复杂的特征
然后,通过池化层用单个点替换特征值的邻域,进一步提取和过滤卷积得到的特征,完成人脸关键点检测,得到人脸的眼睛、鼻子、嘴角共5个关键点,进行人脸的对齐。人脸对齐之后,通过人脸识别模型得到128位的特征向量,即128个数
然后,通过全连接层进行分类,损失函数估计模型预测值和真实值之间的差值
最后,输出层给出最终准确的结果。基于深度神经网络人脸识别的流程图如图3.5所示。
人脸识别主要通过人脸检测模型和人脸识别模型实现。通过FaceDetectorYN函数建立人脸检测模型,以便实现人脸检测。人脸检测模型会检测到人脸的部位,并把人脸的部位截取出来。然后进行关键点检测与对齐,对人脸眼睛、鼻子、嘴角共5个点进行提取,进行人脸的对齐。人脸对齐之后,通过人脸识别模型得到128位的特征向量,即128个数。基于深度神经网络人脸识别的流程图如图1所示。
图1 基于深度神经网络人脸识别的流程图
在得到128个特征向量后,进行特征向量的比对。到预先准备好的人脸识别数据库当中进行搜索,数据库中也是128位的特征向量,利用欧氏距离方法和余弦距离方法来计算两组特征向量之间的相似度,可以用这两种度量的方法来进行比较,如果检测到的人脸和数据库里面的人脸一致,则查找到对应的人脸。基于深度神经网络人脸识别的原理如图2所示。
图2 基于深度神经网络人脸识别的原理图
4、各个层的作用是什么?
输入层,接收原始数据
隐藏层,进行非线性变换
输出层,则给出最终结果
卷积层,对输入图像进行卷积运算,提取特征
激活函数,建立卷积层内相邻层节点之间的函数关系,使模型更加灵活
池化层,用单个点替换特征值的邻域,进一步提取和过滤卷积得到的特征
全连接层,进行分类
损失函数,估计模型预测值和真实值之间的差值
人脸检测模型,会检测到人脸的部位
人脸识别模型,得到128位的特征向量
5、人脸遮挡起来之后为什么还会显示出关键点?
因为人脸关键点检测是通过深度神经网络级联回归的方法进行的,该方法级联了三层卷积神经网络,通过第一层卷积神经网络后,会预测出人脸部位5个关键点的大致区域,然后通过第二、三层卷积神经网络后会进一步确定关键点的区域,每通过一层都会对关键点的预测位置进行调整,以得到精细的关键点定位,所以即便是被遮挡了也会显示出预测的大致位置的关键点。
检测到人脸就会进行关键点的预测,如果遮挡了,依然能够进行关键点的预测,只是无法准确预测。
图3 DNN级联回归方法
为什么遮挡了之后还是会显示人脸关键点,可以从DNN级联回归的方法进行关键点检测与对齐方面的解释,但是要把原理说清楚
(1)Level-1分为3个CNN,分别是Deep CNN F1(Face1)、Deep CNN EN1(Eye,Nose)、Deep CNN NM1(Nose,Mouth);Deep CNN F1输入尺寸为39×39,输出5个关键点的坐标;Deep CNN EN1和Deep CNN NM1输入尺寸均为39×31,输出均是3个关键点的坐标。Level-1的输出由三个CNN输出取平均得到。
(2)Level-2由10个CNN构成,输入尺寸均为15×15,每两个组成一对,一对CNN对一个关键点进行预测,预测结果同样是采取平均。
(3)Level-3与Level-2一样,由10个CNN构成,输入尺寸均为15×15,每两个组成一对, Level-3是在Level-2得到预测点位置的基础上,重新进行裁剪。由Level-2的网络,可以进一步得到5个关键点的位置,离正确的点越近了,然后利用Level-2的预测位置,重新进行裁剪,然后再重新进行预测。Level-2和Level-3是对Level-1得到的粗定位进行微调,得到精细的关键点定位。
6、人脸识别人脸部位的5个关键点(landmark)是怎么取的,跟识别的关系是什么,五个点之间的距离跟不同的人的关系是什么?
关键点检测与对齐。把人脸部位截取出来,进行关键点检测与定位,即对人脸眼睛、鼻子、嘴角共5个点进行提取,进行人脸的对齐。
通过深度神经网络级联回归的方法进行人脸的关键点检测,级联了三个层级,该方法可以自动识别人脸图像中的关键点位置。
首先,它们可以用来表示人脸的形状和结构信息,从而帮助识别算法更好地理解和区分不同的人脸。
其次,这些关键点可以用于计算不同人脸之间的距离和相似度,从而实现人脸比对和识别的功能。
五个关键点之间的距离与不同的人之间存在一定的关系。每个人的面部结构都是独特的,因此不同人之间的五个关键点之间的距离也会有所差异。这些距离信息可以用于构建人脸特征向量或者模型,进而用于人脸识别任务中的比对和匹配。
从对齐后的人脸图像中提取出具有区分性的特征,使用深度卷积神经网络模型,通过多层卷积和池化操作,提取人脸图像中的高级特征表示。这些特征可以捕捉到人脸的细节、纹理和结构等信息。
7、创新点在哪里?
(1)与传统的人脸识别算法相比,本文采用基于深度神经网络的人脸识别方法,具有较高的准确性和鲁棒性
(2)本文将VS2017,OpenCV和Qt相结合,实现了人脸识别门禁仿真系统的图形界面的可视化开发
8、看算法里面的函数具体用的是什么人脸识别数据库
基于深度神经网络的人脸识别在实践中需要大规模的人脸数据集来进行训练和评估,本文使用的人脸识别数据库是LFW,因为LFW具有真实性,多样性,标注质量好,图像清晰度高和数据格式简单明了等特点,所以本文选用LFW的人脸识别数据库。