OCR (reconhecimento óptico de caracteres)

Concluído

Observação

Consulte a guia Texto e imagens para obter mais detalhes!

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

  • Faturas e recibos digitalizados
  • Fotografias digitais de documentos
  • Arquivos PDF que contêm imagens de texto
  • Capturas de tela e conteúdo capturado
  • Formulários e anotações manuscritas

O fluxo de trabalho do OCR: um processo passo a passo

O pipeline do OCR consiste em cinco estágios essenciais que trabalham juntos para transformar informações visuais em dados de texto.

Diagrama do pipeline do OCR.

Os estágios no processo do OCR são:

  1. Aquisição e entrada de imagem.
  2. Pré-processamento e aprimoramento de imagem.
  3. Detecção de região de texto.
  4. Reconhecimento e classificação de caracteres.
  5. Geração de saída e pós-processamento.

Vamos examinar cada estágio com mais profundidade.

Estágio 1: aquisição e entrada de imagem

O fluxo de processamento começa quando uma imagem que contém texto entra no sistema. Isso pode ser:

  • Uma foto tirada com uma câmera de smartphone.
  • Um documento digitalizado de um scanner de mesa ou de um scanner de documentos.
  • Um quadro extraído de um fluxo de vídeo.
  • Uma página PDF renderizada como uma imagem.

Dica

A qualidade da imagem neste estágio afeta significativamente a precisão final da extração de texto.

Estágio 2: Pré-processamento e aprimoramento de imagem

Antes do início da detecção de texto, as seguintes técnicas são usadas para otimizar a imagem para obter melhor precisão de reconhecimento:

  • A redução de ruído remove artefatos visuais, manchas de poeira e imperfeições de digitalização que podem interferir na detecção de texto. As técnicas específicas usadas para executar a redução de ruído incluem:

    • Algoritmos de filtragem e processamento de imagem: filtros gaussianos, filtros medianos e operações morfológicas.
    • Modelos de machine learning: autoencoders de remoção de ruído e redes neurais convolucionais (CNNs) treinadas especificamente para limpeza de imagens de documentos.
  • O ajuste de contraste aumenta a diferença entre texto e plano de fundo para tornar os caracteres mais distintos. Novamente, há várias abordagens possíveis:

    • Métodos clássicos: equalização de histograma, limitação adaptável e correção gama.
    • Machine learning: modelos de aprendizado profundo que aprendem os parâmetros de aprimoramento ideais para diferentes tipos de documento.
  • Correção de inclinação detecta e corrige a rotação do documento, garantindo que as linhas de texto estejam devidamente alinhadas horizontalmente. As técnicas para correção de distorção incluem:

    • Técnicas matemáticas: transformação de Hough para detecção de linhas, perfis de projeção e análise de componentes conectados.
    • Modelos de rede neural: CNNs de regressão que preveem ângulos de rotação diretamente a partir das características de imagem.
  • A otimização de resolução ajusta a resolução de imagem ao nível ideal para algoritmos de reconhecimento de caracteres. Você pode otimizar a resolução de imagem com:

    • Métodos de interpolação: algoritmos de remuestreio bicúbico, bilinear e Lanczos.
    • Modelos de super resolução: GANs (redes adversárias generativas) e redes residuais capazes de aumentar de forma inteligente imagens de texto de baixa resolução.

Estágio 3: Detecção de região de texto

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

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

    • Abordagens tradicionais: análise de componente conectada, codificação de comprimento de execução e segmentação baseada em projeção.
    • Modelos de aprendizado profundo: 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 por 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: clustering baseado em distância, análise de espaço em branco e operações morfológicas
    • Redes neurais: redes neurais do Graph e modelos de transformador que entendem a estrutura de documentos espaciais
  • A determinação da ordem de leitura estabelece a sequência na qual o texto deve ser lido (da esquerda para a direita, de cima para baixo para inglês). A ordem correta pode ser determinada por:

    • Sistemas baseados em regras: algoritmos geométricos usando coordenadas de caixa delimitadora e heurística espacial.
    • Modelos de machine learning: modelos de previsão de sequência e abordagens baseadas em grafo que aprendem a ler padrões com base em dados de treinamento.
  • A classificação de região identifica diferentes tipos de regiões de texto (cabeçalhos, texto do corpo, legendas, tabelas).

    • Classificadores baseados em características: Máquinas de vetor de suporte (SVMs) usando características artesanais, como tamanho da fonte, posição e formatação
    • Modelos de aprendizado profundo: redes neurais convolucionais e transformadores de visão treinados em conjuntos de dados de documentos rotulados

