后来这个在心底抽芽多年的梦想被别人实现了,失落望之余

嗯,刷脸支付将

“刷脸”,顾名思义,背后是一项关键技能:人脸识别。

别看这两年由于在智好手机上的利用而大热,实在人脸识别技能最早的研究还要追溯到20世纪50年代,当时已经有科学家在研究人脸轮廓的提取方法,但受限于技能水平,这项技能的干系研究一度结束,直到20世纪80年代,人脸识别的方法才有了新的打破,神全心理学、脑神经学、视觉等干系知识被引入,人脸识别进入了新的发展阶段。

以是,当前阶段的人脸识别不是单一的技能,而是领悟了神全心理学、脑神经学、打算机视觉等多方面学科的技能。
不过,实质上它还是一项打算机视觉技能。

当然,IT之家做这篇文章的重点不在于回顾人脸识别的历史,而是和大家讲讲人脸识别背后的一些基本事理。

硬核科普一文看懂人脸识别技能流程

人脸识别技能系统的基本逻辑架构

我们每天用人脸识别技能解锁手机、结账付款,是那么的自然,但相信很少有同学深入思考这项技能背后是若何一个流程。

前面我们说,打算机视觉是人脸识别关系最紧密的技能。
以是我们从这一点入手。

打算机视觉,普通来说便是利用摄像头等设备代替人眼,来获取图像,利用打算机对图像信息进行处理,综合人类的认知模式来建立人类视觉的打算理论。

这个中,最难的无疑是如何处理图像信息、如何仿照人类的认知模式。

为理解决这些问题,打算机视觉还引入了图像处理、模式识别、图像理解、图像天生等学科的知识。

图像处理便是把原始图像转换成打算机更随意马虎识别的图像;模式识别,便是打算机判断自己要识别的是什么和怎么识别的过程;图像理解,便是对图像中描述的景物进行剖析;图像天生,举例来说便是当图像的部分信息缺失落时,能够将缺失落的信息补上……

这些都是打算机视觉须要借助的学科技能。
这里面我们要着重讲的是模式识别,它是一个独立的理论体系,详细到打算机视觉领域的运用,它表示将打算机表示出来的图像和同等的种别进行匹配的过程。

有点懂是吧。
IT之家为大家普通阐明一下,所谓“识别”,便是先认识,然后辨别。
认识什么?认识的是图像和从图像中总结的目标物体的特色
怎么辨别?便是将总结出来的特色和自己已经节制的特色库进行比对,然后才能实现辨别。

我们人类识别一样物体也是遵照这个逻辑,先总结特色,然后比对。
至于前面的“模式”,就有点抽象了,你可以理解为一种规律,它影响着特色和类型比对的结果。

没错,人脸识别实质上也是这个过程。

以是,我们沿着模式识别的思路,来看看它的整体过程:分别为预处理、特色提取和分类等。
我们画出如下流程图:

预处理是第一步,但是这部分事情可能很多很杂,例如减少图像中的噪声滋扰、提高清晰度、还有包括图像滤波、变换、转码、模数转化等。

特色提取,便是在预处理后的图像中,提取对识别有明显浸染的特色,并在这个过程中降落模式特色的维数,令其便于处理。
这是一个繁芜的过程,后面我们讲到详细方法时候会有表示;

分类,便是对提取到的特色值按照一定的准则进行分类,便于决策。

举个例子,打算机要识别出这张照片中的男人,当它拿到照片时,可能以为画面太暗,先提个亮度,然后又创造噪点太多,再做个降噪……一顿操作后觉得可以了,再将照片转化为数字信息,这个过程是预处理。

提取出来的特色值会进入单独的特色空间,由于这样可以更好地识别和做分类。
接下来,就要对特色空间里的数据进行分类了,让它们眼睛归眼睛,鼻子归鼻子,头发归头发……基于这些分类好的数据,打算机才可以进行识别判断和决策。

当然,为了方便大家理解这个逻辑过程,IT之家在这里只是举例粗略地解释,可能不准确,实际的步骤也是相称繁芜的,还要考虑各种滋扰的成分,例如图像的质量不清晰、背景繁芜、图像光照分布不屈均、目标姿势角度涌现扭曲或者佩戴了头饰、眼镜以及张了髯毛、化了妆等等各种情形。

还有要解释的一点是,这个模式识别的系统是须要一个自我演习、学习的过程的,个中最主要的是对前面分类缺点率的演习(分类器演习),由于在前面的分类中,我们无法担保分类的结果是100%精确的,但必须掌握在一定的缺点率之类,这必须通过大量的演习样本来不断改动,令缺点率符合哀求。

好了,基于以上对打算机视觉模式识别的谈论,我们就可以给出人脸识别系统的紧张功能模块了:

可能有小伙伴以为上面这个举出功能模块太大略了,以是我们再精确一些,给出下面的逻辑架构图,相信不难明得:

人脸识别的主流方法

