Meet YOLO26: next-gen vision AI.

Link to this sectionInstanzsegmentierung#

Instance segmentation examples

Instance segmentation geht einen Schritt weiter als die Objekterkennung und beinhaltet das Identifizieren 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, z. B. yolo26n-seg.pt, und sind auf COCO vortrainiert.

Link to this sectionModelle#

Vortrainierte YOLO26 Segment-Modelle sind hier aufgeführt. 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 vom 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 Einzelmodelle im Single-Scale-Verfahren auf dem COCO val2017-Datensatz.
    Reproduziere dies mit yolo val segment data=coco.yaml device=0
  • Geschwindigkeit gemittelt über COCO val-Bilder unter Verwendung einer Amazon EC2 P4d-Instanz.
    Reproduziere dies mit yolo val segment data=coco.yaml batch=1 device=0|cpu
  • Params- und FLOPs-Werte beziehen sich auf das fusionierte Modell nach model.fuse(), welches Conv- und BatchNorm-Layer zusammenführt und bei End-to-End-Modellen den zusätzlichen One-to-Many-Detection-Head entfernt. Vortrainierte Checkpoints behalten die vollständige Trainingsarchitektur bei und können höhere Anzahlen aufweisen.

Link to this sectionTrainieren#

Trainiere YOLO26n-seg auf dem COCO8-seg Datensatz für 100 Epochen bei einer Bildgröße von 640. Eine vollständige Liste der verfügbaren Argumente findest du auf der Konfigurations 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)

Details zum train Modus findest du auf der Train Seite. Segmentierungsmodelle können auch auf Cloud-GPUs über die Ultralytics Platform trainiert werden.

Link to this sectionDatensatzformat#

Das Format für YOLO Segmentierungsdatensätze ist detailliert im Dataset Guide beschrieben. Um deinen bestehenden Datensatz aus anderen Formaten (wie COCO etc.) in das YOLO-Format zu konvertieren, verwende bitte das JSON2YOLO Tool von Ultralytics. Du kannst auch Segmentierungsmasken auf der Ultralytics Platform mit Polygon-Werkzeugen und SAM-basierter intelligenter Annotation erstellen.

Link to this sectionValidieren#

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 beibehä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

Link to this sectionVorhersagen#

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

Siehe vollständige Details zum predict-Modus auf der Predict-Seite.

Link to this sectionErgebnisausgabe#

Die YOLO-Instanzsegmentierung gibt ein Results-Objekt pro Bild zurück. Jedes Ergebnis speichert objektbezogene Vorhersagen, wobei jede erkannte Instanz ihre eigene binäre Maske, Klasse, Konfidenz und Box besitzt.

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; für Namen in int umwandeln.

Für aufgaben-spezifische Results-Felder für jede Aufgabe siehe den Abschnitt Vorhersageergebnisse nach Aufgabe.

Link to this sectionWie unterscheidet sich das von der semantischen Segmentierung?#

Instanzsegmentierung ist Segmentierung auf Objektebene: Zwei Autos erzeugen zwei Masken, zwei Boxen und zwei Konfidenzwerte. Semantische Segmentierung ist Klassifizierung auf Pixelebene: Dieselben Autos werden zu Pixeln mit derselben Klassen-ID in einer Klassenkarte in Bildgröße, ohne Boxen pro Objekt, Konfidenzwerte oder eine Standard-Polygonliste.

Link to this sectionExportieren#

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 in jedes Format exportieren, indem du das format-Argument verwendest, z. B. format='onnx' oder format='engine'. Du kannst direkt mit exportierten Modellen vorhersagen oder validieren, z. B. yolo predict model=yolo26n-seg.onnx. Nutzungsbeispiele werden dir nach Abschluss des Exports für dein Modell angezeigt.

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

Siehe vollständige export Details auf der Export Seite.

Link to this sectionFAQ#

Link to this sectionWie trainiere ich ein YOLO26-Segmentierungsmodell auf einem benutzerdefinierten Datensatz?#

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 Konfigurations Seite für weitere verfügbare Argumente.

Link to this sectionWas ist der Unterschied zwischen Objekterkennung und Instanzsegmentierung in YOLO26?#

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.

Link to this sectionWarum YOLO26 für Instanzsegmentierung verwenden?#

Ultralytics YOLO26 ist ein hochmodernes Modell, das für seine hohe Genauigkeit und Echtzeitleistung bekannt ist, was es ideal für Instanzsegmentierungsaufgaben macht. YOLO26 Segment-Modelle sind auf dem COCO-Datensatz vortrainiert, was eine robuste Leistung über eine Vielzahl von Objekten hinweg gewährleistet. Zusätzlich unterstützt YOLO Training, Validierung, Vorhersage und Exportfunktionalitäten mit nahtloser Integration, was es für Forschungs- und Industrieanwendungen äußerst vielseitig macht.

Link to this sectionWie lade und validiere ich ein vortrainiertes YOLO-Segmentierungsmodell?#

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 entscheidend für die Bewertung der Modellleistung sind.

Link to this sectionWie kann ich ein YOLO-Segmentierungsmodell in das ONNX-Format exportieren?#

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 Exportieren in verschiedene Formate findest du auf der Export Seite.

Kommentare