YOLOv7 vs YOLOv9#
O panorama da deteção de objetos em tempo real evoluiu rapidamente, com cada nova iteração a expandir os limites do que é possível tanto em dispositivos periféricos como em servidores na cloud. Ao avaliar arquiteturas para projetos de visão computacional, os programadores comparam frequentemente referências estabelecidas com inovações mais recentes. Este guia abrangente compara dois marcos importantes da família YOLO: YOLOv7 e YOLOv9.
Analisaremos os seus avanços arquitetónicos, métricas de desempenho e cenários de implementação ideais para te ajudar a escolher o modelo certo para a tua aplicação. Também exploraremos como a Plataforma Ultralytics unifica estes modelos, tornando mais fácil treiná-los, validá-los e implementá-los.
Linhas de Descendência dos Modelos e Especificações Técnicas#
Compreender as origens e filosofias de design destes modelos fornece um contexto essencial para as suas capacidades. Ambos partilham uma linhagem de investigação comum, mas visam diferentes gargalos arquitetónicos.
YOLOv7: O Pioneiro da Bag of Freebies#
Lançado em meados de 2022, o YOLOv7 consolidou-se como uma arquitetura altamente fiável e fortemente otimizada. Introduziu a reparametrização estrutural e uma abordagem de "conjunto de vantagens gratuitas treinável" para manter velocidades de inferência elevadas sem comprometer a precisão média (mAP).
- Autores: Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao
- Organização: Institute of Information Science, Academia Sinica, Taiwan
- Data: 6 de julho de 2022
- Arxiv: 2207.02696
- GitHub: WongKinYiu/yolov7
Inovações Arquitetónicas: O YOLOv7 utiliza a Rede de Agregação de Camadas Eficiente Estendida (E-ELAN), que permite ao modelo aprender características mais diversificadas através da expansão, baralhamento e fusão da cardinalidade. Este design resulta numa excelente utilização da GPU e numa excelente latência de inferência. No entanto, pode exigir uma quantidade significativa de memória durante execuções de treino complexas em comparação com iterações modernas.
YOLOv9: Resolução do Gargalo de Informação#
Introduzido no início de 2024 pela mesma equipa de investigação, o YOLOv9 aborda o "gargalo de informação" inerente às redes neuronais profundas. À medida que os dados passam por camadas profundas, detalhes essenciais perdem-se frequentemente. O YOLOv9 reduz este problema através de designs de camadas fundamentalmente novos.
- Autores: Chien-Yao Wang e Hong-Yuan Mark Liao
- Organização: Institute of Information Science, Academia Sinica, Taiwan
- Data: 21 de fevereiro de 2024
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
Inovações Arquitetónicas: O YOLOv9 introduz a Informação de Gradiente Programável (PGI) e a Rede de Agregação de Camadas Eficiente Generalizada (GELAN). A PGI garante que os gradientes fiáveis são preservados e devolvidos para atualizar os pesos com precisão. A GELAN maximiza a eficiência dos parâmetros, permitindo ao YOLOv9 alcançar uma elevada precisão com significativamente menos FLOPs do que os seus antecessores.
Análise de desempenho#
Ao escolher entre arquiteturas, os engenheiros de IA devem equilibrar a precisão, a velocidade de inferência e o custo computacional. A tabela abaixo destaca as diferenças de desempenho entre estes modelos no conjunto de dados COCO padrão.
| Modelo | tamanho (píxeis) | mAPval 50-95 | Velocidade CPU ONNX (ms) | Velocidade T4 TensorRT10 (ms) | parâmetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| 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 |
Principais Conclusões#
- Eficiência de Parâmetros: O YOLOv9m iguala a precisão do YOLOv7l (51,4% mAP) utilizando quase 45% menos parâmetros (20,0M vs 36,9M). Esta redução drástica torna o YOLOv9m muito mais fácil de implementar em dispositivos de IA periférica com memória limitada.
- Implementações de Pequena Escala: A introdução da variante YOLOv9t (tiny) proporciona velocidades incríveis (2,3 ms num T4 com TensorRT) para ambientes onde as restrições de tempo real são absolutas.
- Precisão Máxima: Para aplicações em que a precisão é fundamental, o YOLOv9e eleva a precisão da deteção para 55,6% mAP, superando significativamente o YOLOv7x.
Embora o YOLOv7 e o YOLOv9 sejam poderosos, o recém-lançado YOLO26 representa um avanço decisivo. O YOLO26 introduz um design nativo sem NMS e de ponta a ponta, eliminando o pós-processamento complexo e aumentando as velocidades de inferência em CPU até 43%. Ao utilizar o novo otimizador MuSGD e as funções de perda ProgLoss + STAL melhoradas, o YOLO26 proporciona uma estabilidade de treino e uma precisão na deteção de objetos pequenos incomparáveis.
A vantagem da Ultralytics#
Escolher uma arquitetura de modelo é apenas o primeiro passo. O ecossistema de software que envolve o modelo determina a rapidez com que podes passar do protótipo à produção. Integrar estes modelos através da API Python da Ultralytics proporciona benefícios substanciais para programadores e investigadores.
Facilidade de utilização e eficiência de treino#
Historicamente, treinar o YOLOv7 exigia uma preparação de dados complexa e scripts fortemente personalizados. A framework da Ultralytics abstrai estas complexidades de aprendizagem profunda. Os programadores podem alternar facilmente entre arquiteturas, experimentar o ajuste de hiperparâmetros e utilizar pipelines inteligentes de aumento de dados com um mínimo de código.
Além disso, a Ultralytics otimiza a utilização de memória durante o treino e a inferência. Ao contrário dos pesados modelos Transformer (como o RT-DETR), as arquiteturas YOLO da Ultralytics treinam significativamente mais depressa e requerem muito menos memória CUDA, o que as torna ideais para GPUs de consumo.
Exemplo de código: treino simplificado#
Treinar modelos de última geração é simples no ecossistema Ultralytics. Eis um exemplo totalmente executável que demonstra como treinar e validar um modelo YOLOv9:
from ultralytics import YOLO
# Initialize the model (you can swap 'yolov9c.pt' with 'yolov7.pt' or 'yolo26n.pt')
model = YOLO("yolov9c.pt")
# Train the model on the COCO8 sample dataset
train_results = model.train(
data="coco8.yaml",
epochs=50,
imgsz=640,
device="0", # Use GPU 0 if available
batch=16, # Optimized batch size for memory efficiency
)
# Validate the model's performance on the validation set
metrics = model.val()
# Export the trained model to ONNX format for deployment
model.export(format="onnx")Versatilidade Inigualável entre Tarefas#
Um ecossistema bem mantido significa ter acesso a diversas tarefas de visão computacional. Embora o YOLOv7 tenha sido criado principalmente para a deteção de objetos (com forks experimentais posteriores para outras tarefas), os modelos modernos da Ultralytics são desenvolvidos nativamente para a versatilidade. Prontos a utilizar, permitem realizar segmentação de instâncias, estimativa de pose, classificação de imagens e deteção de Caixas Delimitadoras Orientadas (OBB) de forma simples.
Casos de utilização e aplicações ideais#
A decisão entre YOLOv7 e YOLOv9 depende frequentemente das restrições específicas do teu setor e da disponibilidade de hardware.
Quando utilizar o YOLOv7#
- Implementações Periféricas Legadas: Para ambientes de hardware já fortemente ajustados e otimizados para a arquitetura E-ELAN do YOLOv7, este continua a ser uma escolha robusta para a IoT industrial.
- Monitorização de Tráfego: As elevadas taxas de fotogramas e a estabilidade comprovada do YOLOv7 tornam-no excelente para infraestruturas de cidades inteligentes e gestão de tráfego em tempo real.
- Integração em Robótica: Navegar em ambientes dinâmicos exige processamento de baixa latência, um cenário em que as variantes do YOLOv7 foram amplamente testadas.
Quando utilizar YOLOv9#
- Imagiologia Médica: A arquitetura PGI do YOLOv9 é excecional na preservação de detalhes minuciosos através de camadas profundas, algo fundamental ao analisar tarefas complexas de análise de imagens médicas, como a deteção de tumores.
- Análise de Retalho Denso: Para acompanhar e contar itens densamente dispostos nas prateleiras de lojas, a integração de características do YOLOv9 proporciona uma precisão superior e reduz os falsos negativos.
- Imagens Aéreas e de Drones: A eficiência de parâmetros do YOLOv9m permite o processamento de imagens de alta resolução em drones, contribuindo para a conservação da vida selvagem e a monitorização agrícola sem esgotar a bateria.
Conclusão#
Tanto o YOLOv7 como o YOLOv9 consolidaram o seu lugar na história da visão computacional. O YOLOv7 introduziu otimizações essenciais para o processamento em tempo real, enquanto o YOLOv9 abordou gargalos estruturais da aprendizagem profunda para maximizar a eficiência dos parâmetros.
No entanto, para os programadores que iniciam novos projetos atualmente, tirar partido do ecossistema Ultralytics — especificamente de modelos de próxima geração como o YOLO11 e o YOLO26 — oferece o equilíbrio mais favorável entre velocidade, precisão e experiência de desenvolvimento. Com inovações como o otimizador MuSGD e a remoção da Perda Focal de Distribuição (DFL) para uma compatibilidade mais ampla com hardware, a Ultralytics continua a fornecer as ferramentas mais acessíveis e poderosas para profissionais de IA de visão.