作家
登录

深入浅出谈人脸识别技术

作者: 来源: 2018-01-29 09:27:31 阅读 我要评论


在深度进修出现后,人脸辨认技巧才真正有了可用性。这是因为之前的机械进修技巧中,难以大年夜图片中掏出合适的特点值。轮廓?色彩?眼睛?如斯多的面孔,且跟着年纪、光线、拍摄角度、气色、神情、化妆、佩饰挂件等等的不合,同一小我的面孔照片在照片象素层面上差别很大年夜,凭借专家们的经验与试错难以掏出精确率较高的特点值,天然也没法对这些特点值进一步分类。深度进修的最大年夜优势在于由练习算法自行调剂参数权重,构造出一个精确率较高的f(x)函数,给定一张照片则可以获取到特点值,进而再归类。本文中笔者试图用通俗的说话商量人脸辨认技巧,起首概述人脸辨认技巧,接着商量深度进修有效的原因以及梯度降低为什么可以练习出合适的权重参数,最后描述基于CNN卷积神经收集的人脸辨认。

一、人脸辨认技巧概述

平日收集的最后一层为全连接层,如许一般的CNN收集构造如下所示:

图24:深刻浅出谈人脸辨认技巧

之所以要有人脸检测,不然则为了检测出照片上是否有人脸,更重要的是把照片中人脸无关的部分删掉落,不然整张照片的像素都传给f(x)辨认函数肯定就弗采取了。人脸检测不必定会应用深度进修技巧,因为这里的技巧请求相对低一些,只须要知道有没有人脸以及人脸在照片中的大年夜致地位即可。一般我们推敲应用OpenCV、dlib等开源库的人脸检测功能(基于专家经验的传统特点值办法计算量少大年夜而速度更快),也可以应用基于深度进修实现的技巧如MTCNN(在神经收集较深较宽时运算量大年夜大年夜而慢一些)。

在人脸检测环节中,我们重要存眷检测率、漏检率、误检率三个指标,个中:

  • 检测率:存在人脸并且被检测出的图像在所有存在人脸图像中的比例;
  • 漏检率:存在人脸然则没有检测出的图像在所有存在人脸图像中的比例;
  • 误检率:不存在人脸然则检测出存在人脸的图像在所有不存在人脸图像中的比例。

当然,检测速度也很重要。本文纰谬人脸检测字进一步描述。

在人脸辨认环节,其应用处景一般分为1:1和1:N。

1:1就是断定两张照片是否为同一小我,平日应用在人证匹配上,例如身份证与及时抓拍┞氛是否为同一小我,常见于各类营业厅以及后面介绍的1:N场景中的注册环节。而1:N应用处景,则是起首履行注册环节,给定N个输入包含人脸照片以及其ID标识,再履行辨认环节,给定人脸照片作为输入,输出则是注册环节中的某个ID标识或者不在注册照片中。可见,大年夜概率角度上来看,前者相对简单很多,且因为证件照平日与当下照片年代距离时光不定,所以平日我们设定的类似度阈值都是比较低的,以此获得比较好的经由过程率,容忍稍高的误辨认率。

而后者1:N,跟着N的变大年夜,误辨认率会升高,辨认时光也会增长,所以类似度阈值平日都设定得较高,经由过程率会降低。这里简单解释锫膳绫擎的几个名词:误辨认率就是照片其实是A的却辨认为B的比率;经由过程率就是照片确切是A的,但可能每5张A的┞氛片才能辨认出4张是A其经由过程率就为80%;类似度阈值是因为对特点值进行分类是概率行动,除非输入的两张照片其实是同一个文件,不然任何两张照片之间都有一个类似度,设定好类似度阈值后唯有两张照片的类似度跨越阈值,才认为是同一小我。所以,纯真的评价某小我脸辨认算法的精确率没有意义,我们最须要弄清跋扈的是误辨认率小于某个值时(例如0.1%)的经由过程率。不管1:1照样1:N,其底层技巧是雷同的,只是难度不合罢了。

假定我们给出的人脸照片是100*100像素大年夜小,因为每个像素有RGB三个通道,每个像素通道由0-255范围的字节表示,则共有3个100*100的矩阵计3万个字节作为输入数据。深度进修实际上就是生成一个近似函数,把膳绫擎的输入值转化为可以用作特点分类的特点值。那么,特点值可所以一个数字吗?当然不可,一个数字(或者叫标量)是无法有效表示出特点的。平日我们用多个数值构成的向量表示特点值,向量的维度即个中的数值个数。特点向量的维度并非越大年夜越好,Google的FaceNet项目(拜见http://arxiv.org/abs/1503.03832论文)做过的测试结不雅显示,128个数值构成的特点向量结不雅最好,如下图所示:

图0:深刻浅出谈人脸辨认技巧

那么,如今问题就转化为怎么把3*100*100的矩阵转化为128维的向量,且这个向量可以或许精确的区搀扶不合的人脸?

假定照片为x,特点值为y,也就是说存在一个函数f(x)=y可以完美的┞芬出照片的人脸特点值。如今我们有一个f*(x)近似函数,个中它有参数w(或者叫权重w)可以设置,例如写成f*(x;w),如有练习集x及其id标识y,设初始参数p1后,那么每次f*(x;w)获得的y`与实际标识y比拟,若精确则经由过程,若缺点则恰当调剂参数w,如不雅可以或许精确的调剂好参数w,f*(x;w)就会与幻想中的f(x)函数足够接近,我们就获得了概率上足够高精确率的f*(x;w)函数。这一过程叫做监督进修下的练习。而计算f*(x;w)值的过程因为是正常的函数运算,我们称为前向运算,而练习过程中比较y`与实际标识id值y结不雅后,调剂参数p的过程则是反过来的,称为反向传播。

因为我们传递的x入参毕竟是一张照片,照片既有对焦、光线、角度等导致的不太轻易衡量的质量问题,也有本身的像素数若干问题。如不雅x本身含有的数据太少,即图片异常不清楚,例如28*28像素的┞氛片,那么谁也无法精确的分辨出是哪小我。可以想见,必定像素数越多辨认也越准,但像素数越多导致的计算、传输、存储消费也越大年夜,我们须要有根据地找到合适的阈值。下图是FaceNet论文的结不雅,固然只是一家之言,但Google的严谨立场使得数据也很有参考价值。

图1:深刻浅出谈人脸辨认技巧

大年夜图中可见,清除照片其他质量外,像素数至少也要有100*100(纯人脸部分)才能包管比较高的辨认率。

 1/5    1 2 3 4 5 下一页 尾页

  推荐阅读

  “Docker“生死”记,这条船还能开出去多远?

年前最后一场技巧盛宴 | 1.27与京东、日记易、假贷宝技巧大年夜咖畅聊智能化运维成长趋势! 月初,一篇题为《Docker公司已逝世》的文┞仿,预言了Docker公司将在2018年的某个时刻不复存在。>>>详细阅读


本文标题:深入浅出谈人脸识别技术

地址:http://www.17bianji.com/lsqh/40451.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)