跳到正文

阈值调优

在 0.30 到 0.80 之间设置 SnapByFace 的相似度阈值:0.45 意味着什么、什么时候该调高或调低,以及为什么改阈值永远不会重新分析你的素材。

SnapByFace 报出的每条匹配,都是两个 512 维人脸特征之间的余弦相似度:你参照照片的特征,与素材里检出人脸的特征。阈值决定的是那条分界线放在哪里。

默认值与范围

设置取值
默认阈值0.45
可调范围0.30 – 0.80
适用范围图片与抽帧画面一致
存放位置~/.snapbyface/config.json

该往哪边调

  • 调高(0.55–0.65) 适用于误判多的时候 —— 不同人被当成了同一个人。匹配更少但更可靠。
  • 调低(0.35–0.40) 适用于本来该出现的人因为分数不够被切掉时。匹配更多,噪声也更多。
  • 0.80 接近「几乎就是同一张脸」:命中极少,基本只剩下近乎重复的照片。
  • 0.30 非常宽松:会出现一长串低置信度命中,需要人工逐条核对。

:::note 相似度不是概率,也不是人意义上的「把握百分比」。同一个人的两张相隔多年的照片,得分完全可能合法地低于两个人在相似光线和姿态下拍的照片。 :::

一套实用的调法

  1. 第一次跑保持默认 0.45,先看前排匹配。
  2. 如果前排都是对的、但怀疑有漏网,降到 0.40 再看一遍。
  3. 如果明显不对的人脸还排在分界线之上,以 0.05 为步长往上加,直到噪声消失。
  4. 定下来之前,务必在预览里抽查几条临界命中。
  5. 已知该出现的都出现了、明显不对的都不出现了,就别再调了。

改阈值会做什么、不会做什么

改阈值只重新匹配已有的特征。照片与视频不会被重新读取,不会重新解码任何一帧,也不会重新检出人脸 —— 所以即使素材库很大,改动也很快。

:::caution 改视频抽帧间隔正好相反:它改变了「到底存在哪些帧」,所以相关视频必须重新分析。参见 检索视频。 :::

调阈值不够用时

阈值修不好一张糟糕的参照照片。如果某个人始终得分偏低:

  • 换成正面、光线均匀、没有被遮挡的照片。
  • 确保参照照片里只有一张人脸。
  • 避免重度滤镜、墨镜和极端角度。
  • 视频的话,检查抽帧间隔是否正好落在人脸可见的那些帧上。

几个自检

  • 降低阈值后毫无变化? 人脸多半根本没被检出 —— 去查画面质量或抽帧间隔,而不是阈值。
  • 人人都和人人匹配? 你大概在 0.30 附近,往 0.50 方向调回来。
  • 结果被某一个人霸屏? 他的特征可能太泛(参照照片质量差或压缩过头),换一张。

下一步