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.
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:
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 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.
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.
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.
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.
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!