拥抱面部空间演示应用程序?
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}}
}