Salta para o conteúdo

Compreender os principais passos de um projeto de visão computacional

Introdução

A visão por computador é um subcampo da inteligência artificial (IA) que ajuda os computadores a ver e a compreender o mundo como os humanos. Processa e analisa imagens ou vídeos para extrair informações, reconhecer padrões e tomar decisões com base nesses dados.

As técnicas de visão por computador, como a deteção de objectos, a classificação de imagens e a segmentação de instâncias, podem ser aplicadas em várias indústrias, desde a condução autónoma à imagiologia médica, para obter informações valiosas.

Visão geral das técnicas de visão por computador

Trabalhar em seus próprios projetos de visão computacional é uma ótima maneira de entender e aprender mais sobre visão computacional. No entanto, um projeto de visão computacional pode consistir em muitas etapas e pode parecer confuso à primeira vista. Ao final deste guia, você estará familiarizado com as etapas envolvidas em um projeto de visão computacional. Examinaremos tudo, do início ao fim de um projeto, explicando por que cada parte é importante. Vamos começar e tornar seu projeto de visão computacional um sucesso!

Uma visão geral de um projeto de visão por computador

Antes de discutir os detalhes de cada etapa envolvida em um projeto de visão computacional, vejamos o processo geral. Se você iniciou um projeto de visão computacional hoje, seguiria as seguintes etapas:

  • Sua primeira prioridade seria entender os requisitos do seu projeto.
  • Em seguida, você coletará e rotulará com precisão as imagens que ajudarão a treinar seu modelo.
  • Em seguida, você limparia seus dados e aplicaria técnicas de aumento para prepará-los para o treinamento do modelo.
  • Após o treinamento do modelo, você testaria e avaliaria exaustivamente seu modelo para garantir que ele funcionasse de forma consistente sob diferentes condições.
  • Por fim, você implantaria seu modelo no mundo real e o atualizaria com base em novos insights e feedback.

Visão computacional Visão geral das etapas do projeto

Agora que sabemos o que esperar, vamos mergulhar nos passos e fazer avançar o teu projeto.

Etapa 1: Definindo os objetivos do seu projeto

A primeira etapa em qualquer projeto de visão computacional é definir claramente o problema que você está tentando resolver. Conhecer o objetivo final ajuda você a começar a construir uma solução. Isso é especialmente verdadeiro quando se trata de visão computacional porque o objetivo do seu projeto afetará diretamente a tarefa de visão computacional em que você precisa se concentrar.

Seguem-se alguns exemplos de objectivos de projectos e de tarefas de visão por computador que podem ser utilizadas para atingir esses objectivos:

  • Objetivo: Desenvolver um sistema que possa monitorizar e gerir o fluxo de diferentes tipos de veículos nas auto-estradas, melhorando a gestão e a segurança do tráfego.

    • Tarefa de visão computacional: A deteção de objectos é ideal para a monitorização do tráfego porque localiza e identifica eficazmente vários veículos. É menos exigente em termos computacionais do que a segmentação de imagens, que fornece detalhes desnecessários para esta tarefa, garantindo uma análise mais rápida e em tempo real.
  • Objetivo: Desenvolver uma ferramenta que auxilie os radiologistas, fornecendo contornos precisos, ao nível do pixel, de tumores em exames de imagiologia médica.

    • Tarefa de visão computacional: A segmentação de imagens é adequada para a imagiologia médica porque fornece limites precisos e detalhados de tumores que são cruciais para avaliar o tamanho, a forma e o planeamento do tratamento.
  • Objetivo: Criar um sistema digital que categorize vários documentos (por exemplo, facturas, recibos, papelada legal) para melhorar a eficiência organizacional e a recuperação de documentos.

    • Tarefa de visão computacional: A classificação de imagens é ideal neste caso, uma vez que trata um documento de cada vez, sem ter de considerar a posição do documento na imagem. Esta abordagem simplifica e acelera o processo de classificação.

Passo 1.5: Selecionar o modelo e a abordagem de formação correctos

Depois de compreender o objetivo do projeto e as tarefas de visão computacional adequadas, uma parte essencial da definição do objetivo do projeto é a seleção do modelo e da abordagem de formação correctos.

Dependendo do objetivo, podes optar por selecionar o modelo primeiro ou depois de veres quais os dados que consegues recolher no Passo 2. Por exemplo, supõe que o teu projeto depende muito da disponibilidade de tipos específicos de dados. Nesse caso, pode ser mais prático recolher e analisar os dados primeiro, antes de selecionar um modelo. Por outro lado, se tiveres uma compreensão clara dos requisitos do modelo, podes escolher primeiro o modelo e depois recolher os dados que correspondem a essas especificações.

A escolha entre treinar do zero ou usar a aprendizagem por transferência afeta a forma como você prepara seus dados. O treinamento do zero requer um conjunto de dados diversificado para construir a compreensão do modelo desde o início. A aprendizagem por transferência, por outro lado, permite usar um modelo pré-treinado e adaptá-lo com um conjunto de dados menor e mais específico. Além disso, a escolha de um modelo específico para treinar determinará como você precisa preparar seus dados, como redimensionar imagens ou adicionar anotações, de acordo com os requisitos específicos do modelo.

Treinar do zero vs. utilizar a aprendizagem por transferência

Nota: Ao escolher um modelo, considera a sua implementação para garantir a compatibilidade e o desempenho. Por exemplo, modelos leves são ideais para computação de ponta devido à sua eficiência em dispositivos com recursos limitados. Para saber mais sobre os pontos-chave relacionados com a definição do teu projeto, lê o nosso guia sobre como definir os objectivos do teu projeto e selecionar o modelo certo.

Antes de entrares no trabalho prático de um projeto de visão por computador, é importante teres uma compreensão clara destes detalhes. Verifica se consideraste o seguinte antes de passares ao Passo 2:

  • Defina claramente o problema que você está tentando resolver.
  • Determina o objetivo final do teu projeto.
  • Identifica a tarefa específica de visão computacional necessária (por exemplo, deteção de objectos, classificação de imagens, segmentação de imagens).
  • Decide se quer treinar um modelo de raiz ou utilizar a aprendizagem por transferência.
  • Selecciona o modelo adequado à tua tarefa e às tuas necessidades de implementação.

Etapa 2: Recolha de dados e anotação de dados

A qualidade dos teus modelos de visão por computador depende da qualidade do teu conjunto de dados. Podes recolher imagens da Internet, tirar as tuas próprias fotografias ou utilizar conjuntos de dados pré-existentes. Aqui estão alguns recursos excelentes para descarregar conjuntos de dados de alta qualidade: Google Dataset Search Engine, UC Irvine Machine Learning Repository, e Kaggle Datasets.

Algumas bibliotecas, como Ultralytics, fornecem suporte integrado para vários conjuntos de dados, facilitando o início da utilização de dados de alta qualidade. Estas bibliotecas incluem frequentemente utilitários para utilizar conjuntos de dados populares sem problemas, o que pode poupar muito tempo e esforço nas fases iniciais do seu projeto.

No entanto, se você optar por coletar imagens ou tirar suas próprias fotos, precisará anotar seus dados. A anotação de dados é o processo de rotular seus dados para transmitir conhecimento ao seu modelo. O tipo de anotação de dados com a qual você trabalhará depende da sua técnica específica de visão computacional. aqui estão alguns exemplos:

  • Classificação de imagens: Rotularás toda a imagem como uma única classe.
  • Deteção de objectos: Desenharás caixas delimitadoras à volta de cada objeto na imagem e rotularás cada caixa.
  • Segmentação de imagens: Rotula cada pixel da imagem de acordo com o objeto a que pertence, criando limites de objectos detalhados.

Diferentes tipos de anotação de imagens

A recolha e anotação de dados pode ser um esforço manual moroso. As ferramentas de anotação podem ajudar a tornar este processo mais fácil. Eis algumas ferramentas de anotação abertas úteis: LabeI Studio, CVAT e Labelme.

Passo 3: Aumento de dados e divisão do conjunto de dados

Depois de recolher e anotar os dados da imagem, é importante dividir o conjunto de dados em conjuntos de treino, validação e teste antes de efetuar o aumento de dados. A divisão do conjunto de dados antes do aumento é crucial para testar e validar o modelo em dados originais e inalterados. Ajuda a avaliar com precisão a capacidade de generalização do modelo para dados novos e não vistos.

Eis como dividir os teus dados:

  • Conjunto de treinamento: É a maior parte dos teus dados, normalmente 70-80% do total, utilizada para treinar o teu modelo.
  • Conjunto de validação: Normalmente, cerca de 10-15% dos teus dados; este conjunto é utilizado para afinar os hiperparâmetros e validar o modelo durante o treino, ajudando a evitar o sobreajuste.
  • Conjunto de teste: Os restantes 10-15% dos teus dados são colocados de lado como conjunto de teste. É utilizado para avaliar o desempenho do modelo em dados não vistos após a conclusão do treino.

Depois de dividir os dados, pode efetuar o aumento de dados aplicando transformações como rodar, dimensionar e inverter imagens para aumentar artificialmente o tamanho do conjunto de dados. O aumento de dados torna o teu modelo mais robusto a variações e melhora o seu desempenho em imagens não vistas.

Exemplos de ampliações de dados

Bibliotecas como OpenCV, Albumentations e TensorFlow oferecem funções de aumento flexíveis que podem ser utilizadas. Além disso, algumas bibliotecas, como a Ultralytics, têm definições de aumento incorporadas diretamente na sua função de formação de modelos, simplificando o processo.

Para compreender melhor os teus dados, podes utilizar ferramentas como o Matplotlib ou o Seaborn para visualizar as imagens e analisar a sua distribuição e características. A visualização dos teus dados ajuda a identificar padrões, anomalias e a eficácia das tuas técnicas de aumento. Também podes utilizar o Ultralytics Explorer, uma ferramenta para explorar conjuntos de dados de visão computacional com pesquisa semântica, consultas SQL e pesquisa de semelhanças vectoriais.

A ferramenta Ultralytics Explorer

Ao compreender, dividir e aumentar corretamente os teus dados, podes desenvolver um modelo bem treinado, validado e testado que funciona bem em aplicações do mundo real.

Passo 4: Treino do modelo

Quando o conjunto de dados estiver pronto para ser treinado, podes concentrar-te na configuração do ambiente necessário, na gestão dos conjuntos de dados e no treino do modelo.

Primeiro, você precisará garantir que seu ambiente esteja configurado corretamente. Normalmente, isso inclui o seguinte:

  • Instala bibliotecas e estruturas essenciais como TensorFlow, PyTorch, ou Ultralytics.
  • Se estiveres a utilizar um GPU, a instalação de bibliotecas como CUDA e cuDNN ajudará a ativar a aceleração GPU e a acelerar o processo de formação.

Depois, podes carregar os conjuntos de dados de treino e validação no teu ambiente. Normaliza e pré-processa os dados por meio de redimensionamento, conversão de formato ou aumento. Com o modelo selecionado, configura as camadas e especifica os hiperparâmetros. Compila o modelo definindo a função de perda, o otimizador e as métricas de desempenho.

Bibliotecas como Ultralytics simplificam o processo de treino. Podes começar a treinar introduzindo dados no modelo com o mínimo de código. Estas bibliotecas tratam automaticamente dos ajustes de peso, da retropropagação e da validação. Também oferecem ferramentas para monitorizar o progresso e ajustar facilmente os hiperparâmetros. Após o treino, guarda o modelo e os seus pesos com alguns comandos.

É importante ter em conta que a gestão adequada dos conjuntos de dados é vital para uma formação eficiente. Utiliza o controlo de versões dos conjuntos de dados para acompanhar as alterações e garantir a reprodutibilidade. Ferramentas como o DVC (Data Version Control) podem ajudar a gerir grandes conjuntos de dados.

Etapa 5: Avaliação do modelo e aperfeiçoamento do modelo

É importante avaliar o desempenho do teu modelo utilizando várias métricas e aperfeiçoá-lo para melhorar a precisão. A avaliação ajuda a identificar as áreas em que o modelo se destaca e onde pode precisar de melhorias. O ajuste fino garante que o modelo seja otimizado para o melhor desempenho possível.

  • Métricas de desempenho: Utiliza métricas como a exatidão, a precisão, a recuperação e a pontuação F1 para avaliar o desempenho do modelo. Estas métricas fornecem informações sobre a qualidade das previsões do teu modelo.
  • Ajuste de hiperparâmetros: Ajusta os hiperparâmetros para otimizar o desempenho do modelo. Técnicas como pesquisa em grade ou pesquisa aleatória podem ajudar a encontrar os melhores valores de hiperparâmetros.

  • Ajuste fino: Faz pequenos ajustes na arquitetura do modelo ou no processo de formação para melhorar o desempenho. Isto pode envolver o ajuste de taxas de aprendizagem, tamanhos de lote ou outros parâmetros do modelo.

Passo 6: Teste do modelo

Nesta etapa, podes certificar-te de que o teu modelo tem um bom desempenho em dados completamente inéditos, confirmando que está pronto para ser implementado. A diferença entre o teste de modelos e a avaliação de modelos é que esta se concentra na verificação do desempenho do modelo final, em vez de o melhorar iterativamente.

É importante testar e depurar exaustivamente quaisquer problemas comuns que possam surgir. Testa o teu modelo num conjunto de dados de teste separado que não tenha sido utilizado durante a formação ou validação. Este conjunto de dados deve representar cenários do mundo real para garantir que o desempenho do modelo é consistente e fiável.

Além disso, aborda problemas comuns como o sobreajuste, o subajuste e a fuga de dados. Utiliza técnicas como a validação cruzada e a deteção de anomalias para identificar e corrigir estes problemas.

Passo 7: Implementação do modelo

Depois de o teu modelo ter sido exaustivamente testado, é altura de o implementar. A implantação envolve tornar seu modelo disponível para uso em um ambiente de produção. Aqui estão as etapas para implantar um modelo de visão computacional:

  • Configurar o ambiente: Configura a infraestrutura necessária para a opção de implementação que escolheste, quer seja baseada na nuvem (AWS, Google Cloud, Azure) ou na borda (dispositivos locais, IoT).

  • Exportando o modelo: Exporta o modelo para o formato apropriado (por exemplo, ONNX, TensorRT, CoreML para YOLOv8) para garantir a compatibilidade com sua plataforma de implantação.

  • Implantação do modelo: Implanta o modelo configurando APIs ou pontos de extremidade e integrando-o à sua aplicação.
  • Garante a escalabilidade: Implementa balanceadores de carga, grupos de escalonamento automático e ferramentas de monitorização para gerir recursos e lidar com o aumento de dados e pedidos de utilizadores.

Etapa 8: Monitorização, manutenção e documentação

Depois que seu modelo for implantado, é importante monitorar continuamente seu desempenho, mantê-lo para lidar com quaisquer problemas e documentar todo o processo para referência e melhorias futuras.

As ferramentas de monitorização podem ajudar-te a seguir os indicadores-chave de desempenho (KPIs) e a detetar anomalias ou quebras de precisão. Ao monitorizar o modelo, pode estar ciente da deriva do modelo, em que o desempenho do modelo diminui ao longo do tempo devido a alterações nos dados de entrada. Periodicamente, treina novamente o modelo com dados actualizados para manter a precisão e a relevância.

Monitorização de modelos

Para além da monitorização e manutenção, a documentação também é fundamental. Documenta exaustivamente todo o processo, incluindo a arquitetura do modelo, os procedimentos de formação, os hiperparâmetros, os passos de pré-processamento de dados e quaisquer alterações efectuadas durante a implementação e a manutenção. Uma boa documentação garante a reprodutibilidade e facilita as futuras actualizações ou a resolução de problemas. Ao monitorizar, manter e documentar eficazmente o seu modelo, pode garantir que este se mantém preciso, fiável e fácil de gerir durante o seu ciclo de vida.

Envolvimento com a comunidade

A ligação a uma comunidade de entusiastas da visão computacional pode ajudar-te a resolver quaisquer problemas com que te depares enquanto trabalhas no teu projeto de visão computacional com confiança. Aqui estão algumas maneiras de aprender, solucionar problemas e trabalhar em rede de forma eficaz.

Recursos comunitários

  • Problemas do GitHub: Consulta o repositórioYOLOv8 GitHub e utiliza o separador Problemas para colocar questões, comunicar erros e sugerir novas funcionalidades. A comunidade ativa e os mantenedores estão lá para ajudar com problemas específicos.
  • Ultralytics Servidor Discord: Junta-te ao servidor Discord deUltralytics para interagir com outros utilizadores e programadores, obter apoio e partilhar ideias.

Documentação oficial

  • Ultralytics YOLOv8 Documentação: Explora a documentação oficial do YOLOv8 para obter guias detalhados com dicas úteis sobre diferentes tarefas e projectos de visão computacional.

A utilização destes recursos ajudar-te-á a ultrapassar desafios e a manteres-te atualizado com as últimas tendências e melhores práticas na comunidade da visão computacional.

Inicia hoje o teu projeto de visão computacional!

Assumir um projeto de visão computacional pode ser empolgante e gratificante. Ao seguir os passos deste guia, podes construir uma base sólida para o sucesso. Cada etapa é crucial para desenvolver uma solução que atenda aos teus objetivos e funcione bem em cenários do mundo real. À medida que fores ganhando experiência, irás descobrir técnicas e ferramentas avançadas para melhorar os teus projectos. Mantém a curiosidade, continua a aprender e explora novos métodos e inovações!

FAQ

Como é que escolho a tarefa de visão computacional certa para o meu projeto?

A escolha da tarefa de visão computacional correcta depende do objetivo final do teu projeto. Por exemplo, se quiseres monitorizar o tráfego, a deteção de objectos é adequada, uma vez que pode localizar e identificar vários tipos de veículos em tempo real. Para imagens médicas, a segmentação de imagens é ideal para fornecer limites detalhados de tumores, ajudando no diagnóstico e no planeamento do tratamento. Sabe mais sobre tarefas específicas como a deteção de objectos, a classificação de imagens e a segmentação de instâncias.

Porque é que a anotação de dados é crucial nos projectos de visão computacional?

A anotação de dados é vital para ensinar o teu modelo a reconhecer padrões. O tipo de anotação varia consoante a tarefa:

  • Classificação de imagens: Rotula toda a imagem como uma única classe.
  • Deteção de objectos: Caixas delimitadoras desenhadas à volta dos objectos.
  • Segmentação de imagens: Cada pixel é etiquetado de acordo com o objeto a que pertence.

Ferramentas como Label Studio, CVAT e Labelme podem ajudar neste processo. Para mais informações, consulta o nosso guia de recolha e anotação de dados.

Que passos devo seguir para aumentar e dividir o meu conjunto de dados de forma eficaz?

A divisão do conjunto de dados antes do aumento ajuda a validar o desempenho do modelo nos dados originais e inalterados. Segue estes passos:

  • Conjunto de treino: 70-80% dos teus dados.
  • Conjunto de validação: 10-15% para afinação de hiperparâmetros.
  • Conjunto de testes: Restantes 10-15% para avaliação final.

Após a divisão, aplica técnicas de aumento de dados como rotação, escala e inversão para aumentar a diversidade do conjunto de dados. Bibliotecas como Albumentations e OpenCV podem ajudar. Ultralytics também oferece configurações de aumento incorporadas para maior conveniência.

Como é que posso exportar o meu modelo de visão computacional treinado para implementação?

Exportar seu modelo garante a compatibilidade com diferentes plataformas de implantação. Ultralytics fornece vários formatos, incluindo ONNX, TensorRT, e CoreML. Para exportar o modelo YOLOv8 , segue este guia:

  • Utiliza o export com o parâmetro de formato pretendido.
  • Certifica-te de que o modelo exportado se adequa às especificações do teu ambiente de implementação (por exemplo, dispositivos de ponta, nuvem).

Para mais informações, consulta o guia de exportação de modelos.

Quais são as melhores práticas para monitorizar e manter um modelo de visão computacional implementado?

A monitorização e manutenção contínuas são essenciais para o sucesso a longo prazo de um modelo. Implementa ferramentas para acompanhar os indicadores-chave de desempenho (KPI) e detetar anomalias. Treina regularmente o modelo com dados actualizados para contrariar a deriva do modelo. Documenta todo o processo, incluindo a arquitetura do modelo, os hiperparâmetros e as alterações, para garantir a reprodutibilidade e a facilidade de futuras actualizações. Sabe mais no nosso guia de monitorização e manutenção.



Criado em 2024-05-29, Atualizado em 2024-07-05
Autores: glenn-jocher (6), abirami-vina (2)

Comentários