Abraçando o aplicativo de demonstração do espaço no rosto?
Demobook do Google Colab
Guia do usuário, documentação, guia de chatgpt facetorch
Docker Hub (GPU)
O FaceTorch é uma biblioteca Python projetada para detecção e análise facial, alavancando o poder das redes neurais profundas. Seu objetivo principal é curar modelos de análise de face de código aberto da comunidade, otimizá-los para alto desempenho usando o TorchScript e integrá-los a um versátil kit de ferramentas de análise de face. A biblioteca oferece os seguintes recursos principais:
Configuração personalizável: Configure facilmente sua configuração usando o HYDRA e seus poderosos recursos Omegacaconf.
Ambientes reproduzíveis: Garanta a reprodutibilidade com ferramentas como o CONDA-Lock para gerenciamento de dependência e docker para contêiner.
Desempenho acelerado: desfrute de um desempenho aprimorado na CPU e na GPU com a otimização do TorchScript.
Extensibilidade simples: estenda a biblioteca enviando seu arquivo de modelo para o Google Drive e adicionando um arquivo YAML de configuração correspondente ao repositório.
O FaceTorch fornece uma solução eficiente, escalável e fácil de usar para tarefas de análise facial, atendendo a desenvolvedores e pesquisadores que procuram flexibilidade e desempenho.
Por favor, use esta biblioteca com responsabilidade e com cautela. Atenda às diretrizes de ética da Comissão Europeia para a IA confiável para garantir o uso ético e justo. Lembre -se de que os modelos podem ter limitações e possíveis vieses, por isso é crucial avaliar seus resultados criticamente e considerar seu impacto.
Pypi
pip install facetorchCONDA
conda install -c conda-forge facetorchO Docker Compose fornece uma maneira fácil de construir um ambiente de faceTorch em funcionamento com um único comando.
docker compose run facetorch python ./scripts/example.pydocker compose run facetorch-gpu python ./scripts/example.py analyzer.device=cudaVerifique os dados/saída para obter imagens resultantes com caixas delimitadoras e marcos de 3D faciais.
(Apple Mac M1) Use o emulador Rosetta 2 no Docker Desktop para executar a versão da CPU.
O projeto é configurado por arquivos localizados em conf com o arquivo principal: config.yaml . Pode -se adicionar ou remover facilmente os módulos da configuração.
O Faceanalyzer é a principal classe de FaceTorch, pois é o orquestrador responsável por inicializar e executar os seguintes componentes:
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 precisa ser verdadeiro para incluir a previsão do modelo em previsão.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 precisa ser verdadeiro para incluir a previsão do modelo em previsão.logitsinclude_tensors precisa ser verdadeiro para incluir a previsão do modelo em previsão.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 precisa ser verdadeiro para incluir a previsão do modelo em previsão.logitsOs modelos são baixados durante o tempo de execução automaticamente para o diretório de modelos . Você também pode baixar os modelos manualmente de uma pasta pública do Google Drive.
Image test.jpg (4 faces) is analyzed (including drawing boxes and landmarks, but not saving) in about 486ms and test3.jpg (25 faces) in about 1845ms (batch_size=8) on NVIDIA Tesla T4 GPU once the default configuration ( conf/config.yaml ) of models is initialized and pre heated to the initial image size 1080x1080 by the first correr. Pode -se monitorar os tempos de execução nos logs usando o nível de depuração.
Test.jpg tempos de execução detalhados:
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
Execute o contêiner do docker:
docker compose -f docker-compose.dev.yml run facetorch-devdocker compose -f docker-compose.dev.yml run facetorch-dev-gpuO FaceTorch trabalha com modelos exportados de Pytorch para TorchScript. Você pode aplicar a função Torch.jit.Trace para compilar um modelo Pytorch como um módulo TorchScript. Verifique se a saída do modelo rastreado é igual à saída do modelo original.
Os primeiros modelos estão hospedados na minha pasta pública do Google Drive. Você pode enviar o novo modelo para fazer upload para mim, hospedar o modelo no seu Google Drive ou hospedá -lo em outro lugar e adicionar seu próprio objeto de downloader à base de código.
/conf/analyzer/predictor/ seguindo o exemplo do FER em /conf/analyzer/predictor/fer//conf/analyzer/predictor/fer/efficientnet_b2_8.yaml para a nova pasta /conf/analyzer/predictor/<predictor_name>//conf/analyzer/predictor/<predictor_name>/<model_name>.yaml /tests/conftest.py ./tests/test_<predictor_name>.py black facetorchCPU:
environment.ymlconda 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.ymlconda 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 e Michael Filhol. "Expressões faciais para síntese de linguagem de sinais usando facshuman e Azee". Anais do Lrec-Coling 2024 11th Workshop sobre a representação e processamento de linguagens de sinais , pp. 354-360, 2024.
Liang, Cong, Jiahe Wang, Haofan Zhang, Bing Tang, Junshan Huang, Shangfei Wang e Xiaoping Chen. "Unifarn: transformador unificado para geração de reação facial." Anais da 31ª Conferência Internacional da ACM sobre Multimídia , pp. 9506-9510, 2023.
Gue, Jia Xuan, Chun Yong Chong e Mei Kuan Lim. "Reconhecimento da expressão facial como marcadores de depressão". 2023 Associação de Sinais e Processamento de Informações da Ásia -Pacífico A Cúpula Anual e Conferência (APSIPA ASC) , pp. 674-680, 2023.
Gostaria de agradecer à comunidade de código aberto e aos pesquisadores que compartilharam seu trabalho e publicaram modelos. Este projeto não teria sido possível sem suas contribuições.
Se você usar o FaceTorch em seu trabalho, credite adequadamente os autores originais dos modelos que ele emprega. Além disso, você pode considerar citar a própria biblioteca FaceTorch. Abaixo está um exemplo de citação para o 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}}
}