Condivisione della tecnologia

YOLOv10 addestra il proprio set di dati (rilevamento dei segnali stradali)

2024-07-12

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

Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine

Prefazione

Introduzione correlata

  • YOLOv10 è stato creato dai ricercatori dell'Università di Tsinghua sulla base del pacchetto Ultralytics Python. Ha introdotto un nuovo metodo di rilevamento del bersaglio in tempo reale e ha risolto le carenze della post-elaborazione e dell'architettura del modello nelle precedenti versioni di YOLO. Eliminando la soppressione non massima (NMS) e ottimizzando vari componenti del modello, YOLOv10 raggiunge prestazioni all'avanguardia riducendo significativamente il sovraccarico computazionale. Esperimenti approfonditi dimostrano la sua precisione superiore e il compromesso di latenza su più scale di modello.
  • [1] Indirizzo del codice sorgente YOLOv10:https://github.com/THU-MIG/yolov10.git
  • [2] Indirizzo cartaceo YOLOv10:https://arxiv.org/abs/2405.14458
    Inserisci qui la descrizione dell'immagine
  • Panoramica
    Lo scopo del rilevamento degli oggetti in tempo reale è prevedere con precisione la categoria e la posizione degli oggetti nelle immagini con bassa latenza. La serie YOLO è stata in prima linea in questa ricerca grazie al suo equilibrio tra prestazioni ed efficienza. Tuttavia, la dipendenza dagli NMS e le inefficienze architetturali ostacolano le prestazioni ottimali. YOLOv10 affronta questi problemi introducendo un dual-tasking coerente per la formazione senza nms e una strategia di progettazione del modello orientata all'efficienza e alla precisione complessiva.
  • Architettura
    L'architettura di YOLOv10 si basa sui punti di forza dei precedenti modelli YOLO introducendo numerose innovazioni chiave. L’architettura del modello è composta dai seguenti componenti:
    • Backbone: il backbone in YOLOv10 è responsabile dell'estrazione delle funzionalità, utilizzando una versione migliorata di CSPNet (Cross Stage Partial Network) per migliorare il flusso del gradiente e ridurre la ridondanza computazionale.
    • Collo: Il collo è progettato per riunire caratteristiche di scale diverse e trasmetterle alla testa. Include un livello PAN (Path Aggregation Network) per un'efficace fusione di funzionalità multiscala.
    • Testa uno-a-molti: genera più previsioni per ciascun oggetto durante il processo di addestramento, fornendo ricchi segnali di supervisione e migliorando la precisione dell'apprendimento.
    • Testa uno a uno: genera la migliore previsione per ciascun oggetto durante l'inferenza per eliminare la necessità di NMS, riducendo così la latenza e aumentando l'efficienza.
  • Caratteristiche principali
    • Formazione senza NMS: sfrutta la doppia allocazione coerente per eliminare la necessità di NMS e ridurre la latenza di inferenza.
    • Progettazione del modello olistico: ogni componente è completamente ottimizzato dal punto di vista dell'efficienza e della precisione, inclusa la testa di classificazione leggera, il downsampling disaccoppiato del canale spaziale e il design del blocco guida di rango.
    • Funzionalità del modello migliorate: combina moduli di convoluzione con core di grandi dimensioni e di autoattenzione parziale per migliorare le prestazioni senza costi computazionali significativi.
  • Varianti del modello: YOLOv10 è disponibile in una varietà di modelli per soddisfare le diverse esigenze applicative:
    • YOLOv10-N: versione Nano per ambienti estremamente limitati in termini di risorse.
    • YOLOv10-S: la versione piccola bilancia velocità e precisione.
    • YOLOv10-M: versione media per uso generale (adatta a molti scopi o usi diversi).
    • YOLOv10-B: versione bilanciata con larghezza aumentata per una maggiore precisione.
    • YOLOv10-L: versione più grande per una maggiore precisione a costo di maggiori risorse di calcolo.
    • YOLOv10-X: versione extra-large per la massima precisione e prestazioni.
      Inserisci qui la descrizione dell'immagine

Prerequisiti

ambiente di laboratorio

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 di installazione

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

Inserisci qui la descrizione dell'immagine

Inserisci qui la descrizione dell'immagine

indirizzo del progetto

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

finestre

per favore vienihttps://github.com/THU-MIG/yolov10.gitScarica il pacchetto zip del codice sorgente dal sito web.

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

Utilizza YOLOv10 per addestrare il tuo set di dati per il rilevamento dei segnali stradali

Preparare i dati

Il set di dati utilizzato in questo articolo è gratuitoLink per scaricare:https://download.csdn.net/download/FriendshipTang/88045378

Inserisci qui la descrizione dell'immagine

condurre la formazione

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

Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine

fare previsioni

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

Inserisci qui la descrizione dell'immagine

Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine

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

Inserisci qui la descrizione dell'immagine

Riferimenti

[1] Indirizzo del codice sorgente YOLOv10:https://github.com/THU-MIG/yolov10.git
[2] Indirizzo cartaceo YOLOv10:https://arxiv.org/abs/2405.14458