Ultralytics YOLO27:
Get Started

Estratégias de coleta e anotação de dados para visão computacional#

A coleta e a anotação de dados são as duas etapas fundamentais de todo projeto de visão computacional: você reúne imagens ou vídeos representativos e, em seguida, os rotula para que um modelo possa aprender com eles. A qualidade desses dados determina diretamente o desempenho do modelo; por isso, definir as classes, coletar dados sem viés e manter a consistência das anotações são aspectos importantes antes de começar qualquer treinamento.



Assista: Como criar estratégias eficazes de coleta e anotação de dados para visão computacional 🚀

Este guia aborda como configurar classes e coletar dados, o que é anotação de dados, além dos tipos e formatos de anotação disponíveis, e estratégias eficientes de rotulagem — com cada decisão alinhada aos objetivos do seu projeto.

Configuração de classes e coleta de dados#

A coleta de imagens e vídeos para um projeto de visão computacional se resume a três decisões: quantas classes definir, onde obter os dados e como manter o conjunto de dados livre de vieses.

Como escolher as classes certas para o seu projeto#

Uma das primeiras perguntas ao iniciar um projeto de visão computacional é quantas classes incluir. Você precisa definir a composição das classes, ou seja, as diferentes categorias ou rótulos que quer que o modelo reconheça e diferencie. O número de classes deve ser determinado pelos objetivos específicos do seu projeto.

Por exemplo, se você quer monitorar o trânsito, suas classes podem incluir "carro", "caminhão", "ônibus", "motocicleta" e "bicicleta". Já para rastrear itens em uma loja, suas classes podem ser "frutas", "vegetais", "bebidas" e "lanches". Definir as classes com base nos objetivos do seu projeto ajuda a manter o conjunto de dados relevante e focado.

Ao definir suas classes, outra distinção importante é escolher entre uma contagem de classes ampla ou detalhada. 'Contagem' se refere ao número de classes distintas de seu interesse. Essa decisão influencia a granularidade dos seus dados e a complexidade do seu modelo. Veja os aspectos a considerar em cada abordagem:

  • Contagem ampla de classes: são categorias abrangentes e inclusivas, como "veículo" e "não veículo". Elas simplificam a anotação e exigem menos recursos computacionais, mas fornecem menos informações detalhadas, o que pode limitar a eficácia do modelo em cenários complexos.
  • Contagem detalhada de classes: inclui mais categorias com distinções mais específicas, como "sedã", "SUV", "caminhonete" e "motocicleta". Elas capturam informações mais detalhadas, melhorando a precisão e o desempenho do modelo. No entanto, sua anotação consome mais tempo e trabalho, além de exigir mais recursos computacionais.

Começar com classes mais específicas pode ser muito útil, principalmente em projetos complexos nos quais os detalhes são importantes. Classes mais específicas permitem coletar dados mais detalhados, obter insights mais profundos e estabelecer distinções mais claras entre categorias. Isso não só melhora a precisão do modelo, como também facilita ajustá-lo posteriormente, se necessário, economizando tempo e recursos.

Fontes de dados#

Você pode usar conjuntos de dados públicos ou coletar seus próprios dados personalizados. Conjuntos de dados públicos, como os disponíveis no Kaggle e no Google Dataset Search Engine, oferecem dados padronizados e bem anotados, sendo ótimos pontos de partida para treinar e validar modelos.

Por outro lado, a coleta de dados personalizados permite adaptar o conjunto de dados às suas necessidades específicas. Você pode capturar imagens e vídeos com câmeras ou drones, buscar imagens na web ou usar dados internos existentes da sua organização. Os dados personalizados dão a você mais controle sobre a qualidade e a relevância dos dados. Combinar fontes de dados públicas e personalizadas ajuda a criar um conjunto de dados diversificado e abrangente.

Como evitar vieses na coleta de dados#

Há viés quando determinados grupos ou cenários são sub-representados ou super-representados no conjunto de dados. Isso resulta em um modelo que tem bom desempenho em alguns dados, mas desempenho ruim em outros. É fundamental evitar vieses em IA para que seu modelo de visão computacional tenha bom desempenho em vários cenários.

Veja como evitar vieses durante a coleta de dados:

  • Fontes diversas: colete dados de várias fontes para capturar diferentes perspectivas e cenários.
  • Representação equilibrada: inclua uma representação equilibrada de todos os grupos relevantes. Por exemplo, considere diferentes idades, gêneros e etnias.
  • Monitoramento contínuo: revise e atualize regularmente seu conjunto de dados para identificar e corrigir vieses que possam surgir.
  • Técnicas de mitigação de vieses: use métodos como sobreamostragem de classes sub-representadas, aumento de dados e algoritmos que consideram a equidade.

Seguir essas práticas ajuda a criar um modelo mais robusto e justo, capaz de generalizar bem em aplicações reais.

O que é anotação de dados?#

A anotação de dados é o processo de rotular dados para torná-los utilizáveis no treinamento de modelos de aprendizado de máquina. Em visão computacional, isso significa rotular imagens ou vídeos com as informações que o modelo precisa aprender. Sem dados devidamente anotados, os modelos não conseguem aprender com precisão as relações entre as entradas e as saídas.

Tipos de anotação de dados#

Dependendo dos requisitos específicos de uma tarefa de visão computacional, há diferentes tipos de anotação de dados. Veja alguns exemplos:

  • Caixas delimitadoras: caixas retangulares desenhadas ao redor dos objetos em uma imagem, usadas principalmente em tarefas de detecção de objetos. Essas caixas são definidas pelas coordenadas dos cantos superior esquerdo e inferior direito.
  • Polígonos: contornos detalhados dos objetos, que permitem uma anotação mais precisa do que as caixas delimitadoras. Os polígonos são usados em tarefas como segmentação de instâncias, nas quais o formato do objeto é importante.
  • Máscaras: máscaras binárias em que cada pixel pertence a um objeto ou ao plano de fundo. As máscaras são usadas em tarefas de segmentação semântica para fornecer detalhes ao nível do pixel.
  • Pontos-chave: pontos específicos marcados em uma imagem para identificar locais de interesse. Os pontos-chave são usados em tarefas como estimativa de pose e detecção de pontos de referência faciais.
  • Caixas delimitadoras orientadas: retângulos que incluem um ângulo de rotação, usados em tarefas de OBB, nas quais os objetos aparecem em orientações arbitrárias, como em imagens aéreas.

Data annotation types including bounding boxes, polygons, and masks

Formatos comuns de anotação#

Depois de selecionar um tipo de anotação, é importante escolher o formato adequado para armazenar e compartilhar as anotações. Os formatos mais comuns são:

FormatoEstrutura de arquivosUsos comuns
COCOUm único arquivo JSONDetecção de objetos, segmentação de instâncias, detecção de pontos-chave, objetos de fundo e segmentação panóptica, legendagem de imagens
Pascal VOCUm arquivo XML por imagemDetecção de objetos
YOLOUm arquivo .txt por imagemDetecção de objetos, segmentação, pose e caixas orientadas

O formato YOLO armazena uma linha por objeto, com índices de classe começando em 0. Para detecção de objetos, a linha é class x_center y_center width height com coordenadas normalizadas de 0 a 1. Uma linha de segmentação substitui a caixa pelos pontos do polígono normalizados do objeto, enquanto uma linha de pose mantém a caixa e acrescenta depois dela as coordenadas dos pontos-chave, com um sinalizador de visibilidade para cada 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 usando coordenadas normalizadas dos vértices.

Se sua ferramenta de anotação exportar COCO JSON, você pode convertê-lo em rótulos YOLO .txt ou treinar diretamente com o JSON usando uma classe de conjunto de dados personalizada.

Como definir diretrizes de anotação#

Depois de escolher o tipo e o formato da anotação, a próxima etapa é estabelecer regras de rotulagem claras e objetivas. Essas regras servem como um roteiro para manter a consistência e a precisão ao longo do processo de anotação. Os principais aspectos dessas regras incluem:

  • Clareza e detalhes: certifique-se de que suas instruções sejam claras. Use exemplos e ilustrações para mostrar o que é esperado.
  • Consistência: mantenha a uniformidade das anotações. Defina critérios padrão para anotar diferentes tipos de dados, para que todas as anotações sigam as mesmas regras.
  • Redução de vieses: mantenha a neutralidade. Treine-se para ser objetivo e minimizar vieses pessoais, garantindo anotações justas.
  • Eficiência: trabalhe com mais inteligência, não mais esforço. Use ferramentas e fluxos de trabalho que automatizem tarefas repetitivas, tornando o processo de anotação mais rápido e eficiente.

Revisar e atualizar regularmente suas regras de rotulagem ajuda a manter as anotações precisas, consistentes e alinhadas aos objetivos do seu projeto.

Ferramentas de anotação#

Uma boa ferramenta de anotação permite rotular todos os tipos necessários para sua tarefa, aplica diretrizes consistentes e exporta rótulos em um formato pronto para treinamento. A Ultralytics Platform oferece um editor de anotações integrado que abrange detecção, segmentação de instâncias, segmentação semântica, classificação, pose e OBB, com anotação inteligente com tecnologia SAM que transforma um único clique em uma máscara para tarefas de detecção, segmentação de instâncias, segmentação semântica e OBB. Como as anotações são salvas no formato esperado por cada tarefa — linhas YOLO .txt para as tarefas espaciais e pastas de classes para classificação —, seu conjunto de dados rotulado vai diretamente para o treinamento, sem precisar de conversão.

Qualidade da anotação: precisão, exatidão e valores atípicos#

Antes de anotar em grande escala, é útil entender exatidão, precisão, valores atípicos e controle de qualidade para evitar rotular seus dados de forma contraproducente.

Entenda a exatidão e a precisão#

É importante entender a diferença entre exatidão e precisão e como esses conceitos se relacionam com a anotação. Exatidão indica o quanto os dados anotados se aproximam dos valores verdadeiros. Ela nos ajuda a medir o quanto os rótulos refletem situações reais. Precisão indica a consistência das anotações. Ela verifica se você atribui o mesmo rótulo ao mesmo objeto ou característica em todo o conjunto de dados. Uma exatidão e uma precisão elevadas resultam em modelos mais bem treinados, pois reduzem o ruído e melhoram a capacidade do modelo de generalizar a partir dos dados de treinamento.

Accuracy vs precision comparison for data annotation

Identificação de valores atípicos#

Valores atípicos são pontos de dados que se desviam bastante das demais observações no conjunto de dados. No contexto das anotações, um valor atípico pode ser uma imagem rotulada incorretamente ou uma anotação que não corresponde ao restante do conjunto de dados. Valores atípicos são preocupantes porque podem distorcer o processo de aprendizado do modelo, levando a previsões imprecisas e a uma generalização ruim.

Você pode usar vários métodos para detectar e corrigir valores atípicos:

  • Técnicas estatísticas: para detectar valores atípicos em características numéricas, como valores de pixel, coordenadas de caixas delimitadoras ou tamanhos de objetos, você pode usar métodos como diagramas de caixa, histogramas ou escores z.
  • Técnicas visuais: para identificar anomalias em características categóricas, como classes de objetos, cores ou formatos, use métodos visuais, como gráficos de imagens, rótulos ou mapas de calor.
  • Métodos algorítmicos: use ferramentas como agrupamento (por exemplo, agrupamento K-means, DBSCAN) e algoritmos de detecção de anomalias para identificar valores atípicos com base nos padrões de distribuição dos dados.

Controle de qualidade dos dados anotados#

Assim como em outros projetos técnicos, o controle de qualidade é essencial para dados anotados. É recomendável verificar regularmente as anotações para garantir que sejam precisas e consistentes. Isso pode ser feito de algumas maneiras diferentes:

  • Revisar amostras dos dados anotados
  • Usar ferramentas automatizadas para identificar erros comuns
  • Pedir para outra pessoa conferir as anotações

