Simple Science

Ciência de ponta explicada de forma simples

# Informática# Visão computacional e reconhecimento de padrões# Computação e linguagem

Avanços na tecnologia de OCR para texto em cena

Este artigo fala sobre os avanços no reconhecimento óptico de caracteres em cenas naturais.

― 9 min ler


Inovações em OCR de TextoInovações em OCR de Textoem Cenacaracteres.sistemas de reconhecimento óptico deExplorando a medição de desempenho em
Índice

Reconhecimento Óptico de Caracteres (OCR) é uma tecnologia que permite que computadores leiam texto dentro de imagens. Já tá por aí há um tempão e funciona bem para documentos padrão como livros e faturas. Mas reconhecer texto em cenas naturais-como placas ou etiquetas em fotos-é bem mais complicado. Isso acontece porque o texto aparece em estilos variados, fundos diferentes e muitas vezes em posições estranhas.

Uma forma de medir quão bem um sistema OCR tá indo é dando uma olhada em quantos erros ele comete ao comparar sua saída com o texto real da imagem. Um método comum para essa avaliação é usar algo chamado taxas de erro de palavras (WER). O WER conta quantas palavras estão faltando, foram adicionadas de forma errada ou mudadas. A gente sugere usar o WER para avaliar tanto o desempenho geral de um sistema OCR quanto o desempenho de suas partes individuais.

Pra ter mais precisão nas nossas medições, a gente introduce uma forma específica de WER chamada DISGO WER. Essa versão olha pra quatro tipos de erros: Deleção, Inserção, Substituição e erros de Agrupamento/Ordenação. Categorizar os erros assim ajuda a identificar quais partes do sistema OCR precisam de melhorias.

Na nossa pesquisa, usamos um pequeno conjunto de testes públicos pra mostrar como nosso método funciona na prática. Enquanto o OCR de documentos é bem compreendido, o OCR de texto em cenas tá começando a chamar atenção, especialmente com o uso crescente de óculos inteligentes e realidade aumentada. OCR em cenas naturais enfrenta desafios como textos curvados, angulados ou bloqueados por outros objetos. Além disso, se uma foto for tirada de longe, o texto pode ser minúsculo e difícil de ler.

OCR pode ser usado pra diversas tarefas práticas, como traduzir texto em tempo real, fazer chamadas ou definir lembretes. Pra facilitar essas tarefas, os sistemas OCR precisam não só reconhecer o texto, mas também entender como ele tá organizado na página. Por exemplo, todas as palavras numa frase como "NIÑOS JUGANDO" devem ser agrupadas juntas na ordem em que são lidas.

Os métodos de avaliação para OCR geralmente incluem métricas como precisão, recuperação e pontuações F1. Embora essas métricas funcionem bem para tarefas de detecção simples, elas nem sempre se aplicam à análise de layout necessária pro OCR de texto em cenas. Outros sistemas adotam abordagens diferentes, usando múltiplas métricas pra capturar vários aspectos da eficácia de um sistema OCR.

No nosso caso, a gente argumenta que usar WER oferece uma maneira consistente de avaliar todas as partes do processo OCR, incluindo componentes individuais e o desempenho geral do sistema. Analisando os padrões de erro, como altas taxas de deleção ou substituição, conseguimos identificar qual parte do sistema tá falhando e precisa de atenção.

A gente também descreve o design de um sistema OCR básico pra texto em cena que construímos pra testar nossas ideias. Esse sistema tem três partes principais: detectar palavras, reconhecer as palavras e agrupá-las corretamente. Embora existam técnicas avançadas para OCR, focamos num design modular que roda diretamente em dispositivos pra garantir a privacidade do usuário e reduzir a latência.

Detecção de Palavras

O primeiro passo no nosso processo de OCR é detectar onde as palavras estão numa imagem. Usamos um modelo chamado Faster-RCNN pra isso, que funciona rápido procurando caixas delimitadoras de palavras. Cada caixa detectada é um retângulo que contém uma palavra, definido pelo seu centro, largura, altura e ângulo de rotação. Aplicamos técnicas pra melhorar o desempenho, como reduzir o tamanho da imagem pra acelerar o processamento.

Reconhecimento de Palavras

Uma vez que temos as caixas de palavras, o próximo passo é reconhecer o texto dentro delas. Primeiro, ajustamos cada caixa pra garantir que tá alinhada horizontalmente, depois redimensionamos pra consistência. Pra isso, usamos uma rede especializada projetada pra funcionar eficientemente em dispositivos móveis. Durante a fase de reconhecimento, usamos uma técnica chamada perda CTC que leva em conta variações no comprimento das palavras. O sistema tenta adivinhar os caracteres dentro das caixas, identificando aquele que acha mais provável com base nos dados que viu durante o treinamento.

Agrupamento e Ordenação

Simplesmente detectar e reconhecer palavras muitas vezes não é o suficiente. Pra muitas aplicações, entender o contexto do texto reconhecido é crucial. Pra alcançar isso, desenvolvemos um método pra agrupar palavras detectadas em blocos significativos e definir a ordem em que devem ser lidas. Isso pode ser complicado já que as palavras podem não estar posicionadas em linhas retas e podem formar múltiplos grupos dentro de uma imagem.

DISGO WER como Métrica

As taxas de erro de palavras têm sido uma forma padrão de medir desempenho em várias áreas. Nossa meta é mostrar como esse conceito pode ser aplicado efetivamente ao OCR de texto em cena. As vantagens de usar WER incluem sua simplicidade e aplicabilidade em todos os componentes do sistema. Analisando os quatro tipos de erros-Deleção, Inserção, Substituição e Agrupamento/Ordenação-podemos ajustar e melhorar cada parte do sistema OCR.

Pra visualizar o desempenho, criamos um "mapa de localização" que coloca todas as palavras verdadeiras numa imagem com base em suas coordenadas. Em seguida, comparamos as palavras previstas e as verdadeiras pra ver quão bem o sistema se saiu. Pra cada erro, categorizamos como um erro de reconhecimento ou um erro de alinhamento.

Erros de agrupamento e ordenação são considerados ao determinar se as palavras estão posicionadas corretamente em relação umas às outras. Uma palavra é considerada corretamente reconhecida quando não só combina com o texto, mas também se encaixa na sua localização adequada dentro da ordem de leitura geral. O algoritmo que desenvolvemos ajuda a avaliar esses erros de forma eficaz.

Avaliando Componentes Separadamente

Como diferentes partes de um sistema OCR podem ser desenvolvidas de forma independente, é útil medir seu desempenho separadamente. Definimos métricas WER específicas para cada componente:

  1. Detecção: Isso mede quantas palavras foram corretamente encontradas em comparação com quantas foram perdidas ou identificadas incorretamente.
  2. Reconhecimento: Isso analisa quantas palavras foram reconhecidas corretamente em relação ao total de palavras esperadas, considerando possíveis erros de deleção.
  3. Agrupamento/Ordenação: Avaliamos quão bem o texto foi organizado em blocos e a ordem correta de leitura.

Tradução Automática

Uma das principais aplicações do OCR é ajudar na tradução automática. Ao enviar o texto gerado pelo OCR pra um sistema de tradução, é essencial conectar cada bloco de texto reconhecido com seu correspondente traduzido. Usamos algoritmos pra conseguir isso e garantir que as traduções sejam corretamente relacionadas com os blocos certos.

Pra melhorar nossa avaliação de tradução, usamos a pontuação BLEU, que mede o quão perto a tradução automática tá das traduções humanas para vários blocos de texto. Toma-se cuidado especial pra respeitar os limites desses blocos, garantindo que não misturamos textos de diferentes grupos.

Incorporando Conhecimento Linguístico

Uma sequência de palavras reconhecidas pode nem sempre fazer sentido devido a como os caracteres são interpretados. Pra melhorar a precisão, incorporamos modelos linguísticos que ajudam a prever a probabilidade de sequências de palavras. Usando esses modelos, conseguimos melhor guiar os sistemas de reconhecimento pra evitar saídas sem sentido.

O processo de incorporar modelos de linguagem muitas vezes envolve treinamento em grandes conjuntos de dados de texto pra entender padrões comuns e erros que normalmente ocorrem no texto. A gente também explora usar arquiteturas avançadas como transformers que podem aprender o contexto e melhorar significativamente o reconhecimento de palavras.

Experimentação e Resultados

Treinamos nosso sistema usando uma mistura de conjuntos de dados públicos e nossos dados coletados, focando em palavras em inglês e espanhol. Nosso conjunto de teste base apresenta desafios significativos com imagens que têm texto curvado e uma variedade de layouts. Após implementar nosso sistema, examinamos de perto as taxas de erro.

Os resultados iniciais mostraram um alto número de erros de deleção, especialmente em imagens com baixa resolução. Ajustando nossos modelos e parâmetros, conseguimos reduzir esses erros significativamente. Também exploramos diferentes configurações-como adicionar modelos de linguagem e usar redes neurais mais avançadas-pra avaliar seu impacto no desempenho.

Conclusão

Essa nova abordagem pra medir a eficácia do OCR de texto em cena fornece uma maneira estruturada de avaliar tanto componentes individuais quanto o sistema como um todo. Ao adotar a métrica DISGO, a gente pretende estabelecer um padrão no campo do OCR, facilitando melhores comparações e melhorias na tecnologia.

Embora esses métodos sejam promissores, ainda há vários desafios pela frente. Precisamos validar a eficácia das nossas métricas em relação a avaliações humanas em diferentes conjuntos de dados. Além disso, nosso sistema depende de caixas delimitadoras pra um alinhamento preciso das palavras, o que pode ser um obstáculo quando nem todos os modelos fornecem limites claros.

Esse trabalho abre caminhos pra futuras melhorias, incluindo aproveitar abordagens de machine learning pra agrupamento e ordenação automáticos. Vamos continuar desenvolvendo e refinando nossas metodologias, usando as métricas propostas pra acompanhar o progresso na tecnologia OCR de texto em cena.

Mais de autores

Artigos semelhantes