Automação da identificação de modificações na imagem dos documentos do contrato usando o modelo N-gram



Toda pessoa moderna sabe que você precisa assinar um documento antes que ele o tenha lido. Os violadores desta regra simples às vezes são surpreendidos por consequências inesperadas que poderiam ter sido evitadas se você examinasse o documento antes de assinar, incluindo o que está escrito em letras pequenas. Truques nos contratos dos prestadores de serviços são usados ​​como parte de piadas e filmes. Por exemplo, no filme Blinded by Desireso protagonista rescindiu um acordo muito desfavorável com o diabo, apesar do desconhecimento das condições para rescisão do contrato descritas no artigo 147, parágrafo 3, parte 3 do contrato. Uma situação semelhante às vezes é possível na vida real com os provedores de serviços. Na Internet, você pode encontrar uma descrição de casos curiosos em que um cliente do banco mudou os termos do contrato a seu favor, e isso foi uma surpresa para o banco. No artigo de hoje, falaremos sobre um algoritmo extremamente útil para bancos e outras organizações de crédito, que detecta automaticamente as modificações feitas nas imagens dos documentos do contrato. Então olhe embaixo do gato!

Atualmente, muitas organizações que atraem um grande número de novos clientes oferecem o download de um modelo de contrato em seu site para se auto-preparar. O contrato impresso, concluído e assinado é transferido para assinatura com a segunda parte. Obviamente, a segunda parte verifica os contratos preparados pelos clientes em potencial, por exemplo, verificando manualmente os documentos enviados. O número desses documentos pode ser bastante grande, portanto, vários funcionários atenciosos estão envolvidos na verificação deles. No entanto, ao verificar várias dezenas de documentos idênticos (no sentido) por dia, mesmo um funcionário limpo pode ignorar erros. Isso explica os casos de fraude que não foram detectados durante a verificação manual.

Falaremos sobre a automação da verificação de rotina acima de um grande fluxo de documentos de contrato usando tecnologias de reconhecimento óptico, que foram objeto de artigos da Smart Engines na Habr mais de uma vez (por exemplo, uma e duas vezes ).

Os documentos do contrato pertencem à classe de documentos comerciais criados para circulação em alguns sistemas de gerenciamento de escritório e gerenciamento de documentos. Uma característica distintiva dos documentos comerciais é a limitação do vocabulário usado e a maneira como ele é projetado. Isso se deve ao desejo de unificar as formas de documentos para simplificar o entendimento dos documentos comerciais, antes de tudo, por uma pessoa.

O modelo ou formulário do documento é descrito anteriormente e consiste em texto e campos estáticos para inserir informações. Considere duas classes comuns de modelos: um modelo fixo e um modelo flexível. O modelo fixo não permite a modificação de textos estáticos, por exemplo, ao usar o formato PDF. Modelos flexíveis podem ser usados ​​para permitir a modificação de textos estáticos, por exemplo, modelos no formato do Microsoft Office. Assim, distinguiremos entre documentos fixos e flexíveis.

Métodos conhecidos para comparação automatizada da imagem (digitalização ou foto) de um documento assinado com seu protótipo [1]. Eles verificam possíveis modificações no conteúdo:

  • substituição de um ou mais caracteres em uma palavra;
  • substituindo uma palavra por outra;
  • Adicione um caractere, palavra ou grupo de palavras
  • Exclua um caractere, palavra ou grupo de palavras.

Modificações no design do documento também são possíveis:

  • mudar o estilo das palavras (tamanho, fontes, tipo);
  • alterar os campos de um documento do word;
  • mudança no número de parágrafos;
  • alterar campos.

A modificação de um modelo fixo é uma falsificação intencional, porque não há outra maneira de explicar o desejo de alterar o texto protegido. A modificação de um modelo flexível pode ser uma falsificação, um erro de digitação acidental ou resultado de uma formatação aprimorada.

Em seguida, descrevemos os modelos e métodos de pesquisa de fraude em cópias de documentos comerciais impressos usando modelos fixos e flexíveis.

