Salta para o conteúdo

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

Introdução

A chave para o sucesso de qualquer projeto de visão computacional começa com estratégias eficazes de coleta e anotação de dados. A qualidade dos dados tem impacto direto no desempenho do modelo, pelo que é importante compreender as melhores práticas relacionadas com a recolha e anotação de dados.

Todas as considerações relativas aos dados devem estar estreitamente alinhadas com os objectivos do teu projeto. As alterações nas tuas estratégias de anotação podem mudar o foco ou a eficácia do projeto e vice-versa. Com isto em mente, vamos analisar mais detalhadamente as melhores formas de abordar a recolha e anotação de dados.

Configurando aulas e coletando dados

A coleta de imagens e vídeos para um projeto de visão computacional envolve definir o número de classes, obter dados e considerar implicações éticas. Antes de começar a coletar seus dados, você precisa ter clareza sobre:

Escolhendo as classes certas para o seu projeto

Uma das primeiras questões ao iniciar um projeto de visão computacional é quantas classes incluir. Você precisa determinar a associação de classe, que envolve as diferentes categorias ou rótulos que você deseja que seu modelo reconheça e diferencie. O número de aulas deve ser determinado pelos objetivos específicos do seu projeto.

Por exemplo, se você quiser monitorar o tráfego, suas classes poderão incluir “carro”, “caminhão”, “ônibus”, “motocicleta” e “bicicleta”. Por outro lado, para rastrear itens em uma loja, suas classes poderiam ser “frutas”, “legumes”, “bebidas” e “lanches”. Definir classes com base nos objetivos do seu projeto ajuda a manter seu conjunto de dados relevante e focado.

Ao definir suas classes, outra distinção importante a fazer é escolher contagens de classes grosseiras ou finas. 'Contagem' refere-se ao número de classes distintas nas quais você está interessado. Essa decisão influencia a granularidade dos seus dados e a complexidade do seu modelo. Aqui estão as considerações para cada abordagem:

  • Contagem de classes grosseiras: Trata-se de categorias mais amplas e inclusivas, como "veículo" e "não veículo". Simplificam a anotação e requerem menos recursos computacionais, mas fornecem informações menos detalhadas, limitando potencialmente a eficácia do modelo em cenários complexos.
  • Contagem de classes finas: Mais categorias com distinções mais finas, como "sedan", "SUV", "camioneta" e "motocicleta". Capturam informações mais detalhadas, melhorando a precisão e o desempenho do modelo. No entanto, a sua anotação é mais demorada e trabalhosa e requer mais recursos computacionais.

Algo a ser observado é que começar com aulas mais específicas pode ser muito útil, principalmente em projetos complexos onde os detalhes são importantes. Classes mais específicas permitem coletar dados mais detalhados e obter insights mais profundos e distinções mais claras entre categorias. Isso não apenas melhora a precisão do modelo, mas também facilita o ajuste posterior do modelo, se necessário, economizando tempo e recursos.

Fontes de dados

Podes utilizar conjuntos de dados públicos ou reunir os teus próprios dados personalizados. Os conjuntos de dados públicos, como os do Kaggle e do Google Dataset Search Engine, oferecem dados padronizados e bem anotados, o que os torna excelentes pontos de partida para treinar e validar modelos.

A coleta de dados personalizada, por outro lado, permite personalizar seu conjunto de dados de acordo com suas necessidades específicas. Você pode capturar imagens e vídeos com câmeras ou drones, vasculhar a web em busca de imagens ou usar dados internos existentes de sua organização. Os dados personalizados oferecem mais controle sobre sua qualidade e relevância. A combinação de fontes de dados públicas e personalizadas ajuda a criar um conjunto de dados diversificado e abrangente.

Evitando preconceitos na coleta de dados

O preconceito ocorre quando determinados grupos ou cenários estão sub-representados ou sobre-representados no seu conjunto de dados. Isso leva a um modelo com bom desempenho em alguns dados, mas ruim em outros. É crucial evitar preconceitos para que seu modelo de visão computacional possa funcionar bem em diversos cenários.

