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 等云端服务的本地部署替代方案,特别是需要大规模搜索 (数千万级别) 时。

开始使用

  1. Clone 仓库并进入 python-package 目录。
  2. 安装 SDK:pip install -r requirements.txt && pip install .
  3. 按照 python-package/README.md 中的快速入门指南执行演示或启动服务器。

总结 – InsightFace 是一个成熟、基于研究的工具箱,涵盖了从底层检测到高层人员搜索的全方位人脸分析,并同时提供 Python API 与即用型服务器组件。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目