Salta para o conteúdo

YOLOv9: A Leap Forward in Object Detection Technology

O YOLOv9 marca um avanço significativo na deteção de objectos em tempo real, introduzindo técnicas inovadoras como o Programmable Gradient Information (PGI) e a Generalized Efficient Layer Aggregation Network (GELAN). Este modelo demonstra melhorias notáveis em termos de eficiência, precisão e adaptabilidade, estabelecendo novos padrões de referência no conjunto de dados MS COCO. O projeto YOLOv9, embora desenvolvido por uma equipa de código aberto separada, baseia-se na base de código robusta fornecida por Ultralytics YOLOv5demonstrando o espírito de colaboração da comunidade de investigação em IA.



Observa: Treino do YOLOv9 em dados personalizados utilizando Ultralytics | Conjunto de dados de embalagens industriais

Comparação do desempenho do YOLOv9

Introdução ao YOLOv9

In the quest for optimal real-time object detection, YOLOv9 stands out with its innovative approach to overcoming information loss challenges inherent in deep neural networks. By integrating PGI and the versatile GELAN architecture, YOLOv9 not only enhances the model's learning capacity but also ensures the retention of crucial information throughout the detection process, thereby achieving exceptional accuracy and performance.

Principais inovações do YOLOv9

Os avanços do YOLOv9 estão profundamente enraizados na abordagem dos desafios colocados pela perda de informação em redes neurais 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 mantém uma elevada eficiência e precisão.

Princípio do estrangulamento da informação

O Princípio do Gargalo da Informação revela um desafio fundamental na aprendizagem profunda: à 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 representa funções de transformação com parâmetros theta e phirespetivamente. O YOLOv9 responde a este desafio através da implementação do Programmable Gradient Information (PGI), que ajuda a preservar os 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 é outra pedra angular do design do YOLOv9. Uma função é considerada reversível se puder ser invertida sem qualquer perda de informação, como expresso por:

X = v_zeta(r_psi(X))

com psi e zeta as parameters for the reversible and its inverse function, respectively. This property is crucial for deep learning architectures, as it allows the network to retain a complete information flow, thereby enabling more accurate updates to the model's parameters. YOLOv9 incorporates reversible functions within its architecture to mitigate the risk of information degradation, especially in deeper layers, ensuring the preservation of critical data for object detection tasks.

Impacto nos modelos ligeiros

A resolução da perda de informação é particularmente vital para modelos leves, que são muitas vezes sub-parametrizados e propensos a perder informação significativa durante o processo de feedforward. A arquitetura do YOLOv9, através da utilização de funções PGI e reversíveis, garante que, mesmo com um modelo simplificado, a informação essencial necessária para uma deteção precisa de objectos é retida e efetivamente utilizada.

Informação de gradiente programável (PGI)

O PGI é um novo conceito introduzido no YOLOv9 para combater o problema do estrangulamento da informação, garantindo a preservação de dados essenciais em camadas profundas da rede. Isto permite a geração de gradientes fiáveis, facilitando actualizações precisas do modelo e melhorando o desempenho geral da deteção.

Rede de agregação de camadas eficiente e generalizada (GELAN)

O GELAN representa um avanço arquitetónico estratégico, permitindo ao YOLOv9 alcançar uma utilização de parâmetros e uma eficiência computacional superiores. 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 a velocidade ou a precisão.

Comparação da arquitetura do YOLOv9

YOLOv9 Benchmarks

O benchmarking no YOLOv9 utilizando Ultralytics envolve a avaliação do desempenho do teu modelo treinado e validado em cenários do mundo real. Este processo inclui:

  • Avaliação do desempenho: Avalia a velocidade e a precisão do modelo.
  • Formatos de exportação: Testa o modelo em diferentes formatos de exportação para garantir que cumpre as normas necessárias e tem um bom desempenho em vários ambientes.
  • Quadro de apoio: Fornecimento de um quadro abrangente em Ultralytics YOLOv8 para facilitar estas avaliações e garantir resultados consistentes e fiáveis.

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



Observa: Como fazer o benchmark do modelo YOLOv9 utilizando o pacote Ultralytics Python

Desempenho no conjunto de dados MS COCO

The performance of YOLOv9 on the COCO dataset exemplifies its significant advancements in real-time object detection, setting new benchmarks across various model sizes. Table 1 presents a comprehensive comparison of state-of-the-art real-time object detectors, illustrating YOLOv9's superior efficiency and accuracy.

Tabela 1. Comparação dos detectores de objectos em tempo real mais avançados

Desempenho

Modelotamanho
(pixéis)
mAPval
50-95
mAPval
50
params
(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
Modelotamanho
(pixéis)
mAPbox
50-95
mAPmask
50-95
params
(M)
FLOPs
(B)
YOLOv9c-seg64052.442.227.9159.4
YOLOv9e-seg64055.144.360.5248.4

As iterações do YOLOv9, que vão desde o pequeno t variante da extensa e model, demonstrate improvements not only in accuracy (mAP metrics) but also in efficiency with a reduced number of parameters and computational needs (FLOPs). This table underscores YOLOv9's ability to deliver high precision while maintaining or reducing the computational overhead compared to prior versions and competing models.

Comparativamente, o YOLOv9 apresenta ganhos notáveis:

  • Modelos leves: O YOLOv9s supera o YOLO MS-S em termos de eficiência de parâmetros e carga computacional, alcançando 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 deteção, oferecendo reduções significativas nos parâmetros e nos cálculos, tendo como pano de fundo uma precisão melhorada.

O modelo YOLOv9c, em particular, destaca a eficácia das optimizações da arquitetura. Funciona com menos 42% de parâmetros e menos 21% de exigências computacionais do que o YOLOv7 AF, mas atinge 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 de grandes dimensões, com menos 15% de parâmetros e menos 25% de necessidades computacionais do que o YOLOv7 AF. YOLOv8xe uma melhoria incremental de 1,7% no PA.

These results showcase YOLOv9's strategic advancements in model design, emphasizing its enhanced efficiency without compromising on the precision essential for real-time object detection tasks. The model not only pushes the boundaries of performance metrics but also emphasizes the importance of computational efficiency, making it a pivotal development in the field of computer vision.

Conclusão

O YOLOv9 representa um desenvolvimento fundamental na deteção de objectos 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 o PGI e o GELAN, o YOLOv9 estabelece um novo precedente para futuras investigações e aplicações neste domínio. À medida que a comunidade de IA continua a evoluir, o YOLOv9 é um testemunho do poder da colaboração e da inovação na promoção do progresso tecnológico.

Exemplos de utilização

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

Exemplo

PyTorch pretrained *.pt modelos, bem como a configuração *.yaml podem ser passados para o 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")

CLI estão disponíveis para executar diretamente os modelos:

# Build a YOLOv9c model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640

# Build a YOLOv9c model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov9c.yaml source=path/to/bus.jpg

Tarefas e modos suportados

A série YOLOv9 oferece uma gama de modelos, cada um optimizado para a Deteção de Objectos de elevado 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 de ficheirosTarefasInferênciaValidaçãoFormaçãoExportação
YOLOv9yolov9t yolov9s yolov9m yolov9c.pt yolov9e.ptDeteção de objectos
YOLOv9-segyolov9c-seg.pt yolov9e-seg.ptSegmentação de instâncias

Esta tabela fornece uma visão geral detalhada das variantes do modelo YOLOv9, destacando as suas capacidades em tarefas de deteção de objectos e a sua compatibilidade com vários modos operacionais, tais como Inferência, Validação, Treino e Exportação. Este suporte abrangente garante que os utilizadores podem aproveitar totalmente as capacidades dos modelos YOLOv9 numa vasta gama de cenários de deteção de objectos.

Nota

O treinamento dos modelos YOLOv9 exigirá mais recursos e levará mais tempo do que o modeloYOLOv8 de tamanho equivalente.

Citações e agradecimentos

Gostaríamos de agradecer aos autores do YOLOv9 pelas suas contribuições significativas no domínio da deteção de objectos 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 no arXiv. Os autores tornaram o seu trabalho publicamente disponível e a base de código pode ser acedida no GitHub. Agradecemos os seus esforços para fazer avançar o campo e tornar o seu trabalho acessível à comunidade em geral.

FAQ

Que inovações introduz o YOLOv9 na deteção de objectos em tempo real?

O YOLOv9 apresenta técnicas inovadoras, como a Informação de Gradiente Programável (PGI) e a Rede de Agregação de Camada Eficiente Generalizada (GELAN). Essas inovações abordam os desafios de perda de informações em redes neurais profundas, garantindo alta eficiência, precisão e adaptabilidade. O PGI preserva dados essenciais nas camadas da rede, enquanto o GELAN optimiza a utilização de parâmetros e a eficiência computacional. Sabe mais sobre as principais inovações do YOLOv9 que estabelecem novas referências no conjunto de dados MS COCO.

Qual é o desempenho do YOLOv9 no conjunto de dados MS COCO em comparação com outros modelos?

O YOLOv9 supera os detectores de objectos em tempo real do estado da arte, alcançando maior precisão e eficiência. No conjunto de dados COCO, 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 21% menos exigências computacionais do que o YOLOv7 AF. Explora as comparações de desempenho para obteres métricas detalhadas.

Como posso treinar um modelo YOLOv9 utilizando Python e CLI?

Podes treinar um modelo YOLOv9 usando os comandos Python e CLI . Para Python, instancia um modelo usando o comando YOLO e chama a classe train método:

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 CLI training, executa:

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

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

Quais são as vantagens de utilizar o Ultralytics YOLOv9 para modelos leves?

O YOLOv9 foi concebido para mitigar a perda de informação, o que é particularmente importante para modelos leves, muitas vezes propensos a perder informação significativa. Ao integrar a Informação de Gradiente Programável (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 elevado desempenho. Para mais detalhes, explora a secção sobre o impacto do YOLOv9 em modelos leves.

Que tarefas e modos são suportados pelo YOLOv9?

YOLOv9 supports various tasks including object detection and instance segmentation. It is compatible with multiple operational modes such as inference, validation, training, and export. This versatility makes YOLOv9 adaptable to diverse real-time computer vision applications. Refer to the supported tasks and modes section for more information.

📅 Created 7 months ago ✏️ Updated 28 days ago

Comentários