Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten

Wie man Ultralytics für die Instanzsegmentierung individuell trainiert

Erfahren Sie, wie Sie Ultralytics für die Instanzsegmentierung trainieren können, wobei das Modell jedes einzelne Objekt mithilfe von Masken auf Pixelebene identifiziert und trennt.

Dank der jüngsten technologischen Fortschritte werden viele intelligente Systeme, die eine stille, aber wirkungsvolle Rolle in unserem Leben spielen, durch KI angetrieben. Wenn beispielsweise ein Auto bei Rot über eine Ampel fährt und eine Kamera den Verstoß automatisch aufzeichnet oder wenn ein automatisiertes Qualitätskontrollsystem einen Herstellungsfehler in einer Produktionslinie entdeckt, arbeitet KI im Hintergrund.

Insbesondere ein Zweig der KI, der als Computer Vision bekannt ist, ermöglicht es Maschinen, Bilder und Videos zu interpretieren und zu verstehen. Computer Vision ermöglicht es Systemen, Objekte zu erkennen, track und visuelle Details in Echtzeit zu analysieren, was sie für Anwendungen wie Verkehrsüberwachung, industrielle Inspektion und Robotik unverzichtbar macht.

Diese Funktionen werden durch Computer-Vision-Modelle wie Ultralytics ermöglicht, das eine Vielzahl von Vision-Aufgaben unterstützt, darunter Objekterkennung und Instanzsegmentierung. Während die Objekterkennung Objekte anhand einfacher Begrenzungsrahmen identifiziert, geht die Instanzsegmentierung noch einen Schritt weiter, indem sie jedes Objekt auf Pixelebene umreißt und so genauere und zuverlässigere Ergebnisse in realen Szenarien ermöglicht.

Abb. 1: Segmentierung von Objekten in einem Bild mit YOLO26

Modelle wie YOLO26 sind vortrainiert und können segment wie Menschen, Autos und Tiere sofort segment . Für spezifischere Anwendungen können sie jedoch auch individuell trainiert werden. Mit anderen Worten: Die Modelle können lernen, wie Objekte aussehen und wie man sie genau umreißt.

In diesem Artikel zeigen wir Ihnen, wie Sie Ultralytics für die Instanzsegmentierung individuell trainieren können. Los geht's!

Was ist Instanzsegmentierung?

Bevor wir uns mit Trainingsmodellen befassen, wollen wir einen Schritt zurücktreten und verstehen, was Instanzsegmentierung eigentlich bedeutet.

Instanzsegmentierung ist eine Aufgabe der Bildverarbeitung, bei der ein Modell jedes einzelne Objekt in einem Bild findet und dessen genaue Form umreißt. Anstatt nur zu erkennen, dass ein Objekt vorhanden ist, untersucht das Modell jedes Pixel im Bild und entscheidet, ob es zu einem bestimmten Objekt gehört. 

Das bedeutet, dass Objekte auch dann getrennt werden können, wenn sie sich überlappen oder sehr nahe beieinander liegen. Ein Schlüsselkonzept, das die Visualisierung der Instanzsegmentierung erleichtert, ist eine Maske. 

Eine Maske ist eine Kontur auf Pixelebene, die nur den Bereich eines Objekts abdeckt. Man kann sich das so vorstellen, als würde man das Objekt mit einem Textmarker ausmalen, während alles andere unberührt bleibt. 

Jedes Objekt erhält eine eigene Maske, wodurch das Modell einzelne Objekte voneinander unterscheiden kann, selbst wenn sie vom gleichen Typ sind, wie beispielsweise zwei Autos oder zwei nebeneinander stehende Personen. 

Abb. 2: Ein Blick auf die Instanzsegmentierung

Um eine bessere Vorstellung davon zu bekommen, was Instanzsegmentierung ist, können wir sie mit anderen gängigen Aufgaben der Bildverarbeitung vergleichen. Bei der Objekterkennung werden Begrenzungsrahmen verwendet, also einfache Rechtecke, die um Objekte herum gezeichnet werden. Begrenzungsrahmen sind schnell und nützlich, erfassen jedoch nicht die genaue Form eines Objekts. 

Die semantische Segmentierung hingegen kennzeichnet jedes Pixel im Bild nach Kategorie, unterscheidet jedoch nicht zwischen einzelnen Objekten derselben Klasse. Die Instanzsegmentierung kombiniert das Beste aus beiden Ansätzen, indem sie Objektkategorien identifiziert und jedem einzelnen Objekt eine separate Maske zuweist.

Da die Instanzsegmentierung so detaillierte Informationen liefert, ist sie besonders nützlich in realen Anwendungen wie der automatisierten Qualitätsprüfung, der medizinischen Bildgebung und der Robotik. Aufgaben, die präzise Messungen, genaue Grenzen oder die Trennung von Objekten erfordern, können von diesem Verständnis auf Pixelebene profitieren.

Ultralytics unterstützt Instanzsegmentierung 

Ultralytics ist ein End-to-End-Computervisionsmodell auf dem neuesten Stand der Technik ohne Nicht-Maximalunterdrückung (NMS), das für die schnelle und effiziente Bearbeitung realer Bildverarbeitungsaufgaben entwickelt wurde. Es gehört zur Ultralytics YOLO von Erkennungsmodellen, die Bilder und Videos in Echtzeit verarbeiten und dabei präzise Ergebnisse liefern können. 

YOLO26 unterstützt mehrere Bildverarbeitungsaufgaben innerhalb eines einzigen Frameworks, darunter Objekterkennung, Posenschätzung, Bildklassifizierung, orientierte Begrenzungsrahmenerkennung (obb ) und Instanzsegmentierung. 

YOLO26 ist sofort einsatzbereit, d. h. es hat bereits gelernt, gängige Objekte wie Personen, Fahrzeuge und Alltagsgegenstände aus großen, weit verbreiteten Datensätzen wie dem COCO und dem ImageNet zu erkennen. Sie können das Modell sofort und ohne zusätzliches Training verwenden.

Wenn Ihre Anwendung jedoch einzigartige Objekte, spezifische Umgebungen oder ungewöhnliche Lichtverhältnisse umfasst, kann das Training eines benutzerdefinierten Modells die Ergebnisse erheblich verbessern. Durch das Training von YOLO26 mit Ihren eigenen beschrifteten Bildern können Sie dem Modell genau beibringen, wonach es suchen und wie es Objekte für Ihren spezifischen Anwendungsfall genauer umreißen soll.

Dieser Prozess wird auch als Feinabstimmung bezeichnet. Anstatt ein Modell von Grund auf neu zu trainieren, beginnt die Feinabstimmung mit einem vortrainierten YOLO26-Modell und passt es mithilfe Ihrer eigenen Daten behutsam an. Da das Modell bereits allgemeine visuelle Muster wie Kanten, Formen und Texturen versteht, benötigt es weitaus weniger beschriftete Bilder und viel weniger Zeit, um Ihre spezifischen Objekte zu lernen.

Einfach ausgedrückt ist die Feinabstimmung schneller, effizienter und leichter zugänglich als das Training eines Modells von Grund auf. Das benutzerdefinierte Training mit YOLO26 ist eine praktische Option, selbst für Anfänger oder Teams, die mit begrenzten Daten- und Rechenressourcen arbeiten.

Erkundung von YOLO26-Anwendungen zur Instanzsegmentierung

Wo kann die Instanzsegmentierung also wirkungsvoll eingesetzt werden? In Situationen, in denen es wichtig ist, Objekte voneinander zu unterscheiden und ihre genauen Formen zu erkennen, insbesondere wenn es eng wird oder sich Objekte überlappen.

Hier sind einige gängige Arbeitsabläufe, bei denen die Instanzsegmentierung einen echten Unterschied macht:

  • Luftbild- und Drohnenaufnahmen: Diese Aufgabe ermöglicht es Drohnen, Objekte wie Gebäude, Fahrzeuge und Vegetation in Luftbildern für Kartierung, Inspektion und Vermessung zu trennen.
  • Sportanalytik: Instanzsegmentierung hilft bei der Analyse von Spielerbewegungen und Interaktionen, indem einzelne Athleten während Spielen oder Trainingseinheiten vom Hintergrund getrennt werden.
  • Bau- und Infrastrukturüberwachung: Hilft bei der Identifizierung von Strukturelementen, Rissen oder beschädigten Bereichen in Gebäuden, Brücken und Straßen für die Wartungsplanung.
  • Gesundheitswesen und medizinische Bildgebung: Durch Instanzsegmentierung lassen sich Zellen, Gewebe oder medizinische Instrumente präzise umreißen, was eine genauere Analyse und Diagnose ermöglicht.
  • Landwirtschaft und Umweltüberwachung: Es kann Nutzpflanzen, Früchte oder Pflanzenkrankheiten identifizieren und unterscheiden, wodurch sich Erträge leichter abschätzen und gezielte Behandlungen durchführen lassen.
Abb. 3: Beispiel für die Segmentierung von Unkraut mit YOLO26 (Quelle)

Wie funktioniert das benutzerdefinierte Training von YOLO26 für die Instanzsegmentierung?

Als Nächstes wollen wir uns damit befassen, wie benutzerdefiniertes Training funktioniert. Das Training eines Modells mag technisch klingen, doch der gesamte Prozess ist unkompliziert.

Sie können Ihre Bilder vorbereiten, die Objekte kennzeichnen, die das Modell lernen soll, eine kleine Einstellungsdatei konfigurieren und dann YOLO26 mit dem Ultralytics Python trainieren. DasPython ist eine Softwarebibliothek, die gebrauchsfertige Tools für das Trainieren, Testen und Bereitstellen YOLO bereitstellt, ohne dass alles von Grund auf neu erstellt werden muss.

Schritt 1: Bereiten Sie Ihren benutzerdefinierten Datensatz vor.

Der erste Schritt besteht darin, Ihren benutzerdefinierten Segmentierungsdatensatz vorzubereiten. Ein Datensatz ist einfach eine Sammlung von Bildern, die die Objekte zeigen, die das Modell lernen soll. 

Versuchen Sie, Bilder einzubeziehen, die reale Bedingungen widerspiegeln, wie z. B. unterschiedliche Blickwinkel, Beleuchtung, Hintergründe und Objektgrößen. Je vielfältiger Ihre Bilder sind, desto besser wird Ihr Modell funktionieren.

Für die Segmentierung benötigen Ihre Bilder beispielsweise auch Annotationen. Bei der Annotation werden die Objekte in jedem Bild beschriftet, damit das Modell weiß, was es lernen soll. Anstatt einfache Kästchen zu zeichnen, zeichnen Sie detaillierte Umrisse (Polygone) um jedes Objekt, um dessen genaue Form zu markieren. Diese Umrisse werden zu Masken, die das Modell lernen muss, um Vorhersagen zu treffen.

Es gibt mehrere Open-Source-Annotationstools, mit denen Sie diese Beschriftungen erstellen können. Viele dieser Tools bieten benutzerfreundliche Oberflächen, über die Sie Bilder hochladen und Objektkonturen direkt darauf zeichnen können. 

Sobald Ihre Bilder und Anmerkungen fertig sind, können Sie sie in Trainings- und Validierungsordnern organisieren. Eine typische Aufteilung ist 80 % der Bilder für das Training und 20 % für die Validierung, obwohl je nach Größe Ihres Datensatzes auch 70 % für das Training und 30 % für die Validierung üblich sind. Der Trainingssatz dient zum Trainieren des Modells, während der Validierungssatz dazu verwendet wird, um zu messen, wie gut es bei Bildern funktioniert, die es zuvor noch nicht gesehen hat.

Es ist wichtig, diese Aufteilung ausgewogen zu halten und sicherzustellen, dass beide Ordner eine Vielzahl von Beispielen enthalten. Ein sauberer, gut beschrifteter Datensatz mit einer angemessenen Aufteilung zwischen Training und Validierung bildet die Grundlage für ein starkes Instanzsegmentierungsmodell.

Schritt 2: Erstellen Sie eine YAML-Datei für den Datensatz.

Nachdem Sie Ihre Bilder und Anmerkungen vorbereitet haben, erstellen Sie im nächsten Schritt eine YAML-Datei für den Datensatz. Diese Datei gibt an, wo sich Ihr Datensatz befindet und welche Objektklassen das Modell während des Trainings lernen soll.

