Aplicação de aprendizagem profunda na correção de documentos

Aplicação de aprendizagem profunda na correção de documentos

1. Digitalize o documento

Em nossa vida diária, costumamos utilizar a função de digitalização de documentos. Incluindo a função de digitalização integrada do IOS Memo, Scanner Almighty , etc., a digitalização de documentos nos trouxe muita conveniência. A digitalização de documentos pode lidar com uma ampla gama de aplicações, incluindo cartões de identificação, cartões bancários, formulários em papel, etc. O objetivo da digitalização de documentos é identificar melhor as informações do texto. No entanto, ao digitalizar um documento, você encontrará vários problemas, incluindo sombras, rugas no documento, deformação do documento, etc. Hoje discutiremos principalmente a questão da deformação do documento.

2. Métodos tradicionais para resolver a deformação de documentos

2.1. Documento de deformação

Em nossa vida diária, a digitalização de um documento geralmente não consegue tirar uma imagem completa de todo o documento, ou obter um retângulo padrão, e encontrará vários problemas, resultando em uma certa deformação da imagem digitalizada. Isso inclui principalmente dobrar, dobrar, dobrar, perspectiva, rotação, etc. É muito simples para os computadores processarem documentos padronizados, mas alguns problemas surgirão quando simplesmente rotacionarmos o documento. Ao se deparar com outras transformações mais complexas, o trabalho de digitalização torna-se mais difícil.

A imagem à esquerda abaixo é uma situação mais fácil de ser tratada pelo computador, mas ao processar as imagens à direita os resultados não são tão ideais.

insira a descrição da imagem aqui

Para facilitar a identificação, corrigiremos a imagem deformada. Aqui comparamos métodos de correção tradicionais e métodos de correção baseados em aprendizado profundo.

2.2. Métodos tradicionais

Antes de o aprendizado profundo se tornar popular, já existiam contramedidas relevantes para resolver o problema de deformação de documentos. Por exemplo, as cartas de baralho na imagem abaixo apresentam problemas como rotação e perspectiva. Esperamos que o pôquer possa ser exibido individualmente na forma de um retângulo aproximadamente perfeito.

Aqui tomamos Xiao Wang como exemplo. Primeiro, encontraremos as coordenadas dos quatro cantos do pôquer (documento). Vários métodos de processamento de imagem, gradiente de imagem, detecção de borda e outros algoritmos serão usados ​​aqui. Em seguida, estime a largura e a altura do atiçador. Então podemos entender o processo de restauração da imagem conforme a figura a seguir:

Podemos obter uma matriz de transformação de acordo com as coordenadas dos quatro pontos da moldura vermelha à esquerda e dos quatro pontos da moldura vermelha à direita, e então realizar a transformação afim na imagem original para obter a imagem corrigida. Em seguida, realize o reconhecimento do texto na imagem corrigida, para que os resultados obtidos sejam mais precisos.

No exemplo acima, aplicamos a mesma transformação a cada pixel, o que pode resolver bem o problema de perspectiva. Se confrontado com deformações mais complexas, como flexão, dobramento, etc. Também precisamos fazer ajustes no processamento acima.

O uso de métodos tradicionais pode restaurar imagens até certo ponto, mas a situação real é muito mais complicada do que a acima, e o uso de métodos tradicionais encontrará vários problemas.

3. Método baseado no campo de deslocamento

O aprendizado profundo fornece um novo método para correção de deformação de imagem. Este método é semelhante à transformação afim acima, mas a matriz de transformação é obtida por meio de aprendizado profundo. Chamamos essa matriz de transformação de "campo de deslocamento".

3.1. Campo de deslocamento

Um campo de deslocamento é uma imagem com direção e magnitude semelhantes a um gradiente de imagem. A figura abaixo é um exemplo de campo de deslocamento.

O campo de deslocamento tem o mesmo formato da imagem e cada seta no campo de deslocamento é um vetor contendo informações de direção e magnitude. Ou seja, em que direção a posição correspondente da imagem precisa ser deslocada e o valor do deslocamento.

Na operação real, uma rede neural é treinada, tomando a imagem de deformação como entrada e, em seguida, gerando o campo de deslocamento. Como mostrado abaixo:
insira a descrição da imagem aqui

Após obter o campo offset, podemos corrigir a imagem.

3.2. Correção de Documento

Podemos fazer com que a imagem original e o campo de deslocamento realizem uma operação semelhante à transformação afim, ou seja, realizem um deslocamento correspondente para cada pixel da imagem original, e então obtenham a imagem corrigida. O diagrama de operação de deslocamento é o seguinte:

insira a descrição da imagem aqui

No exemplo acima, a imagem original está apenas parcialmente deformada. Este problema é difícil de resolver usando métodos tradicionais, mas pode ser facilmente resolvido usando campos de deslocamento. Comparado com a transformação afim tradicional, o campo de deslocamento pode transformar cada pixel de maneira diferente, permitindo ajustes mais flexíveis. Problemas como rugas e dobras podem ser muito bem resolvidos.

Às vezes, o documento corrigido terá algumas lacunas, então o processo completo de reparo também adicionará uma operação de preenchimento. Existem várias formas de preenchê-lo, uma delas é preenchê-lo com rede de internação. As etapas específicas são as seguintes:

insira a descrição da imagem aqui

Hoje em dia, a digitalização de documentos pode ser feita de forma muito inteligente e pode identificar vários documentos complexos. Incluindo manuscritos manuscritos, imagens de nuvens de palavras, tabelas, etc. Aqui tomamos TextIn, a plataforma inteligente de serviço de reconhecimento de texto da Hehe Information , como exemplo para experimentar a função de digitalização de documentos.

4. Experiência real

4.1. Padronizar fotos e manuscritos

Podemos experimentar nossas funções relacionadas ao reconhecimento de texto em TextIn . Vamos testar primeiro imagens relativamente padrão. Uma imagem de tabela é usada aqui para teste.

insira a descrição da imagem aqui

O lado esquerdo é a imagem usada para reconhecimento e o lado direito é o resultado do reconhecimento. O conteúdo é perfeitamente reconhecido e o conteúdo à direita pode ser copiado diretamente.

Departamento de veículosDepartamento de veículos Hehe informação Tempo de transporte, tempo do carro 20 de maio de 2020 Número de passageiros 14 pessoas
Destino Shibei, distrito de Jing'an, Shanghai Cloud Cube
Contato Contato Ele Xiaohe número de contatonúmero de contato 18888888888 O motorista dirige com segurança e na hora certa O motorista dirige com segurança e na hora certa
Motivo do carro (motivo do uso do carro): viagem oficial dirija com segurança e pegue a hora certa (verifique depois que o carro for finalizado pelo piloto. Verifique depois que o carro for finalizado pelo piloto)
Número da placa Número da placa Shanghai M888888 Nome do motorista He Xiaoan número de contato021-88888888 Locais de coleta Local de coleta nº 88, Parque Industrial de Xangai
Gerente de departamento de veículo de auditoria responsável Liu Yang Gerente AdministrativoChefe do departamento administrativo Yang Zhou

4.2. Roteiros de filmagem

Normalmente, a digitalização de documentos é feita a partir de imagens capturadas. A seguir, tentamos testá-lo com as imagens que nós mesmos tiramos, acrescentando artificialmente algumas dificuldades na hora de tirar fotos. O lado esquerdo é a imagem reconhecida, acredita-se que sombras, rugas, etc. sejam criadas para aumentar a dificuldade de reconhecimento. No lado direito está o resultado do reconhecimento, percebe-se que o conteúdo geral foi reconhecido normalmente.

insira a descrição da imagem aqui

Aqui está parte disso:

As cinco partes a seguir:

(1) Orifício de amostragem: permite que o equipamento digital observe elementos específicos da imagem sem ser afetado por outras partes da imagem.

(2) Mecanismo de digitalização de imagem: faz com que o orifício de amostragem se mova na imagem de maneira predefinida, observando assim cada sequência em sequência

Um pixel.

(3) Sensor de luz: detecta o brilho de cada pixel da imagem por amostragem, geralmente usando um conjunto CCD.

(4) Quantizador: Converta a quantidade contínua produzida pelo sensor de luz em um valor inteiro. Um quantizador típico é um conversor A/D

circuito, que produz um valor proporcional à tensão ou corrente de entrada.

4.3. Imagem de nuvem de palavras

Além das duas imagens convencionais acima, o TextIn também pode digitalizar imagens complexas, como fotos de passaporte, currículos, certificados imobiliários, nuvens de palavras, etc.

insira a descrição da imagem aqui

Em comparação com as questões anteriores, a situação da nuvem de palavras é mais complicada. O texto aqui é multilíngue e multiperspectivo, tornando-o muito difícil de identificar. É muito possível identificar os resultados no TextIn:

Olá, T.

Olá.

olá

É isso.

Saudações.

Olá.

Olá

salam

Embora o texto seja reconhecido, ele também é exibido no idioma correspondente.

4.4. Remoção do padrão moiré

Quando tiramos fotos de produtos eletrônicos, algumas texturas estranhas aparecem, essa textura é moiré. A eliminação do moiré pode melhorar a clareza das imagens e do texto, tornando-os mais fáceis de identificar. O reconhecimento de padrões moiré também pode ser implementado usando aprendizado profundo, e uma rede especializada de remoção de padrões moiré pode ser treinada. Aqui está um endereço de experiência para remover padrões moiré. A seguir está uma comparação de imagens com padrões moiré e imagens sem padrões moiré:

insira a descrição da imagem aqui

Após a remoção, o conteúdo do texto pode ser visto claramente.

4.5. Detecção inteligente PS

Além de realizar as tarefas acima relacionadas à digitalização de documentos e reconhecimento de texto, o TextIn também pode realizar detecção inteligente PS para detectar se a imagem foi editada no Photoshop. Muito eficaz na prevenção de fraudes. Hoje em dia, a tecnologia PS está muito madura. Muitas imagens photoshopadas não podem ser discernidas pelo olho humano. PS pode ser usado para falsificar registros de reprodução, certificados acadêmicos, documentos de certificação em papel, etc. O uso da detecção inteligente PS pode distinguir muito bem essas imagens falsas.Aqui, processamos artificialmente as imagens normais do PS e depois as testamos no TextIn .

insira a descrição da imagem aqui

O lado esquerdo é uma imagem em PS. É difícil dizer se foi photoshopada com o olho humano. À direita está o resultado da detecção, além de mostrar se houve adulteração, o resultado também mostrará a área adulterada.

4.6. Remover marca d'água

Remover marcas d'água também é uma função que precisamos usar com frequência. Às vezes, quando baixamos imagens, algumas marcas d'água são adicionadas automaticamente, o que bloqueará parte do conteúdo. TextIn fornece a função de remoção de marcas d'água, que pode ser experimentada em TextIn . A seguir está um exemplo do efeito real:

insira a descrição da imagem aqui

O lado esquerdo é o efeito processado e o lado direito é o efeito com marca d’água. Em primeiro lugar, o efeito de remoção da marca d'água é muito bom e a marca d'água é removida normalmente. E não há sensação de desfoque na parte onde a marca d'água é removida.

Além disso, podemos fazer uma coisa interessante: podemos adicionar manualmente uma marca d'água a um documento, usar TextIn para remover a marca d'água e, em seguida, enviar o resultado da remoção da marca d'água para a detecção inteligente PS mencionada para detectar se ela foi adulterada com, e podemos encontrar um fenômeno muito interessante. Você pode testar você mesmo.

4.7. Apagar automaticamente texto manuscrito

Há também uma função interessante no TextIn, que consiste em apagar automaticamente texto manuscrito. Isso é muito útil quando digitalizamos papéis de teste. Esta função pode ser experimentada em TextIn . Aqui estão os resultados do teste:

insira a descrição da imagem aqui

O que estamos testando é um papel de teste que foi escrito e corrigido. O papel de teste inclui inglês manuscrito, seleção manual de caixas, marcas de seleção, etc. Após a remoção, as porções manuscritas foram removidas, enquanto o conteúdo do próprio papel de teste foi retido. Além disso, o resultado da remoção também aprimora a imagem original, facilitando sua visualização.

4.8. Detecção e identificação de selos

Para algumas empresas, a função de reconhecimento e detecção de selos pode ser utilizada. O texto no selo geralmente é curvo e os programas gerais de reconhecimento de texto não conseguem lidar bem com isso. TextIn fornece a função de detecção e reconhecimento de selo. Incluindo a detecção do selo na imagem e a identificação do texto no selo. O seguinte é um efeito específico:

insira a descrição da imagem aqui

A imagem à esquerda é a imagem detectada. Existem vários selos na imagem. A imagem à direita é o resultado da detecção. Cada selo foi detectado e o conteúdo do texto do selo foi identificado. As funções acima podem ser experimentadas em TextIn .

4.9. Outras funções

Além das funções acima, o TextIn também pode executar funções como reconhecimento de código QR, reconhecimento de notas, reconhecimento relacionado a veículos e reconhecimento de evidências pessoais. Há também uma função de conversão de documentos. Aqui estão algumas interfaces que podem ser usadas:

insira a descrição da imagem aqui

As funções acima podem ser experimentadas diretamente ou você pode usar a API fornecida pelo TextIn para conectar as funções ao seu próprio aplicativo. Para documentação específica da API, consulte https://www.textin.com/document/index .

Por exemplo, a seguir está um trecho de código para reconhecimento geral de texto em Python:

import requests
import json

def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()

class CommonOcr(object):
    def __init__(self, img_path):
        # 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-app-id
        # 示例代码中 x-ti-app-id 非真实数据
        self._app_id = 'c81f*************************e9ff'
        # 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-secret-code
        # 示例代码中 x-ti-secret-code 非真实数据
        self._secret_code = '5508***********************1c17'
        self._img_path = img_path

    def recognize(self):
        # 通用文字识别
        url = 'https://api.textin.com/ai/service/v2/recognize'
        head = {
    
    }
        try:
            image = get_file_content(self._img_path)
            head['x-ti-app-id'] = self._app_id
            head['x-ti-secret-code'] = self._secret_code
            result = requests.post(url, data=image, headers=head)
            return result.text
        except Exception as e:
            return e

if __name__ == "__main__":
    response = CommonOcr(r'example.jpg')
    print(response.recognize())

A implementação é muito simples, bastando modificar o caminho da imagem no CommonOcr. Para mais funções, consulte https://www.textin.com/

Acho que você gosta

Origin blog.csdn.net/ZackSock/article/details/127570572
Recomendado
Clasificación