Criar um modelo de Análise de Imagem personalizado (versão prévia)
Importante
Esse recurso agora foi preterido. Em 10 de janeiro de 2025, os recursos de Reconhecimento de Produtos da Visão de IA do Azure e de personalização de modelos serão desativados: após essa data, as chamadas à API para esses serviços falharão.
Para manter a operação fluida de seus modelos, faça a transição para Visão Personalizada da IA do Azure, que agora está em disponibilidade geral. O Visão Personalizada oferece funcionalidades semelhantes a esses recursos que estão sendo desativados.
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.
Observação
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 do cliente.
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 .
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.
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.
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.
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.
Depois de adicionar todos os rótulos de classe, salve-os, selecione iniciar no projeto e, em seguida, selecione Rotular dados na parte superior.
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.
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:
"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.
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
.
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.
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.
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.
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 REST.
- Consulte o guia Conceitos de personalização de modelo para que tenha uma visão geral mais ampla desse recurso e uma lista de perguntas frequentes.
- Chamar a API de Análise de Imagem.