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 依賴項提供不同的額外選項。

文檔與社群 – 完整的文檔、快速入門指南、模型庫、以及 Jupyter Notebooks 託管於 https://yakhyo.github.io/uniface/。提供 Discord 伺服器與 GitHub issue tracker 用於支援與貢獻。

授權 – 程式碼採用 MIT 授權。部分預訓練權重有其自身的授權,因此在商業部署前請務必檢查 Model licences 頁面。


UniFace 與 Rocket Software 的商業產品 Uniface 並無關聯。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案