Explorar a anotação de dados para projetos de visão computacional
Lê a nossa análise aprofundada e abrangente sobre a anotação de dados no contexto de projetos de visão computacional e aprende a anotar dados visuais e por que razão isso é tão importante.

A inteligência artificial (AI) centra-se em dar às máquinas capacidades semelhantes às humanas, e uma das formas mais populares de o fazer é através da aprendizagem supervisionada. Por outras palavras, ensinar modelos de AI mostrando-lhes exemplos rotulados pode ajudá-los a aprender padrões e a melhorar o desempenho em determinadas tarefas. É muito semelhante à forma como os seres humanos aprendem com a experiência. Então, como são criados estes exemplos rotulados?
A anotação de dados consiste em rotular ou etiquetar dados para ajudar os algoritmos de aprendizagem automática a compreendê-los. Na 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 é essencial porque o sucesso de um modelo de AI depende em grande medida da qualidade dos dados rotulados com que é treinado.
Estudos mostram que mais de 80% do tempo dos projetos de AI é dedicado à gestão de dados, desde a recolha e agregação até à limpeza e rotulagem. Isto demonstra a importância da anotação de dados no desenvolvimento de modelos de AI. A utilização de dados anotados de alta qualidade permite que os modelos de AI executem tarefas como o reconhecimento facial e a deteção de objetos com maior precisão e fiabilidade em situações do mundo real.
Porque é necessária a anotação de dados#
A anotação de dados é a base do desempenho de um modelo de visão computacional. Os dados rotulados constituem a verdade de referência que o modelo utiliza para aprender e fazer previsões. Os dados de verdade de referência são essenciais porque representam o mundo real que o modelo tenta compreender. Sem esta base fiável, o modelo de AI seria como um navio a navegar sem bússola.

Fig. 1. Verdade de referência vs. previsão.
Uma rotulagem precisa ajuda estes modelos a compreender o que estão a ver e conduz a melhores decisões. Se os dados estiverem mal rotulados ou forem inconsistentes, o modelo terá dificuldade em fazer previsões e tomar decisões corretas, tal como um estudante que aprende com manuais incorretos. Graças aos dados anotados, um modelo pode aprender tarefas como a classificação de imagens, a segmentação de instâncias e a estimativa de pose de objetos em imagens e vídeos.
Melhores recursos para conjuntos de dados#
Antes de criares um conjunto de dados totalmente novo e rotulares meticulosamente imagens e vídeos, é boa ideia verificar se podes utilizar conjuntos de dados existentes no teu projeto. Existem vários repositórios de código aberto excelentes onde podes aceder gratuitamente a conjuntos de dados de alta qualidade. Alguns dos mais populares incluem:
- ImageNet: É normalmente utilizado para treinar modelos de classificação de imagens.
- COCO: Este conjunto de dados foi concebido para deteção de objetos, segmentação e legendagem de imagens.
- PASCAL VOC: Suporta tarefas de deteção de objetos e segmentação.

Fig. 2. Exemplos de dados no conjunto de dados COCO.
Ao escolheres um conjunto de dados, é importante considerar fatores como a sua adequação ao projeto, o tamanho, a diversidade e a qualidade dos rótulos. Além disso, consulta os termos de licenciamento do conjunto de dados para evitares quaisquer consequências legais e verifica se os dados estão formatados de uma forma adequada ao teu fluxo de trabalho e às tuas ferramentas.
Criar um conjunto de dados personalizado é uma excelente opção se os conjuntos de dados existentes não responderem totalmente às tuas necessidades. Podes recolher imagens utilizando ferramentas como webcams, drones ou smartphones, dependendo dos requisitos do teu projeto. Idealmente, o teu conjunto de dados personalizado deve ser diversificado, equilibrado e verdadeiramente representativo do problema que estás a tentar resolver. Isto pode significar captar imagens em diferentes condições de iluminação, a partir de vários ângulos e em múltiplos ambientes.
Se só conseguires recolher um número reduzido de imagens ou vídeos, o aumento de dados é uma técnica útil. Consiste em expandir o conjunto de dados aplicando transformações como rotação, inversão ou ajustes de cor às imagens existentes. Isto aumenta o tamanho do conjunto de dados e torna o modelo mais robusto e mais capaz de lidar com variações nos dados. Ao combinares conjuntos de dados de código aberto, conjuntos de dados personalizados e dados aumentados, podes melhorar significativamente o desempenho dos teus modelos de visão computacional.
Tipos de técnicas de anotação de imagens#
Antes de começares a anotar imagens, é importante conheceres os diferentes tipos de anotações. Isto ajudar-te-á a escolher a opção certa para o teu projeto. De seguida, veremos alguns dos principais tipos de anotações.
Caixas delimitadoras#
As caixas delimitadoras são o tipo de anotação mais comum em visão computacional. São caixas retangulares utilizadas para marcar a localização de um objeto numa imagem. Estas caixas são definidas pelas coordenadas dos seus cantos e ajudam os modelos de AI a identificar e localizar objetos. As caixas delimitadoras são utilizadas principalmente para deteção de objetos.

Fig. 3. Um exemplo de caixas delimitadoras.
Máscaras de segmentação#
Por vezes, é necessário detetar um objeto com maior precisão do que através de uma simples caixa delimitadora desenhada à sua volta. Podes ter interesse nos limites dos objetos presentes numa 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 ao nível dos píxeis.
Estas máscaras podem ser utilizadas para segmentação semântica e segmentação de instâncias. A segmentação semântica consiste em rotular cada píxel de uma imagem de acordo com o objeto ou área que representa, como um peão, um carro, uma estrada ou um passeio. A segmentação de instâncias, contudo, vai mais longe ao identificar e separar cada objeto individualmente, distinguindo, por exemplo, cada carro numa imagem, mesmo que sejam todos do mesmo tipo.

