Ultralytics YOLO27:

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 a Informação de Gradiente Programável (PGI) e a Rede Generalizada de Agregação Eficiente de Camadas (GELAN). Este modelo demonstra melhorias notáveis em eficiência, precisão e adaptabilidade, estabelecendo novos padrões no conjunto de dados MS COCO. O projeto YOLOv9, embora tenha sido desenvolvido por uma equipa independente de código aberto, baseia-se na sólida base de código fornecida pelo Ultralytics YOLOv5, demonstrando o espírito colaborativo da comunidade de investigação em IA.



Watch: YOLOv9 Training on Custom Data using Ultralytics | Industrial Package Dataset

Comparação de desempenho do YOLOv9

Introdução ao YOLOv9#

Na procura pela deteção de objetos ideal em tempo real, o YOLOv9 destaca-se pela sua abordagem inovadora para superar os desafios de perda de informação inerentes às redes neuronais profundas. Ao integrar a 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 durante todo o 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 fundamentais para o seu design, garantindo que o YOLOv9 mantenha uma elevada eficiência e precisão.

Princípio do Gargalo de Informação#

O Princípio do Gargalo de Informação revela um desafio fundamental da 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 representa 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 combate este desafio através da implementação da 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 desempenho do modelo.

Funções Reversíveis#

O conceito de Funções Reversíveis é outro pilar fundamental 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 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 mitigar o risco de degradação da informação, especialmente nas camadas mais profundas, garantindo a preservação de dados críticos para tarefas de deteção de objetos.

Impacto nos modelos leves#

Resolver a perda de informação é particularmente importante para modelos leves, que frequentemente têm poucos parâmetros e são propensos a perder informações significativas durante o processo de propagação direta. A arquitetura do YOLOv9, através da utilização da PGI e de funções reversíveis, garante que, mesmo com um modelo simplificado, as informações essenciais necessárias para uma deteção precisa de objetos sejam retidas e utilizadas de forma eficaz.

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 Generalizada de Agregação Eficiente de Camadas (GELAN)#

A GELAN representa um avanço arquitetural estratégico, permitindo que o YOLOv9 alcance uma utilização superior dos parâmetros e uma maior eficiência computacional. O seu design 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 a velocidade ou a precisão.

Comparação da arquitetura do YOLOv9

Benchmarks do YOLOv9#

A realização de benchmarks no YOLOv9 com o Ultralytics envolve a avaliação do desempenho do teu modelo treinado e validado em cenários reais. Este processo inclui:

  • Avaliação do desempenho: avaliar a velocidade e a 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 a Frameworks: Fornecimento de um framework abrangente dentro do pacote Ultralytics para facilitar essas avaliações e garantir resultados consistentes e confiáveis.

Ao realizar benchmarks, podes garantir que o teu modelo não só tem um bom desempenho em ambientes de teste controlados, como também mantém um desempenho elevado em aplicações práticas do mundo real.



Watch: How to Benchmark the YOLOv9 Model Using the Ultralytics Python Package

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 padrões em vários tamanhos de modelos. A Tabela 1 apresenta uma comparação abrangente dos detetores de objetos em tempo real mais avançados, ilustrando a eficiência e a precisão superiores do YOLOv9.

Desempenho
Modelotamanho
(píxeis)
mAPval
50-95
mAPval
50
parâmetros
(M)
FLOPs
(B)
YOLOv9t64038.353.12.07.7
YOLOv9s64046.863.47.226.7
YOLOv9m64051.468.120.176.8
YOLOv9c64053.070.225.5102.8
YOLOv9e64055.672.858.1192.5

As iterações do YOLOv9, desde a variante minúscula t até ao modelo abrangente 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 salienta a capacidade do YOLOv9 de oferecer elevada 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 apresentam avanços notáveis no equilíbrio entre a complexidade do modelo e o desempenho da deteção, oferecendo reduções significativas nos parâmetros e nos cálculos num contexto de maior precisão.

O modelo YOLOv9c, em particular, destaca a eficácia das otimizações da arquitetura. Funciona com menos 42% de parâmetros e menos 21% de exigência 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 menos 25% de necessidade computacional do que o YOLOv8x, juntamente com uma melhoria incremental de 1,7% em AP.

Estes resultados demonstram os avanços estratégicos do YOLOv9 no design de modelos, destacando 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ó ultrapassa os limites das métricas de desempenho, como também salienta 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 através de soluções inovadoras como a PGI e a GELAN, o YOLOv9 estabeleceu novos padrões no momento do seu lançamento. Embora modelos mais recentes, como o YOLO11 e o YOLO26, tenham sido lançados desde então com melhorias adicionais, as inovações arquiteturais do YOLOv9 continuam a influenciar o campo.

Exemplos de utilização#

Este exemplo fornece exemplos simples de treino e inferência com o YOLOv9. Para consultar a documentação completa sobre estes e outros modos, vê as páginas de documentação Predict, Train, Val e Export.

Exemplo

Os modelos *.pt pré-treinados do PyTorch, bem como os ficheiros de configuração *.yaml, podem ser transmitidos à 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 deteção de objetos de alto desempenho. Estes modelos respondem a diferentes necessidades computacionais e requisitos de precisão, tornando-os versáteis para uma vasta gama de aplicações.

ModeloNomes dos ficheirosTarefasTreinoValidaçãoInferênciaExportação
YOLOv9yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.ptDeteção de objetos
YOLOv9-segyolov9c-seg.pt yolov9e-seg.ptSegmentação de instâncias

Esta tabela fornece uma visão detalhada das variantes do modelo YOLOv9, destacando as suas capacidades em tarefas de deteção de objetos e a compatibilidade com vários modos operacionais, como inferência, validação, treino e exportação. Este suporte abrangente garante que podes tirar pleno partido das capacidades dos modelos YOLOv9 numa vasta gama de cenários de deteção de objetos.

Nota

Treinar modelos YOLOv9 requer mais recursos e demora mais tempo do que o modelo YOLOv8 de tamanho equivalente.

Citações e agradecimentos#

Gostaríamos de reconhecer os autores do YOLOv9 pelas suas contribuições significativas para o campo da deteção de objetos em tempo real:

Citação
@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 nas atas 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 o campo e tornar o seu trabalho acessível à comunidade em geral.

Perguntas frequentes#

  • O YOLOv9 introduz técnicas inovadoras como a Informação de Gradiente Programável (PGI) e a Rede Generalizada de Agregação Eficiente de Camadas (GELAN). Estas inovações resolvem os desafios de perda de informação nas redes neuronais profundas, garantindo elevada 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 padrões no conjunto de dados MS COCO.

  • O YOLOv9 supera os detetores de objetos em tempo real mais avançados, 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 menos 21% de exigência computacional do que o YOLOv7 AF. Explora as comparações de desempenho para consultar métricas detalhadas.

  • Podes treinar um modelo YOLOv9 utilizando comandos Python e da CLI. Em Python, instancia um modelo com 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 o treino através da CLI, executa:

    yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640

    Sabe mais sobre exemplos de utilização para treino e inferência.

  • O YOLOv9 foi concebido para reduzir a perda de informação, o que é particularmente importante para modelos leves, frequentemente propensos a perder informações significativas. Ao integrar a 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 especialmente adequado para aplicações que requerem modelos compactos com elevado desempenho. Para mais informações, consulta a secção sobre o impacto do YOLOv9 nos modelos leves.

  • O YOLOv9 suporta várias tarefas, incluindo a deteção de objetos e a segmentação de instâncias. É compatível com vários modos operacionais, 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.

Comentários