天天看点

人脸识别算法_人脸识别算法常用性能评价指标

人脸识别算法_人脸识别算法常用性能评价指标

01

算法性能测试要到实际场景中

人脸识别算法的准确率是PR宣传最多的,还有各大国际比赛的排名也是时常引人注目,刷数字如同上学考试刷高分一样具有兴奋性。但在实际应用中,没有经过场景测试的准确率都是不可信的,同时仅仅只看准确率一个指标评估算法的性能也是不合理的。

首先,准确率不是一个静止不变的数字,在不同场景中,准确率是有变化的,算法的性能指标永远是和场景强相关的。

底库数量

底库一万人和底库十万人,同时过来相同一拨人进行比对,准确率是远远不同的。随着人数的上涨,底库中人的相似度也会大幅提升。通常千人级别的底库,准确率可以达到98%以上,五万人级别的底库,准确率就会下降到95%甚至更低。

环境条件

此外,在不同的测试环境中,准确率也有所不同。同一个人在光线情况良好的情况下很容易比对成功,而在弱光、逆光、强光照、阴阳脸、歪曲变形、运动模糊的条件下捕捉到的人脸,就极有可能发生拒绝识别或者错误识别的状况。

训练数据

算法的准确率还与训练数据和实际场景中的照片数据有关系。如果训练的时候用的数据都是网上明星一样完美光照、背景的图片,而实际场景中很多阴阳脸、昏暗、变形、运动模糊、遮挡等不完美的图片,准确率就会很低。

而训练时用了很多实际场景中的照片,准确率也会大幅提升,训练算法用的数据越多,准确率就越高。对于算法的精度而言,训练用的数据是十分重要的。对于十万或者以上的场景,将底库数据加入算法的训练库,用来训练算法,那么基本上在实际场景中,对于这十万人的比对,准确率也会大幅提升。在公安安防这种亿级场景中,谁能拥有亿级数据进行算法训练,谁就比较容易在测试中胜出。

算法精度的讨论离不开场景,抛开场景谈算法精度都是扯淡。我们常常看到在国际大型比赛中大家的算法精度都已经刷到99.9X%的高位数字,其实比赛中训练算法常用的是网上公开集,测试的数据也是互联网上的数据。这种情况下相当于在简单场景下大家把算法的精度抬到很高,放到实际场景中,各家的算法差距就会拉开。

在平安城市、雪亮工程等实际应用中,通常要在上亿的数据库中进行人脸比对,这种情况下,主要比拼的是各家算法的实力以及训练数据库的丰富程度了。

02

常见的算法性能指标

算法的优秀程度并不仅仅表现在准确率上面,召回率、精确率、ROC曲线、mAP、IoU等也是重要衡量指标。

在介绍这几个的概念之前,需要先了解几个简单的指标:

TP-True Positive 将正类预测为正类。真正

TN-True Negative 将正类预测为负类。正确的误报为错误的

FP-False Positive 将负类预测为正类。真负

FN-False Negative 将负类预测为负类。错误的误报为正确的

人脸识别算法_人脸识别算法常用性能评价指标

准确率:

Accuracy=(TP+TN)/(TP+TN+FP+FN);

错误率:

Error Rate=(FP+FN)/(TP+TN+FP+FN);

精确率:

Precision=TP/(TP+FP);被分类为正确的示例中分对的比例;找的对

召回率:

Recall=TP/(TP+FN);实际为正确的示例中,被辨认出来的比例;找的全

很多情况下,精确率和召回率是相互矛盾的,就像来一个人过人脸闸机,如果他在库中,你希望他在实际场景中几乎都能通过,召回率很高,那有可能也会有很多陌生人被误识别为库中的人, 也可以进来,相应精度率就会下降。反过来,如果想提升精确度,不放一个陌生人进来,可能就会有库中人在某些场景比如强光照、化妆等被识别为陌生人,而无法进来,召回率就会下降。

F1-Measure:

这时,就有一个综合评价指标F1-measure,就是Precision和Recall的加权调和平均:

人脸识别算法_人脸识别算法常用性能评价指标

当a=1的时候,就是最常见的

人脸识别算法_人脸识别算法常用性能评价指标

PR曲线:

是Precision-Recall曲线

人脸识别算法_人脸识别算法常用性能评价指标

图:https://zhuanlan.zhihu.com/p/33273532

AP(Average Precision)平均精度,PR曲线围起来的面积就是AP值。AP值越高代表分类器的性能越好。

mAP(Mean Average Precision):均值平均精度。每个类别AP的平均值就是mAP。

AP衡量的是模型在每个类别上的好坏而mAP衡量的是模型在所有类别上的好坏。

交并比:IoU(Intersection over Union)

是模型所预测的检测框和真实(ground truth)的检测框的交集和并集之间的比例。可以理解为系统检测出来的框与原来的框的重合度。

ROC(Recevier Operator Characteristic Curve)曲线:

了解ROC曲线,需要先了解真正率、假正率的概念

真正率TPR(True Positive Rate)=TP/(TP+FN),表示预测为正的值占实际为正的值的比例;

假正率FPR(False Postive Rate)=FP/(FP+TN),表示预测为正的中实际是负的实例占实际为负的比例;

ROC指的是真正率和假正率之间的关系,真正率其实和召回率表示的一样,表示查全率。真正率很高的时候,假正率就会上去,就会将一些负的预测为正的。

每一个点代表一个阈值,最理想的点是(0,1),真正率为1,假正率为0。所以对于曲线来说,最靠近(0,1)坐标的店对应的阈值是最佳阈值。曲线越偏离45度对角线,算法性能越好。

人脸识别算法_人脸识别算法常用性能评价指标

图:http://blog.csdn.net/abcjennifer/article/details/7359370

AUC(Area Under Curve):AUC代表的是ROC曲线所覆盖的区域面积,AUC越大,分类器分类效果越好。

在传统的指纹识别算法中常用到FAR、FRR、EER的指标来衡量算法,有时人脸识别算法也会使用相同的指标进行衡量。

误识率FAR:是指在标准数据库上测试识别算法时,不同的匹配分数大于给定阈值,从而被认为是相同的比例,简单地说就是“把不应该匹配的当成匹配的”的比例。

拒识率FRR:是指在标准数据库上测试识别算法时,相同的匹配分数低于给定阈值,从而被认为是不同的比例,简单地说就是 “把应该相互匹配成功的当成不能匹配的”的比例。

FAR(False Accept Rate)=FP/(FP+TN);不该匹配的匹配成功了占总的匹配失败比例;

拒识率:FRR(False Reject Rate)=FN/(TP+FN);该匹配的没有匹配占总的匹配成功的比列;

FAR和FRR和阈值有很大关系。阈值高的时候,拒识率高,误识率低;阈值低的时候,拒识率低,误识率高。

等错误率EER:Equal Error Rate

以阈值为横坐标,错误接受率值/错误拒绝率值为纵坐标,用不同阈值Ti、错误接受率FARi、错误拒绝率FRRi数据绘制曲线,误识率点等于拒识率率点的纵坐标值为等错误率值。且EER所对应的阈值一般为最佳阈值。 

相关文章:

站在AI的风口上,飞起来并不很容易

从社会学角度看中国人工智能

AI+教育,做什么?

视觉AI公司战略一窥

白话AI芯片

2018 AI终端视觉芯片一览

2018 AI云端芯片一览

人脸识别算法_人脸识别算法常用性能评价指标