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, bezeichnet die Instanzsegmentierung jedes Objekt individuell und grenzt es präzise ab. Dies ist entscheidend für Anwendungen, die ein detailliertes räumliches Verständnis erfordern, wie etwa medizinische Bildgebung, autonomes Fahren und industrielle Automatisierung.

Ultralytics YOLO26 bietet leistungsstarke Funktionen zur Instanzsegmentierung, die eine präzise Erkennung von Objektgrenzen ermöglichen, während die für YOLO-Modelle bekannte Geschwindigkeit und Effizienz beibehalten werden.

Es gibt zwei Arten der Instanzsegmentierung mit Tracking im Ultralytics-Paket:

  • Instanzsegmentierung mit Klassenobjekten: Jedem Klassenobjekt wird zur klaren visuellen Trennung eine eindeutige Farbe zugewiesen.

  • Instanzsegmentierung mit Objekt-Tracks: Jeder Track wird durch eine eigene Farbe dargestellt, was eine einfache Identifizierung und Verfolgung über Videoframes hinweg erleichtert.



Watch: Instance Segmentation with Object Tracking using Ultralytics YOLO26

Beispiele

InstanzsegmentierungInstanzsegmentierung + Objekt-Tracking
Ultralytics InstanzsegmentierungUltralytics Instanzsegmentierung mit Objekt-Tracking
Ultralytics Instanzsegmentierung 😍Ultralytics Instanzsegmentierung mit Objekt-Tracking 🔥
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]"

InstanceSegmentation-Argumente

Hier ist eine Tabelle mit den InstanceSegmentation-Argumenten:

ArgumentTypStandardBeschreibung
modelstrNonePfad zu einer Ultralytics YOLO-Modelldatei.
regionlist'[(20, 400), (1260, 400)]'Liste von Punkten, die den Zählbereich definieren.

Du kannst auch die track-Argumente innerhalb der InstanceSegmentation-Lösung nutzen:

ArgumentTypStandardBeschreibung
trackerstr'botsort.yaml'Legt den zu verwendenden Tracking-Algorithmus fest, z. B. bytetrack.yaml oder botsort.yaml.
conffloat0.1Legt den Konfidenz-Schwellenwert für Detektionen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber zu falsch-positiven Ergebnissen führen.
ioufloat0.7Legt den Intersection over Union (IoU) Schwellenwert zum Filtern überlappender Detektionen fest.
classeslistNoneFiltert Ergebnisse nach Klassen-Index. Beispiel: classes=[0, 2, 3] verfolgt nur die angegebenen Klassen.
verboseboolTrueSteuert die Anzeige der Tracking-Ergebnisse und liefert eine visuelle Ausgabe der verfolgten Objekte.
devicestrNoneSpezifiziert das Gerät für die Inferenz (z. B. cpu, cuda:0 oder 0). Ermöglicht die Wahl zwischen CPU, einer spezifischen GPU oder anderen Recheneinheiten zur Modellausführung.

Darüber hinaus stehen die folgenden Visualisierungsargumente zur Verfügung:

ArgumentTypStandardBeschreibung
showboolFalseWenn True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für direktes visuelles Feedback während der Entwicklung oder beim Testen.
line_widthint or NoneNoneGibt die Linienbreite der Bounding-Boxen an. Wenn None, wird die Linienbreite automatisch basierend auf der Bildgröße angepasst. Bietet visuelle Anpassung für mehr Klarheit.
show_confboolTrueZeigt den Konfidenzwert für jede Erkennung neben dem Label an. Gibt Aufschluss über die Sicherheit des Modells bei jeder Erkennung.
show_labelsboolTrueZeigt Labels für jede Erkennung in der visuellen Ausgabe an. Bietet unmittelbares Verständnis der erkannten Objekte.

Anwendungen der Instanzsegmentierung

Die Instanzsegmentierung mit YOLO26 bietet zahlreiche praktische 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, Pappe, Metall und andere Wertstoffe mit hoher Präzision segmentieren, wodurch automatisierte Sortiersysteme den Abfall effizienter verarbeiten können. Dies ist besonders wertvoll, wenn man bedenkt, dass nur etwa 10 % der weltweit anfallenden 7 Milliarden Tonnen Kunststoffabfälle recycelt werden.

Autonome Fahrzeuge

Bei selbstfahrenden Autos hilft die Instanzsegmentierung dabei, Fußgänger, Fahrzeuge, Verkehrsschilder 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-Leistung von YOLO26 macht es ideal für diese zeitkritischen Anwendungen.

Medizinische Bildgebung

Die Instanzsegmentierung kann Tumore, Organe oder Zellstrukturen in medizinischen Scans identifizieren und umrissen darstellen. Die Fähigkeit von YOLO26, Objektgrenzen präzise abzugrenzen, macht es wertvoll für medizinische Diagnosen und die Behandlungsplanung.

Überwachung von Baustellen

Auf Baustellen kann die Instanzsegmentierung schwere Maschinen, Arbeiter und Materialien verfolgen. Dies trägt zur Sicherheit bei, indem die Positionen von Geräten überwacht werden und erkannt wird, wenn Arbeiter gefährliche Bereiche betreten, während gleichzeitig der Arbeitsablauf und die Ressourcenzuweisung optimiert werden.

Hinweis

Bei Fragen kannst du dich gerne im Ultralytics Issue-Bereich oder im unten genannten Diskussionsbereich melden.

FAQ

Wie führe ich eine Instanzsegmentierung mit Ultralytics YOLO26 durch?

Um eine Instanzsegmentierung mit Ultralytics YOLO26 durchzuführen, initialisiere das YOLO-Modell mit einer Segmentierungsversion von YOLO26 und verarbeite Videoframes 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()

Erfahre 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 in einem Bild und gibt jedem Objekt ein eindeutiges Label und eine Maske. Das Objekt-Tracking erweitert dies, indem es Objekten über Videoframes hinweg konsistente IDs zuweist, was eine kontinuierliche Verfolgung derselben Objekte über Zeit hinweg ermöglicht. Wenn man dies kombiniert, wie in der Implementierung von YOLO26, erhältst du leistungsstarke Funktionen zur Analyse von Objektbewegungen und -verhalten in Videos, während gleichzeitig präzise Grenzinformationen 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 im Vergleich zu anderen Modellen wie Mask R-CNN oder Faster R-CNN Echtzeit-Leistung, überlegene Genauigkeit und Benutzerfreundlichkeit. YOLO26 verarbeitet Bilder in einem einzigen Durchgang (Einstufen-Detektion), was es deutlich schneller macht und gleichzeitig eine hohe Präzision beibehält. Es bietet zudem eine nahtlose Integration in die Ultralytics-Plattform, mit der Benutzer Modelle, Datensätze und Trainings-Pipelines effizient verwalten können. Für Anwendungen, die sowohl Geschwindigkeit als auch Genauigkeit erfordern, bietet YOLO26 ein optimales Gleichgewicht.

Gibt es Datensätze von Ultralytics, die für das Training von YOLO26-Modellen zur Instanzsegmentierung und zum Tracking geeignet sind?

Ja, Ultralytics bietet mehrere Datensätze an, die sich für das Training von YOLO26-Modellen zur Instanzsegmentierung eignen, darunter COCO-Seg, COCO8-Seg (ein kleinerer Teilbereich für schnelle Tests), Package-Seg und Crack-Seg. Diese Datensätze enthalten die für Instanzsegmentierungsaufgaben erforderlichen Annotationsdaten auf Pixelebene. Für spezialisiertere Anwendungen kannst du auch eigene Datensätze erstellen, die dem Ultralytics-Format folgen. Vollständige Informationen zu Datensätzen und Nutzungshinweise findest du in der Dokumentation zu Ultralytics-Datensätzen.

Kommentare