中文 | 한국어 | 日本語 | Russisch | Deutsch | Französisch | Spanisch | Portugiesisch | Türkei | Tiếng Việt | العربية
YOLOv5 ? ist die beliebteste Vision-KI der Welt und repräsentiert die Open-Source-Forschung von Ultralytics zu zukünftigen Vision-KI-Methoden, die Erkenntnisse und Best Practices aus Tausenden von Stunden Forschung und Entwicklung einbezieht.
Wir hoffen, dass die Ressourcen hier Ihnen dabei helfen, das Beste aus YOLOv5 herauszuholen. Bitte durchsuchen Sie die YOLOv5-Dokumente nach Details, melden Sie ein Problem auf GitHub für Support und treten Sie unserer Discord-Community für Fragen und Diskussionen bei!
Um eine Unternehmenslizenz anzufordern, füllen Sie bitte das Formular bei Ultralytics Licensing aus.
YOLO11 ? NEU
Wir freuen uns, die Einführung von Ultralytics YOLO11 ? vorzustellen, der neuesten Weiterentwicklung unserer hochmodernen (SOTA) Vision-Modelle! YOLO11 ist jetzt auf GitHub verfügbar und baut auf unserer Tradition von Geschwindigkeit, Präzision und Benutzerfreundlichkeit auf. Ganz gleich, ob Sie sich mit Objekterkennung, Bildsegmentierung oder Bildklassifizierung befassen, YOLO11 bietet die Leistung und Vielseitigkeit, die Sie benötigen, um in verschiedenen Anwendungen zu glänzen.
Starten Sie noch heute und schöpfen Sie das volle Potenzial von YOLO11 aus! Umfassende Leitfäden und Ressourcen finden Sie in den Ultralytics-Dokumenten:
Pip Install Ultralytics
Dokumentation
Eine vollständige Dokumentation zu Schulung, Tests und Bereitstellung finden Sie in den YOLOv5-Dokumenten. Nachfolgend finden Sie Schnellstartbeispiele.
Klonen Sie das Repo und installieren Sie „requirements.txt“ in einer Python>=3.8.0- Umgebung, einschließlich PyTorch>=1.8 .
Git-Klon https://github.com/ultralytics/yolov5 # clonecd yolov5 pip install -r Anforderungen.txt # installieren
YOLOv5 PyTorch Hub-Inferenz. Modelle werden automatisch von der neuesten YOLOv5-Version heruntergeladen.
import Torch# Modelmodel = Torch.hub.load("ultralytics/yolov5", "yolov5s") # or yolov5n - yolov5x6, custom# Imagesimg = "https://ultralytics.com/images/zidane.jpg" # or file, Pfad, PIL, OpenCV, Numpy, Liste# Inferenceresults = model(img)# Resultsresults.print() # oder .show(), .save(), .crop(), .pandas() usw.
detect.py
führt Inferenzen auf einer Vielzahl von Quellen durch, lädt Modelle automatisch aus der neuesten YOLOv5-Version herunter und speichert die Ergebnisse in runs/detect
.
python discover.py --weights yolov5s.pt --source 0 # Webcam img.jpg # Bild vid.mp4 # Video Bildschirm #Screenshot path/ # Verzeichnis list.txt # Liste der Bilder list.streams # Liste der Streams 'path/*.jpg' # glob 'https://youtu.be/LNwODJXcvt4' # YouTube 'rtsp://example.com/media.mp4' # RTSP-, RTMP-, HTTP-Stream
Die folgenden Befehle reproduzieren YOLOv5 COCO-Ergebnisse. Modelle und Datensätze werden automatisch aus der neuesten YOLOv5-Version heruntergeladen. Die Trainingszeiten für YOLOv5n/s/m/l/x betragen 1/2/4/6/8 Tage auf einer V100-GPU (Multi-GPU-Zeiten schneller). Verwenden Sie die größtmögliche --batch-size
oder übergeben Sie --batch-size -1
für YOLOv5 AutoBatch. Losgrößen werden für V100-16 GB angezeigt.
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5n.yaml --batch-size 128 yolov5s 64 yolov5m 40 yolov5l 24 yolov5x 16
Benutzerdefinierte Daten trainieren? EMPFOHLEN
Tipps für beste Trainingsergebnisse ☘️
Multi-GPU-Training
PyTorch-Hub? NEU
TFLite-, ONNX-, CoreML-, TensorRT-Export?
Bereitstellung der NVIDIA Jetson-Plattform? NEU
Testzeiterweiterung (TTA)
Modell-Ensembling
Modellschnitt/Sparsamkeit
Hyperparameter-Evolution
Übertragen Sie das Lernen mit eingefrorenen Schichten
Architekturzusammenfassung? NEU
Ultralytics HUB zum Trainieren und Bereitstellen von YOLO? EMPFOHLEN
ClearML-Protokollierung
YOLOv5 mit Deepsparse von Neural Magic
Kometenprotokollierung? NEU
Integrationen
Unsere wichtigen Integrationen mit führenden KI-Plattformen erweitern die Funktionalität der Angebote von Ultralytics und verbessern Aufgaben wie Datensatzkennzeichnung, Schulung, Visualisierung und Modellverwaltung. Entdecken Sie, wie Ultralytics in Zusammenarbeit mit W&B, Comet, Roboflow und OpenVINO Ihren KI-Workflow optimieren kann.
Ultralytics HUB ? | W&B | Komet ⭐ NEU | Neuronale Magie |
---|---|---|---|
Optimieren Sie YOLO-Workflows: Beschriften, trainieren und bereitstellen Sie mühelos mit Ultralytics HUB. Probieren Sie es jetzt aus! | Verfolgen Sie Experimente, Hyperparameter und Ergebnisse mit Weights & Biases | Mit Comet, das für immer kostenlos ist, können Sie YOLOv5-Modelle speichern, das Training fortsetzen und Vorhersagen interaktiv visualisieren und debuggen | Führen Sie YOLO11-Inferenzen mit Neural Magic DeepSparse bis zu 6x schneller aus |
Ultralytics HUB
Erleben Sie nahtlose KI mit Ultralytics HUB ⭐, der Komplettlösung für Datenvisualisierung, YOLOv5 und YOLOv8 ? Modellschulung und -bereitstellung ohne Programmieraufwand. Verwandeln Sie Bilder in umsetzbare Erkenntnisse und erwecken Sie Ihre KI-Visionen mit unserer hochmodernen Plattform und der benutzerfreundlichen Ultralytics-App ganz einfach zum Leben. Beginnen Sie Ihre Reise jetzt kostenlos !
Warum YOLOv5
YOLOv5 wurde so konzipiert, dass der Einstieg sehr einfach und das Erlernen einfach ist. Wir legen Wert auf reale Ergebnisse.
COCO AP val bezeichnet die mAP@0,5:0,95-Metrik, gemessen am 5000 Bilder umfassenden COCO val2017-Datensatz über verschiedene Inferenzgrößen von 256 bis 1536.
Die GPU-Geschwindigkeit misst die durchschnittliche Inferenzzeit pro Bild im COCO val2017-Datensatz mithilfe einer AWS p3.2xlarge V100-Instanz bei Stapelgröße 32.
EfficientDet- Daten von Google/Automl bei Batchgröße 8.
Reproduzieren durch python val.py --task study --data coco.yaml --iou 0.7 --weights yolov5n6.pt yolov5s6.pt yolov5m6.pt yolov5l6.pt yolov5x6.pt
Modell | Größe (Pixel) | Kartenwert 50-95 | Kartenwert 50 | Geschwindigkeit CPU b1 (MS) | Geschwindigkeit V100 b1 (MS) | Geschwindigkeit V100 b32 (MS) | Parameter (M) | FLOPs @640 (B) |
---|---|---|---|---|---|---|---|---|
YOLOv5n | 640 | 28.0 | 45,7 | 45 | 6.3 | 0,6 | 1.9 | 4.5 |
YOLOv5s | 640 | 37.4 | 56,8 | 98 | 6.4 | 0,9 | 7.2 | 16.5 |
YOLOv5m | 640 | 45.4 | 64.1 | 224 | 8.2 | 1.7 | 21.2 | 49,0 |
YOLOv5l | 640 | 49,0 | 67,3 | 430 | 10.1 | 2.7 | 46,5 | 109.1 |
YOLOv5x | 640 | 50,7 | 68,9 | 766 | 12.1 | 4.8 | 86,7 | 205.7 |
YOLOv5n6 | 1280 | 36,0 | 54.4 | 153 | 8.1 | 2.1 | 3.2 | 4.6 |
YOLOv5s6 | 1280 | 44,8 | 63,7 | 385 | 8.2 | 3.6 | 12.6 | 16.8 |
YOLOv5m6 | 1280 | 51.3 | 69,3 | 887 | 11.1 | 6.8 | 35.7 | 50,0 |
YOLOv5l6 | 1280 | 53,7 | 71.3 | 1784 | 15.8 | 10.5 | 76,8 | 111.4 |
YOLOv5x6 + TTA | 1280 1536 | 55,0 55,8 | 72,7 72,7 | 3136 - | 26.2 - | 19.4 - | 140,7 - | 209.8 - |
Alle Prüfpunkte sind mit Standardeinstellungen auf 300 Epochen trainiert. Nano- und Small-Modelle verwenden hyp.scratch-low.yaml hyps, alle anderen verwenden hyp.scratch-high.yaml.
mAP - Werte gelten für Einzelmodell-Einzelskalen im COCO-Datensatz val2017.
Reproduzieren Sie mit python val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65
Geschwindigkeit gemittelt über COCO-Value-Bilder unter Verwendung einer AWS p3.2xlarge-Instanz. NMS-Zeiten (~1 ms/img) nicht enthalten.
Reproduzieren Sie mit python val.py --data coco.yaml --img 640 --task speed --batch 1
Die TTA- Testzeiterweiterung umfasst Reflexions- und Skalenerweiterungen.
Reproduzieren durch python val.py --data coco.yaml --img 1536 --iou 0.7 --augment
Segmentierung
Unsere neuen Instanzsegmentierungsmodelle der YOLOv5-Version v7.0 sind die schnellsten und genauesten der Welt und übertreffen alle aktuellen SOTA-Benchmarks. Wir haben dafür gesorgt, dass sie ganz einfach zu trainieren, zu validieren und bereitzustellen sind. Ausführliche Informationen finden Sie in unseren Versionshinweisen und in unserem YOLOv5 Segmentation Colab Notebook finden Sie Schnellstart-Tutorials.
Wir haben YOLOv5-Segmentierungsmodelle auf COCO für 300 Epochen bei Bildgröße 640 mit A100-GPUs trainiert. Wir haben alle Modelle für CPU-Geschwindigkeitstests nach ONNX FP32 und für GPU-Geschwindigkeitstests nach TensorRT FP16 exportiert. Zur einfachen Reproduzierbarkeit haben wir alle Geschwindigkeitstests auf Google Colab Pro-Notebooks durchgeführt.
Modell | Größe (Pixel) | Kartenbox 50-95 | Kartenmaske 50-95 | Zugzeit 300 Epochen A100 (Stunden) | Geschwindigkeit ONNX-CPU (MS) | Geschwindigkeit TRT A100 (MS) | Parameter (M) | FLOPs @640 (B) |
---|---|---|---|---|---|---|---|---|
YOLOv5n-seg | 640 | 27.6 | 23.4 | 80:17 | 62,7 | 1.2 | 2,0 | 7.1 |
YOLOv5s-seg | 640 | 37.6 | 31.7 | 88:16 | 173,3 | 1.4 | 7.6 | 26.4 |
YOLOv5m-seg | 640 | 45,0 | 37.1 | 108:36 | 427,0 | 2.2 | 22.0 | 70,8 |
YOLOv5l-seg | 640 | 49,0 | 39.9 | 66:43 (2x) | 857,4 | 2.9 | 47.9 | 147,7 |
YOLOv5x-seg | 640 | 50,7 | 41.4 | 62:56 (3x) | 1579.2 | 4.5 | 88,8 | 265,7 |
Alle Prüfpunkte werden mit dem SGD-Optimierer mit lr0=0.01
weight_decay=5e-5
bei Bildgröße 640 und allen Standardeinstellungen auf 300 Epochen trainiert.
Läufe werden unter https://wandb.ai/glenn-jocher/YOLOv5_v70_official protokolliert
Die Genauigkeitswerte gelten für Einzelmodelle und Einzelskalen im COCO-Datensatz.
Reproduzieren durch python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
Geschwindigkeit gemittelt über 100 Inferenzbilder mit einer Colab Pro A100 High-RAM-Instanz. Die Werte geben nur die Inferenzgeschwindigkeit an (NMS fügt etwa 1 ms pro Bild hinzu).
Reproduzieren durch python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
Export nach ONNX bei FP32 und TensorRT bei FP16 erfolgt mit export.py
.
Reproduzieren Sie mit python export.py --weights yolov5s-seg.pt --include engine --device 0 --half
Das YOLOv5-Segmentierungstraining unterstützt das automatische Herunterladen des COCO128-seg-Segmentierungsdatensatzes mit dem Argument --data coco128-seg.yaml
und den manuellen Download des COCO-segments-Datensatzes mit bash data/scripts/get_coco.sh --train --val --segments
und dann python train.py --data coco.yaml
.
# Single-GPUpython segment/train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640# Multi-GPU DDPpython -m Torch.distributed.run --nproc_per_node 4 --master_port 1 Segment /train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640 --device 0,1,2,3
Validieren Sie die YOLOv5s-seg-Maskenkarte im COCO-Datensatz:
bash data/scripts/get_coco.sh --val --segments # COCO val segmentes split herunterladen (780 MB, 5000 Bilder)python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # validieren
Verwenden Sie vorab trainiertes YOLOv5m-seg.pt, um bus.jpg vorherzusagen:
python segment/predict.py --weights yolov5m-seg.pt --source data/images/bus.jpg
model = Torch.hub.load( "ultralytics/yolov5", "custom", "yolov5m-seg.pt") # Laden von PyTorch Hub (WARNUNG: Inferenz wird noch nicht unterstützt)
Exportieren Sie das YOLOv5s-seg-Modell nach ONNX und TensorRT:
python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0
Einstufung
YOLOv5 Release v6.2 bietet Unterstützung für das Training, die Validierung und die Bereitstellung von Klassifizierungsmodellen! Ausführliche Informationen finden Sie in unseren Versionshinweisen und besuchen Sie unser YOLOv5 Classification Colab Notebook für Schnellstart-Tutorials.
Wir haben YOLOv5-cls-Klassifizierungsmodelle auf ImageNet für 90 Epochen mit einer 4xA100-Instanz trainiert, und wir haben ResNet- und EfficientNet-Modelle gleichzeitig mit denselben Standardtrainingseinstellungen zum Vergleich trainiert. Wir haben alle Modelle für CPU-Geschwindigkeitstests nach ONNX FP32 und für GPU-Geschwindigkeitstests nach TensorRT FP16 exportiert. Zur einfachen Reproduzierbarkeit haben wir alle Geschwindigkeitstests mit Google Colab Pro durchgeführt.
Modell | Größe (Pixel) | gem top1 | gem top5 | Ausbildung 90 Epochen 4xA100 (Stunden) | Geschwindigkeit ONNX-CPU (MS) | Geschwindigkeit TensorRT V100 (MS) | Parameter (M) | FLOPs @224 (B) |
---|---|---|---|---|---|---|---|---|
YOLOv5n-cls | 224 | 64,6 | 85,4 | 7:59 | 3.3 | 0,5 | 2.5 | 0,5 |
YOLOv5s-cls | 224 | 71,5 | 90,2 | 8:09 | 6.6 | 0,6 | 5.4 | 1.4 |
YOLOv5m-cls | 224 | 75,9 | 92,9 | 10:06 | 15.5 | 0,9 | 12.9 | 3.9 |
YOLOv5l-cls | 224 | 78,0 | 94,0 | 11:56 | 26.9 | 1.4 | 26.5 | 8.5 |
YOLOv5x-cls | 224 | 79,0 | 94,4 | 15:04 | 54.3 | 1.8 | 48.1 | 15.9 |
ResNet18 | 224 | 70.3 | 89,5 | 6:47 | 11.2 | 0,5 | 11.7 | 3.7 |
ResNet34 | 224 | 73,9 | 91,8 | 8:33 | 20.6 | 0,9 | 21.8 | 7.4 |
ResNet50 | 224 | 76,8 | 93,4 | 11:10 | 23.4 | 1,0 | 25.6 | 8.5 |
ResNet101 | 224 | 78,5 | 94,3 | 17:10 | 42.1 | 1.9 | 44,5 | 15.9 |
EfficientNet_b0 | 224 | 75.1 | 92,4 | 13:03 | 12.5 | 1.3 | 5.3 | 1,0 |
EfficientNet_b1 | 224 | 76,4 | 93,2 | 17:04 | 14.9 | 1.6 | 7.8 | 1.5 |
EfficientNet_b2 | 224 | 76,6 | 93,4 | 17:10 | 15.9 | 1.6 | 9.1 | 1.7 |
EfficientNet_b3 | 224 | 77,7 | 94,0 | 19:19 | 18.9 | 1.9 | 12.2 | 2.4 |
Alle Prüfpunkte werden mit dem SGD-Optimierer mit lr0=0.001
und weight_decay=5e-5
bei Bildgröße 224 und allen Standardeinstellungen auf 90 Epochen trainiert.
Läufe werden unter https://wandb.ai/glenn-jocher/YOLOv5-Classifier-v6-2 protokolliert
Die Genauigkeitswerte gelten für Einzelmodelle und Einzelskalen im ImageNet-1k-Datensatz.
Reproduzieren Sie mit python classify/val.py --data ../datasets/imagenet --img 224
Geschwindigkeit gemittelt über 100 Inferenzbilder mit einer Google Colab Pro V100 High-RAM-Instanz.
Reproduzieren Sie mit python classify/val.py --data ../datasets/imagenet --img 224 --batch 1
Export nach ONNX bei FP32 und TensorRT bei FP16 erfolgt mit export.py
.
Reproduzieren Sie mit python export.py --weights yolov5s-cls.pt --include engine onnx --imgsz 224
Das YOLOv5-Klassifizierungstraining unterstützt den automatischen Download von MNIST-, Fashion-MNIST-, CIFAR10-, CIFAR100-, Imagenette-, Imagewoof- und ImageNet-Datensätzen mit dem Argument --data
. Um beispielsweise mit dem Training zu MNIST zu beginnen, verwenden Sie --data mnist
.
# Single-GPUpython classify/train.py --model yolov5s-cls.pt --data cifar100 --epochs 5 --img 224 --batch 128# Multi-GPU DDPpython -m Torch.distributed.run --nproc_per_node 4 - -master_port 1 classify/train.py --model yolov5s-cls.pt --data imagenet --epochs 5 --img 224 --device 0,1,2,3
Validieren Sie die YOLOv5m-cls-Genauigkeit im ImageNet-1k-Datensatz:
bash data/scripts/get_imagenet.sh --val # ImageNet val split herunterladen (6.3G, 50000 Bilder)python classify/val.py --weights yolov5m-cls.pt --data ../datasets/imagenet --img 224 # validieren
Verwenden Sie vorab trainiertes YOLOv5s-cls.pt, um bus.jpg vorherzusagen:
python classify/predict.py --weights yolov5s-cls.pt --source data/images/bus.jpg
model = Torch.hub.load("ultralytics/yolov5", "custom", "yolov5s-cls.pt") # Laden von PyTorch Hub
Exportieren Sie eine Gruppe trainierter YOLOv5s-cls-, ResNet- und EfficientNet-Modelle nach ONNX und TensorRT:
python export.py --weights yolov5s-cls.pt resnet50.ptefficientnet_b0.pt --include onnx engine --img 224
Umgebungen
Mit unseren verifizierten Umgebungen können Sie in Sekundenschnelle loslegen. Klicken Sie auf die einzelnen Symbole unten, um Einzelheiten zu erfahren.
Beitragen
Wir freuen uns über Ihren Beitrag! Wir möchten den Beitrag zu YOLOv5 so einfach und transparent wie möglich gestalten. Bitte sehen Sie sich für den Einstieg unseren Beitragsleitfaden an und füllen Sie die YOLOv5-Umfrage aus, um uns Feedback zu Ihren Erfahrungen zu senden. Vielen Dank an alle unsere Mitwirkenden!
Lizenz
Ultralytics bietet zwei Lizenzierungsoptionen für unterschiedliche Anwendungsfälle:
AGPL-3.0-Lizenz : Diese vom OSI genehmigte Open-Source-Lizenz ist ideal für Studenten und Enthusiasten und fördert die offene Zusammenarbeit und den Wissensaustausch. Weitere Einzelheiten finden Sie in der LICENSE-Datei.
Unternehmenslizenz : Diese für die kommerzielle Nutzung konzipierte Lizenz ermöglicht die nahtlose Integration der Ultralytics-Software und KI-Modelle in kommerzielle Waren und Dienstleistungen unter Umgehung der Open-Source-Anforderungen von AGPL-3.0. Wenn Ihr Szenario die Einbettung unserer Lösungen in ein kommerzielles Angebot beinhaltet, wenden Sie sich an Ultralytics Licensing.
Kontakt
Für YOLOv5-Fehlerberichte und Funktionsanfragen besuchen Sie bitte GitHub Issues und treten Sie unserer Discord-Community für Fragen und Diskussionen bei!