Technologieaustausch

YOLOv10 trainiert seinen eigenen Datensatz (Verkehrszeichenerkennung)

2024-07-12

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

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

Vorwort

Verwandte Einführung

  • YOLOv10 wurde von Forschern der Tsinghua-Universität auf der Grundlage des Ultralytics-Python-Pakets erstellt. Es führte eine neue Methode zur Echtzeit-Zielerkennung ein und behob die Mängel der Nachbearbeitung und Modellarchitektur in früheren YOLO-Versionen. Durch die Eliminierung der nicht-maximalen Unterdrückung (NMS) und die Optimierung verschiedener Modellkomponenten erreicht YOLOv10 eine Leistung auf dem neuesten Stand der Technik und reduziert gleichzeitig den Rechenaufwand erheblich. Umfangreiche Experimente belegen den überlegenen Kompromiss zwischen Genauigkeit und Latenz auf mehreren Modellmaßstäben.
  • [1] Adresse des YOLOv10-Quellcodes:https://github.com/THU-MIG/yolov10.git
  • [2] YOLOv10-Papieradresse:https://arxiv.org/abs/2405.14458
    Fügen Sie hier eine Bildbeschreibung ein
  • Überblick
    Der Zweck der Echtzeit-Objekterkennung besteht darin, die Kategorie und Position von Objekten in Bildern mit geringer Latenz genau vorherzusagen. Die YOLO-Serie stand aufgrund ihres Gleichgewichts zwischen Leistung und Effizienz im Vordergrund dieser Forschung. Allerdings behindern die Abhängigkeit von NMS und architektonische Ineffizienzen eine optimale Leistung. YOLOv10 geht diese Probleme an, indem es konsistentes Dual-Tasking für nms-freies Training und eine allgemeine, auf Effizienz und Genauigkeit ausgerichtete Modellentwurfsstrategie einführt.
  • Die Architektur
    Die Architektur von YOLOv10 baut auf den Stärken früherer YOLO-Modelle auf und führt gleichzeitig mehrere wichtige Innovationen ein. Die Modellarchitektur besteht aus folgenden Komponenten:
    • Backbone: Das Backbone in YOLOv10 ist für die Merkmalsextraktion verantwortlich und verwendet eine erweiterte Version von CSPNet (Cross Stage Partial Network), um den Gradientenfluss zu verbessern und die Rechenredundanz zu reduzieren.
    • Hals: Der Hals soll Merkmale verschiedener Schuppen vereinen und an den Kopf übertragen. Es enthält eine PAN-Schicht (Path Aggregation Network) für eine effektive Multiskalen-Feature-Fusion.
    • One-to-Many-Kopf: Erzeugt während des Trainingsprozesses mehrere Vorhersagen für jedes Objekt, liefert umfassende Überwachungssignale und verbessert die Lerngenauigkeit.
    • One-to-One Head: Erzeugt während der Inferenz eine beste Vorhersage für jedes Objekt, um NMS überflüssig zu machen, wodurch die Latenz reduziert und die Effizienz gesteigert wird.
  • Hauptmerkmale
    • NMS-freies Training: Nutzen Sie eine konsistente doppelte Zuweisung, um NMS überflüssig zu machen und die Inferenzlatenz zu reduzieren.
    • Ganzheitliches Modelldesign: Jede Komponente ist im Hinblick auf Effizienz und Genauigkeit vollständig optimiert, einschließlich eines leichten Klassifizierungskopfes, einer räumlichen Kanalentkopplung und eines Rangführungsblockdesigns.
    • Erweiterte Modellfunktionen: Kombiniert Faltung mit großem Kernel und Module mit teilweiser Selbstaufmerksamkeit, um die Leistung ohne nennenswerten Rechenaufwand zu verbessern.
  • Modellvarianten: YOLOv10 ist in verschiedenen Modellen erhältlich, um unterschiedlichen Anwendungsanforderungen gerecht zu werden:
    • YOLOv10-N: Nano-Version für extrem ressourcenbeschränkte Umgebungen.
    • YOLOv10-S: Kleine Version vereint Geschwindigkeit und Genauigkeit.
    • YOLOv10-M: Mittlere Version für den allgemeinen Gebrauch (geeignet für viele verschiedene Zwecke oder Verwendungszwecke).
    • YOLOv10-B: Ausgewogene Version mit größerer Breite für höhere Genauigkeit.
    • YOLOv10-L: Große Version für höhere Genauigkeit auf Kosten erhöhter Rechenressourcen.
    • YOLOv10-X: Extragroße Version für maximale Genauigkeit und Leistung.
      Fügen Sie hier eine Bildbeschreibung ein

Voraussetzungen

Laborumgebung

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

Installationsumgebung

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

Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein

Projektadresse

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

Windows

bitte kommhttps://github.com/THU-MIG/yolov10.gitLaden Sie das Zip-Paket mit dem Quellcode von der Website herunter.

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

Verwenden Sie YOLOv10, um Ihren eigenen Datensatz für die Verkehrszeichenerkennung zu trainieren

Daten vorbereiten

Der in diesem Artikel verwendete Datensatz ist kostenlosDownload-Link:https://download.csdn.net/download/FriendshipTang/88045378

Fügen Sie hier eine Bildbeschreibung ein

Schulung durchführen

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

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

Voraussagen machen

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

Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

Authentifizierung

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

Fügen Sie hier eine Bildbeschreibung ein

Verweise

[1] Adresse des YOLOv10-Quellcodes:https://github.com/THU-MIG/yolov10.git
[2] YOLOv10-Papieradresse:https://arxiv.org/abs/2405.14458