Apresentando um aplicativo de IA generativa de conversão de imagem em fala usando Amazon SageMaker e Hugging Face | Amazon Web Services

Apresentando um aplicativo de IA generativa de conversão de imagem em fala usando Amazon SageMaker e Hugging Face | Amazon Web Services

A perda de visão vem em várias formas. Para alguns, é desde o nascimento, para outros, é uma lenta descida ao longo do tempo que vem com muitas datas de validade: O dia em que você não pode ver fotos, reconhecer a si mesmo ou rostos de entes queridos ou mesmo ler sua correspondência. Em nosso blogpost anterior Habilitar deficientes visuais para ouvir documentos usando Amazon Textract e Amazon Polly, mostramos nosso aplicativo Text to Speech chamado “Leia para mim”. A acessibilidade já percorreu um longo caminho, mas e as imagens?

Na conferência AWS re:Invent de 2022 em Las Vegas, demonstramos “Descreva para mim” na AWS Builders' Fair, um site que ajuda deficientes visuais a entender imagens por meio de legendas, reconhecimento facial e conversão de texto em fala, uma tecnologia que chamamos de “Imagem para fala”. Por meio do uso de vários serviços AI/ML, “Describe For Me” gera uma legenda de uma imagem de entrada e a lê de volta em uma voz clara e natural em vários idiomas e dialetos.

Nesta postagem de blog, orientamos você pela arquitetura de solução por trás de "Descreva para mim" e as considerações de design de nossa solução.

Visão geral da solução

A arquitetura de referência a seguir mostra o fluxo de trabalho de um usuário tirando uma foto com um telefone e reproduzindo um MP3 da legenda da imagem.

Arquitetura de referência para a solução descrita.

O fluxo de trabalho inclui as etapas abaixo,

  1. Amplificar AWS distribui o aplicativo Web DescribeForMe que consiste em HTML, JavaScript e CSS para os dispositivos móveis dos usuários finais.
  2. A Amazon Cognito O pool de identidades concede acesso temporário ao Amazon S3 balde.
  3. O usuário carrega um arquivo de imagem para o Amazon S3 balde usando SDK AWS através do aplicativo web.
  4. O aplicativo Web DescribeForMe invoca os serviços de IA de back-end enviando o Amazon S3 objeto Chave na carga útil para Gateway de API da Amazon
  5. Gateway de API da Amazon instancia um Funções de etapa da AWS fluxo de trabalho. A máquina de estado orquestra os serviços de Inteligência Artificial/Aprendizado de Máquina (AI/ML) Reconhecimento da Amazônia, Amazon Sage Makeramazontext, Amazon Traduzir, e Amazon Polly  utilização lambda AWS funções.
  6. A Funções de etapa da AWS fluxo de trabalho cria um arquivo de áudio como saída e o armazena em Amazon S3 em formato MP3.
  7. Um URL pré-assinado com a localização do arquivo de áudio armazenado em Amazon S3 é enviado de volta ao navegador do usuário através Gateway de API da Amazon. O dispositivo móvel do usuário reproduz o arquivo de áudio usando o URL pré-assinado.

Passo a passo da solução

Nesta seção, nos concentramos nas considerações de design por que escolhemos

  1. processamento paralelo dentro de um Funções de etapa da AWS de gestão de documentos
  2. modelo unificado de aprendizado de máquina pré-treinado de sequência a sequência OFA (One For All) de Abraçando o rosto para Amazon Sage Maker para legenda de imagem
  3. Reconhecimento da Amazônia para reconhecimento facial

Para obter uma visão geral mais detalhada de por que escolhemos uma arquitetura sem servidor, fluxo de trabalho síncrono, fluxo de trabalho de funções de etapa expressa, arquitetura headless e os benefícios obtidos, leia nossa postagem anterior no blog Habilitar deficientes visuais para ouvir documentos usando Amazon Textract e Amazon Polly

Processamento paralelo

O uso do processamento paralelo no fluxo de trabalho do Step Functions reduziu o tempo de computação em até 48%. Depois que o usuário carrega a imagem no bucket do S3, o Amazon API Gateway instancia um fluxo de trabalho do AWS Step Functions. Em seguida, as três funções do Lambda abaixo processam a imagem no fluxo de trabalho do Step Functions em paralelo.

  • A primeira função do Lambda chamada describe_image analisa a imagem usando o Modelo OFA_IMAGE_CAPTION hospedado em um endpoint em tempo real do SageMaker para fornecer a legenda da imagem.
  • A segunda função Lambda chamada describe_faces primeiro verifica se há rostos usando o Amazon Rekognition API de detecção de rostose, se verdadeiro, chama a API Compare Faces. A razão para isso é que Compare Faces lançará um erro se não houver rostos encontrados na imagem. Além disso, chamar detectar rostos primeiro é mais rápido do que simplesmente executar comparar rostos e lidar com erros, portanto, para imagens sem rostos, o tempo de processamento será mais rápido.
  • A terceira função Lambda chamada extract_text lida com conversão de texto em fala utilizando Amazon Textract e Amazon Comprehend.

A execução sucessiva das funções do Lambda é adequada, mas a maneira mais rápida e eficiente de fazer isso é por meio do processamento paralelo. A tabela a seguir mostra o tempo de computação economizado para três imagens de amostra.

Imagem Pessoas Tempo sequencial Tempo Paralelo Economia de tempo (%) Subtítulo
Apresentando um aplicativo de IA generativa de imagem para fala usando Amazon SageMaker e Hugging Face | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai. 0 1869ms 1702ms 8% Um gato malhado enrolado em uma cama branca e fofa.
Apresentando um aplicativo de IA generativa de imagem para fala usando Amazon SageMaker e Hugging Face | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai. 1 4277ms 2197ms 48% Uma mulher de blusa verde e cardigã preto sorri para a câmera. Eu reconheço uma pessoa: Kanbo.
Apresentando um aplicativo de IA generativa de imagem para fala usando Amazon SageMaker e Hugging Face | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai. 4 6603ms 3904ms 40% Pessoas em frente às Esferas Amazônicas. Reconheço 3 pessoas: Kanbo, Jack e Ayman.

Legenda da Imagem

Hugging Face é uma comunidade de código aberto e uma plataforma de ciência de dados que permite aos usuários compartilhar, construir, treinar e implantar modelos de aprendizado de máquina. Depois de explorar os modelos disponíveis no hub de modelos Hugging Face, optamos por usar o modelo OFA porque, conforme descrito pelos autores, é “uma estrutura agnóstica de tarefa e modalidade agnóstica que suporta a Abrangência da Tarefa”.

OFA é um passo em direção a “One For All”, pois é um modelo pré-treinado multimodal unificado que pode ser transferido para uma série de tarefas a jusante de forma eficaz. Embora o modelo OFA suporte muitas tarefas, incluindo base visual, compreensão de linguagem e geração de imagens, usamos o Modelo OFA para legendagem de imagens no projeto Descreva para mim para executar a parte de imagem em texto do aplicativo. Confira o repositório oficial do OFA (ICML 2022), papel para aprender sobre as arquiteturas, tarefas e modalidades unificadas do OFA por meio de uma estrutura simples de aprendizado de sequência a sequência.

Para integrar o OFA em nosso aplicativo, clonamos o repositório de Hugging Face e colocamos o modelo em contêiner para implantá-lo em um endpoint do SageMaker. O notebook neste repo é um excelente guia para implantar o modelo grande OFA em um notebook Jupyter no SageMaker. Depois de conteinerizar seu script de inferência, o modelo está pronto para ser implantado atrás de um endpoint do SageMaker, conforme descrito no SageMaker documentação. Depois que o modelo for implantado, crie um endpoint HTTPS que possa ser integrado à função lambda “describe_image” que analisa a imagem para criar a legenda da imagem. Implantamos o modelo minúsculo OFA porque é um modelo menor e pode ser implantado em um período de tempo mais curto, obtendo desempenho semelhante.

Exemplos de conteúdo de imagem para fala gerado por "Descreva para mim" são mostrados abaixo:

A aurora boreal, ou aurora boreal, preenche o céu noturno acima da silhueta de uma casa.

A aurora boreal, ou aurora boreal, preenche o céu noturno acima da silhueta de uma casa.

Um cachorro dorme sobre um cobertor vermelho sobre um piso de madeira, ao lado de uma mala aberta cheia de brinquedos.

Um cachorro dorme sobre um cobertor vermelho sobre um piso de madeira, ao lado de uma mala aberta cheia de brinquedos.

Um gato malhado enrolado em uma cama branca e fofa.

Um gato malhado enrolado em uma cama branca e fofa.

O reconhecimento facial

O Amazon Rekognition Image fornece a Detectar Faces operação que procura características faciais importantes, como olhos, nariz e boca, para detectar rostos em uma imagem de entrada. Em nossa solução, aproveitamos essa funcionalidade para detectar qualquer pessoa na imagem de entrada. Se uma pessoa for detectada, usamos o Comparar rostos operação para comparar o rosto na imagem de entrada com os rostos com os quais “Descrever para mim” foi treinado e descrever a pessoa pelo nome. Escolhemos usar o Rekognition para detecção facial devido à alta precisão e à simplicidade de integração em nosso aplicativo com os recursos prontos para uso.

Um grupo de pessoas posando para uma foto em uma sala. Reconheço 4 pessoas: Jack, Kanbo, Alak e Trac. Havia texto encontrado na imagem também. Lê-se: AWS re: Inventar

Um grupo de pessoas posando para uma foto em uma sala. Reconheço 4 pessoas: Jack, Kanbo, Alak e Trac. Havia texto encontrado na imagem também. Lê-se: AWS re: Inventar

Casos de uso potenciais

Geração de texto alternativo para imagens da web

Todas as imagens em um site da Web devem ter um texto alternativo para que os leitores de tela possam falar com os deficientes visuais. Também é bom para otimização de mecanismos de busca (SEO). A criação de legendas alternativas pode ser demorada, pois um redator é encarregado de fornecê-las em um documento de design. A API Describe For Me pode gerar automaticamente texto alternativo para imagens. Ele também pode ser utilizado como um plug-in de navegador para adicionar automaticamente legendas de imagens a imagens que não tenham texto alternativo em qualquer site.

Descrição de áudio para vídeo

A descrição de áudio fornece uma faixa de narração para conteúdo de vídeo para ajudar os deficientes visuais a acompanhar os filmes. À medida que a legenda da imagem se torna mais robusta e precisa, pode ser possível um fluxo de trabalho envolvendo a criação de uma trilha de áudio com base nas descrições das principais partes de uma cena. O Amazon Rekognition já pode detectar alterações de cena, logotipos e sequências de crédito e detecção de celebridades. Uma versão futura do describe permitiria automatizar esse recurso importante para filmes e vídeos.

Conclusão

Nesta postagem, discutimos como usar os serviços da AWS, incluindo IA e serviços sem servidor, para ajudar deficientes visuais a ver imagens. Você pode aprender mais sobre o projeto Describe For Me e usá-lo visitando descrevaforme.com. Saiba mais sobre os recursos exclusivos do Amazon Sage MakerAmazon Rekognition e os votos de Parceria AWS com Hugging Face.

Isenção de responsabilidade do modelo de ML de terceiros para orientação

Esta orientação é apenas para fins informativos. Você ainda deve realizar sua própria avaliação independente e tomar medidas para garantir a conformidade com suas próprias práticas e padrões específicos de controle de qualidade e com as regras, leis, regulamentos, licenças e termos de uso locais que se aplicam a você, seu conteúdo e o modelo de aprendizado de máquina de terceiros mencionado nesta orientação. A AWS não tem controle ou autoridade sobre o modelo de aprendizado de máquina de terceiros mencionado nesta orientação e não faz representações ou garantias de que o modelo de aprendizado de máquina de terceiros é seguro, livre de vírus, operacional ou compatível com seu ambiente de produção e padrões. A AWS não faz representações, garantias ou garantias de que qualquer informação nesta orientação resultará em um determinado resultado ou resultado.


Sobre os autores

Jack MarchettiJack Marchetti é um arquiteto de soluções sênior da AWS focado em ajudar os clientes a modernizar e implementar arquiteturas sem servidor e orientadas a eventos. Jack é legalmente cego e mora em Chicago com sua esposa Erin e o gato Minou. Ele também é roteirista e diretor com foco principal em filmes de Natal e terror. Veja a filmografia de Jack em seu Página da IMDb.

Alak EswaradassAlak Eswaradass é Arquiteto de Soluções Sênior na AWS com sede em Chicago, Illinois. Ela é apaixonada por ajudar os clientes a projetar arquiteturas de nuvem utilizando os serviços da AWS para resolver desafios de negócios. Alak está entusiasmado com o uso do SageMaker para resolver uma variedade de casos de uso de ML para clientes da AWS. Quando não está trabalhando, Alak gosta de passar o tempo com as filhas e explorar a natureza com seus cachorros.

Kandyce BohannonKandyce Bohannon é Arquiteto de Soluções Sênior baseado em Minneapolis, MN. Nessa função, Kandyce trabalha como consultor técnico para clientes da AWS à medida que eles modernizam estratégias de tecnologia especialmente relacionadas a dados e DevOps para implementar as melhores práticas na AWS. Além disso, Kandyce é apaixonada por orientar futuras gerações de tecnólogos e mostrar mulheres na tecnologia por meio do programa AWS She Builds Tech Skills.

Trac DoTrac Do é arquiteto de soluções da AWS. Em sua função, Trac trabalha com clientes corporativos para oferecer suporte a suas migrações de nuvem e iniciativas de modernização de aplicativos. Ele é apaixonado por aprender os desafios dos clientes e resolvê-los com soluções robustas e escaláveis ​​usando os serviços da AWS. Trac atualmente mora em Chicago com sua esposa e 3 filhos. Ele é um grande entusiasta da aviação e está em processo de conclusão de sua licença de Piloto Privado.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS