OCR (reconhecimento óptico de caracteres)
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.
Os estágios no processo do OCR são:
- Aquisição e entrada de imagem.
- Pré-processamento e aprimoramento de imagem.
- Detecção de região de texto.
- Reconhecimento e classificação de caracteres.
- 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.