Reconhecimento ótico de carateres (OCR)

Concluído

Observação

Consulte a guia Texto e imagens para obter mais detalhes!

O Reconhecimento Óptico de Caracteres (OCR) é uma tecnologia que converte automaticamente texto visual em imagens – seja a partir de documentos digitalizados, fotografias ou ficheiros digitais – em dados de texto editáveis e pesquisáveis. Em vez de transcrever manualmente a informação, o OCR permite a extração automática de dados de:

  • Faturas e recibos digitalizados
  • Fotografias digitais de documentos
  • Ficheiros PDF contendo imagens de texto
  • Capturas de ecrã e conteúdos capturados
  • Formulários e notas manuscritas

O processo do OCR: Um procedimento passo a passo

O pipeline OCR consiste em cinco etapas essenciais que trabalham em conjunto para transformar informação visual em dados de texto.

Diagrama do processo de OCR.

As fases do processo de OCR são:

  1. Aquisição e entrada de imagens.
  2. Pré-processamento e melhoria de imagem.
  3. Deteção de regiões de texto.
  4. Reconhecimento e classificação de personagens.
  5. Geração de saída e pós-processamento.

Vamos analisar cada etapa com mais profundidade.

Fase 1: Aquisição e entrada de imagens

O fluxo de trabalho começa quando uma imagem contendo texto entra no sistema. Pode tratar-se de:

  • Uma fotografia tirada com a câmara de um smartphone.
  • Um documento digitalizado de um scanner de mesa ou de documentos.
  • Um fotograma extraído de um fluxo de vídeo.
  • Uma página PDF renderizada como imagem.

Sugestão

A qualidade da imagem nesta fase impacta significativamente a precisão final da extração do texto.

Fase 2: Pré-processamento e melhoria de imagem

Antes de começar a deteção de texto, são usadas as seguintes técnicas para otimizar a imagem e garantir melhor precisão de reconhecimento:

  • A redução de ruído remove artefactos visuais, manchas de pó e imperfeições de varrimento que podem interferir na deteção de texto. As técnicas específicas utilizadas para realizar redução de ruído incluem:

    • Algoritmos de filtragem e processamento de imagem: filtros gaussianos, filtros medianos e operações morfológicas.
    • Modelos de aprendizagem automática: Autoencoders de remoção de ruído e redes neuronais convolucionais (CNNs) treinados especificamente para limpeza de imagens de documentos.
  • O ajuste de contraste realça a diferença entre texto e fundo para tornar os caracteres mais distintos. Mais uma vez, existem múltiplas abordagens possíveis:

    • Métodos clássicos: equalização histográfica, limiar adaptativo e correção gama.
    • Aprendizagem automática: Modelos de aprendizagem profunda que aprendem parâmetros ótimos de melhoria para diferentes tipos de documentos.
  • A correção de desvio deteta e corrige a rotação do documento, garantindo que as linhas de texto estão devidamente alinhadas horizontalmente. As técnicas para correção de assimetria incluem:

    • Técnicas matemáticas: transformada de Hough para deteção de linhas, perfis de projeção e análise de componentes ligados.
    • Modelos de redes neurais: CNNs de regressão que prevêem ângulos de rotação diretamente a partir das características da imagem.
  • A otimização da resolução ajusta a resolução da imagem ao nível ótimo para algoritmos de reconhecimento de caracteres. Pode otimizar a resolução da imagem com:

    • Métodos de interpolação: algoritmos de reamostragem bicúbica, bilinear e Lanczos.
    • Modelos de super-resolução: Redes generativas adversariais (GANs) e redes residuais que aumentam inteligentemente imagens de texto de baixa resolução.

Etapa 3: Deteção de regiões de texto

O sistema analisa a imagem pré-processada para identificar áreas que contêm texto, utilizando as seguintes técnicas:

  • A análise de layout distingue entre regiões de texto, imagens, gráficos e áreas de espaços em branco. As técnicas para análise de layout incluem:

    • Abordagens tradicionais: Análise de componentes conectados, codificação de comprimento de execução e segmentação baseada em projeção.
    • Modelos de aprendizagem profunda: redes de segmentação semântica como U-Net, Mask R-CNN e modelos especializados de análise de layout de documentos (por exemplo, modelos treinados em LayoutLM ou PubLayNet).
  • A identificação de blocos de texto agrupa caracteres individuais em palavras, linhas e parágrafos com base em relações espaciais. As abordagens comuns incluem:

    • Métodos clássicos: agrupamento baseado em distâncias, análise de espaços em branco e operações morfológicas
    • Redes neuronais: Redes neurais de grafos e modelos transformadores que compreendem a estrutura espacial de documentos
  • A determinação da ordem de leitura estabelece a sequência em que o texto deve ser lido (da esquerda para a direita, de cima para baixo no inglês). A ordem correta pode ser determinada por:

    • Sistemas baseados em regras: Algoritmos geométricos que usam coordenadas de caixas delimitadoras e heurísticas espaciais.
    • Modelos de aprendizagem automática: Modelos de predição de sequências e abordagens baseadas em grafos que aprendem padrões de leitura a partir de dados de treino.
  • A classificação por regiões identifica diferentes tipos de regiões de texto (cabeçalhos, texto principal, legendas, tabelas).

    • Classificadores baseados em funcionalidades: Suportam máquinas vetoriais (SVMs) usando funcionalidades feitas à mão como tamanho, posição e formatação da fonte
    • Modelos de aprendizagem profunda: Redes neurais convolucionais e transformadores de visão treinados em conjuntos de dados de documentos rotulados

Fase 4: Reconhecimento e classificação da personagem

Este é o núcleo do processo de OCR, onde os caracteres individuais são identificados:

  • Extração de características: Analisa a forma, tamanho e características distintivas de cada carácter ou símbolo.

    • Métodos tradicionais: Características estatísticas como momentos, descritores de Fourier e características estruturais (laços, pontos finais, interseções)
    • Abordagens de aprendizagem profunda: Redes neurais convolucionais que aprendem automaticamente características discriminativas a partir de dados de píxeis brutos
  • Correspondência de padrões: Compara características extraídas com modelos treinados que reconhecem diferentes fontes, tamanhos e estilos de escrita.

    • Correspondência de modelos: Comparação direta com modelos de personagens armazenados usando técnicas de correlação
    • Classificadores estatísticos: Modelos de Markov Ocultos (HMMs), Máquinas de Vetores de Suporte e k-vizinhos mais próximos usando vetores de características
    • Redes neurais: perceptrões multicamadas, CNNs e arquiteturas especializadas como a LeNet para reconhecimento de dígitos
    • Aprendizagem profunda avançada: Arquiteturas de redes residuais (ResNet), DenseNet e EfficientNet para classificação robusta de caracteres
  • Análise de contexto: Utiliza caracteres e palavras circundantes para melhorar a precisão do reconhecimento através de consultas em dicionários e modelos linguísticos.

    • Modelos N-grama: Modelos estatísticos de linguagem que prevêem sequências de caracteres com base em distribuições de probabilidade.
    • Correção baseada em dicionário: Consulta de léxico com algoritmos de distância de edição (como a distância de Levenshtein) para correção ortográfica.
    • Modelos neurais de linguagem: modelos LSTM e baseados em transformadores (como variantes BERT) que compreendem relações contextuais.
    • Mecanismos de atenção: Modelos Transformer que se focam nas partes relevantes da entrada ao fazer previsões de caracteres.
  • Pontuação de confiança: Atribui pontuações de probabilidade a cada carácter reconhecido com base na certeza do sistema quanto à sua identificação.

    • Abordagens bayesianas: Modelos probabilísticos que quantificam a incerteza nas previsões de caracteres.
    • Softmax outputs: Ativações da camada final da rede neural convertidas em distribuições de probabilidade.
    • Métodos de conjunto: Combinar previsões de múltiplos modelos para melhorar as estimativas de confiança.

Etapa 5: Geração de saída e pós-processamento

A fase final converte resultados de reconhecimento em dados de texto utilizáveis:

  • Compilação de texto: Reúne reconhecimentos individuais de caracteres em palavras e frases completas.

    • Montagem baseada em regras: Algoritmos determinísticos que combinam previsões de caracteres usando limiares de proximidade espacial e confiança.
    • Modelos de sequência: Redes neuronais recorrentes (RNNs) e redes de memória de longo curto prazo (LSTM) que modelam o texto como dados sequenciais.
    • Modelos baseados em atenção: Arquiteturas transformadoras que conseguem lidar com sequências de comprimento variável e layouts de texto complexos.
  • Preservação do formato: Mantém a estrutura do documento, incluindo parágrafos, quebras de linha e espaçamento.

    • Algoritmos geométricos: Sistemas baseados em regras que usam coordenadas de caixas delimitadoras e análise de espaços em branco.
    • Compreensão de layout de modelos: Grafar redes neuronais e documentar modelos de IA que aprendam relações estruturais.
    • Transformadores multimodais: Modelos como o LayoutLM que combinam texto e informação de layout para preservação estrutural.
  • Mapeamento de coordenadas: Regista a posição exata de cada elemento de texto dentro da imagem original.

    • Transformação de coordenadas: Mapeamento matemático entre píxeis da imagem e coordenadas do documento.
    • Indexação espacial: Estruturas de dados como R-trees e quad-trees para consultas espaciais eficientes.
    • Modelos de regressão: Redes neuronais treinadas para prever coordenadas precisas de posicionamento do texto.
  • Validação de qualidade: Aplica verificações ortográficas e gramaticais para identificar potenciais erros de reconhecimento.

    • Validação baseada em dicionário: Consulte listas abrangentes de palavras e vocabulários especializados de domínio.
    • Modelos estatísticos de linguagem: modelos N-gramas e analisadores probabilísticos para validação gramatical e de contexto.
    • Modelos de linguagem neural: Modelos pré-treinados como GPT ou BERT, ajustados para deteção e correção de erros OCR.
    • Validação em conjunto: Combinar múltiplas abordagens de validação para melhorar a precisão da deteção de erros.