Compartilhamento de tecnologia

YOLOv10 treina seu próprio conjunto de dados (detecção de sinais de trânsito)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Prefácio

Introdução relacionada

  • YOLOv10 foi construído por pesquisadores da Universidade de Tsinghua com base no pacote Ultralytics Python. Ele introduziu um novo método de detecção de alvos em tempo real e resolveu as deficiências de pós-processamento e arquitetura de modelo nas versões anteriores do YOLO. Ao eliminar a supressão não máxima (NMS) e otimizar vários componentes do modelo, o YOLOv10 atinge desempenho de última geração enquanto reduz significativamente a sobrecarga computacional. Extensos experimentos demonstram sua precisão superior e compensação de latência em múltiplas escalas de modelo.
  • [1] Endereço do código-fonte YOLOv10:https://github.com/THU-MIG/yolov10.git
  • [2] Endereço de papel YOLOv10:https://arxiv.org/abs/2405.14458
    Insira a descrição da imagem aqui
  • Visão geral
    O objetivo da detecção de objetos em tempo real é prever com precisão a categoria e a localização dos objetos em imagens com baixa latência. A série YOLO tem estado na vanguarda desta investigação devido ao seu equilíbrio entre desempenho e eficiência. No entanto, a dependência do NMS e as ineficiências arquitetônicas prejudicam o desempenho ideal. O YOLOv10 aborda esses problemas introduzindo tarefas duplas consistentes para treinamento sem nms e uma estratégia geral de design de modelo orientada para a eficiência e precisão.
  • Arquitetura
    A arquitetura do YOLOv10 baseia-se nos pontos fortes dos modelos YOLO anteriores, ao mesmo tempo que introduz várias inovações importantes. A arquitetura do modelo consiste nos seguintes componentes:
    • Backbone: O backbone no YOLOv10 é responsável pela extração de recursos, usando uma versão aprimorada do CSPNet (Cross Stage Partial Network) para melhorar o fluxo de gradiente e reduzir a redundância computacional.
    • Pescoço: O pescoço é projetado para reunir características de diferentes escalas e transmiti-las à cabeça. Inclui uma camada PAN (Path Aggregation Network) para fusão eficaz de recursos em várias escalas.
    • Cabeça um-para-muitos: Gera múltiplas previsões para cada objeto durante o processo de treinamento, fornecendo sinais de supervisão ricos e melhorando a precisão do aprendizado.
    • Cabeça Um-para-Um: Gera a melhor previsão para cada objeto durante a inferência para eliminar a necessidade de NMS, reduzindo assim a latência e aumentando a eficiência.
  • Características principais
    • Treinamento sem NMS: aproveite a alocação dupla consistente para eliminar a necessidade de NMS e reduzir a latência de inferência.
    • Projeto de modelo holístico: Cada componente é totalmente otimizado do ponto de vista de eficiência e precisão, incluindo cabeçote de classificação leve, redução de amostragem desacoplada de canal espacial e design de bloco guia de classificação.
    • Recursos aprimorados do modelo: Combina convolução de núcleo grande e módulos de autoatenção parcial para melhorar o desempenho sem custos computacionais significativos.
  • Variantes de modelo: YOLOv10 vem em uma variedade de modelos para atender a diferentes necessidades de aplicação:
    • YOLOv10-N: Versão Nano para ambientes com recursos extremamente limitados.
    • YOLOv10-S: A versão pequena equilibra velocidade e precisão.
    • YOLOv10-M: Versão média para uso geral (adequado para diversos fins ou usos).
    • YOLOv10-B: Versão balanceada com largura aumentada para maior precisão.
    • YOLOv10-L: Versão grande para maior precisão ao custo de maiores recursos computacionais.
    • YOLOv10-X: Versão extragrande para máxima precisão e desempenho.
      Insira a descrição da imagem aqui

Pré-requisitos

ambiente de laboratório

torch==2.0.1
torchvision==0.15.2
onnx==1.14.0
onnxruntime==1.15.1
pycocotools==2.0.7
PyYAML==6.0.1
scipy==1.13.0
onnxsim==0.4.36
onnxruntime-gpu==1.18.0
gradio==4.31.5
opencv-python==4.9.0.80
psutil==5.9.8
py-cpuinfo==9.0.0
huggingface-hub==0.23.2
safetensors==0.4.3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

Ambiente de instalação

pip install ultralytics
# 或者
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple # 国内清华源,下载速度更快
  • 1
  • 2
  • 3

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

endereço do projeto

Linux

git clone https://github.com/THU-MIG/yolov10.git

cd yolov10
# conda create -n yolov10 python=3.9
# conda activate yolov10
pip install -r requirements.txt
pip install -e .
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
Cloning into 'yolov10'...
remote: Enumerating objects: 4583, done.
remote: Counting objects: 100% (4583/4583), done.
remote: Compressing objects: 100% (1270/1270), done.
remote: Total 4583 (delta 2981), reused 4576 (delta 2979), pack-reused 0
Receiving objects: 100% (4583/4583), 23.95 MiB | 1.55 MiB/s, done.
Resolving deltas: 100% (2981/2981), done.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

janelas

por favor venhahttps://github.com/THU-MIG/yolov10.gitBaixe o pacote zip do código-fonte do site.

cd yolov10
# conda create -n yolov10 python=3.9
# conda activate yolov10
pip install -r requirements.txt
pip install -e .
  • 1
  • 2
  • 3
  • 4
  • 5

Use YOLOv10 para treinar seu próprio conjunto de dados para detecção de sinais de trânsito

Preparar dados

O conjunto de dados usado neste artigo é gratuitoLink para Download:https://download.csdn.net/download/FriendshipTang/88045378

Insira a descrição da imagem aqui

formação conduta

yolo detect train data=../datasets/Road_Sign_VOC_and_YOLO_datasets/road_sign.yaml model=yolov10n.yaml epochs=100 batch=4 imgsz=640 device=0
  • 1

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

fazer previsões

yolo predict model=runsdetecttrain4weightsbest.pt source=E:/mytest/datasets/Road_Sign_VOC_and_YOLO_datasets/testset/images
  • 1

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

autenticando

yolo detect val data=../datasets/Road_Sign_VOC_and_YOLO_datasets/road_sign.yaml model=runsdetecttrain4weightsbest.pt batch=4 imgsz=640 device=0
  • 1

Insira a descrição da imagem aqui

referências

[1] Endereço do código-fonte YOLOv10:https://github.com/THU-MIG/yolov10.git
[2] Endereço de papel YOLOv10:https://arxiv.org/abs/2405.14458