Dynaface Python Library
Dynaface is an AI-driven facial tracking Python Library utilizing computer vision techniques that integrate Convolutional Neural Networks (CNNs) with cascaded Graph Attention Network (GAT) regressors to enhance facial landmark detection by capturing both local appearance and global structural relationships (Prados-Torreblanca1, A & Buenaposada, J). This approach encodes both the appearance and spatial positioning of facial landmarks while employing an attention mechanism to prioritize reliable information. Such a method is particularly advantageous for assessing facial asymmetry in patients with facial paralysis, where conventional landmarking algorithms are often biased toward symmetric faces. By leveraging a global representation of facial structure, Dynaface enables precise detection of key landmarks despite asymmetries, facilitating the objective quantification of facial movement and asymmetry. These measurements, including the Facial Asymmetry Index (FAI) and Oral Commissure Excursion (OCE), serve as critical indicators of facial function and can be correlated with patient-reported outcomes to evaluate recovery and patient satisfaction.
Sample Code
Install from pypi.
pip install dynaface
Calculate measures on a face.
import cv2
from dynaface import facial, measures, models
all_measures = measures.all_measures()
face = facial.AnalyzeFace(measures = all_measures)
face.load_image(image_rgb,crop=True)
face.analyze()
Helpful Links
Helpful Python Commands
Activate Environment
source venv/bin/activate
.\venv\Scripts\activate.bat
.\venv\Scripts\Activate.ps1
Allow Windows to Use Environment
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Run Unit Tests
For Mac/Linux:
cd dynaface-lib-python
python3.11 -m venv venv
source venv/bin/activate
pip install -e ".[dev]"
python -m unittest discover -s tests
For Windows:
cd dynaface-lib-python
python3.11 -m venv venv
.\venv\Scripts\Activate.ps1
pip install -e ".[dev]"
python -m unittest discover -s tests
⚠️ Note for Windows users: If you get an error like execution of scripts is disabled on this system when activating the virtual environment, you can temporarily bypass it with:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\venv\Scripts\Activate.ps1
Running Examples
python ./examples/process_media.py /Users/jeff/data/facial/samples/tracy-ref-blink.mp4
python ./examples/process_media.py --crop /Users/jeff/data/facial/samples/2021-8-19.png
python ./examples/process_media.py --crop /Users/jeff/data/facial/samples/tracy_frame.png
python ./examples/process_media.py --crop /Users/jeff/data/facial/samples/tracy-blink-single.mp4
To Cite Dynaface
- Renne, A., Heaton, J., & Boahene, K. D. O. (2026). Associations of AI-based facial metrics with patient-reported outcomes in idiopathic facial paralysis. Laryngoscope. Advance online publication. https://doi.org/10.1002/lary.70417
- BibTeX: https://github.com/jeffheaton/dynaface/blob/main/CITATION.bib
Metadata
Release files for dynaface 2.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dynaface-2.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Release files / dynaface-2.0.2-py3-none-any.whl
| Download URL | dynaface-2.0.2-py3-none-any.whl |
|---|---|
| Size | 60.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2df78b84f2aa72ec918d9ba17600d5c907779a7b26741a512ef6e69f99e9a574
|
|
BLAKE2b-256 checksum How to use checksums |
857bce6f56882b01128547e98b490dbf4545fcd4fed0fdbb504eef8383d07d4e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|