YOLOv5 . YOLOv9: Evolução da deteção de objetos em tempo real
O panorama da deteção de objetos em tempo real evoluiu drasticamente nos últimos anos. Enquanto YOLOv5 estabeleceu o padrão de usabilidade e adoção industrial em 2020, o YOLOv9 introduziu novos conceitos arquitetónicos em 2024 para ampliar os limites da precisão e eficiência. Este guia fornece uma comparação técnica detalhada para ajudar os programadores a escolher a ferramenta certa para os seus projetos de visão computacional.
Origens do modelo e especificações técnicas
Compreender a proveniência desses modelos ajuda a contextualizar a sua filosofia de design e os casos de uso pretendidos.
YOLOv5: O Padrão Industrial
Lançado em junho de 2020 por Glenn Jocher e Ultralytics, YOLOv5 a facilidade de uso, a exportabilidade e a velocidade. Tornou-se o primeiro YOLO implementado nativamente no PyTorch, tornando-o acessível a uma enorme comunidade de Python .
- Autor: Glenn Jocher
- Organização:Ultralytics
- Data: 2020-06-26
- Repositório:GitHub
- Foco: Usabilidade, vias de exportação robustas (ONNX, CoreML, TFLite) e formação rápida.
YOLOv9: Inovação Arquitetural
Lançado em fevereiro de 2024 por Chien-Yao Wang e Hong-Yuan Mark Liao, da Academia Sinica, YOLOv9 em resolver o problema do «gargalo de informação» nas redes profundas.
- Autores: Chien-Yao Wang, Hong-Yuan Mark Liao
- Organização: Institute of Information Science, Academia Sinica
- Data: 2024-02-21
- Repositório:GitHub
- Artigo:arXiv:2402.13616
- Foco: Eficiência de parâmetros e supervisão profunda utilizando Informação de Gradiente Programável (PGI).
Diferenças Arquiteturais
A principal diferença reside na forma como estes modelos lidam com a extração de características e o fluxo de gradiente.
YOLOv5 utiliza uma estrutura CSPNet (Cross Stage Partial Network). Este design divide o fluxo de gradiente para reduzir a computação, mantendo a precisão, o que foi revolucionário para a criação de modelos compactos adequados para sistemas incorporados. O seu cabeçote de detecção baseado em âncora é altamente otimizado para tarefas de uso geral, oferecendo um equilíbrio que permanece competitivo para muitas aplicações legadas.
YOLOv9 apresenta duas inovações importantes: GELAN (Generalized Efficient Layer Aggregation Network, Rede Generalizada de Agregação de Camadas Eficientes) e PGI (Programmable Gradient Information, Informação de Gradiente Programável). A GELAN otimiza a utilização de parâmetros, permitindo que o modelo seja mais leve e, ao mesmo tempo, aprenda características mais complexas. A PGI resolve a perda de informação à medida que os dados se propagam por camadas profundas, fornecendo um ramo de supervisão auxiliar, garantindo a geração confiável de gradientes mesmo em arquiteturas muito profundas.
Você sabia?
Embora YOLOv9 novidades arquitetónicas, o Ultralytics YOLOv5 continua a ser imbatível em termos de implementação. Suporta nativamente a exportação para formatos como TensorRT Edge TPU, simplificando o caminho desde a formação até à produção.
Análise de Desempenho
Ao comparar métricas, YOLOv9 alcançaum mAPval mais alto para uma determinada contagem de parâmetros, particularmente nas variantes de modelo maiores. No entanto, YOLOv5 incrivelmente competitivo em velocidade de inferência em CPUs e hardware legado devido à sua arquitetura mais simples.
Métricas de Benchmark
A tabela abaixo destaca as vantagens e desvantagens. O YOLOv9c atinge 53,0% mAP, superando o YOLOv5x (50,7%), ao mesmo tempo em que usa significativamente menos parâmetros (25,3 milhões contra 97,2 milhões). Isso demonstra a eficiência da arquitetura GELAN. Por outro lado, as YOLOv5 menores YOLOv5 (Nano e Small) oferecem latência extremamente baixa, tornando-as viáveis para dispositivos de consumo ultrabaixo de energia.
| Modelo | tamanho (pixels) | mAPval 50-95 | Velocidade CPU ONNX (ms) | Velocidade T4 TensorRT10 (ms) | parâmetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 86.7 | 205.7 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
Nota: A tabela reflete as métricas COCO padrão COCO . Os valores em negrito indicam o melhor desempenho nessa categoria específica.
Facilidade de Uso e Ecossistema
É aqui que a distinção se torna mais prática para os programadores.
Ultralytics (YOLOv5)
YOLOv5 concebido para a experiência do programador. O Ultralytics proporciona um fluxo de trabalho contínuo:
- API simples: carregue e treine modelos com algumas linhas de Python.
- Ferramentas integradas: integração automática com ferramentas de acompanhamento de experiências, como Comet ClearML.
- Implementação: Exportação com um clique para ONNX, CoreML, TFLite e OpenVINO.
from ultralytics import YOLO
# Load a pre-trained YOLOv5 model
model = YOLO("yolov5su.pt")
# Train on custom data
model.train(data="coco8.yaml", epochs=100)
# Export to ONNX for deployment
model.export(format="onnx")
YOLOv9
Embora seja altamente preciso, o YOLOv9 original YOLOv9 é voltado para a pesquisa. No entanto, YOLOv9 agoraYOLOv9 totalmente compatível com o Ultralytics , trazendo a mesma facilidade de uso para essa arquitetura mais recente. Isso significa que não é necessário sacrificar a usabilidade para aceder às melhorias arquitetónicas mais recentes; basta alterar a sequência de caracteres do nome do modelo.
Eficiência e Memória no Treinamento
Uma vantagem crítica dos Ultralytics , incluindo YOLOv5 o YOLOv9 integrado, é a eficiência da memória.
- GPU : Os loops Ultralytics são otimizados para minimizar o uso CUDA . Isso permite que os utilizadores treinem lotes maiores em hardware de nível consumidor (como NVIDIA 3060/4090) em comparação com modelos baseados em transformadores, que geralmente consomem muita memória.
- Convergência: YOLOv5 famoso pela sua capacidade de «treinar fora da caixa», exigindo um ajuste mínimo de hiperparâmetros. YOLOv9, com o seu ramo auxiliar PGI, também demonstra uma convergência estável, embora a arquitetura seja mais complexa.
Aplicações no Mundo Real
A escolha do modelo certo depende das suas restrições de implementação.
Casos de Uso Ideais para YOLOv5
- IA de ponta em hardware antigo: se estiver a implementar em modelos mais antigos do Raspberry Pi ou em dispositivos móveis onde cada milésimo de segundo de latência de inferência é importante, o YOLOv5n (Nano) é imbatível.
- Prototipagem rápida: para hackathons ou startups que precisam de uma Prova de Conceito (PoC) em poucas horas, a vasta documentação e os tutoriais da comunidade para YOLOv5 o desenvolvimento.
- Aplicações móveis: O seu suporte nativo para iOS CoreML e Android TFLite -o um elemento essencial para os programadores móveis.
Casos de Uso Ideais para YOLOv9
- Inspeção de alta precisão: No controlo de qualidade da produção, onde a deteção de defeitos minúsculos é fundamental, a extração de características superior do GELAN torna YOLOv9 escolha melhor.
- Imagem médica: Para tarefas como deteção de tumores, em que a precisão é mais importante do que a velocidade bruta, o YOLOv9e fornece o mAP necessário mAP .
- Cenas complexas: ambientes com alta oclusão ou desorganização beneficiam-se dos gradientes programáveis que ajudam o modelo a reter informações críticas através de camadas profundas.
O Futuro: Conhecendo o YOLO26
Embora YOLOv5 uma ferramenta confiável e YOLOv9 alta precisão, o campo avançou novamente. Para novos projetos com início em 2026, Ultralytics representa o auge do desempenho e da eficiência.
Por que Atualizar para o YOLO26?
- Nativamente ponta a ponta: ao contrário YOLOv5 do v9, que requerem NMS , o YOLO26 NMS requer NMS, simplificando os pipelines de implementação.
- Otimizador MuSGD: Inspirado no treinamento LLM, este otimizador garante um treinamento mais rápido e estável.
- Versatilidade: suporta deteção, segmentação, pose, OBB e classificação prontos a usar.
Para os utilizadores que atualmente utilizam YOLOv5, a migração para o YOLO26 oferece aumentos significativos na velocidade (até 43% mais rápido CPU ) e deteção aprimorada de pequenos objetos por meio do ProgLoss + STAL, tornando-o o caminho recomendado para implementações de ponta e na nuvem.
Conclusão
Ambas as arquiteturas têm o seu lugar. YOLOv5 continua a ser o rei da simplicidade e da ampla compatibilidade com dispositivos, perfeito para programadores que precisam de uma solução que simplesmente funcione. YOLOv9 oferece um vislumbre do futuro do deep learning eficiente com os seus gradientes programáveis, proporcionando precisão de última geração.
No entanto, utilizar o Ultralytics garante que não fique preso a uma única opção. Pode treinar YOLOv5, YOLOv9 e o inovador YOLO26 utilizando exatamente a mesma API, o que lhe permite comparar o desempenho deles com os seus próprios dados e escolher o melhor para a sua aplicação específica.
Resumo da Comparação
| Funcionalidade | YOLOv5 | YOLOv9 |
|---|---|---|
| Foco Primário | Velocidade, facilidade de utilização, implementação | Precisão, eficiência dos parâmetros |
| Arquitetura | Backbone CSPNet, baseado em âncora | GELAN Backbone, PGI, baseado em âncora |
| Ecossistema | Ultralytics nativo para Ultralytics | Integrado ao Ultralytics |
| Ideal Para | Sistemas móveis, de ponta e legados | Pesquisa de alta precisão, cenas complexas |
| Inferência | Extremamente rápido (GPU) | Alta precisão / Mais lento |
Explore outros modelos da Ultralytics :
- YOLO11 - O robusto antecessor do YOLO26.
- YOLOv8 - Uma estrutura unificada para deteção, segmentação e pose.
- RT-DETR - Detecção em tempo real baseada em transformador.