Die Texte in diesem Artikel wurden teilweise mit Hilfe künstlicher Intelligenz erarbeitet und von uns korrigiert und überarbeitet. Für die Generierung wurden folgende Dienste verwendet:
Wie wir maschinelles Lernen bei der Erstellung unserer Artikel einsetzenEinführung
Ob im E-Commerce, im Gesundheitswesen, in den sozialen Medien oder bei selbstfahrenden Autos - die Identifizierung und Lokalisierung von Objekten in Bildern ist eine nützliche Fähigkeit von Algorithmen. Diese Fähigkeit spielt in der heutigen digitalen Welt eine entscheidende Rolle, da sie eine Vielzahl von Anwendungen ermöglicht. Es ist auch eine sehr komplexe Aufgabe, da sie ein hohes Maß an Genauigkeit und Detail erfordert.
In diesem Beitrag möchte ich einen Pretrained Transformer für diese Aufgabe vorstellen: Kosmos2 von Microsoft.
Image Segmentation
Die Bildsegmentierung (Image Segmentation) ist eine Technik der digitalen Bildverarbeitung und des maschinellen Sehens. Dabei wird ein digitales Bild in mehrere Segmente unterteilt, die auch als Image Regions oder Image Objects bezeichnet werden. Ziel der Segmentierung ist es, die Darstellung eines Bildes zu vereinfachen und/oder in etwas zu verändern, das aussagekräftiger und einfacher zu analysieren ist. Genauer gesagt ist die Bildsegmentierung der Prozess, bei dem jedem Pixel in einem Bild ein Name zugewiesen wird, so dass Pixel mit demselben Namen bestimmte Eigenschaften gemeinsam haben. Das Ergebnis der Bildsegmentierung ist ein Satz von Segmenten, die zusammen das gesamte Bild abdecken, oder ein Satz von aus dem Bild extrahierten Konturen. Alle Pixel in einer Region ähneln sich hinsichtlich bestimmter charakteristischer oder berechneter Eigenschaften wie Farbe, Intensität oder Textur. 1 2 3
Image Segmentation wird typischerweise verwendet, um Objekte und Grenzen (Linien, Kurven usw.) in Bildern zu lokalisieren. Bei Anwendung auf einen Image Stack (eine Reihe von Bildern), wie er in der medizinischen Bildgebung üblich ist, können die aus der Bildsegmentierung resultierenden Konturen mit Hilfe von geometrischen Rekonstruktionsalgorithmen zur Erstellung von 3D-Rekonstruktionen verwendet werden. 1 2
Kosmos 2
Kosmos-2 ist ein Multimodal Large Language Model (MLLM), das von Microsoft Research entwickelt wurde. Es wurde entwickelt, um Objektbeschreibungen (z.B. Begrenzungsrahmen) zu generieren und Text in die visuelle Welt zu integrieren. Das bedeutet, dass Textbeschreibungen mit den entsprechenden visuellen Repräsentationen verknüpft werden können.
Kosmos-2 stellt Referenzausdrücke als Links in Markdown dar, wobei Objektbeschreibungen Sequenzen von Orts-Tokens sind. Für das Training werden umfangreiche Daten von grounded image-text pairs (sog. GrIT) verwendet. Zusätzlich zu den bestehenden Fähigkeiten von MLLMs (z.B. allgemeine Modalitäten wahrnehmen, Anweisungen folgen und kontextbezogenes Lernen) ist es möglich, Kosmos-2 in nachgelagerte Anwendungen zu integrieren. Es wird anhand einer breiten Palette von Aufgaben evaluiert, darunter multimodales Grounding, multimodale Referenzierung, Sprachwahrnehmungsaufgaben, Sprachverständnis und Sprachgenerierung.
Diese Arbeit legt den Grundstein für die Entwicklung von Embodiment AI und zeigt die Konvergenz von Sprache, multimodaler Wahrnehmung, Handlung und Weltmodellierung auf, was einen wichtigen Schritt in Richtung artificial general intelligence (AGI) darstellt. 4 5 6 7
Verwendung des Modells
Wie sonst auch immer, beginnen wir damit alle notwendigen Imports zu laden.
Anschließend können wir uns mithilfe der huggingface-API sowohl das eigentliche neuronale Netz als auch den Processor herunterladen.
Nun können wir genauer auf die beiden großen Anwendungsfelder dieses Modells eingehen: Bildbeschreibungen und Bildsegmentierung. Wir beginnen an dieser Stelle aufgrund der Einfachheit und Bekanntheit mit dem Anwendungsfall der Textbeschreibung.
Bildbeschreibung
Für eine Textbeschreibung ist es notwendig, dass wir uns ein Bild heraussuchen welches wir beschreiben wollen lassen. Wir haben dazu dieses Bild als Beispiel ausgewählt:
Wir können nun beginnen, dieses Bild durch PIL einzuladen.
Anschließend können wir das Bild dann mit dem hier definierten Prompt in das Modell zur Verarbeitung geben.
Die Variable generated_text
enthält nun eine einfache Beschreibung. Diese Beschreibung sieht nun wie folgt aus:
<image>. the, to and of as in I that' for is was- on it with The as at bet he have from by are " you his “ this said not has an ( but had we her they will my or were their): up about out who one all been she can more would It</image><grounding> An image of<phrase> a forest with fog</phrase><object><patch_index_0224><patch_index_1023></object>
Dieser Text ist für uns erstmal nicht direkt klar verständlich, enthält allerdings die relevanten Informationen. Glücklicherweise liefert Microsoft direkt den passenden Post-Processing-Prozess mit, damit wir entsprechenden einen lesbareren Text erhalten können:
<grounding> An image of<phrase> a forest with fog</phrase><object><patch_index_0224><patch_index_1023></object>
Hier erhalten wir noch eine Textbeschreibung, welche Modelltoken enthält. Dies kann von Vorteil sein wenn Nutzerinnen mehr über die Struktur der Ausgabe wissen wollen. Sollten Nutzerinnen dies nicht wollen, haben wir hier auch noch den passenden Teil Code, welcher uns einen lesbaren Text und die Position und Größe aller Objekte in dem Bild ausgibt:
An image of a forest with fog
[(‘a forest with fog’, (12, 29), [(0.015625, 0.234375, 0.984375, 0.984375)])]
Nachdem wir gesehen haben, dass dieses Modell auch Bildbeschreibungen erstellen kann, gehen wir nun zur Bildsegmentierung über. Hierfür nutzen wir die untere Zeile der Ausgabe.
Image Segmentation
Für die Bildsegmentierung, welche wir gleich anhand des Beispiels von oben durchführen werden, haben wir den Quellcode von der Quelle 5 genutzt. Hierfür definieren wir die Funktionen und wenden diese anschließend auf unser Beispielbild an.
In diesem Bild sehen wir nun einen Rahmen um unseren Wald, welcher den Namen “Wald mit Nebel” trägt - eine passende Beschreibung des Inhalts dieses Bilds.
Ergebnisse des Modells
Im Folgenden möchten wir nun einmal ein paar unserer Experimente mit diesem Modell präsentieren.
Originales Bild | Modifiziertes Bild |
---|---|
Originales Bild | Modifiziertes Bild |
---|---|
Originales Bild | Modifiziertes Bild |
---|---|
Originales Bild | Modifiziertes Bild |
---|---|
Originales Bild | Modifiziertes Bild |
---|---|
Originales Bild | Modifiziertes Bild |
---|---|
Originales Bild | Modifiziertes Bild |
---|---|
Originales Bild | Modifiziertes Bild |
---|---|
Originales Bild | Modifiziertes Bild |
---|---|
Originales Bild | Modifiziertes Bild |
---|---|
Originales Bild | Modifiziertes Bild |
---|---|
Originales Bild | Modifiziertes Bild |
---|---|
Originales Bild | Modifiziertes Bild |
---|---|
Originales Bild | Modifiziertes Bild |
---|---|
Originales Bild | Modifiziertes Bild |
---|---|
Originales Bild | Modifiziertes Bild |
---|---|
Originales Bild | Modifiziertes Bild |
---|---|
Unserer Meinung nach liefert dieses Modell gute Ergebnisse. Es gibt jedoch einige Ausnahmen, die wir uns anders vorgestellt hätten:
- In diesem Bild, in diesem Bild und in diesem Bild hätten wir uns gewünscht, dass auch der Berg eine eigene Box erhält.
- In diesem Bild hätten wir uns gewünscht, dass die Häuser einzeln geboxt worden wären.
Anwendungsfelder
Einige praktische Anwendungen der Bildsegmentierung umfassen: 1 2 3
- Inhaltsbasierte Bildsuche
- Computer Vision
- Medizinische Bildgebung, einschließlich volumengerenderter Bilder aus Computertomographie, Magnetresonanztomographie und Volumenelektronenmikroskopie
- Lokalisierung von Tumoren und anderen Pathologien
- Messung des Gewebevolumens
- Diagnose, Untersuchung der anatomischen Struktur
- Operationsplanung
- Simulation einer virtuellen Operation
- Navigation innerhalb der Operation
- Strahlentherapie
- Objekterkennung
TL;DR
Bildsegmentierungstechniken reichen von der einfachen, intuitiven heuristischen Analyse bis zur hochmodernen Implementierung von Deep Learning. Herkömmliche Bildsegmentierungsalgorithmen verarbeiten visuelle Merkmale jedes Pixels auf hoher Ebene, wie Farbe oder Helligkeit, um Objektgrenzen und Hintergrundbereiche zu identifizieren. Maschinelles Lernen, das spezielle Datensätze nutzt, wird verwendet, um Modelle zu trainieren, um die spezifischen Arten von Objekten und Regionen, die ein Bild enthält, genau zu klassifizieren. Kosmos2 ist ein solches Modell, welches gute Ergebnisse erzielt. Allerdings wünschen wir uns an der ein oder anderen Stelle hierbei ein wenig mehr Detail, da ab und an Objekte nicht direkt identifiziert werden.