简介随着硬件性能的提升和人脸数据量的增加,人脸识别越来越成熟,商业应用也越来越多。经常看到很多文章说人脸识别算法做了哪些改进,在LFW上的识别准确率达到了99.6%以上。事实上,仅仅一个准确率指标并不能衡量一个模型的性能。准确率不能反映人脸识别中最重要指标的通过率和拒绝率。通过率包括同一人在两种情况下通过的概率和不同人通过的概率。拒绝率包括两种情况下被不同人拒绝的概率和被同一个人拒绝的概率。通常我们希望模型中同一个人的通过率越高越好,不同人的通过率越低越好。下面的评价指标主要基于这两个演变。人脸识别人脸识别现在应用于多种应用,如人脸考勤、实名认证、身份认证、刷脸支付、天网系统等。其实底层实现技术主要还是靠人脸验证和人脸搜索。人脸验证也叫1:1人脸比对,人脸搜索也叫1:N人脸比对。首先我们从包含人脸的图片中通过人脸检测提取出人脸的位置信息和人脸关键点,然后结合人脸关键点通过仿射变换进行人脸对齐,得到对齐后的人脸图片.然后通过人脸识别模型提取人脸图像,提取的特征是一个高维向量。该向量的维度通常为128、256、512、1024甚至更高。判断两张人脸图片是否相似的指标主要有两个,欧氏距离和余弦相似度。首先,人脸图像通过人脸识别模型转化为特征向量。欧氏距离,顾名思义,就是计算两个向量的欧氏距离,所以两个向量的欧氏距离越小,就越相似。余弦相似度是计算两个向量夹角的余弦值。cosθ的取值范围为[?1,1]。我们可以将其归一化为[0,1],通过0.5+0.5?cosθ实现,余弦相似度越大,是同一个人的概率就越大。不管是1:1人脸匹配还是1:N人脸匹配,我们都需要先确定一个阈值(欧氏距离或相似度)。通常,相似性度量用于衡量人脸的相似性。后面我们要讲的阈值其实就是一个相似度阈值。通过人脸数据集,根据指定的通过率或拒绝率确定阈值。如果阈值大于这个,就说明是同一个人,否则就不是同一个人。Faceverification1:1人脸验证(verification),比较两张图片是不是同一个人。常见应用包括火车站人脸闸机实名认证、手机人脸解锁等。通过判断比对图片的相似度是否大于阈值,常用的性能评价指标包括以下FARFAR(FalseAcceptRate)错误识别率,表示错误接受率,相当于FPR(FalsePositiverate)falsepositiverate,指的是不是同一个人但被误认为是同一个人的比较次数。计算公式如下。混淆矩阵(TP,TN,FP,FN)的详细描述可以参考我的另一篇文章分类算法中常用的评价指标TARTAR(TrueAcceptRate)表示正确接受率,相当于TPR(TruePositiveRate)的真实率,指的是同一个人被正确认为是同一个人的次数占所有同一人比较,计算公式如下FRRFRR(FalseRejectRate)FalseRejectionRate,即FNR(FalseNegativeRate)FalseNegativeRate,是指同一个人但不被认为是同一个人来占同一个人是同一个人的次数,计算公式如下1:1在人脸识别比赛中,还会有一些其他的评价指标,FMR(错误匹配率)和FNMR(错误不匹配率)。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-setidentification)和闭集识别(close-setidentification)。在评估1:N人脸识别时,我们需要三组图片,galleryG(baselibrary,registeredfacelibrary),probe(probe,待识别的人脸图像),probe分为Pn和Pg,Pn中的人脸照片不在图库里,就叫冒名顶替,Pg里的人脸照片在图库里,就叫天才。Open-setidentification开集识别(open-setidentification):开集识别需要解决的问题是判断一个probePj是否在gallery中,如果是这个人是谁。Pj可以在画廊中,也可以不在画廊中。假设galleryG={g1,g2.....gn},gi代表图库中的一个人,待测人脸Pj计算与每个gi的相似度,记为Sji,Sji表示两张人脸图像是同一个人的概率。我们计算G中每个人与Pj的相似度,得到一个集合S{sj1,sj2...sjn},将集合S从大到小排序(使用的欧氏距离从小到大排序).假设图库中Pj对应的人是g?,rank(Pj)=n的定义就是Pj和g?的相似度排在n位,rank1也叫topmatch。刷脸支付是TOP1的开集标识,人脸认证是topk的开集标识。Close-setidentificationClose-setidentification(封闭集识别):封闭集识别需要解决的问题是在gallery中找到probePj,Pj属于gallery。和开集识别一样,闭集识别也关注topk中是否包含正确的识别结果。评价指标下方的评价指标适用于DIRDIR(DetectionandIdentificationRate)在开集识别和闭集识别中:表示Pj∈Pg与G中真实结果s?的相似度大于τ并且大于other在Pg中与Pj不是同一个人的所有相似度的比例,DIR衡量的是图书馆人员的及格表现。计算公式如下。让我们用一个例子来说明。假设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,所以ThenPj就匹配错了人。FARFAR(FalseAlarmRate):表示Pj∈Pn与G中最相似的人的相似度大于Pn中τ的比例。FAR衡量的是数据库外人脸的拒绝性能,也是人脸识别系统的安全性。性保证。计算公式如下。对于1:N人脸搜索,当FAR越低,DIR越高,说明模型的性能越好。下面用一个例子来说明这两个评价指标是怎样的。上面的计算表是图库(G)中Pg(照片在G中)和Pn(照片不在G中)的测试结果,a,b,c分别对应A,B,C在G中,d,e,f不在G中。当阈值τ为0.7时,让我们计算DIR和FIR。a与A的相似度最高,且SaA>τ,故匹配成功。虽然b和B的相似度是SbB>τ,但是SbBc和C相似度最高,但是ScC<τ,所以匹配错误,所以DIR=1/3≈33.33%相似度d和A之间是最高的,并且SdA<τ,因为d不在库中,所以e和C之间的相似度是最高的,并且SeC>τ,因为c不在库中,所以匹配误差f与C相似度最高,且SfC<τ,因为f不在库中,所以匹配正确所以FAR=1/3≈33.33%
