Guia de estilização de rostos para Python

A tarefa do estilizador de rostos do MediaPipe permite aplicar estilizações a rostos em uma imagem. Você pode usar 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 os 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 Face Stylizer fornece uma implementação completa dessa tarefa em Python para sua referência. Esse código ajuda a testar essa tarefa e a criar seu próprio estilizador de rosto. É possível visualizar, executar e editar o código de exemplo do Face Stylizer usando apenas o 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 Face Stylizer. Para informações gerais sobre como configurar o ambiente de desenvolvimento para usar as tarefas do MediaPipe, incluindo os requisitos da versão da plataforma, consulte o Guia de configuração para Python.

Pacotes

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

$ python -m pip install mediapipe

Importações

Importe as classes a seguir para acessar as funções de tarefa do Face Stylizer:

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

Modelo

A tarefa do MediaPipe Face Stylizer requer um modelo treinado compatível com essa tarefa. Para mais informações sobre os modelos treinados disponíveis para o Face Stylizer, consulte a seção Modelos da visão geral da tarefa.

Selecione e faça o download do modelo e 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 modelo a ser usado. Para conferir um exemplo de código, consulte a próxima seção.

Criar a tarefa

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

O código a seguir 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 a entrada como um arquivo de imagem ou uma matriz NumPy e converta-a em um objeto mediapipe.Image. Se a entrada for um arquivo de vídeo ou uma transmissão ao vivo de uma webcam, use uma biblioteca externa, como o OpenCV, para carregar os frames de entrada como matrizes numpy.

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 Face Stylizer usa a função stylize para acionar inferências. Para a estilização de rostos, isso envolve o pré-processamento dos dados de entrada e a estilização de rostos na imagem.

O código abaixo demonstra como executar o processamento com o modelo de tarefas.

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

Processar e mostrar resultados

O Face Stylizer retorna um objeto Image com uma estilização do rosto mais proeminente na imagem de entrada.

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

Um close-up gerado de uma mulher desenhada com lápis e marcador.

A saída acima foi criada aplicando o modelo Color sketch à seguinte imagem de entrada:

Foto da mulher cuja imagem foi usada para gerar a saída anterior