Fig. 4. Um exemplo de máscaras de segmentação semântica (esquerda) e de instâncias (direita).
Paralelepípedos 3D#
Os paralelepípedos 3D são semelhantes às caixas delimitadoras; o que os torna únicos é o facto de adicionarem informação de profundidade e fornecerem uma representação 3D de um objeto. Esta informação adicional permite que os sistemas compreendam a forma, o volume e a posição dos objetos num espaço 3D. Os paralelepípedos 3D são frequentemente utilizados em carros autónomos para medir a distância dos objetos ao veículo.

Fig. 5. Um exemplo de paralelepípedos 3D.
Pontos-chave e pontos de referência#
Outro tipo interessante de anotação são os pontos-chave, nos quais pontos específicos, como olhos, narizes ou articulações, são marcados nos objetos. Os pontos de referência levam isto um passo mais longe, ligando estes pontos para captar a estrutura e o movimento de formas mais complexas, como rostos ou poses corporais. Estes tipos de anotações são utilizados em aplicações como reconhecimento facial, captura de movimento e realidade aumentada. Também melhoram a precisão dos modelos de AI em tarefas como reconhecimento de gestos ou análise do desempenho desportivo.

Fig. 6. Um exemplo de pontos-chave.
Como anotar dados utilizando o LabelImg#
Agora que abordámos os diferentes tipos de anotações, vamos compreender como podes anotar imagens utilizando uma ferramenta popular, o LabelImg. O LabelImg é uma ferramenta de código aberto que simplifica a anotação de imagens e pode ser utilizada para criar conjuntos de dados no formato YOLO (Só Olhas Uma Vez). É uma excelente opção para principiantes que trabalham em pequenos projetos Ultralytics YOLOv8.
A configuração do LabelImg é simples. Primeiro, certifica-te de que tens o Python 3 instalado no computador. Depois, podes instalar o LabelImg com um comando rápido:
pip3 install labelImgDepois de instalado, podes iniciar a ferramenta com o comando:
labelImgO LabelImg funciona em várias plataformas, incluindo Windows, macOS e Linux. Se encontrares algum problema durante a instalação, o repositório oficial do LabelImg pode fornecer instruções mais detalhadas.

Fig. 7. Utilização do LabelImg para anotação de imagens.
Depois de iniciares a ferramenta, segue estes passos simples para começares a rotular as tuas imagens:
- Configura as tuas classes: Começa por definir a lista de classes (categorias) que queres anotar num ficheiro chamado “predefined_classes.txt”. Este ficheiro informa o software sobre os objetos que vais rotular nas tuas imagens.
- Muda para o formato YOLO: Por predefinição, o LabelImg utiliza o formato PASCAL VOC, mas, se estiveres a trabalhar com YOLO, terás de mudar de formato. Basta clicares no botão “PascalVOC” da barra de ferramentas para mudares para YOLO.
- Começa a anotar: Utiliza as opções "Open" ou "OpenDIR" para carregares as tuas imagens. Depois, desenha caixas delimitadoras à volta dos objetos que queres anotar e atribui o rótulo de classe correto. Depois de rotulares cada imagem, guarda o teu trabalho. O LabelImg criará um ficheiro de texto com o mesmo nome da imagem, contendo as anotações YOLO.
- Guarda e revê: As anotações são guardadas num ficheiro .txt no formato YOLO. O software também guarda um ficheiro “classes.txt” que contém os nomes de todas as tuas classes.
Estratégias eficientes de rotulagem de dados#
Para tornares o processo de rotulagem de dados mais simples, há algumas estratégias importantes a ter em conta. Por exemplo, diretrizes claras de anotação são essenciais. Sem elas, diferentes anotadores podem interpretar uma tarefa de formas distintas.
Imagina que a tarefa consiste em anotar aves em imagens com caixas delimitadoras. Um anotador pode rotular a ave inteira, enquanto outro pode rotular apenas a cabeça ou as asas. Este tipo de inconsistência pode confundir o modelo durante o treino. Ao forneceres definições claras, como "rotula a ave inteira, incluindo as asas e a cauda", juntamente com exemplos e instruções para casos complexos, podes garantir que os dados são etiquetados de forma precisa e consistente.
As verificações regulares de qualidade também são importantes para manter padrões elevados. Ao definires referências e utilizares métricas específicas para rever o trabalho, podes manter a precisão dos dados e aperfeiçoar o processo através de feedback contínuo.
A rotulagem de dados em resumo#
A anotação de dados é um conceito simples que pode ter um impacto significativo no teu modelo de visão computacional. Quer utilizes ferramentas como o LabelImg para anotar imagens, quer treines modelos com conjuntos de dados de código aberto, compreender a rotulagem de dados é essencial. As estratégias de rotulagem de dados podem ajudar a simplificar todo o processo e a torná-lo mais eficiente. Dedicar tempo a aperfeiçoar a tua abordagem à anotação pode conduzir a resultados de AI melhores e mais fiáveis.
Continua a explorar e a desenvolver as tuas competências! Mantém-te ligado à nossa comunidade para continuares a aprender sobre AI! Consulta o nosso repositório do GitHub para descobrires como utilizamos AI para criar soluções inovadoras em setores como a indústria transformadora e os cuidados de saúde. 🚀









