Presentamos las soluciones de MediaPipe para el aprendizaje automático integrado en el dispositivo

MAY 11, 2023
Paul Ruiz Senior Developer Relations Engineer
Kris Tonthat Technical Writer

MediaPipe Solutions está disponible hoy en versión preliminar

Esta semana en Google I/O 2023, presentamos MediaPipe Solutions, una nueva colección de herramientas de aprendizaje automático integrado en el dispositivo para simplificar el proceso de desarrollo. Esta colección se compone de MediaPipe Studio, MediaPipe Tasks y MediaPipe Model Maker. Estas herramientas proporcionan soluciones sin código o con poco código para tareas comunes de aprendizaje automático integrado en el dispositivo, como clasificación de audio, segmentación e incrustación de texto, para desarrolladores móviles, web, de escritorio e IoT.

solutions1

Nuevas soluciones

En diciembre de 2022, lanzamos la versión preliminar de MediaPipe con cinco tareas: reconocimiento de gestos, marcador de mano, clasificación de imágenes, detección de objetos y clasificación de texto. Hoy nos complace anunciar que lanzamos nueve tareas adicionales para Google I/O, y muchas más están por venir. Algunas de estas nuevas tareas incluyen las siguientes:

  • Face Landmarker, que detecta puntos de referencia faciales y formas de mezcla para determinar las expresiones faciales humanas, como sonreír, levantar las cejas y parpadear. Además, esta tarea resulta útil a la hora de aplicar efectos a una cara en tres dimensiones que coincidan con las acciones del usuario.

  • Image Segmenter, que te permite dividir las imágenes en regiones en función de categorías predefinidas. Puedes usar esta funcionalidad para identificar humanos u objetos múltiples, y, luego, aplicar efectos visuales como esfumado de fondo.

  • Interactive Segmenter, que toma la región de interés en una imagen, estima los límites de un objeto en esa ubicación y devuelve la segmentación del objeto como datos de imagen.

  • Image Generator, que permite a los desarrolladores aplicar un modelo de difusión dentro de sus aplicaciones para crear contenido visual.

Próximamente

  • Face Stylizer, que te permite tomar una referencia de estilo existente y aplicarla a la cara de un usuario.

solutions2

MediaPipe Studio

Nuestra primera herramienta MediaPipe te permite ver y probar modelos compatibles con MediaPipe en la web, en lugar de tener que crear tus propias aplicaciones de prueba personalizadas. Incluso puedes usar la versión preliminar de MediaPipe Studio ahora mismo para probar las nuevas tareas que mencionamos aquí y todos los extras si visitas la página de MediaPipe Studio.

Además, tenemos planes de expandir MediaPipe Studio para proporcionar una solución de entrenamiento de modelos sin código a fin de que puedas crear nuevos modelos sin sobrecarga.

MediaPipe Tasks

MediaPipe Tasks simplifica la implementación de AA integrado en el dispositivo para desarrolladores móviles, web, de escritorio e IoT con bibliotecas de código bajo. Puedes incluir fácilmente soluciones de aprendizaje automático integradas en el dispositivo, como en los ejemplos anteriores, en tus aplicaciones utilizando unas pocas líneas de código sin tener que aprender todos los detalles de implementación que implican estas soluciones. Actualmente, se incluyen herramientas para tres categorías: visión, audio y texto.

Para darte una mejor idea de cómo usar MediaPipe Tasks, echemos un vistazo a una aplicación para Android que realiza el reconocimiento de gestos.

El siguiente código creará un objeto GestureRecognizer mediante un modelo de aprendizaje automático integrado. Luego, ese objeto se puede usar repetidamente para devolver una lista de resultados de reconocimiento basados en una imagen de entrada:

// PASO 1: Crear un reconocedor de gestos 
val baseOptions = BaseOptions.builder().setModelAssetPath("gesture_recognizer.task") .build()
 
val gestureRecognizerOptions = GestureRecognizerOptions.builder() .setBaseOptions(baseOptions).build() 
 
val gestureRecognizer = GestureRecognizer.createFromOptions( context, gestureRecognizerOptions) 
 
// PASO 2: Preparar la imagen 
val mpImage = BitmapImageBuilder(bitmap).build() 
 
// PASO 3: Ejecutar la inferencia 
val result = gestureRecognizer.recognize(mpImage)

Como puedes ver, con solo unas pocas líneas de código puedes implementar funciones aparentemente complejas en tus aplicaciones. Si se combina con otras funciones de Android, como CameraX, puedes proporcionar a tus usuarios experiencias encantadoras.

Además de la simplicidad, otra de las principales ventajas de usar MediaPipe Tasks es que tu código se verá similar en múltiples plataformas, independientemente de la tarea que uses. De esta manera, podrás desarrollar aún más rápido, ya que puedes volver a usar la misma lógica para cada aplicación.

MediaPipe Model Maker

Si bien es genial poder reconocer y usar gestos en tus aplicaciones, ¿qué pasa si se da la necesidad de reconocer gestos personalizados fuera de los que proporciona el modelo incorporado? Ahí es donde entra en juego MediaPipe Model Maker. Gracias a Model Maker, puedes volver a entrenar el modelo integrado en un conjunto de datos con tan solo unos pocos cientos de ejemplos de nuevos gestos de manos y crear rápidamente un nuevo modelo específico que se adapte a tus necesidades. Por ejemplo, ingresando unas pocas líneas de código puedes personalizar un modelo para jugar a Piedra, Papel o Tijeras.

solutions3
from mediapipe_model_maker import gesture_recognizer 
 
# PASO 1: Cargar el conjunto de datos. 
data = gesture_recognizer.Dataset.from_folder(dirname='images') train_data, validation_data = data.split(0.8) 
 
# PASO 2: Entrenar el modelo personalizado. 
model = gesture_recognizer.GestureRecognizer.create( train_data=train_data, validation_data=validation_data, hparams=gesture_recognizer.HParams(export_dir=export_dir) ) 
 
# PASO 3: Evaluar por medio de datos no vistos. 
metric = model.evaluate(test_data) 
 
# PASO 4: Exportar como conjunto de recursos del modelo. model.export_model(model_name='rock_paper_scissor.task')

Después de volver a entrenar tu modelo, puedes usarlo en tus aplicaciones con MediaPipe Tasks para lograr una experiencia aún más versátil.

Cómo comenzar

Para obtener más información, ve nuestras sesiones de I/O 2023: Aprendizaje automático en el dispositivo fácil de usar con MediaPipe, Potencia apps web con aprendizaje automático y MediaPipe y Novedades del aprendizaje automático, y consulta la documentación oficial en developers.google.com/mediapipe.

Lo que viene

Continuaremos mejorando y proporcionando nuevas funciones para las soluciones de MediaPipe, incluso la nueva herramienta MediaPipe Tasks y el entrenamiento sin código a través de MediaPipe Studio. También puedes mantenerte actualizado si te unes al grupo de anuncios de MediaPipe Solutions, donde enviamos anuncios cuando hay nuevas funciones disponibles.

Esperamos que hagas un montón de cosas interesantes, ¡así que asegúrate de compartirlas con @googledevs y tus comunidades de desarrolladores!