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.
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:
onde I
denota a informação mútua, e f
e g
representa 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 do design 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 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.
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
Quando é que estarão disponíveis outras escalas de modelos?
Apesar de todas as métricas apresentadas para as várias escalas de modelos na tabela abaixo, apenas as configurações para YOLOv9c
e YOLOv9e
foram publicadas. A equipa de Ultralytics trabalhará rapidamente para adicionar outras configurações à medida que forem ficando disponíveis, por isso não te esqueças de voltar aqui regularmente para veres as actualizações.
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:
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 | 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:
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.
Criado em 2024-02-26, Atualizado em 2024-04-17
Autores: glenn-jocher (4), Burhan-Q (2), Laughing-q (1)