Reconhecimento ótico de carateres (OCR)
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.
As fases do processo de OCR são:
- Aquisição e entrada de imagens.
- Pré-processamento e melhoria de imagem.
- Deteção de regiões de texto.
- Reconhecimento e classificação de personagens.
- 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.