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.
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:
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.
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.
É ó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.
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.
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.
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.