Estágio 4: Reconhecimento e classificação de caracteres

Esse é o núcleo do processo OCR em que caracteres individuais são identificados:

  • Extração de recursos: analisa a forma, o tamanho e as características distintas de cada caractere ou símbolo.

    • Métodos tradicionais: recursos estatísticos como momentos, descritores Fourier e recursos estruturais (ciclos, pontos de extremidade, interseções)
    • Abordagens de aprendizado profundo: redes neurais convolucionais que aprendem automaticamente recursos discriminativos com base em dados de pixel brutos
  • Correspondência de padrões: compara os recursos extraídos com modelos treinados que reconhecem diferentes fontes, tamanhos e estilos de escrita.

    • Correspondência de modelos: comparação direta com modelos de caractere armazenados usando técnicas de correlação
    • Classificadores estatísticos: Modelos Ocultos de Markov (HMMs), Máquinas de Vetores de Suporte e k-vizinhos mais próximos usando vetores de recursos
    • Redes neurais: perceptrons de várias camadas, CNNs e arquiteturas especializadas como LeNet para reconhecimento de dígitos
    • Aprendizado profundo avançado: redes residuais (ResNet), arquiteturas DenseNet e EfficientNet para classificação robusta de caracteres
  • Análise de contexto: usa caracteres e palavras ao redor para melhorar a precisão do reconhecimento por meio de pesquisas de dicionário e modelos de linguagem.

    • Modelos de N-grama: modelos de linguagem estatística que preveem 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 de linguagem neural: LSTM e modelos baseados em transformador (como variantes BERT) que entendem as relações contextuais.
    • Mecanismos de atenção: modelos Transformer que se concentram em partes relevantes da entrada ao fazer previsões de caracteres.
  • Pontuação de confiança: atribui pontuações de probabilidade a cada caractere reconhecido com base na certeza do sistema sobre sua identificação.

    • Abordagens bayesianas: modelos probabilísticos que quantificam a incerteza nas previsões de caracteres.
    • Saídas softmax: ativações da camada final da rede neural convertidas em distribuições de probabilidade.
    • Métodos de conjunto: combinando previsões de vários modelos para melhorar as estimativas de confiança.

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

O estágio final converte os resultados do reconhecimento em dados de texto utilizáveis:

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

    • Montagem baseada em regras: Algoritmos determinísticos que combinam previsões de caracteres usando níveis de confiança e proximidade espacial.
    • Modelos de sequência: redes RNNs (redes neurais recorrentes) e redes LSTM (Memória Short-Term Longa) que modelam o texto como dados sequenciais.
    • Modelos baseados em atenção: arquiteturas de transformador que podem lidar com sequências de comprimento variável e layouts de texto complexos.
  • Preservação de formato: mantém a estrutura do documento, incluindo parágrafos, quebras de linha e espaçamento.

    • Algoritmos geométricos: sistemas baseados em regras usando coordenadas de caixa delimitadora e análise de espaço em branco.
    • Modelos de compreensão de layout: redes neurais gráficas e modelos de IA para documentos que aprendem as relações estruturais.
    • Transformadores multi modais: modelos como LayoutLM que combinam informações de texto e layout para preservação da estrutura.
  • Mapeamento de coordenadas: registra a posição exata de cada elemento de texto dentro da imagem original.

    • Transformação de coordenadas: mapeamento matemático entre pixels de imagem e coordenadas de documento.
    • Indexação espacial: estruturas de dados como R-trees e quad-trees para consultas espaciais eficientes.
    • Modelos de regressão: redes neurais treinadas para prever coordenadas precisas de posicionamento de texto.
  • Validação de qualidade: aplica verificações ortográficas e gramaticais para identificar possíveis erros de reconhecimento.

    • Validação baseada em dicionário: pesquisa em listas de palavras abrangentes e vocabulários de domínio especializados.
    • Modelos de linguagem estatística: modelos de N-gram e analisadores probabilísticos para validação de gramática e contexto.
    • Modelos de linguagem neural: modelos pré-treinados, como GPT ou BERT, ajustados para detecção e correção de erros de OCR.
    • Validação do conjunto: combinando várias abordagens de validação para melhorar a precisão da detecção de erros.