Loading
0

未来即将“触脸可及”,人脸识别技术大揭秘!

慧都智能制造解决方案

“你最像哪位明星?”对比照

今天,我们将从技术专家给出的流程图切入,对“你最像哪位明星?”这张小应用对比照背后的基本流程与算法做解析。

图1:人脸技术的基本流程

如图 1 所示,用户在应用中输入一张图像(例如:特朗普的图像),人脸识别的基本流程如下:

  • 通过人脸检测技术,找到输入图像中的人脸位置。
  • 关键点定位技术,将人脸中的关键点位置找到,例如:眼睛、鼻子、嘴巴以及轮廓上的关键点。
  • 人脸特征提取步骤,将人脸位置进行校正,通过特征提取方法,计算刻画人脸的特征向量。
  • 对于输入图像(a),可以计算得到对应的特征向量 A;同时针对应用的明星人脸库,可以存储为人脸特征库 DB。
  • 将 A 与 DB 中每一个向量逐一计算相似度,然后根据相似度排序的结果,就可以将最相似的明星脸找到,例如图像(d)中的明星。
  • 图像变形的例子(b)和(c),则是采用计算机图形学方法进行人脸纹理变换的结果。

其中,人脸特征的用途可以分为特征比对和特征搜索两种:

  • 特征比对:将特征向量与预先存储的人脸特征数据库进行相似度排序,得到与输入图像相似度最高的返回结果,一般是身份识别的结果。
  • 特征搜索:在应用人脸数据库中,返回与输入图像相似的结果。

下面分别对上述各步骤所涉及的算法和应用的技术,进行简单的介绍:

人脸检测技术

2000 年左右,美国科学家 Paul Viola和Michael J.Jones 提出了一种可以实时运行的人脸检测方法,即基于 Adaboost 的人脸检测方法。

该方法采用快速计算的 Harr 特征,通过 Adaboost 算法选择出有效特征和一系列的弱分类器(weak learner),最后以线性组合的方式得到最终的强分类器,提高了检测的速度和精确率。在 OpenCV 中,它有相应的训练算法和模型可以调用。

以此为基础,人们提出了各种不同形式的改进方法,例如基于 PixelDifference(PD)特征的检测方法。他们采用像素间的灰度差值作为特征,可以进一步提高检测速度。

更进一步,将 PD 特征进行归一化,提出了 Normalize Pixel Difference(NPD)特征,提高了对光照的鲁棒性。这些方法计算资源消耗少、模型简单,适合应用于移动设备。

通过近二十年的探索,人脸检测领域取得了丰富的研究成果,并在很多场合进行了落地应用。近几年,深度学习发挥出越来越大的威力,将人脸检测技术推向了新的高度。

例如:基于 FasterR-CNN 的人脸检测方法,取得了在 FDDB 测试集合上的优秀检测效果。图 2 给出了该方法的一些人脸检测的示例图。

图 2:人脸检测示例图

上图的绿色框是人工标注位置,红色框是算法输出的检测结果。

人脸关键点定位技术

人脸关键点定位的目的是在人脸检测的基础上,进一步确定脸部特征点(眼睛、眉毛、鼻子、嘴巴、脸部外轮廓)的位置。

根据不同应用,人脸关键点的数量定义各不相同,少则几个,多则上百个。这个技术的核心是如何精确计算出人脸中关键点的位置,一般涉及到的算法分成 3 种。

  • ASM/AAM 经典算法。它由英国科学家 Tim Cootes 提出,基本思路是将人脸的纹理特征和各个特征点之间的位置进行约束结合。其中,Stam 开源包是 ASM 的一种实现方式,可以在实际中运用。
  • 基于 Boosting Tree 的算法。例如基于 Ensemble of RegressionTress(ERT)算法的人脸关键点检测方法,学习每个关键点的局部特征,然后将特征组合起来,使用线性回归检测关键点。

该方法检测速度快,定位效果也不错。开源的 dlib 库中(http://dlib.net/)有这个算法的完整实现方法。

  • 基于深度学习的算法。例如香港中文大学的 Tang Xiaoou 教授所在研究组提出了 CNN 的级联结构,在关键点定位上取得了不错的效果。

如图 3 所示,是一些关键点定位的示例图。

图 3:人脸关键点定位的示例图

人脸特征提取技术

经典的特征描述方法,大都可以运用于人脸特征提取技术,包括著名的特征提取算法 SIFT (Scale-invariant Feature Transform)、HoG(Histogram of Oriented Gradient)等。

这些算法具有很强的特征提取能力,但是手工选取特征是一件非常费力、启发式(需要专业知识)的方法,而且它的调节需要大量的时间。

在大数据时代,人们可以获得海量的图像数据,采用深度学习方法,可以获得更加高效的人脸特征。目前,深度学习成为了提取特征的主流方法,在人脸识别领域屡创佳绩。

人脸识别后续应用

经过特征提取,人脸图像信息转换成了高维特征向量,例如 4096 维浮点的深度学习特征向量。后续的应用,就可以根据实际场景进行不同的领域探索了,例如人脸身份识别、人脸图像搜索、人脸支付等。

除了应用在金融社保、教育安防行业等比较利益攸关的场合外,人脸识别技术也可以应用在其他轻松娱乐的行业,比如:直播美颜,视频特效等领域。

  • 直播美颜:现在的直播平台都会提供人脸美颜的功能,让主播的形象更加光彩照人。
  • 视频特效:通过手机拍摄,在朋友圈中分享一些丰富多彩的特效视频,是一件很 cool 的事情。

图 4:视频特效

这类应用中所涉及的底层技术(人脸检测、关键点跟踪)大部分都需要在手机上实时运行,带来的技术挑战是:如何在保证准确率的同时具有非常高的运行速度,以便达到手机上实时处理的效果。

目前所采用的解决方案大部分是通过算法优化和模型优化的工程手段,将算法移植到手机端,例如:将基于 Adaboost 的人脸检测算法,和基于 ERT 的关键点检测算法相结合,分别通过样本训练得到较小规模的模型,从而适合于在手机端运行。

通过这些不同的应用方式,人脸识别技术不但为人们的生活带来了便利,也增添了生活的乐趣。互联网时代,人脸识别技术应用到很多场合,如何保证数据安全以及技术的合理使用,是不容忽视的课题。只有安全合理的使用,我们才能发挥好人脸识别技术的作用,为人们生活带来福利。

张洪明

蘑菇街高级技术专家

张洪明(蘑菇街花名:民达)2015 年加入蘑菇街,负责美丽联合集团图像技术的研发工作,创建和带领一个算法团队,与工程和业务团队合作,为集团提供图像技术支持。主要工作包括:图像搜索、图像识别、商品图像内容分析等;业务涉及电商导购、直播等场景。在加入蘑菇街之前,分别在 NEC 中国研究院、阿里巴巴集团,从事图像技术和机器学习的研究和应用。