Veja como você pode evitar preconceitos ao coletar dados:

  • Fontes diversas: Recolhe dados de várias fontes para captar diferentes perspectivas 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: Revê e actualiza regularmente o teu conjunto de dados para identificar e resolver quaisquer enviesamentos emergentes.
  • Técnicas de atenuação de preconceitos: Utiliza métodos como a sobreamostragem de classes sub-representadas, o aumento de dados e algoritmos sensíveis à equidade.

Seguir essas práticas ajuda a criar um modelo mais robusto e justo que pode ser bem generalizado em aplicações do mundo real.

O que é anotação de dados?

A anotação de dados é o processo de rotular os dados para torná-los utilizáveis no treinamento de modelos de aprendizado de máquina. Na visão computacional, isso significa rotular imagens ou vídeos com as informações que um modelo precisa aprender. Sem dados devidamente anotados, os modelos não podem 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 de delimitação: Caixas rectangulares desenhadas à volta de objectos numa imagem, utilizadas principalmente para tarefas de deteção de objectos. Estas caixas são definidas pelas suas coordenadas superior esquerda e inferior direita.
  • Polígonos: Contornos detalhados para objectos, 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, em que a forma do objeto é importante.
  • Máscaras: Máscaras binárias em que cada pixel é 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 pixel.
  • Pontos-chave: Pontos específicos marcados 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 marcas faciais.

Tipos de anotação de dados

Formatos de anotação comuns

Após selecionar um tipo de anotação, é importante escolher o formato apropriado para armazenar e compartilhar anotações.

Os formatos normalmente utilizados incluem o COCO, que suporta vários tipos de anotação, como deteção de objectos, deteção de pontos-chave, segmentação de material, segmentação panóptica e legendas de imagens, armazenados em JSON. O Pascal VOC utiliza ficheiros XML e é popular para tarefas de deteção de objectos. YOLO O , por outro lado, cria um ficheiro .txt para cada imagem, contendo anotações como a classe do objeto, coordenadas, altura e largura, o que o torna adequado para a deteção de objectos.

Técnicas de anotação

Agora, supondo que você tenha escolhido um tipo de anotação e formato, é hora de estabelecer regras de rotulagem claras e objetivas. Essas regras são como um roteiro para consistência e precisão em todo o processo de anotação. Os principais aspectos dessas regras incluem:

  • Clareza e detalhe: Certifica-te de que as tuas instruções são claras. Utiliza exemplos e ilustrações para compreenderes o que é esperado.
  • Mantém a 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.
  • Reduzir a parcialidade: Mantém-te neutro. Treina-te para seres objetivo e minimiza os preconceitos pessoais para garantir anotações justas.
  • Eficiência: Trabalha de forma mais inteligente, não mais difícil. Utiliza ferramentas e fluxos de trabalho que automatizam tarefas repetitivas, tornando o processo de anotação mais rápido e eficiente.

Revisar e atualizar regularmente suas regras de rotulagem ajudará a manter suas anotações precisas, consistentes e alinhadas com os objetivos do projeto.

Digamos que você esteja pronto para fazer anotações agora. Existem várias ferramentas de código aberto disponíveis para ajudar a agilizar o processo de anotação de dados. Aqui estão algumas ferramentas úteis de anotação aberta:

  • Estúdio de etiquetas: Uma ferramenta flexível que suporta uma vasta gama de tarefas de anotação e inclui funcionalidades para gerir projectos e controlo de qualidade.
  • CVAT: Uma ferramenta poderosa que suporta vários formatos de anotação e fluxos de trabalho personalizáveis, tornando-a adequada para projectos complexos.
  • Etiqueta-me: Uma ferramenta simples e fácil de utilizar que permite a anotação rápida de imagens com polígonos, tornando-a ideal para tarefas simples.

Visão geral do LabelMe

Essas ferramentas de código aberto são econômicas e oferecem uma variedade de recursos para atender a diferentes necessidades de anotação.

Mais algumas coisas a considerar antes de anotar dados

Antes de começar a anotar seus dados, há mais algumas coisas que você deve ter em mente. Você deve estar ciente da exatidão, precisão, valores discrepantes e controle de qualidade para evitar rotular seus dados de maneira contraproducente.

Compreendendo a exatidão e a precisão

É importante compreender a diferença entre exatidão e precisão e como isso se relaciona com a anotação. A precisão se refere a quão próximos os dados anotados estão dos valores verdadeiros. Isso nos ajuda a medir até que ponto os rótulos refletem os cenários do mundo real. A precisão indica a consistência das anotações. Ele verifica se você está atribuindo o mesmo rótulo ao mesmo objeto ou recurso em todo o conjunto de dados. Alta exatidão e precisão levam a modelos melhor treinados, reduzindo o ruído e melhorando a capacidade do modelo de generalizar a partir dos dados de treinamento.

Exemplo de precisão

Identificando valores discrepantes

Outliers são pontos de dados que se desviam bastante de outras observações no conjunto de dados. Com relação às anotações, um valor discrepante pode ser uma imagem rotulada incorretamente ou uma anotação que não se ajusta ao restante do conjunto de dados. Os valores discrepantes são preocupantes porque podem distorcer o processo de aprendizagem do modelo, levando a previsões imprecisas e a uma generalização deficiente.

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

  • Técnicas estatísticas: Para detetar valores atípicos em características numéricas como valores de pixel, coordenadas de caixa delimitadora ou tamanhos de objectos, podes utilizar métodos como gráficos de caixa, histogramas ou pontuações z.
  • Técnicas visuais: Para detetar anomalias em características categóricas, como classes de objectos, cores ou formas, utiliza métodos visuais, como imagens de gráficos, etiquetas ou mapas de calor.
  • Métodos algorítmicos: Utiliza ferramentas como clustering (por exemplo, K-means clustering, DBSCAN) e algoritmos de deteção de anomalias para identificar outliers com base em padrões de distribuição de dados.

Controle de qualidade de dados anotados

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

  • Revendo amostras de dados anotados
  • Usando ferramentas automatizadas para detectar erros comuns
  • Peça a outra pessoa para verificar as anotações

Se você estiver trabalhando com várias pessoas, a consistência entre os diferentes anotadores é importante. Um bom acordo entre anotadores significa que as diretrizes são claras e todos as seguem da mesma maneira. Ele mantém todos na mesma página e as anotações consistentes.

Durante a revisão, se encontrar erros, corrija-os e atualize as orientações para evitar erros futuros. Forneça feedback aos anotadores e ofereça treinamento regular para ajudar a reduzir erros. Ter um processo robusto para lidar com erros mantém seu conjunto de dados preciso e confiável.

Compartilhe suas idéias com a comunidade

Compartilhar suas ideias e dúvidas com outros entusiastas da visão computacional pode ajudar a acelerar seus projetos. Aqui estão algumas ótimas maneiras de aprender, solucionar problemas e fazer networking:

Onde encontrar ajuda e suporte

  • Problemas do GitHub: Visita o repositório YOLOv8 GitHub e utiliza o separador Problemas para colocar questões, comunicar erros e sugerir funcionalidades. A comunidade e os mantenedores estão lá para ajudar com quaisquer problemas que enfrentes.
  • Ultralytics Servidor Discord: Junta-te ao servidor Discord deUltralytics para te ligares a outros utilizadores e programadores, obteres apoio, partilhares conhecimentos e debateres ideias.

Documentação oficial

  • Ultralytics YOLOv8 Documentação: Consulta a documentação oficial do YOLOv8 para obteres guias completos e informações valiosas sobre várias tarefas e projectos de visão por computador.

Conclusão

Seguindo as práticas recomendadas para coleta e anotação de dados, evitando preconceitos e usando as ferramentas e técnicas corretas, você pode melhorar significativamente o desempenho do seu modelo. Envolver-se com a comunidade e usar os recursos disponíveis irá mantê-lo informado e ajudá-lo a solucionar problemas de forma eficaz. Lembre-se de que dados de qualidade são a base de um projeto bem-sucedido e as estratégias certas o ajudarão a construir modelos robustos e confiáveis.

FAQ

