Zephyrnet-logo

Introductie van een generatieve AI-toepassing voor beeld-naar-spraak met behulp van Amazon SageMaker en Hugging Face | Amazon-webservices

Datum:

Visusverlies komt in verschillende vormen voor. Voor sommigen is het vanaf de geboorte, voor anderen is het een langzame afdaling in de loop van de tijd, met veel vervaldata: de dag dat je geen foto's kunt zien, jezelf of de gezichten van dierbaren niet kunt herkennen of zelfs je post kunt lezen. In onze vorige blogpost Schakel slechtzienden in om documenten te horen met Amazon Textract en Amazon Polly, hebben we je onze tekst-naar-spraak-applicatie laten zien genaamd "Lees voor mij". Toegankelijkheid heeft een lange weg afgelegd, maar hoe zit het met afbeeldingen?

Op de AWS re:Invent-conferentie in 2022 in Las Vegas demonstreerden we "Beschrijf voor mij" op de AWS Builders' Fair, een website die blinden en slechtzienden helpt afbeeldingen te begrijpen door middel van beeldbijschriften, gezichtsherkenning en tekst-naar-spraak, een technologie die we 'Image to Speech' noemen. Door het gebruik van meerdere AI/ML-services, genereert "Beschrijf voor mij" een bijschrift van een invoerbeeld en leest het voor met een duidelijke, natuurlijk klinkende stem in verschillende talen en dialecten.

In deze blogpost nemen we je mee door de oplossingsarchitectuur achter "Beschrijf voor mij", en de ontwerpoverwegingen van onze oplossing.

Overzicht oplossingen

De volgende referentiearchitectuur toont de workflow van een gebruiker die een foto maakt met een telefoon en een MP3 afspeelt van het bijschrift van de afbeelding.

Referentiearchitectuur voor de beschreven oplossing.

De workflow omvat de onderstaande stappen,

  1. AWS versterken distribueert de DescribeForMe-webapp bestaande uit HTML, JavaScript en CSS naar mobiele apparaten van eindgebruikers.
  2. De Amazon Cognito Identiteitspool verleent tijdelijk toegang tot de Amazon S3 emmer.
  3. De gebruiker uploadt een afbeeldingsbestand naar het Amazon S3 emmer gebruiken AWS-SDK via de webapp.
  4. De DescribeForMe-webapp roept de backend-AI-services aan door de Amazon S3 object Toets de payload in op Amazon API-gateway
  5. Amazon API-gateway instantieert een AWS Stap Functies werkstroom. De staatsmachine orkestreert de services voor kunstmatige intelligentie/machine learning (AI/ML). Amazon Rekognition, Amazon Sage MakerAmazon T-extract, Amazon vertalen, en Amazon Polly  gebruik AWS-lambda functies.
  6. De AWS Stap Functies workflow maakt een audiobestand aan als uitvoer en slaat het op Amazon S3 in MP3-formaat.
  7. Een vooraf ondertekende URL met de locatie van het opgeslagen audiobestand Amazon S3 wordt teruggestuurd naar de browser van de gebruiker via Amazon API-gateway. Het mobiele apparaat van de gebruiker speelt het audiobestand af met behulp van de vooraf ondertekende URL.

Oplossingsoverzicht

In dit gedeelte concentreren we ons op de ontwerpoverwegingen waarom we hebben gekozen

  1. parallelle verwerking binnen een AWS Stap Functies workflow
  2. uniform voorgetraind machine learning-model OFA (One For All) van sequentie tot sequentie Gezicht knuffelen naar Amazon Sage Maker voor beeldbijschrift
  3. Amazon Rekognition voor gezichtsherkenning

Lees ons vorige blogbericht voor een meer gedetailleerd overzicht van waarom we hebben gekozen voor een serverloze architectuur, synchrone workflow, express step-functies workflow, headless-architectuur en de verkregen voordelen. Schakel slechtzienden in om documenten te horen met Amazon Textract en Amazon Polly

Parallelle verwerking

Het gebruik van parallelle verwerking binnen de Step Functions-workflow verminderde de rekentijd tot 48%. Zodra de gebruiker de afbeelding naar de S3-bucket uploadt, start Amazon API Gateway een AWS Step Functions-workflow. Vervolgens verwerken de onderstaande drie Lambda-functies de afbeelding parallel binnen de Step Functions-workflow.

  • De eerste Lambda-functie aangeroepen describe_image analyseert het beeld met behulp van de OFA_IMAGE_CAPTION-model gehost op een real-time eindpunt van SageMaker om afbeeldingsbijschrift te bieden.
  • De tweede Lambda-functie aangeroepen describe_faces controleert eerst of er gezichten zijn met behulp van Amazon Rekognition's Detect Faces-API, en als dit waar is, roept het de Compare Faces API aan. De reden hiervoor is dat Compare Faces een fout genereert als er geen gezichten in de afbeelding worden gevonden. Het is ook sneller om eerst Gezichten detecteren aan te roepen dan simpelweg Gezichten vergelijken uit te voeren en fouten af ​​te handelen, dus voor afbeeldingen zonder gezichten zal de verwerkingstijd sneller zijn.
  • De derde Lambda-functie aangeroepen extract_text verwerkt tekst-naar-spraak met behulp van Amazon Textract en Amazon Comprehend.

Het achter elkaar uitvoeren van de Lambda-functies is geschikt, maar de snellere, efficiëntere manier om dit te doen is door middel van parallelle verwerking. De volgende tabel toont de bespaarde rekentijd voor drie voorbeeldafbeeldingen.

Beeld Mensen Sequentiële tijd Parallelle tijd Tijdsbesparing (%) Onderschrift
0 1869ms 1702ms 8% Een gestreepte kat krulde zich op in een pluizig wit bed.
1 4277ms 2197ms 48% Een vrouw in een groene blouse en een zwart vest lacht naar de camera. Ik herken één persoon: Kanbo.
4 6603ms 3904ms 40% Mensen staan ​​voor de Amazon Spheres. Ik herken 3 mensen: Kanbo, Jack en Ayman.

Bijschrift bij afbeelding

Hugging Face is een open-source community en data science-platform waarmee gebruikers machine learning-modellen kunnen delen, bouwen, trainen en implementeren. Na het verkennen van modellen die beschikbaar zijn in de Hugging Face-modelhub, hebben we ervoor gekozen om de OFA-model omdat het, zoals beschreven door de auteurs, "een taak-agnostisch en modaliteit-agnostisch raamwerk is dat taakomvattendheid ondersteunt".

OFA is een stap in de richting van "One For All", aangezien het een verenigd multimodaal vooraf getraind model is dat effectief kan worden overgedragen naar een aantal stroomafwaartse taken. Hoewel het OFA-model veel taken ondersteunt, waaronder visuele gronding, taalbegrip en het genereren van afbeeldingen, gebruikten we de OFA-model voor ondertiteling van afbeeldingen in het Beschrijf voor mij-project om het beeld-naar-tekstgedeelte van de toepassing uit te voeren. Bekijk de officiële repository van OFA (ICML 2022), papier om meer te weten te komen over OFA's verenigende architecturen, taken en modaliteiten door middel van een eenvoudig sequentie-naar-sequentie leerkader.

Om OFA in onze applicatie te integreren, hebben we de repo van Hugging Face gekloond en het model gecontaineriseerd om het op een SageMaker-eindpunt te implementeren. De notebook in deze opslagplaats is een uitstekende gids om het grote OFA-model in een Jupyter-notebook in SageMaker te implementeren. Nadat uw inferentiescript is gecontaineriseerd, is het model klaar om te worden geïmplementeerd achter een SageMaker-eindpunt, zoals beschreven in de SageMaker documentatie. Zodra het model is geïmplementeerd, maakt u een HTTPS-eindpunt dat kan worden geïntegreerd met de lambda-functie "describe_image" die de afbeelding analyseert om het bijschrift van de afbeelding te maken. We hebben het kleine OFA-model geïmplementeerd omdat het een kleiner model is en in een kortere tijd kan worden geïmplementeerd terwijl vergelijkbare prestaties worden behaald.

Voorbeelden van beeld-naar-spraakinhoud gegenereerd door "Beschrijf voor mij" worden hieronder weergegeven:

De aurora borealis, of noorderlicht, vult de nachtelijke hemel boven een silhouet van een huis.

De aurora borealis, of noorderlicht, vult de nachtelijke hemel boven een silhouet van een huis.

Een hond slaapt op een rode deken op een hardhouten vloer, naast een open koffer vol speelgoed.

Een hond slaapt op een rode deken op een hardhouten vloer, naast een open koffer vol speelgoed.

Een gestreepte kat krulde zich op in een pluizig wit bed.

Een gestreepte kat krulde zich op in een pluizig wit bed.

Gezichtsherkenning

Amazon Rekognition Image biedt de DetectGezichten bewerking die zoekt naar belangrijke gezichtskenmerken zoals ogen, neus en mond om gezichten in een ingevoerd beeld te detecteren. In onze oplossing maken we gebruik van deze functionaliteit om mensen in het invoerbeeld te detecteren. Als er een persoon wordt gedetecteerd, gebruiken we de VergelijkGezichten bewerking om het gezicht in het ingevoerde beeld te vergelijken met de gezichten waarmee "Beschrijf voor mij" is getraind en omschrijf de persoon bij naam. We kozen ervoor om Rekognition te gebruiken voor gezichtsdetectie vanwege de hoge nauwkeurigheid en hoe eenvoudig het was om te integreren in onze applicatie met de kant-en-klare mogelijkheden.

Een groep mensen die poseert voor een foto in een kamer. Ik herken 4 mensen: Jack, Kanbo, Alak en Trac. Er was ook tekst gevonden in de afbeelding. Er staat: AWS re: Invent

Een groep mensen die poseert voor een foto in een kamer. Ik herken 4 mensen: Jack, Kanbo, Alak en Trac. Er was ook tekst gevonden in de afbeelding. Er staat: AWS re: Invent

Potentiële gebruiksgevallen

Alternatieve tekstgeneratie voor webafbeeldingen

Alle afbeeldingen op een website moeten een alternatieve tekst hebben, zodat schermlezers ze kunnen uitspreken voor slechtzienden. Het is ook goed voor zoekmachineoptimalisatie (SEO). Het maken van alt-bijschriften kan tijdrovend zijn, aangezien een copywriter de taak heeft om ze in een ontwerpdocument te leveren. De Describe For Me API kan automatisch alt-tekst voor afbeeldingen genereren. Het kan ook worden gebruikt als een browser-plug-in om automatisch afbeeldingsbijschriften toe te voegen aan afbeeldingen zonder alt-tekst op een website.

Audiobeschrijving voor video

Audiodescriptie biedt een verhaaltrack voor video-inhoud om blinden en slechtzienden te helpen films mee te volgen. Naarmate afbeeldingsbijschriften robuuster en nauwkeuriger worden, zou een workflow mogelijk kunnen zijn waarbij een audiotrack wordt gemaakt op basis van beschrijvingen voor belangrijke delen van een scène. Amazon Rekognition kan al scèneveranderingen, logo's en kredietreeksen en detectie van beroemdheden detecteren. Een toekomstige versie van beschrijven zou het mogelijk maken om deze belangrijke functie voor films en video's te automatiseren.

Conclusie

In dit bericht hebben we besproken hoe AWS-services, inclusief AI en serverloze services, kunnen worden gebruikt om slechtzienden te helpen afbeeldingen te zien. Je kunt meer leren over het Beschrijf voor mij-project en het gebruiken door te bezoeken beschrijfforme.com. Lees meer over de unieke kenmerken van Amazon Sage MakerAmazon Erkenning en AWS-partnerschap met Hugging Face.

ML-modeldisclaimer van derden voor richtlijnen

Deze handleiding is alleen voor informatieve doeleinden. U dient nog steeds uw eigen onafhankelijke beoordeling uit te voeren en maatregelen te nemen om ervoor te zorgen dat u voldoet aan uw eigen specifieke praktijken en normen voor kwaliteitscontrole, en aan de lokale regels, wetten, voorschriften, licenties en gebruiksvoorwaarden die van toepassing zijn op u, uw inhoud en het machine learning-model van derden waarnaar in deze richtlijn wordt verwezen. AWS heeft geen controle over of autoriteit over het Machine Learning-model van derden waarnaar in deze handleiding wordt verwezen, en geeft geen verklaringen of garanties dat het Machine Learning-model van derden veilig, virusvrij, operationeel of compatibel met uw productieomgeving is. en normen. AWS geeft geen verklaringen, garanties of garanties dat enige informatie in deze handleiding zal resulteren in een bepaald resultaat of resultaat.


Over de auteurs

Jack MarettiJack Maretti is een Senior Solutions Architect bij AWS, gericht op het helpen van klanten bij het moderniseren en implementeren van serverloze, gebeurtenisgestuurde architecturen. Jack is legaal blind en woont in Chicago met zijn vrouw Erin en kat Minou. Hij is ook scenarioschrijver en regisseur met een primaire focus op kerstfilms en horror. Bekijk Jack's filmografie op zijn IMDb-pagina.

Alak EswaradassAlak Eswaradass is een Senior Solutions Architect bij AWS in Chicago, Illinois. Ze is gepassioneerd om klanten te helpen bij het ontwerpen van cloud-architecturen met behulp van AWS-services om zakelijke uitdagingen op te lossen. Alak is enthousiast over het gebruik van SageMaker om verschillende ML-use-cases voor AWS-klanten op te lossen. Als ze niet aan het werk is, brengt Alak graag tijd door met haar dochters en verkent ze de natuur met haar honden.

Kandyce BohannonKandyce Bohannon is een Senior Solutions Architect gevestigd in Minneapolis, MN. In deze rol werkt Kandyce als technisch adviseur voor AWS-klanten bij het moderniseren van technologiestrategieën, met name met betrekking tot data en DevOps, om best practices in AWS te implementeren. Daarnaast is Kandyce gepassioneerd door het begeleiden van toekomstige generaties technologen en het presenteren van vrouwen in technologie via het AWS She Builds Tech Skills-programma.

Trac doenTrac doen is een oplossingsarchitect bij AWS. In zijn rol werkt Trac samen met zakelijke klanten om hun cloudmigraties en initiatieven voor applicatie-modernisering te ondersteunen. Hij is gepassioneerd door het leren van de uitdagingen van klanten en het oplossen ervan met robuuste en schaalbare oplossingen met behulp van AWS-services. Trac woont momenteel in Chicago met zijn vrouw en 3 jongens. Hij is een grote luchtvaartenthousiasteling en bezig met het behalen van zijn Private Pilot License.

spot_img

Laatste intelligentie

spot_img