Owl ViT ist ein Laptop Imaginative and prescient Modell, das sehr beliebt geworden ist und in verschiedenen Branchen Anwendung gefunden hat. Dieses Modell nimmt ein Bild und eine Textabfrage als Eingabe auf. Nach der Bildverarbeitung enthält die Ausgabe einen Konfidenzwert und die Place des Objekts (aus der Textabfrage) im Bild.

Die Imaginative and prescient-Transformator-Architektur dieses Modells ermöglicht es ihm, die Beziehung zwischen Textual content und Bildern zu verstehen, was den Bild- und Textual content-Encoder rechtfertigt, den es während der Bildverarbeitung verwendet. Owl ViT verwendet CLIP, sodass die Ähnlichkeiten von Bild und Textual content auch bei Kontrastverlust genau sein können.

Lernziele

  • Erfahren Sie mehr über die Zero-Shot-Objekterkennungsfunktionen von Owl ViT.
  • Studieren Sie die Modellarchitektur und Bildverarbeitungsphasen dieses Modells.
  • Entdecken Sie die Objekterkennung von Owl ViT durch Ausführen von Inferenzen.
  • Erhalten Sie Einblick in reale Anwendungen von Owl ViT.

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

Was ist Zero-Shot-Objekterkennung?

Zero-Shot-Objekterkennung ist ein Laptop Imaginative and prescient System, das einem Modell hilft, Objekte verschiedener Klassen ohne Vorkenntnisse zu identifizieren. Dieses Modell kann Bilder als Eingabe verwenden und eine Liste mit Kandidaten zur Auswahl erhalten, bei denen es sich mit größerer Wahrscheinlichkeit um das Objekt im Bild handelt. Die Fähigkeit dieses Modells stellt außerdem sicher, dass es die Begrenzungsrahmen erkennt, die die Place des Objekts im Bild identifizieren.

Modelle wie Owl ViT würden viele vorab trainierte Daten benötigen, um diese Aufgaben auszuführen. Während des Trainingsprozesses würde additionally die Anzahl der Bilder von Autos, Katzen, Hunden, Fahrrädern usw. verwendet werden. Aber mit Hilfe der Zero-Shot-Objekterkennung können Sie diese Methode anhand von Textual content-Bild-Ähnlichkeiten aufschlüsseln und so Textbeschreibungen einbringen. Im Gegensatz dazu nutzt das Modell sein Sprachverständnis, um die Aufgabe auszuführen. Dieses Konzept ist die Grundlage der Architektur dieses Modells, was uns zum nächsten Abschnitt bringt.

Modellarchitektur von Owl ViT Base Patch32

Owl ViT ist ein Open-Supply-Modell, das CLIP-basierte Bildklassifizierung verwendet. Es kann Objekte jeder Klasse erkennen und mithilfe der Laptop-Imaginative and prescient-Technologie Bilder mit Textbeschreibungen abgleichen.

Die Grundlage dieses Modells ist seine Imaginative and prescient-Transformator-Architektur. Diese Architektur nimmt Bilder in Sequenzen von Patches auf, die von einem Transformator-Encoder verarbeitet werden.

Der Transformer-Encoder übernimmt das Sprachverständnis des Modells, um die Eingabetextabfrage zu verarbeiten. Dies wird vom Imaginative and prescient-Transformer-Encoder weiterverarbeitet, der mit dem Bild in Patches arbeitet. Mit dieser Struktur kann das Modell die Beziehung zwischen Textbeschreibungen und Bildern ermitteln.

Die Imaginative and prescient-Transformator-Architektur ist für viele Laptop-Imaginative and prescient-Aufgaben populär geworden. Beim Owl ViT-Modell ist die Zero-Shot-Objekterkennung der entscheidende Faktor. Das Modell kann Objekte in Bildern problemlos klassifizieren, selbst mit Wörtern, die es zuvor noch nicht gesehen hat, wodurch der Vortrainingsprozess optimiert und Bilder identifiziert werden.

Wie verwende ich dieses Modell Owl ViT Base Patch 32?

Um diese Theorie in die Praxis umzusetzen, müssen wir einige Anforderungen erfüllen, bevor wir das Modell ausführen. Wir werden das verwenden Gesicht umarmen Transformer-Bibliothek, die uns Zugriff auf Open-Supply-Transformer-Modelle und Toolkits bietet. Zum Ausführen dieses Modells sind einige Schritte erforderlich. Beginnen Sie mit dem Importieren der erforderlichen Bibliotheken.

Importieren der erforderlichen Bibliotheken

Zunächst müssen wir drei wesentliche Bibliotheken importieren, um dieses Modell auszuführen: Request, PIL.picture und Torch. Jede dieser Bibliotheken ist für die Objekterkennungsaufgaben erforderlich. Hier ist die kurze Aufschlüsselung;

Die „Request“-Bibliothek ist für HTTPS-Anfragen und den Zugriff auf die API unerlässlich. Diese Bibliothek kann mit Webservern interagieren und ermöglicht Ihnen das Herunterladen von Webinhalten wie Bildern über Hyperlinks. Andererseits ermöglicht Ihnen die PIL-Bibliothek das Öffnen, Herunterladen und Ändern von Bildern in verschiedenen Dateiformaten. Torch ist ein Deep-Studying-Framework, das verschiedene Tensoroperationen ermöglicht, wie z. B. Modelltraining, GPU-Unterstützung und passende Lernaufgaben.

import requests
from PIL import Picture
import torch

Laden des Owl ViT-Modells

Die Bereitstellung vorverarbeiteter Daten für Owl ViT ist ein weiterer Teil der Ausführung dieses Modells.

from transformers import OwlViTProcessor, OwlViTForObjectDetection

Dieser Code stellt sicher, dass das Modell Eingabeformate verarbeiten, die Größe von Bildern ändern und mit Eingaben wie Textbeschreibungen arbeiten kann. Somit verfügen Sie über vorverarbeitete Daten und die fein abgestimmten Aufgaben, die sie ausführen.

In diesem Fall verwenden wir Owl zur Objekterkennung, additionally definieren wir den Prozessor und die erwartete Eingabe, die das Modell verarbeiten würde.

processor = OwlViTProcessor.from_pretrained("google/owlvit-base-patch32")
mannequin = OwlViTForObjectDetection.from_pretrained("google/owlvit-base-patch32")

Bildverarbeitungsparameter

image_path = "/content material/5 cats.jpg"
picture = Picture.open(image_path)
texts = (("a photograph of a cat", "a photograph of a canine"))
inputs = processor(textual content=texts, photographs=picture, return_tensors="pt")
outputs = mannequin(**inputs)

Ein Owl ViT-Prozessor muss mit dem Eingang kompatibel sein, den Sie verwenden möchten. Mit „processor(textual content=texts, photographs=picture, return_tensors=“pt“)“ können Sie additionally nicht nur Bild- und Textbeschreibungen verarbeiten. Diese Zeile gibt auch an, dass die vorverarbeiteten Daten als PyTorch-Tensoren zurückgegeben werden sollen.

Bildverarbeitungsparameter

Hier rufen wir den Bildpfad mithilfe einer Datei von unserem Laptop ab. Dies ist eine Various zur Verwendung einer URL und dem Aufruf von PIL, um das Bild für die Objekterkennungsaufgabe zu laden.

Es gibt einige gemeinsame Bildverarbeitungsparameter, die dem OWL-ViT-Modell gemeinsam sind, und wir werden hier einige davon kurz betrachten;

  • Pixelwerte: Dieser Parameter stellt normalerweise Rohbilddaten dar, die von mehreren Bildern übergeben wurden. Die Pixelwerte liegen in der Type vor Fackeltensor mit der Batchgröße, den Farbkanälen (num_channels) und der Breite und Höhe jedes Bildes. Pixelwerte werden normalerweise in einem Bereich dargestellt (z. B. 0 bis 1 oder -1 bis 1).
  • Query_pixel_values: Während Sie die Rohbilddaten für mehrere Bilder finden können, können Sie mit diesem Parameter dem Modell Pixeldaten für bestimmte Bilder bereitstellen, die es in anderen Zielbildern zu identifizieren versucht.
  • Ausgabe_Aufmerksamkeit: Der Ausgabeparameter ist ein wesentlicher Wert für Objekterkennungsmodelle wie OWl ViT. Abhängig vom Modelltyp können Sie Aufmerksamkeitsgewichtungen über Token oder Bildfelder hinweg anzeigen. Die Aufmerksamkeitstensoren können dem Modell dabei helfen, zu visualisieren, welchen Teil der Eingabe es priorisieren sollte, was in diesem Fall das erkannte Objekt ist.
  • return_dict: Dies ist ein weiterer wichtiger Parameter, der dem Modell hilft, die Ausgabeergebnisse von Bildern zurückzugeben, die die Objekterkennung durchlaufen haben. Wenn dies auf „True“ gesetzt ist, können Sie problemlos auf die Ausgabe zugreifen.

Verarbeitung von Textual content- und Bildeingaben zur Objekterkennung

Die Texte zeigen die Kandidatenliste für die Klassen: „ein Foto einer Katze“ und ein „Foto eines Hundes“. Schließlich verarbeitet das Modell die Textual content- und Bildbeschreibungen vor, um sie als Eingabe für das Modell geeignet zu machen. Die Ausgabe enthält Informationen über das erkannte Objekt im Bild, in diesem Fall einen Konfidenzwert. Es kann auch Bounding Boxing verwenden, um die Place des Bildes zu identifizieren.

# Goal picture sizes (peak, width) to rescale field predictions (batch_size, 2)
target_sizes = torch.Tensor((picture.measurement(::-1)))
# Convert outputs (bounding packing containers and sophistication logits) to COCO API
outcomes = processor.post_process_object_detection(outputs=outputs, threshold=0.1, target_sizes=target_sizes)

Dieser Code bereitet das Bild so vor, dass es der Vorhersage aus dem Begrenzungsrahmen entspricht, und stellt außerdem sicher, dass das Format mit dem Datensatz kompatibel ist, der das Bild enthält. Das Ergebnis ist eine strukturierte Ausgabe der erkannten Objekte, jedes mit seinem Begrenzungsrahmen und seiner Klassenbezeichnung, geeignet für die Auswertung oder weitere Anwendungsverwendung.

Hier ist eine einfache Aufschlüsselung;

target_sizes = Torch.Tensor: Dieser Code definiert die Zielbildgrößen im Format (Höhe, Breite). Es kehrt die Abmessungen (Breite, Höhe) des Originalbilds um und speichert sie als PyTorch-Tensor.

Darüber hinaus verwendet der Code das ‚ des Prozessorspost_process_object_detection‘ Methode zum Konvertieren der Rohausgabe des Modells in Begrenzungsrahmen und Klassenbeschriftungen.

Bild-Textual content-Übereinstimmung

i = 0  # Retrieve predictions for the primary picture for the corresponding textual content queries
textual content = texts(i)
packing containers, scores, labels = outcomes(i)("packing containers"), outcomes(i)("scores"), outcomes(i)("labels")

Hier möchten Sie das Erkennungsergebnis erhalten, indem Sie die Textabfrage, Bewertungen und Beschriftungen für das erkannte Objekt im Bild analysieren. Die vollständigen Ressourcen hierzu finden Sie hier Notizbuch.

Abschließend erhalten wir nach Abschluss der Objekterkennungsaufgabe eine Zusammenfassung der Ergebnisse. Wir können dies mit dem unten gezeigten Code ausführen;

# Print detected objects and rescaled field coordinates
for field, rating, label in zip(packing containers, scores, labels):
    field = (spherical(i, 2) for i in field.tolist())
    print(f"Detected {textual content(label)} with confidence {spherical(rating.merchandise(), 3)} at location {field}")
Bild-Text-Übereinstimmung: Owl ViT
Bild-Text-Übereinstimmung: Owl ViT

Reale Anwendung des Owl ViT-Objekterkennungsmodells

Viele Aufgaben umfassen heutzutage Laptop Imaginative and prescient und Objekterkennung. Owl ViT kann für jede der folgenden Anwendungen nützlich sein;

  • Die Bildsuche ist eine der offensichtlichsten Möglichkeiten, dieses Modell zu verwenden. Da es Textual content mit Bildern abgleichen kann, müssten Benutzer für die Suche nach Bildern nur eine Textaufforderung eingeben.
  • Die Objekterkennung kann auch in der Robotik nützliche Anwendungen finden, um Objekte in ihrer Umgebung zu identifizieren.
  • Auch für Benutzer mit Sehverlust ist dieses Software hilfreich, da dieses Modell Bildinhalte anhand ihrer Textabfragen beschreiben kann.

Abschluss

Laptop-Imaginative and prescient-Modelle sind traditionell vielseitig und Owl ViT ist nicht anders. Aufgrund der Zero-Shot-Fähigkeit des Modells können Sie es ohne umfangreiche Vorschulung verwenden. Die Stärke dieses Modells basiert auf der Nutzung der CLIP- und Imaginative and prescient-Transformer-Architektur für den Bild-Textual content-Abgleich, wodurch die Erkundung vereinfacht wird.

Ressourcen

Wichtige Erkenntnisse

  • Die Zero-Shot-Objekterkennung ist der entscheidende Faktor in der Architektur dieses Modells. Dadurch kann das Modell Aufgaben mit Bildern ausführen, ohne dass die Bildklassen vorher bekannt sind. Textabfragen können auch dabei helfen, Objekte zu identifizieren, sodass keine großen Datenmengen für das Vortraining erforderlich sind.
  • Die Fähigkeit dieses Modells, Textual content-Bild-Paare abzugleichen, ermöglicht die Identifizierung von Objekten mithilfe von Textbeschreibungen und Begrenzungsrahmen in Echtzeit.
  • Die Fähigkeiten von Owl ViT erstrecken sich auf reale Anwendungen wie Bildsuche, Robotik und unterstützende Technologie für sehbehinderte Benutzer und unterstreichen die vielseitigen Laptop-Imaginative and prescient-Anwendungen des Modells.

Häufig gestellte Fragen

Q1. Was ist die Zero-Shot-Objekterkennung in Owl ViT?

A. Dank der Zero-Shot-Objekterkennung kann Owl ViT Objekte identifizieren, indem es einfach die Textbeschreibungen der Bilder abgleicht, selbst wenn es nicht auf diese bestimmte Klasse trainiert wurde. Dieses Konzept ermöglicht es dem Modell, neue Objekte allein anhand von Textaufforderungen zu erkennen.

Q2. Wie nutzt Owl ViT den Textual content-Bild-Abgleich?

A. Owl ViT nutzt eine Imaginative and prescient-Transformator-Architektur mit CLIP, die mithilfe von kontrastivem Lernen Bilder mit Textbeschreibungen abgleicht. Dieses Phänomen ermöglicht es, Objekte anhand von Textabfragen zu erkennen, ohne dass bestimmte Objektklassen vorher bekannt sind.

Q3. Welche praktischen Anwendungen gibt es für Owl ViT?

A. Owl ViT kann nützliche Anwendungen in der Bildsuche, in der Robotiktechnologie und für Benutzer mit Sehbehinderung finden. Das bedeutet, dass Menschen mit dieser Herausforderung von diesem Modell profitieren können, da es Objekte basierend auf Texteingaben beschreiben kann.

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