A base para comparar a imagem de teste (cópia) e a imagem de referência (original) são as imagens de palavras encontradas por qualquer método. A imagem da palavra é representada por alguma descrição (descritor), o descritor mais óbvio são os caracteres reconhecidos da palavra. PalavraWdefinido como um ponto de recurso de texto W=(T(W),B(W))Onde - T(W)- o ponto principal do elemento de texto, ou seja, uma sequência de caracteres de uma palavra que consiste em caracteres de um alfabeto específico ou uma sequência de familiaridade com classificações de conformidade de familiaridade com os caracteres do alfabeto, B(W)- quadro do ponto de traço de texto, composto pelas coordenadas da borda Bx1(W), By1(W), Bx2(W), By2(W)que pode ser normalizado em um determinado intervalo, bem como F(W)- Sinais de um ponto de recurso de texto (por exemplo, um fone de ouvido e uma modificação de fonte).

Um ponto de recurso de texto é semelhante a um ponto de recurso "gráfico" em uma imagem, o que significa um ponto que satisfaz várias condições:

  • um bairro que difere de pontos nas proximidades;
  • imunidade a ruídos;
  • resistência a certas transformações (por exemplo, a afinar transformações ou dimensionamento) [2].

As propriedades dos pontos singulares são:

  • repeatability – , ;
  • distinctiveness/informativeness – ;
  • locality – ;
  • quantity – ;
  • accuracy – , , ;
  • efficiency – .

Supõe-se que um ponto de recurso de texto seja diferente dos pontos de recurso de texto vizinhos nas proximidades. Se por bairro queremos dizer uma linha de texto, a maioria das palavras nos documentos comerciais difere dos vizinhos da linha. Várias palavras idênticas colocadas na mesma linha não serão pontos singulares do texto. No entanto, se por vizinhança queremos dizer uma ou duas palavras vizinhas, duas palavras idênticas colocadas na mesma linha e diferenciadas por palavras vizinhas serão pontos singulares de texto. A comparação de pontos singulares é realizada usando a medida de similaridade d, que deve levar valores próximos de zero no caso de comparar dois pontos correspondentes a um local da imagem e valores grandes ao comparar pontos de diferentes locais da imagem.Comparações de dois núcleos de pontos singulares de texto neste artigo são baseadas na distância de LevenshteinρLev[3] e suas modificações. Limited(W) comparações de palavras T(W)com outras palavras, é calculado antecipadamente. E seρLev(W,Wr)<d(W)então a palavra Wre ponto de recurso de texto Wsão idênticos , caso contrário diferentes.

Um descritor de ponto de recurso é um identificador usado ao combinar pontos de recurso. Espera-se que o descritor seja invariável ao corresponder pontos singulares com relação às transformações de imagem.

O método de extrair pontos singulares de uma imagem é chamado de detector. DetectorUm ponto de recurso de texto é um procedimento de reconhecimento usando algum OCR que extrai descritores de pontos de recurso de uma imagem do documento. As propriedades dos pontos de recurso listados acima são válidas para os pontos de recurso de texto no caso da capacidade do OCR moderno de compensar diferentes tipos de distorção da imagem. A singularidade dos descritores de singularidade do texto é determinada pela estrutura dos documentos (divisão inequívoca de um documento em constelações - seções, parágrafos e linhas) e propriedades da linguagem natural (uma rara coincidência nos documentos de duas palavras adjacentes). Várias relações entre pontos singulares textuais (relações acima - abaixo, direita - para a esquerda ou distância geométrica entre os quadros) permitem combinar pontos em constelações usando algoritmos de agrupamento.

Idealmente, o OCR extrai todos os pontos específicos do texto da imagem de cópia e do modelo de documento sem erros. Isso permite formar constelações, especialmente a linha. A comparação de uma cópia e uma referência consiste em estabelecer uma correspondência inequívoca entre todo ou parte do texto, pontos singulares da referência e um conjunto de pontos específicos da cópia. O processo de estabelecer correspondência entre pontos ou constelações de pontos é chamado de coordenação.

A coordenação de documentos fixos inclui:

  • procure a correspondência de qualquer ponto no ponto de referência na cópia
  • procure correspondência de qualquer ponto da cópia nos pontos da norma;
  • procure correspondência de qualquer linha estática do padrão nos pontos da cópia;
  • procure correspondência de qualquer linha de cópia estática nos pontos do padrão;
  • verificação da identidade das imagens de cada par de imagens coordenadas.

Qualquer inconsistência encontrada é uma possível modificação. Obviamente, a inconsistência encontrada pode ser causada por erros no detector (OCR) ou distorções na imagem do documento. A declaração do problema é procurar todas as modificações na cópia do documento.

A coordenação de documentos flexíveis envolve o estabelecimento de uma correspondência entre todas as palavras de um texto estático. No entanto, diferentemente dos documentos fixos, nenhuma correspondência entre linhas de texto estático de um documento flexível é assumida. Em documentos flexíveis, são possíveis alterações legítimas que não alteram o significado do texto, como alterar a fonte, alterar os limites das linhas, quebras de linha. Tais modificações podem levar a quebras de linha em outra página; portanto, uma comparação de documentos flexíveis para várias páginas deve ser realizada para toda a sequência de páginas.

No caso geral, sem o conhecimento da estrutura do documento, é necessária a coordenação de todas as palavras dos documentos de teste e referência. Uma desvantagem definitiva da coordenação total das palavras são os inevitáveis ​​erros de reconhecimento, especialmente para fotos (veja um exemplo de um fragmento de uma imagem de texto com distorções na figura abaixo), interpretados como modificações. A pessoa responsável pela verificação será forçada a dedicar mais tempo à verificação de modificações falsas.



Com a coordenação total das palavras da cópia e do original, além de erros de reconhecimento falso, pode haver outras diferenças insignificantes. O fato é que, do ponto de vista do usuário funcional do programa para comparar a cópia e o original, nem todas as palavras têm o mesmo valor. De fato, um subconjunto das palavras de uma página de um documento, que determina os termos essenciais do contrato, é valioso. Supõe-se que a tarefa do fraudador seja fazer essas modificações que, no tribunal ou em um processo antes do julgamento, possam causar danos à organização que assinou o contrato com o fraudador. Dê uma definição formal de tais significantespalavras dificilmente são possíveis, elas são determinadas por especialistas. Além disso, algumas palavras se tornam significativas em combinação com as palavras vizinhas. Por exemplo, a partícula “não” em combinação com a palavra adjacente “garantias” é significativa. A modificação da palavra “contrato” para a palavra “não contrato” é insignificante, pois em um julgamento não pode trazer benefícios a um fraudador.

Assim, é possível outra formulação do problema, utilizando o conhecimento da estrutura do documento e a colocação das palavras essenciais para a verificação. Nesta declaração, o modelo de documento consiste em parágrafos e cadeias de texto. Cada linha de texto e cada parágrafo é representado por um conjunto de pontos singulares de texto cuja sequência é exclusiva para um determinado parágrafo ou linha. Linhas e parágrafos também podem conter palavras que não são únicas, ou seja, repetidas ou mesmo localizadas nas proximidades. Em casos especiais, é possível saber a distância entre palavras únicas, determinada pelo número de caracteres intermediários ou pela distância geométrica entre as imagens das palavras.

O uso de um modelo simples de palavras N-grama provou ser eficaz. O modelo N-gram é usado em várias tarefas, como compactação ou codificação de textos. No processamento de textos escritos em uma linguagem natural, os N-gramas são úteis para encontrar e corrigir erros (já escrevemos sobre isso antes ).

Para pesquisar palavras-chave, N-gramas de palavras são usadas das seguintes formas:

n2(wi)=wi,r1(wi)
n3(wi)=wi,r1(wi),r2(wi)
n2(wi)=l1(wi),wi
n3(wi)=l1(wi),wi,r1(wi)
n4(wi)=l1(wi),wi,r1(wi),r2(wi)
n3(wi)=l2(wi),l1(wi),wi
n4(wi)=l2(wi),l1(wi),wi,r1(wi)
n5(wi)=l2(wi),l1(wi),wi,r1(wi),r2(wi),

