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.
Ver: Formação YOLOv9 em dados personalizados utilizando Ultralytics | Conjunto de dados de embalagens industriais
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 da 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 da Informação e a utilização inovadora de Funções Reversíveis são fundamentais para a sua conceção, 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:
onde I
representa a informação mútua, e f
e g
representam funções de transformação com parâmetros theta
e phi
respetivamente. 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 da conceção do YOLOv9. Uma função é considerada reversível se puder ser invertida sem qualquer perda de informação, como expresso por:
com psi
e zeta
como parâmetros para a função reversível e a sua inversa, respetivamente. Esta propriedade é crucial para aprendizagem profunda 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 as tarefas de deteção de objectos. 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 as 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.
YOLOv9 Benchmarks
A avaliação comparativa no YOLOv9 utilizando Ultralytics envolve a avaliação do desempenho do seu modelo treinado e validado em cenários do mundo real. Este processo inclui:
- Avaliação do desempenho: Avaliação da velocidade e da precisão do modelo.
- Formatos de exportação: Testar 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 coerentes e fiáveis.
Através da avaliação comparativa, pode garantir que o seu 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.
Ver: Como fazer o benchmark do modelo YOLOv9 usando 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 dos detectores de objectos em tempo real mais avançados, ilustrando a eficiência e 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 para a extensa e
demonstram melhorias não só na exatidã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 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 revelam 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 maior precisão.
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, como também realça a importância da eficiência computacional, tornando-o um desenvolvimento fundamental no domínio 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, consulte as páginas de documentação Prever, Treinar, Val e Exportar.
Exemplo
PyTorch pré-treinado *.pt
modelos, bem como a configuração *.yaml
podem ser passados para os ficheiros 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:
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 tirar o máximo partido das capacidades dos modelos YOLOv9 numa vasta gama de cenários de deteção de objectos.
Nota
O treino dos modelos YOLOv9 exigirá mais recursos e demorará 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:
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. Saiba mais sobre as principais inovações do YOLOv9 que estabelecem novos padrões de referência 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 de última geração, 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 atinge uma precisão comparável com menos 42% de parâmetros e 21% menos exigências computacionais do que o YOLOv7 AF. Explore as comparações de desempenho para obter métricas detalhadas.
Como posso treinar um modelo YOLOv9 utilizando Python e CLI?
É possível treinar um modelo YOLOv9 usando os comandos Python e CLI . Para Python, instancie um modelo usando o comando YOLO
e chamar 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 formação, executar:
Saiba 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 ligeiros?
O YOLOv9 foi concebido para atenuar 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, aumentando 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, explore 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. Consulte a secção de tarefas e modos suportados para obter mais informações.