フェイススペースデモアプリを抱き締める?
Google Colab Notebookデモ
ユーザーガイド、ドキュメント、ChatGpt Facetorchガイド
Docker Hub(GPU)
FaceTorchは、顔の検出と分析のために設計されたPythonライブラリで、深いニューラルネットワークの力を活用しています。その主な目的は、コミュニティからオープンソースフェイス分析モデルをキュレートし、Torchscriptを使用して高性能に最適化し、汎用性の高いフェイス分析ツールキットに統合することです。ライブラリは、次の重要な機能を提供しています。
カスタマイズ可能な構成: Hydraとその強力なOmegaconf機能を使用して、セットアップを簡単に構成できます。
再現可能な環境: Conda-Lockなどのツールで依存関係管理やコンテナ化用のDockerの再現性を確保します。
加速パフォーマンス: Torchscriptの最適化により、CPUとGPUの両方でパフォーマンスを向上させます。
シンプルな拡張性:モデルファイルをGoogleドライブにアップロードし、対応する構成YAMLファイルをリポジトリに追加してライブラリを拡張します。
FaceTorchは、柔軟性とパフォーマンスを探している開発者や研究者に対応する、顔の分析タスクのための効率的でスケーラブルでユーザーフレンドリーなソリューションを提供します。
このライブラリを責任を持って使用してください。倫理的かつ公正な使用法を確保するために、信頼できるAIに関する欧州委員会の倫理ガイドラインを遵守します。モデルには制限と潜在的なバイアスがある可能性があるため、出力を批判的に評価し、その影響を考慮することが重要です。
ピピ
pip install facetorchコマンド
conda install -c conda-forge facetorchDocker Composeは、単一のコマンドで機能するFacetorch環境を簡単に構築する簡単な方法を提供します。
docker compose run facetorch python ./scripts/example.pydocker compose run facetorch-gpu python ./scripts/example.py analyzer.device=cuda境界ボックスとフェイシャル3Dランドマークを使用した結果の画像については、データ/出力を確認してください。
(Apple Mac M1)DockerデスクトップでRosetta 2エミュレーターを使用して、CPUバージョンを実行します。
このプロジェクトは、メインファイルのconf/config.yamlとともにconfにあるファイルによって構成されています。構成からモジュールを簡単に追加または削除できます。
FaceAnalyzerは、次のコンポーネントの初期化と実行を担当するオーケストレーターであるため、FaceTorchの主要なクラスです。
analyzer
├── reader
├── detector
├── unifier
└── predictor
├── embed
├── verify
├── fer
├── au
├── va
├── deepfake
└── align
└── utilizer
├── align
├── draw
└── save
| model | source | params | license | version |
| ------------- | --------- | --------- | ----------- | ------- |
| RetinaFace | biubug6 | 27.3M | MIT license | 1 |
| model | source | params | license | version |
| ----------------- | ---------- | ------- | ----------- | ------- |
| ResNet-50 VGG 1M | 1adrianb | 28.4M | MIT license | 1 |
include_tensors 、Prediction.logitsにモデル予測を含めるために真である必要があります | model | source | params | license | version |
| ---------------- | ----------- | -------- | ------------------ | ------- |
| MagFace+UNPG | Jung-Jun-Uk | 65.2M | Apache License 2.0 | 1 |
| AdaFaceR100W12M | mk-minchul | - | MIT License | 2 |
include_tensors 、Prediction.logitsにモデル予測を含めるために真である必要がありますinclude_tensors 、Prediction.logitsにモデル予測を含めるために真である必要があります | model | source | params | license | version |
| ----------------- | -------------- | -------- | ------------------ | ------- |
| EfficientNet B0 7 | HSE-asavchenko | 4M | Apache License 2.0 | 1 |
| EfficientNet B2 8 | HSE-asavchenko | 7.7M | Apache License 2.0 | 2 |
| model | source | params | license | version |
| ------------------- | --------- | ------- | ------------------ | ------- |
| OpenGraph Swin Base | CVI-SZU | 94M | MIT License | 1 |
| model | source | params | license | version |
| ----------------- | ---------- | ------- | ----------- | ------- |
| ELIM AL AlexNet | kdhht2334 | 2.3M | MIT license | 1 |
| model | source | params | license | version |
| -------------------- | ---------------- | -------- | ----------- | ------- |
| EfficientNet B7 | selimsef | 66.4M | MIT license | 1 |
| model | source | params | license | version |
| ----------------- | ---------------- | -------- | ----------- | ------- |
| MobileNet v2 | choyingw | 4.1M | MIT license | 1 |
include_tensors 、Prediction.logitsにモデル予測を含めるために真である必要がありますモデルは、ランタイム中にモデルディレクトリに自動的にダウンロードされます。また、公開Googleドライブフォルダーからモデルを手動でダウンロードすることもできます。
画像Test.jpg(4面)は、約486msで描画ボックスとランドマークを含むが、保存しない)およびnvidia tesla t4 gpuで約1845ms(batch_size = 8)で3.jpg(25面)で分析されます。デバッグレベルを使用して、ログの実行時間を監視できます。
詳細なtest.jpg実行時間:
analyzer
├── reader: 27 ms
├── detector: 193 ms
├── unifier: 1 ms
└── predictor
├── embed: 8 ms
├── verify: 58 ms
├── fer: 28 ms
├── au: 57 ms
├── va: 1 ms
├── deepfake: 117 ms
└── align: 5 ms
└── utilizer
├── align: 8 ms
├── draw_boxes: 22 ms
├── draw_landmarks: 7 ms
└── save: 298 ms
Dockerコンテナを実行します。
docker compose -f docker-compose.dev.yml run facetorch-devdocker compose -f docker-compose.dev.yml run facetorch-dev-gpuFacetorchは、PytorchからTorchscriptにエクスポートされたモデルで動作します。 torch.jit.trace関数を適用して、pytorchモデルをtorchscriptモジュールとしてコンパイルできます。トレースモデルの出力が元のモデルの出力に等しいことを確認してください。
最初のモデルは、私の公開Googleドライブフォルダーでホストされています。アップロードするための新しいモデルを送信して、Googleドライブでモデルをホストするか、どこかでホストして、独自のダウンロードオブジェクトをコードベースに追加できます。
/conf/analyzer/predictor/ FERの例に従って、Predictor Configuration Directory /conf/analyzer/predictor/fer//conf/analyzer/predictor/fer/efficientnet_b2_8.yamlを新しいフォルダー/conf/analyzer/predictor/<predictor_name>/にコピーします/conf/analyzer/predictor/<predictor_name>/<model_name>.yaml analyzer/predictor/<predictor_name>/<model_name> .yaml /tests/conftest.py conftest.pyファイルに追加します。/tests/test_<predictor_name>.py < predictor_name>で新しい予測子のテストを作成しますblack facetorchCPU:
environment.ymlファイルに追加しますconda lock -p linux-64 -f environment.yml --lockfile conda-lock.ymldocker compose -f docker-compose.dev.yml run facetorch-lockconda-lock install --name env conda-lock.ymlGPU:
gpu.environment.ymlファイルに追加しますconda lock -p linux-64 -f gpu.environment.yml --lockfile gpu.conda-lock.ymldocker compose -f docker-compose.dev.yml run facetorch-lock-gpuconda-lock install --name env gpu.conda-lock.ymlpytest tests --verbose --cov-report html:coverage --cov facetorchpdoc --html facetorch --output-dir docs --force --template-dir pdoc/templates/python -m cProfile -o profiling/example.prof scripts/example.pysnakeviz profiling/example.prof Sharma、Paritosh、Camille Challant、Michael Filhol。 「FacshumanとAzeeを使用した手話統合の表情。」 LEC-COLING 2024 11th Workshopの議事録、SIGN言語の表現と処理、pp。354–360、2024。
リアン、コング、ジアヘ・ワン、ハファン・チャン、ビング・タン、ジュンシャン・ファン、シャンフェイ・ワン、Xiaoping Chen。 「Unifarn:顔面反応生成のための統一変圧器。」マルチメディアに関する第31回ACM国際会議の議事録、pp。9506–9510、2023。
Gue、Jia Xuan、Chun Yong Chong、Mei Kuan Lim。 「うつ病のマーカーとしての表情表現認識。」 2023アジア太平洋信号および情報処理協会年次サミットアンドカンファレンス(APSIPA ASC) 、pp。674–680、2023。
オープンソースコミュニティと、自分の仕事を共有し、モデルを公開した研究者に感謝したいと思います。このプロジェクトは、彼らの貢献なしには不可能だったでしょう。
仕事でFaceTorchを使用している場合は、採用しているモデルの元の著者を適切にクレジットしてください。さらに、Facetorchライブラリ自体を引用することを検討することができます。以下はFacetorchの例の例です。
@misc{facetorch,
author = {Gajarsky, Tomas},
title = {Facetorch: A Python Library for Analyzing Faces Using PyTorch},
year = {2024},
publisher = {GitHub},
journal = {GitHub Repository},
howpublished = {url{https://github.com/tomas-gajarsky/facetorch}}
}