Ir para o conteúdo

YOLOv10 vs. YOLOX: Uma comparação técnica

No cenário em rápida evolução da visão computacional, a seleção do modelo de deteção de objectos correto é crucial para equilibrar o desempenho, a eficiência e a facilidade de implementação. Esta comparação técnica explora as diferenças entre YOLOv10o mais recente detetor de ponta a ponta em tempo real da Universidade de Tsinghua, e o YOLOX, um modelo sem âncoras altamente considerado da Megvii.

Enquanto o YOLOX introduziu inovações significativas em 2021 relativamente aos mecanismos de deteção sem âncoras, YOLOv10 representa a vanguarda de 2024, oferecendo inferência NMS e uma maior integração com o ecossistemaUltralytics .

YOLOv10: Deteção em tempo real de ponta a ponta

YOLOv10 visa colmatar a lacuna entre a eficiência do pós-processamento e a arquitetura do modelo. Ao introduzir uma estratégia consistente de atribuição dupla para treinamento NMS, ele elimina a necessidade de Supressão Não Máxima (NMS) durante a inferência, reduzindo significativamente a latência.

Detalhes Técnicos:

Arquitetura e pontos fortes

YOLOv10 baseia-se nos pontos fortes das gerações anteriores YOLO , mas optimiza a arquitetura para eficiência e precisão. Ele emprega um design de modelo holístico que inclui cabeças de classificação leves e redução de amostragem desacoplada de canal espacial.

  • InferênciaNMS: A remoção do NMS é um divisor de águas para aplicativos de inferência em tempo real, garantindo latência previsível e menor sobrecarga CPU em dispositivos de borda.
  • Equilíbrio entre eficiência e precisão: YOLOv10 alcança o desempenho mais avançado com menor número de parâmetros e FLOPs em comparação com os seus antecessores e concorrentes.
  • Integração Ultralytics : Ser plenamente apoiado pelo ultralytics significa que os utilizadores beneficiam de um pacote unificado API Python, exportação sem problemas para formatos como TensorRT e OpenVINOe documentação extensa.

Vantagem do ecossistema

A integração do YOLOv10 no ecossistema Ultralytics fornece acesso imediato a funcionalidades avançadas como a anotação automática, a formação na nuvem e uma comunidade robusta para apoio.

Fraquezas

  • Arquitetura mais recente: Sendo uma versão de 2024, o ecossistema de tutoriais de terceiros está a crescer rapidamente, mas pode ainda não corresponder ao volume dos modelos antigos mais antigos.

Saiba mais sobre o YOLOv10

YOLOX: O pioneiro sem âncora

Lançado em 2021, o YOLOX mudou para um mecanismo sem âncoras e cabeças desacopladas, divergindo das abordagens baseadas em âncoras do YOLOv4 e YOLOv5. Utiliza o SimOTA (Simplified Optimal Transport Assignment) para a atribuição de etiquetas, o que constituiu um avanço significativo nas estratégias de atribuição dinâmica de etiquetas.

Detalhes Técnicos:

Arquitetura e pontos fortes

O YOLOX continua a ser uma referência forte na comunidade de investigação devido ao seu design limpo e sem âncoras.

  • Mecanismo sem âncoras: Ao remover as caixas de ancoragem predefinidas, o YOLOX reduz a complexidade do projeto e o número de hiperparâmetros que necessitam de ser ajustados.
  • Cabeça desacoplada: A separação das tarefas de classificação e localização melhorou a velocidade de convergência e a precisão em relação aos antigos designs de cabeça acoplada.
  • Base de referência sólida: Serve de referência fiável para a investigação académica sobre cabeças de deteção e estratégias de atribuição.

Fraquezas

  • Velocidade de inferência: Embora eficiente para a sua época, o YOLOX fica geralmente atrás de modelos mais recentes como YOLOv10 e o YOLO11 em termos de velocidade de inferência bruta, especialmente quando o tempo de NMS é levado em conta.
  • Fluxo de trabalho fragmentado: Ao contrário dos modelos Ultralytics , o YOLOX requer muitas vezes a sua própria base de código específica e a configuração do ambiente, não possuindo a interface unificada para formação, validação e implementação encontrada nas estruturas modernas.
  • Intensidade de recursos: FLOPs e contagens de parâmetros mais elevados para níveis de precisão semelhantes, em comparação com as arquitecturas modernas eficientes.

Saiba mais sobre o YOLOX.

