0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

人脸识别的原理揭秘

汽车玩家 来源:百联科创中心科研中心 作者:百联科创中心科研 2020-01-01 10:17 次阅读

我们知道人脸识别在这几年应用的相当广泛,目前已有人脸考勤、人脸社交、人脸支付等一系列使用场景。“人脸识别”这项“黑科技”对生活中的各个领域都产生了非常重要的影响,特别这几年机器学习的流行,使得人脸识别在应用和准确率更是达到了一个较高的水准。

下面将带着大家揭秘下这项黑科技的原理。

人脸识别流程:

人脸识别是由以下步骤组成

利用HOG算法找出所有人脸。

对人脸进行landmark,对齐人脸。

利用神经网络找出人脸的特点,编码人脸。

计算两张人脸的欧氏距离,确定是否是同一人。

简易流程图如下:

第一步:找出所有面孔

很显然在我们在人脸识别的流程中得首先找到图片中的人脸。我们在使用手机或相机拍照时都会有人像模式,它能轻松的检测出人脸的位置,帮助相机快速对焦。

对于找出图片中的物体,我们统称为 OD (Object Detection 物体检测),物体检测业界有很多优秀的算法和框架可以使用,对于人脸检测我们将使用一种叫做 HOG(Histogram of Oriented Gradients 方向梯度直方图)的算法,它能够检测物体的轮廓。

首先我们把图片灰度化,因为颜色信息对于人脸检测而言没什么用。

我们分析每个像素以及其周围的像素,根据明暗度画一个箭头,箭头的指向代表了像素逐渐变暗的方向,如果我们重复操作每一个像素,最终像素会被箭头取代。这些箭头被称为梯度(gradients),它们能显示出图像从明亮到黑暗流动的过程。

分析每个像素对我们来说有点不划算,因为它太过细节化了,我们可能会迷失在像素的海洋里,我们应该从更高的角度观察明暗的流动。

为此我们将图像分割成16x16像素的小方块。在每个小方块中,计算出每个主方向有多少个梯度(有多少指向上,指向右上,指向右等)。然后用指向性最强的那个方向箭头来代替原来那个小方块。

最终结果,我们把原始图像转换成一个非常简单的HOG表达形式,它可以很轻松的捕获面部的基本结构。

为了在HOG图像中找到脸部,我们需要做的是,与已知的一些HOG图案中,匹配最相似的部分。这些HOG图案都是重其他面部训练数据中提取出来的。

第二步:脸部的不同姿势

我们已经找出了图片中的人脸,那么如何鉴别面朝不同方向的人脸呢?

对于电脑来说,朝向不同的人脸是不同的识别内容,为此我们需要适当的调整扭曲图片中的人脸,使得眼睛和嘴总是与被检测者重叠。

为了达到目的我们将使用一种面部特征点估计(face landmark estimation)的算法。其实还有很多算法都可以做到,但我们这次使用的是由瓦希德·卡奇米(Vahid Kazemi)和约瑟菲娜·沙利文(Josephine Sullivan)在 2014 年发明的方法。

这一算法的基本思路是找到68个人脸上普遍存在的点(称为特征点, landmark)

• 下巴轮廓17个点 [0-16]

• 左眉毛5个点 [17-21]

• 右眉毛5个点 [22-26]

• 鼻梁4个点 [27-30]

• 鼻尖5个点 [31-35]

• 左眼6个点 [36-41]

• 右眼6个点 [42-47]

• 外嘴唇12个点 [48-59]

• 内嘴唇8个点 [60-67]

有了这68个点,我们就可以轻松的知道眼睛和嘴巴在哪儿了,后续我们将图片进行旋转,缩放和错切,使得眼睛和嘴巴尽可能的靠近中心

现在人脸基本上对齐了,这使得下一步更加准确

第三步:给脸部编码

我们还有个核心的问题没有解决, 那就是如何区分不同的人脸。

最简单的方法就是把我们第二步中发现的未知人脸与我们已知的人脸作对比。当我们发现未知的面孔与一个以前标注过的面孔看起来相似的时候,就可以认定他们是同一个人。

我们人类能通过眼睛大小,头发颜色等等信息轻松的分辨不同的两张人脸,可是电脑怎么分辨呢?没错,我们得量化它们,测量出他们的不同。那要怎么做,才能得出测量人脸的最可靠的方法?以及如何测量人脸的数值呢?例如耳朵大小、鼻子长度、眼睛的颜色。

实际上,人类对于人脸这些信息很容易分辨,可是对于计算机,这些信息没什么价值。实际上最准确的方法是让计算机自己找出他要收集的测量值。深度学习,比人类更懂得哪些面部测量值比较重要。

所以,解决方案是训练一个深度卷积神经网络,训练让它为脸部生成128个测量值。

每次训练要观察三个不同的脸部图像:

1. 加载一张已知的人的面部训练图像

2. 加载同一个人的另一张照片

3. 加载另外一个人的照片

然后,算法查看它自己为这三个图片生成的测量值。再然后,稍微调整神经网络,以确保第一张和第二张生成的测量值接近,而第二张和第三张生成的测量值略有不同。

我们要不断的调整样本,重复以上步骤百万次,这确实是个巨大的挑战,但是一旦训练完成,它能攻轻松的找出人脸。

庆幸的是 OpenFace 上面的大神已经做完了这些,并且他们发布了几个训练过可以直接使用的网络,我们可以不用部署复杂的机器学习,开箱即用,感谢开源精神。

人脸识别的原理揭秘

这128个测量值是什么鬼?

