YOLO vs. YOLOv10: Um mergulho profundo na evolução da deteção de objectos
A seleção do modelo de deteção de objectos correto é uma decisão fundamental que tem impacto em tudo, desde os custos de implementação à experiência do utilizador. Esta comparação técnica explora as diferenças entre o YOLO, um modelo orientado para a investigação do Alibaba Group, e o YOLOv10, o mais recente detetor de ponta a ponta em tempo real desenvolvido por pesquisadores da Universidade de Tsinghua e integrado ao ecossistema Ultralytics .
Embora ambos os modelos visem otimizar a relação entre velocidade e precisão, empregam estratégias de arquitetura muito diferentes. Esta análise analisa as suas especificações técnicas, métricas de desempenho e casos de utilização ideais para o ajudar a navegar no complexo panorama da visão por computador.
Métricas de Desempenho
A tabela abaixo apresenta uma comparação direta da eficiência e da precisão no conjunto de dadosCOCO . As principais conclusões incluem a eficiência dos parâmetros e as velocidades de inferência, em que YOLOv10 demonstra vantagens significativas devido à sua conceção NMS.
| Modelo | tamanho (pixels) | mAPval 50-95 | Velocidade CPU ONNX (ms) | Velocidade T4 TensorRT10 (ms) | parâmetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| DAMO-YOLOt | 640 | 42.0 | - | 2.32 | 8.5 | 18.1 |
| DAMO-YOLOs | 640 | 46.0 | - | 3.45 | 16.3 | 37.8 |
| DAMO-YOLOm | 640 | 49.2 | - | 5.09 | 28.2 | 61.8 |
| DAMO-YOLOl | 640 | 50.8 | - | 7.18 | 42.1 | 97.3 |
| 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 |
YOLO: Inovação orientada para a investigação
Lançado no final de 2022, o YOLO representa um esforço significativo do Grupo Alibaba para ultrapassar os limites dos detectores YOLO através de uma pesquisa avançada de arquitetura neural e de novas técnicas de fusão de caraterísticas.
Detalhes técnicos:
Autores: Xianzhe Xu, Yiqi Jiang, Weihua Chen, et al.
Organização:Alibaba Group
Data: 2022-11-23
Arxiv:https://arxiv.org/abs/2211.15444v2
GitHubYOLO
Arquitetura e Principais Características
A YOLO integra vários conceitos de vanguarda para atingir o seu desempenho:
- Pesquisa de Arquitetura Neural (NAS): Ao contrário dos modelos com backbones projetados manualmente, o YOLO utiliza o MAE-NAS para descobrir automaticamente estruturas de rede eficientes, otimizando a profundidade e a largura da rede para restrições específicas de hardware.
- RepGFPN Neck: Esta rede de pirâmide de caraterísticas utiliza a re-parametrização para gerir a fusão de caraterísticas de forma eficiente. Permite estruturas complexas de tempo de treino que se colapsam em blocos mais simples de tempo de inferência, mantendo a precisão e aumentando a velocidade.
- ZeroHead & AlignedOTA: O modelo utiliza uma conceção "ZeroHead" para reduzir a complexidade da cabeça de deteção e emprega AlignedOTA (Optimal Transport Assignment) para tratar da atribuição de etiquetas durante a formação, resolvendo problemas de desalinhamento entre as tarefas de classificação e regressão.
Considerações sobre a complexidade
Embora o YOLO apresente inovações impressionantes, a sua dependência do NAS e de componentes especializados pode tornar o pipeline de formação mais complexo e menos acessível para os programadores que necessitam de uma rápida personalização ou implementação em hardware variado sem afinação extensiva.
Forças e Fraquezas
- Pontos fortes: A YOLO oferece uma grande precisão, particularmente para a sua hora de lançamento, e introduziu novos conceitos como o melhoramento da destilação para modelos mais pequenos.
- Pontos fracos: O ecossistema em torno da YOLO está principalmente ligado à estrutura MMDetection, que pode apresentar uma curva de aprendizagem mais acentuada em comparação com o ecossistemaUltralytics de fácil utilização. Além disso, ele requer o pós-processamento tradicional NMS , o que aumenta a latência.
YOLOv10: A era da deteção em tempo real de ponta a ponta
YOLOv10, lançado em maio de 2024 por investigadores da Universidade de Tsinghua, representa uma mudança de paradigma na linhagem YOLO . Ao eliminar a necessidade de Supressão Não MáximaNMS), ele atinge um verdadeiro desempenho de ponta a ponta, reduzindo significativamente a latência de inferência.
Detalhes técnicos:
Autores: Ao Wang, Hui Chen, Lihao Liu, et al.
Organização:Universidade de Tsinghua
Data: 2024-05-23
Arxiv:https://arxiv.org/abs/2405.14458
GitHub:https://github.com/THU-MIG/yolov10
Docsultralytics
Arquitetura e Inovações
YOLOv10 centra-se na eficiência holística, visando tanto a arquitetura como a cadeia de pós-processamento:
- DesignNMS: Através de uma estratégia chamada Atribuições duplas consistentes, YOLOv10 treina com atribuições de rótulos um-para-muitos e um-para-um. Isso permite que o modelo preveja uma única melhor caixa para cada objeto durante a inferência, tornando NMS obsoleto. Esta é uma vantagem crítica para a inferência em tempo real, onde o pós-processamento pode muitas vezes tornar-se um gargalo.
- Conceção holística de eficiência e precisão: A arquitetura apresenta uma cabeça de classificação leve e uma redução da amostragem desacoplada de canais espaciais. Essas otimizações reduzem a redundância computacional, levando a FLOPs e contagens de parâmetros menores em comparação com as gerações anteriores.
- Conceção de blocos orientada para a classificação: O modelo adapta a sua conceção de blocos internos com base na redundância de diferentes fases, utilizando blocos invertidos compactos (CIB) onde é necessária eficiência e auto-atenção parcial (PSA) onde o aumento das caraterísticas é crítico.
Facilidade de utilização com o Ultralytics
Uma das vantagens mais significativas do YOLOv10 é a sua integração perfeita no ecossistemaUltralytics . Os programadores podem treinar, validar e implementar YOLOv10 utilizando a mesma API simples utilizada para o YOLOv8 e YOLO11.
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Train the model on your custom dataset
model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
Análise comparativa
Ao comparar a YOLO e YOLOv10, a distinção reside na sua abordagem à eficiência e no seu ecossistema operacional.
Velocidade e latência
YOLOv10 tem uma vantagem distinta na latência do mundo real. Os modelos YOLO padrão (e YOLO) requerem Supressão Não Máxima (NMS) para filtrar caixas delimitadoras sobrepostas. O tempo de execução NMS varia com o número de objectos detectados, causando uma latência imprevisível. O design de ponta a ponta do YOLOv10 proporciona uma latência determinística, tornando-o superior para aplicações de tempo crítico como a condução autónoma ou a robótica industrial de alta velocidade.
Eficiência dos recursos
Como mostra a tabela de desempenho, o YOLOv10s atinge um mAP mais elevado (46,7%) do que o YOLO (46,0%), utilizando menos de metade dos parâmetros (7,2M vs 16,3M). Este espaço de memória reduzido é crucial para a implantação na periferia. Os modelos Ultralytics são conhecidos pelos seus requisitos de memória mais baixos durante o treino e a inferência, permitindo o treino em GPUs de consumo onde outras arquitecturas podem ter dificuldades com erros Out-Of-Memory (OOM).
Ecossistema e apoio
Enquanto o YOLO é uma contribuição académica robusta, YOLOv10 beneficia do ecossistema Ultralytics bem mantido. Isso inclui:
- Desenvolvimento ativo: Actualizações frequentes e correcções de erros.
- Suporte da comunidade: Uma enorme comunidade de programadores no GitHub e no Discord.
- Documentação: Documentação extensa que abrange tudo, desde o aumento de dados até à implementação.
- Eficiência de treino: Rotinas simplificadas que suportam funcionalidades como a precisão mista automática (AMP) e o treino GPU de imediato.
Para além da deteção
Se o seu projeto requer versatilidade para além das caixas delimitadoras - como a segmentação de instâncias, a estimativa de pose ou a deteção orientada de objectos (OBB)- considere explorar YOLO11 ou o YOLOv8. Enquanto YOLOv10 se destaca na deteção pura, a família Ultralytics mais ampla oferece soluções de ponta para essas necessidades complexas de multitarefa.
Casos de Uso Ideais
Quando escolher YOLOv10
- IA de ponta e IoT: A baixa contagem de parâmetros (por exemplo, YOLOv10n com 2,3M params) torna-o perfeito para dispositivos como Raspberry Pi ou NVIDIA Jetson.
- Análise de vídeo em tempo real: A eliminação do NMS assegura taxas de fotogramas consistentes, essenciais para a monitorização do tráfego ou feeds de segurança.
- Desenvolvimento rápido: As equipas que precisam de passar rapidamente dos dados para a implementação beneficiarão do sistema intuitivo
ultralyticsAPI Python e Ultralytics HUB.
Quando considerar DAMO-YOLO
- Investigação académica: Os investigadores que estudam a Pesquisa de Arquitetura Neural (NAS) ou a otimização de pirâmides de caraterísticas podem considerar a arquitetura do YOLO uma referência valiosa.
- Pipelines antigos: Os projectos já profundamente integrados na estrutura MMDetection podem achar mais fácil adotar a YOLO do que mudar de estrutura.
Conclusão
Ambos os modelos representam marcos significativos na visão computacional. O YOLO demonstrou o poder do NAS e da fusão avançada de caraterísticas em 2022. No entanto, para aplicações modernas em 2024 e posteriormente, YOLOv10 oferece um pacote mais atraente. Sua arquitetura de ponta a ponta NMS resolve um gargalo de longa data na deteção de objetos, enquanto sua integração ao ecossistema Ultralytics garante que seja acessível, sustentável e fácil de implantar.
Para os programadores que procuram o melhor equilíbrio entre velocidade, precisão e facilidade de utilização, YOLOv10o versátil YOLO11-é a melhor escolha para criar soluções de IA robustas.