Instanzsegmentierung und Tracking mit Ultralytics YOLO26 🚀
Was ist Instanzsegmentierung?
Instanzsegmentierung ist eine Computer-Vision-Aufgabe, bei der einzelne Objekte in einem Bild auf Pixelebene identifiziert und umrissen werden. Im Gegensatz zur semantischen Segmentierung, die Pixel nur nach Kategorien klassifiziert, kennzeichnet die Instanzsegmentierung jede Objektinstanz eindeutig und grenzt sie präzise ab, was sie für Anwendungen wie medizinische Bildgebung, autonomes Fahren und industrielle Automatisierung unerlässlich macht, die ein detailliertes räumliches Verständnis erfordern.
Ultralytics YOLO26 bietet leistungsstarke Instanzsegmentierungsfunktionen, die eine präzise Objektrand-Detektion ermöglichen, während die Geschwindigkeit und Effizienz YOLO-Modelle bekannt sind.
Es gibt zwei Arten von Instance-Segmentation-Tracking, die im Ultralytics-Paket verfügbar sind:
Instanzsegmentierung mit Klassenobjekten: Jedem Klassenobjekt wird eine eindeutige Farbe für eine klare visuelle Trennung zugewiesen.
Instanzsegmentierung mit Objekt-Tracks: Jeder Track wird durch eine eindeutige Farbe dargestellt, was die einfache Identifizierung und das tracken über Videobilder hinweg erleichtert.
Ansehen: Instanzsegmentierung mit Objekt-Tracking unter Verwendung von Ultralytics YOLO26
Stichproben
| Instanzsegmentierung | Instanzsegmentierung + Objektverfolgung |
|---|---|
![]() | |
| Ultralytics Instanzsegmentierung 😍 | Ultralytics Instanzsegmentierung mit Objektverfolgung 🔥 |
Instanzsegmentierung mit Ultralytics YOLO
# Instance segmentation using Ultralytics YOLO26
yolo solutions isegment show=True
# Pass a source video
yolo solutions isegment source="path/to/video.mp4"
# Monitor the specific classes
yolo solutions isegment classes="[0, 5]"
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("isegment_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize instance segmentation object
isegment = solutions.InstanceSegmentation(
show=True, # display the output
model="yolo26n-seg.pt", # model="yolo26n-seg.pt" for object segmentation using YOLO26.
# classes=[0, 2], # segment specific classes, e.g., person and car with the pretrained model.
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = isegment(im0)
# print(results) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
InstanceSegmentation Argumente
Hier ist eine Tabelle mit den InstanceSegmentation Argumente:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
model | str | None | Pfad zu einer Ultralytics YOLO Modelldatei. |
region | list | '[(20, 400), (1260, 400)]' | Liste der Punkte, die den Zählbereich definieren. |
Sie können auch profitieren von track Argumente innerhalb der InstanceSegmentation Lösung:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Gibt den zu verwendenden Tracking-Algorithmus an, z. B. bytetrack.yaml oder botsort.yaml. |
conf | float | 0.1 | Legt den Konfidenzschwellenwert für Erkennungen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber auch falsch positive Ergebnisse liefern. |
iou | float | 0.7 | Legt den Intersection over Union (IoU)-Schwellenwert für das Filtern überlappender Detektionen fest. |
classes | list | None | Filtert Ergebnisse nach Klassenindex. Zum Beispiel, classes=[0, 2, 3] verfolgt nur die angegebenen Klassen. |
verbose | bool | True | Steuert die Anzeige der Tracking-Ergebnisse und bietet eine visuelle Ausgabe der verfolgten Objekte. |
device | str | None | Gibt das Gerät für die Inferenz an (z. B. cpu, cuda:0 oder 0). Ermöglicht es Benutzern, zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten für die Modellausführung zu wählen. |
Darüber hinaus stehen die folgenden Visualisierungsargumente zur Verfügung:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
show | bool | False | Wenn Trueaktiviert, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für sofortiges visuelles Feedback während der Entwicklung oder des Testens. |
line_width | int or None | None | Gibt die Linienbreite der Begrenzungsrahmen an. Wenn None, wird die Linienbreite automatisch an die Bildgröße angepasst. Bietet eine visuelle Anpassung für mehr Klarheit. |
show_conf | bool | True | Zeigt den Konfidenzwert für jede Erkennung zusammen mit der Beschriftung an. Gibt Einblick in die Sicherheit des Modells für jede Erkennung. |
show_labels | bool | True | Zeigt Beschriftungen für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte. |
Anwendungen der Instanzsegmentierung
Die Instanzsegmentierung mit YOLO26 hat zahlreiche reale Anwendungen in verschiedenen Branchen:
Abfallwirtschaft und Recycling
YOLO26 kann in Abfallentsorgungsanlagen eingesetzt werden, um verschiedene Materialarten zu identifizieren und zu sortieren. Das Modell kann Kunststoffabfälle, Karton, Metall und andere Wertstoffe mit hoher Präzision segmentieren, wodurch automatisierte Sortiersysteme Abfälle effizienter verarbeiten können. Dies ist besonders wertvoll, wenn man bedenkt, dass nur etwa 10 % der weltweit anfallenden 7 Milliarden Tonnen Plastikmüll recycelt werden.
Autonome Fahrzeuge
In selbstfahrenden Autos hilft die Instanzsegmentierung, Fußgänger, Fahrzeuge, Verkehrszeichen und andere Straßenelemente auf Pixelebene zu identifizieren und zu verfolgen. Dieses präzise Verständnis der Umgebung ist entscheidend für Navigations- und Sicherheitsentscheidungen. Die Echtzeit-Performance von YOLO26 macht es ideal für diese zeitkritischen Anwendungen.
Medizinische Bildgebung
Die Instanzsegmentierung kann Tumore, Organe oder Zellstrukturen in medizinischen Scans identifizieren und umreißen. Die Fähigkeit von YOLO26, Objektränder präzise abzugrenzen, macht es wertvoll für die medizinische Diagnostik und Behandlungsplanung.
Baustellenüberwachung
Auf Baustellen kann die Instanzsegmentierung schwere Maschinen, Arbeiter und Materialien tracken. Dies trägt zur Sicherheit bei, indem es die Positionen von Geräten überwacht und erkennt, wenn Arbeiter gefährliche Bereiche betreten, während gleichzeitig der Arbeitsablauf und die Ressourcenzuweisung optimiert werden.
Hinweis
Bei Fragen können Sie diese gerne im Ultralytics Issue Bereich oder im unten erwähnten Diskussionsbereich posten.
FAQ
Wie führe ich eine Instanzsegmentierung mit Ultralytics YOLO26 durch?
Um eine Instanzsegmentierung mit Ultralytics YOLO26 durchzuführen, initialisieren Sie das YOLO-Modell mit einer Segmentierungsversion von YOLO26 und verarbeiten Sie Videobilder damit. Hier ist ein vereinfachtes Codebeispiel:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("instance-segmentation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init InstanceSegmentation
isegment = solutions.InstanceSegmentation(
show=True, # display the output
model="yolo26n-seg.pt", # model="yolo26n-seg.pt" for object segmentation using YOLO26.
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = isegment(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Erfahren Sie mehr über Instanzsegmentierung im Ultralytics YOLO26-Leitfaden.
Was ist der Unterschied zwischen Instanzsegmentierung und Objekt-Tracking in Ultralytics YOLO26?
Die Instanzsegmentierung identifiziert und umreißt einzelne Objekte innerhalb eines Bildes, wobei jedem Objekt ein eindeutiges Label und eine Maske zugewiesen werden. Das Objekt-Tracking erweitert dies, indem es Objekten über Videobilder hinweg konsistente IDs zuweist, was eine kontinuierliche Verfolgung derselben Objekte über die Zeit ermöglicht. In Kombination, wie in der Implementierung von YOLO26, ergeben sich leistungsstarke Funktionen zur Analyse von Objektbewegungen und -verhalten in Videos, während präzise Begrenzungsinformationen erhalten bleiben.
Warum sollte ich Ultralytics YOLO26 für Instanzsegmentierung und Tracking gegenüber anderen Modellen wie Mask R-CNN oder Faster R-CNN verwenden?
Ultralytics YOLO26 bietet Echtzeit-Performance, überragende Genauigkeit und Benutzerfreundlichkeit im Vergleich zu anderen Modellen wie Mask R-CNN oder Faster R-CNN. YOLO26 verarbeitet Bilder in einem einzigen Durchgang (Ein-Stufen-Detektion), wodurch es deutlich schneller ist, während es eine hohe Präzision beibehält. Es bietet auch eine nahtlose Integration mit der Ultralytics Platform, die es Benutzern ermöglicht, Modelle, Datensätze und Trainings-Pipelines effizient zu verwalten. Für Anwendungen, die sowohl Geschwindigkeit als auch Genauigkeit erfordern, bietet YOLO26 eine optimale Balance.
Bietet Ultralytics Datensätze an, die für das Training von YOLO26-Modellen zur Instanzsegmentierung und zum Tracking geeignet sind?
Ja, Ultralytics bietet mehrere Datensätze, die sich für das Training von YOLO26-Modellen zur Instanzsegmentierung eignen, darunter COCO-Seg, COCO8-Seg (ein kleinerer Teilsatz für schnelle Tests), Package-Seg und Crack-Seg. Diese Datensätze enthalten Pixel-Level-Annotationen, die für Instanzsegmentierungsaufgaben erforderlich sind. Für spezialisiertere Anwendungen können Sie auch benutzerdefinierte Datensätze im Ultralytics-Format erstellen. Vollständige Informationen zu den Datensätzen und Anwendungsanweisungen finden Sie in der Ultralytics Datasets-Dokumentation.
