Umarmung der Gesichtsspace Demo App?
Google Colab Notebook Demo
Benutzerhandbuch, Dokumentation, Chatgpt Facetorch Guide
Docker Hub (GPU)
Facetorch ist eine Python -Bibliothek für die Erkennung und Analyse von Gesichtsbehörden, die die Kraft tiefer neuronaler Netzwerke nutzt. Das Hauptziel ist es, Open-Source-Gesichtsanalysemodelle aus der Community zu kuratieren, sie für hohe Leistung mithilfe von Torchscript zu optimieren und sie in ein vielseitiges Gesichtsanalyse-Toolkit zu integrieren. Die Bibliothek bietet die folgenden Schlüsselfunktionen:
Anpassbare Konfiguration: Konfigurieren Sie Ihr Setup einfach mithydra und leistungsstarken Omegaconf -Funktionen.
Reproduzierbare Umgebungen: Stellen Sie die Reproduzierbarkeit mit Tools wie Conda-Lock für Abhängigkeitsmanagement und Docker für die Containerisierung sicher.
Beschleunigte Leistung: Genießen Sie eine verbesserte Leistung bei CPU und GPU mit Torchscript -Optimierung.
Einfache Erweiterbarkeit: Erweitern Sie die Bibliothek, indem Sie Ihre Modelldatei auf Google Drive hochladen und eine entsprechende Konfiguration YAML -Datei zum Repository hinzufügen.
Facetorch bietet eine effiziente, skalierbare und benutzerfreundliche Lösung für Gesichtsanalyseaufgaben und sorgt für Entwickler und Forscher, die nach Flexibilität und Leistung suchen.
Bitte verwenden Sie diese Bibliothek verantwortungsbewusst und mit Vorsicht. Beachten Sie die Ethik -Richtlinien der Europäischen Kommission für vertrauenswürdige KI, um die ethische und faire Nutzung zu gewährleisten. Beachten Sie, dass die Modelle Einschränkungen und mögliche Verzerrungen haben können. Daher ist es wichtig, ihre Ausgaben kritisch zu bewerten und ihre Auswirkungen zu berücksichtigen.
Pypi
pip install facetorchConda
conda install -c conda-forge facetorchDocker Compose bietet eine einfache Möglichkeit, eine funktionierende Facetorch -Umgebung mit einem einzigen Befehl aufzubauen.
docker compose run facetorch python ./scripts/example.pydocker compose run facetorch-gpu python ./scripts/example.py analyzer.device=cudaÜberprüfen Sie die Daten/Ausgaben auf resultierende Bilder mit Begrenzungskästchen und 3D -Sehenswürdigkeiten im Gesicht.
(Apple Mac M1) Verwenden Sie den Rosetta 2 -Emulator im Docker -Desktop, um die CPU -Version auszuführen.
Das Projekt wird durch Dateien in Conf mit der Hauptdatei konfiguriert: conf/config.yaml . Man kann leicht Module aus der Konfiguration hinzufügen oder entfernen.
Faceanalyzer ist die Hauptklasse von Facetorch, da es der Orchestrator ist, der für die Initialisierung und Ausführung der folgenden Komponenten verantwortlich ist:
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 muss wahr sein, um die Modellvorhersage in den Vorhersagen einzubeziehen. | 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 muss wahr sein, um die Modellvorhersage in den Vorhersagen einzubeziehen.include_tensors muss wahr sein, um die Modellvorhersage in den Vorhersagen einzubeziehen. | 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 muss wahr sein, um die Modellvorhersage in den Vorhersagen einzubeziehen.Modelle werden während der Laufzeit automatisch in das Modelsverzeichnis heruntergeladen. Sie können die Modelle auch manuell von einem öffentlichen Google Drive -Ordner herunterladen.
Image test.jpg (4 Gesichter) wird in etwa 486 ms und test3.JPG (25 Gesichter) in etwa 1845 ms (batch_size = 8) auf nvidia tesla t4 gpu analysiert ( batch_size = 8), die zuerst runisierte und vorheizte, von der Def; Man kann die Ausführungszeiten in Protokollen mithilfe der Debug -Ebene überwachen.
Detaillierte test.jpg Ausführungszeiten:
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
Führen Sie den Docker -Container aus:
docker compose -f docker-compose.dev.yml run facetorch-devdocker compose -f docker-compose.dev.yml run facetorch-dev-gpuFacetorch arbeitet mit Modellen, die von Pytorch zu Torchscript exportiert wurden. Sie können die Funktion von Torch.jit.trace anwenden, um ein Pytorch -Modell als Torchscript -Modul zu kompilieren. Bitte überprüfen Sie, ob die Ausgabe des verfolgten Modells der Ausgabe des ursprünglichen Modells entspricht.
Die ersten Modelle werden in meinem öffentlichen Google Drive -Ordner gehostet. Sie können das neue Modell entweder für das Hochladen an mich senden, das Modell auf Ihrem Google -Laufwerk hosten oder es an einen anderen Ort hosten und Ihr eigenes Downloader -Objekt zur Codebasis hinzufügen.
/conf/analyzer/predictor/ Folgen Sie dem Beispiel in /conf/analyzer/predictor/fer//conf/analyzer/predictor/fer/efficientnet_b2_8.yaml zum neuen Ordner /conf/analyzer/predictor/<predictor_name>//conf/analyzer/predictor/<predictor_name>/<model_name>.yaml /tests/conftest.py hinzu./tests/test_<predictor_name>.py black facetorchCPU:
environment.yml hinzuconda 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 hinzuconda 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 Challantin und Michael Filhol. "Gesichtsausdrücke für die Gebärdensprachensynthese unter Verwendung von Facshuman und Azee." Verfahren der LEC-Coling 2024 11. Workshop zur Darstellung und Verarbeitung von Gebärdensprachen , S. 354–360, 2024.
Liang, Cong, Jihe Wang, Haofan Zhang, Bing Tang, Junshan Huang, Shangfei Wang und Xiaoping Chen. "Unifarn: Unified Transformator für die Erzeugung der Gesichtsreaktion." Proceedings der 31. ACM International Conference on Multimedia , S. 9506–9510, 2023.
Gue, Jia Xuan, Chun Yong Chong und Mei Kuan Lim. "Gesichtsausdruckserkennung als Marker der Depression." 2023 Asia Pacific Signal and Information Processing Association Annual Summit and Conference (APSIPA ASC) , S. 674–680, 2023.
Ich möchte der Open-Source-Community und den Forschern, die ihre Arbeit und veröffentlichte Modelle geteilt haben, danken. Dieses Projekt wäre ohne ihre Beiträge nicht möglich gewesen.
Wenn Sie FaceTorch in Ihrer Arbeit verwenden, stellen Sie bitte die ursprünglichen Autoren der von ihr verwendeten Modelle angemessen an. Darüber hinaus können Sie in Betracht ziehen, die Facetorch -Bibliothek selbst zu zitieren. Im Folgenden finden Sie ein Beispiel für 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}}
}