tomas-gajarsky/facetorch
Python library for analysing faces using PyTorch
解決的問題
Facetorch 提供一個統一且可擴展的面部檢測與分析工具包。它透過收集社群模型、打包為可攜式格式,並提供標準化的讀取、檢測與分析面部特徵的流程,解決了開源面部分析模型碎片化問題。
工作原理
該庫使用一個稱為 FaceAnalyzer 的中心協調器來管理一個順序流程:
- Reader:從各種來源載入影像(本機路徑、張量、NumPy 陣列、PIL 圖像或位元組)。
- Detector:使用神經網路(例如 RetinaFace)在影像中定位人臉。
- Unifier:將檢測到的人臉標準化並調整為一致格式。
- Predictors:一系列專用神經網路,用於分析特定面部屬性,如面部表情辨識(FER)、人臉驗證與嵌入生成。
- Utilizers:處理輸出的元件,例如繪製邊界框或儲存結果。
模型使用 torch.export(.pt2 格式)進行序列化,使得在推論時無需原始來源程式碼,並支援 torch.compile 以實現效能最佳化。
適用對象
專為需要靈活、高效能面部分析系統,且可透過 Python 或 Docker 輕鬆部署,並支援 CPU 與 GPU 環境的開發者與研究人員設計。
主要亮點
- 可攜式模型:使用
.pt2序列化,推論時無需模型來源程式碼。 - 靈活輸入:透過單一流程支援多種輸入類型,包括張量、NumPy 陣列與 PIL 圖像。
- 模型篩選與治理:透過嚴格的清單(manifest)對社群模型進行篩選,確保驗證、來源與權利批准。
- 可自訂設定:與 Hydra 和 OmegaConf 集成,便於設定覆蓋。
- 即時部署:提供官方 Docker 鏡像,並透過
uv與conda-lock支援快速套件管理。
相關
- 專案
- 專案
- 專案
- 專案
- 專案