La tarea Estilizador de rostros de MediaPipe te permite aplicar estilizaciones de rostros a los rostros de una imagen. Puedes usar esta tarea para crear avatares virtuales con varios estilos.
La muestra de código descrita en estas instrucciones está disponible en GitHub. Para obtener más información sobre las capacidades, los modelos y las opciones de configuración para completar esta tarea, consulta la Descripción general.
Ejemplo de código
El código de ejemplo para el estilizador de rostros brinda una implementación completa de esto. en Python para tu referencia. Este código te ayuda a probar esta tarea y obtener empezaste a crear tu propio estilizador de rostros. Puedes ver, ejecutar y editar la Código de ejemplo de Face Stylizer usando solo el navegador web.
Configuración
En esta sección, se describen los pasos clave para configurar tu entorno de desarrollo y proyectos de código diseñados específicamente para usar el Estilizador de rostros. Para obtener información general configurar tu entorno de desarrollo para usar tareas de MediaPipe, como requisitos de la versión de la plataforma, consulta la Guía de configuración de Python
Paquetes
La tarea MediaPipe Face Stylizer requiere el paquete mediapipe PyPI. Puedes instalar y importa estas dependencias con lo siguiente:
$ python -m pip install mediapipe
Importaciones
Importa las siguientes clases para acceder a las funciones de tarea del Estilizador de rostros:
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision
Modelo
La tarea MediaPipe Face Stylizer requiere un modelo entrenado que sea compatible con esta tarea. Para obtener más información sobre los modelos entrenados disponibles para el Estilizador de rostros, consulta la sección Modelos de la descripción general de la tarea.
Selecciona y descarga el modelo y, luego, guárdalo en un directorio local:
model_path = '/absolute/path/to/face_stylizer.task'
Usa el parámetro model_asset_path
del objeto BaseOptions
para especificar la ruta de acceso del
que use el modelo. Para ver un ejemplo de código, consulta la siguiente sección.
Crea la tarea
La tarea MediaPipe Face Stylizer usa la función create_from_options
para configurar la
tarea. La función create_from_options
acepta valores para la configuración
que manejar.
En el siguiente código, se muestra cómo compilar y configurar esta tarea.
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 los datos
Prepara tu entrada como un archivo de imagen o un array de NumPy y, luego, conviértelo en un
mediapipe.Image
. Si la entrada es un archivo de video o una transmisión en vivo de un
cámara web, puedes usar una biblioteca externa como
OpenCV para cargar tus marcos de entrada como NumPy
de Terraform.
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)
Ejecuta la tarea
El estilizador de rostros usa la función stylize
para activar las inferencias. Para la cara
implica el preprocesamiento de los datos de entrada y el estilización de los rostros en
imagen.
En el siguiente código, se muestra cómo ejecutar el procesamiento con la tarea un modelo de responsabilidad compartida.
# 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)
Cómo controlar y mostrar resultados
El estilizador de rostros muestra un objeto Image
con una estilización de lo más
prominente dentro de la imagen de entrada.
A continuación, se muestra un ejemplo de los datos de salida de esta tarea:
El resultado anterior se creó con la aplicación del Boceto de color modelo a la siguiente imagen de entrada: