Share via


Configurar um projeto de rotulagem de imagens

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

Configure rótulos para classificação, detecção de objetos (caixa delimitadora), segmentação de instância (polígono) ou segmentação semântica (versão prévia).

Você também pode usar a ferramenta de rotulagem de dados no Azure Machine Learning para criar um projeto de rotulagem de textos.

Importante

Os itens marcados (versão prévia) neste artigo estão atualmente em versão prévia pública. A versão prévia é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.

Funcionalidades de rotulagem de imagens

A rotulagem de dados do Azure Machine Learning é uma ferramenta que você pode usar para criar, gerenciar e monitorar projetos de rotulagem de dados. Use-o para:

  • Coordene dados, rótulos e membros da equipe para gerenciar tarefas de rotulagem com eficiência.
  • Rastreia o progresso e mantém a fila de tarefas de rotulagem incompletas.
  • Inicia e interrompe o projeto e controla o progresso da rotulagem.
  • Examina e exporta os rotulados como um conjunto de dados do Azure Machine Learning.

Importante

As imagens dos dados com as quais você trabalha na ferramenta de rotulagem de dados do Azure Machine Learning 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.

Dados de imagem podem ser qualquer arquivo que tenha uma das seguintes 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 esteja em um dos formatos acima. Para obter mais informações, consulte Como usar ativos de dados MLTable.

Pré-requisitos

Você utiliza esses itens para configurar a rotulagem de imagens no Azure Machine Learning:

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

Criar um projeto de rotulagem de imagens

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

Se os dados já estiverem no Armazenamento de Blobs do Azure, verifique se 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.

    Você não pode reutilizar o nome do projeto, mesmo se você excluir o projeto.

  3. Para criar um projeto de rotulagem de imagens, por Tipo de mídia , selecione Imagem.

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

    • Para aplicar apenas um rótulo único a uma imagem de um conjunto de rótulos, selecione Várias Classes de Classificação de Imagem.
    • Para aplicar um ou mais rótulos a uma imagem de um conjunto de rótulos, selecione Vários Rótulos de Classificação de Imagem. Por exemplo, uma foto de um cachorro pode ser rotulada com cachorro e 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 ao redor de cada objeto, selecione Segmentação da Instância (Polígono).
    • Para desenhar máscaras ou uma imagem e atribuir uma classe de rótulo no nível do pixel, selecione Segmentação semântica (versão prévia).

    Screenshot that shows creating a labeling project to manage labeling.

  5. Selecione Avançar para continuar.

Adicionar força de trabalho (opcional)

Selecione Use uma empresa rotuladora do Azure Marketplace apenas se você tiver envolvido em uma empresa rotuladora do Azure Marketplace. Em seguida, selecione o fornecedor. Se seu fornecedor não aparecer na lista, desmarque esta opção.

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

Selecione Avançar para continuar.

Especificar os dados a serem rotulados

Se você já criou um conjunto de dados que contenha seus dados, selecione o conjunto de dados no menu suspenso Selecionar um conjunto de dados existente .

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

Observação

Um projeto não pode ter 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 coluna de dados (versão prévia)

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

É necessário 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á-la para o campo Categoria. Se os dados contiverem uma coluna Confiança, você poderá mapeá-la para o campo Confiança.

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

Opções de importação (versão prévia)

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

É necessário 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á-la para o campo Categoria. Se os dados contiverem uma coluna Confiança, você poderá mapeá-la para o campo Confiança.

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

Criar um conjunto de dados 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 forma mais rápida e robusta de transferir uma grande quantidade de dados. Recomendamos o Gerenciador de Armazenamento como o método padrão de mover arquivos.

Para criar um conjunto de dados a partir dos dados já armazenados no Armazenamento de Blobs:

  1. Selecione Criar.
  2. Para Nome, insira um nome para seu conjunto de dados. Se quiser, insira uma descrição.
  3. Certifique-se de que o Tipo de Conjunto de Dados esteja definido como Arquivo. Somente os tipos de conjunto de dados de arquivo são compatíveis com imagens.
  4. Selecione Avançar.
  5. Selecione A partir do armazenamento do Azure e, em seguida, selecione Avançar.
  6. Selecione o armazenamento de dados e selecione Avançar.
  7. Se seus 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, anexe /** ao caminho.
    • Para incluir todos os dados no contêiner atual e suas subpastas, anexe **/*.* ao caminho.
  8. Selecione Criar.
  9. Selecione o ativo de dados que você criou.

Criar um conjunto de dados com base nos dados carregados

Para fazer upload dos dados diretamente:

  1. Selecione Criar.
  2. Para Nome, insira um nome para seu conjunto de dados. Se quiser, insira uma descrição.
  3. Certifique-se de que o Tipo de Conjunto de Dados esteja definido como Arquivo. Somente os tipos de conjunto de dados de arquivo são compatíveis com imagens.
  4. Selecione Avançar.
  5. Selecione A partir dos 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 blobs padrão (workspaceblobstore) do seu espaço de trabalho no Machine Learning.
  7. Selecione Avançar.
  8. Selecione Carregar>Carregar arquivos ou Carregar>Carregar pasta para selecionar os arquivos ou pastas locais a serem carregados.
  9. Na janela do navegador, localize os arquivos ou pastas e selecione Abrir.
  10. Continue selecionando Carregar até especificar todos os seus arquivos e pastas.
  11. Opcionalmente, você pode selecionar a caixa de seleção Substituir se já existir. Verifique a lista de arquivos e pastas.
  12. Selecione Avançar.
  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 a atualização incremental

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

Quando Habilitar atualização incremental em intervalos regulares está definido, o conjunto de dados é verificado periodicamente para que novos arquivos sejam adicionados a um projeto com base na taxa de conclusão da rotulagem. A verificação de novos dados é interrompida quando o projeto contém o máximo de 500 mil arquivos.

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

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

Importante

Não crie outra versão do conjunto de dados que você 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, utilize o Gerenciador de Armazenamento do Microsoft Azure para modificar seus dados na pasta apropriada no Armazenamento de Blobs.

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

Depois que o projeto for criado, utilize 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ótulos, especifique um conjunto de classes para categorizar seus dados.

A precisão e a velocidade dos seus rotuladores são afetadas pela capacidade de escolher entre as classes. Por exemplo, em vez de escrever por extenso o gênero e a espécie de plantas ou animais, use um código de campo ou abrevie 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ótulos 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ótulos para criar os rótulos de nível superior. Em seguida, selecione o sinal de mais (+) em cada nível superior para criar o próximo nível de rótulos para aquela 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 opções disponíveis para um rótulo. Em um projeto com vários rótulos, não há necessidade de escolher um de cada categoria. Se essa é sua intenção, certifique-se de incluir essas informações nas suas instruções.

Descrever a tarefa de rotulagem de imagem

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

  • Quais são os rótulos que os rotuladores verão e como eles escolherão entre eles? Há um texto de referência para consulta?
  • O que elas deverão fazer se nenhum rótulo parecer apropriado?
  • O que elas deverão fazer se vários rótulos parecerem apropriados?
  • Qual limite de confiança elas devem aplicar a um rótulo? Você gostaria de ter o melhor palpite do rotulador se eles não tiverem certeza?
  • O que elas deverão fazer com objetos de interesse parcialmente obstruídos ou sobrepostos?
  • O que elas deverão fazer se um objeto de interesse for recortado pela borda da imagem?
  • O que eles devem fazer se acharem que cometeram um erro depois de enviarem 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, plano de 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?

Com relação às caixas delimitadoras, entre as perguntas importantes se incluem:

  • Como a caixa delimitadora é definida para essa tarefa? Deve permanecer inteiramente no interior do objeto ou permanecer no exterior? Ela deverá ser cortada o mais próximo possível ou um espaço livre é aceitável?
  • Qual nível de cuidado e de consistência você espera que os rotuladores apliquem na definição das 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 os rotuladores deverão fazer se o objeto for pequeno? 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 que está parcialmente coberto por outro objeto?
  • Como os rotuladores devem lidar com um objeto que não tem um limite claro?
  • 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?

Observação

Os rotuladores podem selecionar os primeiros nove rótulos usando as teclas numéricas de 1 a 9.

Controle de qualidade (versão prévia)

Para obter rótulos mais precisos, use a página controle Qualidade para enviar cada item para vários rotuladores.

Importante

A rotulagem de consenso está em versão prévia pública.

A versão prévia é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos.

Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.

Para que cada item seja enviado para vários rotuladores, selecione Habilitar rotulagem de consenso (pré-visualização). Em seguida, defina valores para Rotuladores mínimos e Rotuladores máximos para especificar quantos rótulos usar. Certifique-se de que você tenha tantos rotuladores disponíveis quanto seu número máximo. Você não pode alterar estas configurações após o início do projeto.

