YOLOv9 YOLO10: uma análise técnica aprofundada sobre a evolução da deteção de objetos
O panorama da deteção de objetos em tempo real evoluiu rapidamente, com o lançamento de duas arquiteturas significativas em 2024: YOLOv9 e YOLOv10. Embora ambos os modelos tenham como objetivo ampliar os limites da precisão e da eficiência, eles alcançam isso por meio de filosofias arquitetónicas fundamentalmente diferentes. YOLOv9 em maximizar a retenção de informações nas profundezas da rede, enquanto YOLOv10 o pipeline de implementação, eliminando a necessidade de supressão não máxima (NMS).
Este guia fornece uma comparação técnica abrangente para ajudar investigadores e engenheiros a escolher a ferramenta certa para as suas aplicações específicas de visão computacional.
YOLOv9: Informação de Gradiente Programável
Lançado em fevereiro de 2024 por Chien-Yao Wang e Hong-Yuan Mark Liao (a equipa por trás do YOLOv4 e YOLOv7), YOLOv9 o problema do «gargalo de informação» inerente às redes neurais profundas. À medida que os dados passam por camadas sucessivas, os dados de entrada são frequentemente perdidos, prejudicando a capacidade do modelo de aprender características específicas.
Para combater isso, YOLOv9 o PGI (Programmable Gradient Information) e a arquitetura GELAN (Generalized Efficient Layer Aggregation Network). O PGI fornece um ramo de supervisão auxiliar que garante que o ramo principal retenha informações críticas durante o treinamento, enquanto o GELAN otimiza a utilização de parâmetros para um melhor planeamento do caminho do gradiente.
- Autores: Chien-Yao Wang, Hong-Yuan Mark Liao
- Organização: Instituto de Ciência da Informação, Academia Sinica, Taiwan
- Data: 2024-02-21
- Arxiv:YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information
- GitHub:WongKinYiu/yolov9
YOLOv10: Detecção End-to-End em Tempo Real
Lançado pouco depois, em maio de 2024, por investigadores da Universidade de Tsinghua, YOLOv10 uma mudança significativa no YOLO . Historicamente, YOLO dependiam do NMS para filtrar caixas delimitadoras sobrepostas. YOLOv10 uma estratégia de atribuição dupla consistente durante o treinamento — usando atribuição um-para-muitos para supervisão rica e atribuição um-para-um para inferência — permitindo que o modelo se torne nativamente NMS.
Essa mudança arquitetónica reduz a latência de inferência e simplifica os pipelines de implementação, tornando-a particularmente atraente para a computação de ponta, onde CPU são preciosos.
- Autores: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organização: Universidade de Tsinghua
- Data: 2024-05-23
- Arxiv:YOLOv10: Real-Time End-to-End Object Detection
- GitHub:THU-MIG/yolov10
Comparação de Desempenho
Ao comparar essas duas arquiteturas, analisamos as compensações entre a capacidade bruta de detecção (mAP) e a eficiência de inferência (latência e FLOPs).
Análise de Métricas
A tabela a seguir destaca as métricas de desempenho no COCO . Embora o YOLOv9e demonstre precisão superior para tarefas complexas, YOLOv10 geralmente oferecem menor latência devido à remoção da NMS .
| 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 |
Principais Conclusões
- Latência vs. Precisão: O YOLOv10n atinge um mAP 39,5%) mais alto do que o YOLOv9t (38,3%), ao mesmo tempo que funciona significativamente mais rápido em GPU (1,56 ms vs 2,3 ms). Isso torna a arquitetura v10 altamente eficiente para implementações em pequena escala.
- Precisão de alto nível: para cenários de pesquisa em que cada ponto percentual de precisão é importante, o YOLOv9e continua sendo uma potência com 55,6% mAP, utilizando suas informações de gradiente programáveis para extrair características sutis que outros modelos podem deixar passar.
- Eficiência: YOLOv10 na eficiência de FLOPs. O YOLOv10s requer apenas 21,6 G FLOPs, em comparação com 26,4 G para o YOLOv9s, o que se traduz em menor consumo de energia em dispositivos operados por bateria.
Considerações de Hardware
Se estiver a implementar em CPUs (como processadores Intel ) ou hardware de ponta especializado (Raspberry Pi, Jetson), o design NMS YOLOv10 geralmente resulta num pipeline mais suave, pois remove o tempo de processamento não determinístico das etapas de pós-processamento.
Treinamento e Ecossistema
Uma das maiores vantagens de usar Ultralytics é o ecossistema unificado. Quer escolha YOLOv9 YOLOv10, os fluxos de trabalho de formação, validação e exportação permanecem idênticos. Essa consistência reduz drasticamente a curva de aprendizagem para os programadores.
A Vantagem Ultralytics
- Facilidade de Uso: Python simples permite trocar arquiteturas alterando uma única string (por exemplo, de
yolov9c.ptparayolov10m.pt). - Ecossistema Bem-Mantido: A Ultralytics fornece atualizações frequentes, garantindo compatibilidade com as versões mais recentes do PyTorch e drivers CUDA.
- Requisitos de memória: Ao contrário de muitos modelos baseados em transformadores que sofrem com o aumento excessivo da memória, Ultralytics são otimizadas para a eficiênciaGPU . Isso permite tamanhos de lote maiores em hardware de nível consumidor.
Exemplo de Treinamento
Treinar qualquer um dos modelos em um conjunto de dados personalizado é muito simples. A estrutura lida automaticamente com o aumento de dados, o armazenamento em cache e o registo de métricas.
from ultralytics import YOLO
# Load a model (Swap "yolov10n.pt" for "yolov9c.pt" to switch architectures)
model = YOLO("yolov10n.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Validate the model's performance
model.val()
# Export to ONNX for deployment
model.export(format="onnx")
Casos de Uso Ideais
Quando Escolher YOLOv9
YOLOv9 a escolha preferida para cenários que exigem alta fidelidade de recursos. A sua arquitetura GELAN é robusta contra perda de informações, tornando-o ideal para:
- Imagiologia médica: detetar pequenos tumores ou anomalias em que a falta de uma característica é crítica. Consulte o nosso guia sobre IA na área da saúde.
- Detecção de pequenos objetos: Cenários envolvendo imagens aéreas ou vigilância à distância, nos quais os objetos ocupam muito poucos pixels.
- Referências de pesquisa: Ao comparar com arquiteturas de última geração do início de 2024.
Quando Escolher YOLOv10
YOLOv10 concebido para oferecer velocidade e simplicidade de implementação. A remoção do NMS um forte candidato para:
- Computação de borda: Executada em dispositivos como o Raspberry Pi ou telemóveis, onde CPU proveniente do pós-processamento causa gargalos.
- Robótica em tempo real: aplicações que exigem ciclos de feedback consistentes e de baixa latência, como navegação autónoma.
- Pipelines complexos: sistemas em que a saída do detetor é alimentada em algoritmos de rastreamento; a saída NMS simplifica a lógica para tarefas a jusante.
Olhando para o Futuro: O Poder do YOLO26
Embora YOLOv9 YOLOv10 modelos excelentes, o campo da IA evolui rapidamente. Para novos projetos com início em 2026, recomendamos vivamente a avaliação do YOLO26.
Lançado em janeiro de 2026, o YOLO26 baseia-se na inovação NMS do YOLOv10 introduz melhorias significativas na arquitetura:
- NMS de ponta a ponta: Assim como a v10, a YOLO26 é nativamente de ponta a ponta, mas com otimizações adicionais no cabeçote de detecção para uma precisão ainda maior.
- Otimizador MuSGD: Um híbrido de SGD Muon (inspirado no treinamento LLM), este otimizador traz a estabilidade do treinamento do Large Language Model para a visão computacional, garantindo uma convergência mais rápida.
- Remoção de DFL: Ao remover a perda focal de distribuição, o YOLO26 simplifica o gráfico de exportação, tornando significativamente mais fácil a implementação em dispositivos com restrições de NPU.
- ProgLoss + STAL: Novas funções de perda especificamente ajustadas para melhorar o reconhecimento de pequenos objetos, abordando uma fraqueza comum em detetores em tempo real.
- Desempenho: Otimizado especificamente para computação de ponta, o YOLO26 oferece CPU até 43% mais rápida em comparação com as gerações anteriores.
Além disso, o YOLO26 não é apenas um detetor; inclui melhorias especializadas para estimativa de pose (usando RLE), segmentação de instâncias e tarefas de Oriented Bounding Box (OBB), tornando-o a ferramenta mais versátil do Ultralytics .
Conclusão
Tanto YOLOv9 YOLOv10 grandes avanços na visão computacional. YOLOv9 que as redes profundas poderiam se tornar mais eficientes sem perder informações, enquanto YOLOv10 que a dependência de décadas do NMS ser quebrada.
Para os programadores de hoje, a escolha depende em grande parte das suas restrições de implementação. Se necessitar da mais alta precisão em dados difíceis, o YOLOv9e é um forte candidato. Se a latência e a simplicidade de implementação forem fundamentais, YOLOv10 excelente. No entanto, para o melhor equilíbrio entre velocidade, precisão e funcionalidades preparadas para o futuro, o YOLO26 é a recomendação de última geração atual para os utilizadores Ultralytics .