Saltar para o conteúdo

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

Introdução

A visão computacional é 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.



Ver: Como fazer Visão computacional Projectos - Um guia passo a passo

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.

Trabalhar nos seus próprios projectos de visão computacional é uma excelente forma de compreender e aprender mais sobre visão computacional. No entanto, um projeto de visão computacional pode consistir em muitas etapas e pode parecer confuso no início. No final deste guia, estará familiarizado com os passos envolvidos num projeto de visão por computador. Iremos percorrer tudo, desde o início até ao fim de um projeto, explicando porque é que cada parte é importante. Vamos começar e fazer do seu projeto de visão por computador um sucesso!

Uma visão geral de um projeto de visão computacional

Antes de discutir os pormenores de cada passo envolvido num projeto de visão por computador, vejamos o processo global. Se começasse um projeto de visão por computador hoje, seguiria os seguintes passos:

  • A sua primeira prioridade será compreender as necessidades do seu projeto.
  • Depois, recolhe e rotula com precisão as imagens que ajudarão a treinar o seu modelo.
  • Em seguida, limparia os seus dados e aplicaria técnicas de aumento para os preparar para o treino do modelo.
  • Após o treino do modelo, deve testar e avaliar exaustivamente o seu modelo para se certificar de que funciona de forma consistente em diferentes condições.
  • Por fim, implantaria o seu modelo no mundo real e actualizá-lo-ia com base em novos conhecimentos e feedback.

Descrição geral das etapas do projeto de visão computacional

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

Passo 1: Definir os objectivos do seu projeto

O primeiro passo em qualquer projeto de visão computacional é definir claramente o problema que se está a tentar resolver. Conhecer o objetivo final ajuda-o a começar a construir uma solução. Isto é especialmente verdadeiro quando se trata de visão por computador, porque o objetivo do seu projeto afectará diretamente a tarefa de visão por computador em que se deve concentrar.

Eis 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 capaz de 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 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 lida com um documento de cada vez, sem necessidade 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 corretos

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 corretos.

Dependendo do objetivo, pode optar por selecionar o modelo primeiro ou depois de ver quais os dados que consegue recolher na Etapa 2. Por exemplo, suponha que o seu projeto é altamente dependente 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 tiver uma compreensão clara dos requisitos do modelo, pode escolher primeiro o modelo e depois recolher os dados que correspondem a essas especificações.

A escolha entre treinar de raiz ou utilizar a aprendizagem por transferência afecta a forma como prepara os seus dados. A formação de raiz requer um conjunto de dados diversificado para construir a compreensão do modelo a partir do zero. A aprendizagem por transferência, por outro lado, permite-lhe utilizar um modelo pré-treinado e adaptá-lo a um conjunto de dados mais pequeno e mais específico. Além disso, a escolha de um modelo específico para treinar determinará a forma como é necessário preparar os dados, como redimensionar imagens ou adicionar anotações, de acordo com os requisitos específicos do modelo.

Formação a partir do zero vs. utilização da aprendizagem por transferência

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

Antes de entrar no trabalho prático de um projeto de visão por computador, é importante ter uma compreensão clara destes pormenores. Verifique novamente se considerou o seguinte antes de passar para a Etapa 2:

  • Defina claramente o problema que está a tentar resolver.
  • Determine o objetivo final do seu projeto.
  • Identificar a tarefa específica de visão computacional necessária (por exemplo, deteção de objectos, classificação de imagens, segmentação de imagens).
  • Decida se quer treinar um modelo de raiz ou utilizar a aprendizagem por transferência.
  • Selecione o modelo adequado às suas necessidades de tarefa e de implementação.

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

A qualidade dos seus modelos de visão por computador depende da qualidade do seu conjunto de dados. Pode recolher imagens da Internet, tirar as suas 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, oferecem 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 optar por recolher imagens ou tirar as suas próprias fotografias, terá de anotar os seus dados. A anotação de dados é o processo de rotular os seus dados para transmitir conhecimento ao seu modelo. O tipo de anotação de dados com que irá trabalhar depende da sua técnica de visão computacional específica. Aqui estão alguns exemplos:

  • Classificação de imagens: Rotulará toda a imagem como uma única classe.
  • Deteção de objectos: Desenhará caixas delimitadoras à volta de cada objeto na imagem e rotulará cada caixa.
  • Segmentação de imagens: Rotulará 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.

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

Depois de recolher e anotar os seus dados de 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 o grau de generalização do modelo para dados novos e não vistos.

Eis como dividir os seus dados:

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

Depois de dividir os dados, pode efetuar o aumento dos dados aplicando transformações como a rotação, o dimensionamento e a inversão de imagens para aumentar artificialmente o tamanho do conjunto de dados. O aumento de dados torna o seu 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 seus dados, pode utilizar ferramentas como Matplotlib ou Seaborn para visualizar as imagens e analisar a sua distribuição e caraterísticas. A visualização dos seus dados ajuda a identificar padrões, anomalias e a eficácia das suas técnicas de aumento. Também pode utilizar oUltralytics 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 seus dados, pode 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, pode concentrar-se na configuração do ambiente necessário, na gestão dos conjuntos de dados e no treino do modelo.

Primeiro, é necessário certificar-se de que o seu ambiente está configurado corretamente. Normalmente, isso inclui o seguinte:

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

Em seguida, pode carregar os conjuntos de dados de treino e validação no seu ambiente. Normalize e pré-processe os dados por meio de redimensionamento, conversão de formato ou aumento. Com o modelo selecionado, configure as camadas e especifique os hiperparâmetros. Compile o modelo definindo a função de perda, o optimizador e as métricas de desempenho.

Bibliotecas como Ultralytics simplificam o processo de treino. Pode começar a treinar introduzindo dados no modelo com um código mínimo. 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, guarde o modelo e os seus pesos com alguns comandos.

É importante ter em mente que a gestão correta dos conjuntos de dados é vital para uma formação eficiente. Utilize o controlo de versões para os 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 seu 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 é excelente e as áreas em que pode precisar de ser melhorado. O ajuste fino garante que o modelo é optimizado para o melhor desempenho possível.

  • Métricas de desempenho: Utilize métricas como exatidão, precisão, recuperação e pontuação F1 para avaliar o desempenho do seu modelo. Estas métricas fornecem informações sobre a forma como o seu modelo está a fazer previsões.
  • Ajuste de hiperparâmetros: Ajustar os hiperparâmetros para otimizar o desempenho do modelo. Técnicas como a pesquisa em grelha ou a pesquisa aleatória podem ajudar a encontrar os melhores valores de hiperparâmetros.

  • Ajuste fino: Fazer 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.

Etapa 6: Teste de modelos

Nesta etapa, pode certificar-se de que o seu 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 centra 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. Teste o seu 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, trate de problemas comuns como sobreajuste, subajuste e fuga de dados. Utilize técnicas como a validação cruzada e a deteção de anomalias para identificar e corrigir estes problemas.

Etapa 7: Implantação do modelo

Depois de o seu modelo ter sido exaustivamente testado, é altura de o implementar. A implantação envolve tornar o 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: Configure a infraestrutura necessária para a opção de implementação escolhida, quer seja baseada na nuvem (AWS, Google Cloud, Azure) ou na borda (dispositivos locais, IoT).

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

  • Implantação do modelo: Implante o modelo configurando APIs ou pontos de extremidade e integrando-o à sua aplicação.
  • Garantir a escalabilidade: Implemente 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 de o modelo ser implementado, é importante monitorizar continuamente o seu desempenho, mantê-lo para resolver quaisquer problemas e documentar todo o processo para referência e melhorias futuras.

As ferramentas de monitorização podem ajudá-lo 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, volte a treinar 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. Documente 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 ajudá-lo a resolver quaisquer problemas com que se depare enquanto trabalha no seu 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: Consulte o repositórioYOLO11 GitHub e utilize 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: Junte-se ao servidor Discord deUltralytics para interagir com outros utilizadores e programadores, obter apoio e partilhar ideias.

Documentação oficial

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

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

Dê o pontapé inicial no seu projeto de visão computacional hoje mesmo!

Assumir um projeto de visão por computador pode ser emocionante e gratificante. Ao seguir as etapas deste guia, é possível construir uma base sólida para o sucesso. Cada etapa é crucial para desenvolver uma solução que atenda aos seus objetivos e funcione bem em cenários do mundo real. À medida que for ganhando experiência, descobrirá técnicas e ferramentas avançadas para melhorar os seus projectos. Mantenha-se curioso, continue a aprender e explore novos métodos e inovações!

FAQ

Como escolher a tarefa de visão computacional correta para o meu projeto?

A escolha da tarefa de visão computacional correta depende do objetivo final do seu projeto. Por exemplo, se pretende 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 imagiologia médica, a segmentação de imagens é ideal para fornecer limites detalhados de tumores, ajudando no diagnóstico e no planeamento do tratamento. Saiba 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 seu modelo a reconhecer padrões. O tipo de anotação varia consoante a tarefa:

  • Classificação de imagens: Toda a imagem rotulada 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, consulte 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. Siga estas etapas:

  • Conjunto de treino: 70-80% dos seus 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, aplique técnicas de aumento de dados como a rotação, o escalonamento e a 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?

A exportação do modelo garante a compatibilidade com diferentes plataformas de implantação. O site Ultralytics fornece vários formatos, incluindo ONNX, TensorRT e CoreML. Para exportar seu modelo YOLO11 , siga este guia:

  • Utilizar o export com o parâmetro de formato pretendido.
  • Certifique-se de que o modelo exportado corresponde às especificações do seu ambiente de implantação (por exemplo, dispositivos de borda, nuvem).

Para mais informações, consulte 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. Implementar ferramentas para acompanhar os indicadores-chave de desempenho (KPI) e detetar anomalias. Treinar regularmente o modelo com dados actualizados para contrariar a deriva do modelo. Documentar 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. Saiba mais no nosso guia de monitorização e manutenção.

📅C riado há 6 meses ✏️ Atualizado há 1 mês

Comentários