Se um consenso for alcançado a partir do número mínimo de rotuladores, o item será rotulado. Se não for alcançado um consenso, o item será enviado a mais rotuladores. Se não houver consenso após o item atingir o número máximo de rotuladores, seu status será Necessita de Revisão, e o proprietário do projeto será o responsável por rotular o item.

Observação

Os projetos de Segmentação de Instância não podem utilizar a rotulagem de consenso.

Usar rotulagem de dados assistidos por ML

Para acelerar as tarefas de rotulagem, na página Rotulagem assistida por ML, você pode disparar os modelo de machine learning automáticos. Imagens médicas (arquivos que têm uma extensão .dcm) não estão incluídas na rotulagem assistida. Se o tipo de projeto for Segmentação semântica (versão prévia), a rotulagem assistida por ML não estará disponível.

No começo do projeto de rotulagem, os itens são embaralhados em ordem aleatória para reduzir o desvio potencial. No entanto, o modelo treinado reflete qualquer viés que esteja presente no conjunto de dados. Por exemplo, se 80% dos seus itens forem de uma única classe, aproximadamente 80% dos dados utilizados para treinar o modelo aterrizarão nessa classe.

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

A rotulagem assistida por ML tem duas fases:

  • Clustering
  • Pré-rotulamento

A contagem de itens de dados rotulados necessária para iniciar a rotulagem assistida não é um número fixo. Esse número poderá variar consideravelmente de um projeto de rotulagem para outro. Para alguns projetos, às vezes é possível ver tarefas de pré-rotulagem ou um cluster após 300 itens terem sido rotulados manualmente. A rotulagem assistida por ML utiliza uma técnica chamada transferência de aprendizado. O aprendizado por transferência utiliza um modelo pré-treinado para dar início ao processo de treinamento. Se as classes do seu conjunto de dados se assemelharem às classes no modelo pré-treinado, os pré-rótulos podem ficar disponíveis após apenas algumas centenas de itens rotulados manualmente. Se seu conjunto de dados for significativamente diferente dos dados utilizados para pré-treinar o modelo, o processo pode levar mais tempo.

Ao usar a rotulagem de consenso, o rótulo de consenso é usado para treinamento.

Como os rótulos finais ainda dependem de informações do rotulador, essa tecnologia às vezes é chamada de rotulagem human-in-the-loop.

Observação

A rotulagem de dados assistida por ML não oferece suporte a 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 a rotulagem de dados assistida por ML. A conta de armazenamento não padrão pode ser protegida pela 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 rotulagem manual mais eficiente. O agrupamento é especialmente útil quando um rotulador visualiza uma grade de quatro, seis ou nove imagens.

Depois que um modelo de machine learning é treinado em seus dados rotulados manualmente, o modelo é truncado até sua última camada totalmente conectada. As imagens não rotuladas são então passadas através do modelo truncado em um processo chamado incorporação ou engenharia de recursos. Esse processo incorpora cada imagem em um espaço de alta dimensão definido pela camada do modelo. Outras imagens no espaço mais próximo da imagem são utilizadas para tarefas de agrupamento.

A fase de agrupamento não aparece para modelos de detecção de objetos ou classificação de textos.

Pré-rotulamento

Depois de enviar rótulos suficientes para o treinamento, um modelo de classificação prevê marcas, ou um modelo de detecção de objetos prevê caixas delimitadoras. O rotulador agora vê as páginas que contêm rótulos previstos já presentes em cada item. Para a detecção de objetos, as caixas previstas também são mostradas. A tarefa envolve a revisão dessas previsões e a correção de qualquer imagem rotulada incorretamente antes do envio da página.

Depois que um modelo de machine learning é treinado nos seus dados rotulados manualmente, o modelo é avaliado em um conjunto de testes de itens rotulados manualmente. A avaliação ajuda a determinar a precisão do modelo em diferentes limites de confiança. O processo de avaliação estabelece um limite de confiança além do qual o modelo é preciso o suficiente para mostrar os pré-rótulos. O modelo é então avaliado em relação aos dados sem rótulo. Itens com previsões mais confiantes do que o limite são utilizados para a pré-rotulagem.

Inicializar o projeto de rotulagem de imagens

Depois que o projeto de rotulagem for inicializado, alguns aspectos do projeto serão imutáveis. Não será possível alterar o tipo de tarefa nem o conjunto de dados. Você poderá modificar os rótulos e a URL para a descrição da tarefa. Examine cuidadosamente as configurações antes de criar o projeto. Depois de enviar o projeto, retorne para a página de visão geral de Rotulagem de Dados, que mostra o projeto como Inicializando.

Observação

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.

Solução de problemas

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

Próximas etapas