YOLOv9: um salto em frente na tecnologia de deteção de objetos#
O YOLOv9 representa um avanço significativo na deteção de objetos em tempo real, introduzindo técnicas inovadoras como Informação de Gradiente Programável (PGI) e a Rede de Agregação de Camadas Eficiente Generalizada (GELAN). Este modelo demonstra melhorias notáveis em eficiência, precisão e adaptabilidade, estabelecendo novos marcos no conjunto de dados MS COCO. O projeto YOLOv9, embora desenvolvido por uma equipa de código aberto independente, baseia-se na sólida base de código disponibilizada pelo Ultralytics YOLOv5, demonstrando o espírito de colaboração da comunidade de investigação em IA.
Assista: Treinamento de YOLOv9 com dados personalizados usando Ultralytics | Conjunto de dados de embalagens industriais

Introdução ao YOLOv9#
Na procura da deteção ideal de objetos em tempo real, o YOLOv9 destaca-se pela sua abordagem inovadora para superar os desafios da perda de informação inerentes às redes neuronais profundas. Ao integrar PGI e a versátil arquitetura GELAN, o YOLOv9 não só aumenta a capacidade de aprendizagem do modelo, como também garante a retenção de informações cruciais ao longo do processo de deteção, alcançando assim uma precisão e um desempenho excecionais.
Principais inovações do YOLOv9#
Os avanços do YOLOv9 estão profundamente enraizados na resolução dos desafios causados pela perda de informação nas redes neuronais profundas. O princípio do gargalo de informação e a utilização inovadora de funções reversíveis são centrais para a sua conceção, 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 na aprendizagem profunda: à medida que os dados passam por camadas sucessivas de uma rede, aumenta o potencial de perda de informação. Este fenómeno é representado matematicamente da seguinte forma:
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 os parâmetros theta e phi, respetivamente. O YOLOv9 enfrenta este desafio implementando Informação de Gradiente Programável (PGI), que ajuda a preservar dados essenciais ao longo da profundidade da rede, garantindo uma geração de gradientes mais fiável e, consequentemente, uma melhor convergência e um melhor desempenho do modelo.
Funções reversíveis#
O conceito de funções reversíveis é outro pilar da conceção do YOLOv9. Uma função é considerada reversível se puder ser invertida sem perda de informação, conforme expresso por:
X = v_zeta(r_psi(X))com psi e zeta como parâmetros da função reversível e da sua função inversa, respetivamente. Esta propriedade é crucial para as arquiteturas de aprendizagem profunda, pois permite que a rede retenha um fluxo de informação completo, possibilitando atualizações mais precisas dos parâmetros do modelo. O YOLOv9 incorpora funções reversíveis na sua arquitetura para atenuar o risco de degradação da informação, sobretudo nas camadas mais profundas, garantindo a preservação de dados essenciais para tarefas de deteção de objetos.
Impacto nos modelos leves#
A resolução da perda de informação é particularmente importante para modelos leves, que muitas vezes têm poucos parâmetros e são propensos a perder informação significativa durante o processo de propagação direta. A arquitetura do YOLOv9, através da utilização de PGI e de funções reversíveis, garante que, mesmo com um modelo simplificado, a informação essencial para uma deteção precisa de objetos seja retida e utilizada eficazmente.
Informação de Gradiente Programável (PGI)#
A PGI é um conceito inovador introduzido no YOLOv9 para combater o problema do gargalo de informação, garantindo a preservação de dados essenciais ao longo das camadas profundas da rede. Isto permite gerar gradientes fiáveis, facilitando atualizações precisas do modelo e melhorando o desempenho geral da deteção.
Rede de Agregação de Camadas Eficiente Generalizada (GELAN)#
A GELAN representa um avanço estratégico na arquitetura, permitindo ao YOLOv9 alcançar uma utilização superior dos parâmetros e maior eficiência computacional. A sua conceção permite a integração flexível de vários blocos computacionais, tornando o YOLOv9 adaptável a uma vasta gama de aplicações sem sacrificar velocidade ou precisão.

Resultados de referência do YOLOv9#
A avaliação de desempenho do YOLOv9 com o Ultralytics envolve testar o modelo treinado e validado em cenários do mundo real. Este processo inclui:
- Avaliação do desempenho: avaliação da velocidade e da precisão do modelo.
- Formatos de exportação: testar o modelo em diferentes formatos de exportação para garantir que cumpre os padrões necessários e tem um bom desempenho em vários ambientes.
- Suporte de estruturas: disponibilizar um ambiente abrangente no pacote Ultralytics para facilitar estas avaliações e garantir resultados consistentes e fiáveis.
Ao avaliar o desempenho, podes garantir que o teu modelo não só tem um bom desempenho em ambientes de teste controlados, como também mantém um alto desempenho em aplicações práticas do mundo real.
Assista: Como fazer benchmark do modelo YOLOv9 usando o pacote Ultralytics Python
Desempenho no conjunto de dados MS COCO#
O desempenho do YOLOv9 no conjunto de dados COCO exemplifica os seus avanços significativos na deteção de objetos em tempo real, estabelecendo novos marcos para vários tamanhos de modelo. A Tabela 1 apresenta uma comparação abrangente dos detetores de objetos em tempo real de última geração, ilustrando a eficiência e a precisão superiores do YOLOv9.
As iterações do YOLOv9, desde a variante minúscula t até ao modelo de grandes dimensões e, demonstram melhorias não só na precisão (métricas mAP), mas também na eficiência, com um número reduzido de parâmetros e menores necessidades computacionais (FLOPs). Esta tabela destaca a capacidade do YOLOv9 de oferecer alta precisão, mantendo ou reduzindo a sobrecarga computacional em comparação com versões anteriores e modelos concorrentes.
Em comparação, o YOLOv9 apresenta ganhos notáveis:
- Modelos leves: o YOLOv9s supera o YOLO MS-S em eficiência de parâmetros e carga computacional, alcançando simultaneamente uma melhoria de 0.4∼0.6% em AP.
- Modelos médios a grandes: o YOLOv9m e o YOLOv9e demonstram avanços notáveis no equilíbrio entre a complexidade do modelo e o desempenho de deteção, oferecendo reduções significativas de parâmetros e cálculos, juntamente com uma precisão melhorada.
Em particular, o modelo YOLOv9c destaca a eficácia das otimizações da arquitetura. Utiliza menos 42% de parâmetros e requer menos 21% de capacidade computacional do 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 menos 15% de parâmetros e uma necessidade computacional 25% menor do que o YOLOv8x, além de uma melhoria incremental de 1.7% em AP.
Estes resultados demonstram os avanços estratégicos do YOLOv9 na conceção de modelos, salientando a sua maior eficiência sem comprometer a precisão essencial para tarefas de deteção de objetos em tempo real. O modelo não só amplia os limites das métricas de desempenho, como também realça a importância da eficiência computacional, tornando-se um desenvolvimento fundamental no campo da visão computacional.
Conclusão#
Lançado em fevereiro de 2024, o YOLOv9 representou um desenvolvimento fundamental na deteção de objetos em tempo real, oferecendo melhorias significativas em eficiência, precisão e adaptabilidade. Ao resolver desafios críticos com soluções inovadoras como PGI e GELAN, o YOLOv9 estabeleceu novos marcos na altura do seu lançamento. Embora modelos mais recentes, como YOLO11 e YOLO26, tenham sido lançados desde então com melhorias adicionais, as inovações arquitetónicas do YOLOv9 continuam a influenciar a área.
Exemplos de uso#
Este exemplo apresenta exemplos simples de treino e inferência com YOLOv9. Para consultar a documentação completa sobre estes e outros modos, vê as páginas de documentação Predição, Treino, Validação e Exportação.
Os modelos *.pt pré-treinados em PyTorch, assim como os ficheiros de configuração *.yaml, podem ser passados à classe YOLO() para criar uma instância do modelo em Python:
from ultralytics import YOLO
# Cria um modelo YOLOv9c de raiz
model = YOLO("yolov9c.yaml")
# Cria um modelo YOLOv9c com pesos pré-treinados
model = YOLO("yolov9c.pt")
# Exibir informações do modelo (opcional)
model.info()
# Treina o modelo no conjunto de dados de exemplo COCO8 durante 100 épocas
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Executa a inferência com o modelo YOLOv9c na imagem 'bus.jpg'
results = model("path/to/bus.jpg")Tarefas e modos compatíveis#
A série YOLOv9 oferece vários modelos, cada um otimizado para deteção de objetos de alto desempenho. Estes modelos respondem a diferentes necessidades computacionais e requisitos de precisão, sendo versáteis para uma vasta gama de aplicações.
| Modelo | Nomes de arquivo | Tarefas | Treinamento | Validação | Inferência | Exportar |
|---|---|---|---|---|---|---|
| YOLOv9 | yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt | Deteção de objetos | ✅ | ✅ | ✅ | ✅ |
| YOLOv9-seg | yolov9c-seg.pt yolov9e-seg.pt | Segmentação de instâncias | ✅ | ✅ | ✅ | ✅ |
Esta tabela apresenta uma visão geral detalhada das variantes do modelo YOLOv9, destacando as suas capacidades em tarefas de deteção de objetos e a compatibilidade com vários modos de funcionamento, como Inferência, Validação, Treino e Exportação. Este suporte abrangente garante que os utilizadores podem tirar pleno partido das capacidades dos modelos YOLOv9 numa vasta gama de cenários de deteção de objetos.
O treino de modelos YOLOv9 exigirá mais recursos e demorará mais do que o de um modelo YOLOv8 de tamanho equivalente.
Citações e agradecimentos#
Gostaríamos de agradecer aos autores do YOLOv9 pelos seus contributos significativos para a área da deteção de objetos em tempo real:
@inproceedings{wang2024yolov9,
title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
author={Wang, Chien-Yao and Yeh, I-Hau and Liao, Hong-Yuan Mark},
booktitle={Computer Vision -- ECCV 2024},
pages={1--21},
year={2024},
organization={Springer Nature Switzerland}
}O artigo oficial do YOLOv9 foi publicado nos anais Springer ECCV 2024, com uma pré-publicação no arXiv. Os autores disponibilizaram publicamente o seu trabalho, e a base de código pode ser consultada no GitHub. Agradecemos os seus esforços para fazer avançar a área e tornar o seu trabalho acessível a toda a comunidade.
Perguntas frequentes#
O YOLOv9 introduz técnicas inovadoras, como Informação de Gradiente Programável (PGI) e a Rede de Agregação de Camadas Eficiente Generalizada (GELAN). Estas inovações resolvem os desafios da perda de informação nas redes neuronais profundas, garantindo alta eficiência, precisão e adaptabilidade. A PGI preserva dados essenciais ao longo das camadas da rede, enquanto a GELAN otimiza a utilização dos parâmetros e a eficiência computacional. Sabe mais sobre as principais inovações do YOLOv9, que estabeleceram novos marcos no conjunto de dados MS COCO.
O YOLOv9 supera os detetores de objetos em tempo real de última geração, alcançando maior precisão e eficiência. No conjunto de dados COCO, os modelos YOLOv9 apresentam 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 uma necessidade computacional 21% menor do que o YOLOv7 AF. Explora as comparações de desempenho para consultar métricas detalhadas.
Podes treinar um modelo YOLOv9 com comandos Python e CLI. Em Python, instancia um modelo usando a classe
YOLOe chama o métodotrain:from ultralytics import YOLO # Cria um modelo YOLOv9c com pesos pré-treinados e treina-o model = YOLO("yolov9c.pt") results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Para treinar com a CLI, executa:
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640Sabe mais sobre exemplos de utilização para treino e inferência.
O YOLOv9 foi concebido para atenuar a perda de informação, o que é particularmente importante para modelos leves, que muitas vezes são propensos a perder informação significativa. Ao integrar Informação de Gradiente Programável (PGI) e funções reversíveis, o YOLOv9 garante a retenção de dados essenciais, aumentando a precisão e a eficiência do modelo. Isto torna-o altamente adequado para aplicações que exigem modelos compactos com alto desempenho. Para obteres mais detalhes, explora a secção sobre o impacto do YOLOv9 nos modelos leves.
O YOLOv9 suporta várias tarefas, incluindo deteção de objetos e segmentação de instâncias. É compatível com vários modos de funcionamento, 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 a secção sobre tarefas e modos suportados para obteres mais informações.