Link to this sectionCompreendendo as Etapas Principais em um Projeto de Visão Computacional#
Link to this sectionIntrodução#
Visão computacional é um subcampo da inteligência artificial (IA) que ajuda computadores a ver e entender o mundo como os humanos fazem. Ela 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 detecção de objetos, classificação de imagens e segmentação de instâncias podem ser aplicadas em diversos setores, desde direção autônoma até imagens médicas, para obter insights valiosos.
Trabalhar em seus próprios projetos de visão computacional é uma ótima maneira de entender e aprender mais sobre a área. No entanto, um projeto de visão computacional pode consistir em muitas etapas e pode parecer confuso no início. Ao final deste guia, você estará familiarizado com as etapas envolvidas em um projeto de visão computacional. Percorreremos tudo, do início ao fim de um projeto, explicando por que cada parte é importante.
Link to this sectionUma Visão Geral de um Projeto de Visão Computacional#
Antes de discutir os detalhes de cada etapa envolvida em um projeto de visão computacional, vamos olhar para o processo geral. Se você iniciasse um projeto de visão computacional hoje, seguiria estas etapas:
- Sua primeira prioridade seria entender os requisitos do seu projeto.
- Então, você coletaria e rotularia 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 minuciosamente seu modelo para garantir que ele tenha um desempenho consistente sob diferentes condições.
- Finalmente, você implantaria seu modelo no mundo real e o atualizaria com base em novos insights e feedback.
Agora que sabemos o que esperar, vamos mergulhar nas etapas e fazer seu projeto avançar.
Link to this sectionEtapa 1: Definindo as Metas 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 em qual tarefa de visão computacional você precisa focar.
Aqui estão alguns exemplos de objetivos de projeto e as tarefas de visão computacional que podem ser usadas para alcançar esses objetivos:
-
Objetivo: Desenvolver um sistema que possa monitorar e gerenciar o fluxo de diferentes tipos de veículos em rodovias, melhorando o gerenciamento do tráfego e a segurança.
- Tarefa de Visão Computacional: A detecção de objetos é ideal para monitoramento de tráfego porque localiza e identifica eficientemente vários veículos. Ela é menos exigente computacionalmente 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 radiologistas, fornecendo contornos precisos em nível de pixel de tumores em exames de imagem médica.
- Tarefa de Visão Computacional: A segmentação de imagens é adequada para imagens médicas porque fornece limites precisos e detalhados de tumores, cruciais para avaliar tamanho, forma e planejamento de tratamento.
-
Objetivo: Criar um sistema digital que categorize diversos documentos (por exemplo, faturas, recibos, papéis legais) para melhorar a eficiência organizacional e a recuperação de documentos.
- Tarefa de Visão Computacional: A classificação de imagens é ideal aqui, pois lida com um documento de cada vez, sem precisar considerar a posição do documento na imagem. Essa abordagem simplifica e acelera o processo de classificação.
Link to this sectionEtapa 1.5: Selecionando o Modelo e a Abordagem de Treinamento Certos#
Após entender o objetivo do projeto e as tarefas de visão computacional adequadas, uma parte essencial da definição da meta do projeto é selecionar o modelo certo e a abordagem de treinamento.
Dependendo do objetivo, você pode optar por selecionar o modelo primeiro ou depois de ver quais dados você consegue coletar na Etapa 2. Por exemplo, suponha que seu projeto dependa muito da disponibilidade de tipos específicos de dados. Nesse caso, pode ser mais prático coletar e analisar os dados primeiro antes de selecionar um modelo. Por outro lado, se você tiver uma compreensão clara dos requisitos do modelo, pode escolher o modelo primeiro e depois coletar os dados que se ajustam a essas especificações.
Escolher entre treinar do zero ou usar transfer learning afeta como você prepara seus dados. Treinar do zero requer um conjunto de dados diversificado para construir o entendimento do modelo desde o início. O transfer learning, por outro lado, permite que você use um modelo pré-treinado e o adapte com um conjunto de dados menor e mais específico. Além disso, escolher 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.
Nota: Ao escolher um modelo, considere sua implantação para garantir compatibilidade e desempenho. Por exemplo, modelos leves são ideais para computação de borda devido à sua eficiência em dispositivos com recursos limitados. Para saber mais sobre os pontos principais relacionados à definição do seu projeto, leia nosso guia sobre como definir as metas do seu projeto e selecionar o modelo certo.
Antes de começar o trabalho prático de um projeto de visão computacional, é importante ter uma compreensão clara desses detalhes. Verifique se você considerou o seguinte antes de prosseguir para a Etapa 2:
- Defina claramente o problema que você está tentando resolver.
- Determine o objetivo final do seu projeto.
- Identifique a tarefa específica de visão computacional necessária (por exemplo, detecção de objetos, classificação de imagens, segmentação de imagens).
- Decida se vai treinar um modelo do zero ou usar transfer learning.
- Selecione o modelo apropriado para sua tarefa e necessidades de implantação.
Link to this sectionEtapa 2: Coleta e Anotação de Dados#
A qualidade dos seus modelos de visão computacional depende da qualidade do seu conjunto de dados. Você pode coletar imagens da internet, tirar suas próprias fotos ou usar conjuntos de dados pré-existentes. Aqui estão alguns ótimos recursos para baixar conjuntos de dados de alta qualidade: Google Dataset Search Engine, UC Irvine Machine Learning Repository e Kaggle Datasets.
Algumas bibliotecas, como a Ultralytics, oferecem suporte integrado para vários conjuntos de dados, facilitando o início com dados de alta qualidade. Essas bibliotecas geralmente incluem utilitários para usar conjuntos de dados populares perfeitamente, o que pode economizar muito tempo e esforço nos estágios iniciais do seu projeto.
No entanto, se você optar por coletar imagens ou tirar suas próprias fotos, precisará anotar seus dados. Anotação de dados é o processo de rotular seus dados para transmitir conhecimento ao seu modelo. O tipo de anotação de dados com o qual você trabalhará depende da sua técnica específica de visão computacional. Aqui estão alguns exemplos:
- Classificação de Imagens: Você rotulará toda a imagem como uma única classe.
- Detecção de Objetos: Você desenhará caixas delimitadoras ao redor de cada objeto na imagem e rotulará cada caixa.
- Segmentação de Imagens: Você rotulará cada pixel na imagem de acordo com o objeto ao qual ele pertence, criando limites detalhados dos objetos.
A coleta e anotação de dados podem ser um esforço manual demorado. Ferramentas de anotação podem ajudar a tornar esse processo mais fácil. Aqui estão algumas ferramentas de anotação abertas úteis: Label Studio, CVAT e Labelme.
Link to this sectionEtapa 3: Aumento de Dados e Divisão do Seu Conjunto de Dados#
Após coletar e anotar seus dados de imagem, é importante dividir primeiro seu conjunto de dados em conjuntos de treinamento, validação e teste antes de realizar o aumento de dados. Dividir seu conjunto de dados antes do aumento é crucial para testar e validar seu modelo em dados originais e inalterados. Isso ajuda a avaliar com precisão o quão bem o modelo generaliza para novos dados não vistos.
Veja como dividir seus dados:
- Conjunto de Treinamento: É a maior parte dos seus dados, normalmente 70-80% do total, usada para treinar seu modelo.
- Conjunto de Validação: Geralmente em torno de 10-15% dos seus dados; este conjunto é usado para ajustar hiperparâmetros e validar o modelo durante o treinamento, ajudando a prevenir overfitting.
- Conjunto de Teste: Os 10-15% restantes dos seus dados são reservados como o conjunto de teste. Ele é usado para avaliar o desempenho do modelo em dados não vistos após a conclusão do treinamento.
Após dividir seus dados, você pode realizar o aumento de dados aplicando transformações como girar, redimensionar e espelhar imagens para aumentar artificialmente o tamanho do seu conjunto de dados. O aumento de dados torna seu modelo mais robusto a variações e melhora seu desempenho em imagens não vistas.
Bibliotecas como OpenCV, Albumentations e TensorFlow oferecem funções de aumento flexíveis que você pode usar. Além disso, algumas bibliotecas, como a Ultralytics, possuem configurações de aumento integradas diretamente em sua função de treinamento de modelo, simplificando o processo.
To understand your data better, you can use tools like Matplotlib or Seaborn to visualize the images and analyze their distribution and characteristics. Visualizing your data helps identify patterns, anomalies, and the effectiveness of your augmentation techniques. The Ultralytics Platform Charts tab can surface many of these insights without any code by automatically generating split distribution, class counts, image-dimension histograms, and annotation-position heatmaps for every uploaded dataset.
Ao entender, dividir e aumentar adequadamente seus dados, você pode desenvolver um modelo bem treinado, validado e testado que funciona bem em aplicações do mundo real.
Link to this sectionEtapa 4: Treinamento do Modelo#
Assim que seu conjunto de dados estiver pronto para treinamento, você pode focar em configurar o ambiente necessário, gerenciar seus conjuntos de dados e treinar seu modelo.
Primeiro, você precisará garantir que seu ambiente esteja configurado corretamente. Normalmente, isso inclui o seguinte:
- Instalar bibliotecas e frameworks essenciais como TensorFlow, PyTorch ou Ultralytics.
- Se você estiver usando uma GPU, instalar bibliotecas como CUDA e cuDNN ajudará a habilitar a aceleração de GPU e acelerar o processo de treinamento.
Em seguida, você pode carregar seus conjuntos de dados de treinamento e validação em seu ambiente. Normalize e pré-processe os dados por meio de redimensionamento, conversão de formato ou aumento. Com seu 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 treinamento. Você pode iniciar o treinamento alimentando dados no modelo com o mínimo de código. Essas bibliotecas lidam com ajustes de peso, backpropagation e validação automaticamente. Elas também oferecem ferramentas para monitorar o progresso e ajustar hiperparâmetros facilmente. Após o treinamento, salve o modelo e seus pesos com alguns comandos.
É importante ter em mente que o gerenciamento adequado do conjunto de dados é vital para um treinamento eficiente. Use controle de versão para conjuntos de dados para rastrear alterações e garantir a reprodutibilidade. Ferramentas como DVC (Data Version Control) podem ajudar a gerenciar grandes conjuntos de dados.
Link to this sectionEtapa 5: Avaliação e Ajuste Fino do Modelo#
É importante avaliar o desempenho do seu modelo usando várias métricas e refiná-lo para melhorar a precisão. A avaliação ajuda a identificar áreas onde o modelo se destaca e onde ele pode precisar de melhorias. O ajuste fino garante que o modelo seja otimizado para o melhor desempenho possível.
- Performance Metrics: Use metrics like accuracy, precision, recall, and F1-score to evaluate your model's performance. These metrics provide insights into how well your model is making predictions.
- Ajuste de Hiperparâmetros: Ajuste os hiperparâmetros para otimizar o desempenho do modelo. Técnicas como busca em grade ou busca aleatória podem ajudar a encontrar os melhores valores de hiperparâmetros.
- Ajuste Fino: Faça pequenos ajustes na arquitetura do modelo ou no processo de treinamento para melhorar o desempenho. Isso pode envolver o ajuste de taxas de aprendizado, tamanhos de lote ou outros parâmetros do modelo.
Para uma compreensão mais profunda da avaliação de modelos e técnicas de ajuste fino, confira nosso guia de insights sobre avaliação de modelos.
Link to this sectionEtapa 6: Teste do Modelo#
Nesta etapa, você pode garantir que seu modelo tenha um bom desempenho em dados completamente não vistos, confirmando sua prontidão para implantação. A diferença entre teste de modelo e avaliação de modelo é que ele foca em verificar o desempenho do modelo final, em vez de melhorá-lo iterativamente.
É importante testar e depurar minuciosamente quaisquer problemas comuns que possam surgir. Teste seu modelo em um conjunto de dados de teste separado que não foi usado durante o treinamento ou validação. Este conjunto de dados deve representar cenários do mundo real para garantir que o desempenho do modelo seja consistente e confiável.
Além disso, resolva problemas comuns, como overfitting, underfitting e vazamento de dados. Use técnicas como validação cruzada e detecção de anomalias para identificar e corrigir esses problemas. Para estratégias de teste abrangentes, consulte nosso guia de teste de modelos.
Link to this sectionEtapa 7: Implantação do Modelo#
Uma vez que seu modelo tenha sido totalmente testado, é hora de implantá-lo. A implantação de modelo envolve disponibilizar seu modelo para uso em um ambiente de produção. Aqui estão as etapas para implantar um modelo de visão computacional:
- Configuração do Ambiente: Configure a infraestrutura necessária para a opção de implantação escolhida, seja ela baseada em nuvem (AWS, Google Cloud, Azure) ou baseada em borda (dispositivos locais, IoT).
- Exportando o Modelo: Exporte seu modelo para o formato apropriado (por exemplo, ONNX, TensorRT, CoreML para YOLO26) para garantir a compatibilidade com sua plataforma de implantação.
- Implantando o Modelo: Implante o modelo configurando APIs ou endpoints e integrando-o ao seu aplicativo.
- Garantindo Escalabilidade: Implemente balanceadores de carga, grupos de autoescalonamento e ferramentas de monitoramento para gerenciar recursos e lidar com o aumento de dados e solicitações de usuários.
For more detailed guidance on deployment strategies and best practices, check out our model deployment practices guide. Ultralytics Platform also provides managed deployment endpoints with auto-scaling across 43 global regions, handling infrastructure setup automatically.
Link to this sectionEtapa 8: Monitoramento, Manutenção e Documentação#
Uma vez que seu modelo esteja implantado, é importante monitorar continuamente seu desempenho, mantê-lo para lidar com quaisquer problemas e documentar todo o processo para referência futura e melhorias.
Ferramentas de monitoramento podem ajudá-lo a rastrear os principais indicadores de desempenho (KPIs) e detectar anomalias ou quedas na precisão. Ao monitorar o modelo, você pode estar ciente da deriva do modelo (model drift), onde o desempenho do modelo diminui com o tempo devido a alterações nos dados de entrada. Treine o modelo periodicamente com dados atualizados para manter a precisão e a relevância.
Além do monitoramento e manutenção, a documentação também é fundamental. Documente minuciosamente todo o processo, incluindo a arquitetura do modelo, procedimentos de treinamento, hiperparâmetros, etapas de pré-processamento de dados e quaisquer alterações feitas durante a implantação e manutenção. Uma boa documentação garante a reprodutibilidade e facilita futuras atualizações ou solução de problemas. Ao monitorar, manter e documentar efetivamente seu modelo, você pode garantir que ele permaneça preciso, confiável e fácil de gerenciar ao longo de seu ciclo de vida.
Link to this sectionEngajando-se com a Comunidade#
Conectar-se com uma comunidade de entusiastas de visão computacional pode ajudá-lo a enfrentar quaisquer problemas que você enfrente enquanto trabalha em seu projeto de visão computacional com confiança. Aqui estão algumas maneiras de aprender, solucionar problemas e fazer networking de forma eficaz.
Link to this sectionRecursos da comunidade#
- Issues do GitHub: Confira o repositório GitHub do YOLO26 e use a guia Issues para fazer perguntas, relatar bugs e sugerir novos recursos. A comunidade ativa e os mantenedores estão lá para ajudar com problemas específicos.
- Servidor Discord da Ultralytics: Entre no servidor Discord da Ultralytics para interagir com outros usuários e desenvolvedores, obter suporte e compartilhar insights.
Link to this sectionDocumentação Oficial#
- Documentação YOLO26 da Ultralytics: Explore a documentação oficial do YOLO26 para guias detalhados com dicas úteis sobre diferentes tarefas e projetos de visão computacional.
Usar esses recursos ajudará você a superar desafios e se manter atualizado com as últimas tendências e práticas recomendadas na comunidade de visão computacional.
Link to this sectionPróximas Etapas#
Assumir um projeto de visão computacional pode ser emocionante e gratificante. Seguindo as etapas deste guia, você pode 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 você ganha experiência, descobrirá técnicas e ferramentas avançadas para melhorar seus projetos.
Link to this sectionFAQ#
Link to this sectionComo escolho a tarefa de visão computacional certa para meu projeto?#
Escolher a tarefa de visão computacional certa depende do objetivo final do seu projeto. Por exemplo, se você deseja monitorar o tráfego, a detecção de objetos é adequada, pois 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, auxiliando no diagnóstico e planejamento de tratamento. Saiba mais sobre tarefas específicas como detecção de objetos, segmentação de instâncias, segmentação semântica e classificação de imagens.
Link to this sectionPor que a anotação de dados é crucial em projetos de visão computacional?#
A anotação de dados é vital para ensinar seu modelo a reconhecer padrões. O tipo de anotação varia de acordo com a tarefa:
- Classificação de Imagens: Imagem inteira rotulada como uma única classe.
- Detecção de Objetos: Caixas delimitadoras desenhadas ao redor de objetos.
- Segmentação de Imagens: Cada pixel rotulado de acordo com o objeto ao qual ele pertence.
Ferramentas como Label Studio, CVAT e Labelme podem ajudar neste processo. Para mais detalhes, consulte nosso guia de coleta e anotação de dados.
Link to this sectionQuais etapas devo seguir para aumentar e dividir meu conjunto de dados de forma eficaz?#
Dividir seu conjunto de dados antes do aumento ajuda a validar o desempenho do modelo em dados originais e inalterados. Siga estas etapas:
- Conjunto de Treinamento: 70-80% dos seus dados.
- Conjunto de Validação: 10-15% para ajuste de hiperparâmetros.
- Conjunto de Teste: Os 10-15% restantes para avaliação final.
Após a divisão, aplica técnicas de aumento de dados como rotação, escala e inversão (flipping) para aumentar a diversidade do conjunto de dados. Bibliotecas como Albumentations e OpenCV podem ajudar. A Ultralytics também oferece definições de aumento integradas para maior conveniência.
Link to this sectionComo posso exportar o meu modelo de visão computacional treinado para implementação?#
Exportar o teu modelo garante compatibilidade com diferentes plataformas de implementação. A Ultralytics fornece múltiplos formatos, incluindo ONNX, TensorRT e CoreML. Para exportar o teu modelo YOLO26, segue este guia:
- Usa a função
exportcom o parâmetro de formato desejado. - Garante que o modelo exportado se ajusta às especificações do teu ambiente de implementação (por exemplo, dispositivos edge, nuvem).
Para mais informações, consulta o guia de exportação de modelos.
Link to this sectionQuais 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 Indicadores-Chave de Desempenho (KPIs) e detetar anomalias. Re-treina regularmente o modelo com dados atualizados para combater a degradação do modelo (model drift). Documenta todo o processo, incluindo a arquitetura do modelo, hiperparâmetros e alterações, para garantir a reprodutibilidade e facilitar futuras atualizações. Sabe mais no nosso guia de monitorização e manutenção.