Rotular imagens usando um modelo do AutoML Vision Edge

Este guia de início rápido aborda os seguintes processos:

  • Como copiar um conjunto de imagens para o Google Cloud Storage.
  • Como criar um CSV listando imagens e os rótulos delas.
  • Como usar o AutoML Vision para criar um conjunto de dados, treinar um modelo personalizado do AutoML Vision Edge (classificação de imagens ou detecção de objetos) e fazer uma previsão.
  • Exportar e implantar o modelo do AutoML Vision Edge para um dos vários tipos de dispositivos de borda, como telefones celulares, dispositivos com processador ARM e a Coral Edge TPU.

Antes de começar

Configurar o projeto

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. Instale a CLI do Google Cloud.
  3. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  4. Crie ou selecione um projeto do Google Cloud.

    • Crie um projeto do Google Cloud:

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o projeto do Google Cloud que você está criando.

    • Selecione o projeto do Google Cloud que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do projeto do Google Cloud.

  5. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  6. Ative as APIs AutoML and Cloud Storage:

    gcloud services enable storage-component.googleapis.com automl.googleapis.com storage-api.googleapis.com
  7. Instale a CLI do Google Cloud.
  8. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  9. Crie ou selecione um projeto do Google Cloud.

    • Crie um projeto do Google Cloud:

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o projeto do Google Cloud que você está criando.

    • Selecione o projeto do Google Cloud que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do projeto do Google Cloud.

  10. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  11. Ative as APIs AutoML and Cloud Storage:

    gcloud services enable storage-component.googleapis.com automl.googleapis.com storage-api.googleapis.com
  12. Defina a variável de ambiente PROJECT_ID como seu ID do projeto.
    export PROJECT_ID=PROJECT_ID
    As chamadas de API AutoML e os nomes dos recursos incluem seu código do projeto. A variável de ambiente PROJECT_ID é uma maneira conveniente de especificar o ID.

Criar um bucket do Cloud Storage

Use o Cloud Shell, uma linha de comando do Linux baseada em navegadores conectados ao seu projeto do console do Google Cloud, para criar seu bucket do Cloud Storage:

  1. Abra o Cloud Shell.

  2. Crie um bucket do Google Cloud Storage. O nome do bucket precisa estar no formato: project-id-vcm. O comando a seguir cria um bucket de armazenamento denominado project-id-vcm na região us-central1. Para ver uma lista completa das regiões disponíveis, consulte a página Locais de buckets.

    gsutil mb -p ${PROJECT_ID} -c regional -l us-central1 gs://${PROJECT_ID}-vcm/

  3. Defina a variável BUCKET.

    export BUCKET=${PROJECT_ID}-vcm

Copiar imagens de amostra para seu bucket

Em seguida, copie o conjunto de dados de flores usado nesta postagem do blog do Tensorflow. As imagens são armazenadas em um bucket público do Cloud Storage para que você possa copiá-las diretamente de lá para seu próprio bucket.

  1. Na sua sessão do Cloud Shell, insira:

    gsutil -m cp -R gs://cloud-samples-data/ai-platform/flowers/ gs://${BUCKET}/img/
    

    A cópia do arquivo leva cerca de 20 minutos para ser concluída.

Criar o arquivo CSV

O conjunto de dados de amostra contém um arquivo CSV com todos os locais de imagem e os rótulos para cada imagem. Você usará isso para criar seu próprio arquivo CSV:

  1. Atualize o arquivo .csv para apontar para os arquivos em seu próprio bucket:

    gsutil cat gs://${BUCKET}/img/flowers/all_data.csv | sed "s:cloud-ml-data/img/flower_photos/:${BUCKET}/img/flowers/:" > all_data.csv
    
  2. Copie o arquivo CSV para seu bucket:

    gsutil cp all_data.csv gs://${BUCKET}/csv/
    

Criar seu conjunto de dados

Acesse a IU do AutoML Vision para iniciar o processo de criação do conjunto de dados e treinar seu modelo.

Quando solicitado, selecione o projeto usado para o bucket do Cloud Storage.

  1. Na página do AutoML Vision, clique em Novo conjunto de dados:

    Novo botão do conjunto de dados no console

  2. Especifique um nome para esse conjunto de dados (opcional), selecione o objetivo do modelo e clique em Criar conjunto de dados para continuar o processo de criação do conjunto de dados.

    Novo campo de nome do conjunto de dados

  3. Na tela Selecionar arquivos para importar, escolha a opção Selecionar um arquivo CSV no Cloud Storage. Especifique o URI do Cloud Storage do seu arquivo CSV. Para este guia de início rápido, o arquivo CSV está em:

    • gs://${PROJECT_ID}-vcm/csv/all_data.csv

    Substitua PROJECT_ID pelo ID do projeto específico.

    Selecionar a janela "Importar arquivo"

  4. Clique em Continuar para iniciar a importação da imagem. O processo de importação leva alguns minutos. Quando estiver concluído, você será direcionado para a próxima página, que contém detalhes sobre todas as imagens identificadas para seu conjunto de dados, tanto imagens rotuladas como não rotuladas.

    Imagens listadas após a conclusão da importação

