Meet YOLO26: next-gen vision AI.

Link to this sectionYOLOv10: Deteção de Objetos de Ponta a Ponta em Tempo Real#

YOLOv10, released in May 2024 and built on the Ultralytics Python package by researchers at Tsinghua University, introduces a new approach to real-time object detection, addressing both the post-processing and model architecture deficiencies found in previous YOLO versions. By eliminating non-maximum suppression (NMS) and optimizing various model components, YOLOv10 achieved excellent performance with significantly reduced computational overhead at its time of release. Its NMS-free end-to-end design pioneered an approach that has been further developed in YOLO26.

Atribuição dupla consistente do YOLOv10 para treino sem NMS



Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset

Link to this sectionVisão geral#

A deteção de objetos em tempo real visa prever com precisão as categorias e posições dos objetos em imagens com baixa latência. A série YOLO tem estado na vanguarda desta pesquisa devido ao seu equilíbrio entre desempenho e eficiência. Contudo, a dependência de NMS e ineficiências arquiteturais têm dificultado o desempenho ideal. O YOLOv10 resolve estas questões introduzindo atribuições duplas consistentes para treino sem NMS e uma estratégia de design de modelo focada numa eficiência e precisão holísticas.

Link to this sectionArquitetura#

A arquitetura do YOLOv10 baseia-se nos pontos fortes dos modelos YOLO anteriores, introduzindo várias inovações fundamentais. A arquitetura do modelo consiste nos seguintes componentes:

  1. Backbone: Responsável pela extração de características, o backbone no YOLOv10 utiliza uma versão aprimorada da CSPNet (Cross Stage Partial Network) para melhorar o fluxo de gradiente e reduzir a redundância computacional.
  2. Neck: O neck foi concebido para agregar características de diferentes escalas e passá-las para a head. Inclui camadas PAN (Path Aggregation Network) para uma fusão eficaz de características multiescala.
  3. One-to-Many Head: Gera múltiplas previsões por objeto durante o treino para fornecer sinais de supervisão ricos e melhorar a precisão da aprendizagem.
  4. One-to-One Head: Gera uma única melhor previsão por objeto durante a inferência para eliminar a necessidade de NMS, reduzindo assim a latência e melhorando a eficiência.

Link to this sectionPrincipais recursos#

  1. Treino Sem NMS: Utiliza atribuições duplas consistentes para eliminar a necessidade de NMS, reduzindo a latência de inferência.
  2. Design Holístico de Modelo: Otimização abrangente de vários componentes, tanto de eficiência quanto de precisão, incluindo heads de classificação leves, downsampling desacoplado espaço-canal e design de bloco guiado por ranking.
  3. Capacidades Aprimoradas do Modelo: Incorpora convoluções de grande kernel e módulos de autoatenção parcial para melhorar o desempenho sem custos computacionais significativos.

Link to this sectionVariantes do Modelo#

O YOLOv10 está disponível em várias escalas de modelo para atender às diferentes necessidades de aplicação:

  • YOLOv10n: Versão Nano para ambientes extremamente limitados em recursos.
  • YOLOv10s: Versão Small que equilibra velocidade e precisão.
  • YOLOv10m: Versão Medium para uso de propósito geral.
  • YOLOv10b: Versão equilibrada com maior largura para maior precisão.
  • YOLOv10l: Versão Large para maior precisão à custa de maiores recursos computacionais.
  • YOLOv10x: Versão Extra-large para máxima precisão e desempenho.

Link to this sectionDesempenho#

O YOLOv10 supera as versões anteriores do YOLO e outros modelos de última geração em termos de precisão e eficiência. Por exemplo, o YOLOv10s é 1,8x mais rápido que o RT-DETR-R18 com um AP semelhante no dataset COCO, e o YOLOv10b tem 46% menos latência e 25% menos parâmetros que o YOLOv9-C com o mesmo desempenho.

Desempenho

Latência medida com TensorRT FP16 num GPU T4.

ModeloTamanho de EntradaAPvalFLOPs (G)Latência (ms)
[YOLOv10n][1]64038.56.71.84
[YOLOv10s][2]64046.321.62.49
[YOLOv10m][3]64051.159.14.74
[YOLOv10b][4]64052,592.05.74
[YOLOv10l][5]64053.2120.37.28
[YOLOv10x][6]64054.4160.410.70

Link to this sectionMetodologia#

Link to this sectionAtribuições Duplas Consistentes para Treino Sem NMS#

O YOLOv10 utiliza atribuições de etiquetas duplas, combinando estratégias de um-para-muitos e um-para-um durante o treino para garantir uma supervisão rica e uma implementação eficiente de ponta a ponta. A métrica de correspondência consistente alinha a supervisão entre ambas as estratégias, melhorando a qualidade das previsões durante a inferência.

Link to this sectionDesign de Modelo Orientado por Eficiência-Precisão Holística#

