Bildsegmentierung ist ein weiteres beliebtes Laptop Imaginative and prescient Aufgabe, die Anwendungen mit unterschiedlichen Modellen hat. Seine Nützlichkeit in verschiedenen Branchen und Bereichen hat mehr Forschung und Verbesserungen ermöglicht. Maskformer ist Teil einer weiteren Revolution der Bildsegmentierung und nutzt seinen Masks-Consideration-Mechanismus, um Objekte zu erkennen, die ihre Begrenzungsrahmen überlappen.

Die Durchführung solcher Aufgaben wäre mit anderen Bildsegmentierungsmodellen eine Herausforderung, da sie Bilder nur mithilfe des Professional-Pixel-Mechanismus erkennen. Maskformer löst dieses Downside mit seiner Transformer-Architektur. Es gibt andere Modelle wie R-CNN und DETR, die ebenfalls über diese Fähigkeit verfügen. Dennoch werden wir untersuchen, wie der Maskformer mit seiner Herangehensweise an komplexe Objekte die traditionelle Bildsegmentierung durchbricht.

Lernziele

  • Erfahren Sie mehr über die Instanzsegmentierung mit Maskformer.
  • Erhalten Sie einen Einblick in das Funktionsprinzip dieses Modells.
  • Untersuchung der Modellarchitektur von Maskformer.
  • Laufende Inferenz des Maskformer-Modells.
  • Erkundung realer Anwendungen von Maskformer.

Dieser Artikel wurde im Rahmen der veröffentlicht Knowledge Science-Blogathon.

Was ist Maskformer?

Die Bildsegmentierung mit diesem Modell erfolgt in verschiedenen Dimensionen. Masformer zeigt eine hervorragende Leistung bei der Semantik- und Instanzsegmentierung. Für Laptop Imaginative and prescient ist es wichtig, den Unterschied zwischen diesen beiden Aufgaben zu kennen.

Bei der semantischen Segmentierung geht es darum, jedes Pixel eines Bildes einzeln zu bearbeiten. Daher werden die Objekte basierend auf der Klassenbezeichnung in einer Klasse gruppiert. Das heißt, wenn in einem Bild mehr als ein Auto zu sehen ist, segmentiert das Modell alle in die Klassenbezeichnung „Auto“. Die Instanzsegmentierung geht jedoch über die einfache Segmentierung jedes Pixels und die Zuweisung einer Klassenbezeichnung hinaus. Durch die Instanzsegmentierung werden mehrere Instanzen derselben Klasse getrennt. Wenn Sie additionally mehr als ein Auto in einem Bild haben, können Sie alle klassifizieren, additionally Auto1 und Auto2.

Der Unterschied zwischen diesen Segmentierungen zeigt die Einzigartigkeit des Maskformer-Modells. Während andere Modelle das eine oder das andere behandeln können, kann Maskformer mithilfe seines Maskenklassifizierungsansatzes sowohl die Instanz- als auch die semantische Segmentierung auf einheitliche Weise verarbeiten.

Der Maskenklassifizierungsansatz sagt eine Klassenbezeichnung und eine Binärmaske für alle Instanzen eines Objekts im Bild voraus. Dieses Konzept, kombiniert mit einer zusätzlichen Auswertung im Einklang mit der Instanz- und semantischen Segmentierung, hilft bei der Klassifizierung des Maskenklassifizierungsansatzes dieses Modells.

Modellarchitektur des Maskformer-Modells

Die Modellarchitektur von Maskformer nutzt während der gesamten Bildverarbeitungsphase verschiedene Funktionen, um sicherzustellen, dass die Segmentierungsaufgabe sowohl in semantischen als auch in Instanzsituationen ausgeführt wird. Wie andere neuere Laptop-Imaginative and prescient-Modelle verwendet Maskformer eine Transformatorarchitektur, die einer Encoder-Decoder-Struktur folgt, um Segmentierungsaufgaben abzuschließen.

Dieser Prozess beginnt mit der Extraktion einiger wesentlicher Bildmerkmale aus der Eingabe, und das Spine orchestriert diese Section. In diesem Fall könnte das Rückgrat jede gängige Convolutional Neural Community (CNN)-Architektur sein. Diese Systeme extrahieren Bildmerkmale und bezeichnen sie (z. B. F).

