tomas-gajarsky/facetorch

Python library for analysing faces using PyTorch

何を解決するか

Facetorchは、顔検出と分析のための統合的でスケーラブルなツールキットを提供します。オープンソースの顔分析モデルが分散している問題を解決するために、コミュニティが開発したモデルを収集し、ポータブルな形式にパッケージ化し、顔の読み込み、検出、分析を行う標準化されたパイプラインを提供します。

動作方法

このライブラリは、順次パイプラインを管理する中心的なオーケストレーターである FaceAnalyzer を使用します。

  1. Reader: ローカルパス、テンソル、NumPy配列、PIL画像、またはバイトから画像を読み込みます。
  2. Detector: ニューラルネットワーク(例:RetinaFace)を使用して画像内の顔を検出します。
  3. Unifier: 検出された顔を一貫したフォーマットに正規化およびリサイズします。
  4. Predictors: 特定の顔の属性を分析する専用のニューラルネットワークのセット(例:顔の表情認識(FER)、顔認証、埋め込み生成)。
  5. Utilizers: 出力を処理するコンポーネント(例:バウンディングボックスの描画、結果の保存)。

モデルは torch.export.pt2形式)でシリアライズされ、推論時に元のソースコードが不要であり、torch.compile を使用してパフォーマンス最適化が可能です。

対象ユーザー

PythonまたはDocker経由で簡単にデプロイできる柔軟で高性能な顔分析システムが必要な開発者や研究者向けに設計されています。CPUおよびGPU環境をサポートしています。

特徴

  • ポータブルモデル: .pt2 シリアライズを使用するため、推論時にモデルのソースコードが不要です。
  • 柔軟な入力: 1つのパイプラインでテンソル、NumPy配列、PIL画像など、幅広い入力形式をサポートします。
  • 収集とガバナンス: 検証、出典、権利承認を厳格に管理するマニフェストを用いてコミュニティモデルを収集します。
  • カスタマイズ可能な設定: HydraとOmegaConfと統合されており、設定の上書きが簡単です。
  • デプロイ準備完了: 公式のDockerイメージを提供し、uv および conda-lock を使用した高速パッケージ管理をサポートしています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト