Présentation d'une application d'IA générative d'image à la parole utilisant Amazon SageMaker et Hugging Face | Services Web Amazon

Présentation d'une application d'IA générative d'image à la parole utilisant Amazon SageMaker et Hugging Face | Services Web Amazon

La perte de vision se présente sous diverses formes. Pour certains, c'est dès la naissance, pour d'autres, c'est une lente descente dans le temps qui s'accompagne de nombreuses dates de péremption : Le jour où vous ne pouvez plus voir de photos, vous reconnaître, ni les visages de vos proches ni même lire votre courrier. Dans notre précédent article de blog Permettre aux malvoyants d'entendre des documents à l'aide d'Amazon Textract et d'Amazon Polly, nous vous avons montré notre application Text to Speech appelée "Lisez pour moi". L'accessibilité a parcouru un long chemin, mais qu'en est-il des images ?

Lors de la conférence AWS re:Invent 2022 à Las Vegas, nous avons démontré "Décrivez-moi" à l'AWS Builders' Fair, un site Web qui aide les malvoyants à comprendre les images grâce à la légende des images, à la reconnaissance faciale et à la synthèse vocale, une technologie que nous appelons « Image to Speech ». Grâce à l'utilisation de plusieurs services AI/ML, "Describe For Me" génère une légende d'une image d'entrée et la relira d'une voix claire et naturelle dans une variété de langues et de dialectes.

Dans cet article de blog, nous vous expliquons l'architecture de la solution derrière "Describe For Me" et les considérations de conception de notre solution.

Présentation de la solution

L'architecture de référence suivante montre le flux de travail d'un utilisateur prenant une photo avec un téléphone et lisant un MP3 du sous-titrage de l'image.

Architecture de référence pour la solution décrite.

Le flux de travail comprend les étapes ci-dessous,

  1. AWS Amplifier distribue l'application Web DescribeForMe composée de HTML, JavaScript et CSS sur les appareils mobiles des utilisateurs finaux.
  2. Le Amazon Cognito Le groupe d'identités accorde un accès temporaire au Amazon S3 seau.
  3. L'utilisateur télécharge un fichier image sur le Amazon S3 seau à l'aide SDK AWS via l'application Web.
  4. L'application Web DescribeForMe appelle les services d'IA backend en envoyant le Amazon S3 objet Saisissez la charge utile pour Passerelle d'API Amazon
  5. Passerelle d'API Amazon instancie un Fonctions d'étape AWS flux de travail. La State Machine orchestre les services d'Intelligence Artificielle/Machine Learning (AI/ML) Amazon Reconnaissance, Amazon Sage MakerExtrait d'Amazon, Amazon Traduction, et les Amazon Polly  en utilisant AWS lambda fonctions.
  6. Le Fonctions d'étape AWS Workflow crée un fichier audio en sortie et le stocke dans Amazon S3 au format MP3.
  7. Une URL pré-signée avec l'emplacement du fichier audio stocké dans Amazon S3 est renvoyé au navigateur de l'utilisateur via Passerelle d'API Amazon. L'appareil mobile de l'utilisateur lit le fichier audio à l'aide de l'URL pré-signée.

Présentation de la solution

Dans cette section, nous nous concentrons sur les considérations de conception pour lesquelles nous avons choisi

  1. traitement parallèle au sein d'un Fonctions d'étape AWS workflow
  2. modèle OFA (One For All) d'apprentissage automatique pré-entraîné unifié de séquence à séquence Étreindre le visage à Amazon Sage Maker pour la légende de l'image
  3. Amazon Reconnaissance pour la reconnaissance faciale

Pour un aperçu plus détaillé des raisons pour lesquelles nous avons choisi une architecture sans serveur, un flux de travail synchrone, un flux de travail de fonctions d'étape express, une architecture sans tête et les avantages obtenus, veuillez lire notre article de blog précédent Permettre aux malvoyants d'entendre des documents à l'aide d'Amazon Textract et d'Amazon Polly

Traitement parallèle

L'utilisation du traitement parallèle dans le flux de travail Step Functions a réduit le temps de calcul jusqu'à 48 %. Une fois que l'utilisateur a chargé l'image dans le compartiment S3, Amazon API Gateway instancie un flux de travail AWS Step Functions. Ensuite, les trois fonctions Lambda ci-dessous traitent l'image dans le flux de travail Step Functions en parallèle.

  • La première fonction Lambda appelée describe_image analyse l'image à l'aide de Modèle OFA_IMAGE_CAPTION hébergé sur un point de terminaison en temps réel SageMaker pour fournir une légende d'image.
  • La deuxième fonction Lambda appelée describe_faces vérifie d'abord s'il y a des visages à l'aide d'Amazon Rekognition Détecter les visages API, et si vrai, il appelle l'API Compare Faces. La raison en est que Compare Faces générera une erreur s'il n'y a pas de visages trouvés dans l'image. De plus, appeler Détecter les visages en premier est plus rapide que simplement exécuter Comparer les visages et gérer les erreurs, donc pour les images sans visages, le temps de traitement sera plus rapide.
  • La troisième fonction Lambda appelée extract_text gère la synthèse vocale à l'aide d'Amazon Textract et d'Amazon Comprehend.

L'exécution successive des fonctions Lambda est appropriée, mais le moyen le plus rapide et le plus efficace consiste à effectuer un traitement parallèle. Le tableau suivant montre le temps de calcul économisé pour trois exemples d'images.

Image(s) Personnes Temps séquentiel Temps parallèle Gain de temps (%) Légende
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% Un chat tigré recroquevillé dans un lit blanc moelleux.
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% Une femme vêtue d'un chemisier vert et d'un cardigan noir sourit à la caméra. Je reconnais une personne : 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% Les gens debout devant les Amazon Spheres. Je reconnais 3 personnes : Kanbo, Jack et Ayman.

Légende

Hugging Face est une communauté open source et une plate-forme de science des données qui permet aux utilisateurs de partager, créer, former et déployer des modèles d'apprentissage automatique. Après avoir exploré les modèles disponibles dans le hub de modèles Hugging Face, nous avons choisi d'utiliser le Modèle OFA car, comme le décrivent les auteurs, il s'agit d'un "cadre indépendant des tâches et des modalités qui prend en charge l'exhaustivité des tâches".

OFA est une étape vers "One For All", car il s'agit d'un modèle pré-formé multimodal unifié qui peut être transféré efficacement à un certain nombre de tâches en aval. Bien que le modèle OFA prenne en charge de nombreuses tâches, notamment l'ancrage visuel, la compréhension du langage et la génération d'images, nous avons utilisé le Modèle OFA pour le sous-titrage des images dans le projet Describe For Me pour effectuer la partie image en texte de l'application. Consultez le référentiel officiel d'OFA (ICML 2022), papier pour en savoir plus sur les architectures, les tâches et les modalités unificatrices d'OFA grâce à un cadre d'apprentissage simple de séquence à séquence.

Pour intégrer OFA dans notre application, nous avons cloné le référentiel de Hugging Face et conteneurisé le modèle pour le déployer sur un point de terminaison SageMaker. Le bloc-notes dans ce dépôt est un excellent guide pour déployer le grand modèle OFA dans un notebook Jupyter dans SageMaker. Après avoir conteneurisé votre script d'inférence, le modèle est prêt à être déployé derrière un point de terminaison SageMaker, comme décrit dans le SageMaker Documentation. Une fois le modèle déployé, créez un point de terminaison HTTPS qui peut être intégré à la fonction lambda « describe_image » qui analyse l'image pour créer la légende de l'image. Nous avons déployé le petit modèle OFA car il s'agit d'un modèle plus petit et peut être déployé dans un délai plus court tout en obtenant des performances similaires.

Des exemples de contenu image-parole généré par "Describe For Me" sont présentés ci-dessous :

Les aurores boréales, ou aurores boréales, remplissent le ciel nocturne au-dessus de la silhouette d'une maison.

Les aurores boréales, ou aurores boréales, remplissent le ciel nocturne au-dessus de la silhouette d'une maison.

Un chien dort sur une couverture rouge sur un plancher de bois franc, à côté d'une valise ouverte remplie de jouets.

Un chien dort sur une couverture rouge sur un plancher de bois franc, à côté d'une valise ouverte remplie de jouets.

Un chat tigré recroquevillé dans un lit blanc moelleux.

Un chat tigré recroquevillé dans un lit blanc moelleux.

La reconnaissance faciale

Amazon Rekognition Image fournit la Détecter les visages opération qui recherche les principales caractéristiques du visage telles que les yeux, le nez et la bouche pour détecter les visages dans une image d'entrée. Dans notre solution, nous exploitons cette fonctionnalité pour détecter toute personne dans l'image d'entrée. Si une personne est détectée, nous utilisons alors le Comparer les visages opération pour comparer le visage dans l'image d'entrée avec les visages avec lesquels "Describe For Me" a été formé et décrire la personne par son nom. Nous avons choisi d'utiliser Rekognition pour la détection faciale en raison de sa grande précision et de la simplicité de son intégration dans notre application avec les fonctionnalités prêtes à l'emploi.

Un groupe de personnes posant pour une photo dans une pièce. Je reconnais 4 personnes : Jack, Kanbo, Alak et Trac. Il y avait aussi du texte dans l'image. Il se lit comme suit : AWS concernant : inventer

Un groupe de personnes posant pour une photo dans une pièce. Je reconnais 4 personnes : Jack, Kanbo, Alak et Trac. Il y avait aussi du texte dans l'image. Il se lit comme suit : AWS concernant : inventer

Cas d'utilisation potentiels

Génération de texte alternatif pour les images Web

Toutes les images d'un site Web doivent avoir un texte alternatif afin que les lecteurs d'écran puissent les parler aux malvoyants. C'est aussi bon pour l'optimisation des moteurs de recherche (SEO). La création de sous-titres alternatifs peut prendre du temps car un rédacteur est chargé de les fournir dans un document de conception. L'API Describe For Me pourrait générer automatiquement un texte alternatif pour les images. Il pourrait également être utilisé comme plug-in de navigateur pour ajouter automatiquement une légende d'image aux images manquant de texte alternatif sur n'importe quel site Web.

Description audio pour la vidéo

La description audio fournit une piste de narration pour le contenu vidéo afin d'aider les malvoyants à suivre les films. À mesure que la légende d'image devient plus robuste et précise, un flux de travail impliquant la création d'une piste audio basée sur des descriptions pour les parties clés d'une scène pourrait être possible. Amazon Rekognition peut déjà détecter les changements de scène, les logos et les séquences de générique, ainsi que la détection des célébrités. Une future version de describe permettrait d'automatiser cette fonctionnalité clé pour les films et les vidéos.

Conclusion

Dans cet article, nous avons expliqué comment utiliser les services AWS, y compris l'IA et les services sans serveur, pour aider les malvoyants à voir des images. Vous pouvez en savoir plus sur le projet Describe For Me et l'utiliser en visitant descriptionforme.com. En savoir plus sur les caractéristiques uniques de Amazon Sage MakerReconnaissance Amazon et les terres parsemées de Partenariat AWS avec Hugging Face.

Clause de non-responsabilité du modèle ML tiers à titre indicatif

Ce guide est fourni à titre informatif uniquement. Vous devez toujours effectuer votre propre évaluation indépendante et prendre des mesures pour vous assurer que vous vous conformez à vos propres pratiques et normes spécifiques de contrôle de la qualité, ainsi qu'aux règles, lois, réglementations, licences et conditions d'utilisation locales qui s'appliquent à vous, à votre contenu et à le modèle d'apprentissage automatique tiers référencé dans ce guide. AWS n'a aucun contrôle ou autorité sur le modèle d'apprentissage automatique tiers référencé dans ce guide, et ne fait aucune représentation ou garantie que le modèle d'apprentissage automatique tiers est sécurisé, exempt de virus, opérationnel ou compatible avec votre environnement de production. et normes. AWS ne fait aucune représentation, garantie ou garantie que toute information contenue dans ce guide se traduira par un résultat ou un résultat particulier.


À propos des auteurs

Jack MarchettiJack Marchetti est un architecte de solutions senior chez AWS, dont l'objectif est d'aider les clients à moderniser et à mettre en œuvre des architectures sans serveur et axées sur les événements. Jack est légalement aveugle et réside à Chicago avec sa femme Erin et son chat Minou. Il est également scénariste et réalisateur et se concentre principalement sur les films de Noël et l'horreur. Voir la filmographie de Jack à son Page IMDb.

Alak EswaradasAlak Eswaradas est architecte de solutions senior chez AWS basé à Chicago, Illinois. Elle se passionne pour aider les clients à concevoir des architectures cloud en utilisant les services AWS pour résoudre les défis commerciaux. Alak est enthousiaste à l'idée d'utiliser SageMaker pour résoudre une variété de cas d'utilisation ML pour les clients AWS. Lorsqu'elle ne travaille pas, Alak aime passer du temps avec ses filles et explorer le plein air avec ses chiens.

Kandyce BohannonKandyce Bohannon est un architecte de solutions senior basé à Minneapolis, MN. Dans ce rôle, Kandyce travaille en tant que conseiller technique auprès des clients AWS alors qu'ils modernisent les stratégies technologiques, en particulier liées aux données et DevOps, pour mettre en œuvre les meilleures pratiques dans AWS. De plus, Kandyce est passionnée par le mentorat des futures générations de technologues et la mise en valeur des femmes dans la technologie par le biais du programme AWS She Builds Tech Skills.

Trac-DoTrac-Do est architecte de solutions chez AWS. Dans son rôle, Trac travaille avec les entreprises clientes pour soutenir leurs migrations vers le cloud et leurs initiatives de modernisation des applications. Il est passionné par l'apprentissage des défis des clients et leur résolution avec des solutions robustes et évolutives utilisant les services AWS. Trac vit actuellement à Chicago avec sa femme et ses 3 garçons. Il est un grand passionné d'aviation et est en train de terminer sa licence de pilote privé.

Horodatage:

Plus de Apprentissage automatique AWS