Criar um modelo de Análise de Imagem personalizado (versão prévia)

A Análise de Imagem 4.0 permite treinar um modelo personalizado usando suas próprias imagens de treinamento. Ao rotular manualmente suas imagens, você pode treinar um modelo para aplicar tags personalizadas às imagens (classificação de imagem) ou detectar objetos personalizados (detecção de objetos). Os modelos de Análise de Imagem 4.0 são especialmente eficazes na aprendizagem em poucas tentativas, para que você possa obter modelos precisos com menos dados de treinamento.

Este guia mostra como criar e treinar um modelo personalizado de classificação de imagem. As poucas diferenças entre o treinamento de um modelo de classificação de imagem e o modelo de detecção de objetos são observadas.

Pré-requisitos

  • Assinatura do Azure – Criar uma gratuitamente
  • Depois de ter sua assinatura do Azure, crie um recurso da Visão de IA no portal do Azure para obter sua chave e ponto de extremidade. Se você estiver seguindo este guia usando o Vision Studio, deverá criar seu recurso na região Leste dos EUA. Após a implantação, selecione Ir para recurso. Copie a chave e ponto de extremidade para um local temporário para usar mais tarde.
  • Um recurso de Armazenamento do Azure – Criar um
  • Um conjunto de imagens com o qual treinar o seu modelo de classificação. Você pode usar o conjunto de imagens de exemplo no GitHub. Ou então você pode usar suas próprias imagens. Você só precisa de cerca de 3 a 5 imagens por classe.

Observação

Não recomendamos que você use modelos personalizados para ambientes comercialmente críticos devido a uma possível alta latência. Quando os clientes treinam modelos personalizados no Vision Studio, esses modelos personalizados pertencem ao recurso Visão em que foram treinados e o cliente pode fazer chamadas para esses modelos usando a API Analisar Imagem. Quando eles fazem essas chamadas, o modelo personalizado é carregado na memória e a infraestrutura de previsão é inicializada. Enquanto isso acontece, os clientes podem ter latência maior do que a esperada para receber resultados de previsão.

Criar um novo modelo personalizado

Comece acessando o Vision Studio e selecionando a guia Análise de imagem. Em seguida, selecione o bloco Personalizar modelos .

Captura de tela do bloco Personalizar modelos.

Em seguida, entre com sua conta do Azure e selecione o recurso do Visão. Se não tiver uma, você poderá criá-la nessa tela.

Importante

Para treinar um modelo personalizado no Vision Studio, sua assinatura do Azure precisa ser aprovada para que tenha acesso. Solicite acesso usando este formulário.

Captura de tela da tela selecionar recurso.

Preparar imagens de treinamento

Você precisa carregar as suas imagens de treinamento em um contêiner do Armazenamento de Blobs do Azure. Acesse o recurso de armazenamento no portal do Azure e navegue até a guia Navegador de armazenamento. Aqui você pode criar um contêiner de blob e carregar suas imagens. Coloque todos elas na raiz do contêiner.

Adicionar um conjunto de dados

Para treinar um modelo personalizado, você precisa associá-lo a um conjunto de dados onde você fornece imagens e suas informações de rótulo como dados de treinamento. No Vision Studio, selecione a guia Conjuntos de dados para exibir seus conjuntos de dados.

Para criar um novo conjunto de dados, selecione adicionar novo conjunto de dados. Na janela pop-up, insira um nome e selecione um tipo de conjunto de dados para seu caso de uso. Os modelos de classificação de imagem aplicam rótulos de conteúdo a toda a imagem, enquanto modelos de Detecção de objeto aplicam rótulos de objeto a locais específicos na imagem. Modelos de Reconhecimento de produto são uma subcategoria de modelos de detecção de objetos otimizados para detectar produtos de varejo.

Escolha Armazenamento de Blobs

Em seguida, selecione o contêiner na conta de Armazenamento de Blobs do Azure em que você armazenou as imagens de treinamento. Marque a caixa para permitir que o Vision Studio leia e escreva no contêiner de armazenamento de blobs. Essa é uma etapa necessária para importar dados rotulados. Criar o conjunto de dados.