Se você trabalha com várias pessoas, é importante manter a consistência entre os diferentes anotadores. Um bom nível de concordância entre anotadores significa que as diretrizes são claras e todos as seguem da mesma maneira. Isso mantém todos alinhados e as anotações consistentes.

Durante a revisão, se encontrar erros, corrija-os e atualize as diretrizes para evitar problemas futuros. Dê feedback aos anotadores e ofereça treinamento regular para ajudar a reduzir erros. Um processo sólido para lidar com erros mantém seu conjunto de dados preciso e confiá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 claras de anotação: fornece instruções detalhadas com exemplos para garantir que todos os anotadores interpretem as tarefas da mesma forma. Por exemplo, ao rotular aves, especifica se é necessário incluir a ave inteira ou apenas partes específicas.
  • Verificações regulares de qualidade: define referências e usa métricas específicas para rever o trabalho, mantendo padrões elevados com feedback contínuo.
  • Usa ferramentas de pré-anotação: muitas plataformas modernas de anotação oferecem funcionalidades de pré-anotação assistidas por IA que podem acelerar significativamente o processo, gerando automaticamente anotações iniciais que as pessoas podem depois aperfeiçoar.
  • Implementa aprendizagem ativa: esta abordagem dá prioridade à rotulagem das amostras mais informativas, o que pode reduzir o número total de anotações necessárias e, ao mesmo tempo, manter 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 alta qualidade e, ao mesmo tempo, reduzir o tempo e os recursos necessários para o processo de rotulagem.

Conclusão#

Recolher dados diversos e imparciais e anotá-los de forma consistente com as ferramentas certas é a base de um modelo fiável de visão computacional. Com o conjunto de dados recolhido e rotulado, continua com o guia sobre etapas de um projeto de visão computacional para avançar para o treino e a avaliação. Se surgirem dúvidas pelo caminho, pergunta à comunidade no repositório do Ultralytics no GitHub ou no servidor do Ultralytics no Discord.

Perguntas frequentes#

  • Para minimizar os enviesamentos, recolhe dados de fontes diversas, garante uma representação equilibrada de todos os grupos relevantes (como diferentes idades, géneros e etnias), revê e atualiza regularmente o conjunto de dados para detetar enviesamentos emergentes e aplica técnicas de mitigação, como sobreamostragem de classes sub-representadas, aumento de dados e algoritmos que têm em conta a equidade. Evitar enviesamentos desta forma permite que o modelo de visão computacional tenha um bom desempenho em vários cenários do mundo real e melhora a sua capacidade de generalização.

  • Define diretrizes de rotulagem claras e objetivas, com instruções, exemplos e ilustrações detalhados, e aplica-as uniformemente a todos os tipos de dados, para que todas as anotações sigam as mesmas regras. Forma os anotadores para que mantenham a neutralidade e reduzam os enviesamentos pessoais, revê e atualiza as diretrizes regularmente e usa verificações automatizadas de consistência e feedback entre anotadores para manter a precisão elevada e alinhada com os objetivos do projeto.

  • Algumas centenas de objetos anotados por classe são suficientes para começar 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 cronograma de treino razoável — cerca de 300 épocas é um ponto de partida comum, que deves reduzir se o modelo começar a sobreajustar cedo — e mantém as anotações rigorosas e alinhadas com os objetivos específicos do projeto. Consulta 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 com tecnologia SAM acelera a rotulagem de tarefas de deteção, segmentação de instâncias, segmentação semântica e OBB, gerando máscaras com um único clique; os conjuntos de dados de pose podem usar modelos de pose YOLO para anotação inteligente, enquanto a classificação é anotada manualmente. As anotações são armazenadas no formato esperado por cada tarefa — linhas .txt do YOLO para as tarefas espaciais e pastas de classes para a 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 demoram consideravelmente 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; as caixas orientadas são adequadas para tarefas OBB, como imagens aéreas, nas quais um retângulo alinhado com os 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.

Comentários