¿Aplicar la aplicación de demostración de espacio para la cara?
Demo de cuaderno de Google Colab
Guía del usuario, documentación, Guía de Facetorch de ChatGPT
Docker Hub (GPU)
Facetorch es una biblioteca de Python diseñada para la detección y análisis faciales, aprovechando el poder de las redes neuronales profundas. Su objetivo principal es curar modelos de análisis facial de código abierto de la comunidad, optimizarlos para un alto rendimiento usando Torchscript e integrarlos en un conjunto de herramientas de análisis de análisis versátil. La biblioteca ofrece las siguientes características clave:
Configuración personalizable: configure fácilmente su configuración con Hydra y sus potentes capacidades Omegaconf.
Entornos reproducibles: garantizar la reproducibilidad con herramientas como Conda-Lock para la gestión de dependencias y Docker para la contenedorización.
Rendimiento acelerado: disfrute de un rendimiento mejorado tanto en CPU como en GPU con optimización de Torchscript.
Extensibilidad simple: extienda la biblioteca cargando su archivo de modelo a Google Drive y agregando un archivo YAML de configuración correspondiente al repositorio.
Facetorch proporciona una solución eficiente, escalable y fácil de usar para tareas de análisis facial, que atiende a desarrolladores e investigadores que buscan flexibilidad y rendimiento.
Utilice esta biblioteca de manera responsable y con precaución. Adherirse a las pautas de ética de la Comisión Europea para la IA confiable para garantizar el uso ético y justo. Tenga en cuenta que los modelos pueden tener limitaciones y sesgos potenciales, por lo que es crucial evaluar sus resultados críticamente y considerar su impacto.
Pypi
pip install facetorchCondición
conda install -c conda-forge facetorchDocker Compose proporciona una manera fácil de construir un entorno facial en funcionamiento con un solo comando.
docker compose run facetorch python ./scripts/example.pydocker compose run facetorch-gpu python ./scripts/example.py analyzer.device=cudaVerifique los datos/salida para obtener imágenes resultantes con cuadros delimitadores y puntos de referencia 3D faciales.
(Apple Mac M1) Use el emulador Rosetta 2 en Docker Desktop para ejecutar la versión de CPU.
El proyecto está configurado por archivos ubicados en conf con el archivo principal: conf/config.yaml . Se puede agregar o eliminar fácilmente módulos de la configuración.
FaceAnalyzer es la clase principal de facetorch, ya que es el orquestador responsable de inicializar y ejecutar los siguientes 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 debe ser verdad para incluir la predicción del modelo en predicción. 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 debe ser verdad para incluir la predicción del modelo en predicción. Logitsinclude_tensors debe ser verdad para incluir la predicción del modelo en predicción. 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 debe ser verdad para incluir la predicción del modelo en predicción. LogitsLos modelos se descargan durante el tiempo de ejecución automáticamente al directorio de modelos . También puede descargar los modelos manualmente desde una carpeta pública de Google Drive.
Se analiza la imagen test.jpg (4 caras) (incluidos los cuadros de dibujo y los puntos de referencia, pero no ahorrando) en aproximadamente 486 ms y test3.jpg (25 caras) en aproximadamente 1845 ms (lotese_size = 8) en Nvidia Tesla T4 GPU una vez que la configuración predeterminada ( conf/config. Yaml ) de los modelos se inicia y se calienta a la imagen inicial 108080. Uno puede monitorear los tiempos de ejecución en los registros utilizando el nivel de depuración.
Tests de ejecución de JPG detallado: 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
Ejecute el contenedor Docker:
docker compose -f docker-compose.dev.yml run facetorch-devdocker compose -f docker-compose.dev.yml run facetorch-dev-gpuFacetorch funciona con modelos que se exportaron desde Pytorch a Torchscript. Puede aplicar la función Torch.jit.TRACE para compilar un modelo Pytorch como un módulo TorchScript. Verifique que la salida del modelo trazado sea igual a la salida del modelo original.
Los primeros modelos están alojados en mi carpeta pública de Google Drive. Puede enviarme el nuevo modelo para cargarme, alojar el modelo en su unidad de Google o alojarlo en otro lugar y agregar su propio objeto descargador a la base de código.
/conf/analyzer/predictor/ Siguiendo el ejemplo de Fer en /conf/analyzer/predictor/fer//conf/analyzer/predictor/fer/efficientnet_b2_8.yaml a la nueva carpeta /conf/analyzer/predictor/<predictor_name>//conf/analyzer/predictor/<predictor_name>/<model_name>.yaml /tests/conftest.py ./tests/test_<predictor_name>.py black facetorchUPC:
environment.yml Fileconda 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 Fileconda 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 y Michael Filhol. "Expresiones faciales para la síntesis del lenguaje de señas utilizando FacShuman y Azee". Actas del taller del 11º Color LREC 2024 sobre la representación y procesamiento de los idiomas de signos , pp. 354–360, 2024.
Liang, Cong, Jiahe Wang, Haofan Zhang, Bing Tang, Junshan Huang, Shangfei Wang y Xiaoping Chen. "Unifarn: transformador unificado para la generación de reacción facial". Actas de la 31ª Conferencia Internacional de ACM sobre Multimedia , pp. 9506–9510, 2023.
Gue, Jia Xuan, Chun Yong Chong y Mei Kuan Lim. "Reconocimiento de la expresión facial como marcadores de depresión". 2023 Asia Asia de la Asociación de Signal and Information Processing Association Anual Summit (Apsipa ASC) , pp. 674–680, 2023.
Me gustaría agradecer a la comunidad de código abierto y a los investigadores que han compartido su trabajo y modelos publicados. Este proyecto no hubiera sido posible sin sus contribuciones.
Si usa facetorch en su trabajo, asegúrese de acreditar adecuadamente a los autores originales de los modelos que emplea. Además, puede considerar citar la biblioteca Facetorch. A continuación se muestra una cita de ejemplo para 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}}
}