擁抱面部空間演示應用程序?
Google Colab筆記本演示
用戶指南,文檔,chatgpt FaceTorch指南
Docker Hub(GPU)
FaceTorch是一個python庫,旨在用於面部檢測和分析,利用深神經網絡的力量。它的主要目的是策劃社區的開源面部分析模型,使用Torchscript優化高性能,並將其集成到多功能的面部分析工具包中。圖書館提供以下關鍵功能:
可自定義配置:使用Hydra及其功能強大的OmeGaconf功能輕鬆配置您的設置。
可再現的環境:確保使用諸如Conda-Lock之類的工具可再現性,用於依賴關係管理和用於容器化的Docker。
加速性能:通過Torchscript優化,在CPU和GPU上均可提高性能。
簡單的可擴展性:通過將模型文件上傳到Google Drive並將相應的配置YAML文件添加到存儲庫來擴展庫。
FaceTorch為面部分析任務提供了有效,可擴展和用戶友好的解決方案,可滿足尋求靈活性和性能的開發人員和研究人員的需求。
請負責任地使用此庫。遵守歐盟委員會的倫理學指南,以確保道德和公平的用法。請記住,這些模型可能具有局限性和潛在的偏見,因此評估其產出並考慮其影響至關重要。
PYPI
pip install facetorch康達
conda install -c conda-forge facetorchDocker撰寫提供了一種簡單的方法,可以用單個命令構建工作方面的環境。
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中的文件配置,其中主文件: conf/config.yaml 。可以輕鬆地從配置中添加或刪除模塊。
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必須是正確的才能在預測中包括模型預測。 | 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必須是正確的才能在預測中包括模型預測。include_tensors必須是正確的才能在預測中包括模型預測。 | 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必須是正確的才能在預測中包括模型預測。在運行時將模型自動下載到模型目錄。您還可以從公共Google驅動器文件夾中手動下載型號。
分析了大約486ms的圖像test.jpg(4個面)(包括繪圖盒和地標,但不保存),test3.jpg(25個面孔(25個面孔),大約1845ms(batch_size = 8)在NVIDIA TESLA TESLA TESLA TESLA t4 t4 GPU上默認配置( CONF/CONF/CONF/predible )的初始尺寸和散熱尺寸為10的初始尺寸。可以使用調試級別監視日誌中的執行時間。
詳細的測試.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/ perfer示例中創建任務的新文件夾,按/conf/analyzer/predictor/fer//conf/analyzer/predictor/fer/efficientnet_b2_8.yaml analyzer/predictor/fer/ferficitynet_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文件中。/tests/test_<predictor_name>.py test_predictor_name> .py中為新預測變量編寫測試black facetorch中央處理器:
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的手語合成的面部表情。” LREC-Coling 2024的第11屆符號語言代表和處理研討會的論文集,第354-360頁,第2024頁。
Liang,Cong,Jiahe Wang,Haofan Zhang,Bing Tang,Junshan Huang,Shangfei Wang和Chiaoping Chen。 “ Unifarn:面部反應產生的統一變壓器。”第31屆ACM國際多媒體會議論文集,第9506-9510頁,2023年。
Gue,Jia Xuan,Chun Yong Chong和Mei Kuan Lim。 “面部表達識別是抑鬱症的標誌。” 2023年亞太信號和信息處理協會年度峰會和會議(APSIPA ASC) ,第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}}
}