Ir para o conteúdo

YOLOv9: Um Salto em Tecnologia de Detecção de Objetos

O YOLOv9 marca um avanço significativo na detecção de objetos em tempo real, introduzindo técnicas inovadoras como a 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 benchmarks no conjunto de dados MS COCO. O projeto YOLOv9, embora desenvolvido por uma equipe de código aberto separada, é construído sobre a base de código robusta fornecida pelo Ultralytics YOLOv5, mostrando o espírito colaborativo da comunidade de pesquisa de IA.



Assista: Treinamento do YOLOv9 em Dados Personalizados usando Ultralytics | Conjunto de Dados de Pacotes Industriais

Comparação de desempenho do YOLOv9

Introdução ao YOLOv9

Na busca pela detecção de objetos em tempo real ideal, o YOLOv9 se destaca com sua abordagem inovadora para superar os desafios de perda de informação inerentes às redes neurais profundas. Ao integrar o PGI e a arquitetura GELAN versátil, o YOLOv9 não apenas aprimora a capacidade de aprendizado do modelo, mas também garante a retenção de informações cruciais ao longo do processo de detecção, alcançando assim precisão e desempenho excepcionais.

Inovações Centrais do YOLOv9

Os avanços do YOLOv9 estão profundamente enraizados em abordar os desafios representados pela perda de informação em redes neurais profundas. O Princípio do Gargalo de Informação e o uso inovador de Funções Reversíveis são fundamentais 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 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 é matematicamente representado como:

I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))

onde I denota informação mútua, e f e g representam funções de transformação com parâmetros theta e phi, respectivamente. O YOLOv9 supera este desafio implementando a Informação de Gradiente Programável (PGI), que auxilia na preservação de dados essenciais ao longo da profundidade da rede, garantindo uma geração de gradiente mais confiá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, conforme expresso por:

X = v_zeta(r_psi(X))

com psi e zeta como parâmetros para a função reversível e sua função inversa, respectivamente. Esta propriedade é crucial para aprendizado profundo arquiteturas, pois permite que a rede retenha um fluxo de informação completo, permitindo assim atualizações mais precisas para os 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 são frequentemente sub-parametrizados e 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 simplificado, a informação essencial necessária para a detecção precisa de objetos seja retida e utilizada de forma eficaz.

Informação de Gradiente Programável (PGI)

PGI é um conceito inovador introduzido no YOLOv9 para combater o problema do gargalo de informação, garantindo a preservação de dados essenciais em todas as 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.

Rede de Agregação de Camadas Eficiente Generalizada (GELAN)

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

Comparação da arquitetura do YOLOv9

Benchmarks do YOLOv9

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

  • Avaliação de 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 ele atenda aos padrões necessários e tenha um bom desempenho em vários ambientes.
  • Suporte de Framework: Fornecer uma estrutura abrangente dentro do Ultralytics YOLOv8 para facilitar essas avaliações e garantir resultados consistentes e confiáveis.

Ao realizar o benchmarking, 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.



Assista: Como realizar o Benchmark do Modelo YOLOv9 Usando o Pacote Python Ultralytics

Desempenho no Conjunto de Dados MS COCO

O desempenho do YOLOv9 no conjunto de dados COCO 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 e a precisão do YOLOv9.

Desempenho

Modelo tamanho
(pixels)
mAPval
50-95
mAPval
50
parâmetros
(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
(pixels)
mAPbox
50-95
mAPmask
50-95
parâmetros
(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

iterações do YOLOv9, variando do minúsculo t variante para o extenso e modelo, demonstram melhorias não apenas 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 de fornecer alta precisão mantendo ou reduzindo 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, ao mesmo tempo que alcança uma melhoria de 0,4∼0,6% em AP.
  • Modelos Médios a Grandes: YOLOv9m e 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 relação à 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 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 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.

Esses 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 visão computacional.

Conclusão

O YOLOv9 representa 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 por meio de soluções inovadoras como PGI e GELAN, o YOLOv9 estabelece um novo precedente para futuras pesquisas e aplicações na área. À medida que a comunidade de IA continua a evoluir, o YOLOv9 se destaca como um testemunho do poder da colaboração e inovação no avanço do progresso tecnológico.

Exemplos de uso

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

Exemplo

PyTorch pré-treinados *.pt modelos, bem como a configuração *.yaml os arquivos podem ser passados para o YOLO() classe 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")

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

# 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 otimizado para Detecção de Objetos de alto desempenho. Esses modelos atendem a diferentes necessidades computacionais e requisitos de precisão, tornando-os versáteis para uma ampla gama de aplicações.

Modelo Nomes de arquivos Tarefas Inferência Validação Treinamento Exportar
YOLOv9 yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt Detecção de Objetos
YOLOv9-seg yolov9c-seg.pt yolov9e-seg.pt Segmentação de Instância

Esta tabela fornece uma visão geral 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 Inferência, Validação, Treinamento e Exportação. Este suporte abrangente garante que os usuários possam aproveitar ao máximo os recursos dos modelos YOLOv9 em uma ampla gama de cenários de detecção de objetos.

Nota

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

Citações e Agradecimentos

Gostaríamos de agradecer aos autores do YOLOv9 por suas significativas contribuições no campo da detecçã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 no arXiv. Os autores disponibilizaram seu trabalho publicamente, e a base de código pode ser acessada no GitHub. Agradecemos seus esforços em promover o campo e tornar seu trabalho acessível à comunidade em geral.

FAQ

Quais inovações o YOLOv9 introduz para a detecção de objetos em tempo real?

O YOLOv9 introduz técnicas inovadoras, como Programmable Gradient Information (PGI) e Generalized Efficient Layer Aggregation Network (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 otimiza a utilização de parâmetros e a eficiência computacional. Saiba mais sobre as principais inovações do YOLOv9 que estabelecem novos benchmarks no conjunto de dados MS COCO.

Como o YOLOv9 se comporta no conjunto de dados MS COCO em comparação com outros modelos?

O YOLOv9 supera os detectores 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 exibem pontuações mAP superiores em vários tamanhos, mantendo ou reduzindo a sobrecarga computacional. Por exemplo, o YOLOv9c atinge precisão comparável com 42% menos parâmetros e 21% menos demanda computacional do que o YOLOv7 AF. Explore as comparações de desempenho para métricas detalhadas.

Como posso treinar um modelo YOLOv9 usando Python e CLI?

Você pode treinar um modelo YOLOv9 usando comandos Python e CLI. Para Python, instancie um modelo usando o YOLO classe e chame o 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 treinamento CLI, execute:

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

Saiba mais sobre exemplos de uso para treinamento e inferência.

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

O YOLOv9 foi projetado para mitigar a perda de informações, o que é particularmente importante para modelos leves, muitas vezes propensos a perder informações significativas. Ao integrar o Programmable Gradient Information (PGI) e as funções reversíveis, o YOLOv9 garante a retenção de dados essenciais, aprimorando a precisão e a eficiência do modelo. Isso o torna altamente adequado para aplicações que exigem modelos compactos com alto desempenho. Para obter mais detalhes, explore a seção sobre o impacto do YOLOv9 em modelos leves.

Quais tarefas e modos o YOLOv9 suporta?

O YOLOv9 oferece suporte a várias tarefas, incluindo detecção de objetos e 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. Consulte a seção de tarefas e modos suportados para obter mais informações.



📅 Criado há 1 ano ✏️ Atualizado há 3 meses

Comentários