In dieser Datei können Sie das Stammverzeichnis des Datensatzes, die Pfade zu Ihren Trainings- und Validierungsbildordnern sowie die Liste der Klassennamen definieren. Die Klassennamen müssen in derselben Reihenfolge aufgeführt werden wie die in Ihren Annotationsdateien verwendeten Klassennummern, damit alles korrekt übereinstimmt.

Wenn Sie Fragen zum genauen Format haben, finden Sie weitere Informationen in der offiziellen Ultralytics

Schritt 3: Installieren Sie das Ultralytics Python .

Nachdem Sie nun Ihren Datensatz und Ihre YAML-Datei vorbereitet haben, müssen Sie im nächsten Schritt dasPython installieren. 

Dieses Paket enthält die erforderlichen Tools zum Trainieren, Validieren, Ausführen von Inferenz und Exportieren von YOLO26-Modellen. Es bietet eine optimierte Möglichkeit, mit YOLO zu arbeiten, ohne komplexe Trainingspipelines von Grund auf neu erstellen zu müssen.

Bevor Sie das Ultralytics Python installieren, sollten Sie sich überlegen, wo Sie Ihren Code ausführen möchten. Sie können mit dem Ultralytics in verschiedenen Entwicklungsumgebungen arbeiten, zum Beispiel:

  • Befehlszeilenschnittstelle (CLI): Hierbei handelt es sich um eine textbasierte Umgebung, in der Sie mit Ihrem Computer interagieren, indem Sie Befehle eingeben. Anstatt wie in einer grafischen Benutzeroberfläche auf Schaltflächen zu klicken oder durch Menüs zu navigieren, geben Sie schriftliche Anweisungen ein, um Programme auszuführen und Aufgaben direkt auszuführen.
  • Jupyter Notebooks: Eine interaktive Umgebung, in der Sie Code in kleinen Abschnitten schreiben und ausführen und sofort die Ausgabe sehen können. Dies ist hilfreich für Experimente und zum Lernen.
  • Google : Eine cloudbasierte Notebook-Plattform, die keine lokale Installation erfordert und optionalen Zugriff auf Grafikprozessoren (GPUs) bietet. Dies ist oft die einfachste Option für Anfänger.

Nachdem Sie Ihre Umgebung ausgewählt haben, können Sie das Ultralytics Python installieren. Führen Sie dazu den folgenden Befehl aus:

pip install ultralytics

Wenn Sie eine notebookbasierte Umgebung wie Google oder Jupyter Notebook verwenden, fügen Sie am Anfang des Befehls ein Ausrufezeichen hinzu. Bei Problemen mit der Installation finden Sie in der Ultralytics oder im Leitfaden zur Fehlerbehebung häufige Lösungen und Tipps zur Einrichtung der Umgebung. 

Nach der Installation können Sie ein vortrainiertes YOLO26-Segmentierungsmodell laden und mit dem Training beginnen.

Schritt 4: Trainieren Sie YOLO26 für die Instanzsegmentierung

Bevor Sie mit dem Training beginnen, müssen Sie eine Modellgröße auswählen. YOLO26-Modelle sind in verschiedenen Größen erhältlich: Nano (n), Small (s), Medium (m), Large (l) und Extra Large (x). 

Kleinere Modelle trainieren schneller und laufen effizienter auf Zentralprozessoren (CPUs) oder Edge-Geräten, während größere Modelle in der Regel eine höhere Genauigkeit bieten, jedoch mehr Speicherplatz benötigen und von GPU profitieren. Wenn Sie gerade erst anfangen oder mit begrenzter Hardware arbeiten, ist die Nano-Version (YOLO26n) eine praktische Wahl.

Nachdem Sie eine Modellgröße ausgewählt haben, laden Sie im nächsten Schritt ein vortrainiertes Segmentierungsmodell und beginnen mit dem Training anhand Ihres benutzerdefinierten Datensatzes. Dazu müssen Sie die vortrainierte Modelldatei, den Pfad zu Ihrer Datensatz-YAML-Datei, die Anzahl der Epochen und die Bildgröße wie unten gezeigt angeben. 