Qual é a melhor forma de evitar enviesamentos na recolha de dados para projectos de visão computacional?

Evitar a parcialidade na recolha de dados garante que o teu modelo de visão por computador tem um bom desempenho em vários cenários. Para minimizar o viés, considera a coleta de dados de diversas fontes para capturar diferentes perspectivas e cenários. Assegura uma representação equilibrada entre todos os grupos relevantes, como diferentes idades, gêneros e etnias. Revê e actualiza regularmente o teu conjunto de dados para identificar e resolver quaisquer enviesamentos emergentes. Técnicas como a sobreamostragem de classes sub-representadas, o aumento de dados e algoritmos sensíveis à equidade também podem ajudar a atenuar os preconceitos. Ao utilizar estas estratégias, mantém um conjunto de dados robusto e justo que melhora a capacidade de generalização do modelo.

Como é que posso garantir uma elevada consistência e precisão na anotação de dados?

Garantir uma elevada consistência e precisão na anotação de dados implica estabelecer directrizes de rotulagem claras e objectivas. As tuas instruções devem ser detalhadas, com exemplos e ilustrações para clarificar as expectativas. A consistência é conseguida através da definição de critérios padrão para anotar vários tipos de dados, garantindo que todas as anotações seguem as mesmas regras. Para reduzir os preconceitos pessoais, treina os anotadores para se manterem neutros e objectivos. Revisões e actualizações regulares das regras de etiquetagem ajudam a manter a precisão e o alinhamento com os objectivos do projeto. A utilização de ferramentas automatizadas para verificar a consistência e a obtenção de feedback de outros anotadores também contribuem para manter anotações de elevada qualidade.

De quantas imagens necessito para treinar os modelos Ultralytics YOLO ?

Para uma aprendizagem de transferência eficaz e deteção de objectos com modelos Ultralytics YOLO , começa com um mínimo de algumas centenas de objectos anotados por classe. Se estiver a treinar para apenas uma classe, começa com pelo menos 100 imagens anotadas e treina durante aproximadamente 100 épocas. Tarefas mais complexas podem requerer milhares de imagens por classe para obter uma elevada fiabilidade e desempenho. As anotações de qualidade são cruciais, por isso certifica-te de que os teus processos de recolha de dados e anotação são rigorosos e estão alinhados com os objectivos específicos do teu projeto. Explora estratégias de formação detalhadas no guia de formaçãoYOLOv8 .

Várias ferramentas populares de código aberto podem simplificar o processo de anotação de dados:

  • Estúdio de etiquetas: Uma ferramenta flexível que suporta várias tarefas de anotação, gestão de projectos e funcionalidades de controlo de qualidade.
  • CVAT: Oferece vários formatos de anotação e fluxos de trabalho personalizáveis, tornando-o adequado para projectos complexos.
  • Etiqueta-me: Ideal para anotar imagens de forma rápida e direta com polígonos.

Estas ferramentas podem ajudar a melhorar a eficiência e a precisão dos teus fluxos de trabalho de anotação. Para obter listas de características e guias abrangentes, consulta a nossa documentação sobre ferramentas de anotação de dados.

Que tipos de anotação de dados são normalmente utilizados na visão computacional?

Diferentes tipos de anotação de dados servem para várias tarefas de visão computacional:

  • Caixas de delimitação: Utilizadas principalmente para a deteção de objectos, são caixas rectangulares à volta dos objectos numa imagem.
  • Polígonos: Fornece contornos de objectos mais precisos, adequados para tarefas de segmentação de instâncias.
  • Máscaras: Oferece detalhes ao nível do pixel, utilizados na segmentação semântica para diferenciar objectos do fundo.
  • Pontos-chave: Identifica pontos de interesse específicos numa imagem, úteis para tarefas como a estimativa de pose e a deteção de marcas faciais.

A seleção do tipo de anotação adequado depende dos requisitos do teu projeto. Sabe mais sobre como implementar estas anotações e os seus formatos no nosso guia de anotação de dados.



Criado em 2024-05-31, Atualizado em 2024-07-05
Autores: glenn-jocher (3), abirami-vina (1)

Comentários