人脸识别主要算法,有哪些传统人脸识别算法
3358 www。Sina.com/http://www.Sina.com/http://www.Sina.com/http://www.Sina.com/
1.设计N,随着N的增加,精度下降最小的解具有很强的实际意义。1:N人脸的框架大致分为人脸检测、人脸定位、人脸映射和人脸识别损失设计,结构如下图所示。
图1:第一面的主框架:N
1:N在学术界得到了广泛的研究,在人脸检测和人脸定位方面取得了很好的效果(MTCNN,TCDCN等。)在业内。目前主要性能提升的是DeepFace和DeepID,框架是CNN Softmax。对于人脸识别特征映射,网络无法满足人脸比对的需求;DeepID2、DeepID2和DeepID3都采用Softmax对比损耗。相似特征的L2距离尽可能小,不同类型特征的L2距离大于一定区间;Net是目前引用最多的FaceNet比较法。提出了三重损失,并以三重损失的形式进行优化,以获得类内紧密性和类间差异。SphereFace是对L-Softmax的改进。它将权重W归一化,将训练集中在深度特征映射和特征向量角度的优化上,从而减少样本数的不平衡。中心损失学习所有级别的中心,将所有级别的所有特征向量拉到相应级别的中心,与Softmax配合使用;COCO loss归一化权重C,归一化特征F,乘以比例因子,在LFW上达到99.86%;损失还包括L2-Softmax、附加利润损失、CosFace和ArcFace。
本文在FaceNet框架的基础上,对MTCNN进行了改进,实现了更加准确的人脸定位结果。同时对训练样本进行增强,通过使用随机人脸旋转、随机切割、人脸颜色和饱和度变换,进一步降低训练误差。三重损失改为最新的COCO损失,最小化结构风险的正则化因子为10-3,斜率下降采用RMSPROP,小批量为100,实验环境为GT1080TI,训练时间为48-55h。
第二章功能和原理。Sina.com/http://www.Sina.com/
执行人脸检测和切割、定位和归一化。通过地标获取人脸特征点,通过与正面人脸对比学习单应矩阵。单应矩阵旋转人脸图像,旋转效果明显优于MTCNN配准。
图2:面部特征点的定位结果
图3(a)原始图像b) MTCNN注册结果c)文本注册结果
http://www。Sina.com/http://www.Sina.com/
面部特征点可用于使面部与平均面部一致,并且面部特征点的位置在一致后的所有图像中基本相同。直观上,许多论文验证了在注册图像中训练的人脸识别算法更有效。
本文采用最新的TCDCN模型第,通过一些多样而细致的工作,优化和提高了特征点的定位精度。在检测面部特征点时,我们学习很多任务,比如性别、戴眼镜、bbdbq、面部姿态等。使用这些辅助属性有助于更好地定位特征点。根据本文的结果,对检测人脸的特征点确实有帮助。模型1:1优于现有的方法,特别是在遮挡和处理大姿态人脸图像时有效。2)与现有的最先进的级联深度模型方法相比,动态地降低了模型的复杂度。
图4:4:TCD cn的结构
功能损失是指不同任务的损失函数的直接相加。但是在人脸特征点检测的任务中,不同的任务有不同的损失,特征点检测是平方和误差,这是其他方面。
类任务是交叉熵损失,所以最终损失是:
(1)
2.1.2单应性矩阵
平面的单应性是从一个平面到另一个平面的投影映射。如果成像仪上从点Q到点Q的映射使用齐次坐标,单应性(如图13所示)可以表示为:
(2)
其中s是任意标度的比值。h由两部分组成:用于定位和观察的物平面的物理变换和在相机中使用参数矩阵的投影。
图5:平面单应性示意图
物理变换部分是与观察到的图像平面相关的部分旋转R和部分平移T的效果的总和,可以表示为:
(3)
m是摄像机中的参数矩阵,即:
(4)
单应性可以重写为
(5)
因为单应是研究从一个平面到另一个平面的映射。因此,我们可以使z=0,即物体平面上的点用x,y表示,可以简化为平面坐标中的,即可以推导为:
(6)
其中,因此最终的单应矩阵可以表示为:
(7)
因此,通过归一化人脸并存储其特征点,可以计算人脸的特征点与标准人脸的特征点之间的单应矩阵,通过改变关系可以将人脸归一化到统一的标准。通常,估计矩阵只需要4对点。为了更准确地估计图像的变换关系,将人脸的所有特征点加入计算,可以列出68组方程,方程的个数大于有解的系数。用RANSAC算法求解这个超正定方程,每次计算4个点,选取内点个数最多的一个作为最终结果。
(8)
实现效果如下:
图6:单应矩阵估计(a)标准人脸和特征点(b)-(d):通过变换得到标准人脸。
2.2 Embedding
根据FaceNet的思想,选取不同的卷积神经框架作为FaceNet的前置输入,对特征进行L2归一化后,进行特征映射,将特征映射到128维向量。
图7:7:FaceNet的框架图
ResNet有效解决了深度卷积神经网络难以训练的问题。这是因为在误差反向传播的过程中,梯度通常变得越来越小,因此权重的更新量也变得越来越小。这就导致了远离损失函数的那一层训练速度很慢,而且随着层数的增加,这种现象更加明显。通过效果比较,最终选择图8(d)中的结构作为深度结构,使用CASIA上的训练结果作为预训练模型。
图8:不同的卷积神经网络框架
2.3相似度计算(LOSS选择)
通过相似度计算函数获得人脸之间的距离,通过交叉验证法设定最佳阈值,实现人脸与非人脸的分离。“田蜜损失”,其目的也是:
拉近相似样本的特征(类内方差小),拉长不同分类样本的特征(类间方差大)。
公式是:
(9)
我们会发现这种损失的优化目标是分子越大越好(类内Cos相似度高),分母越小越好(类间Cos相似度低)。通过可视化不同的损失函数,对比不同相似度计算之间的聚类,不难看出COCO损失在聚类上明显更胜一筹,最终选择COCO损失作为最终损失。
图9:不同损失之间的比较
2.4梯度下降方法
由于分母中的变量S在调整学习率时,一直在累积一小批按元素平方的随机梯度,因此在迭代过程中,目标函数的自变量的每个元素的学习率一直在下降(或不变)。因此,当前期迭代中学习率下降较快,当前解仍然较差时,Adagrad在后期迭代中可能会因为学习率较低而难以找到有用的解。针对这个问题,RMSProp算法对Adagrad做了一点修改。RMSProp算法使用小批量随机梯度,根据元素的平方对移动平均变量S进行指数加权,并将每个元素初始化为0。给定超参数,01,在每次迭代中,RMSProp首先计算小批量随机梯度G,然后根据元素的平方项G 2对梯度进行指数加权移动平均。
第三章总结了样本放大、模型参数设置和高识别稳定性的特点。选择Loss增加基于FaceNet的识别率。人脸对齐和预处理效果好,环境适应性强。
第四章开发工具和技术编译环境:Python 3.5 (anaconda3)、Tensorflow 1.2、Scikit-learn、opencv-python、h5py、Matplotlib、Pillow、requests、psutil。
硬件环境:I7-7700K,1080TI,64G内存。
技术:人脸对齐,单应矩阵估计,Facenet,COCO Loss,梯度下降法,深度学习(卷积神经网络设计)。
下一篇:人脸识别之数据、网络结构、损失函数
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。