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 .
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ã.
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.
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.
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.
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.
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.
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:
"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.
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.
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.
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 tags comuns de imagens . Escolha seu modelo personalizado no menu suspenso e carregue uma imagem de teste.
Os resultados da previsão aparecem na coluna da direita.
Conteúdos relacionados
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.
- Conceitos de personalização de modelo
- Chamar a API de análise de imagem