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 de MediaPipe Tasks es una implementación básica de un estilizador de rostros para Android. En este ejemplo, se aplica el estilo del rostro a las imágenes que se brindan a la .
Puedes usar la app como punto de partida para tu propia app para Android o hacer referencia a ella. cuando se modifica una app existente. El código de ejemplo de Face Stylizer se aloja en GitHub:
Descarga el código
En las siguientes instrucciones, se muestra cómo crear una copia local del ejemplo con la herramienta de línea de comandos git.
Para descargar el código de ejemplo, haz lo siguiente:
- Clona el repositorio de Git con el siguiente comando:
git clone https://github.com/google-ai-edge/mediapipe-samples
- De forma opcional, configura tu instancia de Git para que use un método de confirmación de la compra disperso
solo los archivos de la app de ejemplo de Face Stylizer:
cd mediapipe git sparse-checkout init --cone git sparse-checkout set examples/face_stylization/android
Después de crear una versión local del código de ejemplo, puedes importar el proyecto en Android Studio y ejecutar la app. Para obtener instrucciones, consulta la Guía de configuración de Android
Componentes clave
Los siguientes archivos contienen el código crucial para este ejemplo de estilización de rostros. aplicación:
- FaceStylizationHelper.kt: Inicializa el estilizador de rostros y controla la selección del modelo y del delegado.
- MainActivity.kt: Proporciona resultados y salidas, y controla cualquier error.
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 Android
Dependencias
La tarea Estilizador de rostros usa la biblioteca com.google.mediapipe:tasks-vision
. Agrega
esta dependencia al archivo build.gradle
de tu app para Android:
dependencies {
implementation 'com.google.mediapipe:tasks-vision:latest.release'
}
Modelo
La tarea MediaPipe Face Stylizer requiere un paquete de modelos entrenados 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 en la descripción general de la tarea.
Selecciona y descarga el modelo, y almacénalo en el directorio de tu proyecto:
<dev-project-root>/src/main/assets
Especifica la ruta del modelo dentro del parámetro ModelAssetPath
.
val modelName = "https://storage.googleapis.com/mediapipe-models/face_stylizer/blaze_face_stylizer/float32/latest/face_stylizer_color_sketch.task"
baseOptionsBuilder.setModelAssetPath(modelName)
Crea la tarea
La tarea MediaPipe Face Stylizer usa la función createFromOptions()
para configurar la
tarea. La función createFromOptions()
acepta valores para la configuración
opciones de estado. Para obtener más información sobre las opciones de configuración, consulta Configuración
de la aplicación.
val baseOptionsBuilder = BaseOptions.builder().setModelAssetPath(modelName)
val baseOptions = baseOptionBuilder.build()
val optionsBuilder =
FaceStylizer.FaceStylizerOptions.builder()
.setBaseOptions(baseOptionsBuilder.build())
val options = optionsBuilder.build()
FaceStylizer =
FaceStylizer.createFromOptions(context, options)
Opciones de configuración
Esta tarea tiene las siguientes opciones de configuración para apps para Android:
Nombre de la opción | Descripción | Rango de valores | Valor predeterminado |
---|---|---|---|
errorListener |
Configura un objeto de escucha de errores opcional. | N/A |
Not set |
Preparar los datos
El Estilizador de rostros funciona con imágenes fijas. La tarea maneja la entrada de datos el procesamiento previo, incluidos el cambio de tamaño, la rotación y la normalización de valores. El siguiente muestra cómo entregar datos para su procesamiento.
import com.google.mediapipe.framework.image.BitmapImageBuilder
import com.google.mediapipe.framework.image.MPImage
// Convert the input Bitmap object to an MPImage object to run inference
val mpImage = BitmapImageBuilder(image).build()
Ejecuta la tarea
Usa el método FaceStylizer.stylize()
en la imagen de entrada para ejecutar el estilizador:
val result = FaceStylizer.stylize(mpImage)
Cómo controlar y mostrar resultados
El Face Stylizer muestra un objeto FaceStylizerResult
, que contiene un
Un objeto MPImage
con una estilización del rostro más destacado dentro de la entrada
imagen.
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: