Configurar um projeto de etiquetagem de imagem

Saiba como criar e executar projetos de rotulagem de dados para rotular imagens no Azure Machine Learning. Use a rotulagem de dados assistida por aprendizado de máquina (ML) ou a rotulagem human-in-the-loop para ajudar na tarefa.

Configure rótulos para classificação, deteção de objetos (caixa delimitadora), segmentação de instância (polígono) ou segmentação semântica (visualização).

Você também pode usar a ferramenta de rotulagem de dados no Aprendizado de Máquina do Azure para criar um projeto de rotulagem de texto.

Importante

Os itens marcados (visualização) neste artigo estão atualmente em visualização pública. A versão de visualização é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Capacidades de etiquetagem de imagens

A rotulagem de dados do Aprendizado de Máquina do Azure é uma ferramenta que você pode usar para criar, gerenciar e monitorar projetos de rotulagem de dados. Utilize-o para:

  • Coordene dados, rótulos e membros da equipe para gerenciar com eficiência as tarefas de rotulagem.
  • Acompanhe o progresso e mantenha a fila de tarefas de rotulagem incompletas.
  • Inicie e pare o projeto e controle o progresso da rotulagem.
  • Revise e exporte os dados rotulados como um conjunto de dados do Azure Machine Learning.

Importante

As imagens de dados com as quais você trabalha na ferramenta de rotulagem de dados do Aprendizado de Máquina do Azure devem estar disponíveis em um armazenamento de dados do Armazenamento de Blobs do Azure. Se você não tiver um armazenamento de dados existente, poderá carregar seus arquivos de dados para um novo armazenamento de dados ao criar um projeto.

Os dados de imagem podem ser qualquer arquivo que tenha uma destas extensões:

  • .jpg
  • .jpeg
  • .png
  • .jpe
  • .jfif
  • .bmp
  • .tif
  • .tiff
  • .dcm
  • .dicom

Cada arquivo é um item a ser rotulado.

Você também pode usar um ativo de dados MLTable como entrada para um projeto de rotulagem de imagem, desde que as imagens na tabela sejam um dos formatos acima. Para obter mais informações, consulte Como usar ativos de dados MLTable.

Pré-requisitos

Use estes itens para configurar a rotulagem de imagem no Azure Machine Learning:

  • Os dados que você deseja rotular, em arquivos locais ou no Armazenamento de Blobs do Azure.
  • O conjunto de rótulos que você deseja aplicar.
  • As instruções para rotulagem.
  • Uma subscrição do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
  • Uma área de trabalho do Azure Machine Learning. Consulte Criar um espaço de trabalho do Azure Machine Learning.

Criar um projeto de identificação de imagens

Os projetos de rotulagem são administrados no Azure Machine Learning. Use a página Rotulagem de dados no Machine Learning para gerenciar seus projetos.

Se seus dados já estiverem no Armazenamento de Blobs do Azure, verifique se eles estão disponíveis como um armazenamento de dados antes de criar o projeto de rotulagem.

  1. Para criar um projeto, selecione Adicionar projeto.

  2. Em Nome do projeto, insira um nome para o projeto.

    Não é possível reutilizar o nome do projeto, mesmo que você exclua o projeto.

  3. Para criar um projeto de etiquetagem de imagem, para Tipo de mídia, selecione Imagem.

  4. Para Tipo de tarefa Rotulagem, selecione uma opção para o seu cenário:

    • Para aplicar apenas um único rótulo a uma imagem de um conjunto de rótulos, selecione Classificação de imagem Multiclasse.
    • Para aplicar uma ou mais etiquetas a uma imagem a partir de um conjunto de etiquetas, selecione Classificação de Imagem Multietiqueta. Por exemplo, uma foto de um cão pode ser rotulada com cão e durante o dia.
    • Para atribuir um rótulo a cada objeto dentro de uma imagem e adicionar caixas delimitadoras, selecione Identificação do objeto (Caixa delimitadora).
    • Para atribuir um rótulo a cada objeto dentro de uma imagem e desenhar um polígono em torno de cada objeto, selecione Segmentação de instância (polígono).
    • Para desenhar máscaras em uma imagem e atribuir uma classe de rótulo no nível de pixel, selecione Segmentação semântica (visualização).

    Screenshot that shows creating a labeling project to manage labeling.

  5. Selecione Seguinte para continuar.

