人脸识别的基本原理

人脸识别系统的组成

人脸识别算法主要包含三个模块:

人脸检测(Face Detection)
人脸对齐(Face Alignment)
人脸特征表征(Feature Representation)

 人脸检测用于确定人脸在图像中的大小和位置,即解决“人脸在哪里”的问题,把真正的人脸区域从图像中裁剪出来,便于后续的人脸特征分析和识别。下图是对一张图像的人脸检测结果:

人脸对齐

同一个人在不同的图像序列中可能呈现出不同的姿态和表情,这种情况是不利于人脸识别的。所以有必要将人脸图像都变换到一个统一的角度和姿态,这就是人脸对齐。它的原理是找到人脸的若干个关键点(基准点,如眼角,鼻尖,嘴角等),然后利用这些对应的关键点通过相似变换(Similarity Transform,旋转、缩放和平移)将人脸尽可能变换到标准人脸

 

人脸特征表征

第三个模块是本文重点要讲的人脸识别算法,它接受的输入是标准化的人脸图像,通过特征建模得到向量化的人脸特征,最后通过分类器判别得到识别的结果。这里的关键是怎样得到对不同人脸有区分度的特征,通常我们在识别一个人时会看它的眉形、脸轮廓、鼻子形状、眼睛的类型等,人脸识别算法引擎要通过练习(训练)得到类似这样的有区分度的特征。

每个机器学习算法都会将数据集作为输入,并从中学习经验。算法会遍历数据并识别数据中的模式。例如,假定我们希望识别指定图片中人物的脸,这些脸部图片存在以下特征:

  • 脸部的长度/宽度。

  • 由于图片比例会被调整,长度和高度可能并不可靠。然而,在放缩图片后,比例是保持不变的——脸部长度和宽度的比例不会改变。

  • 脸部肤色。

  • 脸上局部细节的宽度,如嘴,鼻子等。

 

显而易见,此时存在一个模式——即不同的脸有不同的维度,相似的脸有相似的维度。有挑战性的是需要将特定的脸转为数字,因为机器学习算法只能理解数字。表示一张脸的数字(或训练集中的一个元素)可以称为特征向量。一个特征向量包括特定顺序的各种数字。

举一个简单的例子,我们可以将一张脸映射到一个特征向量上。特征向量由不同的特征组成,如:

  • 脸的长度(cm)

  • 脸的宽度(cm)

  • 脸的平均肤色(R,G,B)

  • 唇部宽度(cm)

  • 鼻子长度(cm)

当给定一个图片时,我们可以标注不同的特征并将其转化为如下图所示的特征向量:

此一来,我们的图片现在被转化为一个向量,可以表示为(23.1,15.8,255,224,189,5.2,4.4)。当然我们还可以从图片中衍生出无数的其他特征(如,头发颜色,胡须,眼镜等)。然而在这个简单的例子中,我们只考虑这五个简单的特征。

现在,一旦我们将每个图片解码为特征向量,问题就变得更简单。明显地,当我们使用同一个人的两张面部图片时,提取的特征向量会非常相似。换言之,两个特征向量的“距离”就变得非常小。

此时机器学习可以帮我们完成两件事:

  • 提取特征向量。由于特征过多,手动列出所有特征是非常困难的。一个机器学习算法可以自动标注很多特征。例如,一个复杂的特征可能是:鼻子长度和前额宽度的比例。手动列出所有的这些衍生特征是非常困难的。

  • 匹配算法:一旦得到特征向量,机器学习算法需要将新图片和语料库中的特征向量进行匹配。

 

参考

https://blog.csdn.net/iodjSVf8U1J7KYc/article/details/84312228

https://www.cnblogs.com/haiyang21/p/11208293.html

 

 

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值