tomas-gajarsky/facetorch

Python library for analysing faces using PyTorch

What it solves

Facetorch는 얼굴 감지와 분석을 위한 통합된 고성능 파이썬 툴킷을 제공합니다. 감정 인식, 딥페이크 탐지, 얼굴 검증 등 다양한 작업을 위한 여러 개별 오픈소스 얼굴 분석 모델을 직접 통합해야 하는 문제를, 모델을 선별·최적화하여 하나의 확장 가능한 라이브러리로 묶음으로써 해결합니다.

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 지원을 통해 일관된 환경 관리를 제공합니다.