YOLOv10 vs. YOLOv9: Uma Comparação Técnica Abrangente
O panorama da deteção de objetos evoluiu rapidamente, com sucessivas iterações da arquitetura YOLO (You Only Look Once) a ultrapassar os limites da velocidade e da precisão. Duas das contribuições recentes mais significativas para este campo são o YOLOv10 e o YOLOv9. Embora ambos os modelos atinjam um desempenho de ponta no conjunto de dados COCO, divergem significativamente nas suas filosofias de design e objetivos arquitetónicos.
YOLOv10 prioriza baixa latência e eficiência de ponta a ponta, eliminando a necessidade de supressão não máxima (NMS), enquanto YOLOv9 se concentra em maximizar a retenção de informações e a precisão por meio da Informação de Gradiente Programável (PGI). Este guia fornece uma comparação técnica detalhada para ajudar desenvolvedores e pesquisadores a selecionar o modelo ideal para suas aplicações de visão computacional.
YOLOv10: O Detector End-to-End em Tempo Real
Lançado em maio de 2024 por pesquisadores da Universidade de Tsinghua, o YOLOv10 representa uma mudança de paradigma na linhagem YOLO. Sua principal inovação é a remoção da etapa de pós-processamento de Supressão Não Máxima (NMS), que tem sido tradicionalmente um gargalo para a latência de inferência.
Detalhes Técnicos:
- Autores: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organização:Tsinghua University
- Data: 2024-05-23
- Arxiv:Real-Time End-to-End Object Detection
- GitHub:THU-MIG/yolov10
Arquitetura e Inovações Chave
O YOLOv10 alcança sua eficiência através de uma combinação de Atribuições Duplas Consistentes e um Design de Modelo Holístico Impulsionado pela Eficiência e Precisão.
- Treinamento sem NMS: Os modelos YOLO tradicionais dependem do NMS para filtrar caixas delimitadoras duplicadas. O YOLOv10 utiliza uma estratégia de atribuição dupla durante o treinamento do modelo. Um ramo um-para-muitos fornece sinais de supervisão ricos para o aprendizado, enquanto um ramo um-para-um garante que o modelo gere uma única melhor previsão por objeto durante a inferência. Isso permite que o modelo seja implantado sem NMS, reduzindo significativamente a latência de inferência.
- Otimização do Modelo: A arquitetura inclui cabeças de classificação leves, downsampling desacoplado espacial-canal e design de bloco guiado por classificação. Esses recursos reduzem a redundância computacional e o uso de memória, tornando o modelo altamente eficiente em hardware com recursos limitados.
Vantagem de Eficiência
A remoção do NMS no YOLOv10 é particularmente benéfica para a implantação na borda. Em dispositivos onde os recursos da CPU são escassos, evitar o custo computacional de classificar e filtrar milhares de caixas candidatas pode resultar em acelerações substanciais.
YOLOv9: Dominando a Retenção de Informação
Apresentado em fevereiro de 2024 por Chien-Yao Wang e Hong-Yuan Mark Liao, o YOLOv9 tem como alvo o problema do "gargalo de informação" inerente às redes neurais profundas. À medida que os dados passam por camadas sucessivas (extração de recursos), informações cruciais podem ser perdidas, levando à degradação da precisão, especialmente para objetos pequenos ou difíceis de detectar.
Detalhes Técnicos:
- Autores: Chien-Yao Wang, Hong-Yuan Mark Liao
- Organização:Institute of Information Science, Academia Sinica
- Data: 2024-02-21
- Arxiv:Learning What You Want to Learn Using Programmable Gradient Information
- GitHub:WongKinYiu/yolov9
Arquitetura e Inovações Chave
O YOLOv9 introduz novos conceitos para garantir que a rede retenha e utilize o máximo de informação de entrada possível.
- Informação de Gradiente Programável (PGI): O PGI fornece uma estrutura de supervisão auxiliar que gera gradientes confiáveis para atualizar os pesos da rede. Isso garante que as camadas profundas recebam informações de entrada completas, mitigando o problema do desaparecimento do gradiente e melhorando a convergência.
- Generalized Efficient Layer Aggregation Network (GELAN): Esta nova arquitetura substitui o ELAN convencional usado em versões anteriores. O GELAN otimiza a utilização de parâmetros e a eficiência computacional (FLOPs), permitindo que o YOLOv9 alcance maior precisão com um tamanho de modelo comparável ao de seus predecessores.
Insight de Deep Learning
O foco do YOLOv9 na retenção de informações o torna excepcionalmente forte na detecção de objetos em cenas complexas, onde os detalhes das características podem ser perdidos durante as operações de subamostragem no backbone.
Métricas de Desempenho: Velocidade vs. Precisão
A escolha entre esses dois modelos geralmente se resume a uma compensação entre a velocidade de inferência bruta e a precisão da detecção. A tabela abaixo destaca as diferenças de desempenho em várias escalas de modelo.
Análise:
- Latência: O YOLOv10 supera consistentemente o YOLOv9 em latência, particularmente nos tamanhos de modelo menores (N e S). Por exemplo, o YOLOv10n atinge uma velocidade de inferência de 1,56 ms no TensorRT, significativamente mais rápido do que modelos comparáveis.
- Precisão: O YOLOv9 se destaca em precisão na extremidade superior do espectro. O modelo YOLOv9e alcança um notável 55,6% mAP, tornando-o a escolha superior para aplicações onde a precisão é fundamental.
- Eficiência: YOLOv10 oferece excelente precisão por parâmetro. YOLOv10b alcança 52,7% de mAP com menor latência do que YOLOv9c, demonstrando a eficácia do seu design holístico.
| Modelo | tamanho (pixels) | mAPval 50-95 | Velocidade CPU ONNX (ms) | Velocidade T4 TensorRT10 (ms) | parâmetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
Casos de Uso Ideais
Entender os pontos fortes de cada modelo ajuda na seleção da ferramenta certa para seus objetivos de projeto específicos.
Quando escolher o YOLOv10
- Implantação de Edge AI: Aplicações executadas em dispositivos como NVIDIA Jetson ou Raspberry Pi se beneficiam do design livre de NMS, o que reduz a sobrecarga da CPU.
- Análise de Vídeo de Alta Frequência: Cenários que exigem o processamento de fluxos de vídeo de alto FPS, como monitoramento de tráfego ou análise de esportes.
- Robótica em Tempo Real: Sistemas autônomos que dependem de loops de feedback de baixa latência para navegação e desvio de obstáculos.
Quando escolher o YOLOv9
- Inspeção de Alta Precisão: Controle de qualidade industrial onde perder um defeito (falso negativo) é caro.
- Detecção de Objetos Pequenos: Aplicações envolvendo análise de imagens de satélite ou imagens médicas onde os objetos são pequenos e com poucos recursos.
- Cenas Complexas: Ambientes com alta oclusão ou desordem onde a retenção máxima de informações é necessária para distinguir objetos.
Uso com Ultralytics
Uma das vantagens significativas de usar esses modelos é a sua integração no ecossistema Ultralytics. Tanto o YOLOv10 quanto o YOLOv9 podem ser utilizados através da mesma API Python unificada e Interface de Linha de Comando (CLI), simplificando o fluxo de trabalho desde o treinamento até a implantação.
Exemplo Python
O código a seguir demonstra como carregar e executar a inferência com ambos os modelos usando o ultralytics package.
from ultralytics import YOLO
# Load a YOLOv10 model (NMS-free, high speed)
model_v10 = YOLO("yolov10n.pt")
# Load a YOLOv9 model (High accuracy)
model_v9 = YOLO("yolov9c.pt")
# Run inference on an image
# The API remains consistent regardless of the underlying architecture
results_v10 = model_v10("https://ultralytics.com/images/bus.jpg")
results_v9 = model_v9("https://ultralytics.com/images/bus.jpg")
# Print results
for r in results_v10:
print(f"YOLOv10 Detections: {r.boxes.shape[0]}")
for r in results_v9:
print(f"YOLOv9 Detections: {r.boxes.shape[0]}")
A Vantagem Ultralytics
Escolher Ultralytics para seus projetos de visão computacional oferece vários benefícios além da arquitetura do modelo:
- Facilidade de Uso: A API amigável permite que você alterne entre YOLOv9, YOLOv10 e outros modelos como YOLO11 simplesmente alterando o nome do arquivo de pesos.
- Equilíbrio de Desempenho: As implementações Ultralytics são otimizadas para o desempenho no mundo real, equilibrando velocidade e precisão.
- Eficiência do Treinamento: A estrutura suporta recursos como precisão mista automática (AMP) e treinamento multi-GPU, facilitando o treinamento de modelos personalizados em seus próprios datasets.
- Requisitos de Memória: Os modelos Ultralytics tipicamente exibem um menor uso de memória comparado com alternativas baseadas em transformers, facilitando o treino em GPUs de nível consumidor.
Conclusão
Tanto o YOLOv10 quanto o YOLOv9 representam marcos significativos na detecção de objetos. O YOLOv10 é o claro vencedor para aplicações que priorizam velocidade e eficiência, graças à sua arquitetura inovadora sem NMS. Por outro lado, o YOLOv9 continua a ser uma escolha robusta para cenários que exigem a maior precisão possível e retenção de informações.
Para desenvolvedores que buscam a solução mais recente e versátil, também recomendamos explorar o YOLO11. YOLO11 se baseia nos pontos fortes de seus antecessores, oferecendo um equilíbrio refinado de velocidade, precisão e recursos para tarefas de detecção, segmentação e estimativa de pose.
Explore Outros Modelos
- Ultralytics YOLO11 - O mais recente modelo de última geração.
- Ultralytics YOLOv8 - Um modelo versátil e maduro para várias tarefas de visão.
- RT-DETR - Um detector baseado em transformer para aplicações de alta precisão.