YOLOv9 vs. YOLOv10: Uma comparação técnica para a deteção de objectos
A seleção do modelo de deteção de objectos correto é uma decisão crítica para os programadores e investigadores, equilibrando a necessidade de elevada precisão com as restrições da inferência em tempo real e os recursos computacionais. Este guia fornece uma comparação técnica aprofundada entre YOLOv9 e o YOLOv10duas arquitecturas topo de gama que ultrapassaram os limites do desempenho da visão por computador em 2024.
Enquanto YOLOv9 se concentra em inovações arquitectónicas para resolver os estrangulamentos de informação da aprendizagem profunda, YOLOv10 introduz uma mudança de paradigma com um design NMS para uma latência mínima. Ambos os modelos estão totalmente integrados no pacoteUltralytics Python , permitindo que os utilizadores os treinem, validem e implementem facilmente num ecossistema unificado.
Métricas de desempenho e parâmetros de referência
Os compromissos de desempenho entre estes dois modelos são distintos. YOLOv9 geralmente ultrapassa o limite da precisão média (mAP), particularmente com suas variantes maiores, tornando-o adequado para cenários em que a precisão é fundamental. Por outro lado, YOLOv10 foi projetado para ser eficiente, reduzindo significativamente a latência da inferência e a contagem de parâmetros, o que é ideal para a implantação de ponta.
A tabela abaixo ilustra essas diferenças usando o conjunto de dadosCOCO . Em particular, o YOLOv10n atinge velocidades incríveis em GPUs T4, enquanto o YOLOv9e domina a precisão da deteção.
| Modelo | tamanho (pixels) | mAPval 50-95 | Velocidade CPU ONNX (ms) | Velocidade T4 TensorRT10 (ms) | parâmetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
YOLOv9: Resolver o estrangulamento da informação
Lançado em fevereiro de 2024, YOLOv9 visa um desafio teórico fundamental nas redes neurais profundas: a perda de informação à medida que os dados se propagam através de camadas profundas. Este modelo foi concebido para garantir que a rede mantém as caraterísticas essenciais necessárias para uma deteção precisa de objectos.
Detalhes Técnicos:
- Autores: Chien-Yao Wang, Hong-Yuan Mark Liao
- Organização:Instituto de Ciência da Informação, Academia Sinica
- Data: 2024-02-21
- Arxiv:arXiv:2402.13616
- GitHub:WongKinYiu/yolov9
Arquitetura: PGI e GELAN
YOLOv9 apresenta dois conceitos inovadores:
- Informação de Gradiente Programável (PGI): Uma estrutura de supervisão auxiliar que evita a perda de informações durante o treinamento. Garante que são gerados gradientes fiáveis para atualizar os pesos da rede, resolvendo problemas de supervisão profunda encontrados em arquitecturas anteriores.
- Rede de agregação de camadas eficiente e generalizada (GELAN): Uma nova arquitetura que maximiza a eficiência dos parâmetros. A GELAN permite que o modelo atinja uma maior precisão com menos parâmetros, em comparação com as concepções convencionais, optimizando a forma como as caraterísticas são agregadas nas camadas.
Forças e Fraquezas
YOLOv9 destaca-se em aplicações de precisão crítica. A sua capacidade de preservar informações detalhadas sobre as caraterísticas torna-o superior na deteção de pequenos objectos ou na navegação em cenas complexas. No entanto, esta sofisticação tem como contrapartida a complexidade. As adições arquitectónicas, como o PGI, destinam-se principalmente à formação, o que significa que podem ser removidas durante a inferência, mas os recursos de formação podem ser mais elevados. Além disso, embora eficiente, a sua latência é geralmente mais elevada do que os designs eficientes especializados do YOLOv10.
YOLOv10: A era da deteção NMS
YOLOv10, desenvolvido por investigadores da Universidade de Tsinghua e lançado em maio de 2024, dá prioridade à velocidade em tempo real e à capacidade de implementação de ponta a ponta. A sua caraterística definidora é a eliminação da Supressão Não Máxima (NMS), um passo de pós-processamento que tem sido tradicionalmente um estrangulamento para a latência da inferência.
Detalhes Técnicos:
- Autores: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organização:Universidade de Tsinghua
- Data: 2024-05-23
- Arxiv:arXiv:2405.14458
- GitHub:THU-MIG/yolov10
Arquitetura: Atribuições duplas consistentes
A principal inovação do YOLOv10 é a atribuição dupla consistente durante o treino. O modelo emprega uma estratégia de atribuição um-para-muitos para uma supervisão rica durante o treino, mas muda para uma atribuição um-para-um para a inferência. Esta arquitetura permite ao modelo prever diretamente a caixa delimitadora ideal para cada objeto, tornando obsoleto o pós-processamento NMS . Juntamente com um design de bloco guiado por classificação, YOLOv10 reduz a redundância e a sobrecarga computacional (FLOPs).
Forças e Fraquezas
A principal vantagem do YOLOv10 é a baixa latência. Ao remover NMS, a latência da inferência torna-se determinística e significativamente menor, o que é fundamental para o processamento de vídeo em tempo real. Ele também apresenta excelente eficiência de parâmetros, como visto na tabela de comparação, onde os modelos YOLOv10 alcançam precisão competitiva com menos FLOPs. Um ponto fraco potencial é a sua introdução relativamente recente em comparação com os ecossistemas estabelecidos, embora a integração no Ultralytics atenue esse facto. Também é altamente especializado em deteção, enquanto outros modelos no ecossistema oferecem um suporte multitarefa mais amplo.
Exportação de ponta a ponta
Uma vez que YOLOv10 é NMS por conceção, exportá-lo para formatos como ONNX ou TensorRT é muitas vezes mais simples e produz modelos "puros" de ponta a ponta sem exigir plugins de pós-processamento complexos.
Análise comparativa para programadores
Ao integrar estes modelos na produção, entram em jogo vários factores práticos para além das métricas brutas.
Facilidade de utilização e ecossistema
Ambos os modelos beneficiam imensamente do facto de fazerem parte do ecossistemaUltralytics . Isso significa que os desenvolvedores podem alternar entre YOLOv9 e YOLOv10 simplesmente alterando uma string de modelo, utilizando os mesmos pipelines de treinamento, ferramentas de validação e formatos de implantação.
- Eficiência de treinamento: Os modelos Ultralytics normalmente requerem menos memória do que os detectores baseados em transformadores, permitindo o treinamento em GPUs de consumo padrão.
- Versatilidade: Embora YOLOv9 e YOLOv10 se concentrem na deteção, a API Ultralytics suporta outras tarefas como a segmentação de instâncias e a estimativa de pose através de modelos como o YOLO11 e YOLOv8, oferecendo um conjunto de ferramentas abrangente para diversos projectos de IA de visão.
Casos de Uso Ideais
Escolher YOLOv9 quando:
- A sua aplicação exige a maior precisão possível (por exemplo, imagiologia médica, deteção de defeitos no fabrico).
- Está a trabalhar com objectos difíceis detect detetar em que a retenção de informação é crucial.
- A latência é uma preocupação secundária em relação à precisão.
Escolha YOLOv10 quando:
- A velocidade é fundamental. Aplicações como a condução autónoma, a navegação robótica ou a análise de vídeo de elevado FPS beneficiam do design NMS.
- Implantação em dispositivos de ponta (como NVIDIA Jetson ou Raspberry Pi) onde os recursos CPUGPU são limitados.
- É necessário um tempo de inferência determinístico sem a variabilidade introduzida pelo processamento NMS .
Exemplo de código: Execução de ambos os modelos
Graças à API Ultralytics unificada, a comparação destes modelos com os seus próprios dados é simples. O seguinte código Python demonstra como carregar e executar a inferência com ambas as arquitecturas.
from ultralytics import YOLO
# Load a pre-trained YOLOv9 model
model_v9 = YOLO("yolov9c.pt")
# Load a pre-trained YOLOv10 model
model_v10 = YOLO("yolov10n.pt")
# Run inference on an image
results_v9 = model_v9("path/to/image.jpg")
results_v10 = model_v10("path/to/image.jpg")
# Print results
print(f"YOLOv9 Detection: {len(results_v9[0].boxes)}")
print(f"YOLOv10 Detection: {len(results_v10[0].boxes)}")
Conclusão
Tanto YOLOv9 como YOLOv10 representam marcos significativos na visão por computador. YOLOv9 ultrapassa os limites teóricos da retenção de caraterísticas e da precisão, tornando-o uma potência para a investigação e para tarefas de grande precisão. YOLOv10 redefine a eficiência ao remover o gargalo NMS , oferecendo uma solução simplificada para aplicações em tempo real.
Para os utilizadores que procuram o melhor equilíbrio absoluto entre precisão, velocidade e riqueza de caraterísticas em várias tarefas (incluindo segmentação e classificação), recomendamos também que explorem o YOLO11. Como a mais recente iteração da Ultralytics, YOLO11 refina os melhores atributos de seus antecessores em um pacote robusto e pronto para empresas, adequado para praticamente qualquer aplicação de IA de visão.
Explore Outros Modelos
O ecossistema Ultralytics é vasto. Se os requisitos do seu projeto forem diferentes, considere estas alternativas:
- YOLO11: O mais recente modelo topo de gama que oferece um desempenho superior e versatilidade na deteção, segmentação, pose, OBB e classificação.
- YOLOv8: Um modelo altamente popular e estável conhecido pela sua ampla compatibilidade e suporte multi-tarefas.
- RT-DETR: Um detetor baseado em transformador que oferece alta precisão sem a necessidade de NMS, servindo como uma alternativa às arquitecturas YOLO para casos de utilização específicos.
Ao utilizar a plataforma Ultralytics , obtém acesso a todo este conjunto de modelos, garantindo que tem sempre a ferramenta certa para o trabalho.