Análise de Desempenho

A comparação abaixo destaca os avanços significativos efectuados em termos de eficiência e precisão ao longo dos três anos que separam estes modelos. As métricas centram-se no tamanho do modelo (parâmetros), no custo computacional (FLOPs) e na precisãomAP) no conjunto de dados COCO .

Modelotamanho
(pixels)
mAPval
50-95
Velocidade
CPU ONNX
(ms)
Velocidade
T4 TensorRT10
(ms)
parâmetros
(M)
FLOPs
(B)
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.9

Observações críticas

  1. Precisão vs. Tamanho: YOLOv10 fornece consistentemente um maior mAP com menos parâmetros. Por exemplo, o YOLOv10s alcança 46,7 mAP com apenas 7,2M de parâmetros, enquanto o YOLOXs alcança 40,5 mAP com 9,0M de parâmetros. Isto demonstra a eficiência superior da arquitetura do YOLOv10.
  2. Eficiência de computação: A contagem de FLOPs para os modelos YOLOv10 é significativamente menor. O YOLOv10x funciona com 160,4 B FLOPs em comparação com os enormes 281,9 B FLOPs do YOLOXx, embora ainda o supere em termos de precisão (54,4 vs 51,1 mAP).
  3. Velocidade de inferência: A remoção do NMS e a arquitetura optimizada permitem ao YOLOv10 obter uma latência mais baixa. Os benchmarks do TensorRT T4 mostram que o YOLOv10x é executado a 12,2 ms, significativamente mais rápido que o YOLOXx a 16,1 ms.

Casos de Uso Ideais

YOLOv10: O padrão moderno

YOLOv10 é a escolha preferida para a maioria dos novos projectos de desenvolvimento, particularmente aqueles que requerem:

  • Implementação de IA de ponta: O seu baixo consumo de memória e a sua elevada eficiência tornam-no perfeito para dispositivos como o Raspberry Pi ou o NVIDIA Jetson.
  • Aplicações em tempo real: Os sistemas que requerem feedback imediato, como a condução autónoma, a robótica e a análise de vídeo, beneficiam da baixa latência NMS.
  • Desenvolvimento rápido: O ecossistema Ultralytics permite uma rápida gestão de conjuntos de dadosformação e implantação através do ultralytics package.

YOLOX: Legado e investigação

A YOLOX continua a ser relevante para:

  • Investigação académica: Os investigadores que estudam a evolução de detectores sem âncoras ou estratégias específicas de atribuição de etiquetas, como o SimOTA, utilizam frequentemente o YOLOX como linha de base.
  • Sistemas antigos: Os pipelines de produção existentes já optimizados para o YOLOX podem continuar a utilizá-lo quando os custos de atualização ultrapassam os ganhos de desempenho.

Utilização do YOLOv10 com o Ultralytics

Uma das vantagens mais significativas do YOLOv10 é a sua facilidade de utilização. A APIPython Ultralytics simplifica todo o fluxo de trabalho, desde o carregamento de pesos pré-treinados até ao treino em dados personalizados.

Segue-se um exemplo de como executar previsões e treinar um modelo YOLOv10 :

from ultralytics import YOLO

# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")

# Run inference on an image
results = model.predict("path/to/image.jpg")

# Train the model on a custom dataset (COCO format)
model.train(data="coco8.yaml", epochs=100, imgsz=640)

Eficiência da formação

Os modelos Ultralytics YOLO são conhecidos pela sua eficiência de treino, exigindo frequentemente menos memória CUDA do que as arquitecturas mais antigas ou os modelos baseados em transformadores. Isso permite o treinamento de lotes maiores em GPUs de consumo padrão.

Conclusão

Enquanto o YOLOX desempenhou um papel fundamental na popularização da deteção sem âncoras, YOLOv10 representa o próximo salto em frente na tecnologia de visão computacional. Com a sua arquitetura NMS, uma relação precisão/computação superior e uma integração perfeita no robusto ecossistema Ultralytics , YOLOv10 oferece um pacote atraente tanto para programadores como para investigadores.

Para aqueles que procuram implementar uma deteção de objectos de última geração, YOLOv10 fornece a velocidade e a precisão necessárias. Os programadores interessados em capacidades ainda mais alargadas, como a estimativa de pose ou caixas delimitadoras orientadas, podem também considerar explorar o versátil YOLO11 ou o amplamente adotado YOLOv8.


Comentários