tomas-gajarsky/facetorch

Python library for analysing faces using PyTorch

What it solves

Facetorch 提供一套統一且高效能的 Python 工具組,用於臉部偵測與分析。它解決了必須手動整合多個不同開源臉部分析模型(如情緒辨識、深偽偵測、臉部驗證)之問題,透過精選與最佳化,將它們整合成單一且可擴充的函式庫。

How it works

此函式庫使用中心的 FaceAnalyzer 類別來協調一系列元件的流程:

  1. Reader:將影像載入為張量。
  2. Detector:使用神經網路(如 RetinaFace)定位影像中的臉部。
  3. Unifier:正規化臉部大小並縮放,以確保處理的一致性。
  4. Predictors:一組專門的神經網路,分析特定特徵(例如臉部表情、動作單位、情緒價值/喚起度,以及深偽偵測)。
  5. Utilizers:處理輸出的工具,如繪製邊框或儲存結果。

為了確保高效能,函式庫使用 TorchScript 來最佳化模型,讓 CPU 與 GPU 上的執行更快速。它也整合 Hydra 進行設定管理,並透過 Hugging Face Hub 自動下載模型。

Who it’s for

Facetorch 針對需要彈性且可擴展的臉部分析解決方案的開發者與研究人員設計,讓他們能在不必從頭建置基礎設施的情況下,利用社群驅動的開源模型。

Highlights

  • Comprehensive Analysis:支援廣泛任務,包括臉部表情辨識(FER)、深偽偵測、臉部驗證與 3D 臉部對齊。
  • Performance Optimized:使用 TorchScript 加速 CPU 與 GPU 推論。
  • Extensible Architecture:允許使用者透過上傳 TorchScript 檔案至 Hugging Face Hub 並新增 YAML 設定,來加入新模型。
  • Reproducible Setup:提供 Docker 與 conda‑lock 支援,以確保環境管理的一致性。