Explorar a rotulagem de dados para projetos de visão computacional
Lê a nossa análise aprofundada sobre a rotulagem de dados no contexto de projetos de visão computacional e aprende como rotular dados visuais e porque é tão importante.

A inteligência artificial (IA) foca em dar às máquinas capacidades semelhantes às humanas, e uma das formas mais populares de fazer isso é através do aprendizado supervisionado. Em outras palavras, ensinar modelos de IA mostrando-lhes exemplos rotulados pode ajudá-los a aprender com padrões e melhorar em tarefas. É muito semelhante a como os humanos aprendem com a experiência. Então, como esses exemplos rotulados são criados?
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 objetos, ações ou cenas com precisão. 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 de um projeto de IA é gasto no gerenciamento de 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 torna possível que 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.
Link to this sectionPor que a anotação de dados é necessária#
A anotação de dados forma a base do desempenho de um modelo de visão computacional. Dados rotulados são a verdade fundamental (ground truth) que o modelo usa para aprender e fazer previsões. Dados de verdade fundamental são essenciais porque representam o mundo real que o modelo tenta entender. Sem essa base confiável, o modelo de IA seria como um navio navegando sem bússola.

Fig 1. Verdade Fundamental Vs. Previsão.
A rotulagem precisa ajuda esses modelos a entender o que estão vendo e leva a uma melhor tomada de decisão. Se os dados forem mal rotulados ou inconsistentes, o modelo terá dificuldade em 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.
Link to this sectionMelhores recursos para conjuntos de dados#
Antes de criar um conjunto de dados do zero e rotular meticulosamente imagens e vídeos, é uma boa ideia ver se você pode usar conjuntos de dados pré-existentes para o seu projeto. Existem vários repositórios fantásticos de código aberto 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 imagens.
- 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.

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 adapta ao seu projeto, o tamanho do conjunto de dados, sua diversidade e a qualidade dos rótulos. Além disso, certifique-se de revisar os termos de licenciamento do conjunto de dados para evitar quaisquer repercussões legais e verifique se os dados estão formatados de uma maneira que atenda 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 exatamente às suas necessidades. Você pode reunir imagens usando ferramentas como webcams, drones ou smartphones, dependendo do que seu projeto exige. Idealmente, seu conjunto de dados personalizado deve ser diversificado, 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 você só consegue coletar um número menor de imagens ou vídeos, a aumentação de dados é uma técnica útil. Ela envolve expandir seu conjunto de dados aplicando transformações como rotação, inversão ou ajustes de cor às imagens existentes. Isso aumenta o tamanho do seu conjunto de dados e torna seu modelo mais robusto e mais capaz de lidar com variações nos dados. Ao usar uma mistura de conjuntos de dados de código aberto, conjuntos de dados personalizados e dados aumentados, você pode aumentar significativamente o desempenho de seus modelos de visão computacional.
Link to this sectionTipos 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 o ajudará a escolher a certa para o seu projeto. A seguir, veremos alguns dos principais tipos de anotações.
Link to this sectionBounding boxes#
Caixas delimitadoras (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 caixas delimitadoras são usadas principalmente para detecção de objetos.

Fig 3. Um Exemplo de Caixas Delimitadoras.
Link to this sectionMáscaras de segmentação#
Às vezes, um objeto precisa ser detectado com mais precisão do que apenas por uma caixa delimitadora desenhada ao redor dele. Você pode estar interessado no limite dos objetos em uma imagem. Nesse caso, as máscaras de segmentação permitem que você contorne objetos complexos. Máscaras de segmentação são uma representação mais detalhada em nível de 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 ao identificar e separar cada objeto individualmente, como distinguir entre cada carro em uma imagem, mesmo que todos sejam do mesmo tipo.

Fig 4. Um Exemplo de Segmentação Semântica (esquerda) e Máscaras de Segmentação de Instância (direita).
Link to this sectionCuboides 3D#
Cuboides 3D são semelhantes às caixas delimitadoras; 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. Cuboides 3D são frequentemente usados em carros autônomos para medir a distância dos objetos em relação ao veículo.

Fig 5. Um Exemplo de Cuboides 3D.
Link to this sectionPontos-chave e marcos#
Outro tipo interessante de anotação são os pontos-chave, onde pontos específicos como olhos, narizes ou articulações são marcados em objetos. Marcos (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.

Fig 6. Um Exemplo de Pontos-Chave.
Link to this sectionComo 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 torna a anotação de imagem simples e pode ser usada para criar conjuntos de dados no formato YOLO (You Only Look Once). É uma ótima escolha para iniciantes que trabalham em pequenos projetos Ultralytics YOLOv8.
Configurar o LabelImg é simples. Primeiro, certifique-se de ter o Python 3 instalado no seu computador. Em seguida, você pode instalar o LabelImg com um comando rápido:
pip3 install labelImgUma vez instalado, você pode iniciar a ferramenta usando o comando:
labelImgO 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.

Fig 7. Usando o LabelImg para Anotação de Imagem.
Assim que iniciar a ferramenta, siga estes passos simples para começar a rotular suas imagens:
- Configure suas classes: Comece definindo a lista de classes (categorias) que você deseja anotar em um arquivo chamado “predefined_classes.txt.” Este arquivo permite que o software saiba quais objetos você estará rotulando em suas imagens.
- Mude 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 você deseja anotar e atribua o rótulo de classe correto. Após 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.
- Salve e revise: 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.
Link to this sectionEstratégias eficientes de rotulagem de dados#
Para tornar o processo de rotulagem de dados mais fluido, existem algumas estratégias importantes a serem lembradas. Por exemplo, diretrizes claras de anotação são cruciais. Sem elas, diferentes anotadores podem interpretar uma tarefa de maneira 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 com precisão e consistência.
Verificações regulares de qualidade também são importantes para manter altos padrões. Ao estabelecer benchmarks 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.
Link to this sectionRotulagem de dados em resumo#
A anotação de dados é um conceito simples que pode ter um impacto significativo no seu modelo de visão computacional. Esteja você 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. 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! Fique conectado com nossa comunidade para continuar aprendendo sobre IA! Confira nosso repositório GitHub para descobrir como estamos usando IA para criar soluções inovadoras em setores como manufatura e saúde. 🚀






