导读

随着硬件性能的提升和人脸数据量的增大,人脸识别也越来越成熟,商业应用也越来越多。经常看到很多文章说,人脸识别算法做了什么什么改进在LFW上的识别准确率达到99.6%以上

实际上,仅仅一个准确率指标是无法衡量一个模型的性能,准确率无法体现出人脸识别中最重要的指标通过率拒绝率通过率包含两种情况同一个人通过的概率和不同人通过的概率,拒绝率包含两种情况不同人被拒绝的概率和同一个人被拒绝的概率,通常我们希望模型在不同人通过率越低的情况下同一个人通过率越高越好,下面的评估指标主要也是基于这两个进行演化的。

人脸识别

现在人脸识别的应用多种多样,如人脸考勤、实名验证、身份验证、人脸支付以及天网系统等。实际上底层的实现技术主要还是依靠人脸验证人脸搜索,人脸验证也称为1:1人脸匹配,人脸搜索也称为1:N人脸匹配

首先我们从包含人脸的图片中通过人脸检测提取出人脸的位置信息以及人脸关键点,然后通过仿射变换结合人脸关键点进行人脸对齐,获取到对齐后的人脸图片。再将人脸图片通过人脸识别模型进行人脸特征提取,提取出来的特征是一个高维向量,这个向量的维度通常是128、256、512、1024甚至更高。

判断两张人脸图片是否相似的度量主要有两个指标欧式距离余弦相似度。先通过人脸识别模型将人脸图片转换为特征向量欧式距离顾名思义就是计算两个向量的欧式距离,所以两个向量的欧式距离越小表示他们越相似。余弦相似度就是计算两个向量的夹角的余弦值,cosθcos\thetacosθ的取值范围在[−1,1][-1,1][−1,1],我们可以对其进行归一化操作到[0,1][0,1][0,1]通过0.5+0.5∗cosθ0.5+0.5*cos\theta0.5+0.5∗cosθ来实现,余弦相似度越大表示是同一个人的概率越大。

无论是1:1人脸匹配还是1:N人脸匹配,我们都需要先确定一个阈值(欧式距离或相似度),通常人脸相似的度量指标都是用的相似度,我们后面所说的阈值其实也就是一个相似度阈值。通过人脸数据集根据通过率或拒绝率来确定阈值,大于这个阈值表示为同一个人否则不是同一个人。

人脸验证

1:1人脸验证(verification),比对两张图片是否为同一个人,常见的应用有火车站人脸闸机实名验证手机人脸解锁等。通过判断比对图片的相似度是否大于阈值,常用的性能评估指标有如下几个

  • FAR
    FAR(False Accept Rate)认假率,表示错误的接受比例,与FPR(False Positive Rate)假正例率等价,指不是同一个人却被错误的认为是同一个人占所有不是同一个人比较的次数,计算公式如下
    FAR=非同人相似度>T非同人比较的次数FAR = \frac{非同人相似度>T}{非同人比较的次数} FAR=非同人比较的次数非同人相似度>T​
    FPR=FPFP+TNFPR = \frac{FP}{FP+TN} FPR=FP+TNFP​
    关于详细的混淆矩阵(TP、TN、FP、FN)说明,请参考我的另一篇文章分类算法中常用的评估指标
  • TAR
    TAR(True Accept Rate)表示正确的接受比例,与TPR(True Positive Rate)真正率等价,指是同一个人且被正确的认为是同一个人占所有同一个人比较的次数,计算公式如下
    TAR=同人相似度>T同人比较的次数TAR = \frac{同人相似度>T}{同人比较的次数} TAR=同人比较的次数同人相似度>T​
    TPR=TPTP+FNTPR = \frac{TP}{TP+FN} TPR=TP+FNTP​
  • FRR
    FRR(False Reject Rate)错误拒绝率,与FNR(False Negative Rate)假负率,指是同一个人但被认为不是同一个人占所有是同一个人比较的次数,计算公式如下
    FRR=同人相似度<T同人比较的次数FRR = \frac{同人相似度<T}{同人比较的次数} FRR=同人比较的次数同人相似度<T​
    FNR=FNFN+TPFNR = \frac{FN}{FN+TP} FNR=FN+TPFN​
    在一些1:1的人脸识别比赛中,也会有一些其它的评估指标,FMR(false match rate)和FNMR(false non-match rate)。FMR错误匹配率等价于FAR,FNMR错误的不匹配率等价于FRR

有时候还会看见类似于FNMR @ FMR = 0.000001,这种表达式所指示的是先在数据集上计算出FMR = 0.000001时的阈值,然后再根据这个阈值计算FNMR。类似于这种TAR=0.998@FAR=1e-6,表示的是当不是同一个人通过率为1e-6时,相同人的通过率为99.8%。对于1:1人脸验证来说当FAR越低的情况下,TAR越高越好

人脸搜索

1:N人脸识别评估分为两种情况开集识别(open-set identification)和闭集识别(close-set identification)。

在评估1:N的人脸识别时我们需要三组图像,galleryG(底库,已注册的人脸库),probe(探针,待识别的人脸图像),probe分为PnP_nPn​和PgP_gPg​,PnP_nPn​中的人脸照片不在gallery中,被称为imposter,PgP_gPg​中的人脸照片在gallery中,被称为genius

开集识别

开集识别(open-set identification):开集识别需要解决的问题是判断一个probePjP_jPj​在不在gallery中,如果在这个人是谁。PjP_jPj​可以在gallery中,也可以不在。

假设galleryG={g1,g2.....gn}G=\{g_1,g_2.....g_n\}G={g1​,g2​.....gn​},gig_igi​表示gallery中的一个人,待测人脸PjP_jPj​与每个gig_igi​计算一个相似度,用SjiS_{ji}Sji​表示,SjiS_{ji}Sji​表示两张人脸图片是同一个人的概率。我们将G中的每一个人与PjP_jPj​计算相似度,得到一个集合S{sj1,sj2.....sjn}S\{s_{j1},s_{j2}.....s_{jn}\}S{sj1​,sj2​.....sjn​},对集合SSS进行由大到小的排序(用的欧式距离就是从小到大排序)。假定与PjP_jPj​在gallery中对应人的是g∗g*g∗,定义rank(Pj)=nrank(P_j)=nrank(Pj​)=n表示PjP_jPj​与g∗g*g∗的相似度排在第n位,rank1rank1rank1也称为topmatchtop\ matchtop match。

对于刷脸支付就是一个top1top1top1的open-set identification,人脸身份验证就是一个topktopktopk的open-set identification。

闭集识别

闭集识别(close-set identification):闭集识别需要解决的问题是,在gallery中找到probePjP_jPj​,PjP_jPj​属于gallery中。与开集识别一样,闭集识别关心的也是在topktopktopk中是否包含正确的识别结果。

评估指标

下面的评估指标在开集识别闭集识别中都适用

  • DIR

DIR(Detection and Identification Rate):指Pj∈PgP_j \in P_gPj​∈Pg​与GGG中的真实的结果s∗s*s∗之间的相似度大于τ\tauτ且大于其他所有与PjP_jPj​不是同一个人的相似度在PgP_gPg​中所占的比例,DIR衡量的是库内人员的通过性能。计算公式如下
PDI(τ,1)=∣{Pj∈Pg,rank(Pj)=1,andPj∗>τ}∣∣Pg∣P_{DI}(\tau,1)=\frac{|\{P_j\in P_g,rank(P_j)=1,and\ P_{j*}>\tau\}|}{|P_g|} PDI​(τ,1)=∣Pg​∣∣{Pj​∈Pg​,rank(Pj​)=1,and Pj∗​>τ}∣​

下面我们来举例说明一下

