主题 : 人脸识别的主流方法
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 605019
威望: 528932 点
无痕币: 59 WHB
贡献值: 0 点
在线时间: 62050(时)
注册时间: 2008-12-25
最后登录: 2024-04-19

0 人脸识别的主流方法

人脸识别的主流方法
在上面一部分,我们主要介绍了人脸识别的基本逻辑流程,其实人脸识别的基本思想是比较类似的,都是要将图像中的特征提取出来,转换到一个合适的子空间里,然后在这个子空间里衡量类似性或分类学习。但问题在于,对客观世界采用怎样协调统一且有成效的表示法?我们要找到怎样合适的子空间,怎样去分类,才能区分不同类,聚集相似的类别?为解决这些问题,衍生出了很多种方法和解决方案。
所以说,我们所说的人脸识别技术是笼统的,事实上,这是一个很多技术和方法的集合。
我们不妨依据上面的逻辑结构图来逐步说明。
1、预处理
人脸图像的预处理,这一步没有太多可说的,主要包括消除噪声、灰度归一化、几何校正等,这些操作一般有现成的算法可以实现,属于比较基本的操作。不过要说明的是,这里主要说的是静态人脸图像的预处理,如果是动态人脸图像的预处理,就比较复杂了,一般是要先将动态人脸图像分割成一组静态人脸图像,然后对人脸进行边缘检测和定位,在做一系列的处理,这里就不展开了。
2、特征提取
图像特征的提取是比较关键的一步(上文所说的模式空间向特征空间的跨越),但对于图像处理来说也是比较初级的一步。目前关于图像特征提取的方法有很多,但其实我们想一想,通常而言图像的特征还是可以归类的,例如颜色特征、纹理特征、空间关系特征、形状特征等,每一种特征都有匹配的方法,其中有一些比较经典、好用的方法,例如HOG特征法,LBP特征法,Haar特征法等,小编当然不可能一一讲解,所以这里选取其中一种——HOG特征法。
HOG特征也叫方向梯度直方图,它是由Navneet Dalal和Bill Triggs在2005年的一篇博士论文中提出的。我们简单来看它是怎么进行的。

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

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

千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 605019
威望: 528932 点
无痕币: 59 WHB
贡献值: 0 点
在线时间: 62050(时)
注册时间: 2008-12-25
最后登录: 2024-04-19

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



事实上,对于每一个像素,给定坐标系,我们能够求出它的梯度方向值。计算的方法比较复杂,我们不需要了解,只需要知道这一步是为了捕获目标的轮廓信息,同时进一步弱化光照的干扰。
如果是以这样的方式做提取的话,计算量会很大。所以我们会把图像分割成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样式中,看起来最相似的部分。
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 605019
威望: 528932 点
无痕币: 59 WHB
贡献值: 0 点
在线时间: 62050(时)
注册时间: 2008-12-25
最后登录: 2024-04-19

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的特征向量输入,能够得到一张姿势正确的只含有人脸的图像。
注意,到这一步我们还不能直接拿这张人脸图像去进行比对,因为工作量太大,我们要做的是继续提取特征。
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 605019
威望: 528932 点
无痕币: 59 WHB
贡献值: 0 点
在线时间: 62050(时)
注册时间: 2008-12-25
最后登录: 2024-04-19

接着,我们将这个人脸图像再输入一个神经网络系统,让它为这个脸部生成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如何做到精准人脸识别》
知足常乐
级别: 十方秋水

UID: 23
精华: 1
发帖: 261101
威望: 117114 点
无痕币: 2298 WHB
贡献值: 0 点
在线时间: 9389(时)
注册时间: 2007-11-24
最后登录: 2024-04-19

了解一下
事能知足心常乐 人到无求品自高
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 605019
威望: 528932 点
无痕币: 59 WHB
贡献值: 0 点
在线时间: 62050(时)
注册时间: 2008-12-25
最后登录: 2024-04-19

这个可以看看,了解一下。
十方秋水,漫长旅途.
级别: 十方秋水

UID: 116295
精华: 0
发帖: 111450
威望: 122808 点
无痕币: 4249 WHB
贡献值: 0 点
在线时间: 6088(时)
注册时间: 2011-03-27
最后登录: 2024-03-09

感谢楼主分享
Total 0.037579(s) query 4, Time now is:04-19 14:29, Gzip enabled 粤ICP备07514325号-1
Powered by PHPWind v7.3.2 Certificate Code © 2003-13 秋无痕论坛