Apresentação do MediaPipe Solutions para aprendizado de máquina no dispositivo

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

O MediaPipe Solutions está disponível em versão de pré-lançamento hoje

Esta semana, no Google I/O 2023, apresentamos o MediaPipe Solutions, uma nova coleção de ferramentas de aprendizado de máquina a fim de simplificar o processo para os desenvolvedores. Essas soluções são: MediaPipe Studio, MediaPipe Tasks e MediaPipe Model Maker. As ferramentas oferecem soluções com pouco ou nenhum código para tarefas comuns de aprendizado de máquina no dispositivo, como classificação de áudio, segmentação e incorporação de texto, para desenvolvedores de dispositivos móveis, Web, computadores e IoT.

solutions1

Novas soluções

Em dezembro de 2022, lançamos a prévia do MediaPipe com cinco tarefas: reconhecimento de gestos, ponto de referência de mão, classificação de imagens, detecção de objetos e classificação de texto. Hoje, temos o prazer de anunciar que lançamos mais nove tarefas para o Google I/O, e muitas outras estão por vir. Confira algumas dessas novas tarefas:

  • Ponto de referência facial, que detecta pontos de referência faciais e blendshapes para determinar expressões faciais humanas, como sorriso, sobrancelhas levantadas e piscadas. Além disso, essa tarefa é útil para aplicar efeitos a um rosto em três dimensões que correspondam às ações do usuário.

  • Segmentador de imagens, que permite dividir imagens em regiões com base em categorias predefinidas. Você pode usar essa funcionalidade para identificar pessoas ou vários objetos e, em seguida, aplicar efeitos visuais, como desfoque de fundo.

  • Segmentador interativo, que usa a região de interesse em uma imagem, estima os limites de um objeto naquele local e retorna a segmentação para o objeto como dados de imagem.

  • Gerador de imagens, que permite aos desenvolvedores aplicar um modelo de difusão em seus aplicativos para criar conteúdo visual.

Em breve

  • Estilizador facial, que permite usar uma referência de estilo existente e aplicar ao rosto de um usuário.

solutions2

MediaPipe Studio

Nossa primeira ferramenta MediaPipe permite visualizar e testar modelos compatíveis com MediaPipe na Web, em vez de ter que criar seus próprios apps de teste personalizados. Você pode até usar o MediaPipe Studio em versão de pré-lançamento agora mesmo para experimentar as novas tarefas mencionadas aqui, além de todos os extras, acessando a página do MediaPipe Studio.

Além disso, temos planos de expandir o MediaPipe Studio para oferecer uma solução de treinamento de modelos sem código, para que você possa criar novos modelos sem muita sobrecarga.

MediaPipe Tasks

O MediaPipe Tasks simplifica a implantação de ML no dispositivo para desenvolvedores de dispositivos móveis, Web, IoT e computadores usando bibliotecas com pouco código. Você pode integrar facilmente soluções de aprendizado de máquina no dispositivo, como os exemplos acima, em seus apps em algumas linhas de código, sem ter que conhecer todos os detalhes de implementação por trás dessas soluções. Atualmente, há ferramentas para três categorias: visão, áudio e texto.

Para ter uma ideia melhor de como usar o MediaPipe Tasks, vamos dar uma olhada em um app Android que realiza o reconhecimento de gestos.

O código a seguir criará um objeto GestureRecognizer usando um modelo de aprendizado de máquina integrado e, em seguida, esse objeto pode ser usado repetidamente para retornar uma lista de resultados de reconhecimento com base em uma imagem de entrada:

// ETAPA 1: criar um reconhecedor de gestos 
val baseOptions = BaseOptions.builder().setModelAssetPath("gesture_recognizer.task") .build()
 
val gestureRecognizerOptions = GestureRecognizerOptions.builder() .setBaseOptions(baseOptions).build() 
 
val gestureRecognizer = GestureRecognizer.createFromOptions( context, gestureRecognizerOptions) 
 
// ETAPA 2: preparar a imagem 
val mpImage = BitmapImageBuilder(bitmap).build() 
 
// ETAPA 3: executar inferência 
val result = gestureRecognizer.recognize(mpImage)

Com apenas algumas linhas de código, você pode implementar recursos aparentemente complexos em seus apps. Combinado com outros recursos do Android, como o CameraX, isso permite oferecer experiências incríveis para os usuários.

Além da simplicidade, uma outra grande vantagem de usar o MediaPipe Tasks é que seu código será semelhante em várias plataformas, independentemente da tarefa que estiver usando. Isso ajudará você a desenvolver ainda mais rápido, uma vez que poderá reutilizar a mesma lógica para cada app.

MediaPipe Model Maker

É ótimo poder reconhecer e usar gestos em seus apps. Mas e se você tiver uma situação em que precise reconhecer gestos personalizados que não são oferecidos pelo modelo integrado? Para isso, temos o MediaPipe Model Maker. Com ele, é possível treinar novamente o modelo integrado em um conjunto de dados com apenas algumas centenas de exemplos de novos gestos manuais e criar rapidamente um novo modelo específico para suas necessidades. Por exemplo, com apenas algumas linhas de código, você pode personalizar um modelo para jogar pedra, papel e tesoura.

solutions3
from mediapipe_model_maker import gesture_recognizer 
 
# ETAPA 1: carregar o conjunto de dados. 
data = gesture_recognizer.Dataset.from_folder(dirname='images') train_data, validation_data = data.split(0.8) 
 
# ETAPA 2: treinar o modelo personalizado. 
model = gesture_recognizer.GestureRecognizer.create( train_data=train_data, validation_data=validation_data, hparams=gesture_recognizer.HParams(export_dir=export_dir) ) 
 
# ETAPA 3: avaliar usando dados não vistos. 
metric = model.evaluate(test_data) 
 
# ETAPA 4: exportar como um pacote de ativos do modelo. model.export_model(model_name='rock_paper_scissor.task')

Depois de treinar novamente seu modelo, é possível usá-lo em seus apps com o MediaPipe Tasks para uma experiência ainda mais versátil.

Primeiros passos

Para saber mais, assista nossas sessões do I/O 2023: ML fácil no dispositivo com o MediaPipe, Turbinar seu app da Web com aprendizado de máquina e MediaPipe e Novidades do aprendizado de máquina. Confira também a documentação oficial em developers.google.com/mediapipe.

O que vem a seguir?

Continuaremos a melhorar e oferecer novos recursos para MediaPipe Solutions, incluindo novidades no MediaPipe Tasks e treinamento sem código por meio do MediaPipe Studio. Para acompanhar o que há de novo, entre no grupo de anúncios do MediaPipe Solutions e receba informações quando novos recursos forem disponibilizados.

Estamos ansiosos para conhecer todas as suas criações incríveis, por isso não deixe de compartilhar com @googledevs e com as comunidades de desenvolvedores.