假设G中有A、B、C三个人的人脸信息每个人有一张照片,Pj是属于C的另一张人脸照片,如果Pj与A、B、C的相似度分别为0.5、0.6、0.9,τ为0.7,那么此时才算是匹配正确。如果Pj与C的相似度为0.68<τ,会被认为是库外人员从而导致漏匹配。如果Pj与A、B、C的相似度为0.6、0.8、0.78,那么此时Pj的top1匹配应该是B,因为C与Pj的相似度排在第二位是rank(Pj)=2,此时Pj匹配上了错误的人。

  • FAR

FAR(False Alarm Rate):指Pj∈PnP_j \in P_nPj​∈Pn​与GGG中最相似的人相似度大于τ\tauτ在PnP_nPn​中所占的比例,FAR衡量的是对库外人脸的拒绝性能也是人脸识别系统安全性的保证。计算公式如下
PFA(τ)=∣{Pj∈Pn,maxi(sji)>=τ}∣∣Pn∣P_{FA}(\tau)=\frac{|\{P_j \in P_n,max_{i}(s_{ji})>=\tau\}|}{|P_n|} PFA​(τ)=∣Pn​∣∣{Pj​∈Pn​,maxi​(sji​)>=τ}∣​
对于1:N的人脸搜索来说,当FAR越低的情况下,DIR越高时,表示模型的性能越好,下面我们通过一个例子来说明一下,这两个评估指标是如何计算的

gallery(G)
A B C
P(g) a 0.92 0.83 0.75
b 0.88 0.75 0.67
c 0.54 0.67 0.68
P(n) d 0.68 0.55 0.49
e 0.56 0.65 0.78
f 0.59 0.61 0.67

上表展示了PgP_gPg​(照片在G中)和PnP_nPn​(照片不在G中)在gallery(G)中的测试结果,a、b、c在G中分别对应A、B、C,d、e、f均不在G中。阈值τ\tauτ取0.7时,我们来计算一下DIRFIR

  1. a与A的相似度最高,且SaA>τS_{aA} > \tauSaA​>τ,所以匹配成功
  2. 虽然b与B的相似度SbB>τS_{bB}>\tauSbB​>τ,但SbB<SbAS_{bB} < S_{bA}SbB​<SbA​,所以匹配错误
  3. c与C的相似度最高,但ScC<τS_{cC}<\tauScC​<τ,所以匹配错误

所以DIR=1/3≈33.33%DIR=1/3 \approx 33.33\%DIR=1/3≈33.33%

  1. d与A的相似度最高,且SdA<τS_{dA} < \tauSdA​<τ,因为d不在库中,所以匹配正确
  2. e与C的相似度最高,且SeC>τS_{eC} > \tauSeC​>τ,因为c不在库中,所以匹配错误
  3. f与C的相似度最高,且SfC<τS_{fC} < \tauSfC​<τ,因为f不在库中,所以匹配正确

所以FAR=1/3≈33.33%FAR=1/3 \approx 33.33\%FAR=1/3≈33.33%

人脸识别常用的评估指标相关推荐

  1. 人脸识别常用数据集大全(12/20更新)

    人脸识别常用数据集大全(12/20更新) 原文首发地址:人脸识别常用数据集大全(12/20更新) - 极市博客 https://www.cnblogs.com/ansang/p/8137413.htm ...

  2. 人脸识别常用数据集和Loss

    人脸识别数据集 数据集的noise对训练效果的影响很大!很长一段时间MegaFace的效果都上不去,就是因为数据集噪声的原因.而且自己在训练人脸的时候,如果不对数据集的噪声和属性有一点了解,对训练结果 ...

  3. ML之ME/LF:机器学习之风控业务中常用模型评估指标PSI(人群偏移度指标)的的简介、使用方法、案例应用之详细攻略

    ML之ME/LF:机器学习之风控业务中常用模型评估指标PSI(人群偏移度指标)的的简介.使用方法.案例应用之详细攻略 目录 PSI(稳定度指标)的简介 1.如何计算PSI? (1).PSI计算过程

  4. celeba数据集_人脸识别常用数据集介绍(附下载链接)及常用评估指标

    为什么要聊到数据集这个话题..因为数据集的noise对训练效果的影响很大!很长一段时间MegaFace的效果都上不去,就是因为数据集噪声的原因.而且自己在训练人脸的时候,如果不对数据集的噪声和属性有一 ...

  5. 二分类最优阈值确定_一文搞懂分类算法中常用的评估指标

    导读 通常我们在解决某个问题的时候,会设计多种分类算法在训练的时候我们还会调节各种超参以及使用各种trick以获取最优的分类模型,那这时候我们应该如何来衡量这个最优呢? 分类算法的评估指标有很多种,选 ...

  6. Mac/Linux安装人脸识别常用库(tensorflow、pytorch、dlib、face_recognition、opencv、CMake、gcc/g++)————所有环境一次性配置好

    文章目录 0 背景与准备 1 tensorflow环境[数值计算的开源软件库] 2 pytorch环境[数值计算的开源软件库] 3 face_recognition[基于dlib的人脸识别库] 4 o ...

  7. 人脸识别常用的性能评价指标

    参考链接: 1.https://blog.csdn.net/blueblood7/article/details/41823593 2.https://blog.csdn.net/lijiao1181 ...

  8. 人脸识别常用的数据库

    1.FERET人脸数据库 - 由FERET项目创建,包含1万多张多姿态和光照的人脸图像,是人脸识别领域应用最广泛的人脸数据库之一.其中的多数人是西方人,每个人所包含的人脸图像的变化比较单一 2.CMU ...

  9. 云脉H5文档识别的性能评估指标

    厦门云脉推出的H5文档管理系统便是一款基于OCR.图像处理及秒级全文检索等技术的企业级数据管理方案.其核心技术就是OCR,那评价OCR的性能指标又有哪些呢? 评估OCR性能指标通常有这几种: 平均编辑 ...

最新文章

  1. MindInsight计算图可视设计
  2. Linux 爱好者的飞行棋:sudo
  3. linux 命令 全程,linux命令及全程详解
  4. 局部变量、全局变量、堆、堆栈、静态和全局
  5. cad一键标注闭合区域lisp_CAD快捷键大全,你值得学会!
  6. 计算机主板光驱插口,如何查看笔记本光驱位和主板的SATA接口版本
  7. oracle执行计划explain,Oracle 常见的执行计划步骤(explain结果的Description数据参考)...
  8. 浅谈能耗分项计量监测系统在某大型公建的应用
  9. 阿里云移动推送iOS
  10. 跳跃表(Skip list)原理
  11. 本科学计算机大学学金融工程,2020年金融工程专业排名
  12. xsocks 64位平台下编译问题小记
  13. html网页左侧背景,CSS设置html网页背景图片 CSS设置网页背景颜色
  14. 安装SSL证书可以解决浏览器提示的不安全警告
  15. android启动页背景设置,Android APP启动页白(黑)屏问题及解决方法
  16. linux安装ati工具,安装ati驱动的辛苦历程
  17. 3.3.3 反相比例运算放大电路
  18. 个人作业2——必应词典案件分析
  19. 数字经济之新零售行动派:鸡毛换糖走向数智化
  20. 【软考中级】多媒体应用设计师复习笔记第八章

热门文章

  1. 魔兽世界怀旧服服务器信息,魔兽世界怀旧服服务器类型有哪些_怀旧服服务器类型介绍...
  2. 如何在GlobalMapper中打开谷歌卫星地图
  3. 解决谷歌浏览器图片保存为JFIF格式的问题
  4. Java调用和风天气台API查看天气
  5. JAVA产生异常并打印,Java中异常打印输出的常见方法整理
  6. 24点游戏c++实现
  7. 精辟--中国古代商人秘而不宣的经商十诀
  8. flash游戏架构浅析
  9. STM32 加密思考
  10. 中国公有云计算产品线(一篇文章看全)