/ Модель

Характеристики

Лицензия
Apache 2.0
Библиотека
py-feat
Опубликована
27 авг 2024

mp_blendshapes

Эмбеддинги изображенийИзображение → embedding

Модель PyTorch находит 52 параметра мимики по лицевым ориентирам MediaPipe для анализа выражения лица и управления анимацией.

0скачиваний за 30 дней9лайковвеса обновлены2 сен 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

MP_Blendshapes — портированная на PyTorch модель из библиотеки Google MediaPipe, созданная на основе реализации Liam Schoneveld. Это MLP-Mixer, принимающий 146 или 473 лицевых ориентира из модели FaceMeshV2 и извлекающий 52 коэффициента выражения лица. Коэффициенты сходны с ARKit Face Blendshapes и приблизительно соответствуют единицам Facial Action Coding System.

Модель предназначена для анализа мимики и получения параметров blendshape по ориентирам лица, например, для управления лицевой анимацией. Репозиторий содержит веса PyTorch; лицензия — Apache-2.0. Модель обрабатывает ориентиры, а не необработанное изображение, поэтому для получения входных точек требуется отдельная модель FaceMeshV2.

Сценарии применения

  • извлечение параметров мимики из лицевых ориентиров
  • управление лицевой анимацией по blendshape-коэффициентам
  • оценка движений лица, приблизительно соответствующих FACS
  • получение коэффициентов выражения лица для аватара

Ограничения

На вход подаются лицевые ориентиры FaceMeshV2, а не исходное изображение; для получения ориентиров нужна отдельная модель. Соответствие коэффициентов FACS приблизительное.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

MP_Blendshapes

Model Description

MP_Blendshapes has been ported to pytorch from Google's mediapipe library using Liam Schoneveld's github repository. The inputs are 146/473 of mediapipe's FaceMeshV2 high density landmark model. The 52 blendshapes are similar to ARKit Face Blendshapes and loosely correspond to Facial Action Unit Coding System.

See the mediapipe model card for more details.

Model Details

  • Model Type: MLP-Mixer (Keras)
  • Framework: pytorch

Model Sources

Citation

If you use the mp_blendshapes model in your research or application, please cite the following paper:

Grishchenko, I., Ablavatski, A., Kartynnik, Y., Raveendran, K., & Grundmann, M. (2020). Attention mesh: High-fidelity face mesh prediction in real-time. arXiv preprint arXiv:2006.10962.

@article{grishchenko2020attention,
  title={Attention mesh: High-fidelity face mesh prediction in real-time},
  author={Grishchenko, Ivan and Ablavatski, Artsiom and Kartynnik, Yury and Raveendran, Karthik and Grundmann, Matthias},
  journal={arXiv preprint arXiv:2006.10962},
  year={2020}
}

Example Useage

import torch
import pandas as pd
from huggingface_hub import hf_hub_download
from feat.au_detectors.MP_Blendshapes.MP_Blendshapes_test import MediaPipeBlendshapesMLPMixer     
from feat.utils import MP_BLENDSHAPE_MODEL_LANDMARKS_SUBSET, MP_BLENDSHAPE_NAMES

device = 'cpu'

# Load model and weights
blendshape_detector = MediaPipeBlendshapesMLPMixer()
model_path = hf_hub_download(repo_id="py-feat/mp_blendshapes", filename="face_blendshapes.pth")
blendshape_model_file = hf_hub_download(repo_id='py-feat/resmasknet', filename="ResMaskNet_Z_resmasking_dropout1_rot30.pth")
blendshape_checkpoint = torch.load(blendshape_model_file, map_location=device)["net"]
blendshape_detector.load_state_dict(blendshape_checkpoint)
blendshape_detector.eval()
blendshape_detector.to(device)


# Test model
face_image = "path/to/your/test_image.jpg"  # Replace with your extracted face image that is [224, 224]

# Extract Landmarks
landmark_detector = torch.load('/Users/lukechang/Dropbox/py-feat/mediapipe/model/face_landmarks_detector_Nx3x256x256_onnx.pth', weights_only=False)
landmark_detector.eval()
landmark_detector.to(device)
landmark_results = landmark_detector(torch.tensor(face_image).to(device))

# Blendshape Classification
landmarks = landmark_results[0].reshape(1,478,3)[:,:,:2]
img_size = torch.tensor((face_image_width, face_image_height)).unsqueeze(0).unsqueeze(0)
landmarks = landmarks * img_size
blendshapes = blendshape_detector(landmarks)
blendshape_results = pd.Series(blendshape_results.squeeze().detach().numpy(), index=BLENDSHAPE_NAMES)
        

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · py-feat · image-feature-extraction

Нельзя запустить

В репозитории нет config.json: не понять архитектуру модели.

Ревизия весов
1c8bbe2

0 моделей