Link to this sectionMelhorias de Eficiência#

  1. Head de Classificação Leve: Reduz a carga computacional da head de classificação usando convoluções separáveis por profundidade.
  2. Downsampling Desacoplado Espaço-Canal: Desacopla a redução espacial e a modulação de canal para minimizar a perda de informação e o custo computacional.
  3. Design de Bloco Guiado por Ranking: Adapta o design do bloco com base na redundância intrínseca do estágio, garantindo a utilização ideal dos parâmetros.

Link to this sectionMelhorias de Precisão#

  1. Convolução de Grande Kernel: Amplia o campo recetivo para melhorar a capacidade de extração de características.
  2. Autoatenção Parcial (PSA): Incorpora módulos de autoatenção para melhorar a aprendizagem de representação global com sobrecarga mínima.

Link to this sectionExperiências e Resultados#

O YOLOv10 foi extensivamente testado em benchmarks padrão como o COCO, demonstrando desempenho e eficiência superiores. O modelo alcança resultados de última geração em diferentes variantes, apresentando melhorias significativas na latência e precisão em comparação com versões anteriores e outros detetores contemporâneos.

Link to this sectionComparações#

Comparação do YOLOv10 com detetores de objetos SOTA

Comparado com outros detetores de última geração:

  • YOLOv10s / x são 1,8× / 1,3× mais rápidos que o RT-DETR-R18 / R101 com precisão semelhante
  • YOLOv10b tem 25% menos parâmetros e 46% menos latência que o YOLOv9-C com a mesma precisão
  • YOLOv10l / x superam o YOLOv8l / x em 0,3 AP / 0,5 AP com 1,8× / 2,3× menos parâmetros
Desempenho

Aqui está uma comparação detalhada das variantes do YOLOv10 com outros modelos de última geração:

ModeloParams
(M)
FLOPs
(G)
mAPval
50-95
Latência
(ms)
Latência-forward
(ms)
YOLOv6-3.0-N4.711.437.02.691.76
Gold-YOLO-N5.612.139.62.921.82
YOLOv8n3.28.737.36.161.77
YOLOv10n2.36.739.51.841.79
YOLOv6-3.0-S18.545.344.33.422.35
Gold-YOLO-S21.546.045.43.822.73
YOLOv8s11.228.644.97.072.33
YOLOv10s7.221.646.82.492.39
RT-DETR-R1820.060.046.54.584.49
YOLOv6-3.0-M34.985.849.15.634.56
Gold-YOLO-M41.387.549.86.385.45
YOLOv8m25.978.950.69.505.09
YOLOv10m15.459.151.34.744.63
YOLOv6-3.0-L59.6150.751.89.027.90
Gold-YOLO-L75.1151.751.810.659.78
YOLOv8l43.7165.252.912.398.06
RT-DETR-R5042.0136.053,19.209.07
YOLOv10l24.4120.353.47.287.21
YOLOv8x68,2257.853.916.8612.83
RT-DETR-R10176.0259.054.313.7113.58
YOLOv10x29.5160.454.410.7010.60

Os valores de Params e FLOPs são para o modelo fundido após model.fuse(), que combina as camadas Conv e BatchNorm e remove a cabeça de detecção auxiliar um-para-muitos. Os checkpoints pré-treinados retêm a arquitetura de treinamento completa e podem mostrar contagens mais altas.

Link to this sectionExemplos de uso#

Para prever novas imagens com YOLOv10. Os modelos também podem ser treinados em GPUs na nuvem através da Ultralytics Platform:

Exemplo
from ultralytics import YOLO

# Load a pretrained YOLOv10n model
model = YOLO("yolov10n.pt")

# Perform object detection on an image
results = model("image.jpg")

# Display the results
results[0].show()

Para treinar YOLOv10 em um conjunto de dados personalizado:

Exemplo
from ultralytics import YOLO

# Load YOLOv10n model from scratch
model = YOLO("yolov10n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=100, imgsz=640)

Link to this sectionTarefas e modos suportados#

A série de modelos YOLOv10 oferece uma gama de modelos, cada um otimizado para Detecção de Objetos de alto desempenho. Estes modelos atendem a diversas necessidades computacionais e requisitos de precisão, tornando-os versáteis para uma ampla gama de aplicações.

ModeloNomes de arquivoTarefasInferênciaValidaçãoTreinamentoExportar
YOLOv10yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.ptDetecção de Objetos

Link to this sectionExportando YOLOv10#

Devido às novas operações introduzidas com o YOLOv10, nem todos os formatos de exportação fornecidos pela Ultralytics são suportados atualmente. A tabela a seguir descreve quais formatos foram convertidos com sucesso usando a Ultralytics para o YOLOv10. Sinta-se à vontade para abrir um pull request se você puder fornecer uma mudança de contribuição para adicionar suporte de exportação de formatos adicionais para o YOLOv10.

Formato de ExportaçãoSuporte de ExportaçãoInferência de Modelo ExportadoNotas
TorchScriptFormato de modelo padrão PyTorch.
ONNXAmplamente suportado para implantação.
OpenVINOOtimizado para hardware Intel.
TensorRTOtimizado para GPUs NVIDIA.
CoreMLLimitado a dispositivos Apple.
TF SavedModelFormato de modelo padrão do TensorFlow.
TF GraphDefFormato TensorFlow legado.
TF LiteOtimizado para dispositivos móveis e embarcados.
TF Edge TPUEspecífico para dispositivos Edge TPU do Google.
TF.jsAmbiente JavaScript para uso em navegador.
PaddlePaddlePopular na China; menor suporte global.
NCNNA camada torch.topk não existe ou não está registrada

Link to this sectionConclusão#

O YOLOv10 estabeleceu um novo padrão em detecção de objetos em tempo real em seu lançamento, ao abordar as deficiências das versões anteriores do YOLO e incorporar estratégias de design inovadoras. Sua abordagem livre de NMS foi pioneira na detecção de objetos de ponta a ponta na família YOLO. Para o modelo Ultralytics mais recente com desempenho aprimorado e inferência sem NMS, veja YOLO26.

Link to this sectionCitações e Agradecimentos#

Gostaríamos de agradecer aos autores do YOLOv10 da Tsinghua University por sua extensa pesquisa e contribuições significativas para o framework Ultralytics:

Citação
@article{THU-MIGyolov10,
  title={YOLOv10: Real-Time End-to-End Object Detection},
  author={Ao Wang, Hui Chen, Lihao Liu, et al.},
  journal={arXiv preprint arXiv:2405.14458},
  year={2024},
  institution={Tsinghua University},
  license = {AGPL-3.0}
}

Para uma implementação detalhada, inovações arquiteturais e resultados experimentais, consulte o artigo de pesquisa e o repositório GitHub do YOLOv10 pela equipe da Tsinghua University.

Link to this sectionFAQ#

Link to this sectionO que é o YOLOv10 e como ele difere das versões anteriores do YOLO?#

O YOLOv10, desenvolvido por pesquisadores da Tsinghua University, introduz várias inovações importantes na detecção de objetos em tempo real. Ele elimina a necessidade de supressão não máxima (NMS) empregando atribuições duplas consistentes durante o treinamento e componentes de modelo otimizados para desempenho superior com menor sobrecarga computacional. Para mais detalhes sobre sua arquitetura e recursos principais, confira a seção Visão Geral do YOLOv10.

Link to this sectionComo posso começar a executar inferências usando o YOLOv10?#

Para uma inferência fácil, você pode usar a biblioteca Python Ultralytics YOLO ou a interface de linha de comando (CLI). Abaixo estão exemplos de previsão de novas imagens usando o YOLOv10:

Exemplo
from ultralytics import YOLO

# Load the pretrained YOLOv10n model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()

Para mais exemplos de uso, visite nossa seção Exemplos de Uso.

Link to this sectionQuais variantes de modelo o YOLOv10 oferece e quais são seus casos de uso?#

O YOLOv10 oferece várias variantes de modelo para atender a diferentes casos de uso:

  • YOLOv10n: Adequado para ambientes extremamente limitados em recursos
  • YOLOv10s: Equilibra velocidade e precisão
  • YOLOv10m: Uso de propósito geral
  • YOLOv10b: Maior precisão com largura aumentada
  • YOLOv10l: Alta precisão ao custo de recursos computacionais
  • YOLOv10x: Precisão e desempenho máximos

Cada variante é projetada para diferentes necessidades computacionais e requisitos de precisão, tornando-as versáteis para uma variedade de aplicações. Explore a seção Variantes de Modelo para obter mais informações.

Link to this sectionComo a abordagem sem NMS no YOLOv10 melhora o desempenho?#

O YOLOv10 elimina a necessidade de supressão não máxima (NMS) durante a inferência, empregando atribuições duplas consistentes para treinamento. Essa abordagem reduz a latência de inferência e aumenta a eficiência da previsão. A arquitetura também inclui uma cabeça um-para-um para inferência, garantindo que cada objeto receba uma única melhor previsão. Para uma explicação detalhada, consulte a seção Atribuições Duplas Consistentes para Treinamento sem NMS.

Link to this sectionOnde posso encontrar as opções de exportação para modelos YOLOv10?#

O YOLOv10 suporta vários formatos de exportação, incluindo TorchScript, ONNX, OpenVINO e TensorRT. No entanto, nem todos os formatos de exportação fornecidos pela Ultralytics são atualmente suportados para o YOLOv10 devido às suas novas operações. Para obter detalhes sobre os formatos suportados e instruções sobre como exportar, visite a seção Exportando YOLOv10.

Link to this sectionQuais são os benchmarks de desempenho para os modelos YOLOv10?#

O YOLOv10 supera as versões anteriores do YOLO e outros modelos de ponta tanto em precisão quanto em eficiência. Por exemplo, o YOLOv10s é 1,8x mais rápido que o RT-DETR-R18 com um AP semelhante no conjunto de dados COCO. O YOLOv10b apresenta 46% menos latência e 25% menos parâmetros que o YOLOv9-C com o mesmo desempenho. Benchmarks detalhados podem ser encontrados na seção Comparações.

Comentários