深度学习笔记(42) 人脸识别
深度学习笔记(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) 人脸识别相关推荐
- 吴恩达深度学习笔记(105)-人脸识别之面部验证与二分类
https://www.toutiao.com/a6652895489354105351/ 面部验证与二分类(Face verification and binary classification) ...
- 【深度学习】DIY 人脸识别技术的探索(一)
[深度学习]DIY 人脸识别技术的探索(一) 文章目录 摘要 问题重述 模型假设 定义与符号说明 问题分析 模型的建立与求解 参考 摘要 伴随着人工智能技术的发展,人们对信息安全有了更高的要求,传统的 ...
- 【深度学习】DIY 人脸识别技术的探索(二)
[深度学习]DIY 人脸识别技术的探索(二) 文章目录 训练模型 工具 结果展示 问题二的模型建立与求解 基于 KNN 的人脸识别模型 训练模型 MTCNN 可以并行训练(3 个网络同时训练,前提是内 ...
- 蚂蚁金服张洁:基于深度学习的支付宝人脸识别技术解秘-1
蚂蚁金服张洁:基于深度学习的支付宝人脸识别技术解秘(1) 2015-08-13 10:22 于雪 51CTO 字号:T | T 用户身份认证是互联网金融发展的基石.今年三月,在德国汉诺威举办的IT展览 ...
- 学习笔记TF058:人脸识别
人脸识别,基于人脸部特征信息识别身份的生物识别技术.摄像机.摄像头采集人脸图像或视频流,自动检测.跟踪图像中人脸,做脸部相关技术处理,人脸检测.人脸关键点检测.人脸验证等.<麻省理工科技评论&g ...
- 深度学习下的人脸识别技术:从“后真相”到“无隐私”
2019-06-17 14:27:08 图片来源@视觉中国 文|五矩研究社,作者|劫镖 2018年7月,<大西洋月刊>曾发表过一篇人脸识别的文章,名字叫做<开启假视频时代>,文 ...
- 深度学习之视频人脸识别系列一:介绍
作者 | 东田应子 [导读]本文是深度学习之视频人脸识别系列的第一篇文章,介绍了人脸识别领域的一些基本概念,分析了深度学习在人脸识别的基本流程,并总结了近年来科研领域的研究进展,最后分析了静态数据与视 ...
- 深度学习之视频人脸识别系列(一):简介
阅读时间约4分钟 [介绍]本文是深度学习之视频人脸识别系列的第一篇文章,介绍了人脸识别领域的一些基本概念,分析了深度学习在人脸识别的基本流程,并总结了近年来科研领域的研究进展,最后分析了静态数据与视频 ...
- 深度学习之视频人脸识别系列二:人脸检测与对齐
作者 | 东田应子 [磐创AI导读]本文是深度学习之视频人脸识别系列的第二篇文章,介绍人脸检测与对齐的相关算法.欢迎大家关注我们的公众号:磐创AI. 一.人脸检测与关键点检测 问题描述: 人脸检测解决 ...
- 蚂蚁金服张洁:基于深度学习的支付宝人脸识别技术解秘
用户身份认证是互联网金融发展的基石.今年三月,在德国汉诺威举办的IT展览会上,马云向德国总理默克尔和中国副总理马凯展示支付宝的"刷脸"支付,引起了人们对人脸识别技术的热议.在WOT ...
最新文章
- 怎么用IDEA快速查看类图关系?
- oracle 用mybatis生成主键
- Java-优秀博客推荐
- ajax代码编程题,关于AJAX管家代码的几个基本问​​题
- 使用Angular CLI创建一个Hello World级别的Angular应用
- 简单的Spring Memcached – Spring缓存抽象和Memcached
- 您好GroovyFX
- android 切换字体崩溃,androidx - 在Android 10 / Android Q上使用捆绑的ttf字体时崩溃 - 堆栈内存溢出...
- android实现双向绑定,Android使用DataBinding实现双向绑定(一)
- 昂达v811v1 刷4.22d
- 信息安全风险评估学习笔记
- ReactNative运用插件react-native-amap-geolocation获取Android手机高德经纬度
- 艺歌点歌系统服务器连接不了,艺歌手机点歌系统歌曲是什么格式
- asp.net报表制作视频教程
- 工厂模式及在项目中的应用
- go中的interface
- 魅族Android7.0刷机包,乐视X900+安卓7.1.2 魅族Flyme6刷机包 最新6.8.3.17R版 紫火20180510更新...
- 软件测试丨工具在接口测试中发挥什么样的作用?
- HTML的相关标记和属性
- C++ fabs和abs区别