Logotipo de Zephyrnet

Presentamos una aplicación de IA generativa de imagen a voz con Amazon SageMaker y Hugging Face | Servicios web de Amazon

Fecha:

La pérdida de la visión se presenta en varias formas. Para algunos es desde el nacimiento, para otros es un lento descenso en el tiempo que viene con muchas fechas de caducidad: El día que no puedes ver fotos, reconocerte a ti mismo, a las caras de tus seres queridos o incluso leer tu correo. En nuestra entrada de blog anterior Habilite a las personas con discapacidad visual para escuchar documentos con Amazon Textract y Amazon Polly, le mostramos nuestra aplicación Texto a voz llamada “Lee para mí”. La accesibilidad ha recorrido un largo camino, pero ¿qué pasa con las imágenes?

En la conferencia AWS re:Invent de 2022 en Las Vegas, demostramos “Descríbeme” en la Feria de constructores de AWS, un sitio web que ayuda a las personas con discapacidades visuales a comprender las imágenes a través de leyendas de imágenes, reconocimiento facial y texto a voz, una tecnología a la que nos referimos como "Imagen a voz". Mediante el uso de múltiples servicios de IA/ML, "Describe For Me" genera una leyenda de una imagen de entrada y la leerá con una voz clara y natural en una variedad de idiomas y dialectos.

En esta publicación de blog, lo guiamos a través de la arquitectura de la solución detrás de "Describe para mí" y las consideraciones de diseño de nuestra solución.

Descripción general de la solución

La siguiente arquitectura de referencia muestra el flujo de trabajo de un usuario que toma una foto con un teléfono y reproduce un MP3 del subtítulo de la imagen.

Arquitectura de referencia para la solución descrita.

El flujo de trabajo incluye los siguientes pasos,

  1. AWS amplificar distribuye la aplicación web DescribeForMe que consta de HTML, JavaScript y CSS a los dispositivos móviles de los usuarios finales.
  2. El Cognito Amazonas El grupo de identidades otorga acceso temporal al Amazon S3 Cubeta.
  3. El usuario sube un archivo de imagen a la Amazon S3 cubo usando SDK de AWS a través de la aplicación web.
  4. La aplicación web DescribeForMe invoca los servicios de IA de backend enviando el Amazon S3 objeto Introduzca la carga útil para Puerta de enlace API de Amazon
  5. Puerta de enlace API de Amazon instancia un Funciones de paso de AWS flujo de trabajo. La máquina estatal orquesta los servicios de inteligencia artificial/aprendizaje automático (AI/ML) Reconocimiento de amazonas, Amazon SageMakerAmazon Textil, Traductor de Amazon, y Amazon Polly  usando AWS lambda funciones.
  6. El Funciones de paso de AWS El flujo de trabajo crea un archivo de audio como salida y lo almacena en Amazon S3 en formato MP3.
  7. Una URL prefirmada con la ubicación del archivo de audio almacenado en Amazon S3 se envía de vuelta al navegador del usuario a través de Puerta de enlace API de Amazon. El dispositivo móvil del usuario reproduce el archivo de audio utilizando la URL prefirmada.

Tutorial de la solución

En esta sección, nos centramos en las consideraciones de diseño por las que elegimos

  1. procesamiento paralelo dentro de un Funciones de paso de AWS flujo de trabajo
  2. modelo unificado de aprendizaje automático preentrenado de secuencia a secuencia OFA (One For All) de Abrazando la cara Amazon SageMaker para el título de la imagen
  3. Reconocimiento de amazonas para reconocimiento facial

Para obtener una descripción más detallada de por qué elegimos una arquitectura sin servidor, un flujo de trabajo síncrono, un flujo de trabajo de funciones de paso rápido, una arquitectura sin cabeza y los beneficios obtenidos, lea nuestra publicación de blog anterior Habilite a las personas con discapacidad visual para escuchar documentos con Amazon Textract y Amazon Polly

Procesamiento en paralelo

El uso del procesamiento paralelo dentro del flujo de trabajo de Step Functions redujo el tiempo de cálculo hasta en un 48 %. Una vez que el usuario carga la imagen en el depósito de S3, Amazon API Gateway instancia un flujo de trabajo de AWS Step Functions. Luego, las siguientes tres funciones Lambda procesan la imagen dentro del flujo de trabajo de Step Functions en paralelo.

  • La primera función Lambda llamada describe_image analiza la imagen utilizando el modelo OFA_IMAGE_CAPTION alojado en un punto final en tiempo real de SageMaker para proporcionar leyendas de imágenes.
  • La segunda función Lambda llamada describe_faces primero comprueba si hay caras usando Amazon Rekognition's API de detección de rostrosy, si es verdadero, llama a la API Compare Faces. La razón de esto es que Compare Faces generará un error si no se encuentran rostros en la imagen. Además, llamar primero a Detectar rostros es más rápido que simplemente ejecutar Comparar rostros y manejar los errores, por lo que para las imágenes sin rostros, el tiempo de procesamiento será más rápido.
  • La tercera función Lambda llamada extract_text maneja texto a voz utilizando Amazon Textract y Amazon Comprehend.

La ejecución de las funciones de Lambda en sucesión es adecuada, pero la forma más rápida y eficiente de hacerlo es a través del procesamiento en paralelo. La siguiente tabla muestra el tiempo de cómputo ahorrado para tres imágenes de muestra.

Imagen Personas Tiempo secuencial tiempo paralelo Ahorro de tiempo (%) Subtítulo
0 1869ms 1702ms 8% Un gato atigrado se acurrucó en una mullida cama blanca.
1 4277ms 2197ms 48% Una mujer con una blusa verde y un cárdigan negro sonríe a la cámara. Reconozco a una persona: Kanbo.
4 6603ms 3904ms 40% Personas de pie frente a las Amazon Spheres. Reconozco a 3 personas: Kanbo, Jack y Ayman.

Captura de imagen

Hugging Face es una comunidad de código abierto y una plataforma de ciencia de datos que permite a los usuarios compartir, crear, entrenar e implementar modelos de aprendizaje automático. Después de explorar los modelos disponibles en el hub de modelos Hugging Face, elegimos usar el modelo OFA porque, como lo describen los autores, es "un marco agnóstico a la tarea y a la modalidad que respalda la Comprensión de la tarea".

OFA es un paso hacia "One For All", ya que es un modelo preentrenado multimodal unificado que puede transferirse a una serie de tareas posteriores de manera efectiva. Si bien el modelo OFA admite muchas tareas, incluida la base visual, la comprensión del lenguaje y la generación de imágenes, utilizamos el Modelo OFA para subtítulos de imágenes en el proyecto Describe For Me para convertir la imagen en parte de texto de la aplicación. Consulte el repositorio oficial de OFA (ICML 2022),  para obtener información sobre las arquitecturas, tareas y modalidades unificadoras de OFA a través de un marco de aprendizaje simple de secuencia a secuencia.

Para integrar OFA en nuestra aplicación, clonamos el repositorio de Hugging Face y colocamos el modelo en un contenedor para implementarlo en un punto final de SageMaker. El cuaderno en este repositorio es una excelente guía para implementar el modelo grande OFA en un cuaderno Jupyter en SageMaker. Después de contener su secuencia de comandos de inferencia, el modelo está listo para implementarse detrás de un punto final de SageMaker como se describe en SageMaker documentación. Una vez que se implementa el modelo, cree un punto final HTTPS que se pueda integrar con la función lambda "describe_image" que analiza la imagen para crear el título de la imagen. Implementamos el modelo diminuto OFA porque es un modelo más pequeño y se puede implementar en un período de tiempo más corto mientras se logra un rendimiento similar.

A continuación se muestran ejemplos de contenido de imagen a voz generado por "Describe para mí":

La aurora boreal, o aurora boreal, llena el cielo nocturno sobre la silueta de una casa..

La aurora boreal, o aurora boreal, llena el cielo nocturno sobre la silueta de una casa..

Un perro duerme sobre una manta roja sobre un suelo de madera, junto a una maleta abierta llena de juguetes.

Un perro duerme sobre una manta roja sobre un suelo de madera, junto a una maleta abierta llena de juguetes.

Un gato atigrado se acurrucó en una mullida cama blanca.

Un gato atigrado se acurrucó en una mullida cama blanca.

Reconocimiento facial

Amazon Rekognition Image proporciona la Detectar caras operación que busca rasgos faciales clave como ojos, nariz y boca para detectar rostros en una imagen de entrada. En nuestra solución, aprovechamos esta funcionalidad para detectar personas en la imagen de entrada. Si se detecta una persona, entonces usamos el Comparar caras operación para comparar el rostro en la imagen de entrada con los rostros con los que se ha entrenado “Describe For Me” y describir a la persona por su nombre. Elegimos usar Rekognition para la detección facial debido a la alta precisión y lo simple que fue integrarlo en nuestra aplicación con las capacidades listas para usar.

Un grupo de personas posando para una foto en una habitación. Reconozco a 4 personas: Jack, Kanbo, Alak y Trac. También se encontró texto en la imagen. Dice: AWS re: Invent

