Yolo Vision Shenzhen
Shenzhen
Junte-se agora

Explorando a rotulagem de dados para projetos de visão computacional

Abirami Vina

4 min de leitura

2 de setembro de 2024

Leia nossa análise detalhada sobre rotulagem de dados em relação a projetos de visão computacional e aprenda como rotular dados visuais e por que isso é tão importante.

A inteligência artificial (IA) se concentra em dar às máquinas habilidades semelhantes às humanas, e uma das maneiras mais populares de fazer isso é por meio do aprendizado supervisionado. Em outras palavras, ensinar modelos de IA mostrando a eles exemplos rotulados pode ajudá-los a aprender com padrões e melhorar nas tarefas. É muito semelhante a como os humanos aprendem com a experiência. Então, como esses exemplos rotulados são criados?

A anotação de dados envolve rotular ou marcar dados para ajudar os algoritmos de aprendizado de máquina a entendê-los. Em visão computacional, isso significa marcar imagens ou vídeos para reconhecer e categorizar com precisão objetos, ações ou cenas. A rotulagem de dados é vital porque o sucesso de um modelo de IA depende muito da qualidade dos dados rotulados nos quais ele é treinado.

Estudos mostram que mais de 80% do tempo do projeto de IA é gasto gerenciando dados, desde a coleta e agregação até a limpeza e rotulagem. Isso mostra o quão importante é a anotação de dados no desenvolvimento de modelos de IA. O uso de dados anotados de alta qualidade possibilita que os modelos de IA executem tarefas como reconhecimento facial e detecção de objetos com maior precisão e confiabilidade em situações do mundo real.

Por que a anotação de dados é necessária

A anotação de dados forma a base de quão bem um modelo de visão computacional se desempenha. Os dados rotulados são a verdade fundamental que o modelo usa para aprender e fazer previsões. Os dados da verdade fundamental são essenciais porque representam o mundo real que o modelo tenta entender. Sem essa linha de base confiável, o modelo de IA seria como um navio navegando sem uma bússola. 

__wf_reserved_inherit
Fig 1. Ground Truth (Verdade Fundamentada) vs. Predição.

A rotulagem precisa ajuda esses modelos a entender o que estão vendo e leva a uma melhor tomada de decisões. Se os dados forem mal rotulados ou inconsistentes, o modelo terá dificuldades para fazer previsões e decisões corretas, assim como um aluno aprendendo com livros didáticos incorretos. Graças aos dados anotados, um modelo pode aprender tarefas como classificação de imagens, segmentação de instâncias e estimativa de pose de objetos em imagens e vídeos. 

Melhores recursos para conjuntos de dados

Antes de criar um novo conjunto de dados e rotular meticulosamente imagens e vídeos, é uma boa ideia verificar se você pode usar conjuntos de dados pré-existentes para o seu projeto. Existem vários repositórios de código aberto fantásticos onde você pode acessar conjuntos de dados de alta qualidade gratuitamente. Alguns dos mais populares incluem:

  • ImageNet: É comumente usado para treinar modelos de classificação de imagem.
  • COCO: Este conjunto de dados foi projetado para detecção de objetos, segmentação e legendagem de imagens.
  • PASCAL VOC: Suporta tarefas de detecção de objetos e segmentação.
__wf_reserved_inherit
Fig 2. Exemplos de dados no conjunto de dados COCO.

Ao escolher um conjunto de dados, é importante considerar fatores como o quão bem ele se encaixa no seu projeto, o tamanho do conjunto de dados, a sua diversidade e a qualidade das etiquetas. Além disso, certifique-se de rever os termos de licenciamento do conjunto de dados para evitar quaisquer repercussões legais, e verifique se os dados estão formatados de forma a adequar-se ao seu fluxo de trabalho e ferramentas.

Criar um conjunto de dados personalizado é uma ótima opção se os conjuntos de dados existentes não atenderem totalmente às suas necessidades. Você pode coletar imagens usando ferramentas como webcams, drones ou smartphones, dependendo do que seu projeto exige. Idealmente, seu conjunto de dados personalizado deve ser diverso, equilibrado e verdadeiramente representativo do problema que você está tentando resolver. Isso pode significar capturar imagens em diferentes condições de iluminação, de vários ângulos e em vários ambientes.

Se apenas conseguir recolher um número menor de imagens ou vídeos, o aumento de dados é uma técnica útil. Envolve expandir o seu conjunto de dados aplicando transformações como rotação, inversão ou ajustes de cor às imagens existentes. Aumenta o tamanho do seu conjunto de dados e torna o seu modelo mais robusto e mais capaz de lidar com variações nos dados. Ao usar uma combinação de conjuntos de dados de código aberto, conjuntos de dados personalizados e dados aumentados, pode aumentar significativamente o desempenho dos seus modelos de visão computacional.

Tipos de técnicas de anotação de imagem

Antes de começar a anotar imagens, é importante estar familiarizado com os diferentes tipos de anotações. Isso ajudará você a escolher o certo para o seu projeto. Em seguida, vamos dar uma olhada em alguns dos principais tipos de anotações. 

Bounding boxes

As bounding boxes são o tipo mais comum de anotação em visão computacional. São caixas retangulares usadas para marcar a localização de um objeto em uma imagem. Essas caixas são definidas pelas coordenadas de seus cantos e ajudam os modelos de IA a identificar e localizar objetos. As bounding boxes são usadas principalmente para detecção de objetos.

__wf_reserved_inherit
Fig 3. Um Exemplo de Caixas Delimitadoras.

Máscaras de segmentação

Às vezes, um objeto precisa ser detectado com mais precisão do que por meio de apenas uma caixa delimitadora desenhada ao seu redor. Você pode estar interessado no contorno dos objetos em uma imagem. Nesse caso, as máscaras de segmentação permitem delinear objetos complexos. As máscaras de segmentação são uma representação mais detalhada no nível do pixel. 

Essas máscaras podem ser usadas para segmentação semântica e segmentação de instâncias. A segmentação semântica envolve rotular cada pixel em uma imagem de acordo com o objeto ou área que ele representa, como um pedestre, carro, estrada ou calçada. A segmentação de instâncias, no entanto, vai um passo além, identificando e separando cada objeto individualmente, como distinguir entre cada carro em uma imagem, mesmo que sejam todos do mesmo tipo.

__wf_reserved_inherit
Fig 4. Um Exemplo de Segmentação Semântica (esquerda) e Máscaras de Segmentação de Instância (direita).

Cuboides 3D

Cuboides 3D são semelhantes a bounding boxes, o que os torna únicos é que os cuboides 3D adicionam informações de profundidade e fornecem uma representação 3D de um objeto. Essa informação extra permite que os sistemas entendam a forma, o volume e a posição dos objetos em um espaço 3D. Os cuboides 3D são frequentemente usados em carros autônomos para medir a distância dos objetos em relação ao veículo.

__wf_reserved_inherit
Fig 5. Um exemplo de cuboides 3D.

Pontos-chave e referências

Outro tipo interessante de anotação são os pontos-chave, onde pontos específicos como olhos, narizes ou articulações são marcados nos objetos. Os landmarks levam isso um passo adiante, conectando esses pontos para capturar a estrutura e o movimento de formas mais complexas, como rostos ou poses corporais. Esses tipos de anotações são usados para aplicações como reconhecimento facial, captura de movimento e realidade aumentada. Eles também melhoram a precisão dos modelos de IA em tarefas como reconhecimento de gestos ou análise de desempenho esportivo.

__wf_reserved_inherit
Fig 6. Um Exemplo de Pontos-Chave.

Como anotar dados usando o labelImg

Agora que discutimos os diferentes tipos de anotações, vamos entender como você pode anotar imagens usando uma ferramenta popular, o LabelImg. O LabelImg é uma ferramenta de código aberto que simplifica a anotação de imagens e pode ser usada para criar conjuntos de dados no formato YOLO (You Only Look Once). É uma ótima opção para iniciantes que trabalham em pequenos projetos Ultralytics YOLOv8.

Configurar o LabelImg é simples. Primeiro, certifique-se de que tem o Python 3 instalado no seu computador. Em seguida, pode instalar o LabelImg com um comando rápido.

Depois de instalado, você pode iniciar a ferramenta usando o comando:

O LabelImg funciona em várias plataformas, incluindo Windows, macOS e Linux. Se você encontrar algum problema durante a instalação, o repositório oficial do LabelImg pode fornecer instruções mais detalhadas.

__wf_reserved_inherit
Fig 7. Utilização do LabelImg para Anotação de Imagens.

Depois de iniciar a ferramenta, siga estes passos simples para começar a rotular suas imagens:

  • Configure as suas classes: Comece por definir a lista de classes (categorias) que pretende anotar num ficheiro chamado “predefined_classes.txt.” Este ficheiro permite que o software saiba quais os objetos que irá etiquetar nas suas imagens.
  • Mudar para o formato YOLO: Por padrão, o LabelImg usa o formato PASCAL VOC, mas se você estiver trabalhando com YOLO, precisará mudar os formatos. Basta clicar no botão “PascalVOC” na barra de ferramentas para mudar para YOLO.
  • Comece a anotar: Use as opções "Open" ou "OpenDIR" para carregar suas imagens. Em seguida, desenhe caixas delimitadoras ao redor dos objetos que deseja anotar e atribua o rótulo de classe correto. Depois de rotular cada imagem, salve seu trabalho. O LabelImg criará um arquivo de texto com o mesmo nome da sua imagem, contendo as anotações YOLO.
  • Salvar e revisar: As anotações são salvas em um arquivo .txt no formato YOLO. O software também salva um arquivo “classes.txt que lista todos os nomes das suas classes.

Estratégias eficientes de rotulagem de dados

Para tornar o processo de rotulagem de dados mais simples, existem algumas estratégias importantes a ter em mente. Por exemplo, diretrizes de anotação claras são cruciais. Sem elas, diferentes anotadores podem interpretar uma tarefa de forma diferente. 

Digamos que a tarefa seja anotar pássaros em imagens com caixas delimitadoras. Um anotador pode rotular o pássaro inteiro, enquanto outro pode rotular apenas a cabeça ou as asas. Esse tipo de inconsistência pode confundir o modelo durante o treinamento. Ao fornecer definições claras, como "rotule o pássaro inteiro, incluindo asas e cauda", juntamente com exemplos e instruções para casos complicados, você pode garantir que os dados sejam marcados de forma precisa e consistente.

Verificações de qualidade regulares também são importantes para manter altos padrões. Ao definir referências e usar métricas específicas para revisar o trabalho, você pode manter os dados precisos e refinar o processo por meio de feedback contínuo. 

Rotulagem de dados em poucas palavras

A anotação de dados é um conceito simples que pode ter um impacto significativo no seu modelo de visão computacional. Quer você esteja usando ferramentas como o LabelImg para anotar imagens ou treinando modelos em conjuntos de dados de código aberto, entender a rotulagem de dados é fundamental. As estratégias de rotulagem de dados podem ajudar a otimizar todo o processo e torná-lo mais eficiente. Dedicar tempo para refinar sua abordagem de anotação pode levar a resultados de IA melhores e mais confiáveis.

Continue explorando e expandindo suas habilidades! Mantenha-se conectado com a nossa comunidade para continuar aprendendo sobre IA! Confira nosso repositório GitHub para descobrir como estamos usando a IA para criar soluções inovadoras em setores como manufatura e saúde. 🚀

Vamos construir o futuro
da IA juntos!

Comece sua jornada com o futuro do aprendizado de máquina

Comece gratuitamente
Link copiado para a área de transferência