Adicionar força de trabalho (opcional)

Selecione Usar uma empresa de rotulagem de fornecedor do Azure Marketplace somente se você contratou uma empresa de rotulagem de dados do Azure Marketplace. Em seguida, selecione o fornecedor. Se o seu fornecedor não aparecer na lista, desmarque esta opção.

Certifique-se de entrar em contato primeiro com o fornecedor e assinar um contrato. Para obter mais informações, consulte Trabalhar com uma empresa fornecedora de rotulagem de dados (visualização).

Selecione Seguinte para continuar.

Especificar os dados a serem rotulados

Se você já criou um conjunto de dados que contém seus dados, selecione o conjunto de dados na lista suspensa Selecione um conjunto de dados existente.

Você também pode selecionar Criar um conjunto de dados para usar um armazenamento de dados existente do Azure ou para carregar arquivos locais.

Nota

Um projeto não pode conter mais de 500.000 arquivos. Se o conjunto de dados exceder essa contagem de arquivos, somente os primeiros 500.000 arquivos serão carregados.

Mapeamento de colunas de dados (visualização)

Se você selecionar um ativo de dados MLTable, uma etapa adicional de Mapeamento de Coluna de Dados será exibida para você especificar a coluna que contém as URLs de imagem.

Você deve especificar uma coluna que mapeie para o campo Imagem . Opcionalmente, você também pode mapear outras colunas presentes nos dados. Por exemplo, se os dados contiverem uma coluna Rótulo , você poderá mapeá-los para o campo Categoria . Se os dados contiverem uma coluna Confiança , você poderá mapeá-la para o campo Confiança .

Se você estiver importando rótulos de um projeto anterior, eles deverão estar no mesmo formato que os rótulos que você está criando. Por exemplo, se você estiver criando rótulos de caixa delimitadora, os rótulos importados também deverão ser rótulos de caixa delimitadora.

Opções de importação (visualização)

Ao incluir uma coluna Categoria na etapa Mapeamento de Coluna de Dados , use Opções de Importação para especificar como tratar os dados rotulados.

Você deve especificar uma coluna que mapeie para o campo Imagem . Opcionalmente, você também pode mapear outras colunas presentes nos dados. Por exemplo, se os dados contiverem uma coluna Rótulo , você poderá mapeá-los para o campo Categoria . Se os dados contiverem uma coluna Confiança , você poderá mapeá-la para o campo Confiança .

Se você estiver importando rótulos de um projeto anterior, eles deverão estar no mesmo formato que os rótulos que você está criando. Por exemplo, se você estiver criando rótulos de caixa delimitadora, os rótulos importados também deverão ser rótulos de caixa delimitadora.

Criar um conjunto de dados a partir de um armazenamento de dados do Azure

Em muitos casos, você pode carregar arquivos locais. No entanto, o Gerenciador de Armazenamento do Azure fornece uma maneira mais rápida e robusta de transferir uma grande quantidade de dados. Recomendamos o Storage Explorer como a maneira padrão de mover arquivos.

Para criar um conjunto de dados a partir de dados que já estão armazenados no Armazenamento de Blob:

  1. Selecione Criar.
  2. Em Nome, insira um nome para o conjunto de dados. Opcionalmente, insira uma descrição.
  3. Verifique se o tipo de conjunto de dados está definido como Arquivo. Somente tipos de conjunto de dados de arquivo são suportados para imagens.
  4. Selecione Seguinte.
  5. Selecione Do armazenamento do Azure e, em seguida, selecione Avançar.
  6. Selecione o armazenamento de dados e, em seguida, selecione Avançar.
  7. Se os dados estiverem em uma subpasta dentro do Armazenamento de Blobs, escolha Procurar para selecionar o caminho.
    • Para incluir todos os arquivos nas subpastas do caminho selecionado, acrescente /** ao caminho.
    • Para incluir todos os dados no contêiner atual e suas subpastas, acrescente **/*.* ao caminho.
  8. Selecione Criar.
  9. Selecione o ativo de dados que você criou.

Criar um conjunto de dados a partir dos dados carregados

Para carregar diretamente os seus dados:

  1. Selecione Criar.
  2. Em Nome, insira um nome para o conjunto de dados. Opcionalmente, insira uma descrição.
  3. Verifique se o tipo de conjunto de dados está definido como Arquivo. Somente tipos de conjunto de dados de arquivo são suportados para imagens.
  4. Selecione Seguinte.
  5. Selecione De arquivos locais e, em seguida, selecione Avançar.
  6. (Opcional) Selecione um armazenamento de dados. Você também pode deixar o padrão para carregar no repositório de blob padrão (workspaceblobstore) para seu espaço de trabalho de Aprendizado de Máquina.
  7. Selecione Seguinte.
  8. Selecione Carregar>arquivos ou Carregar>pasta de upload para selecionar os arquivos ou pastas locais a serem carregados.
  9. Na janela do browser, localize os seus ficheiros ou pastas e, em seguida, selecione Abrir.
  10. Continue a selecionar Carregar até especificar todos os seus arquivos e pastas.
  11. Opcionalmente, você pode optar por selecionar a caixa de seleção Substituir, se já existir . Verifique a lista de arquivos e pastas.
  12. Selecione Seguinte.
  13. Confirme os detalhes. Selecione Voltar para modificar as configurações ou selecione Criar para criar o conjunto de dados.
  14. Por fim, selecione o ativo de dados que você criou.

Configurar atualização incremental

Se você planeja adicionar novos arquivos de dados ao seu conjunto de dados, use a atualização incremental para adicionar os arquivos ao seu projeto.

Quando a opção Habilitar atualização incremental em intervalos regulares é definida, o conjunto de dados é verificado periodicamente quanto a novos arquivos a serem adicionados a um projeto com base na taxa de conclusão da rotulagem. A verificação de novos dados para quando o projeto contém o máximo de 500.000 arquivos.

Selecione Habilitar atualização incremental em intervalos regulares quando desejar que seu projeto monitore continuamente novos dados no armazenamento de dados.

Desmarque a seleção se não quiser que novos arquivos no armazenamento de dados sejam adicionados automaticamente ao seu projeto.

Importante

Não crie uma nova versão para o conjunto de dados que deseja atualizar. Se você fizer isso, as atualizações não serão vistas porque o projeto de rotulagem de dados está fixado à versão inicial. Em vez disso, use o Gerenciador de Armazenamento do Azure para modificar seus dados na pasta apropriada no Armazenamento de Blob.

Além disso, não remova dados. Remover dados do conjunto de dados que o seu projeto utiliza causa um erro no projeto.

Depois que o projeto for criado, use a guia Detalhes para alterar a atualização incremental, exibir o carimbo de data/hora da última atualização e solicitar uma atualização imediata dos dados.

Especificar classes de rótulo

Na página Categorias de rótulo, especifique um conjunto de classes para categorizar seus dados.

A precisão e a velocidade das suas rotuladoras são afetadas pela sua capacidade de escolher entre classes. Por exemplo, em vez de especificar o género e a espécie completos para plantas ou animais, utilize um código de campo ou abreviar o género.

Você pode usar uma lista simples ou criar grupos de rótulos.

  • Para criar uma lista simples, selecione Adicionar categoria de rótulo para criar cada rótulo.

    Screenshot that shows how to add a flat structure of labels.

  • Para criar rótulos em grupos diferentes, selecione Adicionar categoria de rótulo para criar os rótulos de nível superior. Em seguida, selecione o sinal de adição (+) em cada nível superior para criar o próximo nível de rótulos para essa categoria. Você pode criar até seis níveis para qualquer agrupamento.

    Screenshot that shows how to add groups of labels.

Você pode selecionar rótulos em qualquer nível durante o processo de marcação. Por exemplo, os rótulos Animal, Animal/Cat, Animal/Dog, Color, Color/Black, Color/White, e Color/Silver são todas opções disponíveis para um rótulo. Em um projeto multi-label, não há necessidade de escolher uma de cada categoria. Se essa for a sua intenção, certifique-se de incluir essas informações em suas instruções.

Descrever a tarefa de etiquetagem de imagens

É importante explicar claramente a tarefa de rotulagem. Na página Instruções de rotulagem, você pode adicionar um link para um site externo que tenha instruções de rotulagem ou pode fornecer instruções na caixa de edição da página. Mantenha as instruções orientadas para tarefas e adequadas ao público. Considere estas perguntas:

  • Quais são os rótulos que os rotuladores verão e como escolherão entre eles? Existe algum texto de referência a que se possa referir?
  • O que devem fazer se nenhum rótulo parecer adequado?
  • O que devem fazer se vários rótulos parecerem adequados?
  • Que limiar de confiança devem aplicar a um rótulo? Você quer o melhor palpite da rotuladora se ela não tiver certeza?
  • O que devem fazer com objetos de interesse parcialmente ocluídos ou sobrepostos?
  • O que eles devem fazer se um objeto de interesse for cortado pela borda da imagem?
  • O que devem fazer se acharem que cometeram um erro depois de apresentarem um rótulo?
  • O que eles devem fazer se descobrirem problemas de qualidade de imagem, incluindo más condições de iluminação, reflexos, perda de foco, fundo indesejado incluído, ângulos de câmera anormais e assim por diante?
  • O que eles devem fazer se vários revisores tiverem opiniões diferentes sobre a aplicação de um rótulo?

Para caixas delimitadoras, perguntas importantes incluem:

  • Como é definida a caixa delimitadora para esta tarefa? Deve ficar inteiramente no interior do objeto ou deve ser no exterior? Deve ser cortado o mais próximo possível ou alguma autorização é aceitável?
  • Que nível de cuidado e consistência você espera que os rotuladores apliquem na definição de caixas delimitadoras?
  • Qual é a definição visual de cada classe de rótulo? Você pode fornecer uma lista de casos normais, de borda e de contador para cada classe?
  • O que as rotuladoras devem fazer se o objeto for minúsculo? Deve ser rotulado como um objeto ou eles devem ignorar esse objeto como plano de fundo?
  • Como os rotuladores devem lidar com um objeto que é mostrado apenas parcialmente na imagem?
  • Como os rotuladores devem lidar com um objeto parcialmente coberto por outro objeto?
  • Como os rotuladores devem lidar com um objeto que não tem limites claros?
  • Como os rotuladores devem lidar com um objeto que não é a classe de objeto de interesse, mas tem semelhanças visuais com um tipo de objeto relevante?

Nota

Os rotuladores podem selecionar as primeiras nove etiquetas usando as teclas numéricas de 1 a 9.

Controlo de qualidade (pré-visualização)

Para obter etiquetas mais precisas, use a página Controle de qualidade para enviar cada item para várias rotuladoras.

Importante

A rotulagem de consenso está atualmente em pré-visualização pública.

A versão de visualização é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas.

Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Para que cada item seja enviado para vários rotuladores, selecione Habilitar rotulagem de consenso (visualização). Em seguida, defina valores para Rotuladoras mínimas e Rotuladoras máximas para especificar quantas rotuladoras usar. Certifique-se de que tem tantas etiquetadoras disponíveis quanto o seu número máximo. Não é possível alterar essas configurações após o início do projeto.

Se se chegar a um consenso a partir do número mínimo de rotuladores, o item é rotulado. Se não se chegar a um consenso, o item é enviado para mais rotuladoras. Se não houver consenso depois que o item for para o número máximo de rotuladores, seu status é Revisão de necessidades e o proprietário do projeto é responsável por rotular o item.

Nota

Os projetos de segmentação de instância não podem usar a rotulagem de consenso.

Usar rotulagem de dados assistida por ML

Para acelerar as tarefas de rotulagem, na página de rotulagem assistida por ML, você pode acionar modelos automáticos de aprendizado de máquina. As imagens médicas (ficheiros com uma extensão .dcm ) não estão incluídas na etiquetagem assistida. Se o tipo de projeto for Segmentação Semântica (Visualização), a rotulagem assistida por ML não estará disponível.

No início do seu projeto de rotulagem, os itens são embaralhados em uma ordem aleatória para reduzir possíveis vieses. No entanto, o modelo treinado reflete quaisquer vieses presentes no conjunto de dados. Por exemplo, se 80% dos itens forem de uma única classe, aproximadamente 80% dos dados usados para treinar o modelo serão incluídos nessa classe.

