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