版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/hh_2018/article/details/80576290
参考地址:https://blog.csdn.net/guoyunfei20/article/details/78196286

论文题目:DeepFace: Closing the Gap to Human-Level Performance in Face Verification

论文地址:http://datascienceassn.org/sites/default/files/DeepFace%20-%20Closing%20the%20Gap%20to%20Human-Level%20Performance%20in%20Face%20Verification.pdf

DeepFace是FaceBook提出来的,后续有DeepID和FaceNet出现。而且在DeepID和FaceNet中都能体现DeepFace的身影,所以DeepFace可谓是CNN在人脸识别的奠基之作,目前深度学习在人脸识别中也取得了非常好的效果。DeepFace在进行人脸识别的过程中采用的是人脸检测——3D对齐——CNN提取特征——分类的过程。下边介绍DeepFace的基本框架:

一、人脸检测(face detection)

DeepFace采用了基于检测点的人脸检测方法(fiducial Point Detector)

1、先选择6个基准点,2只眼睛中心、 1个鼻子点、3个嘴上的点。

2、通过LBP特征用SVR来学习得到基准点。关于LBP的介绍见地址:https://blog.csdn.net/qq_32172681/article/details/100014705

二、人脸对齐(face alignment)

在对齐方面,DeepFace模型采用了3D对齐的方式,并且使用传统的LBP直方图(首先通过设置阀值并以某一像素点为中心邻域内的像素点一起和阀值比较,当大于阀值时就将其变为1小于阀值就变成0,然后在做成直方图统计各区域像素出现的次数)进行图片纹理化并提取对应的特征。对提取出的特征使用SVR处理以提取出人脸及对应的六个基本点。根据六个基本点做仿射变化,再根据3D模型得到 对应的67个面部关键点,根据这些点做三角划分最终得出对应的3D人脸。其具体对齐流程如下:

a: 检测出人脸和对应的6个基本点

b: 二维对齐后的人脸

c: 使用狄罗尼三角划分在2D人脸上划分出67个关键点,并在边缘处采用添加三角形的方式避免不连续

d: 转化为2D平面并和原始2D图片进行比较时所需的标准3D人脸模型(通过标准3D人脸库USF生成的对应的平均人脸模型)

e: 3D-2D转化(标准3D脸转化为2D和原有的2D做残差使用)时所需要的变化,黑色部分表示不可见的三角形。对应不可见的三角形处理采用的是对称方式解决的。

f: 通过3D模型产生的67个基准点进行分段映射使人脸变弯曲,对人脸进行对齐处理。

g: 处理生成的2D人脸

h: 根据处理生成的3D人脸

其中:c和f相比经过了标准3D人脸转化为 2D人脸时的残差处理,此时主要是为保证在转化过程中特征的保留。e的作用是为了显示在处理过程中3D-2D转化为何是通过三角形的仿射变化进行的,由e可以看出处理后的人脸是一个个的三角形块。

三、人脸表示(face verification)

经过3D对齐以后,形成的图像都是152×152的图像,送入CNN,其结果如下:

C1:卷积层,卷积核尺寸11*11,共32个卷积核

M2:池化层,最大池化3*3,即stride = 2

C3:卷积层,卷积核尺寸9*9   ,共16个卷积核

L4: 卷积层,卷积核尺寸9*9   ,共16个卷积核。L表示local,意思是卷积核的参数不共享

L5: 卷积层,卷积核尺寸7*7   ,共16个卷积核。L表示local,意思是卷积核的参数不共享

L6: 卷积层,卷积核尺寸5*5   ,共16个卷积核。L表示local,意思是卷积核的参数不共享

F7: 全连接,4096个神经元

F8: 全连接,4030个神经元

前三层的目的在于提取低层次的特征,比如简单的边和纹理。其中Max-pooling层使得卷积的输出对微小的偏移情况更加鲁棒。但没有用太多的Max-pooling层,因为太多的Max-pooling层会使得网络损失图像信息。除了不共享的卷积之外,该模型还采用了dropout方式避免模型的过拟合,该方法只是在F7的时候使用。

紧接着的三层都是使用参数不共享的卷积核,之所以使用参数不共享,有如下原因:

  • 对齐的人脸图片中,不同的区域会有不同的统计特征,卷积的局部稳定性假设并不存在,所以使用相同的卷积核会导致信息的丢失
  • 不共享的卷积核并不增加抽取特征时的计算量,而会增加训练时的计算量
  • 使用不共享的卷积核,需要训练的参数量大大增加,因而需要很大的数据量,然而这个条件本文刚好满足。

全连接层将上一层的每个单元和本层的所有单元相连,用来捕捉人脸图像不同位置的特征之间的相关性。其中,第7层(4096-d)被用来表示人脸。全连接层的输出可以用于Softmax的输入,Softmax层用于分类。

四、人脸表示的归一化

归一化的主要是将人脸的特征值都变为(0,1)之间,避免光照等其他因素的影响。其归一化的方式为:先对每一维进行归一化,每一维除以该维的最大值,再将整个向量归一化。

五、分类(鉴定度量)

鉴定度量是归一化后的结果用来进行身份验证使用的,也是一种其他的可用来分类时的度量,主要在计算相似度方面起作用。可以代替最后一层softmax层对图片进行处理,也可以对处理后的结果采用度量计算相似度。