from ultralytics import YOLO

model = YOLO(""yolo26n-seg.pt")

results = model.train(data="path/to/file.yaml", epochs=100, imgsz=640)

Die Anzahl der Epochen bestimmt, wie oft das Modell den gesamten Trainingsdatensatz durchläuft. Bei jeder Epoche erstellt das Modell Vorhersagen, vergleicht diese mit den korrekten Annotationen, berechnet Fehler und aktualisiert seine internen Parameter, um die Leistung zu verbessern.

Wenn das Training korrekt startet, werden die Modellkonfiguration, das Scannen des Datensatzes und der Trainingsfortschritt in Ihrem Terminal oder Notebook angezeigt. Im Laufe des Trainings werden die Verlustwerte und Bewertungsmetriken nach jeder Epoche aktualisiert und zeigen, wie sich das Modell im Laufe der Zeit verbessert.

Schritt 5: Bewerten Sie die Leistung des individuell trainierten Modells.

Nach Abschluss des Trainingsprozesses können Sie die Leistungskennzahlen des Modells überprüfen und validieren. In Google navigieren Sie zum Ordner „runs“, dann zum Ordnersegmentund schließlich zum Ordner „train“, wo Sie Protokolle mit den wichtigsten Leistungskennzahlen finden.

Für Benutzer, die in einer Python arbeiten, werden die Trainingsergebnisse standardmäßig im Verzeichnis „runs/train/“ innerhalb Ihres aktuellen Arbeitsverzeichnisses gespeichert. Bei jedem Trainingslauf wird ein neues Unterverzeichnis erstellt, z. B. runs/train/exp oder runs/train/exp2, in dem Sie Protokolle, gespeicherte Gewichte und andere Ausgaben zu diesem Experiment finden.

Wenn Sie die CLI verwenden, können Sie mit dem Befehlyolo auf diese Ergebnisse zugreifen und sie verwalten. Mit diesem Befehl können Sie die Pfade und Konfigurationen im Zusammenhang mit Trainingsprotokollen und Experimentdetails anzeigen oder ändern.

Unter den gespeicherten Ausgaben finden Sie auch Grafiken, die während des Trainings erstellt wurden. Diese Grafiken zeigen, wie sich das Modell im Laufe der Zeit verbessert hat. Sie zeigen beispielsweise, wie der Verlust im Laufe des Lernprozesses des Modells abgenommen hat und wie sich Bewertungsmetriken wie Präzision, Recall und mittlere durchschnittliche Präzision über die Epochen hinweg verbessert haben.

Abb. 4: Die Arten von Diagrammen, die Sie zur Bewertung Ihres Modells analysieren können (Quelle)

Anhand dieser visuellen Trends können Sie erkennen, ob das Modell erfolgreich trainiert wurde und wie stark es sich vom Beginn bis zum Ende des Trainings verbessert hat. Durch die Überprüfung sowohl der numerischen Metriken als auch der Grafiken erhalten Sie ein klareres Bild davon, wie gut Ihr Instanzsegmentierungsmodell funktioniert, bevor Sie mit dem Testen neuer Bilder fortfahren.

Schritt 6: Testen Sie Ihr Modell und führen Sie Inferenzberechnungen durch.

Nachdem Sie Ihr Modell validiert haben, besteht der letzte Schritt darin, es mit neuen Bildern zu testen. Dieser Vorgang wird als Inferenz bezeichnet, was einfach bedeutet, dass Sie Ihr trainiertes Modell verwenden, um Vorhersagen zu unbekannten Daten zu treffen.

Sie können die Inferenz in Python folgt ausführen:

results = model.predict("path/to/image.jpg", save=True, conf=0.3)

In diesem Beispiel kann „path/to/image.jpg“ durch den Pfad zu dem Bild ersetzt werden, das Sie testen möchten. 

Die Einstellung „save=True“ weist das Modell an, ein neues Bild zu generieren und zu speichern, das die vorhergesagten Segmentierungsmasken enthält, die über das Originalbild gelegt wurden. 

Die Einstellung „conf=0,3“ steuert den Konfidenzschwellenwert, was bedeutet, dass das Modell nur Vorhersagen anzeigt, deren Richtigkeit es mit mindestens 30 % Sicherheit annimmt. Durch Verringern dieses Werts werden möglicherweise mehr Erkennungen angezeigt, während das Modell durch Erhöhen dieses Werts selektiver wird.

Nachdem Sie den Befehl ausgeführt haben, erstellt das Modell einen neuen Ordner im Verzeichnis „runs“, in dem es das Ausgabebild speichert. Sie können das gespeicherte Bild öffnen, um visuell zu überprüfen, wie gut die Segmentierungsmasken den Objektgrenzen folgen und ob überlappende Objekte korrekt getrennt sind.

Wenn Sie das Modell mit verschiedenen Bildern, Hintergründen und Lichtverhältnissen testen, erhalten Sie ein klareres Verständnis davon, wie es außerhalb des Trainingsdatensatzes funktioniert. Sobald die Ergebnisse konsistent und genau sind, kann das Modell exportiert und eingesetzt werden.

Schritt 7: Exportieren und Bereitstellen Ihres Modells

Nachdem Sie Ihr Modell getestet und dessen gute Leistung bestätigt haben, besteht der letzte Schritt darin, es zu exportieren und bereitzustellen. Durch den Export wird Ihr trainiertes YOLO26-Modell in ein Format konvertiert, das in verschiedenen Umgebungen ausgeführt werden kann, z. B. auf Produktionsservern, Edge-Geräten oder in mobilen Anwendungen.

Ultralytics mehrere Exportformate, sodass Sie dasjenige auswählen können, das am besten zu Ihrer Bereitstellungsumgebung passt. Sie können beispielsweise in ONNX exportieren, ONNX eine breite Kompatibilität zwischen verschiedenen Plattformen ONNX , TensorRT GPU auf NVIDIA zu optimieren, oder OpenVINO eine effiziente CPU Bereitstellung auf Intel OpenVINO . Diese Integrationen erleichtern die Ausführung Ihres Modells außerhalb der Trainingsumgebung und sorgen für eine starke Echtzeitleistung.

Sie können Ihr Modell in Python dem folgenden Befehl exportieren:

model.export(format="onnx")

Dieser Befehl konvertiert Ihr trainiertes Modell in ONNX . Sie könnenonnx je nach Ihren Bereitstellungsanforderungen durch andere unterstützte Formate ersetzen.

Nach dem Export kann Ihr Modell in Anwendungen wie Webdienste, eingebettete Bildverarbeitungssysteme, Robotikplattformen oder industrielle Inspektionssysteme integriert werden. In dieser Phase kann Ihr individuell trainiertes YOLO26-Instanzsegmentierungsmodell vom Experimentierstadium in die praktische Anwendung übergehen.

Wesentliche Erkenntnisse

Das benutzerdefinierte Training Ultralytics für die Instanzsegmentierung bietet Ihnen die Flexibilität, ein Modell zu erstellen, das genau auf Ihren spezifischen Anwendungsfall zugeschnitten ist. Durch die Vorbereitung eines klaren Datensatzes, die Einrichtung Ihrer YAML-Datei, das Training mit vortrainierten Segmentierungsgewichten und die Überprüfung der Ergebnisse können Sie dem Modell beibringen, jedes Objekt auf Pixelebene genau zu umreißen. Nach dem Testen und Exportieren kann Ihr YOLO26-Modell von der Entwicklung in mehrskalige reale Anwendungen überführt werden.

Treten Sie unserer Community bei und werfen Sie einen Blick in unser GitHub-Repository, um mehr über KI zu erfahren. Wenn Sie Ihr eigenes Vision-KI-Projekt aufbauen möchten, informieren Sie sich über unsere Lizenzoptionen. Erfahren Sie mehr über Anwendungen wie KI im Gesundheitswesen und Vision-KI im Einzelhandel auf unseren Lösungsseiten.

Lasst uns gemeinsam die Zukunft
der KI gestalten!

Beginnen Sie Ihre Reise mit der Zukunft des maschinellen Lernens

Kostenlos starten