Criar um modelo de Análise de Imagem personalizado

Importante

Este recurso foi preterido. Em 10 de janeiro de 2025, a Classificação de Imagem Personalizada do Azure AI 4.0, a Deteção de Objetos Personalizados e a API de visualização de Reconhecimento de Produto serão desativadas. Após essa data, as chamadas de API para esses serviços falharão.

Para manter um bom funcionamento dos seus modelos, faça a transição para a Visão Personalizada da IA do Azure, que agora está disponível ao público em geral. O Custom Vision oferece funcionalidade semelhante a esses recursos de desativação.

O Image Analysis 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 imagens) ou detetar objetos personalizados (deteção de objetos). Os modelos de Análise de Imagem 4.0 são especialmente eficazes na aprendizagem de poucas imagens , para que possa obter modelos precisos com menos dados de treino.

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

Nota

A personalização do modelo está disponível por meio da API REST e do Vision Studio, mas não por meio dos SDKs de linguagem cliente.

Pré-requisitos

  • Uma subscrição do Azure. Você pode criar um gratuitamente.
  • Depois de ter sua assinatura do Azure, crie um recurso Visão 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. Depois de implantar, selecione Ir para recurso. Copie a chave e o ponto de extremidade para um local temporário para uso posterior.
  • Um recurso de Armazenamento do Azure. Crie um recurso de armazenamento.
  • Um conjunto de imagens com as quais treinar seu modelo de classificação. Você pode usar o conjunto de imagens de exemplo no GitHub. Ou, você pode usar suas próprias imagens. Você só precisa de cerca de 3-5 imagens por aula.

Nota

Não recomendamos o uso de modelos personalizados para ambientes críticos para os negócios devido à potencial alta latência. Quando os clientes treinam modelos personalizados no Vision Studio, esses modelos personalizados pertencem ao recurso Vision no qual foram treinados e o cliente pode fazer chamadas para esses modelos usando a API Analyze Image . 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 experimentar latência maior do que o esperado para receber resultados de previsão.

Criar um novo modelo personalizado

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

Captura de ecrã do mosaico Personalizar modelos.

Em seguida, entre com sua conta do Azure e selecione seu recurso Visão. Se não tiver um, pode criar um a partir deste ecrã.

Captura de ecrã do ecrã de seleção de recursos.

Preparar imagens de treinamento

Você precisa carregar suas imagens de treinamento em um contêiner de Armazenamento de Blob do Azure. Vá para seu 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 fazer upload de suas imagens. Coloque todos na raiz do recipiente.

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 à imagem inteira, enquanto os modelos de deteção de objeto aplicam rótulos de objeto a locais específicos na imagem. Os modelos de reconhecimento de produtos são uma subcategoria de modelos de deteção de objetos otimizados para detetar produtos de varejo.

Captura de tela da caixa de diálogo para Criar novo conjunto de dados.

Em seguida, selecione o contêiner na conta de Armazenamento de Blob do Azure onde você armazenou as imagens de treinamento. Marque a caixa para permitir que o Vision Studio leia e grave no contêiner de armazenamento de blobs. Esta é uma etapa necessária para importar dados rotulados. Crie 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 espaço de trabalho. Isso abre uma nova guia do portal do Azure onde você pode criar o projeto do Azure Machine Learning.

Captura de ecrã do projeto Criar Etiquetagem de Dados do Azure Machine Learning.

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

Criar etiquetas

Para começar a rotular, siga o prompt Adicionar classes de rótulo para adicionar classes de rótulo.

Captura de ecrã a mostrar o botão Adicionar classes de etiqueta.

Captura de ecrã a mostrar o botão Adicionar categorias de etiquetas.

Depois de adicionar todos os rótulos de classe, salve-os, selecione Iniciar no projeto e, em seguida, selecione Dados do rótulo na parte superior.

Captura de tela mostrando o botão para Iniciar a rotular dados.

Rotular manualmente os dados de treinamento

Escolha Iniciar rotulagem e siga as instruções para rotular todas as suas imagens. Quando terminar, volte para a 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 Aprendizado de Máquina do Azure.

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

Nota

Se você tiver um arquivo COCO pronto que deseja importar, vá para a guia Conjuntos de dados e selecione Adicionar arquivos COCO a este conjunto de dados. Você pode optar por adicionar um arquivo COCO específico de uma conta de armazenamento de blob 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.

Captura de ecrã da caixa de diálogo Importar ficheiro COCO.

Sobre os arquivos COCO

Os arquivos COCO são arquivos JSON com campos obrigatórios específicos: "images", "annotations"e "categories". Um arquivo COCO de exemplo terá esta aparência:

{
 "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 do arquivo COCO

Se você estiver gerando seu próprio arquivo COCO do zero, certifique-se de que todos os campos obrigatórios estejam preenchidos com os detalhes corretos. As tabelas a seguir descrevem cada campo em um arquivo COCO:

"imagens"

Chave Tipo Description Necessária?
id integer ID de imagem único, a partir de 1 Sim
width integer Largura da imagem em pixels Sim
height integer 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 para absolute_url pode ser encontrado nas propriedades do seu contêiner de blob:

url absoluto

"anotações"

Chave Tipo Description Necessária?
id integer ID da anotação Sim
category_id integer ID da categoria definida na categories secção Sim
image_id integer ID da imagem Sim
area integer Valor de 'Largura' x 'Altura' (terceiro e quarto valores de bbox) Não
bbox lista[float] Coordenadas relativas da caixa delimitadora (0 a 1), na ordem de 'Esquerda', 'Topo', 'Largura', 'Altura' Sim

"categorias"

Chave Tipo Description Necessária?
id integer ID exclusivo para cada categoria (classe de rótulo). Estes devem estar presentes na annotations secção. Sim
name string Nome da categoria (classe do rótulo) Sim

Verificação de arquivos COCO

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

Treinar o modelo personalizado

Para começar a treinar um modelo com seu arquivo COCO, vá para 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.

Captura de ecrã da caixa de diálogo para Treinar um novo modelo.

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

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

Captura de ecrã a mostrar os detalhes da formação a rever.

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 para treinar do que os modelos anteriores.

Avaliar o modelo treinado

Após a conclusão do treinamento, você pode visualizar a avaliação de desempenho do modelo. As seguintes métricas são usadas:

  • Classificação da imagem: Precisão Média, Precisão Top 1, Precisão Top 5
  • Deteção de objetos: 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 durante o treinamento do 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 seu modelo.

Captura de ecrã a mostrar os resultados 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 ecrã do ecrã de avaliação do modelo com o botão Experimentar delineado.

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

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

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

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