在上面一部分,我们紧张先容了人脸识别的基本逻辑流程,实在人脸识别的基本思想是比较类似的,都是要将图像中的特色提取出来,转换到一个得当的子空间里,然后在这个子空间里衡量类似性或分类学习。
但问题在于,对客不雅观天下采取若何折衷统一且有成效的表示法?我们要找到若何得当的子空间,若何去分类,才能区分不同类,聚拢相似的种别?为办理这些问题,衍生出了很多种方法和解决方案。

以是说,我们所说的人脸识别技能是笼统的,事实上,这是一个很多技能和方法的凑集。

我们不妨依据上面的逻辑构造图来逐步解释。

1、预处理

人脸图像的预处理,这一步没有太多可说的,紧张包括肃清噪声、灰度归一化、几何校正等,这些操作一样平常有现成的算法可以实现,属于比较基本的操作。
不过要解释的是,这里紧张说的是静态人脸图像的预处理,如果是动态人脸图像的预处理,就比较繁芜了,一样平常是要先将动态人脸图像分割成一组静态人脸图像,然后对人脸进行边缘检测和定位,在做一系列的处理,这里就不展开了。

2、特色提取

图像特色的提取是比较关键的一步(上文所说的模式空间向特色空间的超过),但对付图像处理来说也是比较低级的一步。
目前关于图像特色提取的方法有很多,但实在我们想一想,常日而言图像的特色还是可以归类的,例如颜色特色、纹理特色、空间关系特色、形状特色等,每一种特色都有匹配的方法,个中有一些比较经典、好用的方法,例如HOG特色法,LBP特色法,Haar特色法等,

HOG特色也叫方向梯度直方图,它是由Navneet Dalal和Bill Triggs在2005年的一篇博士论文中提出的。
我们大略来看它是怎么进行的。

我们以这张照片为例,第一步是要将它变成黑白的照片,由于色彩信息在这里对识别并没有帮助。

在这张黑白照片中,我们从单个像素看起,不雅观察它周围的像素,看它是往哪个方向逐渐变暗的,然后用箭头表示这个像素变暗的方向。

如果对每个像素实行这样的操作,这样所有像素都会被这样的箭头取代,它们表示了像素明暗变革的方向。
每一个这样的箭头表示明暗梯度。

事实上,对付每一个像素,给定坐标系,我们能够求出它的梯度方向值。
打算的方法比较繁芜,我们不须要理解,只须要知道这一步是为了捕获目标的轮廓信息,同时进一步弱化光照的滋扰。

如果因此这样的办法做提取的话,打算量会很大。
以是我们会把图像分割成8x8像素的小方块,叫做一个Cell,然后对每个Cell打算梯度信息,包括梯度的大小和方向。
得到的是这个Cell的9维特色向量。

相信到这里大家有些不懂了。
IT之家再为小伙伴们轻微阐明一下,实在这一步的目的是为每个Cell构建梯度方向直方图,直方图便是我们大家熟知的条形统计图,这个直方图中,X轴是将方向划分的区间,Navneet Dalal等人研究表示划分9个区间效果是最好的,如果是180°的方向,每个区间就代表20°。
y轴表示某个方向区间内的梯度大小。
这样就即是是每个Cell的特色描述符。

▲大致便是这个意思(图片来源:加州大学旧金山分校图像处理论文)

这里还有一步,便是如果你的图像受到光照的影响比较大,那么还可以将一定的Cell组成一个block,例如2x2个Cell,这样每个block上便是36维的特色向量,然后对这36维特色向量做规范化(详细若何规范,涉及到高档数学的知识,大家也不须要知道)。

如果我们输入的图像大小是256x512像素,那么就有32x64=2048个Cell,有31x63=1953个block,每个block有36维向量,那么这个图像就有1953x36=70308维向量。
这70308维向量便是这个图像的HOG特色向量了。

当然,上面这些步骤你也可都不理解,你只须要知道,末了原始的图像被表示成了HOG的形式,如下图:

然后根据这个HOG形式,在我们的库中找到与已知的一些HOG样式中,看起来最相似的部分。

3、图像识别

人脸识别技能经由科学家多年的研究和发展,已经形成了多种研究方向和更多种的研究方法,如果我们梳理一下,紧张包括基于几何特色的方法、基于模板的方法、基于模型的方法以及其他方法。

基于几何特色的方法是比较早期、传统的方法了,它紧张是研究人脸眼睛、鼻子等器官的形状和构造关系的几何描述,以此作为人脸识别的主要特色。

基于模板的方法基本思想是拿已有的模板和图像中同样大小的区域去比对,包括基于干系匹配的方法、特色脸方法、线性判别剖析方法、神经网络方法等。

基于模型的方法的方向是对人脸的显著特色进行特色点定位,然后进行人脸的编码,再利用相应的模型进行处理实现人脸识别,例如隐马尔柯夫模型,主动形状模型和主动外不雅观模型的方法等。

▲不同的人脸识别算法

