Vă prezentăm o aplicație AI generativă de imagine în vorbire folosind Amazon SageMaker și Hugging Face | Amazon Web Services

Vă prezentăm o aplicație AI generativă de imagine în vorbire folosind Amazon SageMaker și Hugging Face | Amazon Web Services

Pierderea vederii vine sub diferite forme. Pentru unii, este de la naștere, pentru alții, este o coborâre lentă în timp care vine cu multe date de expirare: ziua în care nu poți vedea poze, nu poți să te recunoști, nici chipurile celor dragi sau chiar să-ți citești e-mailurile. În postarea noastră anterioară pe blog Permiteți persoanelor cu deficiențe de vedere să audă documente folosind Amazon Texttract și Amazon Polly, v-am arătat aplicația noastră Text to Speech numită „Citește pentru mine”. Accesibilitatea a parcurs un drum lung, dar cum rămâne cu imaginile?

La conferința AWS re:Invent din 2022 din Las Vegas, am demonstrat „Descrie pentru mine” la AWS Builders' Fair, un site web care ajută persoanele cu deficiențe de vedere să înțeleagă imaginile prin legendă, recunoaștere facială și text-to-speech, o tehnologie la care ne referim ca „Image to Speech”. Prin utilizarea mai multor servicii AI/ML, „Describe For Me” generează o legendă a unei imagini de intrare și o va citi înapoi cu o voce clară, cu sunet natural, într-o varietate de limbi și dialecte.

În această postare pe blog vă prezentăm arhitectura soluției din spatele „Descrieți pentru mine” și considerentele de proiectare ale soluției noastre.

Prezentare generală a soluției

Următoarea arhitectură de referință arată fluxul de lucru al unui utilizator care face o fotografie cu un telefon și redă un MP3 al subtitrării imaginii.

Arhitectura de referință pentru soluția descrisă.

Fluxul de lucru include pașii de mai jos,

  1. Amplificare AWS distribuie aplicația web DescribeForMe constând din HTML, JavaScript și CSS pe dispozitivele mobile ale utilizatorilor finali.
  2. Amazon Cognito Grupul de identități oferă acces temporar la Amazon S3 găleată.
  3. Utilizatorul încarcă un fișier imagine în Amazon S3 găleată folosind SDK AWS prin aplicația web.
  4. Aplicația web DescribeForMe invocă serviciile backend AI prin trimiterea Amazon S3 obiect Introduceți sarcina utilă la Gateway API Amazon
  5. Gateway API Amazon instanțiază o Funcții pas AWS fluxul de lucru. Mașina de stat orchestrează serviciile de inteligență artificială/învățare automată (AI/ML). Amazon Rekognition, Amazon SageMakerText Amazon, Amazon Translate, și Amazon Polly  folosind AWS lambda funcții.
  6. Funcții pas AWS fluxul de lucru creează un fișier audio ca ieșire și îl stochează în Amazon S3 în format MP3.
  7. O adresă URL presemnată cu locația fișierului audio stocat Amazon S3 este trimis înapoi la browserul utilizatorului prin Gateway API Amazon. Dispozitivul mobil al utilizatorului redă fișierul audio folosind adresa URL presemnată.

Soluție pasională

În această secțiune, ne concentrăm asupra considerentelor de proiectare pentru care am ales

  1. prelucrare paralelă în cadrul unui Funcții pas AWS flux de lucru
  2. model unificat de învățare automată, pre-antrenat, secvență-la-secvență OFA (One For All) de la Fata îmbrățișată la Amazon SageMaker pentru legenda imaginii
  3. Amazon Rekognition pentru recunoașterea facială

Pentru o imagine de ansamblu mai detaliată a motivului pentru care am ales o arhitectură fără server, un flux de lucru sincron, un flux de lucru cu funcții de pas expres, o arhitectură fără cap și beneficiile obținute, vă rugăm să citiți postarea anterioară de blog. Permiteți persoanelor cu deficiențe de vedere să audă documente folosind Amazon Texttract și Amazon Polly

Procesare paralelă

Utilizarea procesării paralele în fluxul de lucru Step Functions a redus timpul de calcul cu până la 48%. Odată ce utilizatorul încarcă imaginea în compartimentul S3, Amazon API Gateway instanțiază un flux de lucru AWS Step Functions. Apoi, cele trei funcții Lambda de mai jos procesează imaginea în fluxul de lucru Step Functions în paralel.

  • Prima funcție Lambda numită describe_image analizează imaginea folosind Model OFA_IMAGE_CAPTION găzduit pe un punct final în timp real SageMaker pentru a oferi legendă imaginii.
  • A doua funcție Lambda numită describe_faces mai întâi verifică dacă există fețe care folosesc Amazon Rekognition API Detect Faces, iar dacă este adevărat, apelează API-ul Compare Faces. Motivul pentru aceasta este Comparați fețele va genera o eroare dacă nu există fețe găsite în imagine. De asemenea, apelarea mai întâi Detect Faces este mai rapidă decât rularea pur și simplu Compare Faces și gestionarea erorilor, astfel încât pentru imaginile fără fețe în ele, timpul de procesare va fi mai rapid.
  • A treia funcție Lambda numită extract_text se ocupă de transformarea textului în vorbire utilizând Amazon Texttract și Amazon Comprehend.

Executarea succesivă a funcțiilor Lambda este potrivită, dar modalitatea mai rapidă și mai eficientă de a face acest lucru este prin procesarea paralelă. Următorul tabel arată timpul de calcul salvat pentru trei imagini eșantion.

Imagine oameni Timp secvenţial Timp paralel Economii de timp (%) Legendă
Introducing an image-to-speech Generative AI application using Amazon SageMaker and Hugging Face | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai. 0 1869ms 1702ms 8% O pisică tabby ghemuită într-un pat alb pufos.
Introducing an image-to-speech Generative AI application using Amazon SageMaker and Hugging Face | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai. 1 4277ms 2197ms 48% O femeie în bluză verde și cardigan negru zâmbește camerei. Recunosc o singură persoană: Kanbo.
Introducing an image-to-speech Generative AI application using Amazon SageMaker and Hugging Face | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai. 4 6603ms 3904ms 40% Oameni care stau în fața Sferelor Amazonului. Recunosc 3 persoane: Kanbo, Jack și Ayman.

Image Caption

Hugging Face este o comunitate open-source și o platformă de știință a datelor care permite utilizatorilor să partajeze, să construiască, să antreneze și să implementeze modele de învățare automată. După ce am explorat modelele disponibile în hub-ul model Hugging Face, am ales să folosim Model OFA deoarece, așa cum este descris de autori, este „un cadru agnostic de sarcină și de modalitate care sprijină extinderea sarcinilor”.

OFA este un pas către „Unul pentru toți”, deoarece este un model unificat multimodal pre-antrenat care se poate transfera într-o serie de sarcini în aval în mod eficient. În timp ce modelul OFA acceptă multe sarcini, inclusiv fundamentarea vizuală, înțelegerea limbajului și generarea de imagini, am folosit Model OFA pentru subtitrărea imaginilor în proiectul Describe For Me pentru a realiza porțiunea imagine în text a aplicației. Consultați depozitul oficial al OFA (ICML 2022), hârtie pentru a afla despre unificarea arhitecturilor, sarcinilor și modalităților OFA printr-un cadru simplu de învățare secvență-la-secvență.

Pentru a integra OFA în aplicația noastră, am clonat repo-ul din Hugging Face și am containerizat modelul pentru a-l implementa într-un punct final SageMaker. The caiet în acest repo este un ghid excelent pentru implementarea modelului mare OFA într-un notebook Jupyter în SageMaker. După containerizarea scriptului de inferență, modelul este gata pentru a fi implementat în spatele unui punct final SageMaker, așa cum este descris în SageMaker. documentaţie. Odată ce modelul este implementat, creați un punct final HTTPS care poate fi integrat cu funcția lambda „describe_image” care analizează imaginea pentru a crea legenda imaginii. Am implementat modelul mic OFA deoarece este un model mai mic și poate fi implementat într-o perioadă mai scurtă de timp, obținând în același timp performanțe similare.

Exemple de conținut imagine în vorbire generate de „Descrieți pentru mine” sunt prezentate mai jos:

Aurora boreala, sau aurora boreala, umple cerul noptii deasupra unei siluete a unei case.

Aurora boreala, sau aurora boreala, umple cerul noptii deasupra unei siluete a unei case.

Un câine doarme pe o pătură roșie pe o podea din lemn de esență tare, lângă o valiză deschisă plină cu jucării.

Un câine doarme pe o pătură roșie pe o podea din lemn de esență tare, lângă o valiză deschisă plină cu jucării.

O pisică tabby ghemuită într-un pat alb pufos.

O pisică tabby ghemuită într-un pat alb pufos.

Recunoastere faciala

Amazon Rekognition Image oferă DetectFaces operație care caută caracteristicile faciale cheie, cum ar fi ochii, nasul și gura, pentru a detecta fețele într-o imagine de intrare. În soluția noastră, folosim această funcționalitate pentru a detecta orice persoană din imaginea de intrare. Dacă o persoană este detectată, atunci folosim CompareFaces operațiune de comparare a feței din imaginea de intrare cu fețele cu care „Descrie pentru mine” a fost instruit și descrie persoana după nume. Am ales să folosim Rekognition pentru detectarea facială din cauza preciziei ridicate și a cât de simplu a fost să se integreze în aplicația noastră cu capabilități ieșite din cutie.

Un grup de oameni care pozează pentru o poză într-o cameră. Recunosc 4 persoane: Jack, Kanbo, Alak și Trac. S-a găsit și text în imagine. Se citește: AWS re: Invent

Un grup de oameni care pozează pentru o poză într-o cameră. Recunosc 4 persoane: Jack, Kanbo, Alak și Trac. S-a găsit și text în imagine. Se citește: AWS re: Invent

Cazuri de utilizare potențiale

Generare alternativă de text pentru imagini web

Toate imaginile de pe un site web trebuie să aibă un text alternativ, astfel încât cititorii de ecran să le poată vorbi persoanelor cu deficiențe de vedere. Este, de asemenea, bun pentru optimizarea motoarelor de căutare (SEO). Crearea subtitrărilor alternative poate fi consumatoare de timp, deoarece un copywriter are sarcina de a le furniza într-un document de design. API-ul Describe For Me ar putea genera automat text alternativ pentru imagini. Ar putea fi, de asemenea, utilizat ca un plugin de browser pentru a adăuga automat subtitrări imagini la imaginile care lipsesc text alternativ de pe orice site web.

Descriere audio pentru video

Descriere audio oferă o pistă de narațiune pentru conținut video pentru a ajuta persoanele cu deficiențe de vedere să urmeze filmele. Pe măsură ce subtitrarea imaginii devine mai robustă și mai precisă, ar putea fi posibil un flux de lucru care implică crearea unei piste audio bazate pe descrieri pentru părțile cheie ale unei scene. Amazon Rekognition poate detecta deja schimbările de scenă, logo-urile și secvențele de credit și detectarea celebrităților. O versiune viitoare a descrierii ar permite automatizarea acestei caracteristici cheie pentru filme și videoclipuri.

Concluzie

În această postare, am discutat despre cum să folosim serviciile AWS, inclusiv AI și serviciile fără server, pentru a ajuta persoanele cu deficiențe de vedere să vadă imagini. Puteți afla mai multe despre proiectul Describe For Me și îl puteți folosi vizitând describeforme.com. Aflați mai multe despre caracteristicile unice ale Amazon SageMakerRecunoaștere Amazon si Parteneriat AWS cu Hugging Face.

Termenul de declinare a răspunderii privind modelul ML de la terți pentru îndrumări

Acest ghid are doar scop informativ. Ar trebui să efectuați în continuare propria evaluare independentă și să luați măsuri pentru a vă asigura că respectați propriile practici și standarde specifice de control al calității, precum și regulile, legile, reglementările, licențele și condițiile de utilizare locale care vi se aplică, conținutului dvs. și modelul de învățare automată terță parte la care se face referire în acest ghid. AWS nu are niciun control sau autoritate asupra modelului de învățare automată terță parte la care se face referire în acest ghid și nu face nicio declarație sau garanție că modelul de învățare automată terță parte este sigur, lipsit de viruși, operațional sau compatibil cu mediul dvs. de producție și standarde. AWS nu face nicio declarație, garanție sau garanție că orice informație din acest ghid va avea ca rezultat un anumit rezultat sau rezultat.


Despre Autori

Jack MarchettiJack Marchetti este un arhitect senior de soluții la AWS, axat pe a ajuta clienții să modernizeze și să implementeze arhitecturi fără server, bazate pe evenimente. Jack este orb din punct de vedere legal și locuiește în Chicago cu soția sa Erin și pisica Minou. De asemenea, este scenarist și regizor, cu un accent principal pe filmele de Crăciun și horror. Vezi filmografia lui Jack la a lui Pagina IMDb.

Alak EswaradassAlak Eswaradass este arhitect senior de soluții la AWS cu sediul în Chicago, Illinois. Este pasionată de a ajuta clienții să proiecteze arhitecturi cloud utilizând serviciile AWS pentru a rezolva provocările de afaceri. Alak este entuziasmat de utilizarea SageMaker pentru a rezolva o varietate de cazuri de utilizare ML pentru clienții AWS. Când nu lucrează, Alak îi place să petreacă timp cu fiicele ei și să exploreze în aer liber cu câinii ei.

Kandyce BohannonKandyce Bohannon este un arhitect senior de soluții cu sediul în Minneapolis, MN. În acest rol, Kandyce lucrează ca consilier tehnic pentru clienții AWS, în timp ce aceștia modernizează strategiile tehnologice în special legate de date și DevOps pentru a implementa cele mai bune practici în AWS. În plus, Kandyce este pasionată de îndrumarea viitoarelor generații de tehnologi și de prezentarea femeilor în tehnologie prin programul AWS She Builds Tech Skills.

Trac DoTrac Do este arhitect de soluții la AWS. În rolul său, Trac lucrează cu clienții întreprinderilor pentru a sprijini migrațiile lor în cloud și inițiativele de modernizare a aplicațiilor. Este pasionat să învețe provocările clienților și să le rezolve cu soluții robuste și scalabile folosind serviciile AWS. Trac locuiește în prezent în Chicago cu soția și cei 3 băieți. Este un mare pasionat de aviație și este în curs de finalizare a licenței de pilot privat.

Timestamp-ul:

Mai mult de la Învățare automată AWS