YOLO Vision 2026:

Instanzsegmentierung mit Ultralytics YOLO#

Ultralytics YOLO instance segmentation examples

Instance segmentation geht einen Schritt weiter als die Objekterkennung und beinhaltet die Identifizierung einzelner Objekte in einem Bild sowie deren Segmentierung vom Rest des Bildes.

Die Ausgabe eines Instanzsegmentierungsmodells ist eine Reihe von Masken oder Konturen, die jedes Objekt im Bild umreißen, zusammen mit Klassenlabels und Konfidenzwerten für jedes Objekt. Instanzsegmentierung ist nützlich, wenn du nicht nur wissen musst, wo sich Objekte in einem Bild befinden, sondern auch, welche genaue Form sie haben.



Watch: Run Segmentation with Pretrained Ultralytics YOLO Model in Python.
Tipp

YOLO26 Segment Modelle verwenden das Suffix -seg, d. h. yolo26n-seg.pt, und sind auf COCO vorab trainiert.

Models#

YOLO26 vortrainierte Segment Modelle werden hier gezeigt. Detect-, Segment- und Pose-Modelle sind auf dem COCO-Datensatz vortrainiert, Semantic-Modelle sind auf Cityscapes vortrainiert und Classify-Modelle sind auf dem ImageNet-Datensatz vortrainiert.

Modelle werden bei der ersten Verwendung automatisch aus dem neuesten Ultralytics-Release heruntergeladen.

ModellGröße
(Pixel)
mAPbox
50-95(e2e)
mAPmask
50-95(e2e)
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
T4 TensorRT10
(ms)
Parameter
(M)
FLOPs
(B)
YOLO26n-seg64039.633.953.3 ± 0.52.1 ± 0.02.79.1
YOLO26s-seg64047.340.0118.4 ± 0.93.3 ± 0.010.434.2
YOLO26m-seg64052.544.1328.2 ± 2.46.7 ± 0.123.6121.5
YOLO26l-seg64054.445.5387.0 ± 3.78.0 ± 0.128.0139.8
YOLO26x-seg64056.547.0787.0 ± 6.816.4 ± 0.162.8313.5
  • mAPval-Werte gelten für ein einzelnes Modell im Einzelskalierungsmodus auf dem COCO val2017-Datensatz.
    Reproduzieren mit yolo val segment data=coco.yaml device=0
  • Geschwindigkeit gemittelt über COCO-val-Bilder unter Verwendung einer Amazon EC2 P4d-Instanz.
    Reproduzieren mit yolo val segment data=coco.yaml batch=1 device=0|cpu
  • Params- und FLOPs-Werte gelten für das fusionierte Modell nach model.fuse(), welches Conv- und BatchNorm-Schichten zusammenführt und bei End-to-End-Modellen den zusätzlichen One-to-Many-Erkennungskopf entfernt. Vorab trainierte Checkpoints behalten die vollständige Trainingsarchitektur bei und können höhere Anzahlen aufweisen.

Trainieren#

Trainiere YOLO26n-seg auf dem COCO8-seg Datensatz für 100 Epochs bei einer Bildgröße von 640. Eine vollständige Liste der verfügbaren Argumente findest du auf der Configuration-Seite.

Beispiel
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-seg.yaml")  # build a new model from YAML
model = YOLO("yolo26n-seg.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n-seg.yaml").load("yolo26n-seg.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)

Siehe vollständige train Modus-Details auf der Train-Seite. Segmentierungsmodelle können auch mit dem Ultralytics Platform Cloud-Training trainiert werden.

Datensatzformat#

Das YOLO-Segmentierungsdatenformat wird im Detail im Dataset Guide beschrieben. Um deinen bestehenden Datensatz aus anderen Formaten (wie COCO etc.) in das YOLO-Format zu konvertieren, nutze bitte das JSON2YOLO-Tool von Ultralytics. Du kannst Segmentierungsmasken auch mit der Ultralytics Platform Annotation unter Verwendung von Polygon-Werkzeugen und SAM-gestützter intelligenter Annotation erstellen.

Validieren#

Validiere die Genauigkeit des trainierten YOLO26n-seg Modells auf dem COCO8-seg Datensatz. Es sind keine Argumente erforderlich, da das model seine Trainings-data und -Argumente als Modellattribute behält.

Beispiel
from ultralytics import YOLO

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

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95(B)
metrics.box.map50  # map50(B)
metrics.box.map75  # map75(B)
metrics.box.maps  # a list containing mAP50-95(B) for each category
metrics.box.image_metrics  # per-image metrics dictionary for det with precision, recall, F1, TP, FP, and FN
metrics.seg.map  # map50-95(M)
metrics.seg.map50  # map50(M)
metrics.seg.map75  # map75(M)
metrics.seg.maps  # a list containing mAP50-95(M) for each category
metrics.seg.image_metrics  # per-image metrics dictionary for seg with precision, recall, F1, TP, FP, and FN

Vorhersagen#

Verwende ein trainiertes YOLO26n-seg-Modell, um Vorhersagen auf Bildern auszuführen.

Beispiel
from ultralytics import YOLO

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

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image

# Access the results
for result in results:
    xy = result.masks.xy  # mask polygons in pixel coordinates
    xyn = result.masks.xyn  # normalized mask polygons
    masks = result.masks.data  # binary masks, shape (N,H,W), dtype torch.uint8

Weitere Details zum predict-Modus findest du auf der Predict-Seite.

Ergebnisausgabe#

YOLO Instance Segmentation gibt ein Results Objekt pro Bild zurück. Jedes Ergebnis speichert Vorhersagen auf Objektobene, wobei jede erkannte Instanz ihre eigene binäre Maske, Klasse, Konfidenz und Box hat.

AttributTypFormBeschreibung
result.masksMasks(N)Instanzmasken.
result.masks.datatorch.uint8(N,H,W)Binäre Masken, Werte 0 oder 1.
result.masks.xynp.float32list[(P,2)]Pixelpolygone.
result.masks.xynnp.float32list[(P,2)]Normalisierte Polygone.
result.boxesBoxes(N)Instanzboxen/Klassen/Konfidenzen.
result.boxes.clstorch.float32(N,)Klassen-IDs; zu int casten für Namen.

Aufgabenspezifische Results-Felder für alle Aufgaben findest du im Abschnitt Predict Results by Task.

Wie unterscheidet sich das von der semantischen Segmentierung?#

Instance Segmentation ist eine Segmentierung auf Objektobene: zwei Autos erzeugen zwei Masken, zwei Boxen und zwei Konfidenzwerte. Semantic segmentation ist eine Klassifizierung auf Pixelebene: dieselben Autos werden zu Pixeln mit derselben Klassen-ID in einer bildgroßen Klassenkarte, ohne Boxen pro Objekt, Konfidenzen oder Standard-Polygonliste.

Exportieren#

Exportiere ein YOLO26n-seg-Modell in ein anderes Format wie ONNX, CoreML etc.

Beispiel
from ultralytics import YOLO

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

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

Verfügbare YOLO26-seg Exportformate findest du in der Tabelle unten. Du kannst mit dem Argument format in jedes Format exportieren, d. h. format='onnx' oder format='engine'. Du kannst direkt auf exportierten Modellen vorhersagen oder validieren, d. h. yolo predict model=yolo26n-seg.onnx. Anwendungsbeispiele werden für dein Modell nach Abschluss des Exports angezeigt.

Hinweis

CoreML eingebettete NMS-Pipelines (nms=True) unterstützen nur Objekterkennungsmodelle. Segmentierungsexporte nach CoreML geben eine Warnung aus und erzwingen nms=False, wodurch ein rohes Modell ohne NMS erzeugt wird.

Formatformat-ArgumentModellMetadatenArgumente
PyTorch-yolo26n-seg.pt-
TorchScripttorchscriptyolo26n-seg.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n-seg.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n-seg_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n-seg.engineimgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-seg.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n-seg_saved_model/imgsz, keras, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-seg.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n-seg_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n-seg_paddle_model/imgsz, batch, device
MNNmnnyolo26n-seg.mnnimgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n-seg_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n-seg_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n-seg_rknn_model/imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n-seg_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-seg_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n-seg_deepx_model/imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n-seg_qnn.onnximgsz, batch, name, quantize, simplify, opset, data, fraction, device
LiteRTlitertyolo26n-seg.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n-seg_hailo_model/imgsz, name, quantize, data, fraction, simplify, conf, iou
Huawei Ascendascendyolo26n-seg_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms

Weitere Details zum export-Modus findest du auf der Export-Seite.

FAQ#

  • Um ein YOLO26 Segmentierungsmodell auf einem benutzerdefinierten Datensatz zu trainieren, musst du deinen Datensatz zuerst im YOLO-Segmentierungsformat vorbereiten. Du kannst Tools wie JSON2YOLO verwenden, um Datensätze aus anderen Formaten zu konvertieren. Sobald dein Datensatz bereit ist, kannst du das Modell mit Python- oder CLI-Befehlen trainieren:

    Beispiel
    from ultralytics import YOLO
    
    # Load a pretrained YOLO26 segment model
    model = YOLO("yolo26n-seg.pt")
    
    # Train the model
    results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)

    Besuche die Konfigurationsseite, um weitere verfügbare Argumente zu finden.

  • Objekterkennung identifiziert und lokalisiert Objekte innerhalb eines Bildes, indem Begrenzungsboxen um sie herum gezeichnet werden, während Instanzsegmentierung nicht nur die Begrenzungsboxen identifiziert, sondern auch die exakte Form jedes Objekts abgrenzt. YOLO26-Instanzsegmentierungsmodelle liefern Masken oder Konturen, die jedes erkannte Objekt umreißen, was besonders für Aufgaben nützlich ist, bei denen die genaue Form von Objekten wichtig ist, wie z. B. in der medizinischen Bildgebung oder beim autonomen Fahren.

  • Ultralytics YOLO26 ist ein hochmodernes Modell, das für seine hohe Genauigkeit und Echtzeitleistung bekannt ist, was es ideal für Instance Segmentation Aufgaben macht. YOLO26 Segment Modelle sind auf dem COCO dataset vorab trainiert, was eine robuste Leistung über eine Vielzahl von Objekten hinweg gewährleistet. Darüber hinaus unterstützt YOLO Trainings-, Validierungs-, Vorhersage- und Exportfunktionen mit nahtloser Integration, wodurch es für Forschungs- und Industrieanwendungen gleichermaßen vielseitig ist.

  • Das Laden und Validieren eines vortrainierten YOLO-Segmentierungsmodells ist unkompliziert. Hier erfährst du, wie du das sowohl mit Python als auch mit der CLI tun kannst:

    Beispiel
    from ultralytics import YOLO
    
    # Load a pretrained model
    model = YOLO("yolo26n-seg.pt")
    
    # Validate the model
    metrics = model.val()
    print("Mean Average Precision for boxes:", metrics.box.map)
    print("Mean Average Precision for masks:", metrics.seg.map)

    Diese Schritte liefern dir Validierungsmetriken wie Mean Average Precision (mAP), die für die Beurteilung der Modellleistung entscheidend sind.

  • Das Exportieren eines YOLO-Segmentierungsmodells in das ONNX-Format ist einfach und kann mithilfe von Python- oder CLI-Befehlen durchgeführt werden:

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

    Weitere Details zum Export in verschiedene Formate findest du auf der Export-Seite.

Kommentare