Criar um projeto personalizado

Concluído

Para criar um modelo personalizado do Azure AI Vision, primeiro precisa de um recurso dos Serviços de IA do Azure (ou de um recurso do Azure AI Vision). Depois que esse recurso for implantado em sua assinatura, você precisará criar um projeto personalizado.

Componentes de um projeto Vision personalizado

O primeiro componente de um projeto personalizado é o conjunto de dados. O conjunto de dados é sua coleção de imagens para usar durante o treinamento de seu modelo, juntamente com o arquivo COCO que define as informações do rótulo sobre essas imagens. Seu conjunto de dados é armazenado em um contêiner de armazenamento de blob do Azure e abordamos mais sobre o arquivo COCO nesta unidade.

Depois de definir suas imagens e rótulos de classe, você pode treinar seu modelo personalizado. Ao treinar seu modelo, você especifica o tipo de modelo a ser treinado, qual conjunto de dados usar e seu orçamento de treinamento (em quantidade de tempo). Quando o treinamento do modelo estiver concluído, você poderá visualizar o desempenho e usar o modelo para previsões.

Na maioria dos casos, os passos que você segue são:

  1. Crie seu contêiner de armazenamento de blob e carregue apenas as imagens de treinamento.
  2. Crie o conjunto de dados para seu projeto e conecte-o ao contêiner de armazenamento de blob. Ao criar seu conjunto de dados, você define que tipo de projeto é (classificação de imagem, deteção de objetos ou reconhecimento de produto).
  3. Rotule seus dados em seu Projeto de Rotulagem de Dados do Azure Machine Learning, que cria o arquivo COCO em seu contêiner de armazenamento de blob.
  4. Conecte seu arquivo COCO completo para as imagens rotuladas ao seu conjunto de dados.
  5. Treine seu modelo personalizado no conjunto de dados e nos rótulos criados.
  6. Verifique o desempenho e itere se o desempenho treinado não estiver atendendo às expectativas.

Quando estiver satisfeito com o desempenho, o modelo pode ser usado no Vision Studio ou na sua própria aplicação.

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 é classificada, a área e a caixa delimitadora (se rotular para deteção de objeto).
  • categories: Define a ID para a classe de rótulo nomeada.

Na maioria dos casos, os arquivos COCO são criados rotulando suas imagens de treinamento em um Projeto de Rotulagem de Dados do Azure Machine Learning. Se você estiver migrando de um projeto antigo do Custom Vision, poderá usar o script de migração para criar seu arquivo COCO.

Um arquivo COCO de exemplo tem esta aparência:

{
  "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 deteção de objeto, cada anotação no arquivo COCO também conterá uma matriz de caixa delimitadora com os valores na matriz sendo Left, Top, Width e Height.

"bbox": [
    0.11803319477782331,
    0.41586723392402375,
    0.7765206955096307,
    0.3483334397217212
]

Criando seu conjunto de dados

Depois de ter imagens em seu contêiner de armazenamento de blob, você pode criar seu conjunto de dados para treinamento usando a API REST ou usando o Vision Studio. A solicitação REST seria semelhante à seguinte chamada REST:

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 de 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 maneira.

O uso do Vision Studio permite que você se conecte ao seu projeto de rotulagem no Aprendizado de Máquina do Azure em vez de especificar o arquivo COCO na solicitação REST. O resto dos exemplos neste módulo usam o Vision Studio, mas se REST for o seu método preferido, os exemplos estão disponíveis nas páginas de documentação.