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
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.
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.