deepinsight/insightface
State-of-the-art 2D and 3D Face Analysis Project
InsightFace – 开源 2D/3D 人脸分析工具箱
简介 – 一个用于人脸相关计算机视觉任务的综合库。它整合了最先进的模型,适用于:
- 人脸检测 (RetinaFace, SCRFD, BlazeFace)
- 人脸识别 / 验证 (ArcFace, Sub‑Center ArcFace, PartialFC, VPL 等)
- 人脸特征点 / 对齐 (SDUNets, SimpleRegression)
- 3D 人脸重建、视线估计、防伪、换脸 等。
所有组件均以 PyTorch (及部分 MXNet) 实现,可用于训练与推理。
近期主要功能 (InsightFace 2.x)
| 功能 | 用途 | 使用方式 |
|---|---|---|
| PrivateFrame | 实时视频遮蔽 (模糊/马赛克),可选 RGB 活体检测。支持桌面 GUI、CLI 或 Python API。 | insightface.app.privateframe 套件;默认 Fast 模式目标为 ~15 FPS。 |
| PersonAnalysis | 检测整个人员、执行人脸识别与身体 Re‑ID,并与参考数据库进行匹配。 | Python API (get(), match(), 可选 update()) 或用于网络摄像头/RTSP 流的桌面 GUI。 |
| InsightFace Server | 自托管 Web UI + REST API,用于检测、可选活体检测、人脸比对、注册及大规模搜索 (在单张 RTX 5090 上使用 INT8 量化可达 5000 万以上向量)。 | 部署 Docker 容器;通过 HTTP 或提供的 Python 客户端进行互动。 |
| 模型处理 | 自动下载模型套件 (raccoon_s/l, cheetah_s/l, buffalo_l 等),自动选择 CoreML / CUDA / CPU 提供者,以及可重复使用的 CoreML 编译缓存。 |
导入 insightface Python SDK;库会自动为您的硬件选择最佳后端。 |
典型工作流程 (Python SDK)
import insightface
app = insightface.app.FaceAnalysis()
app.prepare(ctx_id=0) # 0 = GPU, -1 = CPU
faces = app.get(img) # 检测 + 对齐 + 嵌入
for f in faces:
print(f.normed_embedding) # 512 维人脸向量
相同的 SDK 也提供了用于视频遮蔽的 app.PrivateFrame 和用于人员级别匹配的 app.PersonAnalysis。
生态系统
- Server – 轻量级 Docker 镜像,内置 ONNX Runtime 推理与 SQLite 存储。
- Desktop GUI – 用于实时视频、网络摄像头或 RTSP 流的跨平台演示。
- Model Zoo – 项目 Wiki 上列出的数十种预训练权重 (ArcFace, RetinaFace, SCRFD 等)。
- 研究代码 – 用于视线估计、3D 人脸反射重建、防伪挑战等的模块。
授权与使用
- 代码:MIT – 学术与商业用途免费。
- 预训练模型与标注数据:仅限非商业研究使用,除非您取得单独的商业授权 (请联系
insightface.ai)。 - 特定专有模型 (例如
inswapper,InspireFace SDK) 需要付费授权。
适用对象
- 开发者:构建安全、身份验证或视频分析产品,需要现成的人脸检测/识别流程。
- 研究人员:需要人脸相关 CV 任务 (检测、对齐、3D 重建、防伪) 的稳固基准。
- 企业:寻求 AWS Rekognition 等云端服务的本地部署替代方案,特别是需要大规模搜索 (数千万级别) 时。
开始使用
- Clone 仓库并进入
python-package目录。 - 安装 SDK:
pip install -r requirements.txt && pip install . - 按照
python-package/README.md中的快速入门指南执行演示或启动服务器。
总结 – InsightFace 是一个成熟、基于研究的工具箱,涵盖了从底层检测到高层人员搜索的全方位人脸分析,并同时提供 Python API 与即用型服务器组件。
相关
- 项目
- 项目
- 项目
- 项目
- 项目