Criar um projeto de rotulagem do Azure Machine Learning

Você precisa de um arquivo COCO para transmitir as informações de rotulagem. Uma maneira fácil de gerar um arquivo COCO é criar um projeto do Azure Machine Learning, que vem com um fluxo de trabalho de rotulagem de dados.

Na página de detalhes do conjunto de dados, selecione Adicionar um novo projeto de Rotulagem de Dados. Nomeie-o e selecione Criar um novo workspace. Isso abre uma nova guia do portal do Azure, na qual você pode criar o projeto Azure Machine Learning.

Escolher o Azure Machine Learning

Depois que o projeto do Azure Machine Learning for criado, retorne à guia Vision Studio e selecione-o em Workspace. O portal do Azure Machine Learning será aberto em uma nova guia do navegador.

Azure Machine Learning: criar rótulos

Para iniciar a rotulagem, siga o prompt Adicionar classes de rótulo para adicioná-las.

Classes de rótulos

Adicionar rótulos de classe

Depois de adicionar todos os rótulos de classe, salve-os, selecione iniciar no projeto e, em seguida, selecione Rotular dados na parte superior.

Iniciar rotulagem

Azure Machine Learning: rotular os dados de treinamento manualmente

Escolha Iniciar rotulagem e siga os prompts para rotular todas as suas imagens. Quando terminar, retorne à guia Vision Studio no navegador.

Agora selecione Adicionar arquivo COCO e, em seguida, selecione Importar arquivo COCO de um projeto de rotulagem de dados do Azure ML. Isso importa os dados rotulados do Azure Machine Learning.

O arquivo COCO que você acabou de criar agora está armazenado no contêiner do Armazenamento do Azure que você vinculou a esse projeto. Agora você pode importá-lo para o fluxo de trabalho de personalização do modelo. Selecione-a na lista suspensa. Depois que o arquivo COCO for importado para o conjunto de dados, o conjunto de dados pode ser usado para treinar um modelo.

Observação

Importar arquivos COCO de outro lugar

Se você tiver um arquivo COCO pronto que deseja importar, vá para a guia Conjuntos de dados e selecione Add COCO files to this dataset. Você pode optar por adicionar um arquivo COCO específico de uma conta de Armazenamento de Blobs ou importar do projeto de rotulagem do Azure Machine Learning.

Atualmente, a Microsoft está resolvendo um problema que faz com que a importação de arquivos COCO falhe com grandes conjuntos de dados quando iniciada no Vision Studio. Para treinar usando um conjunto de dados grande, é recomendável usar a API REST.

Escolher COCO

Sobre arquivos COCO

Os arquivos COCO são arquivos JSON com campos necessários específicos: "images", "annotations" e "categories". Um exemplo de COCO se parecerá ao seguinte:

{
 "images": [
   {
     "id": 1,
     "width": 500,
     "height": 828,
     "file_name": "0.jpg",
     "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/0.jpg"
   },
    {
      "id": 2,
      "width": 754,
      "height": 832,
      "file_name": "1.jpg",
      "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/1.jpg"
    },

   ...

  ],
  "annotations": [
    {
      "id": 1,
      "category_id": 7,
      "image_id": 1,
      "area": 0.407,
      "bbox": [
        0.02663142641129032,
        0.40691584277841153,
        0.9524163571731749,
        0.42766634515266866
      ]
    },
    {
      "id": 2,
      "category_id": 9,
      "image_id": 2,
      "area": 0.27,
      "bbox": [
        0.11803319477782331,
        0.41586723392402375,
        0.7765206955096307,
        0.3483334397217212
      ]
    },
    ...

  ],
  "categories": [
    {
      "id": 1,
      "name": "vegall original mixed vegetables"
    },
    {
      "id": 2,
      "name": "Amy's organic soups lentil vegetable"
    },
    {
      "id": 3,
      "name": "Arrowhead 8oz"
    },

    ...

  ]
}