其实我们不用关心,这对我们也不重要。我们关心的是,当看到同一个人的两张不同照片时,我们的网络需要能得到几乎相同的数值。

第四步:从编码中找出人的名字

最后一步实际上是最简单的一步,我们需要做的是找到数据库中与我们的测试图像的测量值最接近的那个人。

如何做呢,我们利用一些现成的数学公式,计算两个128D数值的欧氏距离

人脸识别的原理揭秘

哈,这样我们得到一个欧式距离值,系统将给它一个认为是同一个人欧氏距离的阀值,即超过这个阀值我们就认定他们是 同 (失) 一 (散) 个 (兄) 人 (弟)。

人脸识别就这样达成啦,来来我们再回顾下流程:

使用HOG找出图片中所有人脸的位置。

计算出人脸的68个特征点并适当的调整人脸位置,对齐人脸。

把上一步得到的面部图像放入神经网络,得到128个特征测量值,并保存它们。

与我们以前保存过的测量值一并计算欧氏距离,得到欧氏距离值,比较数值大小,即可得到是否同一个人。

人脸识别应用场景

人脸识别分两大步骤,人脸检测和人脸识别,它们应用场景也各不相同。

人脸识别的原理揭秘

人脸检测实质上是实现找出人脸,得到人脸的位置的功能,我们可以在美颜,换肤,抠图,换脸的一些场景中使用到它。我们可以通过系统API调用相机完成对预览针的实时渲染,那些看上去的黑科技我们也可以玩啦。

人脸识别则可以应用在会员、支付等场景,带给用户更酷炫的使用体验,大家快来试试吧。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人脸识别
    +关注

    关注

    76

    文章

    4005

    浏览量

    81750
  • 机器学习
    +关注

    关注

    66

    文章

    8373

    浏览量

    132390
收藏 人收藏

    评论

    相关推荐

    人脸识别的研究范围和优势

    的主要目的是在输入的整幅图像上寻找人脸区域。2.人脸表征采取某种方式检测人脸和数据库中的人脸。3.人脸
    发表于 06-29 11:52

    人脸识别的三大模式

    机场安检人员通过换班来保证识别的准确率。其次1:N则是在海量的人像数据库中找出当前用户的人脸数据并进行匹配。1:N具有动态比对与非配合的特 点,动态对比是指通过对动态视频流的截取来获得人脸数据并进
    发表于 08-06 14:15

    S32V视觉处理平台怎么实现人脸识别的应用?

    汽车行业ADAS功能需求日益增长,防疲劳驾驶是一个热门方向,对于驾驶员状态的检测,人脸识别是基础,只有快速准确地识别人脸,才能对人脸状态进
    发表于 11-26 06:36

    人脸识别的全部源代码

    Google Glass-- 谷歌眼镜核心源码人脸识别的全部源代码(在Visual C++6.0下可以运行识别)l智能分析接口(支持车牌识别,人
    发表于 08-06 07:21

    静态人脸识别和动态人脸识别的区别对比分析

    人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。作为一种新型而且发展较快的技术,很多人对这门技术并没有清晰的理解和认识。比如说,人脸
    发表于 02-26 11:48 9911次阅读

    人脸识别的好处与坏处

    本视频首先介绍了人脸识别的好处,分别有自然性、非强制性、非接触性、并发性等,其次介绍了人脸识别的坏处。
    的头像 发表于 03-04 14:35 3w次阅读

    人脸识别的原理

    本文主要详细介绍了人脸识别的原理,分别从人脸检测、人脸跟踪、人脸比对等。
    的头像 发表于 03-04 14:55 1.2w次阅读

    人脸识别的原理说明

    人脸识别是基于人的脸部信息,进行身份识别的一种生物识别技术,人脸识别时首先判断是否存在
    发表于 06-17 14:36 3481次阅读

    何为人脸识别_人脸识别的应用场景

    人脸识别技术是如今十分热门的一项技术,掌握人脸识别技术的优势不言而喻。下面,我们将首先介绍人脸识别的
    发表于 10-30 16:02 2962次阅读

    人脸识别的优点和识别方法

    人脸识别厂家浅谈人脸识别的智能优点
    发表于 02-06 11:58 692次阅读
    <b class='flag-5'>人脸</b><b class='flag-5'>识别的</b>优点和<b class='flag-5'>识别</b>方法

    人脸识别和指纹识别哪个安全?人脸识别和指纹识别的利弊及风险

      人脸识别是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪
    发表于 08-03 16:55 4076次阅读

    人脸识别的算法有哪些

    人脸识别的算法有哪些 人脸识别算法现在已经广泛应用于各个领域,如安防、商业、医疗等。人脸识别算法
    的头像 发表于 08-09 18:34 6544次阅读

    生物识别人脸识别的区别

    人脸图片或视频进行分析和识别,以确定个体身份的一种方法。本文将探讨生物识别人脸识别的概念、应用领域和区别。
    发表于 08-28 17:29 1488次阅读

    人脸检测与识别的方法有哪些

    人脸检测与识别是计算机视觉领域中的一个重要研究方向,具有广泛的应用前景,如安全监控、身份认证、智能视频分析等。本文将详细介绍人脸检测与识别的方法。 引言
    的头像 发表于 07-03 14:45 625次阅读

    如何设计人脸识别的神经网络

    人脸识别技术是一种基于人脸特征信息进行身份识别的技术,广泛应用于安全监控、身份认证、智能门禁等领域。神经网络是实现人脸
    的头像 发表于 07-04 09:20 562次阅读