Reconhecimento de texto de cena usando reconhecimento de texto baseado em visão


O reconhecimento de texto de cena (STR) continua desafiando os pesquisadores devido à diversidade de aparências de texto em ambientes naturais. Uma coisa é detectar texto em imagens de documentos e outra coisa é quando o texto está em uma imagem na camiseta de uma pessoa. A introdução da Predição Multi-Granularidade para Reconhecimento de Texto de Cena (MGP-STR), apresentada no ECCV 2022, representa uma abordagem transformadora neste domínio. MGP-STR combina a robustez do Transformadores de visão (ViT) com previsões linguísticas inovadoras de multigranularidade. Isso aumenta sua capacidade de lidar com tarefas complexas de reconhecimento de texto de cena. Isso garante maior precisão e usabilidade em uma variedade de cenários desafiadores do mundo actual, criando uma solução simples, porém poderosa, para tarefas de STR.

Objetivos de aprendizagem

  • Compreenda a arquitetura e os componentes do MGP-STR, incluindo Imaginative and prescient Transformers (ViT).
  • Saiba como as previsões de multigranularidade melhoram a precisão e a versatilidade do reconhecimento de texto de cena.
  • Discover as aplicações práticas do MGP-STR no mundo actual Tarefas de OCR.
  • Ganhe experiência prática na implementação e uso do MGP-STR com PyTorch para reconhecimento de texto de cena.

Este artigo foi publicado como parte do Blogatona de Ciência de Dados.

O que é MGP-STR?

MGP-STR é um modelo STR baseado em visão projetado para se destacar sem depender de um modelo de linguagem independente. Em vez disso, integra informações linguísticas diretamente em sua arquitetura por meio da estratégia de Predição Multi-Granularidade (MGP). Esta abordagem implícita permite que o MGP-STR supere tanto os modelos de visão pura quanto os métodos de linguagem aumentada, alcançando resultados de última geração em STR.

A arquitetura compreende dois componentes principais, ambos essenciais para garantir o desempenho excepcional do modelo e a capacidade de lidar com diversos desafios de texto de cena:

  • Transformador de Visão (ViT)
  • Módulos A³

A fusão de previsões nos níveis de caractere, subpalavra e palavra por meio de uma estratégia direta, porém eficaz, garante que o MGP-STR seize as complexidades dos recursos visuais e linguísticos.

Reconhecimento de texto de cena usando reconhecimento de texto baseado em visão

Aplicações e casos de uso do MGP-STR

O MGP-STR foi projetado principalmente para tarefas de reconhecimento óptico de caracteres (OCR) em imagens de texto. A sua capacidade única de incorporar implicitamente o conhecimento linguístico torna-o particularmente eficaz em cenários do mundo actual onde variações e distorções de texto são comuns. Os exemplos incluem:

  • Ler texto de cenas naturais, como placas de rua, outdoor e nomes de lojas em ambientes externos.
  • Extração de texto manuscrito ou impresso de formulários digitalizados e documentos oficiais.
  • Análise de texto em aplicações industriais, como leitura de etiquetas, códigos de barras ou números de série em produtos.
  • Tradução ou transcrição de texto em aplicativos de realidade aumentada (AR) para viagens ou educação. como placas de rua e outdoor.
  • Extração de informações de documentos digitalizados ou fotografias de materiais impressos.
  • Soluções auxiliares de acessibilidade, como leitores de tela para usuários com deficiência visible.
Aplicações e casos de uso do MGP-STR: reconhecimento de texto de cena

Principais recursos e vantagens

  • Eliminação de modelos de linguagem independentes
  • Previsões multi-granularidade
  • Desempenho de última geração
  • Facilidade de uso

Introdução ao MGP-STR

Antes de nos aprofundarmos no trecho de código, vamos entender sua finalidade e pré-requisitos. Este exemplo demonstra como usar o modelo MGP-STR para realizar o reconhecimento de texto de cena em uma imagem de amostra. Certifique-se de ter PyTorch, a biblioteca Transformers e as dependências necessárias (como PIL e solicitações) instaladas em seu ambiente para executar o código perfeitamente. Abaixo está um exemplo de como usar o modelo MGP-STR no PyTorch (caderno).

Passo 1: Importando Dependências

Comece importando as bibliotecas e dependências essenciais necessárias para MGP-STR, incluindo transformers para processamento de modelo, PIL para manipulação de imagens e requests para buscar imagens on-line. Essas bibliotecas fornecem as ferramentas básicas para processar e exibir imagens de texto de maneira eficaz.

from transformers import MgpstrProcessor, MgpstrForSceneTextRecognition
import requests
import base64
from io import BytesIO
from PIL import Picture
from IPython.show import show, Picture as IPImage

Passo 2: Carregando o Modelo Base

Carregue o modelo básico MGP-STR e seu processador da biblioteca Hugging Face Transformers. Isso inicializa o modelo pré-treinado e os utilitários que o acompanham, permitindo processamento e previsão contínuos de texto de cena a partir de imagens.

processor = MgpstrProcessor.from_pretrained('alibaba-damo/mgp-str-base')
mannequin = MgpstrForSceneTextRecognition.from_pretrained('alibaba-damo/mgp-str-base')

Etapa 3: Função auxiliar para previsão de texto na imagem

Defina uma função auxiliar para inserir URLs de imagens, processar as imagens usando o modelo MGP-STR e gerar previsões de texto. A função lida com a conversão de imagem, codificação base64 para exibição e utiliza as saídas do modelo para decodificar o texto reconhecido com eficiência.

def predict(url):
    picture = Picture.open(requests.get(url, stream=True).uncooked).convert("RGB")

    # Course of the picture to organize it for the mannequin
    pixel_values = processor(photographs=picture, return_tensors="pt").pixel_values

    # Generate the textual content from the mannequin
    outputs = mannequin(pixel_values)
    generated_text = processor.batch_decode(outputs.logits)('generated_text')

    # Convert the picture to base64 for transmission
    buffered = BytesIO()
    picture.save(buffered, format="PNG")
    image_base64 = base64.b64encode(buffered.getvalue()).decode("utf-8")

    show(IPImage(information=base64.b64decode(image_base64)))
    print("nn")

    return generated_text

Exemplo1:

predict("https://github.com/AlibabaResearch/AdvancedLiterateMachinery/blob/fundamental/OCR/MGP-STR/demo_imgs/CUTE80_7.png?uncooked=true")
Exemplo1
('7')

Exemplo2:

predict("https://github.com/AlibabaResearch/AdvancedLiterateMachinery/blob/fundamental/OCR/MGP-STR/demo_imgs/CUTE80_BAR.png?uncooked=true")
Exemplo1
('bar')

Exemplo3:

predict("https://github.com/AlibabaResearch/AdvancedLiterateMachinery/blob/fundamental/OCR/MGP-STR/demo_imgs/CUTE80_CROCODILES.png?uncooked=true")
exemplo3
('crocodiles')

Exemplo4:

predict("https://github.com/AlibabaResearch/AdvancedLiterateMachinery/blob/fundamental/OCR/MGP-STR/demo_imgs/CUTE80_DAY.png?uncooked=true")
exemplo4
('day')

Pela natureza das imagens, você verá que a previsão é eficiente. Com esse tipo de precisão fica muito fácil implementar esse modelo e obter uma boa resposta. Você também verá que o modelo pode funcionar apenas com uma CPU e usa menos de 3 GB de RAM. Isso torna ainda mais eficiente o ajuste fino para outros casos de uso em tarefas específicas do domínio.

saída: reconhecimento de texto de cena

Conclusão

O MGP-STR exemplifica a combinação de visão e conhecimento linguístico dentro de uma estrutura unificada. Ao integrar de forma inovadora previsões de multigranularidade no pipeline STR, o MGP-STR garante uma abordagem holística para o reconhecimento de texto de cena, combinando insights em nível de caracteres, subpalavras e palavras. Isso resulta em maior precisão, adaptabilidade a diversos conjuntos de dados e desempenho eficiente sem depender de modelos de linguagem externos. Ele simplifica a arquitetura e ao mesmo tempo alcança uma precisão notável. Para pesquisadores e desenvolvedores em OCR e STR, o MGP-STR oferece uma ferramenta de última geração que é eficaz e acessível. Com sua implementação de código aberto e documentação abrangente, o MGP-STR está preparado para impulsionar novos avanços no campo do reconhecimento de texto de cena.

Principais conclusões

  • O MGP-STR integra visão e conhecimento linguístico sem depender de modelos linguísticos independentes, agilizando o processo STR.
  • O uso de previsões multigranularidade permite que o MGP-STR se destaque em diversos desafios de reconhecimento de texto.
  • O MGP-STR estabelece uma nova referência para modelos STR ao alcançar resultados de última geração com uma arquitetura simples e eficaz.
  • Os desenvolvedores podem facilmente adaptar e implantar o MGP-STR para uma variedade de tarefas de OCR, aprimorando tanto a pesquisa quanto as aplicações práticas.

Perguntas frequentes

Q1: O que é MGP-STR e como ele difere dos modelos STR tradicionais?

A1: MGP-STR é um modelo de reconhecimento de texto de cena que integra previsões linguísticas diretamente em sua estrutura baseada em visão usando Predição Multi-Granularidade (MGP). Ao contrário dos modelos STR tradicionais, elimina a necessidade de modelos de linguagem independentes, simplificando o pipeline e aumentando a precisão.

Q2: Quais conjuntos de dados foram usados ​​para treinar o MGP-STR?

A2: O modelo MGP-STR de tamanho básico foi treinado nos conjuntos de dados MJSynth e SynthText, que são amplamente utilizados para tarefas de reconhecimento de texto de cena.

Q3. O MGP-STR consegue lidar com imagens de texto distorcidas ou de baixa qualidade?

A3: Sim, o mecanismo de previsão multigranularidade do MGP-STR permite lidar com diversos desafios, incluindo imagens de texto distorcidas ou de baixa qualidade.

This autumn. O MGP-STR é adequado para outros idiomas além do inglês?

A4: Embora a implementação atual seja otimizada para o inglês, a arquitetura pode ser adaptada para suportar outros idiomas, treinando-a em conjuntos de dados relevantes.

Q5. Como o módulo A³ contribui para o desempenho do MGP-STR?

A5: O módulo A³ refina os resultados do ViT mapeando combinações de tokens para caracteres e permitindo previsões em nível de subpalavra, incorporando insights linguísticos no modelo.

A mídia mostrada neste artigo não é propriedade da Analytics Vidhya e é usada a critério do Autor.

Sou um engenheiro de IA com uma profunda paixão pela pesquisa e pela solução de problemas complexos. Forneço soluções de IA aproveitando Massive Language Fashions (LLMs), GenAI, Transformer Fashions e Steady Diffusion.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *