开放式人脸识别——给画廊中不存在的查询人脸打几分?

Open set face recognition - what score to give to query faces not present in gallery?

场景:

closed-set人脸识别中,如果我们在一个Gallery集合中有10个人,那么query的图片就会来自这10个人。因此,每个查询将分配给 10 个人中的一个。

open-set人脸识别中,查询人脸可能来自图库中10个人以外的人。这些额外的人被称为“干扰者”。可以在 IJB-A 挑战中找到示例任务。

问题:

假设我为 10 个身份中的每一个都训练了一个 SVM(一个对所有)。我如何报告 open-set 场景中的准确性?如果查询图像 X 出现,我的模型将始终将其识别为我图库中 10 个人中的一个,尽管如果该人不在图库中的 10 个人中,则得分较低。因此,当以 % 报告准确度时,每个 distractor 查询图像都会给我一个 0 准确度,从而降低用正确标识标记每个查询图像的整体准确度。

这是报告开放集协议识别准确度的正确方法吗?或者是否有一种标准方法来设置分类分数的阈值,并说 "a Query image X has low score for every identity in Gallery, thus we know it is a distractor image and we will not consider this when computing our recognition accuracy"

最后,警告:这是非常特定于生物识别和人脸识别的。然而,SO 提供了最连贯的答案,并且很可能在 SO 找到活跃于视觉和图像处理标签的生物识别人员,这就是我在这里问这个问题的原因。

我来自开放式世界(车牌识别),因此对我来说很自然地定义诸如较低置信度阈值的积极识别。

我建议查看识别直方图 qualities/scores/confidences(无论它们在您的域中如何称呼),以了解您组中的人和干扰因素(即 SVM_A 的一个直方图和多张图片人 A 的一张直方图 SVM_A 和你组中其他人的几张图像,一张 SVM_A 的直方图和干扰物的几张图像)。

预期的结果(如果你的支持向量机表现良好)是你对第 i 个人的SVM_i基本上只有非常高的分数,而对其他两个人的SVM_i只有非常低的分数从你的设置和干扰。特别是,'other persons from set' 和 'distractors' 的结果应该基本相同(在统计意义上——它们都应该被识别为“不是人 i = 非常低的分数”)。

我希望(希望)一个自然的截止位置会出现在最高误报(非 A 上的SVM_A)和最低真阳性(A 上的SVM_A)分数之间。

您还可以将干扰项作为封闭集人员之外的附加类别引入,并查看识别矩阵(第一行:A 被识别为 A,B,...,作为 N,作为干扰项,第二行与B, ...最后一行:干扰项被识别为 A,B,...作为 N,作为干扰项)并根据该矩阵计算正确的分类百分比。

编辑:我现在知道你很关心你的平均识别信心(对吧?)。由于您无法对非固定人员进行显式培训,我认为忽略这些情况是公平的,其中干扰因素被正确识别为干扰因素(所有 SVM 的最高置信度是亚阈值)。

自我回答,阅读一些 NIST protocols 作为参考 [第 4 节]:

在开集场景中,要报告两个性能指标:CMCDET

累积匹配特征或 CMC 曲线仅使用 匹配的 图像计算——即使用探针或测试集中来自出现在受试者列表中的图像画廊集。 CMC 报告了不同等级 1、2、.... #类 的召回值。

决策错误权衡或 DET 曲线用于量化系统在拒绝 "impostors" 或 "distractors" 方面的表现。每个 Gallery identity 有一个 SVM。因此,对于每个查询图像,都会有#identity 分数(对于 Gallery 中的 50 个身份,我们将有 50 个支持向量机给出 50 个分数)。从 SVM 分数中取最大值将显示输入图像与作为图库身份集的一部分的接近程度。然后使用这些分数绘制 DET 曲线,这与用于验证的 ROC 曲线非常相似。轴是假阳性识别率 (FPIR) 与假阴性识别率 (FNIR)。