Para habilitar a rotulagem assistida, selecione Habilitar rotulagem assistida por ML e especifique uma GPU. Se você não tiver uma GPU em seu espaço de trabalho, um cluster de GPU (nome do recurso: DefLabelNC6v3, vmsize: Standard_NC6s_v3) será criado para você e adicionado ao seu espaço de trabalho. O cluster é criado com um mínimo de zero nós, o que significa que não custa nada quando não está em uso.

A rotulagem assistida por ML consiste em duas fases:

  • Clustering
  • Pré-rotulagem

A contagem de itens de dados rotulados necessária para iniciar a rotulagem assistida não é um número fixo. Este número pode variar significativamente de um projeto de etiquetagem para outro. Para alguns projetos, às vezes é possível ver tarefas de pré-rótulo ou cluster depois que 300 itens foram rotulados manualmente. A etiquetagem assistida por ML usa uma técnica chamada aprendizagem por transferência. A aprendizagem por transferência utiliza um modelo pré-treinado para iniciar o processo de formação. Se as classes do seu conjunto de dados se assemelharem às classes no modelo pré-treinado, os pré-rótulos poderão ficar disponíveis após apenas algumas centenas de itens rotulados manualmente. Se o conjunto de dados for significativamente diferente dos dados usados para pré-treinar o modelo, o processo poderá levar mais tempo.

Quando você usa o rótulo de consenso, o rótulo de consenso é usado para treinamento.

Como os rótulos finais ainda dependem da entrada da rotuladora, essa tecnologia às vezes é chamada de rotulagem human-in-the-loop .

Nota

A rotulagem de dados assistida por ML não suporta contas de armazenamento padrão protegidas por trás de uma rede virtual. Você deve usar uma conta de armazenamento não padrão para rotulagem de dados assistida por ML. A conta de armazenamento não padrão pode ser protegida atrás da rede virtual.

Clustering

Depois de enviar alguns rótulos, o modelo de classificação começa a agrupar itens semelhantes. Essas imagens semelhantes são apresentadas aos rotuladores na mesma página para ajudar a tornar a marcação manual mais eficiente. O agrupamento é especialmente útil quando um rotulador visualiza uma grade de quatro, seis ou nove imagens.

Depois que um modelo de aprendizado de máquina é treinado em seus dados rotulados manualmente, o modelo é truncado até sua última camada totalmente conectada. As imagens sem rótulo são então passadas através do modelo truncado em um processo chamado incorporação ou featurização. Esse processo incorpora cada imagem em um espaço de alta dimensão que a camada do modelo define. Outras imagens no espaço mais próximo da imagem são usadas para tarefas de clustering.

A fase de agrupamento não aparece para modelos de deteção de objetos ou classificação de texto.

Pré-rotulagem

Depois de enviar rótulos suficientes para treinamento, um modelo de classificação prevê tags ou um modelo de deteção de objeto prevê caixas delimitadoras. O rotulador agora vê páginas que contêm rótulos previstos já presentes em cada item. Para deteção de objetos, as caixas previstas também são mostradas. A tarefa envolve revisar essas previsões e corrigir quaisquer imagens rotuladas incorretamente antes do envio da página.

Depois que um modelo de aprendizado de máquina é treinado em seus dados rotulados manualmente, o modelo é avaliado em um conjunto de teste de itens rotulados manualmente. A avaliação ajuda a determinar a precisão do modelo em diferentes limiares de confiança. O processo de avaliação estabelece um limiar de confiança acima do qual o modelo é suficientemente preciso para mostrar pré-rótulos. O modelo é então avaliado em relação a dados não rotulados. Itens com previsões mais confiáveis do que o limite são usados para pré-rotulagem.

Inicializar o projeto de rotulagem de imagem

Depois que o projeto de rotulagem é inicializado, alguns aspetos do projeto são imutáveis. Não é possível alterar o tipo de tarefa ou o conjunto de dados. Você pode modificar rótulos e a URL para a descrição da tarefa. Analise cuidadosamente as configurações antes de criar o projeto. Depois de enviar o projeto, você retorna à página de visão geral de Rotulagem de Dados, que mostra o projeto como Inicializando.

Nota

Esta página pode não ser atualizada automaticamente. Após uma pausa, atualize manualmente a página para ver o status do projeto como Criado.

Resolução de Problemas

Para problemas ao criar um projeto ou acessar dados, consulte Solucionar problemas de rotulagem de dados.

Próximos passos