Esta documentação é sobre o AutoML Vision, que é diferente da Vertex AI. Se você estiver usando a Vertex AI, consulte a documentação da Vertex AI.

Como preparar os dados de treinamento

Como preparar suas imagens

  • As imagens precisam usar um tipo de arquivo compatível (veja a lista abaixo).

  • Os modelos do AutoML Vision são otimizados para fotografias de objetos reais.

  • Os dados de treinamento precisam estar o mais próximo possível dos dados que serão previstos. Por exemplo, se o caso de uso envolver imagens borradas e de baixa resolução (como de uma câmera de segurança), seus dados de treinamento precisarão ser compostos por imagens borradas de baixa resolução. Em geral, pense também em fornecer vários ângulos, resoluções e planos de fundo para suas imagens de treinamento.

  • Os modelos do AutoML Vision não podem prever rótulos que seres humanos não são capazes de atribuir. Então, se um humano não puder ser treinado para atribuir rótulos olhando a imagem por 1 ou 2 segundos, o modelo provavelmente não poderá ser treinado para fazer isso também.

  • Recomendamos cerca de 1.000 imagens de treinamento por rótulo. O mínimo por rótulo é 10, ou 50 para modelos avançados. Em geral, são necessários mais exemplos por rótulo para treinar modelos com vários rótulos por imagem, e os resultados são mais difíceis de interpretar.

  • É possível enviar os formatos de arquivo a seguir ao treinar seus modelos. O tamanho máximo do arquivo é de 30 MB.

    • JPEG
    • PNG
    • GIF
    • BMP
    • ICO

    É possível enviar os formatos de arquivo a seguir na solicitação de previsão do seu modelo (consulta). O tamanho máximo do arquivo é de 1,5 MB.

    • JPEG
    • PNG
    • GIF
  • O modelo funciona melhor quando há no máximo 100 vezes mais imagens para o rótulo mais comum do que para o menos comum. Recomendamos remover rótulos de frequência muito baixa.

  • Considere a inclusão de um rótulo None_of_the_above e imagens que não correspondam a nenhum dos rótulos definidos. Por exemplo, para um conjunto de dados de flores, inclua imagens de flores fora das suas variedades rotuladas e rotule-as como None_of_the_above. Isso melhora a precisão do modelo. Observe que, enquanto qualquer nome de rótulo funciona, None_of_the_above é tratado especialmente pelo sistema e sempre aparecerá por último na lista de rótulos na IU.

Conjuntos de dados de treinamento e de avaliação

Os dados em um conjunto são divididos em três ao treinar um modelo: um conjunto de dados de treinamento, um de validação e outro de teste.

Um conjunto de dados de treinamento é usado para criar um modelo. O modelo testa vários algoritmos e parâmetros enquanto procura padrões nos dados de treinamento. À medida que o modelo identifica padrões, ele usa o conjunto de dados de validação para testar os algoritmos e padrões. Aqueles que tiverem melhor desempenho são escolhidos entre os identificados durante o estágio de treinamento.

Depois que os algoritmos e padrões de melhor desempenho forem identificados, eles serão testados quanto à taxa de erros, qualidade e acurácia usando o conjunto de dados de teste.

Tanto um conjunto de dados de validação quanto um de teste são usados para evitar vieses no modelo. Durante o estágio de validação, são usados os parâmetros ideais do modelo, o que pode resultar em métricas tendenciosas. Usar o conjunto de dados de teste para avaliar a qualidade do modelo após o estágio de validação fornece uma avaliação imparcial da qualidade.

Por padrão, o AutoML Vision divide o conjunto de dados aleatoriamente em três conjuntos separados:

  • 80% das imagens são usadas para treinamento.
  • 10% das imagens são usadas para o ajuste de hiperparâmetros e/ou para decidir quando parar o treinamento.
  • 10% das imagens são usadas para avaliar o modelo. Essas imagens não são usadas no treinamento.

Se você quiser especificar o conjunto de dados de cada imagem no arquivo CSV, use um arquivo .csv conforme descrito na próxima seção.

Criar um arquivo CSV com rótulos e URIs de imagem

Depois que seus arquivos forem enviados a um bucket do Cloud Storage com o formato necessário (gs://bucket-name-vcm), crie um arquivo CSV que liste todos os dados de treinamento e os rótulos de categoria desses dados. O arquivo CSV pode ter qualquer nome de arquivo, precisa estar no mesmo bucket dos arquivos de imagem, estar codificado em UTF-8 e terminar com uma extensão .csv. O arquivo tem uma linha para cada imagem no conjunto que você está enviando, com essas colunas em cada linha:

  1. A que conjunto atribuir o conteúdo da linha. Esse campo é opcional e pode ter um destes valores:

    • TRAIN: use o image para treinar o modelo.
    • VALIDATION: use o image para validar os resultados que o modelo retorna durante o treinamento.
    • TEST: use o image para verificar os resultados do modelo após ele ter sido treinado.

    Se você não especificar um conjunto para a imagem em uma linha, o AutoML Vision automaticamente o colocará em um dos três conjuntos para garantir que exista conteúdo suficiente para treinamento, validação e teste. O AutoML Vision usa 80% dos documentos de conteúdo para treinamento, 10% para validação e 10% para testes. O tamanho máximo de um conjunto de dados de teste é de 50.000 imagens, mesmo que 10% do conjunto de dados total exceda esse máximo.

  2. O conteúdo a ser categorizado. Este campo contém o URI do Google Cloud Storage para a imagem. Os URIs do Google Cloud Storage diferenciam maiúsculas de minúsculas.

  3. Uma lista separada por vírgulas de rótulos que identificam como a imagem é categorizada. Os rótulos precisam começar com uma letra e conter apenas letras, números e sublinhado. É possível incluir até 20 rótulos para cada imagem. Também é possível deixar os rótulos em branco para rotulagem manual por meio da IU ou do serviço de rotulagem humana.

Por exemplo:

  • Com rótulo: gs://my-storage-bucket-vcm/flowers/images/img100.jpg,daisy
  • Não classificado: gs://my-storage-bucket-vcm/flowers/images/img403.jpg
  • Vários rótulos: gs://my-storage-bucket-vcm/flowers/images/img384.jpg,dandelion,tulip,rose
  • Atribuído a um conjunto: TEST,gs://my-storage-bucket-vcm/flowers/images/img805.jpg,daisy

Salve o conteúdo como um arquivo CSV no bucket do Cloud Storage.

Como gerar um arquivo CSV para imagens sem rótulos armazenadas no Cloud Storage

Se você já tiver imagens sem rótulos enviadas para o Cloud Storage e quiser gerar um CSV apontando para elas, execute este código no Cloud Shell:

for f in $(gsutil ls gs://YOUR_BUCKET/YOUR_IMAGES_FOLDER/);
do echo UNASSIGNED,$f;
done >> labels.csv;

Em seguida, copie o arquivo CSV gerado para um bucket do Google Storage:

gsutil cp labels.csv gs://YOUR_BUCKET/labels.csv

Erros comuns com o CSV

  • Uso de caracteres unicode em rótulos. Por exemplo, caracteres japoneses não são compatíveis.
  • Uso de espaços e caracteres não alfanuméricos em rótulos.
  • Linhas vazias.
  • Colunas vazias (linhas com duas vírgulas sucessivas).
  • Capitalização incorreta dos caminhos da imagem do Cloud Storage.
  • Controle de acesso incorreto configurado para seus arquivos de imagem. Sua conta de serviço precisa ter acesso de leitura ou maior ou os arquivos precisam ser legíveis publicamente.
  • Referências a arquivos sem imagem (como arquivos PDF ou PSD). Da mesma forma, arquivos que não são arquivos de imagem, mas que foram renomeados com uma extensão de imagem, causarão um erro.
  • URI de pontos de imagem para um bucket diferente do projeto atual. Apenas imagens no bucket do projeto podem ser acessadas.
  • Arquivos não formatados em CSV.