Onde rk(wi), lq(wi)uma palavra à direita ou esquerda da palavra central widistâncias permitidas também são conhecidas ρBT(wi,r1(wi)), ρBT(r1(wi),r2(wi)), ρBT(l1(wi),wi), ρBT(l2(wi),l1(wi))entre palavras adjacentes. Índicek na designação de gramas N nk(wi)chame o comprimento do N-grama.

Um modelo de parágrafo consiste em uma sequência ordenada de N-gramas
n1(w1),n2(w2),,nm(wm)com tuplas predefinidas de palavras ni(wi), com distâncias conhecidas entre pares {nj1(wj1),nj(wj)}. Observe que alguns gramas N são exclusivos de um parágrafo e alguns podem ser repetidos. Para garantir a exclusividade, é possível usar N-gramas de vários comprimentos: bigramas, trigramas, tetragramas e pentagramas.

Ao construir um modelo de parágrafo, N-gramas são formados para maximizar o número de N-gramas únicos. O uso de N-gramas em comparação com palavras-chave individuais garante exclusividade para a maioria dos parágrafos dos documentos do contrato, em primeiro lugar, devido à limitação significativa do conjunto de palavras no texto estático mencionado acima.

Faz sentido realizar treinamento e otimização de parâmetros em conjuntos de dados reais. Observe que, mesmo em conjuntos de dados reais, não veremos possíveis modificações, em primeiro lugar, devido à classificação desses dados pelos proprietários dos conjuntos de dados. Eu tenho que fazer modificações com minhas próprias mãos.

O algoritmo de busca do trigrama se resume a selecionar várias palavras consecutivas. Claro, primeiro você precisa formar um conjunto de pontos singulares de texto. Para fazer isso, seguimos as seguintes etapas:

  • processamento de meio-tom (biblioteca MinImage);
  • normalização da imagem por ângulo usando métodos baseados na transformação rápida de Hough [4] (API Smart IDReader);
  • destacar limites de palavras usando as operações de "erosão" e "dilatação" (biblioteca MinImage);
  • reconhecimento de caracteres dentro dos limites das palavras encontradas (API Smart IDReader).

O parágrafo foi apresentado como uma linha longa.

Uma comparação de palavras ideais e palavras reconhecidas de um parágrafo foi realizada usando a distância de Levenshtein modificada. Os algoritmos de cálculo da distância de Levenshtein são bem conhecidos, pois permitem encontrar não apenas o número de prescrições editoriais, mas também as próprias prescrições.

A distância de Levenshtein modificada foi utilizada. Primeiro, um limite único foi escolhido para comparar uma palavra específica com outras palavras. Para a recusa em identificar pares de palavras do tipo “SEA” = “MONTANHA” ou para identificadores do tipo “IDENTIFICATOR196”, “IDENTIFIER296”, “IDENTIFIER199”, outra regra foi aplicada. Para tais palavras, foram indicados segmentos que permaneceriam inalterados. Ou seja, no início das palavras “IDENTIFIER ddd”, um grande número de erros foi permitido, mas a identificação foi proibida com as instruções editoriais encontradas nos últimos 3 caracteres da palavra.

Outra modificação foi compensar a substituição do OCR de alguns caracteres por caracteres semelhantes. Substituir formalmente caracteres pelo alfabeto latinoB8, DO, 1IExistem erros, no entanto, reduzir o preço de tais substituições pode melhorar a precisão da identificação de palavras. O preço da substituição de uma letra por caracteres com estilos semelhantes foi escolhido durante o treinamento.
Com base em várias distâncias do centro e vizinhos do grama N aos análogos selecionados, é formada uma estimativa heurística da ligação do grama N como um todo.
Os parâmetros do modelo (limiares, comprimentos de N-grama) foram escolhidos durante o treinamento para minimizar o número de erros de ligação de N-grama e maximizar o número de N-gramas corretamente ligados.

Depois de vincular os gramas N às palavras do parágrafo, podem ser realizadas as seguintes verificações:

  • a presença de todos os N-gramas esperados;
  • a presença de todos os N-gramas únicos em uma cópia;
  • a sequência de N-gramas;
  • distância entre N-gramas adjacentes.

A falha em executar qualquer uma das verificações significa encontrar uma modificação na palavra-chave importante.

O método descrito foi testado em um conjunto de dados composto por 161 imagens de um documento do tipo “Contrato” digitalizado com uma resolução de 100 a 300 dpi. Investigamos um modelo de 33 palavras-chave. Algumas das palavras-chave nas imagens do conjunto de dados foram excluídas ou modificadas deliberadamente. Foram feitas 740 deleções e modificações de 140 palavras. O OCR Smart IDReader [5] foi utilizado para reconhecimento.

A qualidade do algoritmo foi avaliada pelos critérios de exatidão (Precisão) e completude (Recall), na determinação de quais números foram utilizados:

  • encontrou palavras modificadas tp;
  • palavras corretas classificadas como modificações fp;
  • palavras modificadas não encontradas fn;
  • palavras corretas classificadas como corretas tn.

Os resultados são apresentados na tabela. A tabela mostra as características calculadas para vários limites.d(wi) avaliação da exatidão da palavra em comparação com a palavra de referência.

d (w i )tpfptnfnPrecisãoRecordar
1 12164147380 00,341,00
22169010620 00,701,00
3 e mais2165410980 00,801,00

Observe que, quando o OCR Smart IDReader foi reconhecido, todas as palavras modificadas foram encontradas. Erros de metol estão associados a erros de reconhecimento, principalmente devido a defeitos de varredura (presença de áreas superexpostas).

É fácil adivinhar que o método descrito tem uma limitação associada à precisão de distinguir os limites das palavras. Os defeitos de verificação indicados levaram a um pequeno número de erros de pesquisa nos limites de palavras (cerca de 1 a 1,5% para algumas palavras-chave). Para eliminar essa limitação, oferecemos uma maneira adicional de pesquisar palavras. Para alguns grama-N não detectados, um subconjunto das palavras do parágrafo reconhecido foi selecionado no qual era esperada a presença desse grama-N. As lacunas foram removidas do subconjunto de palavras selecionado e uma sequência de caracteres foi formada. As palavras do N-grama concatenaram, formando uma substring para a pesquisa. Em seguida, pesquisamos por substrings, por exemplo, usando um algoritmo de bitup modificado usando uma distância de Levenshtein modificada. Isso permite reduzir em 2-3 vezes o número de erros de verificações de N-grama associadas a erros na busca de limites de palavras.

Breve conclusão


Falamos sobre uma ferramenta para pesquisar falsificações de documentos de contrato. Obviamente, essa ferramenta não resolve completamente o problema e são necessárias verificações manuais das palavras supostamente modificadas encontradas. O método permite automatizar de forma confiável a pesquisa por modificações e reduzir significativamente o número de verificações manuais de rotina. A complexidade do desenvolvimento do método descrito foi a dificuldade de obter conjuntos de dados reais com falsificações.

Bibliografia
  1. Sidere N. et al. Um conjunto de dados para detecção e detecção de falsificações em imagens de documentos // Sétima Conferência Internacional sobre Tecnologias de Segurança Emergentes (EST) 2017. - IEEE, 2017 - p. 26-31.
  2. Bertrand R. et al. A conditional random field model for font forgery detection // 2015 13th International Conference on Document Analysis and Recognition (ICDAR). – IEEE, 2015. – P. 576-580.
  3. . . , // . – , 1965. – . 163. – №. 4. – . 845-848.
  4. Bezmaternykh P. V., Nikolaev D. P. A document skew detection method using fast Hough transform // Twelfth International Conference on Machine Vision (ICMV 2019). – International Society for Optics and Photonics, 2020. – Vol. 11433. – P. 114330J.
  5. Bulatov K. et al. Smart IDReader: Document recognition in video stream // 2017 14th IAPR International Conference on Document Analysis and Recognition (ICDAR). – IEEE, 2017. – Vol. 6. – P. 39-44.


All Articles