tomas-gajarsky/facetorch

Python library for analysing faces using PyTorch

解決する問題

顔分析パイプラインの構築は、モデルのソースコード、依存関係、再現性に悩まされることがよくあります。Facetorch は、オープンソースの顔分析モデルを厳選し、移植可能な torch.export 形式(.pt2)にパッケージ化し、統一された Python ツールキットを提供することで、推論時にモデルのソースコードを必要とせずに検出と分析を実行できるようにします。

仕組み

Facetorch は FaceAnalyzer クラスを中心に、複数のプラグイン可能なコンポーネントを調整します。ローカルパス、テンソル、NumPy 配列、PIL 画像、またはバイトから画像を処理するリーダー、顔を見つける検出器(ニューラルネットワークラッパー)、顔のサイズとピクセル範囲を正規化するユニファイア、一連の予測器(埋め込み、検証、表情などのタスク用のニューラルネットワークラッパー)、およびユーティライザー(境界ボックスの描画など)です。設定は Hydra/OmegaConf で管理され、CPU または GPU プロファイルを選択し、設定を上書きできます。モデルは torch.export でシリアライズされるため、推論に元のコードは必要ありません。ライブラリのデフォルト動作は決定的です。デフォルトでは入力を強制変換し、明示的に制限付き URLReader を設定した場合のみリモート画像を取得します。モデルは最初の使用時に遅延ロードされキャッシュされ、ライブラリは単一画像内で検出された顔の動的バッチ処理をサポートします。

対象ユーザー

Python で柔軟かつ再現可能な方法で顔検出と分析(例:身元確認、表情の読み取り)を実行する必要がある開発者や研究者、特にモデルの内部を直接管理することを避けたい人向けです。Python 3.11–3.12 と PyTorch 2.6–2.13 が必要で、公式プラットフォームは Linux x86-64 です(Windows/macOS/ARM は実験的)。

ハイライト

  • .pt2 形式の移植可能なモデル—推論時にモデルのソースコード不要;動的バッチと torch.compile をサポート
  • 管理された拡張性:カスタムコンポーネントは、不変マニフェスト、出所、モデル権利レビューを含む検証を通過する必要があります
  • 決定的な入力パイプライン:ローカルパス、テンソル、NumPy 配列、PIL 画像、またはバイトを受け入れます;リモート入力は明示的で制限付きの URLReader のみ
  • uv、conda-lock、Docker による再現可能な環境;キャッシュディレクトリは環境変数で制御可能
  • 検出器/予測器モデルの遅延ロードとキャッシュ;組み込み予測器による顔のバッチサイズは 64 に制限

関連

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