YOLO Vision 2026:

Python-Nutzung#

Willkommen zur Dokumentation zur Ultralytics YOLO Python-Nutzung! Dieser Leitfaden soll dir dabei helfen, Ultralytics YOLO nahtlos in deine Python-Projekte für Objekterkennung, Instanzsegmentierung, semantische Segmentierung, Tiefenschätzung und Klassifizierung zu integrieren. Hier erfährst du, wie du vortrainierte Modelle lädst und verwendest, neue Modelle trainierst und Vorhersagen an Bildern durchführst. Die benutzerfreundliche Python-Schnittstelle ist eine wertvolle Ressource für alle, die YOLO in ihre Python-Projekte einbinden möchten, und ermöglicht dir die schnelle Implementierung fortschrittlicher Objekterkennungsfunktionen. Fangen wir an!



Watch: Mastering Ultralytics YOLO: Python

Benutzer können beispielsweise mit nur wenigen Zeilen Code ein Modell laden, es trainieren, seine Leistung anhand eines Validierungssatzes bewerten und es sogar in das ONNX-Format exportieren.

Python
from ultralytics import YOLO

# Create a new YOLO model from scratch
model = YOLO("yolo26n.yaml")

# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo26n.pt")

# Train the model using the 'coco8.yaml' dataset for 3 epochs
results = model.train(data="coco8.yaml", epochs=3)

# Evaluate the model's performance on the validation set
results = model.val()

# Perform object detection on an image using the model
results = model("https://ultralytics.com/images/bus.jpg")

# Export the model to ONNX format
success = model.export(format="onnx")

Trainieren#

Train-Modus wird verwendet, um ein YOLO-Modell anhand eines benutzerdefinierten Datensatzes zu trainieren. In diesem Modus wird das Modell mit dem angegebenen Datensatz und Hyperparametern trainiert. Der Trainingsprozess umfasst die Optimierung der Modellparameter, damit es die Klassen und Positionen von Objekten in einem Bild präzise vorhersagen kann.

Trainieren
from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # pass any model type
results = model.train(epochs=5)

Trainingsbeispiele

Validieren#

Val-Modus wird verwendet, um ein YOLO-Modell nach dem Training zu validieren. In diesem Modus wird das Modell an einem Validierungssatz bewertet, um seine Genauigkeit und Verallgemeinerungsleistung zu messen. Dieser Modus kann verwendet werden, um die Hyperparameter des Modell anzupassen und seine Leistung zu verbessern.

Validieren
from ultralytics import YOLO

# Load a YOLO model
model = YOLO("yolo26n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=5)

# Validate on training data
model.val()

Validierungsbeispiele

Vorhersagen#

Predict-Modus wird verwendet, um Vorhersagen mit einem trainierten YOLO-Modell an neuen Bildern oder Videos durchzuführen. In diesem Modus wird das Modell aus einer Checkpoint-Datei geladen, und der Benutzer kann Bilder oder Videos bereitstellen, um Inferenz auszuführen. Das Modell sagt die Klassen und Positionen von Objekten in den Eingabebildern oder -videos voraus.

Vorhersagen
import cv2
from PIL import Image

from ultralytics import YOLO

model = YOLO("model.pt")
# accepts all formats - image/dir/Path/URL/video/PIL/ndarray. 0 for webcam
results = model.predict(source="0")
results = model.predict(source="folder", show=True)  # Display preds. Accepts all YOLO predict arguments

# from PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True)  # save plotted images

# from ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True)  # save predictions as labels

# from list of PIL/ndarray
results = model.predict(source=[im1, im2])

Vorhersagebeispiele

Exportieren#

Export-Modus wird verwendet, um ein YOLO-Modell in ein Format zu exportieren, das für die Bereitstellung verwendet werden kann. In diesem Modus wird das Modell in ein Format konvertiert, das von anderen Softwareanwendungen oder Hardwaregeräten verwendet werden kann. Dieser Modus ist nützlich, wenn das Modell in Produktionsumgebungen bereitgestellt wird.

Exportieren

Exportiere ein offizielles YOLO-Modell nach ONNX mit dynamischer Batch-Größe und Bildgröße.

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="onnx", dynamic=True)

Exportbeispiele

Track#

Track-Modus wird verwendet, um Objekte in Echtzeit mit einem YOLO-Modell zu verfolgen. In diesem Modus wird das Modell aus einer Checkpoint-Datei geladen und der Benutzer kann einen Live-Videostream bereitstellen, um eine Echtzeit-Objektverfolgung durchzuführen. Dieser Modus ist nützlich für Anwendungen wie Überwachungssysteme oder selbstfahrende Autos.

Track
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load an official detection model
model = YOLO("yolo26n-seg.pt")  # load an official segmentation model
model = YOLO("path/to/best.pt")  # load a custom model

# Track with the model
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True)
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml")

Tracking-Beispiele

Benchmark#

Benchmark-Modus wird verwendet, um Geschwindigkeit und Genauigkeit verschiedener Exportformate für YOLO zu profilen. Die Benchmarks liefern Informationen zur Größe des exportierten Formats, seinen mAP50-95-Metriken (für Objekterkennung und Segmentierung) oder accuracy_top1-Metriken (für Klassifizierung) und zur Inferenzzeit in Millisekunden pro Bild über verschiedene Exportformate wie ONNX, OpenVINO, TensorRT und andere hinweg. Diese Informationen können Benutzern helfen, das optimale Exportformat für ihren spezifischen Anwendungsfall basierend auf ihren Anforderungen an Geschwindigkeit und Genauigkeit auszuwählen.

Benchmark

Benchmarke ein offizielles YOLO-Modell über alle Exportformate hinweg.

from ultralytics.utils.benchmarks import benchmark

# Benchmark
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

Benchmark-Beispiele

Verwendung von Trainern#

Die Modellklasse YOLO dient als High-Level-Wrapper für Trainer-Klassen. Jede YOLO-Task hat ihren eigenen Trainer, der von BaseTrainer erbt. Diese Architektur ermöglicht größere Flexibilität und Anpassbarkeit in deinen Machine-Learning-Workflows.

Beispiel für einen Erkennungs-Trainer
from ultralytics.models.yolo.detect import DetectionPredictor, DetectionTrainer, DetectionValidator

# trainer
trainer = DetectionTrainer(overrides={})
trainer.train()
trained_model = trainer.best

# Validator
val = DetectionValidator(args=...)
val(model=trained_model)

# predictor
pred = DetectionPredictor(overrides={})
pred(source=SOURCE, model=trained_model)

# resume from last weight
overrides["resume"] = trainer.last
trainer = DetectionTrainer(overrides=overrides)

Du kannst Trainer ganz einfach anpassen, um benutzerdefinierte Tasks zu unterstützen oder F&E-Ideen zu erkunden. Das modulare Design von Ultralytics YOLO ermöglicht es dir, das Framework an deine spezifischen Bedürfnisse anzupassen, egal ob du an einer neuartigen Computer-Vision-Task arbeitest oder bestehende Modelle für eine bessere Leistung feinabstimmst.

Anpassungs-Tutorials

FAQ#

  • Die Integration von Ultralytics YOLO in deine Python-Projekte ist einfach. Du kannst ein vortrainiertes Modell laden oder ein neues Modell von Grund auf trainieren. So fängst du an:

    from ultralytics import YOLO
    
    # Load a pretrained YOLO model
    model = YOLO("yolo26n.pt")
    
    # Perform object detection on an image
    results = model("https://ultralytics.com/images/bus.jpg")
    
    # Visualize the results
    for result in results:
        result.show()

    Weitere detaillierte Beispiele findest du in unserem Abschnitt zum Predict-Modus.

  • Ultralytics YOLO bietet verschiedene Modi, um unterschiedliche Machine-Learning-Workflows zu unterstützen. Dazu gehören:

    • Train: Trainiere ein Modell anhand benutzerdefinierter Datensätze.
    • Val: Validiere die Modellleistung an einem Validierungssatz.
    • Predict: Führe Vorhersagen an neuen Bildern oder Videostreams aus.
    • Export: Exportiere Modelle in verschiedene Formate wie ONNX und TensorRT.
    • Track: Echtzeit-Objektverfolgung in Videostreams.
    • Benchmark: Benchmarke die Modellleistung über verschiedene Konfigurationen hinweg.

    Jeder Modus wurde entwickelt, um umfassende Funktionen für verschiedene Phasen der Modellentwicklung und -bereitstellung bereitzustellen.

  • Um ein benutzerdefiniertes YOLO-Modell zu trainieren, musst du deinen Datensatz und andere Hyperparameter angeben. Hier ist ein kurzes Beispiel:

    from ultralytics import YOLO
    
    # Load the YOLO model
    model = YOLO("yolo26n.yaml")
    
    # Train the model with custom dataset
    model.train(data="path/to/your/dataset.yaml", epochs=10)

    Weitere Details zum Training und Links zu Anwendungsbeispielen findest du auf unserer Seite zum Train-Modus.

  • Das Exportieren von YOLO-Modellen in einem für die Bereitstellung geeigneten Format ist mit der Funktion export unkompliziert. Du kannst ein Modell beispielsweise in das ONNX-Format exportieren:

    from ultralytics import YOLO
    
    # Load the YOLO model
    model = YOLO("yolo26n.pt")
    
    # Export the model to ONNX format
    model.export(format="onnx")

    Verschiedene Exportoptionen findest du in der Dokumentation zum Export-Modus.

  • Ja, das Validieren von YOLO-Modellen auf verschiedenen Datensätzen ist möglich. Nach dem Training kannst du den Validierungsmodus verwenden, um die Leistung zu bewerten:

    from ultralytics import YOLO
    
    # Load a YOLO model
    model = YOLO("yolo26n.yaml")
    
    # Train the model
    model.train(data="coco8.yaml", epochs=5)
    
    # Validate the model on a different dataset
    model.val(data="path/to/separate/data.yaml")

    Besuche die Seite zum Val-Modus für detaillierte Beispiele und Anwendungsbeispiele.

Kommentare