Un grupo de personas posando para una foto en una habitación. Reconozco a 4 personas: Jack, Kanbo, Alak y Trac. También se encontró texto en la imagen. Dice: AWS re: Invent

Posibles casos de uso

Generación de texto alternativo para imágenes web

Todas las imágenes en un sitio web deben tener un texto alternativo para que los lectores de pantalla puedan hablarlas a las personas con discapacidad visual. También es bueno para la optimización de motores de búsqueda (SEO). La creación de subtítulos alternativos puede llevar mucho tiempo, ya que un redactor tiene la tarea de proporcionarlos dentro de un documento de diseño. La API Describe For Me podría generar automáticamente texto alternativo para las imágenes. También se puede utilizar como un complemento del navegador para agregar automáticamente un título de imagen a las imágenes que carecen de texto alternativo en cualquier sitio web.

Descripción de audio para video

La descripción de audio proporciona una pista de narración para el contenido de video para ayudar a las personas con problemas de visión a seguir las películas. A medida que la leyenda de la imagen se vuelve más robusta y precisa, podría ser posible un flujo de trabajo que involucre la creación de una pista de audio basada en descripciones de partes clave de una escena. Amazon Rekognition ya puede detectar cambios de escena, logotipos, secuencias de créditos y detección de celebridades. Una versión futura de describe permitiría automatizar esta característica clave para películas y videos.

Conclusión

En esta publicación, discutimos cómo usar los servicios de AWS, incluidos los servicios de inteligencia artificial y sin servidor, para ayudar a las personas con discapacidades visuales a ver imágenes. Puede obtener más información sobre el proyecto Describe For Me y usarlo visitando describeforme.com. Obtenga más información sobre las características únicas de Amazon SageMakerReconocimiento de Amazon y del Asociación de AWS con Hugging Face.

Exención de responsabilidad del modelo de ML de terceros a modo de orientación

Esta guía es solo para fines informativos. Aún debe realizar su propia evaluación independiente y tomar medidas para asegurarse de cumplir con sus propias prácticas y estándares de control de calidad específicos, y las reglas, leyes, regulaciones, licencias y términos de uso locales que se aplican a usted, su contenido y el modelo de aprendizaje automático de terceros al que se hace referencia en esta guía. AWS no tiene control ni autoridad sobre el modelo de Machine Learning de terceros al que se hace referencia en esta guía, y no hace ninguna representación ni garantiza que el modelo de Machine Learning de terceros sea seguro, libre de virus, operativo o compatible con su entorno de producción. y normas. AWS no hace ninguna declaración ni garantía de que cualquier información en esta guía resulte en un resultado o resultado particular.


Acerca de los autores

Jack MarchettiJack Marchetti es un arquitecto sénior de soluciones en AWS centrado en ayudar a los clientes a modernizar e implementar arquitecturas sin servidor y basadas en eventos. Jack es legalmente ciego y reside en Chicago con su esposa Erin y su gato Minou. También es guionista y director con un enfoque principal en películas navideñas y de terror. Ver la filmografía de Jack en su Página de IMDb.

Alak EswaradassAlak Eswaradass es Arquitecto de Soluciones Sénior en AWS con sede en Chicago, Illinois. Le apasiona ayudar a los clientes a diseñar arquitecturas en la nube utilizando los servicios de AWS para resolver los desafíos comerciales. Alak está entusiasmado con el uso de SageMaker para resolver una variedad de casos de uso de ML para clientes de AWS. Cuando no está trabajando, Alak disfruta pasar tiempo con sus hijas y explorar el aire libre con sus perros.

Kandyce BohannonKandyce Bohannon es un arquitecto de soluciones sénior con sede en Minneapolis, MN. En este rol, Kandyce trabaja como asesor técnico de los clientes de AWS mientras modernizan las estrategias tecnológicas, especialmente relacionadas con los datos y DevOps, para implementar las mejores prácticas en AWS. Además, a Kandyce le apasiona asesorar a las futuras generaciones de tecnólogos y mostrar a las mujeres en la tecnología a través del programa AWS She Builds Tech Skills.

Hacer TracHacer Trac es arquitecto de soluciones en AWS. En su función, Trac trabaja con clientes empresariales para respaldar sus migraciones a la nube e iniciativas de modernización de aplicaciones. Le apasiona conocer los desafíos de los clientes y resolverlos con soluciones sólidas y escalables mediante los servicios de AWS. Trac actualmente vive en Chicago con su esposa y 3 niños. Es un gran entusiasta de la aviación y está en proceso de obtener su Licencia de Piloto Privado.

punto_img

Información más reciente

punto_img