yakhyo/uniface

UniFace: A Unified Face Analysis Library for Python | Detection, alignment, landmarks, face-mesh, recognition, parsing, gaze, attributes and anti-spoofing under one API.

UniFace – 一个用于人脸相关 AI 任务的统一 Python 库

是什么 – UniFace 整合了一系列最先进的深度学习模型,涵盖了您可能想对人脸进行的所有操作:检测、关键点定位、3D 网格、解析/分割、人像遮罩、注视与头部姿态估计、人口统计属性(年龄、性别、种族)、情绪、活体防伪检测、质量评分、识别(嵌入向量)、匿名化,甚至还有一个基于 FAISS 的向量存储库用于快速相似度搜索。所有模型都封装在了一个单一且一致的 Python API 后方。

为什么重要 – 您不再需要拼凑数十个独立的仓库,只需安装一个套件(pip install "uniface[cpu]""uniface[gpu]")即可获得一个生产级轻量化解决方案,适用于 CPU、Apple Silicon 和 NVIDIA CUDA。权重会在首次使用时自动下载并经过 SHA-256 验证,因此您无需自行管理模型文件。

核心组件

任务 提供之模型
人脸检测 RetinaFace, SCRFD, CenterFace, YOLOv5‑Face, YOLOv8‑Face, BlazeFace
识别 AdaFace, ArcFace, EdgeFace, MobileFace, SphereFace
追踪 BYTETracker (持续性 ID)
关键点 2d106det (106 点), PIPNet (98/68), Face‑Mesh (468/478 3D)
解析 / 分割 BiSeNet (19 类), XSeg
人像遮罩 MODNet (无需 trimap)
注视 MobileGaze (ResNet‑18/34/50, MobileNetV2)
头部姿态 6D 旋转 → pitch/yaw/roll
人口统计 AgeGender, FairFace (年龄组, 性别, 种族)
情绪 AffectNet‑7 / AffectNet‑8
人脸状态 FaceAttribNet (眼睛, 眼镜, 口罩, 等等)
质量 eDifFIQA (tiny/small/medium/large)
防伪 MiniFASNet
匿名化 5 种基于模糊的方法
向量存储库 基于 FAISS 的嵌入向量搜索

典型用法 – 高阶 FaceAnalyzer 会执行检测、对齐以及(可选地)您传入的任何属性预测器:

import cv2
from uniface import FaceAnalyzer, FairFace

analyzer = FaceAnalyzer(predictors=[FairFace()])
for face in analyzer.analyze(cv2.imread('photo.jpg')):
    print(face.bbox, face.sex, face.age_group, face.embedding.shape)

bbox, confidence, landmarksembedding 总是会填充;其他字段在您添加相应的预测器之前会保持为 None

安装

# CPU 或 Apple Silicon
pip install "uniface[cpu]"
# NVIDIA GPU 带有 CUDA
pip install "uniface[gpu]"
# 获取最新的预发布版本
pip install --pre "uniface[cpu]"

该套件在 PyPI 上遵循语义化版本控制,并为 CPU 与 GPU 依赖项提供单独的 extras 选项。

文档与社区 – 完整的文档、快速入门指南、模型库、以及 Jupyter Notebooks 托管于 https://yakhyo.github.io/uniface/。提供 Discord 服务器与 GitHub issue tracker 用于支持与贡献。

授权 – 代码采用 MIT 许可。部分预训练权重有其自己的许可,因此在商业部署前请务必检查 Model licences 页面。


UniFace 与 Rocket Software 的商业产品 Uniface 并无关联。

相关

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