技术动态 > 正文
深度解析:人脸识别核心技术
2019/1/10 09:01   OFweek电子工程网      关键字:人脸,识别,技术,检测,核心,深度      浏览量:
随着大数据时代的到来,“人脸”也将成为数据的一部分,人脸识别如何实现?本文将为大家从人脸检测、人脸定位、人脸校准以及人脸对比等方面详细阐述人脸识别的原理与实现方式。


二、人脸定位

面部特征点定位在人脸识别、表情识别、人脸动画等人脸分析任务中至关重要的一环。人脸定位算法需要选取若干个面部特征点,点越多越精细,但同时计算量也越大。兼顾精确度和效率,我们选用双眼中心点、鼻尖及嘴角五个特征点。经测试,它们在表情、姿态、肤色等差异上均表现出很好的鲁棒性。

人脸定位接口程序如下所示,需要先加载预先训练好的模型,再进行定位检测:

   人脸定位程序的效果如下所示:

    本算法在AFLW数据集上的定位误差及与其他算法的对比情况:

    三、人脸校准

本步骤目的是摆正人脸,将人脸置于图像中央,减小后续比对模型的计算压力,提升比对的精度。主要利用人脸定位获得的5个特征点(人脸的双眼、鼻尖及嘴角)获取仿射变换矩阵,通过仿射变换实现人脸的摆正。

目标图形以(x,y)为轴心顺时针旋转Θ弧度,变换矩阵为:

    人脸校准C++代码可参考如下所示:

     一般此步骤不建议使用外部库做变换,所以这里提供仿射变换python源码以供参考:

    人脸校准的效果如图所示:

    四、人脸对比

人脸比对和人脸身份认证的前提是需要提取人脸独有的特征点信息。在人脸校准之后可以利用深度神经网络,将输入的人脸进行特征提取。 如将112×112×3的脸部图像提取256个浮点数据特征信息,并将其作为人脸的唯一标识。在注册阶段把256个浮点数据输入系统,而认证阶段则提取系统存储的数据与当前图像新生成的256个浮点数据进行比对最终得到人脸比对结果。

人脸比对流程的示意图如下所示:

    通过神经网络算法得到的特征点示意图如下:

而人脸比对则是对256个浮点数据之间进行距离运算。计算方式常用的有两种,一种是欧式距离,一种是余弦距离。x,y向量欧式距离定义如下:

x,y向量之间余弦距离定义如下:

余弦距离或欧式距离越大,则两个特征值相似度越低,属于同一个人的可能性越小。如下图,他们的脸部差异值为0.4296 大于上文所说的该模型最佳阈值0.36,此时判断两人为不同的人,可见结果是正确的。



[12 [3] [4

微信扫描二维码,关注公众号。