Задача MediaPipe Face Stylizer позволяет применять стилизацию лиц к лицам на изображении. Вы можете использовать это задание для создания виртуальных аватаров в различных стилях.
Пример кода, описанный в этой инструкции, доступен на GitHub . Дополнительные сведения о возможностях, моделях и параметрах конфигурации этой задачи см. в разделе Обзор .
Пример кода
В примере кода Face Stylizer представлена полная реализация этой задачи на Python. Этот код поможет вам протестировать эту задачу и приступить к созданию собственного стилизатора лица. Вы можете просматривать, запускать и редактировать пример кода Face Stylizer, используя только веб-браузер.
Настраивать
В этом разделе описаны ключевые шаги по настройке среды разработки и проектов кода специально для использования Face Stylizer. Общие сведения о настройке среды разработки для использования задач MediaPipe, включая требования к версии платформы, см. в руководстве по настройке Python .
Пакеты
Для задачи MediaPipe Face Stylizer требуется пакет mediapipe PyPI. Вы можете установить и импортировать эти зависимости следующим образом:
$ python -m pip install mediapipe
Импорт
Импортируйте следующие классы для доступа к функциям задачи Face Stylizer:
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision
Модель
Для задачи MediaPipe Face Stylizer требуется обученная модель, совместимая с этой задачей. Дополнительную информацию о доступных обученных моделях для Face Stylizer смотрите в разделе «Модели» обзора задач.
Выберите и скачайте модель, а затем сохраните ее в локальном каталоге:
model_path = '/absolute/path/to/face_stylizer.task'
Используйте параметр model_asset_path
объекта BaseOptions
, чтобы указать путь к используемой модели. Пример кода см. в следующем разделе.
Создать задачу
Задача MediaPipe Face Stylizer использует функцию create_from_options
для настройки задачи. Функция create_from_options
принимает значения для обрабатываемых параметров конфигурации.
Следующий код демонстрирует, как создать и настроить эту задачу.
import mediapipe as mp
BaseOptions = mp.tasks.BaseOptions
Facestylizer = mp.tasks.vision.face_stylizer
FacestylizerOptions = mp.tasks.vision.FaceStylizerOptions
# Create a face stylizer instance with the image mode:
options = FacestylizerOptions(
base_options=BaseOptions(model_asset_path=model_path),
with Facestylizer.create_from_options(options) as stylizer:
# The stylizer is initialized. Use it here.
# ...
Подготовьте данные
Подготовьте входные данные в виде файла изображения или массива numpy, а затем преобразуйте их в объект mediapipe.Image
. Если ваши входные данные представляют собой видеофайл или прямую трансляцию с веб-камеры, вы можете использовать внешнюю библиотеку, такую как OpenCV, для загрузки входных кадров в виде числовых массивов.
import mediapipe as mp
# Load the input image from an image file.
mp_image = mp.Image.create_from_file('/path/to/image')
# Load the input image from a numpy array.
mp_image = mp.Image(image_format=mp.ImageFormat.SRGB, data=numpy_image)
Запустить задачу
Face Stylizer использует функцию stylize
для создания логических выводов. Для стилизации лица это включает предварительную обработку входных данных и стилизацию лиц на изображении.
Следующий код демонстрирует, как выполнить обработку с помощью модели задачи.
# Perform face stylization on the provided single image.
# The face stylizer must be created with the image mode.
face_stylizer_result = stylizer.stylize(mp_image)
Обработка и отображение результатов
Face Stylizer возвращает объект Image
со стилизацией самого заметного лица на входном изображении.
Ниже показан пример выходных данных этой задачи:
Вышеуказанный результат был создан путем применения модели цветного эскиза к следующему входному изображению: