Criar um projeto personalizado
Para criar um modelo personalizado na Visão de IA do Azure, primeiro é necessário ter um recurso do Serviços de IA do Azure (ou um recurso de Visão de IA do Azure). Depois que o recurso estiver implantado na sua assinatura, você vai precisar montar seu projeto personalizado.
Componentes de um projeto de Visão personalizada
O primeiro componente de um projeto personalizado é o conjunto de dados. Esse conjunto é a sua coleção de imagens para treinar o modelo, junto com o arquivo COCO que define as informações dos rótulos dessas imagens. Seu conjunto de dados fica armazenado em um contêiner de armazenamento de blobs do Azure, e vamos falar mais sobre o arquivo COCO nesta unidade.
Depois de definir suas imagens e rótulos de classe, você poderá treinar seu modelo personalizado. Durante o treinamento, você escolhe o tipo de modelo a treinar, qual conjunto de dados usar e seu orçamento para o treinamento (em quantidade de tempo). Quando o treinamento do modelo terminar, você poderá verificar o desempenho e usar o modelo para fazer previsões.
Na maioria dos casos, você vai seguir estas etapas:
- Criar seu contêiner de armazenamento de blobs e carregar apenas as imagens de treinamento.
- Criar o conjunto de dados para seu projeto e conectá-lo ao contêiner de armazenamento de blobs. Ao criar seu conjunto de dados, você define o tipo de projeto: classificação de imagem, detecção de objetos ou reconhecimento de produto.
- Rotular os dados em seu Projeto de Rotulagem de Dados do Azure Machine Learning, o que gera o arquivo COCO no contêiner de armazenamento de blobs.
- Conectar o arquivo COCO concluído das imagens rotuladas ao seu conjunto de dados.
- Treinar seu modelo personalizado no conjunto de dados e rótulos criados.
- Verificar o desempenho e iterar caso o desempenho treinado não atenda às expectativas.
Uma vez que o desempenho atender às expectativas, o modelo pode ser utilizado no Vision Studio ou em seu próprio aplicativo.
Arquivos COCO
Um arquivo COCO é um arquivo JSON com um formato específico que define:
- imagens: define o local da imagem no armazenamento de blobs, nome, largura, altura e ID.
- anotações: define as classificações (ou objetos), incluindo em qual categoria a imagem está classificada, a área e a caixa delimitadora (se estiver rotulando para detecção de objetos).
- categorias: define a ID da classe de rótulo nomeada.
Normalmente, os arquivos COCO são criados ao rotular suas imagens de treinamento em um Projeto de Rotulagem de Dados do Azure Machine Learning. Se você está migrando de um projeto antigo de Visão Personalizada, pode usar o script de migração para criar seu arquivo COCO.
Um arquivo COCO de exemplo é semelhante a:
{
"images": [
{
"id": 1,
"width": 1024,
"height": 768,
"file_name": "abc.jpg",
"coco_url": "AmlDatastore://fruit/abc.jpg",
"absolute_url": "https://myBlobStorage.blob.core.windows.net/fruit/abc.jpg",
"date_captured": "<date>"
},
{
"id": 2,
"width": 1024,
"height": 768,
"file_name": "xyz.jpg",
"coco_url": "AmlDatastore://fruit/xyz.jpg",
"absolute_url": "https://myBlobStorage.blob.core.windows.net/fruit/xyz.jpg",
"date_captured": "<date>"
},
<...>
],
"annotations": [
{
"id": 1,
"category_id": 1,
"image_id": 1,
"area": 0.0
},
{
"id": 2,
"category_id": 1,
"image_id": 2,
"area": 0.0
},
<...>
],
"categories": [
{
"id": 1,
"name": "apple"
},
{
"id": 2,
"name": "orange"
},
{
"id": 3,
"name": "banana"
}
]
}
Se você estiver rotulando um conjunto de dados de detecção de objetos, cada anotação no arquivo COCO também contém uma matriz de caixa delimitadora com os valores na matriz sendo Esquerda, Topo, Largurae Altura.
"bbox": [
0.11803319477782331,
0.41586723392402375,
0.7765206955096307,
0.3483334397217212
]
Criando seu conjunto de dados
Depois de ter imagens no contêiner de armazenamento de blobs, você poderá criar seu conjunto de dados para treinamento usando a API REST ou usando o Vision Studio. A solicitação REST seria semelhante à chamada REST a seguir:
curl -X PUT https://<endpoint>/computervision/datasets/<dataset-name>?api-version=<version>\
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <subscription-key>" \
--data-ascii "
{
'annotationKind':'imageClassification',
'annotationFileUris':['<URI>']
}"
Se estiver usando o Vision Studio, você navegará até o bloco do modelo personalizado, selecionará seu recurso e criar seu conjunto de dados. A partir daí, você pode abrir ou criar um Projeto de Rotulagem de Dados do Azure Machine Learning ou carregar um arquivo COCO existente. O exercício neste módulo explica como criar seu conjunto de dados dessa forma.
Usar o Vision Studio permite que você se conecte ao projeto de rotulagem no Azure Machine Learning em vez de especificar o arquivo COCO na solicitação REST. Os demais exemplos desta unidade usam o Vision Studio, mas se preferir o método REST, os exemplos estarão disponíveis nas páginas de documentação.