相似度分数是两个人脸向量之间的余弦相似度——两串各 512 个数字——取值从 0 到 1。在我们的索引上,0.40 是一道分界线,高过它,一对人脸就被当作很可能是同一个人。它不是百分比,不是置信度,也不是概率。它是一个角度。

这个数字之所以要紧,是因为多数人脸搜索工具不会告诉你的一件事:**稠密向量检索从来不会返回空。**你向它要十个结果,它就给十个,不管你要找的那个人到底在不在索引里。分数是唯一能把「答案」和「当前能找到的最接近的陌生人」分开的东西。

这个分数实际上在量什么?

余弦相似度量的是两个向量之间的夹角,忽略它们的长度。两张脸被编码成 512 维的向量之后,当这两个向量指向几乎同一个方向,它们就是「相似」的。

编码器——在我们这里是 ArcFace——被训练成让同一身份的图片产生指向同一方向的向量,让不同身份的图片产生互相分开的向量。姿态、光线、背景和发型,在编码器看到这张脸之前,就已经在检测和对齐阶段被丢掉了大半。

所以这个分数的行为跟肉眼印象不一样。两张在你看来很像的照片,可能分数很低;两张看上去毫不相干的照片——光线不同、年代不同、发型不同——却可能分数很高。

每个分数区间该怎么读?

把分数当成一个区间,而不是一份判决。以下是我们在自己数据上实际使用的工作区间。

分数 读法 拿它怎么办
0.70 以上 非常可能是同一身份 当作匹配;但仍然去看一眼来源页
0.55 – 0.70 大概是同一身份 算匹配,但用第二张图核对一下
0.40 – 0.55 过了阈值,但很弱 说得通;角度不好和长得像,都会得出这个分
0.25 – 0.40 低于阈值 是相像,不是同一个人
0.25 以下 当前能找到的最近向量 除了「索引不得不返回点什么」之外,什么也没说

0.40 以下那几行是大家最容易读错的。0.31 的结果不是「31% 的可能性」。那是系统在告诉你,它手上没有你要的这个人,正在给你看它手上有的东西。

来源:我们的索引,2026-08 快照。这些区间是我们读自家结果时的经验法则,不是公开的基准。

为什么要有阈值这种东西?

因为阈值把一个连续的距离换成一个是/否的判断,而任何这样的转换,都是在拿一种错误去换另一种错误。

调低阈值,你能捞回更多在刁钻角度或糟糕压缩下拍到的真实匹配——同时也放进更多毫不相干的脸。调高阈值,留下来的匹配更干净,但侧脸拍到的、或者从低码率流里截出来的真实匹配,会整个掉出列表。

没有哪个设置能同时消掉这两种错误。0.40 落在这个位置,是因为我们典型的查询图是一帧视频画面:被压缩过、有运动模糊、很少是正脸、往往还很小。用干净的影棚肖像调出来的阈值会更高,而那会把大多数真实查询挡在门外。

为什么同一个人在不同照片里分数不一样?

因为编码器对姿态和光线的剥离并不彻底,而从摄像机到你那张截图之间的每一道劣化,都会让向量移动。

条件 对分数的影响
正脸、清晰、光线好 分数最高;编码器的最佳情况
头转过大约四分之三侧之后 明显下降;部分脸干脆就不在画面里
严重的视频压缩、低码率 下降;块状伪影会破坏细微的面部细节
脸在画面里很小 下降,而且可能在编码之前检测就失败了
遮挡——手、头发、挡在脸前的物体 关键点偏移,对齐变形,向量就错了
两张图相隔多年 中度下降;身份信号仍在,但变弱了
医美手术、体重大幅变化 真实匹配也可能掉到阈值以下
妆容、发型、发色 影响很小;对齐时大部分都被裁掉了

最后一行让人意外,倒数第二行让人失望。头发几乎不要钱;一张改过的脸要。

为什么该提防一个不显示分数的工具?

因为藏起分数,就是藏起「匹配」和「猜测」之间的差别,而那个差别就是结果的全部。

一份没有分数的排序列表,不管排第一的是 0.85 还是 0.19,看上去一模一样。两者都渲染成「这是跟你最接近的匹配」。但只有其中一个有意义。一个摆出十张脸却不给数字的工具,等于把信息量最大的那一个字段拿掉了——而且它是在系统无论真相如何都保证会吐出结果的那种场合下这么做的。

一份诚实的人脸搜索结果包含三样东西:分数、被拿来判定的阈值,以及一个指向原图的链接,好让你用自己的眼睛核对。这三样少了任何一样,你就没法审查这个答案。

数据与方法

**来源。**人脸向量由 starlikeness 在 106 个站点上索引到的封面图与剧照计算得出。

**样本。**索引中有 241,792 个人脸向量;有名字的身份记录 2,333 条(我们的索引,2026-08 快照)。

**方法。**用 YuNet 做检测,得到一个边界框和五个关键点。依据这些关键点对齐到标准姿态。用 ArcFace 编码成 512 维向量。以余弦相似度在整个索引上检索。0.40 这道阈值,是针对本索引上的视频帧查询校准的。

**快照日期。**2026-08。

已知偏差。覆盖高度集中。有名字的身份中,2,333 条里有 2,246 条的代表图来自同一个站点,而 106 个已索引站点里,真正带日式内容 ID 的只是很小一部分。因此我们量到的是在聚合站上的曝光度,不是发行量。一位作品只出现在我们没有索引的站点上的女优,是找不到的,而且没有任何分数会告诉你这件事——搜索照样会返回它最近的十个陌生人。

**阈值的边界。**0.40 只适用于这个编码器和这个索引。它无法迁移到另一个工具、另一个模型,或另一类查询图。任何声称某个分数「意味着」一个固定的身份概率的说法都言过其实:同一个数字,会因为查询图的质量而承载不同的分量。

引用。

starlikeness(2026)。《相似度 0.40 是什么意思?》。
人脸索引,2026-08 快照(n=241,792 张脸;2,333 条有名字的身份记录)。
https://starlikeness.com/zh-CN/articles/what-similarity-score-means

相关问题


你可以亲眼看着这道阈值干活:上传一帧画面,把分数和人脸对照着读。检测在你的浏览器里完成,只有裁切出来的人脸区域会被送去比对,原图永远不会离开你的设备。