Guia de estilização de rostos para Python

A tarefa MediaPipe Face Stylizer permite aplicar estilizações de rostos a rostos em uma imagem. Use essa tarefa para criar avatares virtuais em vários estilos.

O exemplo de código descrito nestas instruções está disponível no GitHub. Para mais informações sobre recursos, modelos e opções de configuração, desta tarefa, consulte a Visão geral.

Exemplo de código

O código de exemplo do Estilizador de rostos fornece uma implementação completa desse em Python para sua referência. Esse código ajuda a testar a tarefa começou a criar seu próprio estilizador de rostos. Você pode visualizar, executar e editar o Exemplo de código do Estilizador de rostos usando apenas seu navegador da Web.

Configuração

Esta seção descreve as principais etapas para configurar seu ambiente de desenvolvimento e projetos de código especificamente para usar o Estilizador de rostos. Para informações gerais a configuração do seu ambiente de desenvolvimento para usar tarefas do MediaPipe, incluindo requisitos de versão da plataforma, consulte o Guia de configuração do Python.

Pacotes

A tarefa MediaPipe Face Stylizer exige o pacote PyPI do mediapipe. É possível instalar e importe essas dependências com o seguinte:

$ python -m pip install mediapipe

Importações

Importe as seguintes classes para acessar as funções de tarefa do Estilizador de rostos:

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision

Modelo

A tarefa MediaPipe Face Stylizer exige um modelo treinado que seja compatível com esse tarefa. Para mais informações sobre os modelos treinados disponíveis para o Estilizador de rostos, consulte na seção de visão geral da tarefa Modelos.

Selecione e faça o download do modelo e, em seguida, armazene-o em um diretório local:

model_path = '/absolute/path/to/face_stylizer.task'

Use o parâmetro model_asset_path do objeto BaseOptions para especificar o caminho do o modelo a ser usado. Para conferir um exemplo de código, consulte a próxima seção.

Criar a tarefa

A tarefa MediaPipe Face Stylizer usa a função create_from_options para configurar o tarefa. A função create_from_options aceita valores para configuração. opções de processamento.

O código abaixo demonstra como criar e configurar essa tarefa.

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.
  # ...

Preparar dados

Prepare sua entrada como um arquivo de imagem ou uma matriz numpy e, em seguida, converta-a em um mediapipe.Image. Se sua entrada for um arquivo de vídeo ou uma transmissão ao vivo de um webcam, você pode usar uma biblioteca externa, como OpenCV para carregar os frames de entrada como numpy matrizes de dados.

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)

Executar a tarefa

O Estilizador de rostos usa a função stylize para acionar inferências. Para o rosto a estilização envolve o pré-processamento de dados de entrada e o estilização de faces na imagem.

O código a seguir demonstra como executar o processamento com a tarefa um modelo de machine learning.

# 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)

Gerenciar e exibir resultados

O Estilizador de rostos retorna um objeto Image com uma estilização da maior um rosto proeminente na imagem de entrada.

Confira abaixo um exemplo dos dados de saída desta tarefa:

O resultado acima foi criado com a aplicação do modelo Color sketch para a seguinte imagem de entrada: