https://blog.csdn.net/muhen1234/article/details/81776822
多角度人脸识别
在人脸识别过程中,摄像头的角度是相对固定的,但是人脸不是固定的。实际上,当人脸角度和采集的角度比较一致(角度较小的偏转)时,才有较精确的结果。
关键点:
1、2D图像导致人脸比对困难。
2、如何使人脸角度偏转。
思路分析:
直接在数据库比对。
这一思路的实现要求数据库中有足够多的数据,但是并不现实,因为我们不可能对所有人进行不同角度的人脸采集,同时也不能接受该数据量下的时间成本。
对2D图像直接进行旋转、反转等操作。
这一操作要求对2D图像进行直接或间接的操作,对于简单的人脸图像,这种操作方式具备相当的性价比。对于复杂且难以处理的图像就不那么友好了。
转化为3D图像。
对于计算机而言,2D图像下,不同的人在同样的角度下的识别率远大于同样的人不同的角度的。因为角度的改变对于计算机而言是灰度的变化。所以将2D图像转化为3D图像就可以很轻松的避免这些问题。不过由于2D转为3D会产生大量的数据,对于服务器和数据传输的要求非常高。
解决方法:
PCA方法:PCA方法通过消除数据的相关性,找到一个空间,使得各个类别的数据在该空间上能够很好地分离
缺点:无法在角度偏大时进行识别。
ASM和AAM:这两种方法都是基于训练集建立的统计模型方法,通过对某一类特定图像进行建模,来进行特征提取。
缺点:在遮挡或者姿态角度偏大的情况下不尽人意。
sift特征提取:图像的局部特征,对旋转、尺度缩放、亮度变化保持不变,对视角变化、仿射变换、噪声也保持一定程度的稳定性。
缺点:实时性不高,有时特征点少,边缘光滑的目标无法提取。
OpenCV方法:分为正脸和侧脸,只是识别图形上朝一边的脸,如果想要识别朝另一边的脸就需要对图片进行水平翻转,再进行检测。
深度学习:仿照人脑解析数据。深度学习的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。
2D和3D结合解决多角度问题。
解决方案:
现在多是采用深度学习人脸识别技术和3D人脸识别技术。
深度学习的多角度人脸识别算法:
基本流程:
构建深度学习训练数据集
训练一个深度人脸分类器
应用分类器进行人脸检测
将侧面图像作为输入,相应的正面图像作为输出,监督模型学习出从不同姿态的侧面图像到正面图像的映射,增加了识别中的有效面部信息。
2、一种利用3D人脸可变模型解决2D图像中姿态角度偏大问题的方法:
给神经网络输入通用正面人脸模板模型和2D图像,神经网络识别获取图像中人脸的姿态角度参数矩阵,利用这些参数就可以使模型“做出”和图像中人脸同样的脸部朝向。反过来,对改变姿态之后的3D模型,我们给它“拍个照”,变成2D图像,那么3D模型上的关键点通过“拍照”,就映射到2D图像上来了,得到一个初步的粗定位;此时,再根据关键点坐标,把原始图像切片,输入到另外的网络来调整3D模型的形状参数,使得模型更加精确的拟合2D图像,这样多次迭代之后,关键点便被精确定位出来。该方法开创性地利用3D人脸可变模型来学习2D图像,并且通过级联CNN神经网络回归来提高精确度,使得即使大姿态下,被遮挡的关键点也能被很好的定位出来。
图解:
3D模板+2D图像—>获取参数矩阵—>3D人脸朝向—>“拍照”(3D)—>粗定位(2D图像)—>切片原始图像,调整3D模型的形状参数—>反复迭代—>精确定位关键点
即:
(1)对图像进行轮廓定位态校正;
(2)全局粗定位;
(3)局部精细定位。
3、一种基于3D模型的人脸旋转方法:基于姿态补偿的算法。
新建一个特定人脸3D网格模型,然后进行旋转角度的初步估计,之后将待识别的照片和数据库中所有的人脸模型在初步估计的旋转角度处所投影的照片进行匹配,并分别计算他们的相关系数,然后选择数据库中的人脸模型。假设有N个人脸模型可以匹配,依次进行更详细、更精确的比较。
4、3D技术与深度学习相结合。
利用深度学习技术对单张人脸图片进行3D重构,通过重构的模型进行旋转,可以模拟出多角度人脸图片,采用这一技术可以有效增强人脸识别效果。
其他方案:
除了上述方法外,还有一些其他方法,基本都是通过算法和模型进行多角度人脸识别。
如基于回归函数的多角度人脸识别算法。
DDFD(Deep Dense Face Detector)
基于迭代特征选择的快速多角度人脸识别
表示学习和图像生成。表示学习是指在某一个场景下获取的多张不同姿态的图像,将这些图像作为输入,通过提出的DR-GAN网络模型,产生一个固定长度的特征向量,该向量表示的是这个人的特征,与姿态光照无关,同时该网络还可以根据输入的Noise/Pose编码,生成不同姿态的人脸。
总结:
多角度人脸识别是多姿态人脸识别的分支,目前已经有许多解决方案,在一些企业已经有了相应的产品。
总的来说,解决角度问题有三种思路:第一种思路是学习并记忆多种角度特征,这对于多角度人脸数据可以容易获取的情况比较实用;第二种思路是基于单张视图生成多角度视图,可以在只能获取用户单张照片的情况下合成该用户的多个学习样本,可以解决训练样本较少的情况下的多角度人脸识别问题,从而改善识别性能;第三种思路是基于角度不变特征的方法,即寻求那些不随姿态的变化而变化的特征。
参考(部分):
https://blog.csdn.net/app_12062011/article/details/78636122——深度学习
https://blog.csdn.net/jscese/article/details/54409627——OpenCV
https://www.cnblogs.com/wangguchangqing/p/4853263.html——sift特征提取
https://www.leiphone.com/news/201612/QiLCizc0tl6DaKqC.html?viewType=weixin——3D技术
https://blog.csdn.net/xiaomage_gf/article/details/50510997——PCA技术
原文出处:https://blog.csdn.net/weixin_42137700/article/details/81806470