在人脸识别领域,有一些比较经典的算法,例如特色脸法(Eigenface)、局部二值模式法、Fisherface等,不过IT之家在这里还是还是以为与时俱进比较好,以是选择一个目前运用比较广泛且盛行的方法作为示例,叫做OpenFace。
当然,我们不做实际的测试,只是通过它来理解识别的事理。

OpenFace属于基于模型的方法,它是一个开源库,包含了landmark,head pose,Actionunions,eye gaze等功能,以及演习和检测所有源码的开源人脸框架。

在前面的步骤中,IT之家已经为大家先容如何通过HOG的方法将图像中人脸的特色数据提取出来,也便是成功检测到了人脸。

这时又有一个问题,便是这个人脸的姿势彷佛不是那么“正”,同样一个人,如果她的姿势,面部的朝向不同,人类仍旧能认出她来,而打算机可能就认不出了。

办理这个问题,有一个办法,便是检测人脸紧张特色的特色点,然后根据这些特色点对人脸做对齐校准。
这是Vahid Kazemi和Josephine Sullivan在2014年发明的方法,他们给人脸的主要部分选取68个特色点(Landmarks),这68个点的位置是固定的,以是只须要对系统进行一些演习,就能在任何脸部找到这68个点。

图片来源:OpenFace API阅读文档(点此前往)

有了这68个点,就可以对人脸进行校正了,紧张是通过仿射变换将原来比较歪的脸摆正,只管即便肃清偏差。
这里的仿射变换紧张还是进行一些旋转、放大缩小或轻微的变形,而不是夸年夜的扭曲,那样就不能看了。

▲过程大约是这样,原来的脸被进行了一定程度的校正(图片来源:OpenFace github解释页面)

这样我们把原始的人脸图像以及HOG的特色向量输入,能够得到一张姿势精确的只含有人脸的图像。

把稳,到这一步我们还不能直接拿这张人脸图像去进行比对,由于事情量太大,我们要做的是连续提取特色。

接着,我们将这个人脸图像再输入一个神经网络系统,让它为这个脸部天生128维的向量,也可以说是这个人脸的128个丈量值,它们可以表示眼睛之间的间隔,眼睛和眉毛的间隔、耳朵的大小等等。
这里只是方便大家理解而举例,实际上详细这128维的向量表示了哪些特色,我们不得而知。

当然,这一步提及来大略,实在难点在于如何演习这样的一个卷积神经网络。
详细的演习方法不是我们须要理解的,但我们可以理解一下演习的思路。
演习时我们可以输入一个人脸图像的向量表示、同一人脸不同姿态的向量表示和另一人脸的向量表示,反复进行类似的操作,并不断调度,调度的目标是让同一类对应的向量表示尽可能靠近,实在也便是同一个人的向量表示尽可能间隔较近,同理,不同类别的向量表示间隔尽可能远。
至于人工智能神经网络演习的基本事理,大家可以查看IT之家之前发布的《AI不是科幻电影里的大水猛兽,而是被逐步变革的生活办法》这篇文章。

实在演习的思路也很好理解,由于一个人的人脸不管姿态怎么变,在一段韶光内有些东西是固定的,比如眼睛间的间隔、耳朵的大小、鼻子的长度等。

在得到这128个丈量值后,末了一步就大略了,便是将这128个丈量值和我们演习、测试过的所有面部数据做比对,丈量值最靠近的,便是我们要识别的那个人了。

这样就可以完成一次人脸的识别。

总结

人脸识别技能经由70多年的发展,到本日已经发展成为一门以打算机视觉数字信息处理为中央,糅合信息安全学、措辞学、神经学、物理学、AI等多学科交合的综合性技能学科,内涵已极为丰富。
而IT之家在本文试图为大家讲解的,只是人脸识别最根本和普通的事理以及相对单一的用例剖析,显然无法涵盖人脸识别领域所有的内容,只是希望借此对大家理解、认识如今我们已经习气利用的人脸识别功能有所帮助。

国际调研机构Gen Market Insights发布的数据显示,到2025年底环球人脸识别设备市场代价将达到71.7亿美元,智好手机上对人脸识别技能的广泛运用,只是为我们理解这项技能供应了一个契机,未来,随着5G万物互联时期的到来,智能硬件市场将得到极大扩展,那才是人脸识别技能真正大展技艺的天地。

嗯,不错,期待这个时期早日到来,到时候

本文参考资料:

沈理、刘翼光,熊志勇,2015-11-16,《人脸识别事理及算法:动态人脸识别系统研究》

CSU985,CSDN,2018-10-06,《图像特色提取总结》

人工智障v,简书,2018-07-30,《HOG特色——行人识别》

laolaonuonuo,CSDN,2018-03-10,《人脸识别紧张算法》

大数据v,CSDN,2018-08-23,《深度干货!
一文读懂人脸识别技能(建议收藏)》

leon1741,CSDN,2018-08-02,《深入浅出人脸识别事理》

zouxy09,CSDN,2015-04-25,《人脸识别之特色脸方法(Eigenface)》

csdn研发技能,CSDN,2018-01-26,《看OpenFace如何做到精准人脸识别》