目录

前言

1 度量学习简介

2 ARCFace介绍

3 实际应用时的探讨

探讨1:类似于人脸识别这样的应用,从0到落地应用的大概流程是怎样的?

探讨2:怎么评估这个特征提取器网络训练好了?

探讨3:如何评估模型或项目效果?


前言

  • 需要的基础:了解深度学习分类器原理。
  • 主题:以深度学习中的ArcFace算法为案例,获得对度量学习领域举一反三的领悟。

1 度量学习简介

度量学习(Metric Learning)通俗的说就是相似度学习。例如,如果要计算两张人脸图片的相似度,如何度量图片之间的相似度,并使得不同人的人脸图片相似度小而相同人的人脸图片相似度大就是度量学习的目标。

综上,以人脸识别(不是人脸检测)为例子,用程序和算法实现此功能,要解决3个问题:

  1. 用什么东西作为某一个人的人脸的特征基准?

    1. 答案:因为不同的拍摄视角、不同的表情、不同的光照、不同阶段的年龄等都会导致人脸形态和细节发生较大变化,所以,用一张标准人脸图像并不能作为某个人的特征基准。在ARCFace算法中,用一个高维度向量(如1x512)来定义和存储他的人脸信息。类似于DNA这种编码方式能够存储人类的形态和细节差异。当然,这种建模解决问题方式,肯定让人还有很多疑问,这里不细究,它只是当前科技发展中实践出来的SOTA方法而已。
  2. 如何获得这种特征基准?
    1. 答案:卷积神经网络能够提取图像的特征,既然如此,我们就可以用大量带标注的训练样本,外加误差度量公式,以及损失函数,去训练这个神经网络特征提取器把单个人的所有人脸图像转换成用一个特征向量去表示。
  3. 有了基准,怎么计算相似度值?
    1. 答案:最简单的度量方法,就是计算特征向量每一维度距离差的平方和。

2 ARCFace介绍

3 实际应用时的探讨

探讨1:类似于人脸识别这样的应用,从0到落地应用的大概流程是怎样的?

  1. 案例假设:假设为一个小区或一个公司搭建一个人脸识别门禁系统。
  2. 第1步——训练人脸特征提取器:使用开源人脸数据集,基于ARCFace这样的度量学习算法,训练好一个特征提取器(如resnet,输入一张人脸图,输出512维度特征向量)。
  3. 第2步——建库:小区所有用户提供1张或多张人脸相片,把每个人的相片输入特征提取器,转换成一个512维度的向量,把这个特征向量存储在数据库中,与人员信息绑定,作为这个人的基准特征向量。
  4. 第3步——使用:建好库后,后续这个用户刷脸门禁时,图像会送入ARCFace算法,提取成一个512维度的特征向量,然后这个特征向量会和系统人脸数据库中所有用户的基准人脸特征向量进行度量(使用矩阵计算,哪怕是千万级用户,普通电脑也可在0.1秒内度量计算完毕)。如果发现与人脸数据库中某个人的相似度值超过阈值(这个阈值的选择,也是工程应用的关键),即表示此刻刷脸的人,就是小区用户。

探讨2:怎么评估这个特征提取器网络训练好了?

  1. 要满足两个条件:

    1. 第一:同一个人的不同照片输入特征提取器网络,得到的特征向量,通过距离度量公式,它们的距离差很小。
    2. 第二:不同人的照片输入特征提取器网络,得到的特征向量,通过距离度量公式,它们的距离差很大。

探讨3:为什么卷积输出特征图或全连接层的输出结果能代表某一个类的信息?

网络学会的,当网络训练好后,这些位置的输出结果可以编码某一类的“全部”信息。具体可在http://scs.ryerson.ca/~aharley/vis/conv/ 中体验,通过手写不同的“1”,你会发现,最后一个全连接层的高亮区,基本变化不大,这就表示,只要输入图是“1”字,那么全连接层的结果基本变动不大。

探讨4:如何评估模型或项目效果?

以XXX度量为案例,流程如下:

备注:

  • train集和val集由103人构成,每个人大概几千张XXX图像。
  • 第104号、105号人数据不参与模型的训练,大概几十张XXX图像。

度量学习:ArcFace算法和工程应用总结相关推荐

  1. 机器学习--近邻成分分析(NCA)算法 和 度量学习

    1.近邻成分分析(NCA)算法 以上内容转载自:http://blog.csdn.net/chlele0105/article/details/13006443 2.度量学习 在机器学习中,对高维数据 ...

  2. 度量学习(Metric Learning)【AMSoftmax、Arcface】

    一.概述 度量学习 (Metric Learning) == 距离度量学习 (Distance Metric Learning,DML) == 相似度学习. 在数学中,一个度量(或距离函数)是一个定义 ...

  3. 数据结构与算法学习③(Hash hash算法的工程应用 递归 )

    Hash Hash 散列表(Hash Table) 概述 散列函数 散列冲突 复杂度分析 工程应用 面试实战 亚马逊,微软最近面试题,242. 有效的字母异位词 腾讯,高盛集团最近面试题,49. 字母 ...

  4. 深度度量学习的这十三年,难道是错付了吗?

    机器之心报道 机器之心编辑部 或许对于每一个领域来说,停下脚步去思考,与低头赶路一样重要. 「度量学习(Metric Learning)」即学习一个度量空间,在该空间中的学习异常高效,这种方法用于小样 ...

  5. Facebook爆锤深度度量学习:该领域13年来并无进展!网友:沧海横流,方显英雄本色...

    来源:AI科技评论 近日,Facebook AI和Cornell Tech的研究人员近期发表研究论文预览文稿,声称近十三年深度度量学习(deep metric learning) 领域的目前研究进展和 ...

  6. 漫谈度量学习(Distance Metric Learning)那些事儿

    ©作者 | 黄春喜 单位 | 香港科技大学 研究方向 | 智能交通 前言 上图为 2018 年 4 月在杭州阿里中心听 Michael Jordan 讲座时所摄,他本人也是 distance metr ...

  7. 『深度概念』度量学习中损失函数的学习与深入理解

    『深度概念』度量学习中损失函数的学习与深入理解 0. 概念简介 度量学习(Metric Learning),也称距离度量学习(Distance Metric Learning,DML) 属于机器学习的 ...

  8. 墨奇科技博客 | 理解度量学习的新姿势

    在身份识别领域,特征的稳定性一直是影响认证精度的重要因素.为了支持特征提取的稳定性,很多方案都会选择比较固定单一的采集方式来获取生物特征,但是这样的采集方式已经不能满足现代身份认证/识别系统的需求. ...

  9. Adam 那么棒,为什么还对 SGD 念念不忘?一个框架看懂深度学习优化算法

    作者|Juliuszh 链接 | https://zhuanlan.zhihu.com/juliuszh 本文仅作学术分享,若侵权,请联系后台删文处理 机器学习界有一群炼丹师,他们每天的日常是: 拿来 ...

最新文章

  1. 计算机传票录入教案,传票翻打教案.docx
  2. c/c++源文件为何要包含自己的头文件?(编译器检查定义和声明的一致性)(编译报错:undefined reference to...)
  3. 这些世界罕见的地质奇迹,你认识几个!
  4. Python3之对象垃圾收集机制浅析
  5. android学习——popupWindow 在指定位置上的显示
  6. svn版本管理软件——svn分支管理
  7. HDU-魔咒词典(字符串hash)
  8. SCSI与USB的关系
  9. 计算机视觉笔记及资料整理(含图像分割、目标检测小方向学习)
  10. dns服务器理论基础知识
  11. python商务图表_Excel 数据之美:科学图表与商业图表的绘制(全彩)
  12. 【人工智能】3.谓词与机器推理
  13. firefox控制台打开方法
  14. VC新潮流,Tiger DAO VC以DAO形式入侵
  15. 如何用大数据软件确定宠物用品店铺选址
  16. Windows10 背景色设置成绿豆沙色
  17. 达梦数据库或者oracle数据库报错: 超过最大参数个数(32767)
  18. PHP strtotime -1 month 获取上个月月份踩坑
  19. 学计算机AMD不支持软件,解决系统提示“AMD安装程序无法正确识别AMD显卡硬件”的方法...
  20. 服务器温度显示软件,服务器温度监控软件

热门文章

  1. [JS]请填充代码,使mySort()能使传入的参数按照从小到大的顺序显示出来。
  2. C++ 结构体struct 的使用
  3. andorid 启动模式面试题
  4. Java NIO(New I/O)的三个属性position、limit、capacity
  5. day07-字符编码、文件操作
  6. [BZOJ3337] ORZJRY I --块状链表大毒瘤
  7. activeMQ 本地测试
  8. Eclipse使用Tomcat发布项目时出现YadisException异常解决方案
  9. 接口与抽象类的使用选择
  10. 【学习参考】Animate.css动画演示