Presentazione di un'applicazione AI generativa da immagine a voce utilizzando Amazon SageMaker e Hugging Face | Servizi Web Amazon

Presentazione di un'applicazione AI generativa da immagine a voce utilizzando Amazon SageMaker e Hugging Face | Servizi Web Amazon

La perdita della vista si presenta in varie forme. Per alcuni è dalla nascita, per altri è una lenta discesa nel tempo che arriva con molte date di scadenza: il giorno in cui non puoi vedere le foto, riconoscere te stesso o i volti dei tuoi cari o persino leggere la tua posta. Nel nostro precedente post sul blog Consenti ai non vedenti di ascoltare i documenti utilizzando Amazon Textract e Amazon Polly, ti abbiamo mostrato la nostra applicazione Text to Speech chiamata "Leggi per me". L'accessibilità ha fatto molta strada, ma per quanto riguarda le immagini?

Alla conferenza AWS re:Invent del 2022 a Las Vegas, abbiamo dimostrato “Descrivimi” all'AWS Builders' Fair, un sito Web che aiuta i non vedenti a comprendere le immagini attraverso didascalie delle immagini, riconoscimento facciale e sintesi vocale, una tecnologia che chiamiamo "Image to Speech". Attraverso l'uso di più servizi AI/ML, "Descrivi per me" genera una didascalia di un'immagine di input e la rileggerà con una voce chiara e naturale in una varietà di lingue e dialetti.

In questo post del blog ti guidiamo attraverso l'architettura della soluzione alla base di "Describe For Me" e le considerazioni di progettazione della nostra soluzione.

Panoramica della soluzione

La seguente architettura di riferimento mostra il flusso di lavoro di un utente che scatta una foto con un telefono e riproduce un MP3 della didascalia dell'immagine.

Architettura di riferimento per la soluzione descritta.

Il flusso di lavoro include i passaggi seguenti,

  1. AWS Amplifica distribuisce l'app Web DescribeForMe composta da HTML, JavaScript e CSS ai dispositivi mobili degli utenti finali.
  2. Il Amazzonia Cognito Il pool di identità concede l'accesso temporaneo a Amazon S3 secchio.
  3. L'utente carica un file immagine nel file Amazon S3 secchio usando SDK AWS attraverso l'app web.
  4. L'app Web DescribeForMe richiama i servizi AI di back-end inviando il file Amazon S3 object Digitare il payload in Gateway API Amazon
  5. Gateway API Amazon istanzia e Funzioni AWS Step flusso di lavoro. La macchina a stati orchestra i servizi di Intelligenza Artificiale/Machine Learning (AI/ML). Rekognition di Amazon, Amazon Sage MakerTesto Amazon, Amazon Traduttore, ed Amazon Polly  utilizzando AWS lambda funzioni.
  6. Il Funzioni AWS Step il flusso di lavoro crea un file audio come output e lo memorizza in Amazon S3 in formato MP3.
  7. Un URL prefirmato con la posizione del file audio memorizzato in Amazon S3 viene rispedito al browser dell'utente tramite Gateway API Amazon. Il dispositivo mobile dell'utente riproduce il file audio utilizzando l'URL prefirmato.

Procedura dettagliata della soluzione

In questa sezione, ci concentriamo sulle considerazioni di progettazione per cui abbiamo scelto

  1. elaborazione parallela all'interno di un Funzioni AWS Step flusso di lavoro
  2. modello di apprendimento automatico pre-addestrato sequenza-sequenza unificato OFA (One For All) da Abbracciare il viso Amazon Sage Maker per la didascalia dell'immagine
  3. Rekognition di Amazon per il riconoscimento facciale

Per una panoramica più dettagliata del motivo per cui abbiamo scelto un'architettura serverless, un flusso di lavoro sincrono, un flusso di lavoro con funzioni rapide, un'architettura headless e i vantaggi ottenuti, leggi il nostro precedente post sul blog Consenti ai non vedenti di ascoltare i documenti utilizzando Amazon Textract e Amazon Polly

Elaborazione parallela

L'utilizzo dell'elaborazione parallela all'interno del flusso di lavoro di Step Functions ha ridotto i tempi di elaborazione fino al 48%. Dopo che l'utente ha caricato l'immagine nel bucket S3, Amazon API Gateway crea un'istanza di un flusso di lavoro AWS Step Functions. Quindi le tre funzioni Lambda seguenti elaborano l'immagine all'interno del flusso di lavoro Step Functions in parallelo.

  • La prima funzione Lambda chiamata describe_image analizza l'immagine utilizzando il Modello OFA_IMAGE_CAPTION ospitato su un endpoint SageMaker in tempo reale per fornire la didascalia dell'immagine.
  • La seconda funzione Lambda chiamata describe_faces prima controlla se ci sono volti che usano Amazon Rekognition API Rileva voltie, se true, chiama l'API Compare Faces. La ragione di ciò è che Confronta volti genererà un errore se non ci sono volti trovati nell'immagine. Inoltre, chiamare prima Rileva volti è più veloce rispetto alla semplice esecuzione di Confronta volti e alla gestione degli errori, quindi per le immagini prive di volti, il tempo di elaborazione sarà più rapido.
  • La terza funzione Lambda chiamata extract_text gestisce la sintesi vocale utilizzando Amazon Textract e Amazon Comprehend.

L'esecuzione delle funzioni Lambda in successione è adatta, ma il modo più rapido ed efficiente per farlo è attraverso l'elaborazione parallela. La tabella seguente mostra il tempo di calcolo risparmiato per tre immagini di esempio.

Immagine Persone Tempo sequenziale Tempo parallelo Risparmio di tempo (%) Didascalia
Presentazione di un'applicazione di intelligenza artificiale generativa image-to-speech che utilizza Amazon SageMaker e Hugging Face | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai. 0 1869ms 1702ms 8% Un gatto soriano rannicchiato in un soffice letto bianco.
Presentazione di un'applicazione di intelligenza artificiale generativa image-to-speech che utilizza Amazon SageMaker e Hugging Face | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai. 1 4277ms 2197ms 48% Una donna con una camicetta verde e un cardigan nero sorride alla telecamera. Riconosco una persona: Kanbo.
Presentazione di un'applicazione di intelligenza artificiale generativa image-to-speech che utilizza Amazon SageMaker e Hugging Face | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai. 4 6603ms 3904ms 40% Persone in piedi davanti alle sfere amazzoniche. Riconosco 3 persone: Kanbo, Jack e Ayman.

Didascalia immagine

Hugging Face è una community open source e una piattaforma di data science che consente agli utenti di condividere, creare, addestrare e distribuire modelli di machine learning. Dopo aver esplorato i modelli disponibili nell'hub del modello Hugging Face, abbiamo scelto di utilizzare il Modello OFA perché, come descritto dagli autori, è "un framework indipendente dal compito e dalla modalità che supporta la completezza del compito".

OFA è un passo verso "One For All", in quanto è un modello pre-addestrato multimodale unificato che può essere trasferito efficacemente a una serie di compiti a valle. Mentre il modello OFA supporta molte attività tra cui la base visiva, la comprensione del linguaggio e la generazione di immagini, abbiamo utilizzato il Modello OFA per la didascalia delle immagini nel progetto Describe For Me per eseguire la parte da immagine a testo dell'applicazione. Consulta il repository ufficiale di OFA (ICML 2022), carta per conoscere le architetture, i compiti e le modalità unificanti dell'OFA attraverso un semplice framework di apprendimento da sequenza a sequenza.

Per integrare OFA nella nostra applicazione, abbiamo clonato il repository da Hugging Face e containerizzato il modello per distribuirlo a un endpoint SageMaker. IL notebook in questo repository è un'ottima guida per distribuire il modello di grandi dimensioni OFA in un notebook Jupyter in SageMaker. Dopo aver containerizzato lo script di inferenza, il modello è pronto per essere distribuito dietro un endpoint SageMaker come descritto nel SageMaker documentazione. Una volta distribuito il modello, crea un endpoint HTTPS che può essere integrato con la funzione lambda "describe_image" che analizza l'immagine per creare la didascalia dell'immagine. Abbiamo implementato il modello minuscolo OFA perché è un modello più piccolo e può essere implementato in un periodo di tempo più breve ottenendo prestazioni simili.

Di seguito sono riportati esempi di contenuti da immagine a voce generati da "Descrivi per me":

L'aurora boreale, o aurora boreale, riempie il cielo notturno sopra la sagoma di una casa..

L'aurora boreale, o aurora boreale, riempie il cielo notturno sopra la sagoma di una casa..

Un cane dorme su una coperta rossa su un pavimento di legno duro, accanto a una valigia aperta piena di giocattoli..

Un cane dorme su una coperta rossa su un pavimento di legno duro, accanto a una valigia aperta piena di giocattoli..

Un gatto soriano rannicchiato in un soffice letto bianco.

Un gatto soriano rannicchiato in un soffice letto bianco.

Riconoscimento facciale

Amazon Rekognition Image fornisce il Rileva Facce operazione che cerca caratteristiche facciali chiave come occhi, naso e bocca per rilevare i volti in un'immagine di input. Nella nostra soluzione sfruttiamo questa funzionalità per rilevare qualsiasi persona nell'immagine di input. Se viene rilevata una persona, allora usiamo il ConfrontaFaces operazione per confrontare il volto nell'immagine di input con i volti con cui "Descrivi per me" è stato addestrato e descrivere la persona per nome. Abbiamo scelto di utilizzare Rekognition per il rilevamento facciale a causa dell'elevata precisione e della semplicità di integrazione nella nostra applicazione con le funzionalità predefinite.

Un gruppo di persone in posa per una foto in una stanza. Riconosco 4 persone: Jack, Kanbo, Alak e Trac. C'era anche del testo trovato nell'immagine. Si legge: AWS re: Invent

Un gruppo di persone in posa per una foto in una stanza. Riconosco 4 persone: Jack, Kanbo, Alak e Trac. C'era anche del testo trovato nell'immagine. Si legge: AWS re: Invent

Casi di potenziale utilizzo

Generazione di testo alternativo per immagini web

Tutte le immagini su un sito Web devono avere un testo alternativo in modo che gli screen reader possano parlarle ai non vedenti. È anche utile per l'ottimizzazione dei motori di ricerca (SEO). La creazione di didascalie alternative può richiedere molto tempo poiché un copywriter ha il compito di fornirle all'interno di un documento di progettazione. L'API Describe For Me potrebbe generare automaticamente testo alternativo per le immagini. Potrebbe anche essere utilizzato come plug-in del browser per aggiungere automaticamente didascalie alle immagini mancanti di testo alternativo su qualsiasi sito Web.

Descrizione audio per video

La descrizione audio fornisce una traccia narrativa per i contenuti video per aiutare i non vedenti a seguire i film. Man mano che la didascalia delle immagini diventa più solida e accurata, potrebbe essere possibile un flusso di lavoro che prevede la creazione di una traccia audio basata sulle descrizioni delle parti chiave di una scena. Amazon Rekognition è già in grado di rilevare cambi di scena, loghi, sequenze di crediti e rilevamento di celebrità. Una futura versione di describe consentirebbe di automatizzare questa funzione chiave per film e video.

Conclusione

In questo post, abbiamo discusso su come utilizzare i servizi AWS, inclusi servizi AI e serverless, per aiutare i non vedenti a vedere le immagini. Puoi saperne di più sul progetto Descrivi per me e usarlo visitando descriptionforme.com. Ulteriori informazioni sulle caratteristiche uniche di Amazon Sage MakerRiconoscimento Amazon e la Partnership AWS con Hugging Face.

Dichiarazione di non responsabilità del modello ML di terze parti per la guida

Questa guida è solo a scopo informativo. Dovresti comunque eseguire la tua valutazione indipendente e adottare misure per assicurarti di rispettare le tue specifiche pratiche e standard di controllo della qualità e le norme, le leggi, i regolamenti, le licenze e i termini di utilizzo locali che si applicano a te, ai tuoi contenuti e il modello di Machine Learning di terze parti a cui si fa riferimento in questa guida. AWS non ha alcun controllo o autorità sul modello di Machine Learning di terze parti a cui si fa riferimento in questa guida e non rilascia alcuna dichiarazione o garanzia che il modello di Machine Learning di terze parti sia sicuro, privo di virus, operativo o compatibile con l'ambiente di produzione e standard. AWS non rilascia alcuna dichiarazione o garanzia che qualsiasi informazione contenuta in questa guida si tradurrà in un particolare risultato o risultato.


Informazioni sugli autori

Jack MarchettiJack Marchetti è un architetto di soluzioni senior presso AWS focalizzato sull'aiutare i clienti a modernizzare e implementare architetture serverless basate su eventi. Jack è legalmente cieco e risiede a Chicago con la moglie Erin e il gatto Minou. È anche sceneggiatore e regista con un focus principale sui film natalizi e sull'orrore. Guarda la filmografia di Jack da lui Pagina di IMDb.

Alak EswaradassAlak Eswaradass è Senior Solutions Architect presso AWS con sede a Chicago, Illinois. È appassionata di aiutare i clienti a progettare architetture cloud utilizzando i servizi AWS per risolvere le sfide aziendali. Alak è entusiasta di utilizzare SageMaker per risolvere una varietà di casi d'uso di ML per i clienti AWS. Quando non lavora, ad Alak piace passare il tempo con le sue figlie ed esplorare la vita all'aria aperta con i suoi cani.

Kandyce BohannonKandyce Bohannon è un Senior Solutions Architect con sede a Minneapolis, MN. In questo ruolo, Kandyce lavora come consulente tecnico per i clienti AWS mentre modernizzano le strategie tecnologiche in particolare relative ai dati e DevOps per implementare le migliori pratiche in AWS. Inoltre, Kandyce è appassionata di fare da mentore alle future generazioni di tecnologi e di mostrare le donne nella tecnologia attraverso il programma AWS She Builds Tech Skills.

Trac DoTrac Do è un architetto di soluzioni presso AWS. Nel suo ruolo, Trac lavora con i clienti aziendali per supportare le loro migrazioni al cloud e le iniziative di modernizzazione delle applicazioni. È appassionato di apprendere le sfide dei clienti e risolverle con soluzioni robuste e scalabili utilizzando i servizi AWS. Trac attualmente vive a Chicago con sua moglie e 3 figli. È un grande appassionato di aviazione e sta completando la sua licenza di pilota privato.

Timestamp:

Di più da Apprendimento automatico di AWS