首页 文章

如何在LFW上评估FaceNet嵌入以进行面部验证?

提问于
浏览
0

我正在尝试创建一个能够在lfw数据集上评估模型的脚本 . 作为一个过程,我正在阅读一对图像(使用LFW注释列表),跟踪并裁剪面部,对齐并通过预先训练的facenet模型(.pb使用tensorflow)并提取特征 . 特征向量大小=(1,128),输入图像为(160,160) .

为了评估验证任务,我使用的是Siamese架构 . 也就是说,我从两个相同的模型([2 x facenet]传递一对图像(相同或不同的人),这相当于从一个网络传递一批大小为2的图像)并计算欧几里德距离嵌入 . 最后,我正在训练线性SVM分类器,当嵌入距离很小时提取0,否则使用对标签提取1 . 这样我试图学习测试时使用的阈值 .

使用这种架构,我获得了最高60%的分数 . 另一方面,在其他模型(例如vgg-face)上使用相同的架构,其中特征是4096 [fc7:0](非嵌入),我得到90% . 我绝对无法复制我在网上看到的分数(99.x%),但使用嵌入分数得分非常低 . 一般来说管道有问题吗?如何评估嵌入以进行验证?

1 回答

  • 0

    没关系,方法是正确的,在线提供的facenet模型训练不足,这就是得分差的原因 . 由于该模型是在另一个数据集上训练而不是文章中描述的原始模型(显然),因此验证得分将低于预期 . 但是,如果将恒定阈值设置为所需值,则可以通过牺牲f1分数来增加真正的正数 .

相关问题