Treinar o modelo

  1. Depois que o conjunto de dados tiver sido criado e processado, selecione a guia Treinar para iniciar o treinamento do modelo.

    selecionar guia Treinar

  2. Selecione Iniciar treinamento para continuar. Isso abrirá uma janela Treinar novo modelo com opções de treinamento.

  3. Na seção Definir o modelo da nova janela de treinamento de modelo, altere o nome do modelo (opcional) e selecione a opção Edge. Selecione Continuar para ir à seção a seguir.

    Definir a seção do modelo para treinamento

  4. Na seção Otimizar modelo para, aceite a opção Melhor resultado e selecione Continuar.

  5. Na seção Definir um orçamento por hora de uso do nó, aceite o orçamento do nó sugerido (quatro horas de uso do nó).

    Treinar modelo do Edge

  6. Selecione Iniciar treinamento para começar o treinamento do modelo.

    O treinamento é iniciado para seu modelo e deve levar cerca de uma hora. O treinamento pode ser interrompido antes da hora de uso do nó selecionada. O serviço enviará um e-mail para você assim que o treinamento for concluído ou se ocorrer algum erro.

Implantar o modelo

Antes de exportar o modelo, é preciso implantá-lo para uso.

  1. Para implantar o modelo, selecione a guia Testar e usar. Na guia, clique na opção Implantar modelo ao lado do nome do modelo.

  2. Na janela seguinte, especifique um nó em que implantar e selecione Implantar para iniciar o processo de implantação do modelo.

    Escolher horas de uso de nó para implantar

Você receberá uma notificação quando a implantação do modelo for concluída.

Exportar o modelo

A etapa final para usar um modelo do AutoML Vision Edge é exportar (otimizar e fazer o download) e implantar (usar) o modelo.

Há várias maneiras de exportar e implantar seus modelos para uso na previsão em dispositivos Edge.

Neste guia de início rápido, você usará o Tensorflow Lite (TF Lite) como exemplo. Os modelos TF Lite são fáceis de usar e têm um amplo conjunto de casos de uso.

  1. Na seção Usar seu modelo da guia Testar e usar, selecione a opção TF Lite.

    Exportar modelo do TF Lite

  2. Na janela Exportar pacote do TF Lite, especifique um local de bucket do Cloud Storage para exportar um pacote do TF Lite e selecione Exportar. O processo de exportação normal leva vários minutos.

    Janela lateral "Exportar modelo do TF Lite"

No local de destino do Google Cloud Storage, você encontrará uma pasta com carimbo de data e hora e formato de modelo, que conterá os seguintes arquivos:

  • Um arquivo tflite (model.tflite)
  • Um arquivo de dicionário (dict.txt)
  • Um arquivo de metadados (tflite_metadata.json)

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud com esses recursos.

A seguir

Com esses arquivos, é possível seguir tutoriais para implantar em dispositivos Android, dispositivos iOS, no Raspberry Pi 3 (em inglês) ou na Web.

Outras opções de uso do modelo

  • É possível exportar o modelo como um modelo compatível com CoreML (iOS/macOS). Após o treinamento, é possível exportar o modelo selecionando a opção CoreML na guia Testar e usar e seguindo o tutorial do CoreML.
  • É possível exportar o modelo para execução na Coral Edge TPU. Após o treinamento, exporte o modelo selecionando a opção Coral na guia Testar e usar. No entanto, devido à incompatibilidade atual com nosso modelo de detecção de objetos, recomendamos que você exporte apenas modelos de classificação de imagem para a Edge TPU (para treinar um modelo de detecção de objetos para a Edge TPU, siga um destes tutoriais do Google Colab). Depois de exportar o modelo, siga a documentação oficial do Coral sobre como executar uma inferência na Edge TPU.
  • É possível exportar o modelo como SavedModel do TensorFlow e usá-lo com um contêiner do Docker. Após o treinamento, é possível exportar o modelo selecionando a opção Contêiner na guia Testar e usar e seguindo o tutorial de contêineres de borda sobre como exportar a um contêiner.
  • É possível exportar o modelo para uso em um navegador ou no Node.js como um modelo do Tensorflow.js. Após o treinamento, é possível exportar o modelo selecionando a opção Tensorflow.js na guia Testar e usar e seguindo o tutorial do TensorFlow.js para Edge.

Limpeza

É possível excluir seu modelo personalizado ou conjunto de dados se você não precisa mais deles.

Para evitar cobranças desnecessárias do Google Cloud Platform, use o Console do GCP para excluir o projeto se ele não for necessário.

Remover a implantação do modelo

O modelo gera cobranças enquanto está implantado.

  1. Selecione a guia Testar e usar logo abaixo da barra de título.
  2. Selecione Remover implantação no banner abaixo do nome do modelo para abrir a janela relacionada.

    Menu pop-up de remover implantação

  3. Selecione Remover implantação para remover a implantação do modelo.

    Implantação do modelo

  4. Você receberá um e-mail quando a remoção da implantação do modelo for concluída.

Excluir o projeto (opcional)

Para evitar cobranças desnecessárias do Google Cloud Platform, use o console do Google Cloud para excluir o projeto se ele não for mais necessário.