YOLOv9: Um Salto à Frente em Detecção de objetos Tecnologia
O YOLOv9 marca um avanço significativo na detecção de objetos em tempo real, introduzindo técnicas inovadoras como a Programmable Gradient Information (PGI) e a Generalized Efficient Layer Aggregation Network (GELAN). Este modelo demonstra melhorias notáveis em eficiência, precisão e adaptabilidade, estabelecendo novos benchmarks no dataset MS COCO. O projeto YOLOv9, embora desenvolvido por uma equipe open-source separada, baseia-se na robusta base de código fornecida pela Ultralytics YOLOv5, demonstrando o espírito colaborativo da comunidade de pesquisa de IA.
Watch: YOLOv9 Training on Custom Data using Ultralytics | Industrial Package Dataset

Introdução ao YOLOv9
Na busca pela detecção de objetos em tempo real ideal, o YOLOv9 destaca-se com sua abordagem inovadora para superar os desafios de perda de informação inerentes às redes neurais profundas. Ao integrar a PGI e a versátil arquitetura GELAN, o YOLOv9 não apenas aprimora a capacidade de aprendizado do modelo, mas também garante a retenção de informações cruciais durante todo o processo de detecção, alcançando assim precisão e desempenho excepcionais.
Inovações Principais do YOLOv9
Os avanços do YOLOv9 estão profundamente enraizados na resolução dos desafios impostos pela perda de informação em redes neurais profundas. O Princípio do Gargalo de Informação (Information Bottleneck Principle) e o uso inovador de Funções Reversíveis são centrais para seu design, garantindo que o YOLOv9 mantenha alta eficiência e precisão.
Princípio do Gargalo de Informação
O Princípio do Gargalo de Informação revela um desafio fundamental no deep learning: à medida que os dados passam por camadas sucessivas de uma rede, o potencial de perda de informação aumenta. Este fenômeno é representado matematicamente como:
I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))onde I denota a informação mútua, e f e g representam funções de transformação com parâmetros theta e phi, respectivamente. O YOLOv9 combate este desafio implementando a Programmable Gradient Information (PGI), que ajuda a preservar dados essenciais ao longo da profundidade da rede, garantindo uma geração de gradiente mais confiável e, consequentemente, melhor convergência e desempenho do modelo.
Funções Reversíveis
O conceito de Funções Reversíveis é outro pilar do design do YOLOv9. Uma função é considerada reversível se puder ser invertida sem qualquer perda de informação, conforme expresso por:
X = v_zeta(r_psi(X))com psi e zeta como parâmetros para a função reversível e sua inversa, respectivamente. Esta propriedade é crucial para deep learning arquiteturas, pois permite que a rede retenha um fluxo de informação completo, permitindo assim atualizações mais precisas dos parâmetros do modelo. O YOLOv9 incorpora funções reversíveis dentro de sua arquitetura para mitigar o risco de degradação da informação, especialmente em camadas mais profundas, garantindo a preservação de dados críticos para tarefas de detecção de objetos.
Impacto em Modelos Leves
Abordar a perda de informação é particularmente vital para modelos leves, que muitas vezes possuem poucos parâmetros e são propensos a perder informações significativas durante o processo de feedforward. A arquitetura do YOLOv9, através do uso de PGI e funções reversíveis, garante que, mesmo com um modelo otimizado, as informações essenciais necessárias para uma detecção de objetos precisa sejam retidas e utilizadas de forma eficaz.
Programmable Gradient Information (PGI)
A PGI é um conceito novo introduzido no YOLOv9 para combater o problema do gargalo de informação, garantindo a preservação de dados essenciais através das camadas profundas da rede. Isso permite a geração de gradientes confiáveis, facilitando atualizações precisas do modelo e melhorando o desempenho geral da detecção.
Generalized Efficient Layer Aggregation Network (GELAN)
A GELAN representa um avanço arquitetônico estratégico, permitindo que o YOLOv9 alcance uma utilização de parâmetros e eficiência computacional superiores. Seu design permite a integração flexível de vários blocos computacionais, tornando o YOLOv9 adaptável a uma ampla gama de aplicações sem sacrificar velocidade ou precisão.

Benchmarks do YOLOv9
O benchmarking no YOLOv9 usando Ultralytics envolve avaliar o desempenho do seu modelo treinado e validado em cenários do mundo real. Este processo inclui:
- Avaliação de Desempenho: Avaliando a velocidade e a precisão do modelo.
- Formatos de Exportação: Testando o modelo em diferentes formatos de exportação para garantir que ele atenda aos padrões necessários e tenha um bom desempenho em vários ambientes.
- Suporte a Frameworks: Fornecendo um framework abrangente dentro do Ultralytics YOLOv8 para facilitar essas avaliações e garantir resultados consistentes e confiáveis.
Ao realizar benchmarks, você pode garantir que seu modelo não apenas tenha um bom desempenho em ambientes de teste controlados, mas também mantenha um alto desempenho em aplicações práticas do mundo real.
Watch: How to Benchmark the YOLOv9 Model Using the Ultralytics Python Package
Desempenho no Dataset MS COCO
O desempenho do YOLOv9 no COCO dataset exemplifica seus avanços significativos na detecção de objetos em tempo real, estabelecendo novos benchmarks em vários tamanhos de modelo. A Tabela 1 apresenta uma comparação abrangente dos detectores de objetos em tempo real de última geração, ilustrando a eficiência superior do YOLOv9 e accuracy.
As iterações do YOLOv9, variando desde a variante tiny t até o modelo extenso e, demonstram melhorias não apenas na precisão (métrica mAP), mas também na eficiência com um número reduzido de parâmetros e necessidades computacionais (FLOPs). Esta tabela destaca a capacidade do YOLOv9 de fornecer alta precisão enquanto mantém ou reduz a sobrecarga computacional em comparação com versões anteriores e modelos concorrentes.
Comparativamente, o YOLOv9 exibe ganhos notáveis:
- Modelos Leves: O YOLOv9s supera o YOLO MS-S em eficiência de parâmetros e carga computacional, enquanto atinge uma melhoria de 0.4∼0.6% em AP.
- Modelos Médios a Grandes: O YOLOv9m e o YOLOv9e mostram avanços notáveis no equilíbrio entre a complexidade do modelo e o desempenho da detecção, oferecendo reduções significativas em parâmetros e computações em comparação com a melhoria da precisão.
O modelo YOLOv9c, em particular, destaca a eficácia das otimizações da arquitetura. Ele opera com 42% menos parâmetros e 21% menos demanda computacional que o YOLOv7 AF, mas alcança uma precisão comparável, demonstrando as melhorias significativas de eficiência do YOLOv9. Além disso, o modelo YOLOv9e estabelece um novo padrão para modelos grandes, com 15% menos parâmetros e 25% menos necessidade computacional do que o YOLOv8x, juntamente com uma melhoria incremental de 1.7% em AP.
Estes resultados mostram os avanços estratégicos do YOLOv9 no design do modelo, enfatizando sua eficiência aprimorada sem comprometer a precisão essencial para tarefas de detecção de objetos em tempo real. O modelo não apenas ultrapassa os limites das métricas de desempenho, mas também enfatiza a importância da eficiência computacional, tornando-o um desenvolvimento fundamental no campo da computer vision.
Conclusão
O YOLOv9, lançado em fevereiro de 2024, representou um desenvolvimento fundamental na detecção de objetos em tempo real, oferecendo melhorias significativas em termos de eficiência, precisão e adaptabilidade. Ao abordar desafios críticos através de soluções inovadoras como PGI e GELAN, o YOLOv9 estabeleceu novos benchmarks na época do seu lançamento. Embora modelos mais novos, como YOLO11 e YOLO26 tenham sido lançados desde então com melhorias adicionais, as inovações arquiteturais do YOLOv9 continuam a influenciar o campo.
Exemplos de uso
Este exemplo fornece exemplos simples de treinamento e inferência com YOLOv9. Para documentação completa sobre estes e outros modos consulta as Previsão, Train, Val e Export páginas de documentação.
PyTorch modelos *.pt pré-treinados, bem como ficheiros de *.yaml configuração podem ser passados para a classe YOLO() para criar uma instância de modelo em Python:
from ultralytics import YOLO
# Build a YOLOv9c model from scratch
model = YOLO("yolov9c.yaml")
# Build a YOLOv9c model from pretrained weight
model = YOLO("yolov9c.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv9c model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Tarefas e modos suportados
A série YOLOv9 oferece uma variedade de modelos, cada um otimizado para alta performance Detecção de objetos. Estes modelos atendem a diversas necessidades computacionais e requisitos de precisão, tornando-os versáteis para uma ampla gama de aplicações.
| Modelo | Nomes de arquivo | Tarefas | Inference | Validação | Treinamento | Export |
|---|---|---|---|---|---|---|
| YOLOv9 | yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt | Detecção de objetos | ✅ | ✅ | ✅ | ✅ |
| YOLOv9-seg | yolov9c-seg.pt yolov9e-seg.pt | Instance Segmentation | ✅ | ✅ | ✅ | ✅ |
Esta tabela fornece uma visão detalhada das variantes do modelo YOLOv9, destacando suas capacidades em tarefas de detecção de objetos e sua compatibilidade com vários modos operacionais, como Inference, Validação, Treinamento, e Export. Este suporte abrangente garante que os usuários possam aproveitar totalmente as capacidades dos modelos YOLOv9 em uma ampla gama de cenários de detecção de objetos.
Treinar modelos YOLOv9 exigirá mais recursos e levará mais tempo do que o equivalente em tamanho modelo YOLOv8.
Citações e Agradecimentos
Gostaríamos de agradecer aos autores do YOLOv9 pelas suas contribuições significativas no campo da deteção de objetos em tempo real:
@article{wang2024yolov9,
title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
author={Wang, Chien-Yao and Liao, Hong-Yuan Mark},
booktitle={arXiv preprint arXiv:2402.13616},
year={2024}
}O artigo original do YOLOv9 pode ser encontrado em arXiv. Os autores disponibilizaram seu trabalho publicamente, e a base de código pode ser acessada no GitHub. Agradecemos seus esforços em avançar o campo e tornar seu trabalho acessível à comunidade em geral.
FAQ
Que inovações é que o YOLOv9 introduz para a deteção de objetos em tempo real?
O YOLOv9 introduz técnicas inovadoras como a Programmable Gradient Information (PGI) e a Generalized Efficient Layer Aggregation Network (GELAN). Estas inovações resolvem os desafios de perda de informação em redes neuronais profundas, assegurando elevada eficiência, precisão e adaptabilidade. A PGI preserva dados essenciais através das camadas da rede, enquanto a GELAN otimiza a utilização de parâmetros e a eficiência computacional. Sabe mais sobre as inovações centrais do YOLOv9 que estabelecem novos benchmarks no dataset MS COCO.
Como é que o YOLOv9 se comporta no dataset MS COCO em comparação com outros modelos?
O YOLOv9 supera os detetores de objetos em tempo real de última geração, alcançando maior precisão e eficiência. No COCO dataset, os modelos YOLOv9 exibem pontuações mAP superiores em vários tamanhos, mantendo ou reduzindo a sobrecarga computacional. Por exemplo, o YOLOv9c alcança uma precisão comparável com menos 42% de parâmetros e menos 21% de exigência computacional do que o YOLOv7 AF. Explora as comparações de desempenho para métricas detalhadas.
Como posso treinar um modelo YOLOv9 usando Python e CLI?
Podes treinar um modelo YOLOv9 usando comandos Python e CLI. Para Python, instancia um modelo usando a classe YOLO e chama o método train :
from ultralytics import YOLO
# Build a YOLOv9c model from pretrained weights and train
model = YOLO("yolov9c.pt")
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Para treino via CLI, executa:
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640Sabe mais sobre exemplos de uso para treino e inferência.
Quais são as vantagens de usar o Ultralytics YOLOv9 para modelos leves?
O YOLOv9 foi desenhado para mitigar a perda de informação, o que é particularmente importante para modelos leves que são frequentemente propensos a perder informação significativa. Ao integrar a Programmable Gradient Information (PGI) e funções reversíveis, o YOLOv9 assegura a retenção de dados essenciais, melhorando a precisão e a eficiência do modelo. Isto torna-o altamente adequado para aplicações que requerem modelos compactos com alto desempenho. Para mais detalhes, explora a secção sobre o impacto do YOLOv9 em modelos leves.
Quais são as tarefas e modos que o YOLOv9 suporta?
O YOLOv9 suporta várias tarefas, incluindo deteção de objetos e segmentação de instâncias. É compatível com múltiplos modos operacionais, tais como inferência, validação, treino e exportação. Esta versatilidade torna o YOLOv9 adaptável a diversas aplicações de visão computacional em tempo real. Consulta as tarefas e modos suportados seção para mais informações.