Instanzsegmentierung
Instanzsegmentierung geht einen Schritt weiter als die Objekterkennung und umfasst die Identifizierung einzelner Objekte in einem Bild sowie deren Segmentierung vom Rest des Bildes.
Das Ergebnis eines Instanzsegmentierungsmodells ist eine Reihe von Masken oder Konturen, die jedes Objekt im Bild umreißen, zusammen mit Klassenbeschriftungen und Konfidenzwerten für jedes Objekt. Die Instanzsegmentierung ist nützlich, wenn du nicht nur wissen musst, wo sich Objekte in einem Bild befinden, sondern auch, welche exakte Form sie haben.
Watch: Run Segmentation with Pretrained Ultralytics YOLO Model in Python.
YOLO26 Segment-Modelle verwenden das Suffix -seg, z. B. yolo26n-seg.pt, und sind auf COCO vortrainiert.
Modelle
YOLO26 vortrainierte Segment-Modelle sind hier dargestellt. Detektions-, Segmentierungs- und Pose-Modelle sind auf dem COCO Datensatz vortrainiert, während Klassifizierungsmodelle auf dem ImageNet Datensatz vortrainiert sind.
Modelle werden bei der ersten Verwendung automatisch vom neuesten Ultralytics Release heruntergeladen.
| Modell | Größe (Pixel) | mAPbox 50-95(e2e) | mAPmask 50-95(e2e) | Geschwindigkeit CPU ONNX (ms) | Geschwindigkeit T4 TensorRT10 (ms) | Params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n-seg | 640 | 39.6 | 33.9 | 53.3 ± 0.5 | 2.1 ± 0.0 | 2.7 | 9.1 |
| YOLO26s-seg | 640 | 47.3 | 40.0 | 118.4 ± 0.9 | 3.3 ± 0.0 | 10.4 | 34.2 |
| YOLO26m-seg | 640 | 52.5 | 44.1 | 328.2 ± 2.4 | 6.7 ± 0.1 | 23.6 | 121.5 |
| YOLO26l-seg | 640 | 54.4 | 45.5 | 387.0 ± 3.7 | 8.0 ± 0.1 | 28.0 | 139.8 |
| YOLO26x-seg | 640 | 56.5 | 47.0 | 787.0 ± 6.8 | 16.4 ± 0.1 | 62.8 | 313.5 |
- mAPval Werte gelten für Einzelmodelle mit einer Skala auf dem COCO val2017 Datensatz.
Reproduziere dies mityolo val segment data=coco.yaml device=0 - Geschwindigkeit gemittelt über COCO val-Bilder unter Verwendung einer Amazon EC2 P4d Instanz.
Reproduziere dies mityolo val segment data=coco.yaml batch=1 device=0|cpu - Params- und FLOPs-Werte beziehen sich auf das fusionierte Modell nach
model.fuse(), das Conv- und BatchNorm-Schichten zusammenführt und bei End-to-End-Modellen den zusätzlichen One-to-Many-Erkennungskopf entfernt. Vortrainierte Checkpoints behalten die vollständige Trainingsarchitektur bei und können höhere Zahlen aufweisen.
Trainieren
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 Konfigurationsseite.
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.
Datensatzformat
Das Format für YOLO-Segmentierungsdatensätze findest du im Detail im Dataset Guide. Um deinen bestehenden Datensatz aus anderen Formaten (wie COCO usw.) in das YOLO-Format zu konvertieren, verwende bitte das JSON2YOLO Tool von Ultralytics. Du kannst auch Segmentierungsmasken auf der Ultralytics Platform mithilfe von Polygon-Werkzeugen und SAM-basierter 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 beibehält.
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 FNVorhersage
Verwende ein trainiertes YOLO26n-seg Modell, um Vorhersagen auf Bildern durchzuführen.
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 in polygon format
xyn = result.masks.xyn # normalized
masks = result.masks.data # mask in matrix format (num_objects x H x W)Siehe vollständige Details zum predict-Modus auf der Predict-Seite.
Exportieren
Exportiere ein YOLO26n-seg Modell in ein anderes Format wie ONNX, CoreML, etc.
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. Anwendungsbeispiele werden für dein Modell angezeigt, nachdem der Export abgeschlossen ist.
| Format | format Argument | Modell | Metadaten | Argumente |
|---|---|---|---|---|
| PyTorch | - | yolo26n-seg.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-seg.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-seg.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n-seg_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-seg.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-seg.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-seg_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n-seg.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n-seg.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n-seg_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n-seg_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n-seg_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-seg.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n-seg_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n-seg_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n-seg_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n-seg_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n-seg_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DeepX | deepx | yolo26n-seg_deepx_model/ | ✅ | imgsz, int8, data, optimize, device |
Siehe vollständige export-Details auf der Seite Export.
FAQ
Wie trainiere ich ein YOLO26 Segmentierungsmodell mit einem benutzerdefinierten Datensatz?
Um ein YOLO26 Segmentierungsmodell mit einem benutzerdefinierten Datensatz zu trainieren, musst du deinen Datensatz zunächst 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:
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)Überprüfe die Konfigurationsseite für weitere verfügbare Argumente.
Was ist der Unterschied zwischen Objekterkennung und Instanzsegmentierung in YOLO26?
Die Objekterkennung identifiziert und lokalisiert Objekte in einem Bild, indem sie Begrenzungsrahmen (Bounding Boxes) um sie herum zeichnet, während die Instanzsegmentierung nicht nur die Begrenzungsrahmen identifiziert, sondern auch die exakte Form jedes Objekts abgrenzt. YOLO26 Instanzsegmentierungsmodelle liefern Masken oder Konturen, die jedes erkannte Objekt umreißen. Dies ist besonders nützlich für Aufgaben, bei denen die präzise Form von Objekten wichtig ist, wie in der medizinischen Bildgebung oder beim autonomen Fahren.
Warum YOLO26 für die Instanzsegmentierung verwenden?
Ultralytics YOLO26 ist ein hochmodernes Modell, das für seine hohe Genauigkeit und Echtzeitleistung bekannt ist und sich ideal für Instanzsegmentierungsaufgaben eignet. YOLO26 Segment-Modelle sind auf dem COCO Datensatz vortrainiert, was eine robuste Leistung bei einer Vielzahl von Objekten gewährleistet. Darüber hinaus unterstützt YOLO Trainings-, Validierungs-, Vorhersage- und Exportfunktionen mit nahtloser Integration, was es für Forschungs- und Industrieanwendungen äußerst vielseitig macht.
Wie lade und validiere ich ein vortrainiertes YOLO Segmentierungsmodell?
Das Laden und Validieren eines vortrainierten YOLO Segmentierungsmodells ist unkompliziert. So geht es mit Python und CLI:
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 die Mean Average Precision (mAP), die entscheidend für die Bewertung der Modellleistung sind.
Wie kann ich ein YOLO Segmentierungsmodell in das ONNX-Format exportieren?
Das Exportieren eines YOLO Segmentierungsmodells in das ONNX-Format ist einfach und kann mit Python oder CLI-Befehlen durchgeführt werden:
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.