Zum Inhalt springen

Instanz-Segmentierung

Beispiele für die Instanzsegmentierung

Die Instanzsegmentierung geht einen Schritt weiter als die Objekterkennung und besteht darin, einzelne Objekte in einem Bild zu identifizieren und sie vom Rest des Bildes abzugrenzen.

Die Ausgabe eines Instanzsegmentierungsmodells ist ein Satz von Masken oder Konturen, die jedes Objekt im Bild umreißen, zusammen mit Klassenbeschriftungen und Vertrauenswerten 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, welche Form sie genau haben.



Beobachten: Führen Sie die Segmentierung mit dem vortrainierten Ultralytics YOLO Modell in Python aus.

Tipp

YOLO11 Segmentmodelle verwenden die -seg Suffix, d.h. yolo11n-seg.pt und sind vorgebildet auf COCO.

Modelle

YOLO11 Hier werden vortrainierte Segment-Modelle gezeigt. Die Modelle "Detect", "Segment" und "Pose" wurden mit dem COCO-Datensatz trainiert, während die Modelle "Classify" mit dem ImageNet-Datensatz trainiert wurden.

Die Modelle werden bei der ersten Verwendung automatisch von der neuestenVersion von Ultralytics heruntergeladen.

Modell Größe
(Pixel)
mAPbox
50-95
mAPmask
50-95
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
T4TensorRT10
(ms)
params
(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 Die Werte gelten für ein Modell mit einer Skala auf COCO val2017 Datensatz.
    Reproduzieren durch yolo val segment data=coco.yaml device=0
  • Geschwindigkeit gemittelt über COCO val-Bilder unter Verwendung eines Amazon EC2 P4d Instanz.
    Reproduzieren durch yolo val segment data=coco.yaml batch=1 device=0|cpu

Zug

Trainieren Sie YOLO11n-seg auf dem COCO8-seg-Datensatz für 100 Epochen bei Bildgröße 640. Eine vollständige Liste der verfügbaren Argumente finden Sie auf der Seite Konfiguration.

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

Format des Datensatzes

YOLO Format der Segmentierungsdatensätze finden Sie im Detail im Dataset Guide. Um Ihren bestehenden Datensatz aus anderen Formaten (wie COCO usw.) in das Format YOLO zu konvertieren, verwenden Sie bitte das Tool JSON2YOLO von Ultralytics.

Val

Validierung des trainierten YOLO11n-seg-Modells Genauigkeit für den COCO8-seg-Datensatz. Es werden keine Argumente benötigt, da die model seine Ausbildung beibehält 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

Vorhersage

Verwenden Sie ein trainiertes YOLO11n-seg-Modell, um Vorhersagen für Bilder zu treffen.

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
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ändig sehen predict Modus Details im Vorhersage Seite.

Exportieren

Exportieren Sie ein YOLO11n-seg Modell in ein anderes Format wie ONNX, CoreML, etc.

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 beliebige Format exportieren, indem Sie die format Argument, d.h. format='onnx' oder format='engine'. Sie können exportierte Modelle direkt vorhersagen oder validieren, d. h. yolo predict model=yolo11n-seg.onnx. Nach Abschluss des Exports werden Anwendungsbeispiele für Ihr Modell angezeigt.

Format format Argument Modell Metadaten Argumente
PyTorch - yolo11n-seg.pt -
TorchScript torchscript yolo11n-seg.torchscript imgsz, optimize, batch
ONNX onnx yolo11n-seg.onnx imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolo11n-seg_openvino_model/ imgsz, half, int8, batch
TensorRT engine yolo11n-seg.engine imgsz, half, dynamic, simplify, workspace, int8, batch
CoreML coreml yolo11n-seg.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolo11n-seg_saved_model/ imgsz, keras, int8, batch
TF GraphDef pb yolo11n-seg.pb imgsz, batch
TF Lite tflite yolo11n-seg.tflite imgsz, half, int8, batch
TF Kante TPU edgetpu yolo11n-seg_edgetpu.tflite imgsz
TF.js tfjs yolo11n-seg_web_model/ imgsz, half, int8, batch
PaddlePaddle paddle yolo11n-seg_paddle_model/ imgsz, batch
MNN mnn yolo11n-seg.mnn imgsz, batch, int8, half
NCNN ncnn yolo11n-seg_ncnn_model/ imgsz, half, batch
IMX500 imx yolo11n-seg_imx_model/ imgsz, int8

Vollständig sehen export Details im Exportieren 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 Ihren Datensatz zunächst 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 den Befehlen Python oder CLI 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

Auf der Seite Konfiguration finden Sie weitere verfügbare Argumente.

Was ist der Unterschied zwischen Objekterkennung und Instanzsegmentierung in YOLO11?

Bei der Objekterkennung werden Objekte in einem Bild identifiziert und lokalisiert, indem Begrenzungsrahmen (Bounding Boxes) um sie herum gezeichnet werden, während bei der Instanzsegmentierung nicht nur die Begrenzungsrahmen identifiziert werden, sondern auch die genaue Form jedes Objekts beschrieben wird. YOLO11 Instanzsegmentierungsmodelle liefern Masken oder Konturen, die jedes erkannte Objekt umreißen, was besonders für Aufgaben nützlich ist, bei denen die Kenntnis der genauen Form von Objekten wichtig ist, wie z. B. bei der medizinischen Bildgebung oder beim autonomen Fahren.

Warum YOLO11 für die Segmentierung von Beispielen verwenden?

Ultralytics YOLO11 ist ein hochmodernes Modell, das für seine hohe Genauigkeit und Echtzeitleistung bekannt ist und sich daher ideal für Segmentierungsaufgaben eignet. YOLO11 Die Segmentmodelle werden mit dem COCO-Datensatz trainiert, um eine robuste Leistung bei einer Vielzahl von Objekten zu gewährleisten. Darüber hinaus unterstützt YOLO die Funktionen für Training, Validierung, Vorhersage und Export mit nahtloser Integration, wodurch es sowohl für Forschungs- als auch für Industrieanwendungen äußerst vielseitig ist.

Wie lade und validiere ich ein vortrainiertes YOLO Segmentierungsmodell?

Das Laden und Validieren eines vorab trainierten YOLO Segmentierungsmodells ist einfach. Im Folgenden wird beschrieben, 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 Segmentierungsmodell von YOLO in das Format ONNX exportieren?

Der Export eines YOLO Segmentierungsmodells in das Format ONNX ist einfach und kann mit den Befehlen Python oder CLI durchgeführt werden:

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 Einzelheiten zum Exportieren in verschiedene Formate finden Sie auf der Seite Exportieren.

📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 17 Tagen

Kommentare