Salta para o conteúdo

Um guia prático para definir o teu projeto de visão computacional

Introdução

O primeiro passo em qualquer projeto de visão computacional é definir o que pretendes alcançar. É crucial ter um roteiro claro desde o início, que inclua tudo, desde a recolha de dados até à implementação do teu modelo.

If you need a quick refresher on the basics of a computer vision project, take a moment to read our guide on the key steps in a computer vision project. It'll give you a solid overview of the whole process. Once you're caught up, come back here to dive into how exactly you can define and refine the goals for your project.

Now, let's get to the heart of defining a clear problem statement for your project and exploring the key decisions you'll need to make along the way.

Definir uma declaração clara do problema

Setting clear goals and objectives for your project is the first big step toward finding the most effective solutions. Let's understand how you can clearly define your project's problem statement:

  • Identifica o problema principal: Identifica o desafio específico que o teu projeto de visão computacional pretende resolver.
  • Determina o âmbito: Define os limites do teu problema.
  • Considera os utilizadores finais e as partes interessadas: Identifica quem será afetado pela solução.
  • Analisa os requisitos e restrições do projeto: Avalia os recursos disponíveis (tempo, orçamento, pessoal) e identifica quaisquer restrições técnicas ou regulamentares.

Exemplo de uma declaração de problema comercial

Let's walk through an example.

Considera um projeto de visão computacional em que se pretende estimar a velocidade dos veículos numa autoestrada. A questão central é que os métodos atuais de monitoramento de velocidade são ineficientes e propensos a erros devido a sistemas de radar desatualizados e processos manuais. O projeto visa desenvolver um sistema de visão por computador em tempo real que possa substituir os sistemas de estimativa de velocidade existentes.

Estimativa de velocidade utilizando YOLOv8

Os utilizadores primários incluem as autoridades de gestão do tráfego e as autoridades policiais, enquanto as partes interessadas secundárias são os planeadores de auto-estradas e o público que beneficia de estradas mais seguras. Os principais requisitos envolvem a avaliação do orçamento, do tempo e do pessoal, bem como a satisfação de necessidades técnicas como câmaras de alta resolução e processamento de dados em tempo real. Além disso, devem ser consideradas as restrições regulamentares em matéria de privacidade e segurança dos dados.

Definição de objectivos mensuráveis

A definição de objectivos mensuráveis é fundamental para o sucesso de um projeto de visão computacional. Estes objectivos devem ser claros, exequíveis e limitados no tempo.

Por exemplo, se estiveres a desenvolver um sistema para estimar a velocidade dos veículos numa autoestrada. Podes considerar os seguintes objectivos mensuráveis:

  • Atingir pelo menos 95% de precisão na deteção de velocidade no prazo de seis meses, utilizando um conjunto de dados de 10 000 imagens de veículos.
  • O sistema deve ser capaz de processar feeds de vídeo em tempo real a 30 quadros por segundo com um atraso mínimo.

Ao definir objectivos específicos e quantificáveis, pode acompanhar eficazmente o progresso, identificar áreas a melhorar e garantir que o projeto se mantém no rumo certo.

A ligação entre a declaração do problema e as tarefas de visão computacional

A declaração do problema ajuda-te a concetualizar qual a tarefa de visão computacional que pode resolver o teu problema.

Por exemplo, se o teu problema é monitorizar a velocidade dos veículos numa autoestrada, a tarefa de visão por computador relevante é o seguimento de objectos. O rastre amento de objetos é adequado porque permite que o sistema siga continuamente cada veículo na transmissão de vídeo, o que é crucial para calcular com precisão suas velocidades.

Exemplo de seguimento de objectos

Other tasks, like object detection, are not suitable as they don't provide continuous location or movement information. Once you've identified the appropriate computer vision task, it guides several critical aspects of your project, like model selection, dataset preparation, and model training approaches.

O que é que vem primeiro: Seleção do modelo, preparação do conjunto de dados ou abordagem de treino do modelo?

A ordem da seleção do modelo, da preparação do conjunto de dados e da abordagem de formação depende das especificidades do teu projeto. Seguem-se algumas sugestões para te ajudar a decidir:

  • Compreensão clara do problema: Se o teu problema e os teus objectivos estiverem bem definidos, começa pela seleção do modelo. Em seguida, prepara o conjunto de dados e decide sobre a abordagem de formação com base nos requisitos do modelo.

    • Exemplifica: Começa por selecionar um modelo para um sistema de monitorização de tráfego que estima a velocidade dos veículos. Escolhe um modelo de seguimento de objectos, recolhe e anota vídeos de auto-estradas e, em seguida, treina o modelo com técnicas de processamento de vídeo em tempo real.
  • Dados únicos ou limitados: Se o teu projeto for condicionado por dados únicos ou limitados, começa pela preparação do conjunto de dados. Por exemplo, se tiveres um conjunto de dados raro de imagens médicas, anota e prepara os dados primeiro. Depois, selecciona um modelo que tenha um bom desempenho nesses dados, seguido da escolha de uma abordagem de formação adequada.

    • Exemplifica: Prepara primeiro os dados para um sistema de reconhecimento facial com um pequeno conjunto de dados. Anota-os e, em seguida, selecciona um modelo que funcione bem com dados limitados, como um modelo pré-treinado para aprendizagem por transferência. Finalmente, decide sobre uma abordagem de formação, incluindo o aumento de dados, para expandir o conjunto de dados.
  • Necessidade de experimentação: Nos projectos em que a experimentação é crucial, começa pela abordagem da formação. Isto é comum em projectos de investigação em que se podem testar inicialmente diferentes técnicas de formação. Refina a seleção do modelo depois de identificar um método promissor e prepara o conjunto de dados com base nas tuas descobertas.

    • Exemplifica: Num projeto que explora novos métodos de deteção de defeitos de fabrico, começa por fazer experiências com um pequeno subconjunto de dados. Quando encontrares uma técnica promissora, selecciona um modelo adaptado a essas descobertas e prepara um conjunto de dados abrangente.

Pontos de discussão comuns na comunidade

Em seguida, vamos analisar alguns pontos de discussão comuns na comunidade relativamente às tarefas de visão computacional e ao planeamento de projectos.

Quais são as diferentes tarefas de visão computacional?

As tarefas de visão computacional mais populares incluem a classificação de imagens, a deteção de objectos e a segmentação de imagens.

Visão geral das tarefas de visão computacional

Para obter uma explicação detalhada de várias tarefas, consulta a página Ultralytics Docs em YOLOv8 Tasks.

Pode um modelo pré-treinado lembrar-se das aulas que conhecia antes do treino personalizado?

Não, os modelos pré-treinados não se "lembram" das classes no sentido tradicional. Aprendem padrões a partir de conjuntos de dados maciços e, durante a formação personalizada (afinação), estes padrões são ajustados à tua tarefa específica. A capacidade do modelo é limitada e a concentração em novas informações pode substituir algumas aprendizagens anteriores.

Visão geral da aprendizagem por transferência

If you want to use the classes the model was pre-trained on, a practical approach is to use two models: one retains the original performance, and the other is fine-tuned for your specific task. This way, you can combine the outputs of both models. There are other options like freezing layers, using the pre-trained model as a feature extractor, and task-specific branching, but these are more complex solutions and require more expertise.

Como é que as opções de implementação afectam o meu projeto de visão computacional?

As opções de implantação do modelo têm um impacto crítico no desempenho do teu projeto de visão computacional. Por exemplo, o ambiente de implantação deve lidar com a carga computacional do teu modelo. Aqui estão alguns exemplos práticos:

  • Dispositivos de ponta: A implementação em dispositivos de ponta, como smartphones ou dispositivos IoT, requer modelos leves devido aos seus recursos computacionais limitados. Exemplos de tecnologias incluem TensorFlow Lite e ONNX Runtime, que são otimizadas para esses ambientes.
  • Cloud Servers: Cloud deployments can handle more complex models with larger computational demands. Cloud platforms like AWS, Google Cloud, and Azure offer robust hardware options that can scale based on the project's needs.
  • Servidores no local: Para cenários que requerem uma elevada privacidade e segurança dos dados, pode ser necessária a implementação no local. Isto implica um investimento inicial significativo em hardware, mas permite um controlo total sobre os dados e a infraestrutura.
  • Soluções híbridas: Alguns projectos podem beneficiar de uma abordagem híbrida, em que algum processamento é efectuado na periferia, enquanto as análises mais complexas são transferidas para a nuvem. Isto pode equilibrar as necessidades de desempenho com considerações de custo e latência.

Cada opção de implementação oferece diferentes benefícios e desafios, e a escolha depende dos requisitos específicos do projeto, como o desempenho, o custo e a segurança.

FAQs

Aqui estão algumas questões que podes encontrar ao definir o teu projeto de visão computacional:

  • Q1: Como posso definir objectivos eficazes e mensuráveis para o meu projeto de visão computacional?
    • A1: Para definir objectivos eficazes e mensuráveis, segue os critérios SMART: Específico, Mensurável, Atingível, Relevante e Temporal. Define o que é o sucesso, como será medido, assegura que os objectivos são atingíveis com os recursos disponíveis, alinha-os com os objectivos mais amplos do projeto e estabelece um prazo.

Visão geral dos critérios SMART

  • Q2: O âmbito de um projeto de visão por computador pode ser alterado após a definição da declaração do problema?

    • R2: Sim, o escopo de um projeto de visão computacional pode mudar à medida que novas informações se tornam disponíveis ou à medida que os requisitos do projeto evoluem. É importante revisar e ajustar regularmente a declaração do problema e os objetivos para refletir quaisquer novas percepções ou mudanças na direção do projeto.
  • Q3: Quais são alguns dos desafios comuns na definição do problema para um projeto de visão por computador?

    • R3: Os desafios comuns incluem declarações de problemas vagas ou demasiado amplas, objectivos irrealistas, falta de alinhamento das partes interessadas, compreensão insuficiente das restrições técnicas e subestimação dos requisitos de dados. A resolução destes desafios exige uma investigação inicial exaustiva, uma comunicação clara com as partes interessadas e um aperfeiçoamento iterativo da declaração do problema e dos objectivos.

Liga-te à comunidade

A ligação com outros entusiastas da visão computacional pode ser incrivelmente útil para os teus projectos, fornecendo apoio, soluções e novas ideias. Aqui estão algumas ótimas maneiras de aprender, solucionar problemas e trabalhar em rede:

Canais de apoio à comunidade

  • Problemas do GitHub: Vai ao repositório YOLOv8 do GitHub. Podes utilizar o separador Problemas para colocar questões, comunicar erros e sugerir funcionalidades. A comunidade e os mantenedores podem ajudar-te com problemas específicos que encontres.
  • Ultralytics Discord Server: Become part of the Ultralytics Discord server. Connect with fellow users and developers, seek support, exchange knowledge, and discuss ideas.

Guias e documentação abrangentes

  • Ultralytics YOLOv8 Documentação: Explora a documentação oficial do YOLOv8 para obter guias detalhados e dicas valiosas sobre várias tarefas e projectos de visão computacional.

Conclusão

Defining a clear problem and setting measurable goals is key to a successful computer vision project. We've highlighted the importance of being clear and focused from the start. Having specific goals helps avoid oversight. Also, staying connected with others in the community through platforms like GitHub or Discord is important for learning and staying current. In short, good planning and engaging with the community is a huge part of successful computer vision projects.



Created 2024-05-29, Updated 2024-06-10
Authors: glenn-jocher (4), abirami-vina (1)

Comentários