Die bezeichneten Merkmale werden dann an einen Pixeldecoder übergeben, der Einbettungen professional Pixel generiert. Dies wird meistens als „E“ bezeichnet. Es verarbeitet den globalen und lokalen Kontext eines Pixels im Bild. Bei der Bearbeitung von Bildern leistet Maskformer jedoch mehr als nur eine Segmentierung professional Pixel. Und damit kommt der Abschnitt über Einbettungen professional Phase.

Andererseits verarbeitet ein Transformatordecoder auch Bildfunktionen. Aber dieses Mal wird ein Satz von „N“ Einbettungen professional Phase (Q) generiert. Dadurch wird das Bildsegment lokalisiert, das es klassifizieren möchte, und verschiedenen Aspekten des Bildes unterschiedliche wichtige Gewichte zugewiesen. Die Identifizierung professional Phase ist die potenzielle Instanz des Objekts im Bild, das der Maskformer identifizieren möchte.

Dieser Prozess unterscheidet sich von der herkömmlichen Transformatorarchitektur. Normalerweise werden Eingabebilder mit einem Encoder erfasst, während der Decoder die Daten zur Verarbeitung einer Ausgabe verwendet. Bei Modellen wie Maskformer fungiert das Spine jedoch als Encoder, der die Eingabe verarbeitet. Diese Eingabedaten generieren Function-Maps, die die Daten der Eingabe bereitstellen.

Dieses Konzept ist die Grundlage dafür, wie dieses Modell Bilder verarbeitet. Aber wie stellt es die Ausgabe bereit? Es gibt einige Particulars zur Funktionsweise der Klassenvorhersagen und -bezeichnungen für dieses Modell. Lassen Sie uns darauf eingehen.

Die in diesem Prozess generierten Einbettungen professional Phase sind nützlich für die Klassenvorhersage in einem Bild. Die N-Masken-Einbettung kann auch potenzielle Objektinstanzen im Eingabebild verarbeiten.

Als nächstes generiert MaskFormer binäre Masken, indem es ein Skalarprodukt zwischen Pixeleinbettungen und Maskeneinbettungen durchführt, gefolgt von einer Sigmoidaktivierung. Dieser Schritt erzeugt Binärmasken für jede Objektinstanz, sodass sich einige Masken überlappen können.

Für die semantische Segmentierung kombiniert MaskFormer die binären Masken und Klassenbezeichnungen durch Matrixmultiplikation, um das endgültige segmentierte, klassifizierte Bild zu erstellen. Die semantische Segmentierung in diesem Modell konzentriert sich auf die Beschriftung jeder Klassenbezeichnung basierend auf jedem Pixel in einem Bild.

Es beschriftet additionally jede Klasse und nicht die Instanz dieser Klassen. Ein gutes Beispiel für die semantische Segmentierung ist das Modell, das die Klasse für jeden Menschen in einem Bild als „Menschen“ bezeichnet. Die Instanzsegmentierung würde jedoch jedes Szenario im Bild kennzeichnen und in „Mensch1“ und „Mensch2“ kategorisieren. Diese Attribute verschaffen Masformer einen Vorsprung bei der Segmentierung im Vergleich zu anderen Modellen.

DETR ist ein weiteres Modell, das eine Instanzsegmentierung durchführen kann. Obwohl es nicht so effizient ist wie Maskformer, stellt seine Methode eine Verbesserung der Segmentierung professional Pixel dar. Dieses Modell verwendet Begrenzungsrahmen um die Klassenwahrscheinlichkeiten der Objekte im Bild vorherzusagen, anstatt die Segmentierung zu maskieren.

Hier ist ein Beispiel dafür, wie die Segmentierung mit DETR funktioniert:

DETR_bounding_boxed

So führen Sie das Modell aus

Die Ausführung dieses Modells erfordert ein paar einfache Schritte. Wir werden die Hugging-Face-Transformer-Bibliothek verwenden, um die Ressourcen für die Instanzsegmentierung eines Bildes zu erhalten.

Importieren der erforderlichen Bibliotheken

Zunächst müssen Sie Werkzeuge zum Verarbeiten und Segmentieren von Bildern in Objekte importieren. Und hier kommen „MaskFormerFeatureExtractor“ und „MaskFormerForInstanceSegmentation“ ins Spiel; Die PIL-Bibliothek verarbeitet Bilder, während „request“ die Bild-URL abruft.

from transformers import MaskFormerFeatureExtractor, MaskFormerForInstanceSegmentation
from PIL import Picture
import requests

Laden des vorab trainierten Maskformer-Modells

Die erste Codezeile initiiert einen Function-Extraktor, der ein Bild für das Modell vorbereitet. Dazu gehört die Größenänderung, Normalisierung und Erstellung von Bildtensoren. Dann laden wir das Modell (trainiert auf dem Coco-Datensatz). Maskformer kann eine Instanzsegmentierung durchführen, und wir haben gerade die Umgebung für diese Aufgabe vorbereitet.

 feature_extractor = MaskFormerFeatureExtractor.from_pretrained("fb/maskformer-swin-base-coco")
mannequin = MaskFormerForInstanceSegmentation.from_pretrained("fb/maskformer-swin-base-coco")

Vorbereiten des Bildes

Da wir über die PIL-Bibliothek verfügen, können wir Bilder in unserer Umgebung laden und ändern. Sie können ein Bild über seine URL laden. Dieser Code hilft auch dabei, das Bild in dem für das MaskFormer-Modell erforderlichen Format vorzubereiten.

 # Load picture from URL
url = "https://photographs.pexels.com/images/5079180/pexels-photo-5079180.jpeg"
picture = Picture.open(requests.get(url, stream=True).uncooked)
inputs = feature_extractor(photographs=picture, return_tensors="pt")
Verwendung von Maskformer für Bilder

Ausführen des Modells auf dem vorverarbeiteten Bild

outputs = mannequin(**inputs)
# mannequin predicts class_queries_logits of form `(batch_size, num_queries)`
# and masks_queries_logits of form `(batch_size, num_queries, peak, width)`
class_queries_logits = outputs.class_queries_logits
masks_queries_logits = outputs.masks_queries_logits

Dadurch wird versucht, dem Modell Klassenvorhersagen für jede Objektinstanz im Bild bereitzustellen. Der Segmentierungsprozess würde Daten anzeigen, die die Anzahl potenzieller Objektinstanzen darstellen, die das Bild erkennt. Darüber hinaus erhalten wir auch binäre Masken, die ihre Positionen im Bild angeben.

Ergebnisse

 # you may go them to feature_extractor for postprocessing
consequence = feature_extractor.post_process_panoptic_segmentation(outputs, target_sizes=(picture.measurement(::-1)))(0)
# we check with the demo notebooks for visualization (see "Sources" part within the MaskFormer docs)
predicted_panoptic_map = consequence("segmentation")

Abschließend verwenden wir den Function-Extraktor, um die Modellausgabe in ein geeignetes Format zu konvertieren. Dann rufen wir die Funktion auf, die eine Ergebnisliste im Bild zurückgibt; Es speichert die endgültige Segmentierungskarte, in der jedem Pixel eine Beschriftung zugewiesen wird, die einer Objektklasse entspricht. Die vollständige Segmentierungskarte definiert additionally die Klasse des Objekts durch jede Pixelbezeichnung.

Um das segmentierte Bild anzuzeigen, müssen Sie sicherstellen, dass die Fackel- und Stoffwechselbibliotheken in der Umgebung verfügbar sind. Dies wird Ihnen helfen, die Ausgabe des Modells zu visualisieren und zu verarbeiten.

import torch
import matplotlib.pyplot as plt

Hier visualisieren wir die Ausgabe, um sie in ein Bildformat umzuwandeln, das wir anzeigen können.

# Convert to PIL picture format and show
plt.imshow(predicted_panoptic_map)
plt.axis('off')
plt.present()
Verwenden von Maskformer für Bilder mit überlappenden Objekten

Reale Anwendung von Maskformer

Hier sind einige praktische Anwendungen dieses Modells in verschiedenen Branchen;

  • Dieses Modell kann in der medizinischen Industrie wertvoll sein. Die Instanzsegmentierung kann bei verschiedenen medizinischen Bildgebungs- und Diagnoseverfahren hilfreich sein
  • Die Instanzsegmentierung hat auch bei der Interpretation von Satellitenbildern Anwendung gefunden.
  • Videoüberwachung ist eine weitere Möglichkeit, Instanzsegmentierungsmodelle zu nutzen. Diese Modelle können Ihnen dabei helfen, Bilder zu erkennen und Objekte in verschiedenen Situationen zu identifizieren.

Es gibt viele Möglichkeiten, Maskformer im wirklichen Leben einzusetzen. Gesichtserkennung, autonome Autos und viele andere Anwendungen können die Instanzsegmentierungsfunktionen dieses Modells übernehmen.

Abschluss

Maskformer kann bei der Bewältigung komplexer Bildsegmentierungsaufgaben hilfreich sein, insbesondere bei Bildern mit überlappenden Objekten. Diese Fähigkeit unterscheidet es von anderen herkömmlichen Bildsegmentierungsmodellen. Seine einzigartige transformatorbasierte Architektur macht es vielseitig genug für semantische und Instanzsegmentierungsaufgaben. Maskformer verbessert traditionelle Professional-Pixel-Methoden und setzt einen neuen Customary in der Segmentierung, wodurch weiteres Potenzial für fortschrittliche Laptop-Imaginative and prescient-Anwendungen eröffnet wird.

Ressourcen

Wichtige Erkenntnisse

Es gibt viele Diskussionspunkte zu diesem Thema, aber hier sind einige Highlights aus der Erkundung dieses Modells;

  • Der einzigartige Ansatz von Maskformer: Dieses Modell verwendet eine spezielle Technik mit dem Maskenaufmerksamkeitsmechanismus mit einem transformatorbasierten Framework, um Bildobjekte mit unterschiedlichen Instanzen zu segmentieren.
  • Vielseitigkeit in der Anwendung: Dieses Modell wird für verschiedene Zwecke in verschiedenen Branchen eingesetzt, darunter autonomes Fahren, medizinische Diagnostik und Raumfahrt (Satelliteninterpretation).
  • Segmentierungsfunktionen: Nicht viele traditionelle Modelle können die duale Segmentierung wie Maskformer verarbeiten, da dieser Modus semantische und Instanzsegmentierung durchführen kann.

Häufig gestellte Fragen

Q1. Was unterscheidet MaskFormer von anderen traditionellen Segmentierungsmodellen?

A. Dieses Modell verwendet einen Maskenaufmerksamkeitsmechanismus innerhalb eines Transformator-Frameworks, der es ihm ermöglicht, überlappende Objekte in Bildern besser zu verarbeiten als Modelle, die Professional-Pixel-Methoden verwenden.

Q2. Kann MaskFormer sowohl semantische als auch Instanzsegmentierung durchführen?

A. MaskFormer ist in der Lage, semantische Segmentierung (Kennzeichnung aller Klasseninstanzen) und Instanzsegmentierung (Unterscheidung einzelner Instanzen innerhalb einer Klasse) durchzuführen.

Q3. Welche Branchen profitieren vom Einsatz von MaskFormer?

A. MaskFormer ist in Branchen wie dem Gesundheitswesen (für medizinische Bildgebung und Diagnostik), der Geodatenanalyse (für Satellitenbilder) und der Sicherheit (für Überwachungssysteme) weit verbreitet.

This autumn. Wie erzeugt MaskFormer das endgültige segmentierte Bild?

A. Es kombiniert Binärmasken mit Klassenbezeichnungen durch Matrixmultiplikation und erstellt so ein endgültiges segmentiertes und klassifiziertes Bild, das jede Objektinstanz genau hervorhebt.

Die in diesem Artikel gezeigten Medien sind nicht Eigentum von Analytics Vidhya und werden nach Ermessen des Autors verwendet.

Hallo! Ich bin David Maigari, ein dynamischer Profi mit einer Leidenschaft für technisches Schreiben, Webentwicklung und die KI-Welt. David ist auch ein Fanatic von Datenwissenschaft und KI-Innovationen.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert