Compreender as principais etapas de um projeto de visão computacional#
Criar um projeto de visão computacional significa seguir uma sequência clara de etapas: definir os seus objetivos, recolher e anotar dados, treinar e avaliar um modelo e implementá-lo e mantê-lo em produção. Este guia aborda cada etapa pela ordem e explica por que é importante, para que possa planear e executar o seu próprio projeto com confiança.
A visão computacional é um subcampo da inteligência artificial (AI) que ajuda os computadores a ver e compreender o mundo como os seres humanos. Processa e analisa imagens ou vídeos para extrair informações, reconhecer padrões e tomar decisões com base nesses dados.
Técnicas de visão computacional, como deteção de objetos, classificação de imagens e segmentação de instâncias, podem ser aplicadas em vários setores, desde a condução autónoma até à imagística médica, para obter informações valiosas.
Uma visão geral de um projeto de visão computacional#
Antes de discutir os detalhes de cada etapa de um projeto de visão computacional, vejamos o processo geral. Se começasse hoje um projeto de visão computacional, seguiria estas etapas:
- A sua primeira prioridade é compreender os requisitos do seu projeto.
- Depois, recolhe e rotula com precisão as imagens que ajudarão a treinar o seu modelo.
- Em seguida, limpa e aumenta os seus dados para os preparar para o treino do modelo.
- Após o treino, avalia e testa cuidadosamente o seu modelo para garantir que tem um desempenho consistente em diferentes condições.
- Por fim, implementa o seu modelo no mundo real e monitoriza e mantém o mesmo com base em novos conhecimentos e feedback.
Agora que sabemos o que esperar, vamos avançar diretamente para as etapas e pôr o seu projeto em marcha.
Etapa 1: Definir os objetivos do seu projeto#
A primeira etapa de qualquer projeto de visão computacional é definir claramente o problema que está a tentar resolver. Conhecer o objetivo final ajuda-o a começar a criar uma solução. Isto é especialmente importante na visão computacional, porque o objetivo do seu projeto afetará diretamente a tarefa de visão computacional em que deverá se concentrar.
Eis alguns exemplos de objetivos de projetos e das tarefas de visão computacional que podem ser utilizadas para os alcançar:
-
Objetivo: Desenvolver um sistema capaz de monitorizar e gerir o fluxo de diferentes tipos de veículos em autoestradas, melhorando a gestão e a segurança do trânsito.
- Tarefa de visão computacional: A deteção de objetos é ideal para a monitorização do trânsito, porque localiza e identifica vários veículos de forma eficiente. Exige menos recursos 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 ajude radiologistas, fornecendo contornos precisos, ao nível dos píxeis, de tumores em exames de imagística médica.
- Tarefa de visão computacional: A segmentação de imagens é adequada para a imagística médica, porque fornece limites precisos e detalhados dos tumores, essenciais para avaliar o tamanho e a forma, bem como para planear o tratamento.
-
Objetivo: Criar um sistema digital que categorize vários documentos (por exemplo, faturas, recibos e documentos legais) 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, pois processa um documento de cada vez, sem precisar de considerar a posição do documento na imagem. Esta abordagem simplifica e acelera o processo de ordenação.
Selecionar o modelo e a abordagem de treino adequados#
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 é selecionar o modelo e a abordagem de treino adequados.
Dependendo do objetivo, pode optar por selecionar primeiro o modelo ou depois de verificar que dados consegue recolher na Etapa 2. Por exemplo, suponha que o seu projeto depende fortemente da disponibilidade de tipos específicos de dados. Nesse caso, poderá ser mais prático recolher e analisar primeiro os dados antes de selecionar um modelo. Por outro lado, se compreender claramente os requisitos do modelo, pode escolher primeiro o modelo e depois recolher dados que correspondam a essas especificações.
Escolher entre treinar de raiz ou utilizar aprendizagem por transferência afeta a forma como prepara os seus dados. Treinar de raiz exige 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 utilizar um modelo pré-treinado e adaptá-lo com um conjunto de dados menor e mais específico. Além disso, escolher um modelo específico para treinar determinará como precisa de preparar os seus dados, por exemplo, redimensionando imagens ou adicionando anotações de acordo com os requisitos específicos do modelo.
Considere o destino de implementação de um modelo para garantir a compatibilidade e o desempenho. Por exemplo, os modelos leves são ideais para a computação de periferia, graças à sua eficiência em dispositivos com recursos limitados.
Para saber mais, leia o nosso guia sobre como definir os objetivos do seu projeto e selecionar o modelo adequado.
Antes de começar o trabalho prático de um projeto de visão computacional, é importante compreender claramente estes detalhes. Confirme que considerou os seguintes pontos antes de avançar para a Etapa 2:
- Defina claramente o problema que está a tentar resolver.
- Determine o objetivo final do seu projeto.
- Identifique a tarefa específica de visão computacional necessária (por exemplo, deteção de objetos, classificação de imagens ou segmentação de imagens).
- Decida se deve treinar um modelo de raiz ou utilizar aprendizagem por transferência.
- Selecione o modelo adequado para a sua tarefa e para as suas necessidades de implementação.
Etapa 2: Recolha e anotação de dados#
A qualidade dos seus modelos de visão computacional depende da qualidade do seu conjunto de dados. Pode recolher imagens da Internet, tirar as suas próprias fotografias ou utilizar conjuntos de dados já existentes. Eis alguns excelentes recursos para descarregar conjuntos de dados de alta qualidade: Google Dataset Search Engine, UC Irvine Machine Learning Repository e Kaggle Datasets.
Algumas bibliotecas, como a Ultralytics, fornecem suporte integrado para vários conjuntos de dados, facilitando o início com dados de alta qualidade. Estas bibliotecas incluem frequentemente utilitários para utilizar conjuntos de dados populares de forma integrada, 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 trabalhará depende da sua técnica específica de visão computacional. Eis alguns exemplos:
- Classificação de imagens: Rotulará a imagem inteira como uma única classe.
- Deteção de objetos: Desenhará caixas delimitadoras à volta de cada objeto na imagem e rotulará cada caixa.
- Segmentação de imagens: Rotulará cada píxel da imagem de acordo com o objeto a que pertence, criando limites de objetos detalhados.
A recolha e anotação de dados pode ser um trabalho manual demorado. Uma ferramenta de anotação dedicada torna o processo mais rápido: a Ultralytics Platform fornece um editor de anotações integrado com anotação inteligente baseada em SAM para dados de deteção, segmentação e OBB, guardando os rótulos diretamente no formato YOLO.
Etapa 3: Aumento de dados e divisão do conjunto de dados#
Depois de recolher e anotar os dados das suas imagens, é importante dividir primeiro o conjunto de dados em conjuntos de treino, validação e teste antes de realizar o aumento de dados. Dividir o conjunto de dados antes do aumento é essencial para testar e validar o modelo com dados originais e inalterados. Isto ajuda a avaliar com precisão a capacidade de generalização do modelo para dados novos e desconhecidos.
Eis como dividir os seus dados:
- Conjunto de treino: É a maior parte dos seus dados, normalmente 70–80% do total, utilizada para treinar o modelo.
- Conjunto de validação: Normalmente corresponde a cerca de 10–15% dos seus dados; este conjunto é utilizado para ajustar hiperparâmetros e validar o modelo durante o treino, ajudando a evitar o sobreajuste.
- Conjunto de teste: Os 10–15% restantes dos seus dados são reservados como conjunto de teste. Este conjunto é utilizado para avaliar o desempenho do modelo em dados desconhecidos depois de concluído o treino.
Depois de dividir os seus dados, pode realizar o aumento de dados aplicando transformações como rodar, redimensionar e inverter imagens para aumentar artificialmente o tamanho do seu conjunto de dados. O aumento de dados torna o seu modelo mais robusto a variações e melhora o seu desempenho em imagens desconhecidas.
Bibliotecas como OpenCV, Albumentations e TensorFlow oferecem funções flexíveis de aumento que pode utilizar. Além disso, algumas bibliotecas, como a Ultralytics, têm definições de aumento integradas diretamente na função de treino do modelo, 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 características. Visualizar os seus dados ajuda a identificar padrões, anomalias e a eficácia das suas técnicas de aumento. O separador Charts da Ultralytics Platform pode apresentar muitas destas informações sem qualquer código, gerando automaticamente a distribuição das divisões, as contagens de classes, histogramas das dimensões das imagens e mapas de calor das posições das anotações para cada conjunto de dados carregado.
Ao compreender, dividir e aumentar corretamente os seus dados, pode desenvolver um modelo bem treinado, validado e testado, com bom desempenho em aplicações do mundo real.
Etapa 4: Treino do modelo#
Quando o seu conjunto de dados estiver pronto para o treino, pode concentrar-se em configurar o ambiente necessário, gerir os seus conjuntos de dados e treinar o modelo.
Primeiro, terá de garantir que o seu ambiente está configurado corretamente. Normalmente, isto inclui o seguinte:
- Instalar bibliotecas e frameworks essenciais, como TensorFlow, PyTorch ou Ultralytics.
- Se estiver a utilizar uma GPU, instalar bibliotecas como CUDA e cuDNN ajudará a ativar a aceleração da GPU e a acelerar o processo de treino.
Depois, pode carregar os conjuntos de dados de treino e validação para o seu ambiente. Normalize e pré-processe os dados redimensionando-os, convertendo o formato ou aplicando aumento. Com o modelo selecionado, configure as camadas e especifique os hiperparâmetros. Compile o modelo definindo a função de perda, o otimizador e as métricas de desempenho.
Bibliotecas como a Ultralytics simplificam o processo de treino. Pode começar o treino fornecendo dados ao modelo com um mínimo de código. Estas bibliotecas tratam automaticamente dos ajustes dos pesos, da retropropagação e da validação. Também oferecem ferramentas para monitorizar facilmente o progresso e ajustar hiperparâmetros. Depois do treino, guarde o modelo e os respetivos pesos com alguns comandos.
É importante ter em mente que uma gestão adequada do conjunto de dados é essencial para um treino eficiente. Utilize 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 conjuntos de dados grandes.
Etapa 5: Avaliação e ajuste fino 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 se destaca e aquelas que podem precisar de melhorias. O ajuste fino garante que o modelo é otimizado para obter o melhor desempenho possível.
- Métricas de desempenho: Utilize métricas como precisão, precision, recall e pontuação F1 para avaliar o desempenho do seu modelo. Estas métricas fornecem informações sobre a qualidade das previsões do modelo.
- Ajuste de hiperparâmetros: Ajuste 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: Faça pequenos ajustes à arquitetura do modelo ou ao processo de treino para melhorar o desempenho. Isto pode envolver o ajuste das taxas de aprendizagem, dos tamanhos dos lotes ou de outros parâmetros do modelo.
Para compreender melhor as técnicas de avaliação e ajuste fino de modelos, consulte o nosso guia de informações sobre avaliação de modelos.
Etapa 6: Teste do modelo#
O teste do modelo confirma que este tem um bom desempenho em dados completamente desconhecidos, verificando se está pronto para a implementação. A diferença entre o teste e a avaliação do modelo é que o teste se concentra em verificar o desempenho do modelo final, em vez de o melhorar iterativamente.
É importante testar cuidadosamente e corrigir quaisquer problemas comuns que possam surgir. Teste o modelo num conjunto de dados de teste separado, que não tenha sido utilizado durante o treino ou a 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 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. Para obter estratégias de teste abrangentes, consulte o nosso guia de teste de modelos.
Etapa 7: Implementação do modelo#
Depois de testar cuidadosamente o modelo, é altura de o implementar. A implementação do modelo consiste em disponibilizar o modelo para utilização num ambiente de produção. Eis as etapas para implementar um modelo de visão computacional:
- Configuração do ambiente: Configure a infraestrutura necessária para a opção de implementação escolhida, seja baseada na nuvem (AWS, Google Cloud, Azure) ou na periferia (dispositivos locais, IoT).
- Exportação do modelo: Exporte o modelo para o formato adequado (por exemplo, ONNX, TensorRT, CoreML para YOLO26) para garantir a compatibilidade com a sua plataforma de implementação.
- Implementação do modelo: Implemente o modelo configurando APIs ou endpoints e integrando-o com a sua aplicação.
- Garantia de escalabilidade: Implemente balanceadores de carga, grupos de escalabilidade automática e ferramentas de monitorização para gerir recursos e lidar com o aumento de dados e pedidos de utilizadores.
Para obter orientações mais detalhadas sobre estratégias de implementação e boas práticas, consulte o nosso guia de práticas de implementação de modelos. A Ultralytics Platform também fornece endpoints de implementação geridos, com escalabilidade automática em 42 regiões globais, tratando automaticamente da configuração da infraestrutura.
Etapa 8: Monitorização, manutenção e documentação#
Depois de implementar o modelo, é 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 ajudar a acompanhar os principais indicadores de desempenho (KPIs) e a detetar anomalias ou quedas na precisão. Ao monitorizar o modelo, pode estar atento à deriva do modelo, em que o desempenho do modelo diminui ao longo do tempo devido a alterações nos dados de entrada. Treine novamente o modelo periodicamente com dados atualizados para manter a precisão e a relevância.
Além da monitorização e da manutenção, a documentação também é essencial. Documente detalhadamente todo o processo, incluindo a arquitetura do modelo, os procedimentos de treino, os hiperparâmetros, as etapas de pré-processamento dos dados e quaisquer alterações feitas durante a implementação e a manutenção. Uma boa documentação garante a reprodutibilidade e facilita futuras atualizações ou a resolução de problemas. Ao monitorizar, manter e documentar eficazmente o seu modelo, pode garantir que este permanece preciso, fiável e fácil de gerir durante todo o seu ciclo de vida.
Interagir com a comunidade#
Ligar-se a uma comunidade de entusiastas da visão computacional pode ajudá-lo a enfrentar com confiança quaisquer problemas encontrados enquanto trabalha no seu projeto de visão computacional. Eis algumas formas de aprender, resolver problemas e criar uma rede de contactos de forma eficaz.
Recursos da comunidade#
- Issues do GitHub: Consulte o repositório do YOLO26 no GitHub e utilize o separador Issues para fazer perguntas, comunicar erros e sugerir novas funcionalidades. A comunidade ativa e os mantenedores estão disponíveis para ajudar com problemas específicos.
- Servidor Discord da Ultralytics: Entre no servidor Discord da Ultralytics para interagir com outros utilizadores e programadores, obter suporte e partilhar conhecimentos.
Documentação oficial#
- Documentação Ultralytics YOLO26: Explore a documentação oficial do YOLO26 para consultar guias detalhados com dicas úteis sobre diferentes tarefas e projetos de visão computacional.
Utilizar estes recursos ajudá-lo-á a superar desafios e a manter-se atualizado sobre as últimas tendências e boas práticas da comunidade de visão computacional.
Próximas etapas#
Agora tem um roteiro para cada etapa de um projeto de visão computacional, desde a definição dos objetivos até à monitorização de um modelo implementado. Ponha-o em prática treinando o seu primeiro modelo YOLO ou aprofunde-se numa etapa específica através dos guias acima. Para executar todo o pipeline sem escrever código, explore a Ultralytics Platform.
Perguntas frequentes#
A escolha da tarefa de visão computacional adequada depende do objetivo final do seu projeto. Por exemplo, se quiser monitorizar o trânsito, a deteção de objetos é adequada, pois consegue localizar e identificar vários tipos de veículos em tempo real. Para imagística médica, a segmentação de imagens é ideal para fornecer limites detalhados dos tumores, ajudando no diagnóstico e no planeamento do tratamento. Saiba mais sobre tarefas específicas, como deteção de objetos, segmentação de instâncias, segmentação semântica e classificação de imagens.
A anotação de dados é essencial para ensinar o modelo a reconhecer padrões. O tipo de anotação varia consoante a tarefa:
- Classificação de imagens: A imagem inteira é rotulada como uma única classe.
- Deteção de objetos: São desenhadas caixas delimitadoras à volta dos objetos.
- Segmentação de imagens: Cada píxel é rotulado de acordo com o objeto a que pertence.
O editor de anotações integrado na Ultralytics Platform pode ajudar neste processo. Para obter mais detalhes, consulte o nosso guia de recolha e anotação de dados.
Dividir o teu conjunto de dados antes do aumento de dados ajuda a validar o desempenho do modelo em dados originais e inalterados. Segue estes passos:
- Conjunto de treino: 70–80% dos teus dados.
- Conjunto de validação: 10–15% para ajuste de hiperparâmetros.
- Conjunto de teste: os 10–15% restantes para a avaliação final.
Depois de dividir os dados, aplica técnicas de aumento de dados, como rotação, dimensionamento e inversão, para aumentar a diversidade do conjunto de dados. Bibliotecas como Albumentations e OpenCV podem ajudar. A Ultralytics também oferece configurações de aumento integradas para maior comodidade.
Exporta o teu modelo treinado com o método
export, escolhendo um formato compatível com o teu destino de implementação. A Ultralytics suporta vários formatos, incluindo ONNX, TensorRT e CoreML. Para exportar o teu modelo YOLO26, segue estes passos:- Usa o método
exportcom o parâmetro de formato pretendido. - Garante que o modelo exportado cumpre as especificações do teu ambiente de implementação (por exemplo, dispositivos de edge ou cloud).
Para obteres mais informações, consulta o guia de exportação de modelos.
- Usa o método
A monitorização e a manutenção contínuas são essenciais para o sucesso do modelo a longo prazo. Implementa ferramentas para acompanhar os Indicadores-chave de desempenho (KPIs) e detetar anomalias. Volta a treinar regularmente o modelo com dados atualizados 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 facilitar atualizações futuras. Sabe mais no nosso guia de monitorização e manutenção.