其分类的度量方式主要有三种:1:内积,2:卡方加权,3:siamese网络

1. 对于内积直接进行计算不做介绍:

2. 卡方加权的方式如下:

其中f表示归一化后的特征,w是通过SVM学习到的参数。

3. siamese网络:

使用成对的图片进行训练,保证了可以使用特征之间的绝对不同而不是简单的逻辑不同。同时由于两张图片虽然采用了相同的参数,但是由于要运算两次,所以其对应的网络计算量并无差异(原始处理两张图片相比)。该距离可以用来比较两张图片是不是一个人。其距离的具体计算方式为:

其中alpha是训练得到的。

人脸识别算法DeepFace论文解读相关推荐

  1. 人脸识别算法FaceNet论文解读

    版权声明:本文为CSDN博主「张雨石」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/stdcoutzyx/a ...

  2. 入门经典综述!深度人脸识别算法串讲

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:安晟,Datawhale成员,CV算法工程师 最近看了很多人脸识别 ...

  3. 新思路!商汤开源利用无标注数据大幅提高精度的人脸识别算法

    出处"来自微信公众号:我爱计算机视觉" 新思路!商汤开源利用无标注数据大幅提高精度的人脸识别算法 这篇论文解决的问题与现实中的人脸识别应用场景密切相关,其假设已经有了少量已经标注的 ...

  4. 3d人脸识别算法opencv_热招职位算法类

    1.资深算法工程师leader-AI平台 地点:深圳 工作职责 1.推进机器学习及计算机视觉领域的核心算法: 2.构建机器学习及计算机视觉领域的关键应用: 3.将算法于实际应用场景相结合,构建算法和应 ...

  5. 【华为云技术分享】人脸识别算法的训练之路(下)

    人脸识别算法的训练之路(上) 人脸识别 人脸识别问题本质是一个分类问题,即每一个人作为一类进行分类检测,但实际应用过程中会出现很多问题.第一,人脸类别很多,如果要识别一个城镇的所有人,那么分类类别就将 ...

  6. 有了它,你的照片能“屏蔽”人脸识别算法

    [导语]:一款保护个人照片隐私的 AI 工具. 简介 如今强大的面部识别系统的激增对个人隐私构成了真正的威胁.人人都可以在互联网上搜索数据,可以在个体不知情的情况下训练出高度精确的人脸识别模型.我们需 ...

  7. android seetaface6_中科视拓宣布开源SeetaFace6人脸识别算法(附相关课程)

    3月31日,中科视拓宣布开放SeetaFace6人脸识别算法. 2016年9月和2019年8月,中科视拓分别开源了SeetaFace1.0人脸识别引擎.SeetaFace2.0商用级人脸识别算法.Se ...

  8. RetinaFace最强开源人脸识别算法

    最近这几天,美国国家标准与技术研究院(NIST)公布了全球最权威的人脸识别算法测试(FRVT)的最新结果, 国内知名视觉算法公司格灵深瞳取得了优异成绩:在最具挑战的"非约束性自然环境人脸照片 ...

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

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

  10. 基于深度学习的人脸识别算法

    基于深度学习的人脸识别算法 简介 Contrastive Loss Triplet Loss Center Loss A-Softmax Loss 参考文献: 简介 我们经常能从电影中看到各种神奇的人 ...

最新文章

  1. ISAIR2022征稿【中国・上海​, 2022年10月21-23日】
  2. Android Studio 受不了了
  3. Python爬虫应用实战-网站数据爬取及数据分析
  4. whois老域名挖掘技术
  5. X265源码解析1-Encode方法
  6. 给大家推荐对Redis分析讲解比较详细的大牛
  7. Aix vmstat命令解析
  8. java 线程_理解java多线程
  9. [转载] python type() 判断数据类型
  10. [LeetCode] 1. Two Sum
  11. Ralph and Mushrooms (tarjan+dp)
  12. 【Web安全笔记】之【6.0 内网渗透】
  13. 最佳实践:银尔达YED-S724 网红4G DTU 接入 ThingsKit 物联网平台
  14. linux用户的目录结构,Linux下用户管理、目录结构
  15. 数据存储- 存储文件概述
  16. OpenStack 应答文件简单翻译
  17. xmind 8 pro Mac破解版(思维导图) 附xmind 8 序列号
  18. 计算智能——遗传算法解决TSP问题实验
  19. speedtree树木软件for unity(导出树木/草随风飘动画)
  20. 2020 Maven无法使用阿里云仓库下载的解决方法

热门文章

  1. wpa_supplicant介绍
  2. cad补全三视图_cad补画三视图练习题.doc
  3. 计算机应用基础电子教案吉林,中等职业学校计算机应用基础课程改革初探.doc...
  4. word另存为html 图片模糊,Word中插入图片模糊、不清晰的解决方法
  5. Java 设置图片大小
  6. 汽车金融信用评分卡模型-论文毕业设计复现
  7. 三目运算(三目表达式)是什么?
  8. 一人饮酒醉用计算机版,玩家自制游戏版《一人饮酒醉》,歪唱喊麦笑翻全场
  9. 微信开门,给你简单极致的开门体验!
  10. 怎么在Excel里输入可以打钩的选择框?