Einführung einer generativen Bild-zu-Sprache-KI-Anwendung mit Amazon SageMaker und Hugging Face | Amazon Web Services

Einführung einer generativen Bild-zu-Sprache-KI-Anwendung mit Amazon SageMaker und Hugging Face | Amazon Web Services

Sehverlust kommt in verschiedenen Formen vor. Für einige ist es von Geburt an, für andere ist es ein langsamer Rückgang im Laufe der Zeit, der mit vielen Verfallsdaten einhergeht: Der Tag, an dem Sie keine Bilder sehen, sich selbst oder die Gesichter geliebter Menschen nicht mehr erkennen oder sogar Ihre E-Mails lesen können. In unserem vorherigen Blogpost Ermöglichen Sie Sehbehinderten das Hören von Dokumenten mit Amazon Textract und Amazon Polly, wir haben Ihnen unsere Text-to-Speech-Anwendung namens gezeigt „Lesen Sie für mich“. Die Barrierefreiheit hat große Fortschritte gemacht, aber was ist mit Bildern?

Auf der AWS re:Invent-Konferenz 2022 in Las Vegas haben wir demonstriert „Beschreibe für mich“ auf der AWS Builders' Fair, einer Website, die Sehbehinderten hilft, Bilder durch Bildunterschriften, Gesichtserkennung und Text-to-Speech zu verstehen, eine Technologie, die wir als „Image to Speech“ bezeichnen. Durch den Einsatz mehrerer KI/ML-Dienste generiert „Describe For Me“ eine Bildunterschrift für ein Eingabebild und liest diese mit klarer, natürlich klingender Stimme in verschiedenen Sprachen und Dialekten vor.

In diesem Blogbeitrag führen wir Sie durch die Lösungsarchitektur hinter „Describe For Me“ und die Designüberlegungen unserer Lösung.

Die Lösung im Überblick

Die folgende Referenzarchitektur zeigt den Arbeitsablauf eines Benutzers, der mit einem Telefon ein Bild aufnimmt und eine MP3-Datei mit Bildunterschriften abspielt.

Referenzarchitektur für die beschriebene Lösung.

Der Workflow umfasst die folgenden Schritte:

  1. AWS verstärken verteilt die DescribeForMe-Web-App, bestehend aus HTML, JavaScript und CSS, an die mobilen Geräte der Endbenutzer.
  2. Das Amazon Cognito Der Identitätspool gewährt temporären Zugriff auf Amazon S3 Eimer.
  3. Der Benutzer lädt eine Bilddatei hoch Amazon S3 Eimer verwenden AWS-SDK über die Web-App.
  4. Die DescribeForMe-Webanwendung ruft die Back-End-KI-Dienste auf, indem sie die sendet Amazon S3 Objekt Geben Sie die Nutzlast ein Amazon API-Gateway
  5. Amazon API-Gateway instanziiert an AWS Step-Funktionen Arbeitsablauf. Die State Machine orchestriert die Dienste für künstliche Intelligenz/maschinelles Lernen (KI/ML). Amazon-Anerkennung, Amazon Sage MakerAmazontext, Amazon Translate, und Amazonas Polly  Verwendung von AWS-Lambda Funktionen.
  6. Das AWS Step-Funktionen Der Workflow erstellt eine Audiodatei als Ausgabe und speichert sie in Amazon S3 im MP3-Format.
  7. Eine vorsignierte URL mit dem Speicherort der Audiodatei Amazon S3 wird über an den Browser des Benutzers zurückgesendet Amazon API-Gateway. Das Mobilgerät des Benutzers spielt die Audiodatei unter Verwendung der vorsignierten URL ab.

Lösungsdurchgang

In diesem Abschnitt konzentrieren wir uns auf die Designüberlegungen, die unsere Wahl begründet haben

  1. Parallelverarbeitung innerhalb eines AWS Step-Funktionen Arbeitsablauf.
  2. Einheitliches Sequenz-zu-Sequenz-vorab trainiertes maschinelles Lernmodell OFA (One For All) von Gesicht umarmen zu Amazon Sage Maker für Bildunterschrift
  3. Amazon-Anerkennung zur Gesichtserkennung

Für einen detaillierteren Überblick darüber, warum wir uns für eine Serverless-Architektur, einen synchronen Workflow, einen Express-Step-Functions-Workflow und eine Headless-Architektur entschieden haben und welche Vorteile sich daraus ergeben, lesen Sie bitte unseren vorherigen Blogbeitrag Ermöglichen Sie Sehbehinderten das Hören von Dokumenten mit Amazon Textract und Amazon Polly

Parallelverarbeitung

Durch die parallele Verarbeitung innerhalb des Step Functions-Workflows konnte die Rechenzeit um bis zu 48 % reduziert werden. Sobald der Benutzer das Bild in den S3-Bucket hochlädt, instanziiert Amazon API Gateway einen AWS Step Functions-Workflow. Anschließend verarbeiten die folgenden drei Lambda-Funktionen das Bild im Step Functions-Workflow parallel.

  • Die erste aufgerufene Lambda-Funktion describe_image analysiert das Bild mit dem OFA_IMAGE_CAPTION-Modell gehostet auf einem SageMaker-Echtzeit-Endpunkt, um Bildunterschriften bereitzustellen.
  • Die zweite aufgerufene Lambda-Funktion describe_faces Prüft zunächst mithilfe von Amazon Rekognition, ob Gesichter vorhanden sind API zum Erkennen von Gesichtern, und wenn „true“, ruft es die Compare Faces API auf. Der Grund dafür ist, dass „Compare Faces“ einen Fehler auslöst, wenn im Bild keine Gesichter gefunden werden. Außerdem ist es schneller, zuerst „Gesichter erkennen“ aufzurufen, als einfach „Gesichter vergleichen“ auszuführen und Fehler zu behandeln, sodass die Verarbeitungszeit bei Bildern ohne Gesichter kürzer ist.
  • Die dritte aufgerufene Lambda-Funktion extract_text verarbeitet Text-to-Speech mithilfe von Amazon Textract und Amazon Comprehend.

Es bietet sich an, die Lambda-Funktionen nacheinander auszuführen, der schnellere und effizientere Weg hierfür ist jedoch die Parallelverarbeitung. Die folgende Tabelle zeigt die eingesparte Rechenzeit für drei Beispielbilder.

Bild Personen Sequentielle Zeit Parallele Zeit Zeitersparnis (%) Bildunterschrift
Einführung einer generativen Bild-zu-Sprache-KI-Anwendung mit Amazon SageMaker und Hugging Face | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai. 0 1869ms 1702ms 8% Eine getigerte Katze rollte sich in einem flauschigen weißen Bett zusammen.
Einführung einer generativen Bild-zu-Sprache-KI-Anwendung mit Amazon SageMaker und Hugging Face | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai. 1 4277ms 2197ms 48% Eine Frau in grüner Bluse und schwarzer Strickjacke lächelt in die Kamera. Ich erkenne eine Person: Kanbo.
Einführung einer generativen Bild-zu-Sprache-KI-Anwendung mit Amazon SageMaker und Hugging Face | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai. 4 6603ms 3904ms 40% Menschen stehen vor den Amazonas-Kugeln. Ich erkenne drei Personen: Kanbo, Jack und Ayman.

Bildunterschrift

Hugging Face ist eine Open-Source-Community und Datenwissenschaftsplattform, die es Benutzern ermöglicht, Modelle für maschinelles Lernen zu teilen, zu erstellen, zu trainieren und bereitzustellen. Nachdem wir die im Hugging Face-Modellhub verfügbaren Modelle untersucht hatten, entschieden wir uns für die Verwendung von OFA-Modell denn wie von den Autoren beschrieben, handelt es sich um „ein aufgaben- und modalitätsunabhängiges Framework, das die Aufgabenumfassendheit unterstützt“.

OFA ist ein Schritt in Richtung „One For All“, da es sich um ein einheitliches multimodales vorab trainiertes Modell handelt, das effektiv auf eine Reihe nachgelagerter Aufgaben übertragen werden kann. Während das OFA-Modell viele Aufgaben unterstützt, einschließlich visueller Erdung, Sprachverständnis und Bilderzeugung, haben wir das verwendet OFA-Modell für Bildunterschriften im Describe For Me-Projekt, um den Bild-zu-Text-Teil der Anwendung auszuführen. Schauen Sie sich das offizielle Repository von OFA (ICML 2022) an. Krepppapier um mehr über die vereinheitlichenden Architekturen, Aufgaben und Modalitäten von OFA durch ein einfaches Sequence-to-Sequence-Lern-Framework zu erfahren.

Um OFA in unsere Anwendung zu integrieren, haben wir das Repo von Hugging Face geklont und das Modell in einen Container verpackt, um es auf einem SageMaker-Endpunkt bereitzustellen. Der Notizbuch in diesem Repo ist eine hervorragende Anleitung zum Bereitstellen des großen OFA-Modells in einem Jupyter-Notebook in SageMaker. Nach der Containerisierung Ihres Inferenzskripts kann das Modell wie im SageMaker beschrieben hinter einem SageMaker-Endpunkt bereitgestellt werden Dokumentation. Sobald das Modell bereitgestellt ist, erstellen Sie einen HTTPS-Endpunkt, der in die Lambda-Funktion „describe_image“ integriert werden kann, die das Bild analysiert, um die Bildunterschrift zu erstellen. Wir haben das OFA-Minimodell eingesetzt, weil es ein kleineres Modell ist und bei ähnlicher Leistung in kürzerer Zeit bereitgestellt werden kann.

Beispiele für Bild-zu-Sprache-Inhalte, die von „Describe For Me“ generiert wurden, sind unten aufgeführt:

Die Aurora Borealis oder Nordlichter füllen den Nachthimmel über der Silhouette eines Hauses.

Die Aurora Borealis oder Nordlichter füllen den Nachthimmel über der Silhouette eines Hauses.

Ein Hund schläft auf einer roten Decke auf einem Hartholzboden, neben einem offenen Koffer voller Spielzeug.

Ein Hund schläft auf einer roten Decke auf einem Hartholzboden, neben einem offenen Koffer voller Spielzeug.

Eine getigerte Katze rollte sich in einem flauschigen weißen Bett zusammen.

Eine getigerte Katze rollte sich in einem flauschigen weißen Bett zusammen.

Gesichtserkennung

Amazon Rekognition Image bietet die Gesichter erkennen Operation, die nach wichtigen Gesichtsmerkmalen wie Augen, Nase und Mund sucht, um Gesichter in einem Eingabebild zu erkennen. In unserer Lösung nutzen wir diese Funktionalität, um alle Personen im Eingabebild zu erkennen. Wenn eine Person erkannt wird, verwenden wir dann die Gesichter vergleichen Operation zum Vergleichen des Gesichts im Eingabebild mit den Gesichtern, mit denen „Describe For Me“ trainiert wurde, und zum Beschreiben der Person mit Namen. Wir haben uns aufgrund der hohen Genauigkeit und der einfachen Integration in unsere Anwendung mit den sofort einsatzbereiten Funktionen für Rekognition zur Gesichtserkennung entschieden.

Eine Gruppe von Menschen posiert in einem Raum für ein Foto. Ich erkenne 4 Personen: Jack, Kanbo, Alak und Trac. Im Bild wurde auch Text gefunden. Es lautet: AWS re: Invent

Eine Gruppe von Menschen posiert in einem Raum für ein Foto. Ich erkenne 4 Personen: Jack, Kanbo, Alak und Trac. Im Bild wurde auch Text gefunden. Es lautet: AWS re: Invent

Mögliche Anwendungsfälle

Alternative Textgenerierung für Webbilder

Alle Bilder auf einer Website müssen einen alternativen Text haben, damit Screenreader sie für Sehbehinderte vorlesen können. Es eignet sich auch gut für die Suchmaschinenoptimierung (SEO). Das Erstellen von alternativen Bildunterschriften kann zeitaufwändig sein, da ein Texter die Aufgabe hat, diese in einem Designdokument bereitzustellen. Die Describe For Me API könnte automatisch Alternativtext für Bilder generieren. Es könnte auch als Browser-Plugin verwendet werden, um auf jeder Website automatisch Bildunterschriften zu Bildern hinzuzufügen, denen Alt-Text fehlt.

Audiobeschreibung für Video

Audiodeskription bietet eine Erzählspur für Videoinhalte, um Sehbehinderten das Mitverfolgen von Filmen zu erleichtern. Da Bildunterschriften robuster und genauer werden, könnte ein Arbeitsablauf möglich sein, der die Erstellung einer Audiospur auf der Grundlage von Beschreibungen für wichtige Teile einer Szene beinhaltet. Amazon Rekognition kann bereits Szenenwechsel, Logos und Abspannsequenzen sowie die Erkennung von Prominenten erkennen. Eine zukünftige Version von „describe“ würde die Automatisierung dieser Schlüsselfunktion für Filme und Videos ermöglichen.

Zusammenfassung

In diesem Beitrag haben wir besprochen, wie man AWS-Dienste, einschließlich KI und serverlose Dienste, nutzen kann, um Sehbehinderten das Sehen von Bildern zu erleichtern. Sie können mehr über das Describe For Me-Projekt erfahren und es nutzen, indem Sie hier klicken beschreibenforme.com. Erfahren Sie mehr über die einzigartigen Funktionen von Amazon Sage MakerAmazon-Anerkennung und für AWS-Partnerschaft mit Hugging Face.

Haftungsausschluss für Drittanbieter-ML-Modelle als Orientierungshilfe

Diese Anleitung dient nur zu Informationszwecken. Sie sollten dennoch Ihre eigene unabhängige Bewertung durchführen und Maßnahmen ergreifen, um sicherzustellen, dass Sie Ihre eigenen spezifischen Qualitätskontrollpraktiken und -standards sowie die lokalen Regeln, Gesetze, Vorschriften, Lizenzen und Nutzungsbedingungen einhalten, die für Sie, Ihre Inhalte usw. gelten das in dieser Anleitung genannte maschinelle Lernmodell eines Drittanbieters. AWS hat keine Kontrolle oder Autorität über das in dieser Anleitung erwähnte Modell für maschinelles Lernen von Drittanbietern und gibt keine Zusicherungen oder Gewährleistungen dafür, dass das Modell für maschinelles Lernen von Drittanbietern sicher, virenfrei, betriebsbereit oder mit Ihrer Produktionsumgebung kompatibel ist und Standards. AWS gibt keine Zusicherungen, Gewährleistungen oder Garantien dafür, dass die Informationen in dieser Anleitung zu einem bestimmten Ergebnis oder Ergebnis führen werden.


Über die Autoren

Jack MarchettiJack Marchetti ist Senior Solutions Architect bei AWS und konzentriert sich darauf, Kunden bei der Modernisierung und Implementierung serverloser, ereignisgesteuerter Architekturen zu unterstützen. Jack ist offiziell blind und lebt mit seiner Frau Erin und seiner Katze Minou in Chicago. Er ist außerdem Drehbuchautor und Regisseur mit einem Schwerpunkt auf Weihnachtsfilmen und Horrorfilmen. Sehen Sie sich Jacks Filmografie bei ihm an IMDb-Seite.

Alak EswaradassAlak Eswaradass ist Senior Solutions Architect bei AWS mit Sitz in Chicago, Illinois. Ihre Leidenschaft besteht darin, Kunden beim Entwerfen von Cloud-Architekturen mithilfe von AWS-Services zu unterstützen, um geschäftliche Herausforderungen zu lösen. Alak ist begeistert davon, SageMaker zur Lösung verschiedener ML-Anwendungsfälle für AWS-Kunden einzusetzen. Wenn sie nicht arbeitet, verbringt Alak gerne Zeit mit ihren Töchtern und erkundet mit ihren Hunden die Natur.

Kandyce BohannonKandyce Bohannon ist ein Senior Solutions Architect mit Sitz in Minneapolis, MN. In dieser Rolle arbeitet Kandyce als technischer Berater für AWS-Kunden bei der Modernisierung von Technologiestrategien, insbesondere im Zusammenhang mit Daten und DevOps, um Best Practices in AWS zu implementieren. Darüber hinaus engagiert sich Kandyce leidenschaftlich dafür, zukünftige Generationen von Technologen zu betreuen und Frauen im Technologiebereich durch das AWS She Builds Tech Skills-Programm zu präsentieren.

Trac DoTrac Do ist Lösungsarchitekt bei AWS. In seiner Rolle arbeitet Trac mit Unternehmenskunden zusammen, um deren Cloud-Migrationen und Initiativen zur Anwendungsmodernisierung zu unterstützen. Seine Leidenschaft besteht darin, die Herausforderungen der Kunden kennenzulernen und sie mithilfe von AWS-Services mit robusten und skalierbaren Lösungen zu lösen. Trac lebt derzeit mit seiner Frau und seinen drei Söhnen in Chicago. Er ist ein großer Luftfahrtenthusiast und ist dabei, seine Privatpilotenlizenz zu erwerben.

Zeitstempel:

Mehr von AWS Maschinelles Lernen