人脸识别常用的评估指标

导读

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

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

人脸识别

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

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

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

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

人脸验证

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

  • FAR
    FAR(False Accept Rate)认假率,表示错误的接受比例,与FPR(False Positive Rate)假正例率等价,指不是同一个人却被错误的认为是同一个人占所有不是同一个人比较的次数,计算公式如下
    F A R = 非 同 人 相 似 度 > T 非 同 人 比 较 的 次 数 FAR = \frac{非同人相似度>T}{非同人比较的次数} FAR=>T
    F P R = F P F P + T N FPR = \frac{FP}{FP+TN} FPR=FP+TNFP
    关于详细的混淆矩阵(TP、TN、FP、FN)说明,请参考我的另一篇文章分类算法中常用的评估指标
  • TAR
    TAR(True Accept Rate)表示正确的接受比例,与TPR(True Positive Rate)真正率等价,指是同一个人且被正确的认为是同一个人占所有同一个人比较的次数,计算公式如下
    T A R = 同 人 相 似 度 > T 同 人 比 较 的 次 数 TAR = \frac{同人相似度>T}{同人比较的次数} TAR=>T
    T P R = T P T P + F N TPR = \frac{TP}{TP+FN} TPR=TP+FNTP
  • FRR
    FRR(False Reject Rate)错误拒绝率,与FNR(False Negative Rate)假负率,指是同一个人但被认为不是同一个人占所有是同一个人比较的次数,计算公式如下
    F R R = 同 人 相 似 度 < T 同 人 比 较 的 次 数 FRR = \frac{同人相似度<T}{同人比较的次数} FRR=<T
    F N R = F N F N + T P FNR = \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分为 P n P_n Pn P g P_g Pg P n P_n Pn中的人脸照片不在gallery中,被称为imposter P g P_g Pg中的人脸照片在gallery中,被称为genius

开集识别

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

假设gallery G = { g 1 , g 2 . . . . . g n } G=\{g_1,g_2.....g_n\} G={g1,g2.....gn} g i g_i gi表示gallery中的一个人,待测人脸 P j P_j Pj与每个 g i g_i gi计算一个相似度,用 S j i S_{ji} Sji表示, S j i S_{ji} Sji表示两张人脸图片是同一个人的概率。我们将G中的每一个人与 P j P_j Pj计算相似度,得到一个集合 S { s j 1 , s j 2 . . . . . s j n } S\{s_{j1},s_{j2}.....s_{jn}\} S{sj1,sj2.....sjn},对集合 S S S进行由大到小的排序(用的欧式距离就是从小到大排序)。假定与 P j P_j Pjgallery中对应人的是 g ∗ g* g,定义 r a n k ( P j ) = n rank(P_j)=n rank(Pj)=n表示 P j P_j Pj g ∗ g* g的相似度排在第n位, r a n k 1 rank1 rank1也称为 t o p   m a t c h top\ match top match

对于刷脸支付就是一个 t o p 1 top1 top1的open-set identification,人脸身份验证就是一个 t o p k topk topk的open-set identification。

闭集识别

闭集识别(close-set identification):闭集识别需要解决的问题是,在gallery中找到probe P j P_j Pj P j P_j Pj属于gallery中。与开集识别一样,闭集识别关心的也是在 t o p k topk topk中是否包含正确的识别结果。

评估指标

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

  • DIR

DIR(Detection and Identification Rate):指 P j ∈ P g P_j \in P_g PjPg G G G中的真实的结果 s ∗ s* s之间的相似度大于 τ \tau τ且大于其他所有与 P j P_j Pj不是同一个人的相似度在 P g P_g Pg中所占的比例,DIR衡量的是库内人员的通过性能。计算公式如下
P D I ( τ , 1 ) = ∣ { P j ∈ P g , r a n k ( P j ) = 1 , a n d   P j ∗ > τ } ∣ ∣ P g ∣ P_{DI}(\tau,1)=\frac{|\{P_j\in P_g,rank(P_j)=1,and\ P_{j*}>\tau\}|}{|P_g|} PDI(τ,1)=Pg{PjPg,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):指 P j ∈ P n P_j \in P_n PjPn G G G中最相似的人相似度大于 τ \tau τ P n P_n Pn中所占的比例,FAR衡量的是对库外人脸的拒绝性能也是人脸识别系统安全性的保证。计算公式如下
P F A ( τ ) = ∣ { P j ∈ P n , m a x i ( s j i ) > = τ } ∣ ∣ P n ∣ P_{FA}(\tau)=\frac{|\{P_j \in P_n,max_{i}(s_{ji})>=\tau\}|}{|P_n|} PFA(τ)=Pn{PjPn,maxi(sji)>=τ}
对于1:N的人脸搜索来说,当FAR越低的情况下,DIR越高时,表示模型的性能越好,下面我们通过一个例子来说明一下,这两个评估指标是如何计算的

gallery(G)
ABC
P(g)a0.920.830.75
b0.880.750.67
c0.540.670.68
P(n)d0.680.550.49
e0.560.650.78
f0.590.610.67

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

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

所以 D I R = 1 / 3 ≈ 33.33 % DIR=1/3 \approx 33.33\% DIR=1/333.33%

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

所以 F A R = 1 / 3 ≈ 33.33 % FAR=1/3 \approx 33.33\% FAR=1/333.33%

### 回答1: 基于YOLO的人脸识别模型说明书 1. 简介: 基于YOLO(You Only Look Once)的人脸识别模型是一种实时目标检测和识别方法,旨在快速准确地识别图像或视频中的人脸区域。该模型结合了YOLO的优势,能够在实时场景下实现较高的识别准确率和速度。 2. 模型结构: 基于YOLO的人脸识别模型采用了YOLO的网络结构和算法,其中的关键组成部分包括特征提取网络、多尺度预测和后处理。特征提取网络用于提取图像的高级特征,多尺度预测用于同时预测不同尺度的人脸区域,后处理用于根据置信度和类别信息筛选出最终的人脸识别结果。 3. 数据集和训练: 基于YOLO的人脸识别模型需要使用包含人脸标注的大规模数据集进行训练,以提高识别的准确性。在训练过程中,模型通过输入图像和对应的真值标注进行反向传播优化。同时,为了提高模型的泛化能力,可以采用数据增强技术对训练数据进行扩充,例如旋转、缩放和镜像等。 4. 模型评估: 为了评估基于YOLO的人脸识别模型的性能,通常可以使用准确率、召回率和F1分数等指标进行评价。此外,可以使用测试集或真实场景数据进行模型的性能测试,进一步验证其对人脸检测和识别的准确性和鲁棒性。 5. 应用领域: 基于YOLO的人脸识别模型可以广泛应用于人脸识别、人脸检测以及人脸认证等领域。它可以帮助监控系统实时检测和识别人脸,提供安全的认证功能。此外,还可以用于人脸门禁系统、公共安全监控和人脸表情分析等场景。 总结: 基于YOLO的人脸识别模型是一个高效准确的实时目标检测和识别算法,具备较高的识别准确率和速度。它可以通过使用大规模数据集进行训练,提供快速准确的人脸识别结果,并在各种应用领域中发挥重要的作用。 ### 回答2: 基于YOLO的人脸识别模型是一种先进的深度学习算法,旨在实现准确和高效的人脸识别。以下是该模型的说明书。 该模型使用YOLO(You Only Look Once)算法作为基础,其特点是将目标检测和识别任务融合在一个神经网络中,大大提高了识别的速度和效率。 首先,我们需要进行数据准备。人脸识别模型需要大量的人脸图像样本作为训练数据。这些数据需要经过预处理,包括对图像进行裁剪、尺寸缩放和灰度转换等。 接下来,我们使用YOLO算法进行训练。该算法的核心是一种称为Darknet的深度神经网络架构。我们将训练数据输入到该网络中,并通过反向传播算法来更新网络的权重和偏置,最终得到训练好的模型。 在训练过程中,我们使用了一种称为交叉熵损失函数来评估模型的性能。该函数用于衡量模型在分类任务中的错误率,并通过梯度下降优化算法来最小化损失函数的值。 训练完成后,我们可以使用该模型进行人脸识别任务。首先,我们将输入图像分成多个网格,然后通过模型对每个网格进行预测,判断其中是否包含人脸。如果有人脸存在,则通过模型对该人脸进行特征提取和识别,最终输出人脸的位置和识别结果。 该模型具有以下特点:一是高精度和高效率。由于采用了YOLO算法,该模型可以实现实时的人脸识别。二是能够处理多人脸识别。在输入图像中存在多个人脸时,该模型可以同时对多个人脸进行识别,并输出多个人脸的位置和识别结果。 总结而言,基于YOLO的人脸识别模型是一种准确、高效且具备多人脸识别功能的深度学习算法。它可以应用于安防系统、人脸支付、人脸门禁等领域,提升人脸识别的速度和准确率。 ### 回答3: 基于yolo的人脸识别模型是一种能够自动检测和识别人脸的计算机视觉模型。该模型采用yolo (You Only Look Once) 目标检测算法,具有高速、高精度的特点。 该人脸识别模型的主要步骤如下: 1. 数据准备:首先需要准备一个大规模的标注有人脸的数据集。这些数据集包括带有人脸框的图像和对应的标签信息。 2. 模型训练:使用标注数据集对yolo网络进行训练。yolo网络是一个深度卷积神经网络,可以将输入图像快速地划分成多个网格,并预测每个网格是否包含人脸以及其坐标和大小。 3. 模型推断:训练完成后,可以使用该模型进行人脸识别的推断。将待检测的图像输入到模型中,模型将输出图像中检测到的人脸框的位置、大小和置信度。 4. 人脸识别:通过对检测到的人脸进行特征提取和比对,实现人脸的识别。该模型可以提取人脸的特征向量,并与预先保存的人脸特征进行比对,从而完成人脸的识别任务。 基于yolo的人脸识别模型具有以下优点: 1. 高速:由于yolo算法的特点,模型可以实时地对图像中的人脸进行检测和识别,提供高速的人脸识别服务。 2. 高精度:yolo算法采用了多尺度的特征提取和多层级的预测,能够在保持高速的同时,获得较高的人脸检测和识别精度。 3. 鲁棒性:该模型对于光照变化、姿态变化和部分遮挡等常见问题具有较好的鲁棒性,能够在复杂的场景下准确地检测和识别人脸。 总结而言,基于yolo的人脸识别模型是一种高速、高精度、鲁棒性较好的人脸识别解决方案,可以广泛应用于人脸识别门禁、人脸支付、人脸认证等领域。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

修炼之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值