本地人脸检索 vs 云端人脸 API:什么时候离线更值得
云端 API 赢在规模,输在隐私;本地桌面索引正好相反。这篇把成本、准确率、速度,以及你的照片到底会去哪儿,摊开来对比一次。
发布于 2026-09-28 约 5 分钟
- 隐私
- 对比
- 离线
想在照片里找某个人,你有两条路:把素材库交给某个服务帮你索引,或者把索引留在自己机器上。两条路都走得通,但它们失败的方式完全不同。该选哪条,几乎完全取决于你的素材库里有什么、以及你愿意搬走多少。
这篇对比出自做本地方案的人之手,请带着这个前提读 —— 但下面这些失效方式是真实的,而且是很多人上传完之后才发现的。
根本区别
| 云端人脸 API | 本地桌面索引 | |
|---|---|---|
| 照片去哪儿 | 上传到服务商 | 从不离开本机 |
| 索引存在哪 | 服务商的服务器 | 你的磁盘(~/.snapbyface/) |
| 计费方式 | 按调用量或按月 | 一次性授权 |
| 接入方式 | API key、SDK、写代码 | 装上,指向目录 |
| 规模上限 | 百万级图片 | 取决于你的磁盘和耐心 |
| 离线可用 | 否 | 是 |
| 典型用户 | 做产品的开发者 | 有个大素材库的普通人 |
云端真正赢的地方
这点得诚实:有些活儿,云端 API 就是更好的工程选择。
- 超出单机规模的量。如果你要为产品索引百万级图片,本地桌面工具从形态上就不对。
- 基础设施托管。不用分发模型文件,不用处理硬件差异。
- 更广的人脸分析能力。服务商提供年龄估计、情绪识别、关键点数据 —— 这些是专注检索的工具刻意不做的功能。
如果你在做服务,用 API。这篇不是在跟这件事争论。
本地赢的地方
你的照片不会变成别人的资产
这就是全部论点,而且不是假设。上传个人素材库,意味着服务商会处理并存储从你家人、同事、以及任何入镜的人身上提取的人脸数据。这些数据受它的保留策略、它的泄露风险、它的条款约束 —— 不是你的。
本地索引把它反过来:每一步都在你自己的电脑上跑。SnapByFace 把它对你素材的全部了解——连同日志——放在 ~/.snapbyface/,不上传任何图片或视频,也没有账号,所以没有任何东西被同步到别处。
没有上传这个瓶颈
几百 GB 素材不会上传得很快。本地索立即开始干活,不依赖你的上行带宽 —— 而那通常是整个环节里最慢的数字。
成本可预测
云端价格随量增长。一次性授权不会。如果你要在这批素材库上反复检索好几年,这笔账就不接近了。
飞机上、棚里、隔离网里都能跑
对某些人来说,离线和网络隔离不是边缘场景,就是工作环境本身。
走本地的代价(也说清楚)
本地不是免费的:
- 用你自己的硬件。索引吃你的 CPU。大素材库上它是个需要安排时间的后台任务,不是几秒钟就完事的东西。
- 模型要随包分发。SnapByFace 安装包约 300 MB,因为人脸模型是打包进去的 —— 运行时不用下载,但安装文件更大。
- 备份是你的责任。索引在你的磁盘上,盘坏了就得重建。
- 没有弹性扩容。桌面索引很适合个人档案,很不适合数据中心。
一个通常不成立的折中
「只上传裁出来的人脸」听起来是折中,但你已经把最关键的东西 —— 生物特征数据 —— 交出去了,而且现在还要依赖服务商把它和别的东西隔开。它就该被当成上传,因为它本来就是。
怎么选
问三个问题:
- 这批素材放在别人服务器上,我能接受吗? 答案只要不是「能」,就选本地。
- 我在做产品,还是在解决自己的问题? 做产品 → API。自己的问题 → 本地工具。
- 这批库我会反复检索吗? 会 → 一次性成本更划算。
SnapByFace 做什么、不做什么
把本地方案说精确一点:
- 做:索引你目录里的照片与视频,与你提供的参照照比对,全程在本机运行,结果可导出 CSV。
- 不做:上传任何内容、要求注册账号、重命名或修改你的文件、识别你没添加过的人。
唯一外发的是可选的设备统计 ping —— 机器码、软件版本、操作系统、语言、激活状态与套餐。不含照片、人脸数据、文件路径与检索行为。默认开启,可在设置里关闭。