深度学习笔记(42) 人脸识别

  • 1. 人脸识别
  • 2. One-Shot学习
  • 3. Similarity函数

1. 人脸识别

现在可以看到很多产品在运用人脸识别,如手机解锁、车站身份识别认证、刷脸支付等


在人脸识别的相关文献中,人们经常提到

  • 人脸验证(face verification)
  • 人脸识别(face recognition)

人脸验证问题:
如果有一张输入图片,以及某人的ID或者是名字
这个系统要做的是,验证输入图片是否是这个人
有时候也被称作1对1问题
只需要弄明白这个人是否和他声称的身份相符

人脸识别问题比人脸验证问题难很多
因为这是1对多问题(1:K)
假设有一个验证系统,准确率是99%,自我感觉还可以
但是现在,假设在识别系统中,K=100
如果把这个验证系统应用在100个人身上,人脸识别上,犯错的机会就是100倍了
如果每个人犯错的概率是1%,如果有一个上百人的数据库
如果想得到一个可接受的识别误差,要构造一个验证系统,其准确率为99.9%或者更高
然后才可以在100人的数据库上运行,而保证有很大几率不出错
事实上,如果有一个100人的数据库,正确率可能需要远大于99%,才能得到很好的效果


2. One-Shot学习

脸识别所面临的一个挑战就是需要解决一次学习问题
这意味着在大多数人脸识别应用中:
需要通过单单一张图片或者单单一个人脸样例就能去识别这个人

而历史上,当深度学习只有一个训练样例时,它的表现并不好
看一个直观的例子,并讨论如何去解决这个问题:

假设数据库里有4张成员照片,分别是哆啦A梦、大雄、胖虎、小夫

现在假设有个人(编号1所示)来到一个地方,并且想通过带有人脸识别系统的任意门
现在系统需要做的就是,仅仅通过一张已有的胖虎照片,来识别前面这个人确实是他
相反,如果机器看到一个不在数据库里的人(编号2所示),应该能分辨出她不是数据库中四个人之一

所以在一次学习问题中,只能通过一个样本进行学习,以能够认出同一个人
大多数人脸识别系统都需要解决这个问题
因为在数据库中每个成员可能都只有一张照片

有一种办法是,将人的照片放进卷积神经网络中
使用softmax单元来输出4种,或者说5种标签,分别对应这4个人,或者4个都不是
所以softmax里会有5种输出
但实际上这样效果并不好
因为如此小的训练集不足以去训练一个稳健的神经网络


而且,假如有新人加入伐木累,现在将会有5个成员需要识别,所以输出就变成了6种
这时要重新训练神经网络吗?这听起来实在不像一个好办法


3. Similarity函数

所以要让人脸识别能够做到一次学习,为了能有更好的效果
现在要做的应该是学习Similarity函数

详细地说,想要神经网络学习这样一个用ddd表示的函数:
d(img1,img2)d(img1,img2)d(img1,img2) = degree of difference between images
它以两张图片作为输入,然后 输出这两张图片的差异值
如果放进同一个人的两张照片,希望它能输出一个很小的值
如果放进两个长相差别很大的人的照片,它就输出一个很大的值

所以在识别过程中:
如果这两张图片的差异值小于某个阈值 τττ,它是一个超参数,那么就预测这两张图片是同一个人
如果差异值大于 τττ,就能预测这是不同的两个人,这就是解决人脸验证问题的一个可行办法

将它应用于识别任务:

要做的是拿这张新图片(编号6)
然后用ddd函数去比较这两张图片(编号1和编号6)
这样可能会输出一个非常大的数字,在该例中,比如说这个数字是10
之后再让它和数据库中第二张图(编号2)片比较
这样可能会输出一个非常大的数字,在该例中,比如说这个数字是10
之后再让它和数据库中第三张图(编号3)片比较
这样可能会输出一个非常大的数字,在该例中,比如说这个数字是11

之后再让它和数据库中第四张图(编号4)片比较
因为这两张照片是同一个人,所以希望会输出一个很小的数
然后再用它与数据库中的其他所有图片(编号1、2、3)进行比较
通过这样的计算,最终能够知道这个人确实是胖虎

对应的,如果某个人(编号7)不在数据库中,通过函数ddd将他们的照片两两进行比较
最后希望ddd会对所有的比较都输出一个很大的值
这就证明这个人并不是数据库中4个人的其中一个

要注意在这过程中是如何解决一次学习问题的
只要能学习这个函数ddd,通过输入一对图片,它将会告诉这两张图片是否是同一个人

如果之后有新人加入了伐木累(编号5),只需将他的照片加入数据库,系统依然能照常工作


参考:

《神经网络和深度学习》视频课程


相关推荐:

深度学习笔记(41) 候选区域
深度学习笔记(40) YOLO
深度学习笔记(39) Anchor Boxes
深度学习笔记(38) 非极大值抑制
深度学习笔记(37) 交并比


谢谢!

