Como formatar um CSV de dados de treinamento

Depois de preparar dados de treinamento suficientemente representativos e enviar essas imagens ao Google Cloud Storage, você está pronto para criar um arquivo CSV com caixas delimitadoras e rótulos para importar imagens em um conjunto de dados.

Nesta página, descreveremos como você formata o arquivo CSV.

Diretrizes de formatação de CSV

Para usar o método importData, o arquivo CSV e as imagens para as quais ele aponta precisam estar em um bucket do Google Cloud Storage.

Além disso, o arquivo CSV também precisa atender aos seguintes requisitos:

  • O arquivo pode ter qualquer nome de arquivo, mas precisa estar no mesmo bucket que seu arquivo de imagem.
  • Ser codificado em UTF-8.
  • Terminar com uma extensão .csv.
  • Ter uma linha para cada caixa delimitadora no conjunto que você está carregando ou uma linha para cada imagem sem caixa delimitadora (como a linha 4 abaixo).
  • Conter uma imagem por linha. Uma imagem com várias caixas delimitadoras deverá ser repetida em uma quantidade de linhas correspondente ao número de caixas.

    Por exemplo, as linhas 1 e 2 fazem referência à mesma imagem, que tem duas anotações (car,0.1,0.1,,,0.3,0.3,, e bike,.7,.6,,,.8,.9,,). A linha 3 refere-se a uma imagem que tem apenas uma anotação (car,0.1,0.1,0.2,0.1,0.2,0.3,0.1,0.3), enquanto a linha 4 refere-se a uma imagem sem anotações.

Quatro linhas de amostra:

 TRAIN,gs://folder/image1.png,car,0.1,0.1,,,0.3,0.3,,
 TRAIN,gs://folder/image1.png,bike,.7,.6,,,.8,.9,,
 UNASSIGNED,gs://folder/im2.png,car,0.1,0.1,0.2,0.1,0.2,0.3,0.1,0.3
 TEST,gs://folder/im3.png,,,,,,,,,

Cada linha tem estas colunas:

  1. A que conjunto atribuir o conteúdo da linha. Este campo é obrigatório e pode ser um destes valores:

    • TRAIN: use a imagem para treinar o modelo. Este conjunto precisa ser o maior, já que essas imagens serão usadas para criar seu modelo.
    • VALIDATION - use a imagem para validar os resultados que o modelo retorna durante o treinamento, também conhecidos como conjuntos de dados “dev”. Essas imagens serão usadas pelo AutoML Vision Object Detection para determinar quando interromper o processo de treinamento do modelo.
    • TEST - use a imagem para quantificar os resultados do modelo após ele ter sido treinado (também conhecidos como dados não incluídos). Essas imagens são usadas para avaliação após a criação de um modelo usando os dois conjuntos anteriores.
    • UNASSIGNED - essas imagens são atribuídas a um dos três conjuntos acima pelo AutoML Vision Object Detection. Use esta tag de configuração se você não tiver preferência quanto ao conjunto em que as imagens serão colocadas.
  2. O conteúdo a ser anotado. Este campo contém o URI do Google Cloud Storage para a imagem. Esses URIs diferenciam maiúsculas de minúsculas.

  3. Um rótulo que identifica como o objeto é categorizado. Os rótulos precisam começar com uma letra e conter apenas letras, números e sublinhado. O AutoML Vision Object Detection também permite usar rótulos com espaços em branco.

    Após a importação de imagens de treinamento, também é possível rotular manualmente na IU ou usar o serviço de Rotulagem humana do Google para rotular imagens de treinamento.

  4. Uma caixa delimitadora de um objeto na imagem. A caixa delimitadora de um objeto pode ser especificada de duas maneiras:

    • com apenas dois vértices (consistindo em um conjunto de coordenadas x,y), se eles forem pontos diagonalmente opostos do retângulo (x_relative_min, y_relative_min,,,x_relative_max,y_relative_max,,);
    • ou com todos os quatro vértices (x_relative_min,y_relative_min,x_relative_max,y_relative_min,x_relative_max,y_relative_max,x_relative_min,y_relative_max).

    Cada vertex é especificado por valores de coordenadas x, y. Essas coordenadas precisam ser um float no intervalo de 0 a 1, em que 0 representa o valor mínimo de x ou y e 1 representa o maior valor de x ou y.

    Por exemplo, (0,0) representa o canto superior esquerdo e (1,1) representa o canto inferior direito. Uma caixa delimitadora da imagem inteira é expressa como (0,0,,,1,1,,) ou (0,0,1,0,1,1,0,1).

    A API AutoML Vision não requer uma ordem de vértice específica. Além disso, se os quatro vértices especificados não formarem um retângulo paralelo às bordas da imagem, a API AutoML Vision calculará e usará vértices que formam esse retângulo.

Exemplo:

  • Não atribuído a um conjunto: UNASSIGNED,gs://my-storage-bucket/img/salad_089.jpg,Baked goods,0.56,0.25,,,0.97,0.50,,
  • Atribuído a um conjunto: TRAIN,gs://my-storage-bucket/img/salad_089.jpg,Baked goods,0.56,0.25,,,0.97,0.50,,

    As linhas acima usam o seguinte formato, já que a API supõe exatamente que os dois pontos são vértices em uma diagonal do retângulo (vértice da parte superior esquerda, vértice da parte inferior direita):

    set,path,label,x_min,y_min,,,x_max,y_max,,

    O formato a seguir também é válido porque transmite as mesmas informações:

    set,path,label,x_min,y_min,x_max,y_min,x_max,y_max,x_min,y_max

    Isso significa que a linha "Atribuída a um conjunto" mostrada acima também pode ser expressa indicando os quatro vértices:

    TRAIN,gs://my-storage-bucket/img/salad_089.jpg,Baked goods,0.56,0.25,0.97,0.25,0.97,0.50,0.56,0.50

opções de coordenadas da imagem

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

Erros comuns com o CSV

  • Uso de caracteres unicode em rótulos. Por exemplo, caracteres japoneses não são compatíveis.
  • Uso de caracteres não alfanuméricos em rótulos.
  • Linhas vazias.
  • 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 de AutoML criada quando você ativou a API precisa ter, no mínimo, acesso de leitura.
  • Referências a arquivos sem imagem (como arquivos PDF ou PSD). Da mesma forma, arquivos que não são imagem (JPEG, PNG, GIF, BMP ou ICO), mas que foram renomeados com uma extensão de imagem, causarão um erro.
  • Arquivos não formatados em CSV.