Salta para o conteúdo

YOLOv9: Um salto em frente na tecnologia de deteção de objectos

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

Na procura de uma deteção óptima de objectos em tempo real, o YOLOv9 destaca-se pela sua abordagem inovadora para ultrapassar os desafios de perda de informação inerentes às redes neurais profundas. Ao integrar o PGI e a versátil arquitetura GELAN, o YOLOv9 não só melhora a capacidade de aprendizagem do modelo, como também assegura a retenção de informações cruciais ao longo do processo de deteção, alcançando assim uma precisão e um desempenho excepcionais.

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 como parâmetros para a função reversível e a sua função inversa, respetivamente. Esta propriedade é crucial para as arquitecturas de aprendizagem profunda, uma vez que permite que a rede retenha um fluxo de informação completo, permitindo assim actualizaçõ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 em camadas mais profundas, garantindo a preservação de dados críticos para tarefas de deteção de objectos.

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

O desempenho do YOLOv9 no conjunto de dados COCO exemplifica os seus avanços significativos na deteção de objectos em tempo real, estabelecendo novos padrões de referência em vários tamanhos de modelos. A Tabela 1 apresenta uma comparação abrangente de detectores de objetos em tempo real de última geração, ilustrando a eficiência e a precisão superiores do YOLOv9.

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

Desempenho

Modelo tamanho
(pixéis)
mAPval
50-95
mAPval
50
params
(M)
FLOPs
(B)
YOLOv9t 640 38.3 53.1 2.0 7.7
YOLOv9s 640 46.8 63.4 7.2 26.7
YOLOv9m 640 51.4 68.1 20.1 76.8
YOLOv9c 640 53.0 70.2 25.5 102.8
YOLOv9e 640 55.6 72.8 58.1 192.5
Modelo tamanho
(pixéis)
mAPbox
50-95
mAPmask
50-95
params
(M)
FLOPs
(B)
YOLOv9c-seg 640 52.4 42.2 27.9 159.4
YOLOv9e-seg 640 55.1 44.3 60.5 248.4

As iterações do YOLOv9, que vão desde o pequeno t variante da extensa e demonstra 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 necessidades computacionais (FLOPs). Esta tabela sublinha a capacidade do YOLOv9 para fornecer uma elevada precisão, mantendo ou reduzindo a sobrecarga computacional em comparação com versões anteriores e modelos concorrentes.

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.

Estes resultados demonstram os avanços estratégicos do YOLOv9 na conceção do modelo, realçando a sua maior eficiência sem comprometer a precisão essencial para tarefas de deteção de objectos em tempo real. O modelo não só 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 visão computacional.

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 pré-treinado *.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.

Modelo Nomes de ficheiros Tarefas Inferência Validação Formação Exportação
YOLOv9 yolov9t yolov9s yolov9m yolov9c.pt yolov9e.pt Deteção de objectos
YOLOv9-seg yolov9c-seg.pt yolov9e-seg.pt Segmentaçã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?

O YOLOv9 suporta várias tarefas, incluindo a deteção de objectos e a segmentação de instâncias. É compatível com vários modos operacionais, como inferência, validação, treinamento e exportação. Essa versatilidade torna o YOLOv9 adaptável a diversas aplicações de visão computacional em tempo real. Consulta a secção de tarefas e modos suportados para obteres mais informações.



Criado em 2024-02-26, Atualizado em 2024-07-20
Autores: RizwanMunawar (2), glenn-jocher (9), ambitious-octopus (1), Burhan-Q (3), Laughing-q (2)

Comentários