Modelos personalizados com o Kit de ML

Por padrão, as APIs do Kit de ML usam modelos de machine learning treinados pelo Google. Esses modelos são projetados para abranger uma ampla variedade de aplicações. No entanto, alguns casos de uso exigem modelos mais segmentados. É por isso que algumas APIs do Kit de ML agora permitem substituir os modelos padrão por modelos personalizados do TensorFlow Lite.

As APIs Image Labeling e Object Detection & Tracking oferecem suporte a modelos de classificação de imagem personalizados. Eles são compatíveis com diversos modelos pré-treinados de alta qualidade no TensorFlow Hub ou seu próprio modelo personalizado treinado com o TensorFlow, o AutoML Vision Edge ou o TensorFlow Lite Model Maker.

Se você precisar de uma solução personalizada para outros domínios ou casos de uso, acesse a página de machine learning no dispositivo para conferir orientações sobre todas as soluções e ferramentas do Google para esse tipo de machine learning.

Benefícios do uso do Kit de ML com modelos personalizados

Os benefícios de usar um modelo de classificação de imagem personalizado com o Kit de ML são:

  • APIs de alto nível fáceis de usar: não é necessário lidar com entrada/saída de modelos de baixo nível, processar o pré/pós-processamento de imagens ou criar um pipeline de processamento.
  • Não é necessário se preocupar com o mapeamento de rótulos, o Kit de ML extrai os rótulos dos metadados do modelo TFLite e faz o mapeamento para você.
  • Oferece suporte a modelos personalizados de diversas origens, desde modelos pré-treinados publicados no TensorFlow Hub até novos modelos treinados com o TensorFlow, o AutoML Vision Edge ou o TensorFlow Lite Model Maker.
  • Oferece suporte a modelos hospedados com o Firebase. Reduz o tamanho do APK com o download de modelos sob demanda. Envie atualizações do modelo sem republicar o app e faça testes A/B fáceis com a Configuração remota do Firebase.
  • Otimizado para integração com as APIs Camera do Android.

Especificamente para detecção e rastreamento de objetos:

  • Melhore a precisão da classificação localizando os objetos primeiro e só execute o classificador na área da imagem relacionada.
  • Proporcione uma experiência interativa em tempo real fornecendo aos usuários feedback imediato sobre os objetos detectados e classificados.

Usar um modelo de classificação de imagem pré-treinado

É possível usar modelos pré-treinados do TensorFlow Lite, desde que eles atendam a um conjunto de critérios. Por meio do TensorFlow Hub, oferecemos um conjunto de modelos verificados do Google ou de outros criadores de modelos que atendem a esses critérios.

Usar um modelo publicado no TensorFlow Hub

O TensorFlow Hub oferece uma ampla variedade de modelos de classificação de imagens pré-treinados de vários criadores de modelos que podem ser usados com as APIs de rotulagem de imagens e detecção de objetos e rastreamento. Siga estas etapas:

  1. Escolha um modelo na coleção de modelos compatíveis com o Kit de ML.
  2. Faça o download do arquivo .tflite na página de detalhes do modelo. Quando disponível, escolha um formato de modelo com metadados.
  3. Siga os guias da API Image Labeling ou da API Object Detection and Tracking para saber como agrupar o arquivo de modelo com o projeto e usá-lo no app Android ou iOS.

Treine seu próprio modelo de classificação de imagens

Se nenhum modelo de classificação de imagens pré-treinado atender às suas necessidades, há várias maneiras de treinar seu próprio modelo do TensorFlow Lite. Algumas delas estão descritas e discutidas em mais detalhes abaixo.

Opções para treinar seu próprio modelo de classificação de imagens
AutoML Vision Edge
  • Oferecido por meio da IA do Google Cloud
  • Crie modelos de classificação de imagem de última geração
  • Avalie facilmente o desempenho e o tamanho
Criador de modelos do TensorFlow Lite
  • Treinar novamente um modelo (aprendizado por transferência) leva menos tempo e requer menos dados do que treinar um modelo do zero
Converter um modelo do TensorFlow para o TensorFlow Lite
  • Treinar um modelo com o TensorFlow e depois convertê-lo para o TensorFlow Lite

AutoML Vision Edge

Os modelos de classificação de imagens treinados com o AutoML Vision Edge são compatíveis com os modelos personalizados nas APIs Image Labeling e Object Detection and Tracking. Essas APIs também permitem o download de modelos hospedados com a implantação de modelos do Firebase.

Para saber mais sobre como usar um modelo treinado com o AutoML Vision Edge nos seus apps Android e iOS, siga os guias de modelos personalizados para cada API, dependendo do seu caso de uso.

Model Maker do TensorFlow Lite

A biblioteca TFLite Model Maker simplifica o processo de adaptação e conversão de um modelo de rede neural do TensorFlow em dados de entrada específicos ao implantar esse modelo para aplicativos de ML no dispositivo. Siga o Colab para classificação de imagens com o TensorFlow Lite Model Maker.

Para saber mais sobre como usar um modelo treinado com o Model Maker nos seus apps Android e iOS, siga nossos guias para a API Image Labeling ou a API Object Detection and Tracking, dependendo do caso de uso.

Modelos criados usando o conversor do TensorFlow Lite

Se você tiver um modelo de classificação de imagem do TensorFlow, poderá convertê-lo usando o conversor do TensorFlow Lite. Verifique se o modelo criado atende aos requisitos de compatibilidade abaixo.

Para saber mais sobre como usar um modelo do TensorFlow Lite nos seus apps para Android e iOS, siga nossos guias para a API Image Labeling ou a API Object Detection and Tracking, dependendo do caso de uso.

Compatibilidade de modelos do TensorFlow Lite

É possível usar qualquer modelo de classificação de imagem pré-treinado do TensorFlow Lite, desde que ele atenda a estes requisitos:

Tensores

  • O modelo precisa ter apenas um tensor de entrada com as seguintes restrições:
    • Os dados estão no formato de pixel RGB.
    • Os dados são do tipo UINT8 ou FLOAT32. Se o tipo de tensor de entrada for FLOAT32, ele terá que especificar as NormalizationOptions anexando Metadata.
    • O tensor tem quatro dimensões : BxHxWxC, em que:
      • B é o tamanho do lote. Precisa ser 1 (inferência em lotes maiores não é aceita).
      • W e H são a largura e a altura da entrada.
      • C é o número de canais esperados. Precisa ser 3.
  • O modelo precisa ter pelo menos um tensor de saída com N classes e duas ou quatro dimensões:
    • (1xN)
    • (1x1x1xN)
  • Atualmente, apenas os modelos de cabeça única são totalmente compatíveis. Modelos com várias cabeças podem gerar resultados inesperados.

Metadados

É possível adicionar metadados ao arquivo do TensorFlow Lite, conforme explicado em Como adicionar metadados ao modelo do TensorFlow Lite.

Para usar um modelo com o tensor de entrada FLOAT32, especifique as NormalizationOptions nos metadados.

Também recomendamos que você anexe esses metadados ao tensor de saída TensorMetadata:

  • Um mapa de rótulos que especifica o nome de cada classe de saída, como um AssociatedFile com o tipo TENSOR_AXIS_LABELS. Caso contrário, apenas os índices de classe de saída numérica podem ser retornados.
  • Um limite de pontuação padrão abaixo do qual os resultados são considerados de confiança muito baixa para serem retornados, como um ProcessUnit com ScoreThresholdingOptions