阈值调优
在 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 相似度不是概率,也不是人意义上的「把握百分比」。同一个人的两张相隔多年的照片,得分完全可能合法地低于两个人在相似光线和姿态下拍的照片。 :::
一套实用的调法
- 第一次跑保持默认 0.45,先看前排匹配。
- 如果前排都是对的、但怀疑有漏网,降到 0.40 再看一遍。
- 如果明显不对的人脸还排在分界线之上,以 0.05 为步长往上加,直到噪声消失。
- 定下来之前,务必在预览里抽查几条临界命中。
- 已知该出现的都出现了、明显不对的都不出现了,就别再调了。
改阈值会做什么、不会做什么
改阈值只重新匹配已有的特征。照片与视频不会被重新读取,不会重新解码任何一帧,也不会重新检出人脸 —— 所以即使素材库很大,改动也很快。
:::caution 改视频抽帧间隔正好相反:它改变了「到底存在哪些帧」,所以相关视频必须重新分析。参见 检索视频。 :::
调阈值不够用时
阈值修不好一张糟糕的参照照片。如果某个人始终得分偏低:
- 换成正面、光线均匀、没有被遮挡的照片。
- 确保参照照片里只有一张人脸。
- 避免重度滤镜、墨镜和极端角度。
- 视频的话,检查抽帧间隔是否正好落在人脸可见的那些帧上。
几个自检
- 降低阈值后毫无变化? 人脸多半根本没被检出 —— 去查画面质量或抽帧间隔,而不是阈值。
- 人人都和人人匹配? 你大概在 0.30 附近,往 0.50 方向调回来。
- 结果被某一个人霸屏? 他的特征可能太泛(参照照片质量差或压缩过头),换一张。