Como preparar os dados de treinamento

Como preparar suas imagens

Requisitos gerais de imagem
Tipos de arquivos compatíveis
  • JPEG
  • PNG
  • GIF
  • BMP
  • ICO
Tipos de imagens

Os modelos de AutoML Vision Object Detection são otimizados para fotografias de objetos reais.

Tamanho do arquivo de imagem de treinamento (MB) Tamanho máximo de 30 MB.
Tamanho do arquivo de imagem de previsão* (MB) Tamanho máximo de 1,5 MB.
Tamanho da imagem (pixels)

Máximo sugerido de 1024 x 1024 pixels.

No caso de imagens muito maiores que 1024 x 1024 pixels, a qualidade pode ser perdida durante o processo de normalização de imagens do AutoML Vision Object Detection.

Rótulos e requisitos da caixa delimitadora
Rotular instâncias para treinamento

No mínimo 10 anotações (instâncias).

Requisitos de anotação

Para cada rótulo, é preciso ter pelo menos 10 imagens, cada uma com pelo menos uma anotação (caixa delimitadora e rótulo).

No entanto, para fins de treinamento de modelo, o ideal é usar cerca de 1.000 anotações por rótulo. Em geral, quanto mais imagens por rótulo você tiver, melhor será o desempenho do seu modelo.

Proporção de rótulos (do rótulo mais comum para o menos comum):

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.

Para melhorar o desempenho do modelo, recomendamos a remoção de rótulos com frequência muito baixa.

Comprimento da borda da caixa delimitadora Pelo menos 0,01 * comprimento de um lado de uma imagem. Por exemplo, uma imagem de 1.000 * 900 pixels exigiria caixas delimitadoras de pelo menos 10 * 9 pixels.
Tamanho da caixa delimitadora (pixels) Mínimo de 8 x 8 pixels.
Caixas delimitadoras por imagem distinta No máximo 500.
Caixas delimitadoras retornadas de uma solicitação de previsão

100 (padrão), no máximo 500.

É possível especificar esse valor como parte da solicitação predict no campo params.max_bounding_box_count.

Dados de treinamento e requisitos do conjunto de dados
Características da imagem de treinamento

Os dados de treinamento precisam estar os mais próximos possíveis dos dados que serão usados nas previsões.

Por exemplo, se o caso de uso envolver imagens borradas de baixa resolução, como de uma câmera de segurança, seus dados de treinamento precisarão ser compostos de 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 Object Detection geralmente não podem prever rótulos que as pessoas não podem atribuir. Então, se um humano não puder ser treinado para atribuir rótulos olhando a imagem por um ou dois segundos, o modelo provavelmente não poderá ser treinado para fazer isso também.

Imagens em cada conjunto de dados No máximo 150.000
Caixas delimitadoras totais anotadas em cada conjunto de dados No máximo 1.000.000
Número de rótulos em cada conjunto de dados No mínimo 1, no máximo 1.000

Guia de práticas recomendadas

Que tipo de dados de imagem pode ser usado?

  • Formatos de arquivo de imagem compatíveis: JPEG, PNG, GIF, BMP ou ICO.
  • Os dados de treinamento precisam estar os mais próximos possíveis dos dados que serão usados nas previsões. Por exemplo, se o caso de uso envolver imagens de baixa resolução, como de câmeras de celulares, seus dados de treinamento precisarão ser compostos de imagens 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. Outro exemplo é que, se você quer detectar regiões em imagens de alta resolução, não treine o modelo com imagens cortadas.

Quais são as condições mínimas nos dados?

  • Os rótulos que você usa precisam ser strings válidas (sem vírgulas). A vírgula é um problema somente na importação baseada em CSV. Uma forma de resolver esse problema é: "file_comma,path","label,comma",0,0,,,1,1,,.
  • As caixas delimitadoras precisam ser maiores que 8 por 8 pixels em todos os casos. As caixas delimitadoras menores que isso são filtradas.
  • As imagens podem exceder 1024 x 1024 pixels, mas serão reduzidas automaticamente, levando a uma possível perda na qualidade da imagem. Por esse motivo, recomendamos um tamanho máximo de imagem de 1024 x 1024 pixels. As imagens com dimensões menores não serão aumentadas.
  • Todas as caixas delimitadoras devem estar dentro de imagens.
  • As caixas delimitadoras devem ser rotuladas de forma completa: se houver dois carros em uma imagem, todos eles devem ser rotulados.

Qual é o tamanho do conjunto de dados necessário?

  • Quanto mais, melhor. Isso é quase sempre verdade. No entanto, uma exceção seria se a adição de mais amostras resultasse em desequilíbrio ou vazamento (veja abaixo).
  • A quantidade de dados necessária para treinar um bom modelo depende de vários fatores:
    • A quantidade de classes. Quanto mais classes únicas você tiver, mais amostras por classe serão necessárias.
    • Complexidade/diversidade de classes. É semelhante com humanos: uma pessoa pode aprender rapidamente a distinguir entre cerveja e vinho, com apenas algumas amostras. Ela terá que provar vinhos diferentes com mais frequência para distinguir entre cinco e seis tipos diferentes de vinho tinto. Para várias pessoas, será um desafio aprender a distinguir entre 50 sabores diferentes de vinhos tintos. É necessário ter muita prática. Da mesma forma, as redes neurais seriam rapidamente capazes de diferenciar entre elefantes e gatos, mas precisariam de muito mais amostras para classificar 30 animais diferentes.
  • Como regra geral, recomendamos ter pelo menos 100 exemplos de treinamento por classe se você tiver poucas classes distintas, e mais de 200 amostras de treinamento se as classes tiverem mais nuances e você tiver mais de 50 classes diferentes.

Conjuntos de dados de treinamento e de avaliação

Ao treinar modelos de machine learning, você normalmente divide o conjunto de dados em três conjuntos de dados separados:

  1. Um conjunto de dados de treinamento
  2. Um conjunto de dados de validação
  3. Um conjunto de dados de teste

O conjunto de dados de treinamento é usado para criar um modelo. O modelo que está sendo treinado testa vários hiperparâmetros enquanto pesquisa padrões nos dados de treinamento. Durante o processo de identificação de padrões, o AutoML Vision Object Detection usa o conjunto de dados de validação para testar os hiperparâmetros do modelo. O AutoML Vision Object Detection escolhe os algoritmos e padrões de melhor desempenho de todas as opções identificadas 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. Os clientes precisam ter um conjunto de dados de teste separado que possa ser usado para testar o modelo de forma independente. Esse conjunto de dados de teste é especificado pelo usuário no conjunto de treinamento ou escolhido automaticamente no momento do treinamento.

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, os parâmetros de modelo ideais são usados. Usar esses parâmetros de modelo ideais 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 ao processo de treinamento uma avaliação imparcial da qualidade do modelo.

Se você escolher manualmente as amostras de conjuntos de dados, será preciso estruturar os conjuntos de dados de um modo que represente a mesma população. Da mesma forma, você precisa criar divisões de conjunto de dados com imagens semelhantes, todas com uma distribuição semelhante de rótulos.

Divisões manuais e automáticas de conjuntos de dados

É possível especificar manualmente a divisão de treinamento, validação e teste ao importar conjuntos de dados em um arquivo CSV.

Se você não especificá-lo, o AutoML Vision Object Detection dividirá os dados aleatoriamente. As divisões são criadas da seguinte maneira:

  • 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.

Problemas comuns

  • Dados desequilibrados: em muitos casos, o número de amostras por classe (rótulo) não é igual. Pequenos desequilíbrios não costumam criar problemas, mas grandes discrepâncias entre as classes podem causar um problema. Quando há um desequilíbrio maior, por exemplo, algumas classes são representadas mais de 10 vezes que outras, isso se torna problemático para a criação de modelos. Embora existam abordagens para combater desequilíbrios de classe, essa não é uma configuração ideal para o treinamento de modelos. Sempre que possível, tente evitar o treinamento de modelos com dados altamente desequilibrados.

    Como regra geral, mantenha a proporção entre as classes mais comuns e as menos comuns abaixo de 2 para 1.

  • Divisões incorretas: quando você fornece dados de treinamento, o AutoML Vision Object Detection pode dividi-los automaticamente em conjuntos de dados de treinamento, validação e teste. É possível atribuir os rótulos de divisão de treinamento você mesmo.

    Não há garantia de que você verá a mesma divisão se importar os mesmos dados várias vezes.

    Os dados de treinamento, validação e teste não devem ter forte correlação. Por exemplo, um caso ruim comum é quando as imagens são de vídeos, o que faz com que muitas imagens sejam muito parecidas umas com as outras. Se você permitir que o sistema divida aleatoriamente o conjunto de dados, será muito provável que você receba imagens muito semelhantes nos dados de treinamento e validação/teste. Isso resultará em uma alta precisão conseguida incorretamente nos dados de teste.

  • Vazamento de dados: o vazamento de dados é um problema significativo que pode enviesar os modelos. O vazamento de dados acontece quando o algoritmo consegue usar informações que não deveria durante o treinamento do modelo, e isso não estará disponível em previsões futuras. Isso gera resultados excessivamente otimistas em conjuntos de dados de treinamento, validação e potencialmente de teste. No entanto, esse desempenho pode não ser tão bom em alguns dados futuros não vistos. Isso costuma acontecer de forma não intencional e requer cuidados especiais durante a preparação dos dados.

    Exemplos de vazamentos: pontos positivos e negativos de diferentes fontes de imagem ou ângulos de visualização.