Instanzsegmentierung
Die Instanzsegmentierung geht noch einen Schritt weiter als die Objekterkennung und beinhaltet die Identifizierung einzelner Objekte in einem Bild und deren Segmentierung vom Rest des Bildes.
Die Ausgabe eines Instanzsegmentierungsmodells ist ein Satz von Masken oder Konturen, die jedes Objekt im Bild umreißen, zusammen mit Klassenbezeichnungen und Konfidenzwerten für jedes Objekt. Die Instanzsegmentierung ist nützlich, wenn Sie nicht nur wissen müssen, wo sich Objekte in einem Bild befinden, sondern auch, wie ihre genaue Form ist.
Ansehen: Führen Sie die Segmentierung mit einem vortrainierten Ultralytics YOLO-Modell in Python aus.
Tipp
YOLO11-Segmentmodelle verwenden die -seg
Suffix, d.h. yolo11n-seg.pt
und sind vortrainiert auf COCO.
Modelle
YOLO11 vortrainierte Segmentmodelle werden hier gezeigt. Detect-, Segment- und Pose-Modelle sind auf dem COCO-Datensatz vortrainiert, während Classify-Modelle auf dem ImageNet-Datensatz vortrainiert sind.
Modelle werden beim ersten Gebrauch automatisch von der neuesten Ultralytics Version heruntergeladen.
Modell | Größe (Pixel) |
mAPbox 50-95 |
mAPmask 50-95 |
Geschwindigkeit CPU ONNX (ms) |
Geschwindigkeit T4 TensorRT10 (ms) |
Parameter (M) |
FLOPs (B) |
---|---|---|---|---|---|---|---|
YOLO11n-seg | 640 | 38.9 | 32.0 | 65.9 ± 1.1 | 1.8 ± 0.0 | 2.9 | 10.4 |
YOLO11s-seg | 640 | 46.6 | 37.8 | 117.6 ± 4.9 | 2.9 ± 0.0 | 10.1 | 35.5 |
YOLO11m-seg | 640 | 51.5 | 41.5 | 281.6 ± 1.2 | 6.3 ± 0.1 | 22.4 | 123.3 |
YOLO11l-seg | 640 | 53.4 | 42.9 | 344.2 ± 3.2 | 7.8 ± 0.2 | 27.6 | 142.2 |
YOLO11x-seg | 640 | 54.7 | 43.8 | 664.5 ± 3.2 | 15.8 ± 0.7 | 62.1 | 319.0 |
- mAPval Werte gelten für Single-Model, Single-Scale auf COCO val2017 Datensatz.
Reproduzieren durchyolo val segment data=coco.yaml device=0
- Geschwindigkeit gemittelt über COCO val-Bilder unter Verwendung von Amazon EC2 P4d Instanz.
Reproduzieren durchyolo val segment data=coco.yaml batch=1 device=0|cpu
Trainieren
Trainieren Sie YOLO11n-seg auf dem COCO8-seg-Datensatz für 100 Epochen bei einer Bildgröße von 640. Eine vollständige Liste der verfügbaren Argumente finden Sie auf der Konfigurationsseite.
Beispiel
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-seg.yaml") # build a new model from YAML
model = YOLO("yolo11n-seg.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo11n-seg.yaml").load("yolo11n.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo segment train data=coco8-seg.yaml model=yolo11n-seg.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo segment train data=coco8-seg.yaml model=yolo11n-seg.pt epochs=100 imgsz=640
# Build a new model from YAML, transfer pretrained weights to it and start training
yolo segment train data=coco8-seg.yaml model=yolo11n-seg.yaml pretrained=yolo11n-seg.pt epochs=100 imgsz=640
Datensatzformat
Das YOLO-Segmentierungsdatensatzformat ist im Datensatz-Leitfaden ausführlich beschrieben. Um Ihren vorhandenen Datensatz aus anderen Formaten (wie COCO usw.) in das YOLO-Format zu konvertieren, verwenden Sie bitte das JSON2YOLO-Tool von Ultralytics.
Validieren
Validieren Sie das trainierte YOLO11n-seg-Modell Genauigkeit auf dem COCO8-seg-Datensatz. Es werden keine Argumente benötigt, da die model
behält sein Training data
und Argumente als Modellattribute.
Beispiel
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-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 contains map50-95(B) of each category
metrics.seg.map # map50-95(M)
metrics.seg.map50 # map50(M)
metrics.seg.map75 # map75(M)
metrics.seg.maps # a list contains map50-95(M) of each category
yolo segment val model=yolo11n-seg.pt # val official model
yolo segment val model=path/to/best.pt # val custom model
Vorhersagen
Verwenden Sie ein trainiertes YOLO11n-seg-Modell, um Vorhersagen auf Bildern auszuführen.
Beispiel
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-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)
yolo segment predict model=yolo11n-seg.pt source='https://ultralytics.com/images/bus.jpg' # predict with official model
yolo segment predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # predict with custom model
Vollständige predict
Details zum Modus finden Sie auf der Vorhersagen Seite.
Export
Exportieren Sie ein YOLO11n-seg-Modell in ein anderes Format wie ONNX, CoreML usw.
Beispiel
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-seg.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom trained model
# Export the model
model.export(format="onnx")
yolo export model=yolo11n-seg.pt format=onnx # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model
Die verfügbaren YOLO11-seg-Exportformate sind in der folgenden Tabelle aufgeführt. Sie können in jedes Format exportieren, indem Sie die format
Argument in ein beliebiges Format exportieren, z. B. format='onnx'
oder format='engine'
. Sie können direkt mit exportierten Modellen Vorhersagen treffen oder diese validieren, z. B. yolo predict model=yolo11n-seg.onnx
. Anwendungsbeispiele werden nach Abschluss des Exports für Ihr Modell angezeigt.
Format | format Argument |
Modell | Metadaten | Argumente |
---|---|---|---|---|
PyTorch | - | yolo11n-seg.pt |
✅ | - |
TorchScript | torchscript |
yolo11n-seg.torchscript |
✅ | imgsz , half , dynamic , optimize , nms , batch , device |
ONNX | onnx |
yolo11n-seg.onnx |
✅ | imgsz , half , dynamic , simplify , opset , nms , batch , device |
OpenVINO | openvino |
yolo11n-seg_openvino_model/ |
✅ | imgsz , half , dynamic , int8 , nms , batch , data , fraction , device |
TensorRT | engine |
yolo11n-seg.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data , fraction , device |
CoreML | coreml |
yolo11n-seg.mlpackage |
✅ | imgsz , half , int8 , nms , batch , device |
TF SavedModel | saved_model |
yolo11n-seg_saved_model/ |
✅ | imgsz , keras , int8 , nms , batch , device |
TF GraphDef | pb |
yolo11n-seg.pb |
❌ | imgsz , batch , device |
TF Lite | tflite |
yolo11n-seg.tflite |
✅ | imgsz , half , int8 , nms , batch , data , fraction , device |
TF Edge TPU | edgetpu |
yolo11n-seg_edgetpu.tflite |
✅ | imgsz , device |
TF.js | tfjs |
yolo11n-seg_web_model/ |
✅ | imgsz , half , int8 , nms , batch , device |
PaddlePaddle | paddle |
yolo11n-seg_paddle_model/ |
✅ | imgsz , batch , device |
MNN | mnn |
yolo11n-seg.mnn |
✅ | imgsz , batch , int8 , half , device |
NCNN | ncnn |
yolo11n-seg_ncnn_model/ |
✅ | imgsz , half , batch , device |
IMX500 | imx |
yolo11n-seg_imx_model/ |
✅ | imgsz , int8 , data , fraction , device |
RKNN | rknn |
yolo11n-seg_rknn_model/ |
✅ | imgsz , batch , name , device |
Vollständige export
Details auf der Export Seite.
FAQ
Wie trainiere ich ein YOLO11-Segmentierungsmodell auf einem benutzerdefinierten Datensatz?
Um ein YOLO11-Segmentierungsmodell auf einem benutzerdefinierten Datensatz zu trainieren, müssen Sie zuerst Ihren Datensatz im YOLO-Segmentierungsformat vorbereiten. Sie können Tools wie JSON2YOLO verwenden, um Datensätze aus anderen Formaten zu konvertieren. Sobald Ihr Datensatz fertig ist, können Sie das Modell mit Python- oder CLI-Befehlen trainieren:
Beispiel
from ultralytics import YOLO
# Load a pretrained YOLO11 segment model
model = YOLO("yolo11n-seg.pt")
# Train the model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)
yolo segment train data=path/to/your_dataset.yaml model=yolo11n-seg.pt epochs=100 imgsz=640
Weitere verfügbare Argumente finden Sie auf der Seite Konfiguration.
Was ist der Unterschied zwischen Objekterkennung und Instanzsegmentierung in YOLO11?
Die Objekterkennung identifiziert und lokalisiert Objekte innerhalb eines Bildes, indem sie Begrenzungsrahmen um sie herum zeichnet, während die Instanzsegmentierung nicht nur die Begrenzungsrahmen identifiziert, sondern auch die exakte Form jedes Objekts abgrenzt. YOLO11-Instanzsegmentierungsmodelle liefern Masken oder Konturen, die jedes erkannte Objekt umreißen, was besonders nützlich für Aufgaben ist, bei denen die genaue Form von Objekten wichtig ist, wie z. B. in der medizinischen Bildgebung oder beim autonomen Fahren.
Warum YOLO11 für die Instanzsegmentierung verwenden?
Ultralytics YOLO11 ist ein hochmodernes Modell, das für seine hohe Genauigkeit und Echtzeitleistung bekannt ist und sich ideal für Instanzsegmentierungsaufgaben eignet. YOLO11-Segmentmodelle werden auf dem COCO-Datensatz vortrainiert, wodurch eine robuste Leistung für eine Vielzahl von Objekten gewährleistet wird. 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. Hier erfahren Sie, wie Sie dies mit Python und CLI tun können:
Beispiel
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo11n-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)
yolo segment val model=yolo11n-seg.pt
Diese Schritte liefern Ihnen Validierungsmetriken wie Mean Average Precision (mAP), die für die Bewertung der Modellleistung entscheidend 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 erfolgen:
Beispiel
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo11n-seg.pt")
# Export the model to ONNX format
model.export(format="onnx")
yolo export model=yolo11n-seg.pt format=onnx
Weitere Informationen zum Exportieren in verschiedene Formate finden Sie auf der Seite Export.