AX 爱鲜报

综合 / 后端 · 2026-11-02 09:07 · 2 阅读 · 0 赞

号称全球第一个“完全免费开源”的人脸识别库,我扒完源码发现八个坑

Faceplugin 开源人脸识别 SDK 号称完全免费、本地 CPU 运行,GitHub 三千多星。本文拆解其五步流水线,实测用法,并指出无 LICENSE、核心闭源、无活体检测等八个坑,给出适用场景与合规建议。

这事儿到底是个啥

最近技术圈被一条消息刷屏:一家叫 Faceplugin 的公司开源了一套人脸识别 SDK,号称“全球第一个完全免费、开源的人脸识别库”,Windows 和 Linux 都能跑,CPU 就够,数据不出设备,GitHub 上已经攒了三千多颗星。

评论区一片“薅到了”。本着“天上掉的馅饼,先看馅儿是不是馊的”原则,我把它的源码、官方文档、模型文件挨个翻了一遍——不是抬杠,是这套东西对开发者确实有价值,但坑里还埋着坑。今天从原理、用法到坑位,一次讲透。

一句话介绍:一套纯本地运行的人脸识别 Python 工具包,输入图片,输出人脸框、68 个关键点、特征向量,以及“这两张脸是不是同一个人”的相似度分数。全程不联网、不上云、不吃 GPU。

翻译一下商业逻辑:商业版靠活体检测、证件识别、eKYC 赚钱,开源版是“试用装”加“引流入口”。不是慈善,是漏斗——但只要试用装本身能打,对开发者就是白捡的便宜。

原理:它的五步流水线

看着挺唬人,其实链路很短:检测 → 找关键点 → 摆正脸 → 提特征 → 算余弦。行业里各家都是这个套路,它的特殊之处只有两个:全流程塞在 CPU 里跑,以及整个包不要钱。照着源码,把五步拆开给大家看:

  1. 人脸检测:用的社区知名超轻量 SSD(slim-320),权重只有 1MB,CPU 上就能实时跑。
  2. 关键点定位:MobileFaceNet 结构,吃 64×64 灰度图,吐 68 个关键点坐标。
  3. 人脸对齐:把脸摆正、裁成 128×128 标准脸——注意,这一步实际调用的是闭源 C 库,第六章细说。
  4. 特征提取:IRN50(ResNet50 变体)把标准脸压成 256 维特征向量——这个向量就是“人脸的身份证号”,后续比对全靠它。
  5. 相似度打分:两个向量算余弦相似度,再线性映射成 0~100 分。

默认阈值 75 分,换算回余弦相似度只有 0.5——松得离谱。源码里的公式是 score =(点积+1)×50。75 分在人脸识别里属于“这俩人八成有点像”的水平,1 比 N(一对多)场景下误识率会很难看,必须用自己的数据重新标定。

— 检测+关键点的实际效果(官方仓库截图,来自其商业版 App 演示;红点即 68 关键点,SPOOF 为活体分数)

对开发者的意义

意义有三层,一层比一层实际:

  1. 合规这把伞,现在真的能打了:2025 年 6 月 1 日施行的《人脸识别技术应用安全管理办法》要求人脸信息存储于设备内、不得联网传输。本地化部署第一次有了零成本起步的选项。
  2. 部署成本摁到地板:不用买显卡、不按次付费、不把用户人脸传给任何云。一台普通办公电脑就能跑,对内网环境、离线设备、隐私敏感场景是实打实的省钱。
  3. 试错成本约等于零:以前评估一个人脸方案,光商务流程就能耗掉两周;现在 clone 下来十分钟出结果,行不行当场见分晓。

记住这句:对这个库来说,“数据不出设备”不是卖点,是命根子。它恰好踩在新规的红利上,这比“免费”两个字值钱。

什么场景能用,什么场景快跑

直接上红绿灯,省得大家看小字:

  • 🟢 绿灯,放心玩:本地照片库去重、按人聚类、内部工具人脸检索、离线环境 POC、教学和毕设、硬件选型原型——这些场景错了顶多重算,无所谓。
  • 🟡 黄灯,加料才敢用:考勤、门禁。技术上能跑,但它没有活体检测,一张 A4 纸就能骗过去,必须外挂活体方案或多因子验证才能上岗。
  • 🔴 红灯,千万别:支付验证、金融级 KYC、十万级以上人脸库检索、安防布控、要过监管测评的场景——官方连一个公开精度数据都没给,你拿什么跟审计解释?

怎么获取、怎么跑起来

三步走,比泡面还快。项目地址:github.com/Faceplugin-ltd/Open-Source-Face-Recognition-SDK

# 拉代码,模型权重直接放在仓库里,共 60 多 MB
git clone https://github.com/Faceplugin-ltd/Open-Source-Face-Recognition-SDK.git
cd Open-Source-Face-Recognition-SDK

# 建环境:要求 Python 3.9 以上,依赖 torch 2.4.1 全家桶
conda create -n facesdk python=3.9
conda activate facesdk
pip install -r requirements.txt

# 跑官方自检,会比对 test 目录里的两张示例脸
python run.py

⚠️ 注意:官方 README 里 from face_recognition_sdk import … 这个示例是跑不通的——我把仓库翻遍了,这个模块根本不存在。真实入口是 run.py,修正版姿势如下:

import cv2
from run import GetImageInfo, get_similarity

img1 = cv2.imread("test/1.jpg")
img2 = cv2.imread("test/2.png")

# 返回:人脸数、框、置信度、关键点、对齐图、特征
_, _, _, _, _, feat1 = GetImageInfo(img1, 5)
_, _, _, _, _, feat2 = GetImageInfo(img2, 5)

score = get_similarity(feat1[0], feat2[0])
print(score)
print("同一人" if score >= 75 else "不是同一人")

— 仓库 test 目录自带的两张测试图(原图直出):同一个人的两张照片,run.py 跑的就是它们的比对。素材来自项目仓库,版权归原作者

两个必须记住的前提:一,脚本必须放在仓库根目录下运行,源码里写死了 ./face_detect/models/… 这样的相对路径,换个目录直接报错;二,特征向量提取完记得存下来,后续比对只用向量,不用反复跑模型。

踩过/看见的八个坑

重头戏来了。以下八条,条条有出处:

  1. 没有活体检测:拿张打印照片对着摄像头就能过。任何门禁考勤场景单独上它,等于给老板表演“如何被一张 A4 纸攻破”。
  2. 仓库里没有 LICENSE 文件:GitHub API 显示 license 字段为空,LICENSE、LICENSE.md、LICENSE.txt 全部 404。没有许可证,法律上默认“保留所有权利”。要商用,先找官方要书面授权,邮件截图存档。
  3. 核心部件是闭源二进制:对齐和姿态估计实际调用 82KB 的 libFaceUtil.so 和 69KB 的 FaceUtil.dll,ctypes 加载,没法审计。隐私洁癖项目心里要有数。
  4. 模型权重来路没交代:检测模型是社区开源的 1MB SSD,特征模型是 IR-SE50 这类结构的 PyTorch 转写,但训练数据和权重许可证一个字没提。对比之下 InsightFace 是“明码标价”——代码 MIT、模型非商用需授权,写得清清楚楚。许可链清晰比“免费”二字重要。
  5. 默认阈值 75 分太松:余弦 0.5。门禁类调高(拒真好过放错人),考勤类可适当调低,但必须用自己的真实数据标定,没有标定就上线,出事别怪模型。
  6. 精度天花板不高:对齐脸只有 128×128、特征只有 256 维,业内主流是 112×112 输入、512 维特征;官方也没公布过任何 benchmark 成绩。跨年龄、跨光照、大角度场景衰减会明显。
  7. 平台只支持 x86 的 Windows 和 Linux:macOS 直接退出,树莓派等 ARM 设备也别想——那个 .so 是给 x86 编译的。想先在 Mac 上试试?请自备虚拟机。
  8. 零 release、零公开 issue:三千多颗星,一个正式版本号没打过,issue 区干干净净。没有 changelog,坏了只能自己对 diff,社区反馈渠道约等于无。

— 没有活体检测的刷脸系统,长这样(AI 生成示意图)

和老牌选手掰掰手腕

把主流方案拉了个擂台,数据均来自各家公开文档:

方案 精度(公开数据) 活体 许可证 适合谁
Faceplugin 开源版 未公布任何成绩 ❌ 无 LICENSE,口头免费 快速本地试水
InsightFace 一线(LFW 99.5% 以上) 部分有 代码 MIT,模型非商用需授权 生产首选
CompreFace FaceNet 99.63%、ArcFace-r100 99.80%(LFW) ❌ Apache 2.0 想要服务化 API 的团队
DeepFace 聚合多模型,看所用模型 内置反欺诈 MIT(所含模型各有许可) 实验、选型、原型
face_recognition LFW 约 99.38%(2017 年水平) ❌ Boost/MIT 教学、小 demo
虹软/百度离线 SDK 商用级 ✅ 免费+授权文件,条款多 正式商用项目
云 API 商用级+活体+证照 ✅ 商业按量计费 不想自己运维的

锐评:它不是来干掉 InsightFace 的,是来干掉“评估周期”的。同价位(免费)里没有比它更省心的本地试水方案,这就是它的生态位。

给国内开发者划合规重点

聊人脸绕不开《人脸识别技术应用安全管理办法》(2025 年 6 月 1 日施行),六条硬规定放这儿,省得大家事后补课:

  1. 单独同意:收集人脸要拿到个人单独同意,不能混在隐私政策里打包勾选。
  2. 不得强制刷脸:有其他验证方式的,不得把刷脸设为唯一验证方式,用户有权说“我就不刷脸”。
  3. 人脸不出设备:人脸信息应存储于人脸识别设备内,不得通过互联网对外传输——这条正是本地化部署的最大红利。
  4. 事前评估:上线前要做个人信息保护影响评估,报告至少存三年。
  5. 十万人备案:存储人脸达到 10 万人,三十个工作日内去省级以上网信部门备案。
  6. 私密空间禁区:宾馆客房、公共浴室、更衣室等私密空间,禁止安装人脸识别设备,没有例外。

总结,三句话带走

第一句:拿它试水,别拿它押注。十分钟跑通本地人脸识别,这个价值是真实的;要进生产,先拿书面授权、自己标定阈值、补上活体方案,或者直接上 InsightFace/商业 SDK。

第二句:“免费开源”四个字要拆开看。代码确实全摆在仓库里,但许可证缺失、核心库闭源、权重来路不明——“免费”是现在的状态,不是未来的保证。

第三句:它最大的价值不是便宜,是“数据不出门”。新规时代,能理直气壮地说“人脸信息没出过我的设备”,比省下多少授权费都值钱。

📦 相关链接:GitHub github.com/Faceplugin-ltd/Open-Source-Face-Recognition-SDK;官方文档 doc.faceplugin.com

标签 Python AI 开源项目 本地部署 人脸识别

评论

登录后才可评论

0 条评论

  • 暂无评论,来写第一条吧。