Openface人脸识别的原理与过程:

https://zhuanlan.zhihu.com/p/24567586

原理可参考如下论文:

《OpenFace: A general-purpose face recognition library with mobile applications》

第一步:找出所有的面孔

我们流水线的第一步是人脸检测。

我们的目标是找出并比较当前像素与直接围绕它的像素的深度。然后我们要画一个箭头来代表图像变暗的方向:

用梯度来代替像素这事看起来没有明确目的,但其实背后的理由很充分。如果我们直接分析像素,同一个人明暗不同的两张照片将具有完全不同的像素值。但是如果只考虑亮度变化方向(direction)的话,明暗图像将会有同样的结果。这使得问题变得更容易解决!

但是保存每个像素的梯度太过细节化了,我们最终很有可能「一叶障目不见泰山」。如果能从更高的角度上观察基本的明暗流动,我们就可以看出图像的基本规律,这会比之前更好。

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

最终的结果是,我们把原始图像转换成了一个非常简单的表达形式,这种表达形式可以用一种简单的方式来捕获面部的基本结构:

利用HOG去detector人脸

HOG脸部图案

第二步为面部特征点估计(face landmark estimation)。

但这次我们会使用由瓦希德·卡奇米(Vahid Kazemi)和约瑟菲娜·沙利文(Josephine Sullivan)在2014年发明的方法ERT(集成回归树)

68点序号图

第三步:给脸部编码

所以,解决方案是训练一个深度卷积神经网络(就像我们在第三章做的那样)。但是,并不是让它去识别图片中的物体,这一次我们的训练是要让它为脸部生成128个测量值。通过训练网络来生成这个128个特征,使得这些特征具有如下关系:相同人的图片距离尽可能接近,而不同人的照片距离尽可能远。

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

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

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

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

机器学习专业人士把每张脸的128个测量值称为一个嵌入(embedding)。将复杂的原始数据(如图片)缩减为可由计算机生成的一个数列的方法,在机器学习(特别是语言翻译)中出现了很多次。我们正在使用的这种脸部提取方法是由Google的研究人员在2015年发明的,但也有许多类似方法存在。

该训练网络已经完成,我们只需要使用它即可生成128个特征值。

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

面部识别分类器:基于简单线性SVM

总结:

1.使用HOG算法给图片编码,以创建图片的简化版本。使用这个简化的图像,找到其中看起来最像通用HOG面部编码的部分。

2.通过找到脸上的主要特征点,找出脸部的姿势。一旦我们找到这些特征点,就利用它们把图像扭曲,使眼睛和嘴巴居中。

3.把上一步得到的面部图像放入神经网络中,神经网络知道如何找到128个特征测量值。保存这128个测量值。

4.看看我们过去已经测量过的所有脸部,找出哪个人的测量值和我们要测量的面部最接近。这就是你要找的人!

Openface人脸识别的原理与过程相关推荐

  1. 基于深度卷积神经网络进行人脸识别的原理是什么?

    原文:https://www.zhihu.com/question/60759296 基于深度卷积神经网络进行人脸识别的原理是什么? 这里的人脸识别包括但不限于:人脸检测,人脸对齐,身份验证识别,和表 ...

  2. 人脸识别技术原理及解决方案

    人脸识别系统的研究始于20世纪60年代,80年代后随着计算机技术和光学成像技术的发展得到提高,而真正进入初级的应用阶段则在 90年后期,以美国.德国和日本的技术实现为主. 人脸识别技术是基于人的脸部特 ...

  3. 人脸识别的十大过程介绍

    人脸识别的十大过程: 1.人脸检测 "人脸检测"是检测出图像中人脸所在位置的一项技术. 人脸检测算法的输入是一张图片,输出是人脸框坐标序列(0个人脸框或1个人脸或多个人脸框).一般 ...

  4. 人脸识别SeetaFace2原理与代码详解

    人脸识别SeetaFace2原理与代码详解 前言 一.人脸识别步骤 二.SeetaFace2基本介绍 三.seetaFace2人脸注册.识别代码详解 3.1 人脸注册 3.1.1 人脸检测 3.1.2 ...

  5. 人脸识别算法原理过程详解

    本文为转载内容,由于找不到源作者链接,故特此说明. 人脸识别各算法详解 最近,由于工作需要,为了找到一款高效的人脸识别算法,对各种人脸识别算法都研究了一番,以下记录的是各算法的理论基础. 一.MTCN ...

  6. [深度概念]·简述人脸识别开发原理

    0.文章概述 我们知道人脸识别在这几年应用相当广泛,人脸考勤,人脸社交,人脸支付,哪里都有这黑科技的影响,特别这几年机器学习流行,使得人脸识别在应用和准确率更是达到了一个较高的水准. 下面将带着大家揭 ...

  7. 人脸识别技术原理与工程实践

    1人脸识别应用场景(验证) 我们先来看看人脸识别的几个应用.第一个是苹果的FACE ID,自从苹果推出FaceID后,业界对人脸识别的应用好像信心大增,各种人脸识别的应用从此开始"野蛮生长& ...

  8. OpenCV人脸识别的原理 .

    在之前讲到的人脸测试后,提取出人脸来,并且保存下来,以供训练或识别是用,提取人脸的代码如下: void GetImageRect(IplImage* orgImage, CvRect rectInIm ...

  9. 人脸识别技术原理与工程实践(10个月人脸识别领域实战总结)

    1人脸识别应用场景(验证) 我们先来看看人脸识别的几个应用.第一个是苹果的FACE ID,自从苹果推出FaceID后,业界对人脸识别的应用好像信心大增,各种人脸识别的应用从此开始"野蛮生长& ...

最新文章

  1. Android Studio配置统一管理依赖版本号引用
  2. mfc读取bmp文件_LIUNX 工程bmp.c 显示图片 开发板出来的图片只有一个角 求大佬解决...
  3. MySQL打不开用户_mysql打不开了
  4. 什么是分布式微服务架构?-开课吧
  5. SpringBoot入门教程(十四)导出Excel
  6. android ion --system heap(个人理解,不确定完全对)
  7. 基于Springboot的Java邮件系统的设计与实现(附论文和源码)
  8. python调用qq互联_实现QQ互联一键登录代码教程
  9. tungsten mysql_ETL之Tungsten Replicator
  10. Linux系统中的管道通信
  11. 糖友低碳水、高蛋白饮食可行吗
  12. 中国省份毗邻关系JSON数据[相邻省份][所辖市级信息][行政区划]
  13. 【程序源代码】一个安卓查询类app制作的​开源项目
  14. Android R 11 后台定位权限没有 始终允许选项的解决方法
  15. 南华大学的计算机专业学校排名,2019南华大学专业排名
  16. [最小路径覆盖]拦截导弹
  17. kubelet重新安装新版本报错Unit kubelet.service entered failed state.
  18. Unity 投掷物体的实现
  19. 音视频基础——libyuv格式转换
  20. linux 如何使用命令打开网址

热门文章

  1. svn 代码迁移到git
  2. UVa11400 Lighting System Design
  3. json-lib使用详解——json小工具
  4. 树莓派安装smbus_如何配置树莓派并安装有用的库
  5. 三级网络技术应付式速成考试笔记(汇总)
  6. En-Tan-Mo(ETM)项目周报(8.23-8.29)
  7. filesystem判断文件或文件夹是否存在
  8. 员工被提拔,还是被干掉,就看这3点......
  9. openCV学习-自动处理图片 视频
  10. Debian firmware:failed to load i915/kbl_dmc解决