Zum Inhalt springen

Python Verwendung

Willkommen bei der YOLO11 Python Nutzungsdokumentation! Diese Anleitung soll Ihnen helfen, YOLO11 nahtlos in Ihre Python Projekte zur Objekterkennung, Segmentierung und Klassifizierung zu integrieren. Hier erfahren Sie, wie Sie bereits trainierte Modelle laden und verwenden, neue Modelle trainieren und Vorhersagen für Bilder treffen können. Die einfach zu bedienende Schnittstelle Python ist eine wertvolle Ressource für alle, die YOLO11 in ihre Python Projekte einbinden möchten, um schnell fortgeschrittene Objekterkennungsfunktionen zu implementieren. Fangen wir an!



Beobachten: Mastering Ultralytics YOLO11 : Python

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

Python

from ultralytics import YOLO

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

# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo11n.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")

Zug

Der Modus Train wird für das Training eines YOLO11 Modells auf einem benutzerdefinierten Datensatz verwendet. In diesem Modus wird das Modell mit dem angegebenen Datensatz und den Hyperparametern trainiert. Beim Training werden die Parameter des Modells so optimiert, dass es die Klassen und Positionen der Objekte in einem Bild genau vorhersagen kann.

Zug

from ultralytics import YOLO

model = YOLO("yolo11n.pt")  # pass any model type
results = model.train(epochs=5)
from ultralytics import YOLO

model = YOLO("yolo11n.yaml")
results = model.train(data="coco8.yaml", epochs=5)
model = YOLO("last.pt")
results = model.train(resume=True)

Beispiele für Züge

Val

Der Val-Modus wird zur Validierung eines YOLO11 Modells verwendet, nachdem es trainiert wurde. In diesem Modus wird das Modell anhand eines Validierungssatzes bewertet, um seine Genauigkeit und Generalisierungsleistung zu messen. In diesem Modus können die Hyperparameter des Modells eingestellt werden, um seine Leistung zu verbessern.

Val

from ultralytics import YOLO

# Load a YOLO11 model
model = YOLO("yolo11n.yaml")

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

# Validate on training data
model.val()
from ultralytics import YOLO

# Load a YOLO11 model
model = YOLO("yolo11n.yaml")

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

# Validate on separate data
model.val(data="path/to/separate/data.yaml")

Val Beispiele

Vorhersage

Der Modus "Vorhersage" dient zur Erstellung von Vorhersagen anhand eines trainierten YOLO11 Modells für neue Bilder oder Videos. In diesem Modus wird das Modell aus einer Prüfpunktdatei geladen, und der Benutzer kann Bilder oder Videos zur Verfügung stellen, um die Inferenz durchzuführen. Das Modell sagt die Klassen und Orte von Objekten in den Eingabebildern oder -videos voraus.

Vorhersage

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])
# results would be a list of Results object including all the predictions by default
# but be careful as it could occupy a lot memory when there're many images,
# especially the task is segmentation.
# 1. return as a list
results = model.predict(source="folder")

# results would be a generator which is more friendly to memory by setting stream=True
# 2. return as a generator
results = model.predict(source=0, stream=True)

for result in results:
    # Detection
    result.boxes.xyxy  # box with xyxy format, (N, 4)
    result.boxes.xywh  # box with xywh format, (N, 4)
    result.boxes.xyxyn  # box with xyxy format but normalized, (N, 4)
    result.boxes.xywhn  # box with xywh format but normalized, (N, 4)
    result.boxes.conf  # confidence score, (N, 1)
    result.boxes.cls  # cls, (N, 1)

    # Segmentation
    result.masks.data  # masks, (N, H, W)
    result.masks.xy  # x,y segments (pixels), List[segment] * N
    result.masks.xyn  # x,y segments (normalized), List[segment] * N

    # Classification
    result.probs  # cls prob, (num_class, )

# Each result is composed of torch.Tensor by default,
# in which you can easily use following functionality:
result = result.cuda()
result = result.cpu()
result = result.to("cpu")
result = result.numpy()

Beispiele vorhersagen

Exportieren

Der Exportmodus dient zum Exportieren eines YOLO11 Modells in ein Format, 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 eingesetzt werden soll.

Exportieren

Exportieren Sie ein offizielles YOLO11n-Modell nach ONNX mit dynamischer Losgröße und Bildgröße.

from ultralytics import YOLO

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

Exportieren Sie ein offizielles YOLO11n-Modell nach TensorRT auf device=0 für die Beschleunigung auf CUDA Geräten.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
model.export(format="onnx", device=0)

Beispiele exportieren

Spur

Der Verfolgungsmodus wird für die Verfolgung von Objekten in Echtzeit unter Verwendung eines YOLO11 Modells verwendet. In diesem Modus wird das Modell aus einer Prüfpunktdatei geladen, und der Benutzer kann einen Live-Videostream bereitstellen, um eine Objektverfolgung in Echtzeit durchzuführen. Dieser Modus ist nützlich für Anwendungen wie Überwachungssysteme oder selbstfahrende Autos.

Spur

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load an official detection model
model = YOLO("yolo11n-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")

Track-Beispiele

Benchmark

Der Benchmark-Modus wird verwendet, um ein Profil der Geschwindigkeit und Genauigkeit verschiedener Exportformate für YOLO11 zu erstellen. Die Benchmarks liefern Informationen über die Größe des exportierten Formats, seine mAP50-95 Metriken (für Objekterkennung und Segmentierung) oder accuracy_top5 Metriken (für die Klassifizierung) und die Inferenzzeit in Millisekunden pro Bild für verschiedene Exportformate wie ONNX, OpenVINO, TensorRT und andere. Diese Informationen können den Benutzern helfen, das optimale Exportformat für ihren spezifischen Anwendungsfall zu wählen, basierend auf ihren Anforderungen an Geschwindigkeit und Genauigkeit.

Benchmark

Benchmarking eines offiziellen YOLO11n-Modells in allen Exportformaten.

from ultralytics.utils.benchmarks import benchmark

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

Benchmark-Beispiele

Einsatz von Trainern

YOLO Model-Klasse ist eine High-Level-Verschalung für die Trainer-Klassen. Jede YOLO Aufgabe hat ihren eigenen Trainer, der von BaseTrainer.

Beispiel für einen Detection Trainer

from ultralytics.models.yolo 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 = detect.DetectionTrainer(overrides=overrides)

Sie können Trainer leicht anpassen, um benutzerdefinierte Aufgaben zu unterstützen oder F&E-Ideen zu erforschen. Erfahren Sie mehr über Customizing Trainers, Validators und Predictors in der Sektion Anpassung an die Bedürfnisse Ihres Projekts anpassen.

Anpassungs-Tutorials

FAQ

Wie kann ich YOLO11 in mein Python Projekt zur Objekterkennung integrieren?

Die Integration von Ultralytics YOLO11 in Ihre Python Projekte ist einfach. Sie können ein bereits trainiertes Modell laden oder ein neues Modell von Grund auf trainieren. Hier erfahren Sie, wie Sie anfangen:

from ultralytics import YOLO

# Load a pretrained YOLO model
model = YOLO("yolo11n.pt")

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

# Visualize the results
for result in results:
    result.show()

Ausführlichere Beispiele finden Sie in unserem Abschnitt über den Vorhersagemodus.

Welche verschiedenen Modi sind in YOLO11 verfügbar?

Ultralytics YOLO11 bietet verschiedene Modi für unterschiedliche Arbeitsabläufe beim maschinellen Lernen. Dazu gehören:

  • Zug: Trainieren Sie ein Modell mit benutzerdefinierten Datensätzen.
  • Val: Validierung der Modellleistung anhand eines Validierungssatzes.
  • Vorhersage: Machen Sie Vorhersagen zu neuen Bildern oder Videostreams.
  • Exportieren: Exportieren Sie Modelle in verschiedene Formate wie ONNX, TensorRT.
  • Spur: Objektverfolgung in Echtzeit in Videoströmen.
  • Benchmark: Benchmarking der Modellleistung in verschiedenen Konfigurationen.

Jeder Modus ist so konzipiert, dass er umfassende Funktionalitäten für verschiedene Phasen der Modellentwicklung und -bereitstellung bietet.

Wie trainiere ich ein benutzerdefiniertes YOLO11 Modell mit meinem Datensatz?

Um ein benutzerdefiniertes YOLO11 Modell zu trainieren, müssen Sie Ihren Datensatz und andere Hyperparameter angeben. Hier ist ein kurzes Beispiel:

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo11n.yaml")

# Train the model with custom dataset
model.train(data="path/to/your/dataset.yaml", epochs=10)

Weitere Einzelheiten zur Schulung und Hyperlinks zu Anwendungsbeispielen finden Sie auf unserer Seite zum Schulungsmodus.

Wie exportiere ich YOLO11 Modelle für die Bereitstellung?

Der Export von YOLO11 -Modellen in einem für die Bereitstellung geeigneten Format ist mit der export Funktion. Sie können zum Beispiel ein Modell in das Format ONNX exportieren:

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo11n.pt")

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

Die verschiedenen Exportoptionen finden Sie in der Dokumentation zum Exportmodus.

Kann ich mein YOLO11 Modell an verschiedenen Datensätzen validieren?

Ja, die Validierung von YOLO11 Modellen auf verschiedenen Datensätzen ist möglich. Nach dem Training können Sie den Validierungsmodus verwenden, um die Leistung zu bewerten:

from ultralytics import YOLO

# Load a YOLO11 model
model = YOLO("yolo11n.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")

Detaillierte Beispiele und Verwendungsmöglichkeiten finden Sie auf der Seite Val Mode.

📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 1 Monat

Kommentare