Referência de campo de arquivo COCO

Se você estiver gerando seu próprio arquivo COCO do zero, verifique se todos os campos necessários estão preenchidos com os detalhes corretos. As tabelas a seguir descrevem cada campo em um arquivo COCO:

"imagens"

Chave Type Descrição Necessário?
id inteiro ID de imagem exclusiva, começando em 1 Sim
width inteiro Largura da imagem em pixels Sim
height inteiro Altura da imagem em pixels Sim
file_name string Um nome exclusivo para a imagem Sim
absolute_url ou coco_url string Caminho da imagem como um URI absoluto para um blob em um contêiner de blob. O recurso Visão deve ter permissão para ler os arquivos de anotação e todos os arquivos de imagem referenciados. Sim

O valor de absolute_url pode ser encontrado nas propriedades do contêiner de blob:

url absoluta

"anotações"

Chave Type Descrição Necessário?
id inteiro ID da anotação Sim
category_id inteiro ID da categoria definida na seção categories Sim
image_id inteiro ID da imagem Sim
area inteiro Valor de "Largura" x "Altura" (terceiro e quarto valores de bbox) No
bbox list[float] Coordenadas relativas da caixa delimitadora (0 a 1), na ordem de "Esquerda", "Superior", "Largura", "Altura" Sim

"categorias"

Chave Type Descrição Necessário?
id inteiro ID exclusiva para cada categoria (classe de rótulo). Eles devem estar presentes na seção annotations. Sim
name string Nome da categoria (classe de rótulo) Yes

Verificação do arquivo COCO

Você pode usar nosso código de exemplo do Python para verificar o formato de um arquivo COCO.

Treinar o modelo personalizado

Para começar a treinar um modelo com o arquivo COCO, acesse a guia Modelos personalizados e selecione Adicionar um novo modelo. Insira um nome para o modelo e selecione Image classification ou Object detection como o tipo de modelo.

Criar um modelo personalizado

Selecione o conjunto de dados, que agora está associado ao arquivo COCO que contém as informações de rotulagem.

Em seguida, selecione um planejamento de tempo e treine o modelo. Para pequenos exemplos, você pode usar um planejamento 1 hour.

Revisar os detalhes do treinamento

Pode levar algum tempo para que o treinamento seja concluído. Os modelos de Análise de Imagem 4.0 podem ser precisos com apenas um pequeno conjunto de dados de treinamento, mas levam mais tempo serem treinados do que os modelos anteriores.

Avaliar o modelo treinado

Depois que o treinamento estiver concluído, você pode exibir a avaliação de desempenho do modelo. As seguintes métricas são usadas:

  • Classificação de imagem: Precisão média, Precisão Top 1, Precisão Top 5
  • Detecção de objeto: Precisão média @ 30, precisão média @ 50, precisão média @ 75

Se um conjunto de avaliação não for fornecido ao treinar o modelo, o desempenho relatado será estimado com base em parte do conjunto de treinamento. É altamente recomendável que você use um conjunto de dados de avaliação (usando o mesmo processo acima) para ter uma estimativa confiável do desempenho do modelo.

Captura de tela da avaliação

Testar o modelo personalizado no Vision Studio

Depois de criar um modelo personalizado, você pode testar selecionando o botão Experimentar na tela de avaliação do modelo.

Captura de tela da tela de avaliação do modelo com o botão Experimentar destacado.

Isso leva você para a página Extrair marcas comuns de imagens. Escolha seu modelo personalizado no menu suspenso e carregue uma imagem de teste.

Captura de tela do modelo de teste de seleção no Vision Studio.

Os resultados da previsão aparecem na coluna à direita.

Próximas etapas

Neste guia, você criou e treinou um modelo personalizado de classificação de imagem usando a Análise de Imagem. Em seguida, saiba mais sobre a API da Análise Imagem 4.0, para que você possa chamar seu modelo personalizado de um aplicativo usando SDKs de biblioteca ou REST.