Estratégias de Recolha e Anotação de Dados para Visão Computacional#
A recolha e a anotação de dados são os dois passos fundamentais de qualquer projeto de visão computacional: recolhes imagens ou vídeos representativos e, em seguida, atribuis-lhes rótulos para que um modelo possa aprender com eles. A qualidade destes dados determina diretamente o desempenho do modelo, razão pela qual a definição das classes, a origem imparcial dos dados e a anotação consistente são importantes antes de qualquer treino começar.
Watch: How to Build Effective Data Collection and Annotation Strategies for Computer Vision 🚀
Este guia aborda a configuração de classes e a recolha de dados, o que é a anotação de dados, juntamente com os tipos e formatos de anotação disponíveis, e estratégias eficientes de rotulagem — cada decisão alinhada com os objetivos do teu projeto.
Configuração de Classes e Recolha de Dados#
Recolher imagens e vídeos para um projeto de visão computacional resume-se a três decisões: quantas classes definir, onde obter os dados e como manter o conjunto de dados livre de enviesamentos.
Escolher as Classes Certas para o Teu Projeto#
Uma das primeiras questões ao iniciar um projeto de visão computacional é quantas classes incluir. Tens de determinar a pertença às classes, o que envolve as diferentes categorias ou rótulos que queres que o teu modelo reconheça e diferencie. O número de classes deve ser determinado pelos objetivos específicos do teu projeto.
Por exemplo, se quiseres monitorizar o trânsito, as tuas classes podem incluir "carro", "camião", "autocarro", "motociclo" e "bicicleta". Por outro lado, para acompanhar artigos numa loja, as tuas classes podem ser "frutas", "legumes", "bebidas" e "snacks". Definir classes com base nos objetivos do teu projeto ajuda a manter o teu conjunto de dados relevante e focado.
Ao definires as tuas classes, outra distinção importante é escolher entre uma contagem de classes abrangente ou detalhada. "Contagem" refere-se ao número de classes distintas que te interessam. Esta decisão influencia a granularidade dos teus dados e a complexidade do teu modelo. Eis os aspetos a considerar em cada abordagem:
- Contagem de Classes Abrangente: São categorias mais amplas e inclusivas, como "veículo" e "não veículo". Simplificam a anotação e exigem menos recursos computacionais, mas fornecem informações menos detalhadas, limitando potencialmente a eficácia do modelo em cenários complexos.
- Contagem de Classes Detalhada: Inclui mais categorias com distinções mais precisas, como "berlina", "SUV", "carrinha" e "motociclo". Captura informações mais detalhadas, melhorando a precisão e o desempenho do modelo. No entanto, a anotação exige mais tempo e trabalho, além de mais recursos computacionais.
Começar com classes mais específicas pode ser muito útil, especialmente em projetos complexos onde os detalhes são importantes. Classes mais específicas permitem recolher dados mais detalhados, obter conhecimentos mais profundos e estabelecer distinções mais claras entre categorias. Isto não só melhora a precisão do modelo, como também facilita o seu ajuste posterior, se necessário, poupando tempo e recursos.
Fontes de Dados#
Podes utilizar conjuntos de dados públicos ou recolher os teus próprios dados personalizados. Conjuntos de dados públicos, como os disponíveis no Kaggle e no Google Dataset Search Engine, oferecem dados bem anotados e normalizados, sendo excelentes pontos de partida para treinar e validar modelos.
Por outro lado, a recolha de dados personalizados permite adaptar o conjunto de dados às tuas necessidades específicas. Podes capturar imagens e vídeos com câmaras ou drones, recolher imagens da Web ou utilizar dados internos já existentes na tua organização. Os dados personalizados dão-te mais controlo sobre a sua qualidade e relevância. Combinar fontes de dados públicas e personalizadas ajuda a criar um conjunto de dados diversificado e abrangente.
Evitar Enviesamentos na Recolha de Dados#
O enviesamento ocorre quando determinados grupos ou cenários estão sub-representados ou sobre-representados no teu conjunto de dados. Isto conduz a um modelo que tem um bom desempenho em alguns dados, mas um desempenho fraco noutros. É crucial evitar o enviesamento em IA para que o teu modelo de visão computacional tenha um bom desempenho numa variedade de cenários.
Eis como podes evitar enviesamentos durante a recolha de dados:
- Fontes Diversificadas: Recolhe dados de muitas fontes para capturar diferentes perspetivas e cenários.
- Representação Equilibrada: Inclui uma representação equilibrada de todos os grupos relevantes. Por exemplo, considera diferentes idades, géneros e etnias.
- Monitorização Contínua: Analisa e atualiza regularmente o teu conjunto de dados para identificar e resolver quaisquer enviesamentos emergentes.
- Técnicas de Mitigação de Enviesamentos: Utiliza métodos como a sobreamostragem de classes sub-representadas, o aumento de dados e algoritmos conscientes da equidade.
Seguir estas práticas ajuda a criar um modelo mais robusto e justo, capaz de generalizar bem em aplicações do mundo real.
O que é a Anotação de Dados?#
A anotação de dados é o processo de atribuir rótulos aos dados para os tornar utilizáveis no treino de modelos de aprendizagem automática. Em visão computacional, isto significa rotular imagens ou vídeos com as informações de que um modelo precisa para aprender. Sem dados devidamente anotados, os modelos não conseguem aprender com precisão as relações entre entradas e saídas.
Tipos de Anotação de Dados#
Dependendo dos requisitos específicos de uma tarefa de visão computacional, existem diferentes tipos de anotação de dados. Eis alguns exemplos:
- Caixas Delimitadoras: Caixas retangulares desenhadas à volta dos objetos numa imagem, utilizadas principalmente em tarefas de deteção de objetos. Estas caixas são definidas pelas coordenadas do canto superior esquerdo e do canto inferior direito.
- Polígonos: Contornos detalhados dos objetos, permitindo uma anotação mais precisa do que as caixas delimitadoras. Os polígonos são utilizados em tarefas como a segmentação de instâncias, onde a forma do objeto é importante.
- Máscaras: Máscaras binárias nas quais cada píxel é parte de um objeto ou do fundo. As máscaras são utilizadas em tarefas de segmentação semântica para fornecer detalhes ao nível do píxel.
- Pontos-chave: Pontos específicos assinalados numa imagem para identificar locais de interesse. Os pontos-chave são utilizados em tarefas como a estimativa de pose e a deteção de pontos de referência faciais.
- Caixas Delimitadoras Orientadas: Retângulos que incluem um ângulo de rotação, utilizados em tarefas de OBB onde os objetos aparecem com orientações arbitrárias, como em imagens aéreas.
Formatos de Anotação Comuns#
Depois de selecionares um tipo de anotação, é importante escolher o formato adequado para armazenar e partilhar as anotações. Os formatos mais comuns são:
| Formato | Estrutura de ficheiros | Utilizado habitualmente para |
|---|---|---|
| COCO | Ficheiro JSON único | Deteção de objetos, segmentação de instâncias, deteção de pontos-chave, stuff e segmentação panóptica, legendagem de imagens |
| Pascal VOC | Um ficheiro XML por imagem | Deteção de objetos |
| YOLO | Um ficheiro .txt por imagem | Deteção de objetos, segmentação, pose e caixas orientadas |
O formato YOLO armazena uma linha por objeto, com índices de classe a começar em 0. Para deteção de objetos, a linha é class x_center y_center width height, com coordenadas normalizadas entre 0 e 1. Numa linha de segmentação, a caixa é substituída pelos pontos poligonais normalizados do objeto, enquanto uma linha de pose mantém a caixa e acrescenta as coordenadas dos pontos-chave depois dela, com um sinalizador de visibilidade por ponto-chave quando o conjunto de dados declara kpt_shape: [n, 3]. Uma linha de OBB armazena class x1 y1 x2 y2 x3 y3 x4 y4 utilizando coordenadas normalizadas dos cantos.
Se a tua ferramenta de anotação exportar COCO JSON, podes convertê-lo em rótulos YOLO .txt ou treinar diretamente com o JSON, utilizando uma classe de conjunto de dados personalizada.
Definir Diretrizes de Anotação#
Depois de escolheres o tipo e o formato de anotação, o passo seguinte é estabelecer regras de rotulagem claras e objetivas. Estas regras funcionam como um roteiro para garantir consistência e precisão ao longo do processo de anotação. Os principais aspetos destas regras incluem:
- Clareza e Detalhe: Certifica-te de que as tuas instruções são claras. Utiliza exemplos e ilustrações para mostrar o que é esperado.
- Consistência: Mantém as tuas anotações uniformes. Define critérios padrão para anotar diferentes tipos de dados, para que todas as anotações sigam as mesmas regras.
- Redução de Enviesamentos: Mantém-te neutro. Treina-te para ser objetivo e minimiza os enviesamentos pessoais, garantindo anotações justas.
- Eficiência: Trabalha de forma mais inteligente, não mais árdua. Utiliza ferramentas e fluxos de trabalho que automatizem tarefas repetitivas, tornando o processo de anotação mais rápido e eficiente.
Rever e atualizar regularmente as tuas regras de rotulagem ajudará a manter as anotações precisas, consistentes e alinhadas com os objetivos do teu projeto.
Ferramentas de Anotação#
Uma boa ferramenta de anotação permite rotular todos os tipos necessários para a tua tarefa, impõe diretrizes consistentes e exporta rótulos num formato pronto para o treino. A Ultralytics Platform disponibiliza um editor de anotações integrado que abrange deteção, segmentação de instâncias, segmentação semântica, classificação, pose e OBB, com anotação inteligente baseada em SAM que transforma um único clique numa máscara para tarefas de deteção, segmentação de instâncias, segmentação semântica e OBB. Como as anotações são guardadas no esquema esperado por cada tarefa — linhas YOLO .txt para as tarefas espaciais e pastas de classes para classificação — o teu conjunto de dados rotulado passa diretamente para o treino, sem necessidade de conversão.
Qualidade da Anotação: Exatidão, Precisão e Valores Atípicos#
Antes de anotar em grande escala, é útil compreender a exatidão, a precisão, os valores atípicos e o controlo de qualidade, para não rotulares os teus dados de forma contraproducente.
Compreender a Exatidão e a Precisão#
É importante compreender a diferença entre exatidão e precisão e a sua relação com a anotação. A exatidão refere-se à proximidade entre os dados anotados e os valores verdadeiros. Ajuda-nos a medir até que ponto os rótulos refletem cenários do mundo real. A precisão indica a consistência das anotações. Verifica se estás a atribuir o mesmo rótulo ao mesmo objeto ou característica em todo o conjunto de dados. Uma exatidão e uma precisão elevadas conduzem a modelos mais bem treinados, reduzindo o ruído e melhorando a capacidade do modelo de generalizar a partir dos dados de treino.
Identificar Valores Atípicos#
Os valores atípicos são pontos de dados que se desviam significativamente das restantes observações no conjunto de dados. No que diz respeito às anotações, um valor atípico pode ser uma imagem incorretamente rotulada ou uma anotação que não se enquadra no restante conjunto de dados. Os valores atípicos são preocupantes porque podem distorcer o processo de aprendizagem do modelo, conduzindo a previsões imprecisas e a uma generalização deficiente.
Podes utilizar vários métodos para detetar e corrigir valores atípicos:
- Técnicas Estatísticas: Para detetar valores atípicos em características numéricas, como valores de píxeis, coordenadas de caixas delimitadoras ou tamanhos de objetos, podes utilizar métodos como diagramas de caixa, histogramas ou pontuações z.
- Técnicas Visuais: Para detetar anomalias em características categóricas, como classes de objetos, cores ou formas, utiliza métodos visuais como a representação gráfica de imagens, rótulos ou mapas de calor.
- Métodos Algorítmicos: Utiliza ferramentas como clustering (por exemplo, clustering K-means e DBSCAN) e algoritmos de deteção de anomalias para identificar valores atípicos com base nos padrões de distribuição dos dados.
Controlo de Qualidade dos Dados Anotados#
Tal como noutros projetos técnicos, o controlo de qualidade é indispensável para os dados anotados. É uma boa prática verificar regularmente as anotações para garantir que são precisas e consistentes. Isto pode ser feito de várias formas:
- Rever amostras de dados anotados
- Utilizar ferramentas automatizadas para detetar erros comuns
- Pedir a outra pessoa para verificar novamente as anotações
Se estiveres a trabalhar com várias pessoas, a consistência entre diferentes anotadores é importante. Um bom acordo entre anotadores significa que as diretrizes são claras e que todos as seguem da mesma forma. Mantém todos alinhados e as anotações consistentes.
Durante a revisão, se encontrares erros, corrige-os e atualiza as diretrizes para evitar erros futuros. Dá feedback aos anotadores e oferece formação regular para ajudar a reduzir os erros. Ter um processo sólido para lidar com erros mantém o teu conjunto de dados preciso e fiável.
Estratégias Eficientes de Rotulagem de Dados#
Para tornar o processo de rotulagem de dados mais simples e eficaz, considera implementar estas estratégias:
- Diretrizes de Anotação Claras: Fornece instruções detalhadas com exemplos para garantir que todos os anotadores interpretam as tarefas de forma consistente. Por exemplo, ao rotular aves, especifica se deve ser incluída a ave inteira ou apenas partes específicas.
- Verificações Regulares de Qualidade: Define referências e utiliza métricas específicas para rever o trabalho, mantendo padrões elevados através de feedback contínuo.
- Utilizar Ferramentas de Pré-anotação: Muitas plataformas modernas de anotação oferecem funcionalidades de pré-anotação assistida por IA que podem acelerar significativamente o processo, gerando automaticamente anotações iniciais que os humanos podem depois aperfeiçoar.
- Implementar Aprendizagem Ativa: Esta abordagem dá prioridade à rotulagem das amostras mais informativas, o que pode reduzir o número total de anotações necessárias, mantendo o desempenho do modelo.
- Processamento em Lotes: Agrupa imagens semelhantes para anotação, de modo a manter a consistência e melhorar a eficiência.
Estas estratégias podem ajudar a manter anotações de elevada qualidade, reduzindo simultaneamente o tempo e os recursos necessários para o processo de rotulagem.
Conclusão#
Recolher dados diversificados e sem enviesamentos e anotá-los de forma consistente com as ferramentas certas é a base de um modelo de visão computacional fiável. Com o teu conjunto de dados recolhido e rotulado, continua para o guia sobre os passos de um projeto de visão computacional para avançares para o treino e a avaliação. Se surgirem dúvidas durante o processo, pergunta à comunidade no repositório Ultralytics no GitHub ou no servidor Ultralytics no Discord.
Perguntas frequentes#
Para minimizar os enviesamentos, recolhe dados de fontes diversificadas, garante uma representação equilibrada de todos os grupos relevantes (como diferentes idades, géneros e etnias), revê e atualiza regularmente o teu conjunto de dados para detetar enviesamentos emergentes e aplica técnicas de mitigação, como a sobreamostragem de classes sub-representadas, o aumento de dados e algoritmos conscientes da equidade. Evitar enviesamentos desta forma ajuda o teu modelo de visão computacional a manter um bom desempenho em diversos cenários do mundo real e melhora a sua capacidade de generalização.
Estabelece diretrizes de rotulagem claras e objetivas, com instruções detalhadas, exemplos e ilustrações, e aplica-as uniformemente a todos os tipos de dados para que cada anotação siga as mesmas regras. Forma os anotadores para se manterem neutros e reduzirem os enviesamentos pessoais, revê e atualiza regularmente as diretrizes e utiliza verificações automatizadas de consistência, juntamente com feedback entre anotadores, para manter uma elevada precisão alinhada com os objetivos do teu projeto.
Algumas centenas de objetos anotados por classe são suficientes para começares a experimentar aprendizagem por transferência, mas, para obter um desempenho fiável no mundo real, a Ultralytics recomenda pelo menos 1.500 imagens e 10.000 instâncias rotuladas por classe. Combina um conjunto de dados suficientemente grande com um plano de treino razoável — cerca de 300 épocas é um ponto de partida comum, reduzido se o modelo entrar rapidamente em overfitting — e mantém as tuas anotações rigorosas e alinhadas com os objetivos específicos do teu projeto. Explora estratégias de treino detalhadas no guia de treino do YOLO26.
Sim. A Ultralytics Platform inclui um editor de anotações integrado que suporta caixas delimitadoras, polígonos, pontos-chave, caixas orientadas e rótulos de classificação num único espaço de trabalho. A anotação inteligente baseada em SAM acelera a rotulagem para tarefas de deteção, segmentação de instâncias, segmentação semântica e OBB, gerando máscaras a partir de um único clique, enquanto a pose e a classificação são anotadas manualmente. As anotações são armazenadas no esquema esperado por cada tarefa — linhas YOLO
.txtpara as tarefas espaciais e pastas de classes para classificação — prontas para o treino.Escolhe o tipo de anotação de acordo com a tarefa que pretendes treinar. As caixas delimitadoras são as mais rápidas de desenhar e são tudo o que a deteção de objetos exige. Os polígonos e as máscaras requerem significativamente mais tempo por objeto, mas são necessários para a segmentação de instâncias quando a forma exata de um objeto é importante. Os pontos-chave são adequados para a estimativa de pose e a deteção de pontos de referência, enquanto as caixas orientadas são adequadas para tarefas de OBB, como imagens aéreas, onde um retângulo alinhado pelos eixos incluiria demasiado fundo. Anotar para a tarefa mais específica de que realmente precisas mantém o esforço de rotulagem proporcional ao resultado.