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 gama de aplicativos. No entanto, alguns casos de uso exigem modelos mais direcionados. Por isso, algumas APIs do Kit de ML agora permitem substituir os modelos padrão por modelos personalizados do TensorFlow Lite.
As APIs Rotulagem de imagens e Detecção e rastreamento de objetos oferecem suporte a modelos de classificação de imagens personalizados. Eles são compatíveis com uma seleção de 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 Aprendizado de máquina no dispositivo para ver orientações sobre todas as soluções e ferramentas do Google para machine learning no dispositivo.
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 os seguintes:
- APIs de alto nível fáceis de usar: não é necessário lidar com entrada/saída de modelo de baixo nível, lidar com pré/pós-processamento de imagem ou criar um pipeline de processamento.
- Não é preciso se preocupar com o mapeamento de rótulos, o Kit de ML extrai os rótulos dos metadados de modelo do TFLite e faz o mapeamento para você.
- Oferece suporte a modelos personalizados de várias fontes, desde modelos pré-treinados publicados no TensorFlow Hub até novos modelos treinados com o TensorFlow, AutoML Vision Edge ou TensorFlow Lite Model Maker.
- Compatível com modelos hospedados com o Firebase. Reduz o tamanho do APK fazendo 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. Para isso, localize os objetos primeiro e execute apenas o classificador na área de imagem relacionada.
- Para oferecer uma experiência interativa em tempo real, dê aos usuários feedback imediato sobre os objetos que estão sendo detectados e classificados.
Usar um modelo pré-treinado de classificação de imagens
É possível usar modelos pré-treinados do TensorFlow Lite, desde que atendam a um conjunto de critérios. Com o TensorFlow Hub, oferecemos um conjunto de modelos aprovados, do Google ou de outros criadores, 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 que podem ser usados com as APIs de rotulagem de imagens e detecção e rastreamento de objetos. Siga estas etapas.
- Escolha um modelo na coleção de modelos compatíveis com o Kit de ML.
- Faça o download do arquivo de modelo .tflite na página de detalhes do modelo. Quando disponível, escolha um formato de modelo com metadados.
- Siga os guias da API Image Labeling ou da API Object Detection and Tracking sobre como agrupar o arquivo de modelo com seu projeto e usá-lo no seu aplicativo Android ou iOS.
Treine seu próprio modelo de classificação de imagens
Caso nenhum modelo de classificação de imagem pré-treinado atenda às suas necessidades, há várias maneiras de treinar seu próprio modelo do TensorFlow Lite. Algumas delas são descritas e discutidas em mais detalhes abaixo.
Opções para treinar seu próprio modelo de classificação de imagem | |
---|---|
AutoML Vision Edge |
|
TensorFlow Lite Model Maker |
|
Converter um modelo do TensorFlow em TensorFlow Lite |
|
AutoML Vision Edge
Os modelos de classificação de imagem treinados com o AutoML Vision Edge são compatíveis com os modelos personalizados nas APIs Rotulagem de imagens e API de detecção e rastreamento de objetos. Essas APIs também são compatíveis com o download de modelos hospedados com a implantação de modelo 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 modelo personalizado 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 para 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 seu caso de uso.
Modelos criados com o conversor do TensorFlow Lite
Se você tiver um modelo de classificação de imagem do TensorFlow, será possível 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 apps Android e iOS, siga nossos guias da API Image Labeling ou Object Detection and Tracking, dependendo do seu caso de uso.
Compatibilidade com o modelo do TensorFlow Lite
É possível usar qualquer modelo pré-treinado de classificação de imagens 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 precisará especificar NormalizationOptions anexando Metadata.
- O tensor tem quatro dimensões : BxHxWxC, em que:
- B é o tamanho do lote. Ele precisa ser 1 (não há suporte para inferências em lotes maiores).
- W e H são a largura e altura de entrada.
- C é o número de canais esperados. Precisa ser 3.
- O modelo precisa ter pelo menos um tensor de saída com classes N e duas
ou quatro dimensões:
- (1x n)
- (1x1x1xN)
- No momento, somente modelos com uma cabeça são totalmente compatíveis. Os 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 NormalizationOptions nos metadados.
Também recomendamos que você anexe esses metadados ao tensor de saída TensorMetadata:
- Um mapa de rótulo especificando o nome de cada classe de saída, como um AssociatedFile do tipo TENSOR_AXIS_LABELS. Caso contrário, somente 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 muito baixos para serem retornados, como uma ProcessUnit com ScoreThresholdingOptions