tomas-gajarsky/facetorch
Python library for analysing faces using PyTorch
What it solves
Facetorch 提供一个统一且高性能的 Python 工具包,用于人脸检测与分析。它解决了必须手动整合多个不同开源人脸分析模型(如情绪识别、深度伪造检测、人脸验证)的问题,通过精选和优化,将它们整合为单一、可扩展的库。
How it works
该库使用中心的 FaceAnalyzer 类来协调一系列组件的流水线:
- Reader:将图像加载为张量。
- Detector:使用神经网络(如 RetinaFace)定位图像中的人脸。
- Unifier:归一化人脸尺寸并进行缩放,以确保处理的一致性。
- Predictors:一组专门的神经网络,分析特定特征(例如面部表情、动作单元、情感价值/唤醒度以及深度伪造检测)。
- 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 支持,以确保环境管理的一致性。