深度学习笔记(42) 人脸识别相关推荐

  1. 吴恩达深度学习笔记(105)-人脸识别之面部验证与二分类

    https://www.toutiao.com/a6652895489354105351/ 面部验证与二分类(Face verification and binary classification) ...

  2. 【深度学习】DIY 人脸识别技术的探索(一)

    [深度学习]DIY 人脸识别技术的探索(一) 文章目录 摘要 问题重述 模型假设 定义与符号说明 问题分析 模型的建立与求解 参考 摘要 伴随着人工智能技术的发展,人们对信息安全有了更高的要求,传统的 ...

  3. 【深度学习】DIY 人脸识别技术的探索(二)

    [深度学习]DIY 人脸识别技术的探索(二) 文章目录 训练模型 工具 结果展示 问题二的模型建立与求解 基于 KNN 的人脸识别模型 训练模型 MTCNN 可以并行训练(3 个网络同时训练,前提是内 ...

  4. 蚂蚁金服张洁:基于深度学习的支付宝人脸识别技术解秘-1

    蚂蚁金服张洁:基于深度学习的支付宝人脸识别技术解秘(1) 2015-08-13 10:22 于雪 51CTO 字号:T | T 用户身份认证是互联网金融发展的基石.今年三月,在德国汉诺威举办的IT展览 ...

  5. 学习笔记TF058:人脸识别

    人脸识别,基于人脸部特征信息识别身份的生物识别技术.摄像机.摄像头采集人脸图像或视频流,自动检测.跟踪图像中人脸,做脸部相关技术处理,人脸检测.人脸关键点检测.人脸验证等.<麻省理工科技评论&g ...

  6. 深度学习下的人脸识别技术:从“后真相”到“无隐私”

    2019-06-17 14:27:08 图片来源@视觉中国 文|五矩研究社,作者|劫镖 2018年7月,<大西洋月刊>曾发表过一篇人脸识别的文章,名字叫做<开启假视频时代>,文 ...

  7. 深度学习之视频人脸识别系列一:介绍

    作者 | 东田应子 [导读]本文是深度学习之视频人脸识别系列的第一篇文章,介绍了人脸识别领域的一些基本概念,分析了深度学习在人脸识别的基本流程,并总结了近年来科研领域的研究进展,最后分析了静态数据与视 ...

  8. 深度学习之视频人脸识别系列(一):简介

    阅读时间约4分钟 [介绍]本文是深度学习之视频人脸识别系列的第一篇文章,介绍了人脸识别领域的一些基本概念,分析了深度学习在人脸识别的基本流程,并总结了近年来科研领域的研究进展,最后分析了静态数据与视频 ...

  9. 深度学习之视频人脸识别系列二:人脸检测与对齐

    作者 | 东田应子 [磐创AI导读]本文是深度学习之视频人脸识别系列的第二篇文章,介绍人脸检测与对齐的相关算法.欢迎大家关注我们的公众号:磐创AI. 一.人脸检测与关键点检测 问题描述: 人脸检测解决 ...

  10. 蚂蚁金服张洁:基于深度学习的支付宝人脸识别技术解秘

    用户身份认证是互联网金融发展的基石.今年三月,在德国汉诺威举办的IT展览会上,马云向德国总理默克尔和中国副总理马凯展示支付宝的"刷脸"支付,引起了人们对人脸识别技术的热议.在WOT ...

最新文章

  1. 怎么用IDEA快速查看类图关系?
  2. oracle 用mybatis生成主键
  3. Java-优秀博客推荐
  4. ajax代码编程题,关于AJAX管家代码的几个基本问​​题
  5. 使用Angular CLI创建一个Hello World级别的Angular应用
  6. 简单的Spring Memcached – Spring缓存抽象和Memcached
  7. 您好GroovyFX
  8. android 切换字体崩溃,androidx - 在Android 10 / Android Q上使用捆绑的ttf字体时崩溃 - 堆栈内存溢出...
  9. android实现双向绑定,Android使用DataBinding实现双向绑定(一)
  10. 昂达v811v1 刷4.22d
  11. 信息安全风险评估学习笔记
  12. ReactNative运用插件react-native-amap-geolocation获取Android手机高德经纬度
  13. 艺歌点歌系统服务器连接不了,艺歌手机点歌系统歌曲是什么格式
  14. asp.net报表制作视频教程
  15. 工厂模式及在项目中的应用
  16. go中的interface
  17. 魅族Android7.0刷机包,乐视X900+安卓7.1.2 魅族Flyme6刷机包 最新6.8.3.17R版 紫火20180510更新...
  18. 软件测试丨工具在接口测试中发挥什么样的作用?
  19. HTML的相关标记和属性
  20. C++ fabs和abs区别

热门文章

  1. ActiveRecord 模式杂谈
  2. JUNIT Hello World
  3. 算法高级(43)-过滤垃圾邮件、短信?-朴素贝叶斯算法
  4. Windows 安装 sbt
  5. GPT语言模型:通过生成式预训练改善语言理解 OpenAI 2018
  6. 人工智能切入垂直领域 风口已至?
  7. Mysql查询数据(单表查询)
  8. 【Demo】HTML5 拍照上传
  9. 【Java】Java垃圾回收机制
  10. 转:SQL Server 2005安装过程图解