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:
A saída acima foi criada aplicando o modelo Color sketch à seguinte imagem de entrada: