Universidade Federal de Pernambuco
Centro de Informática
Pós-Graduação em Ciência da Computação
Simulação de Forças Físicas para
Segmentação e Restauração de Dígitos e
Sequências de Dígitos em Imagens de
Documentos Manuscritos
Alberto Nicodemus Gomes Lopes Filho
Tese de DoutoradoRecife
2015
Alberto Nicodemus Gomes Lopes Filho
Simulação de Forças Físicas para Segmentação e Restauração de Dígitos e
Sequências de Dígitos em Imagens de Documentos Manuscritos
Trabalho apresentado ao Programa de
Pós-Graduação em Ciência da Computação do
Centro de Informática da Universidade Federal
de Pernambuco como requisito parcial para
obtenção do grau de Doutor em Ciência da
Computação.
Orientador: Carlos Alexandre Barros de Mello
Recife
2015
Catalogação na fonte
Bibliotecária Joana D’Arc Leão Salvador CRB4-532
L864s Lopes Filho, Alberto Nicodemus Gomes.
Simulação de forças físicas para segmentação e restauração de dígitos e sequências de dígitos em imagens de documentos manuscritos / Alberto Nicodemus Gomes Lopes Filho. – Recife: O Autor, 2015.
186 f.: fig., tab.
Orientador: Carlos Alexandre Barros de Mello.
Tese (Doutorado) – Universidade Federal de Pernambuco. CIN, Ciência da Computação, 2015.
Inclui referências.
1. Ciência da computação. 2. Inteligência computacional. 3. Processamento de imagens. I. Mello, Carlos Alexandre Barros de (Orientador). II. Titulo.
004 CDD (22. ed.) UFPE-MEI 2015-080
Tese de Doutorado apresentada por Alberto Nicodemus Gomes Lopes Filho à Pós Graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco, sob o título “Simulação de Forças Físicas para
Segmentação e Restauração de Dígitos e Sequências de Dígitos em Imagens de Documentos Manuscritos” orientada pelo Prof. Carlos Alexandre Barros de Mello
e aprovada pela Banca Examinadora formada pelos professores:
__________________________________________ Prof. George Darmiton da Cunha Cavalcanti
Centro de Informática / UFPE
___________________________________________ Prof. Cleber Zanchettin
Centro de Informática / UFPE
___________________________________________ Prof. Adriano Lorena Inácio de Oliveira
Centro de Informática / UFPE
___________________________________________ Prof. Luiz Eduardo Soares de Oliveira
Departamento de Informática / UFPR
____________________________________________ Prof. Byron Leite Dantas Bezerra
Escola Politécnica de Pernambuco / UPE
Visto e permitida a impressão. Recife, 26 de fevereiro de 2015.
___________________________________________________
Profa. Edna Natividade da Silva Barros
Coordenadora da Pós-Graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco.
Agradecimentos
Agradeço em primeiro lugar à Deus por me conceder saúde e forças para seguir em busca dos meus objetivos.
À Sofia, por estar ao meu lado e me dar sempre o apoio que eu preciso. Agradeço a Benjamin, que chegou com o trabalho em andamento mas que me deu um ânimo renovado.
Aos meus pais, por toda a criação e educação que me deram, além do seu apoio.
Ao meu orientador, Carlos Alexandre, pela orientação impecável e também pelas “chamadas” nas horas certas.
Resumo
Dentre os problemas e desafios que permeiam o processo de digitalização de documentos e todos os passos subsequentes até a transposição da informação para o meio digital, dois pontos específicos são focados: o texto partido ou degradado e texto escrito em tamanha proximidade que geram sobreposições dos traços. Assim, métodos para solucionar tais problemas, foram pesquisados e desenvolvidos. Baseamos nossa abordagem na emulação de forças físicas de inércia e centrípeta pois entendemos que estas podem ser bem utilizadas para o processamento de imagens de caracteres manuscritos.
Para o problema de dígitos partidos, foi desenvolvida uma solução para a restauração de dígitos isolados quebrados e de cadeias de dígitos quebrados através da emulação das forças centrípeta e de inércia. Esta solução tem como princípio gerar uma reconstrução da quebra de modo que se assemelhe à escrita do dígito em questão. Também é abordado a sobreposição de pares de dígitos, problema para o qual foi proposta uma solução de segmentação. Esta solução de segmentação se baseia no conceito de uma bola deformável que tem seus movimentos regidos pela emulação da força de inércia e pela deformação que lhe é permitida receber.
Ainda, para desenvolvimento e experimentação dos métodos, foram formadas bases de imagens pertinentes a cada aplicação. Os resultados obtidos mostram desempenhos promissores. Ao aplicar a reconstrução, obtivemos um ganho de aproximadamente seis pontos percentuais em taxa de reconhecimento em relação ao reconhecimento dos dígitos partidos. Já a segmentação provou que supera outros dois métodos de segmentação quando aplicamos o reconhecimento aos dígitos segmentados. Também deve-se ressaltar a questão do custo computacional, especificamente a solução voltada para a segmentação de dígitos sobrepostos, onde seu custo se apresenta mais baixo em relação aos métodos similares pesquisados e testados. Assim, mostramos que os métodos propostos atingem seus objetivos, aliando bons desempenhos com custos computacionais baixos.
Palavras-chave: Dígitos sobrepostos. Segmentação de dígitos. Restauração de dígitos. Forças
Abstract
Among the problems and challenges that surround the process of document digitization and all subsequent steps until the conversion of the information to a digital medium, two specific steps are focused: broken text and text written in such proximity that cause overlapping of strokes. Methods to solve these problems were researched and developed. We base our approach on the emulation of physical forces of inertia and centripetal force, since it is our understanding that the emulation of such forces can be used for the processing of images of handwritten characters and digits.
For the problem of broken digits, a solution for the restoration of isolated broken digits and chains of broken digits through the emulations of inertia and centripetal force was developed. This solution has as principle to generate a reconstruction of the break in such a way that it resembles closely the writing style of the digit in question. We also tackle overlapping pairs of digits, problem for which we propose a segmentation solution. This segmentation is based on the concept of a deformable ball that has its movements governed by the emulation of inertia and the degree of deformation the ball is allowed to have.
For development and experimentation of the created methods, image databases pertinent to each application were formed. The obtained results show promising performance. When applying the reconstruction, we obtained a gain of approximately six percentage points in recognition rates when compared to rates obtained for broken digits. In regards to segmentation, it proved to outperform two other methods when recognition is applied to the output segmented digits. The computational cost of the methods should also be pointed out, specifically regarding the solution created for the segmentation of overlapped digits, which is lower when compared to other similar methods that were researched and tested. Therefore, we show that the proposed methods reach their goals, coupling performance with low computational costs.
Keywords: Overlapped digits. Digit segmentation. Digit restoration. Physical forces.
Lista de Figuras
Figura 1 - Processo de digitalização até a geração de um documento de texto. ... 20 Figura 2 - Etapas de um sistema de processamento de documentos para OCR. ... 20 Figura 3 - Exemplo de um dígito danificado, ou partido. Neste caso, temos um ‘5’ que não está completamente conectado... 29 Figura 4 - Exemplo de dígitos que são danificados em decorrência do processo de binarização. ... 30 Figura 5 - Exemplo de um dígito não completamente conectado pelo autor. ... 30 Figura 6 - Fluxograma relativo ao método de Xi et al. ... 32 Figura 7 - (a) Imagem original em tons de cinza. (b)(c)(d)(e) resultados de binarização utilizando métodos clássicos e (f) resultado do método de Xi et al.. ... 33 Figura 8 - Fluxograma relativo ao método de Antonacopoulos e Castilla...36 Figura 9 - (esquerda) Localização das posições dos caracteres e (direita) localização precisa das posições...36 Figura 10 - Funcionamento do método Antonacopoulos e Castilla. (a) Imagem original, (b) ternerização cautelosa, (c) binarização agressiva e (d) resultado combinado...37 Figura 11 - Funcionamento do método de Nomura et al. (a) Imagem onde existe uma quebra no caractere ‘n’ e (b) resultado da reconstrução do caractere ‘n’ e segmentação dos caracteres. ... 38 Figura 12 - Fluxograma da técnica de Allier et al...40 Figura 13 - Método de busca de template na base usado pela técnica de Allier et al.. ... 41 Figura 14 - Exemplo de funcionamento do algoritmo de Shi e Govindaraju. A imagem (a) mostra o traço original degradado, (b) mostra a aplicação da máscara em um pixel aleatório e (c) ilustra o resultado do preenchimento do traço após o uso da máscara...43 Figura 15 - (a) Imagens originais degradadas, (b) SCM das imagens, (c) aplicação do contorno ativo e (d) reconstrução e segmentação obtidas pelo método.. ... 44
8
Figura 16 - Funcionamento do processo de Whichello e Yan. Nas imagens 1, 5 e 9 temos a determinação das bordas do dígito. As imagens 2, 6 e 10 trazem os resultados do preenchimento. Vemos os resultados da operação XOR nas imagens 3, 7 e 11. Já nas imagens 4, 8 e 12 vemos os resultados da remoção de ruídos... 45 Figura 17 - Base de imagens de padrões de quebras internas...48 Figura 18 - Exemplo de restauração de Yu e Yan. (a) Imagem original, (b) os pontos de quebra selecionados, (c) a ligação entre os pontos de quebra e (d) o dígito restaurado...48 Figura 19 - (a) e (c) pares de dígitos que se tocam. (b) e (d) linhas de separação desenhadas, em vermelho, entre os dígitos... 49 Figura 20 - (a) e (c) pares de dígitos que se tocam. (b) e (d) bounding boxes de cada um dos dígitos. ... 50 Figura 21 - Exemplo de segmentação pela técnica hit and deflect. A linha vermelha mostra o caminho de segmentação encontrado. ... 51 Figura 22 - Escolha do ponto inicial do algoritmo drop fall.. ... 52 Figura 23 - Ponto de corte encontrado usando a variação descendente pela esquerda.. ... 53 Figura 24 - Ponto de corte encontrado usando a variação descendente pela direita... ... 53 Figura 25 - Segmentação utilizando o algoritmo drop fall. ... 54 Figura 26 - Pontos iniciais mal escolhidos causam a falha do algoritmo. ... 54 Figura 27 - Classificação dos tipos de região: (a) dígitos conectados, (b) esquinas, (c) regiões abertas, (d) região de pico, (e) regiões de vale e (f) região interior...55 Figura 28 - A linha vermelha define o caminho de separação obtido utilizando Min-Max... 56 Figura 29 - Reservatórios de água encontrados pelo método em três pares de dígitos conectados.. ... 57 Figura 30 - Dígitos afinados com a legenda ‘1’ (esquerda) e dígitos afinados com as legendas ‘1’, ‘2’ e ‘3’.. ... 60 Figura 31 - Dígitos afinados, (b) legendados apenas com ‘1’, (c) com todas as legendas, (d) após o processo de separação, (e) após o processo de restauração.. ... 63 Figura 32 - Exemplo de um caso onde o processo obteve sucesso sem o uso da restauração.. ... 65
9
Figura 33 - Processo de separação mal sucedido: (a) imagem original, (b) após afinamento, (c) com pontos de característica, (d) após segmentação inicial e (e) após restauração.. ... 66 Figura 34 - Processo de separação mal sucedido: (esquerda) imagem original e (esquerda) após segmentação e restauração.. ... 66 Figura 35 - Dígitos afinados e com suas áreas classificadas em regulares e singulares.. 68 Figura 36 - Visão geral do método baseado em sobre-segmentação... ... 70 Figura 37 - Par de dígitos sobrepostos e sua esqueletização correspondente...71 Figura 38 - (a) Pontos iniciais com apenas um vizinho, (b) ponto inicial (SP) com dois vizinhos (N) adjacentes (superior) e ponto inicial (SP) descartado porque seus dois vizinhos (N) não são adjacentes (inferior), (c) na falta de pontos iniciais, são escolhidos os pontos mais à esquerda e mais à direita...72 Figura 39 - (a) e (b) a bola segue pelo único caminho possível, (c) a bola chega a um ponto que precisa decidir que caminho tomar, (d) a bola escolhe o caminho que produz menor mudança em sua trajetória...73 Figura 40 - Matriz de posições...73 Figura 41 - Situação em que o algoritmo deve fazer uma escolha entre caminhos...74 Figura 42 - Caso em que, dependendo do sentido que a bola tome, a segmentação pode falhar. O ‘X’ indica o ponto inicial.. ... 74 Figura 43 - Caso em que a força de inércia causa uma falha na segmentação. Ao utilizar o princípio de força centrípeta, a segmentação tomaria o caminho da esquerda, na área grifada pelo círculo vermelho, obedecendo aos últimos deltas válidos...75 Figura 44 - (a) Dígito com um pequeno traço, (b) e (c) representam o resultado da segmentação. (b) Obedece às regras de traço de dígito e será movido para (c), resultando no dígito completo em (a).. ... 76 Figura 45 - Forma clássica de vizinha 8-conectada de pixels. O pixel central, em vermelho, tem um total de 8 vizinhos em sua volta. ... 78 Figura 46 - (esquerda) par de caracteres sobrepostos e (direita) reconhecimento automático de trajetórias, trajetórias curvas estão em vermelho e trajetórias retas estão em preto. ... 80 Figura 47 - Exemplo da primeira regra da função de agrupamento...82 Figura 48 - Exemplo da segunda regra da função de agrupamento...82 Figura 49 - Fluxograma do método proposto para restauração, com seus principais módulos. ... 84
10
Figura 50 - Dígitos e seus esqueletos correspondentes. ... 85 Figura 51 - Exemplo de como o princípio da inércia é emulado. A próxima posição a ser visitada é aquela que produz a menor mudança na direção atual do movimento. ... 88 Figura 52 - (esquerda)Um exemplo de um dígito partido e (direita)o resultado de estender seu traço na seção danificada... 93 Figura 53 - Exemplo de como o algoritmo usa a direção do traço para determinar se deve haver uma reconstrução. Neste caso, não ocorreria cruzamentos das extensões, já que os traços se apresentam quase paralelamente...95 Figura 54 - Processo de extensão dos traços. (esquerda) Dígito quebrado, (centro) traços estendidos que se cruzam e (direita) extensões são consideradas válidas e são cortadas. ... 96 Figura 55 - Exemplo do processo de aumento de espessura dos traços artificias, aplicado a um dígito ‘7’. ... 99 Figura 56 - Fluxograma do método proposto para restauração com emulação das forças de inércia e centrípeta, com seus principais módulos. ... 101 Figura 57 - (a) imagem original. (b) imagem restaurada pela emulação de inércia: na esquerda está o dígito com as extensões afinada e cortadas e à direita, a sua reconstrução fina. (c) imagem restaurada pela emulação da força centrípeta: na esquerda está o dígito com as extensões afinada e cortadas e à direita, a sua reconstrução fina. ... 108 Figura 58 - (esquerda) imagem original, (centro) imagem restaurada pela emulação da força de inércia, (esquerda) imagem restaurada pela emulação da força centrípeta...108 Figura 59 - Imagens de campos numéricos de cheques bancários. ... 109 Figura 60 - (esquerda) imagem original de campo numérico de cheque bancário, (direita) imagem após tratamento para retirada de ruídos e artefatos indesejados...110 Figura 61 - Exemplo de segmentação de linha que classifica parte de uma letra como pertencente a uma linha diferente. ... 114 Figura 62 - (alto) imagem de carta de Joaquim Nabuco, (baixo) enfoque em área que apresenta sobreposição vertical de caracteres. ... 114 Figura 63 - Fluxograma do método de segmentação aplicado para caracteres sobrepostos verticalmente, com seus principais módulos. ... 115 Figura 64 - Exemplo de como a natureza do caractere afinado pode afetar a segmentação. (a) imagem original no alto e abaixo, enfoque na interseção dos traços. (b) versão afinada
11
das imagens, abaixo se vê que a imagem afinada produz uma quebra de continuidade no traço. ... 119 Figura 65 - Resultado da segmentação quando aplicada à imagem mostrada na Figura 64a (alto). ... 119 Figura 66 - Fluxograma do método de segmentação através de uma bola deformável, com seus principais módulos. ... 120 Figura 67 - Exemplo das áreas usadas para buscar pontos iniciais. ... 122 Figura 68 - Exemplo de como para cada ponto inicial, duas caminhadas são executadas...123 Figura 69 - Exemplo de como o raio é utilizado para calcular o tamanho da bola e restringir seus movimentos. ... 125 Figura 70 - Exemplo da fase de reposicionamento. (esquerda) e (centro) apresentam traços passíveis a serem reposicionados. (direita) o resultado do reposicionamento dos traços. ... 130 Figura 71 - Exemplo de resultado da segmentação aplicada à imagem da Figura 67…130 Figura 72 - Exemplo de um campo encontrado em um formulário NIST SD 19...132 Figura 73 - Exemplo de um dígito ‘5’ partido e de um ‘5’ sem este erro, encontrados na base NIST SD 19. ... 133 Figura 74 - Imagens da base inicial de dígitos partidos. ... 136 Figura 75 - Imagens da base de dígitos partidos. ... 137 Figura 76 - (esquerda) Imagem original do campo de valor numérico de cheques e (direita) imagem tratada e degradada. ... 138 Figura 77 - (esquerda) Imagem original do campo de valor numérico de cheques e (direita) imagem tratada e degradada. ... 138 Figura 78 - (esquerda) Imagem original do campo de valor numérico de cheques e (direita) imagem tratada e degradada. ... 138 Figura 79 - Exemplos de casos de sobreposição que são descartados, onde temos (a) sobreposição de ‘0’ e ‘1’, (b) sobreposição de ‘3’ e ‘8’, (c) sobreposição de ‘4’ e ‘9’ e (d) sobreposição de ‘6’ e ‘8’. ... 141 Figura 80 - Exemplos de casos que são descartados por não apresentar sobreposição de fato, onde temos (a) toque de ‘5’ e ‘5’, (b) toque de ‘1’ e ‘3’, (c) ‘1’ e ‘1’ que sequer se tocam e (d) ‘7’ e ‘5’ que sequer se tocam... 142 Figura 81 - Exemplos de dígitos sobrepostos que compõem a base gerada. ... 142
12
Figura 82 - Exemplos de caracteres sobrepostos que compõem a base. ... 143
Figura 83 - Exemplos de dígitos sobrepostos que compõem a base gerada por Roe e Mello a partir de dígitos encontrados na base MNIST. ... 144
Figura 84 - Um exemplo de um dígito ‘0’ partido e sua reconstrução. ... 148
Figura 85 - Um exemplo de um dígito ‘4’ partido e sua reconstrução. ... 148
Figura 86 - Um exemplo de um dígito ‘2’ partido e sua reconstrução. ... 148
Figura 87 - Reconstrução mantém direção e espessura do traço original. ... 149
Figura 88 - (a)(c) exemplos de quebras completas e (b)(d) suas reconstruções. ... 151
Figura 89 - (a)(c) exemplos de quebras internas e (b)(d) suas reconstruções. ... 151
Figura 90 - (a)(c) imagens degradadas originais com quebras em destaque. (b)(d) imagens restauradas pelo método proposto. ... 152
Figura 91 - Exemplo de falha na reconstrução. ... 153
Figura 92 - Exemplo de uma quebra que não produz dois pontos terminais. ... 154
Figura 93 - (esquerda) pontos termais estão em proximidade e são considerados válidos para reparo. (direita) traços não se cruzam e por isso a reconstrução é invalidada. ... 155
Figura 94 - (esquerda) imagem original degradada com quebras salientadas e (direita) imagem restaurada. ... 156
Figura 95 - (esquerda) imagem original degradada com quebras salientadas e (direita) imagem restaurada. ... 157
Figura 96 - (esquerda) imagem original degradada com quebras salientadas e (direita) imagem restaurada. ... 157
Figura 97 - (esquerda) imagem original degradada com quebras salientadas e (direita) imagem restaurada. ... 157
Figura 98 - Imagens de dígitos com quebras que não apresentam dois pontos terminais...158
Figura 99 - (a) imagem original, (b) imagem afinada, (c)(d) resultados da segmentação... 160
Figura 100 - Falha de segmentação em virtude da natureza da imagem afinada. (a) imagem original, (b) imagem afinada, (c)(d) resultados da segmentação. ... 161
Figura 101 - Falha de segmentação em virtude da natureza da imagem afinada. (a) imagem original, (b) imagem afinada, (c)(d) resultados da segmentação. ... 162
Figura 102 - (esquerda) dígitos sobrepostos, (centro)(direita) resultados da segmentação. ... 163
13
Figura 103 - (esquerda) dígitos sobrepostos, (centro)(direita) resultados da segmentação.
... 163
Figura 104 - (esquerda) dígitos sobrepostos, (centro)(direita) resultados da segmentação. ... 164
Figura 105 - (esquerda) dígitos sobrepostos, (centro)(direita) resultados da segmentação. ... 164
Figura 106 - Caso de erro na segmentação. (esquerda) imagem original, (centro)(direita) resultados da segmentação... 165
Figura 107 - Caso de erro na segmentação. (esquerda) imagem original, (centro)(direita) resultados da segmentação... 165
Figura 108 - Campos de caracteres encontrados na base NIST SD 19. ... 172
Figura 109 - Campos de caracteres encontrados na base NIST SD 19. ... 172
Figura 110 - Campos de caracteres encontrados na base NIST SD 19. ... 172
Figura 111 - Exemplo de carta de Joaquim Nabuco onde existe sobreposição vertical de caracteres. ... 173
Figura 112 - Resultado do algoritmo de segmentação de linhas e palavras. A imagem faz parte do acervo de imagens da Fundação Joaquim Nabuco. ... 174
Figura 113 - Resultado simulado da aplicação da segmentação de caracteres. O trecho em vermelho é separado do trecho em verde e passa a pertencer corretamente à linha azul. ... 175
14
Lista de Tabelas
Tabela 1 - Taxas de reconhecimento obtidas para cada conjunto. ... 150
Tabela 2 - Taxas de reconhecimento obtidas para cada conjunto. ... 152
Tabela 3 - Análise das taxas de reconstrução. ... 153
Tabela 4 - Análise da reconstrução feita entre componentes individuais... 154
Tabela 5 - Matriz de confusão para o método de restauração de cadeias de dígitos. .... 155
Tabela 6 - Análise do tipo “tudo ou nada”. ... 160
Tabela 7 – Análise com divisão do conjunto das falhas. ... 160
Tabela 8 - Análise de resultados para cada caractere individual. ... 161
Tabela 9 - Taxas de acerto obtidas para as imagens geradas por cada método. ... 164
15
Lista de Siglas
ASCII. ... American Standards Code for Information Interchange BMP. ... Windows Bitmap CDs. ... Compact Diks CEP. ... Código de endereçamento postal DVDs. ... Digital Versatile Disks HDs. ... Hard Disks FDP. ... Função densidade de probabilidade FP. ... False Positive FN. ... False Negative GT. ... Ground Truth ICR………. Intelligent Character Recognition KBytes. ... Kilo Bytes MLP. ... Multi Layer Perceptron MNIST. ... Mixed National Institute of Standards and Technology Database NIST. ... National Institute of Standards and Technology OCR. ... Optical Character Recognition RBF. ... Radial Basis Function RD. ... Relative Distance SCM. ... Stroke Cavity Maps SCP. ... Significant Contour Positions SVM. ... Support Vector Machines TN. ... True Negative TP. ... True Positive XOR... Exclusive OR
Sumário
1 Introdução ... 18 1.1 Problema e motivação ... 22 1.2 Objetivos ... 24 1.3 Estrutura da Tese ... 26 2 Estado da arte ... 282.1 Restauração de caracteres e dígitos partidos ... 29
2.1.1 Correção através de binarização ... 31
2.1.2 Correção através de segmentação ... 37
2.1.3 Correção aplicada diretamente em caracteres ... 39
2.2 Técnicas de segmentação de caracteres ... 49
2.2.1 Segmentação de dígitos que se tocam ... 50
2.2.2 Segmentação de dígitos sobrepostos ... 67
3 Restauração de dígitos ... 77
3.1 Reconhecimento de trajetórias curvas ou retas ... 79
3.2 Restauração de dígitos danificados ou partidos baseada na emulação da força de inércia 82 3.2.1 Restauração de dígitos danificados ou quebrados baseada na emulação de forças de inércia e centrípeta ... 99
3.3 Restauração de cadeias de dígitos danificados por emulação de forças de inércia e centrípeta 109 4 Segmentação de dígitos e caracteres ... 112
4.1 Segmentação de caracteres sobrepostos verticalmente ... 113
4.2 Segmentação de dígitos sobrepostos através da emulação de uma hipotética bola deformável e forças físicas ... 118
5 Experimentos ... 131
5.1 Bases de imagens ... 131
5.1.1 Dígitos isolados ... 131
5.1.2 Dígitos danificados ... 135
5.1.3 Cadeias de dígitos danificados ... 137
5.1.4 Dígitos sobrepostos horizontalmente ... 138
5.1.5 Caracteres sobrepostos verticalmente ... 142
5.1.6 Dígitos sobrepostos – Base MNIST ... 143
5.2 Experimentos em restauração ... 144
5.2.1 Restauração de dígitos danificados baseado na emulação da força de inércia 148 5.2.2 Restauração de dígitos danificados baseado na emulação das forças centrípeta e de inércia 150 5.2.3 Restauração de cadeias dígitos danificados baseado na emulação das forças centrípeta e de inércia ... 152
5.3 Experimentos em segmentação ... 159
5.3.1 Segmentação de caracteres sobrepostos verticalmente ... 159
5.3.2 Segmentação de dígitos sobrepostos através das emulações de uma hipotética bola deformável e de forças físicas ... 162
6 Conclusões ... 167
6.1 Contribuições ... 168
6.2 Trabalhos Futuros ... 170
6.2.1 Segmentação ... 171
6.2.1.1 Aplicações para caracteres sobrepostos ... 171
17
6.2.1.2 Detecções de sobreposições ou toques ... 175
6.2.2 Afinamento ... 175
6.2.3 Restauração de caracteres ... 176
18
1
Introdução
Estamos na era da Internet e da transmissão digital de informação e mídia. No entanto, o papel permanece como um dos mais importantes meios para o armazenamento de informação e distribuição de conhecimento. Ainda que tenhamos softwares computacionais de edição e criação de texto, ainda existe preferência pela escrita em papel. Com isso, vastas quantidades de documentos e folhas datilografadas ou manuscritas são criadas no dia a dia. Com a velocidade em que consumimos informações, aliados com o fato de que sistemas que processam dados hoje em serem digitais, as informações contidas no papel têm, de uma forma ou outra, de serem repassadas a um meio eletrônico para a sua divulgação e processamento.
A solução mais comum, para documentos existentes, é a digitalização. Esta pode ser feita gerando um arquivo digital e eliminando a necessidade do papel. Esses meios digitais compreendem vários tipos de mídia, como CDs (Compact Disks), DVDs (Digital Versatile Disks), tipos de armazenamento como HDs (Hard Drives) e Flash Drives além de soluções de armazenamento online. Esta solução, apesar de resolver o problema do meio físico em que as informações estão contidas, não soluciona o problema de acesso a estas informações. Quando o acesso é o objetivo, os mesmos problemas existentes para o papel persistem. Ao se buscar informações contidas em documentos em papel, não somos capazes de fazer uma busca através de palavras chave ou um termo importante, pois os documentos teriam de ser lidos em sua totalidade para identificar os pontos de interesse. Para o caso de documentos digitalizados, esse problema é herdado do papel, visto que ao digitalizarmos uma folha, estamos gerando uma imagem do documento, sem nenhum tipo de identificação de conteúdo. Portanto, o acesso às informações é dificultado. Existem limitadas maneiras de fazer uma busca em um documento, que seriam através do título do seu arquivo, da estrutura organizacional em que o documento está contido, anotações feitas por humanos e associadas ao documento (metadados) ou pela busca de palavras chave em imagens.
Além da necessidade de extrair a informação contida em imagens de documentos por razões de espaço ou acessibilidade, existem várias aplicações que necessitam essa transcrição da informação para ter acesso a dados vitais. Exemplos de aplicações como essas são o processamento de cheques bancários e o processamento de endereços
19
manuscritos em cartas, envelopes e pacotes no serviço postal. No caso do processamento de cheques bancários, há uma necessidade de interpretar o valor do cheque. Já no caso do serviço postal, uma necessidade seria a interpretação do campo do Código de Endereçamento Postal (CEP). A importância de um reconhecimento bem feito é visto facilmente, já que no caso dos cheques, se um erro for cometido, o valor pode ser interpretado erroneamente e um montante diferente do que o devido pode ser retirado de uma conta.
Outro problema relacionado à digitalização de imagens diz respeito ao espaço de armazenamento. Por exemplo, uma página em papel A4 digitalizada, utilizando uma resolução para digitalização de 200 dpi e 256 tons de cinza, gera uma imagem de cerca de 1.700 x 2.400 pixels que ocupa 4.113 Kbytes, se armazenada no formato padrão do sistema Windows, o BMP (Windows Bitmap) (SAYOOD, 2012). Isso torna o armazenamento da imagem muito custoso do ponto de vista de memória computacional. Ainda que nos dias atuais o armazenamento digital esteja se barateando, fazendo com que o tamanho de uma imagem não seja mais tão impactante, devemos levar em consideração que existem aplicações que processam uma quantidade elevada de imagens, onde uma redução de quantidade de armazenamento passaria a ser mais relevante. Se considerarmos um banco, por exemplo, que digitaliza os seus cheques diariamente, o volume de imagens que é envolvido faria com que a questão do espaço de armazenamento passasse a ter mais importância.
Uma solução para a questão do espaço e também da questão da acessibilidade da informação é a extração do texto da imagem e a subsequente geração de um documento de texto simples. O documento de texto ocuparia menos de 100 Kbytes para a mesma imagem citada acima. Além de ocupar menos espaço, a informação contida em um documento de texto fica mais acessível, tanto do ponto de vista da busca de informações como da difusão. Difunde-se mais facilmente um acervo de documentos de texto do que um acervo de imagens, que ocuparia um espaço em disco muito maior. Assim, diversas técnicas são utilizadas para formar o processo de digitalização da imagem até a geração do documento de texto, transpondo o que foi escrito à mão ou tipografado para caracteres ASCII (American Standard Code for Information Interchange – padrão computacional de caracteres). Tal processo pode ser visto de forma resumida na Figura 1. Após ser digitalizada, a imagem passa por vários processos, como segmentação, filtragem e análise de rotação. Em seguida, algoritmos de reconhecimento óptico de caracteres (OCR –
20
Optical Character Recognition) atuam nessa imagem para gerar o arquivo de saída em formato de texto. Especificamente, para documentos manuscritos, aplica-se um processo de ICR (Intelligent Character Recognition), que pode ser visto como um OCR mais específico, ou avançado, e que é voltado ao reconhecimento de escrita manuscrita.
Figura 1 - Processo de digitalização até a geração de um documento de texto.
Fonte: Elaborada pelo autor.
Em relação a prover acesso às informações contidas em um documento, uma das dificuldades relacionadas é a fase de transcrição da informação contida na imagem do documento para um arquivo de texto editável. Para efetuar essa tarefa, aplica-se um processo de reconhecimento óptico de caracteres (MELLO et al., 2012). A Figura 2 ilustra um sistema de processamento voltado para a tarefa de OCR.
Figura 2 - Etapas de um sistema de processamento de documentos para OCR.
Fonte: Elaborada pelo autor.
Vemos que, na imagem em questão, a partir do documento original em papel, existem os seguintes módulos: limiarização, pré-processamento, segmentação de documento, segmentação de texto, extração de características e classificação. Destacamos que essa ordem não é uma regra: pode-se executar uma fase de pré-processamento no documento original, antes mesmo da limiarização. Levando em consideração a ordem estabelecida na Figura 2, temos a limiarização que se encarrega de gerar um documento binarizado, em preto e branco, fazendo uma clara separação entre o que é tinta e o que é fundo. O módulo de pré-processamento executa operações como eliminação de ruídos e
21
correção de rotações no documento e nas linhas contidas no documento. O módulo de segmentação de documento pode ser aplicado para classificar no documento os componentes de texto e os componentes de figura, por exemplo, isolando assim os tipos de informação ali presentes. A segmentação de texto executa todas as segmentações pertinentes ao texto: segmentação de linhas, de palavras e de caracteres e dígitos. Já o módulo de extração de características é responsável capturar as informações que são mais pertinentes para a subsequente classificação. O último módulo, a classificação, é responsável por reconhecer os caracteres e palavras, além de formar o documento eletrônico de texto final.
Dentre os módulos citados, todos têm seus problemas e complexidades a serem superados. Ressaltamos as etapas finais, de extração de características e classificação, que são responsáveis por analisar o texto e gerar a saída em forma de texto eletrônico. Além de existirem os problemas inerentes a essas tarefas, ressalvamos que o passo que antecede é de fundamental importância para uma classificação acertada. A segmentação de texto, responsável por identificar os componentes como palavras e caracteres, fornece as entradas para os módulos subsequentes. O reconhecimento final pode então ser afetado caso as linhas, as palavras e os caracteres no documento não estejam bem definidos e isolados. Assim, temos um dos problemas que permeia o reconhecimento automático de texto: as segmentações das linhas, palavras e caracteres em um documento. Dentre os fatores que afetam estas segmentações, temos, por exemplo, o caso de caracteres e dígitos que se encontram em proximidade uns aos outros. A proximidade pode levar esses componentes a se tocarem ou se sobreporem, na orientação vertical ou horizontal. Isso dificulta a separação das linhas, já que a sobreposição pode ocorrer entre caracteres de linhas diferentes, a separação de palavras e a separação dos próprios caracteres. Existem outros fatores que também afetam tanto o reconhecimento como a separação citada anteriormente, como a degradação encontrada nos documentos, que pode causar degradações nos caracteres, ocasionando perda de sua estrutura. Assim, o tratamento desses problemas deve ser abordado e efetuado, provendo um sistema de processamento de documentos completo voltado para OCR com soluções para tratar e melhorar o documento, possibilitando um reconhecimento mais acertado da informação ali contida.
22
1.1 Problema e motivação
Em relação aos problemas que motivam este trabalho, são identificados mais de um. Um problema que é identificado e focalizado é a degradação de dígitos e subsequentemente, a degradação de caracteres. A degradação, como é mostrado no decorrer desta Tese, pode ser oriunda de diferentes fatores, como estilo de escrita, degradação do documento e binarização. Degradações podem vir a formar quebras nos traços de dígitos e caracteres, deixando-os assim, partidos. Tais componentes partidos podem apresentar desafios para as fases de segmentação e de reconhecimento.
Em primeiro lugar, vemos que dígitos partidos podem ser complicadores para métodos de segmentação. Nomura et al.(2005) propõem um método para segmentação de placas veiculares. As imagens contêm caracteres e dígitos, os quais podem apresentar quebras. Para efetuar a segmentação, tal método lança mão de uma restauração baseada em um processo de merge dos traços. Chuang et al. (2005) argumentam que a segmentação drop-fall (CONGEDO et al., 1995) é levada a erro quando o dígito manuscrito possui regiões abertas, como no caso de um ‘4’ ou de um ‘0’ que não foi completamente ligado pelo autor. Quebras nos dígitos levam a essas regiões abertas, o que acarretaria a uma segmentação sem sucesso pelo método drop-fall. Ha et al. (1998) apresentam um método de reconhecimento de cadeias de dígitos através da combinação de duas segmentações. Neste trabalho, o problema de dígitos partidos também é abordado para sanar eventuais problemas com a segmentação. Os autores postulam que em sua maior parte, as classes de dígitos que apresentam quebras são a ‘4’ e a ‘5’. A classe ‘4’ pode apresentar dígitos com a parte superior aberta, enquanto que a ‘5’ pode não ter seu traço superior horizontal ligado com o restante do corpo do dígito. Algumas regras heurísticas baseadas nestes dois casos são apresentadas para determinar quais traços são de fato, traços partidos. Com a determinação que um traço é de fato um traço partido, o método determina como agrupá-lo com outro traço presente na cadeia de dígitos para então, ocorrer a segmentação. Este método, no entanto, não contempla as quebras oriundas de degradações nos dígitos. Estas quebras podem apresentar características variadas e que não se enquadram nas regras estabelecidas, fazendo com que não sejam detectadas como quebras de fato.
Além de afetar a segmentação, caracteres e dígitos partidos também apresentam desafios quando o tema é reconhecimento automático. Sumetphong e Tangwongsan
23
(2012) apresentam um método de reconhecimento de caracteres partidos para escrita tailandesa que executa uma reconstrução através de agrupamento dos caracteres. Os autores relatam que reconhecedores atuais atingem facilmente a marca de 99% de taxa de acerto em textos. No entanto, essa taxa tende a cair de acordo com a degradação presente nos caracteres, isto é, quanto mais quebrados os caracteres, mais complexa é a tarefa do reconhecedor. Pode-se dizer que a dificuldade de reconhecer dígitos é proporcional à qualidade da escrita encontrada em um documento. Com a restauração de dígitos, espera-se que a qualidade da entrada fornecida a um reconhecedor espera-seja maior. Assim, a restauração é abordada neste trabalho de tese, com métodos desenvolvidos para atacar o problema.
Outro problema é em relação a caracteres e dígitos escritos em proximidade, como já mencionado. Este tipo de escrita pode acarretar em toques e sobreposições dos dígitos ou caracteres. Nestes casos, a segmentação e o reconhecimento ficam comprometidos. A segmentação necessitará utilizar métodos específicos para o fim de separar os componentes que se encontram ligados. Nomura et al. (2005) executam uma segmentação específica para dígitos e caracteres que se tocam, para separar os componentes para a subsequente segmentação das placas veiculares. Chuang et al. (2005) fazem a segmentação para toques através de um drop-fall modificado, como já mencionado. O método é aplicado em cadeias de dígitos e a segmentação para toques é aplicada uma vez que este problema é detectado através de um algoritmo proposto pelos autores. A segmentação dos toques gera então uma cadeia de dígitos que se encontram isolados uns dos outros. Assim, uma segmentação final é aplicada para obter separação dos dígitos que estão presentes na cadeia que está sendo tratada. Ainda, existem métodos que empregam técnicas de inteligência artificial para executar a tarefa de segmentação de dígitos que se tocam. Lacerda e Mello (2013) utilizam redes SOM (HAYKIN, 2001; BISHOP, 1995) para determinar o ponto ideal para efetuar a linha de corte entre os dígitos.
Considerando como exemplo o campo do valor de um cheque ou a informação do CEP em uma correspondência, o problema de dígitos tocando e se sobrepondo pode acarretar em erros com custos elevados. Pessoas que preenchem estes campos muitas vezes o fazem de forma rápida, gerando assim uma cadeia de dígitos onde podem existir vários toques ou sobreposições. Exemplos, especificamente de sobreposições e toques em cheques, são mostrados por Bezerra et al. (2008). Estes casos podem prejudicar severamente o desempenho do processo de HCR, fazendo necessária a atuação de
24
algoritmos específicos para a correta segmentação destes caracteres, como já mencionado. Ainda, podemos citar a ocorrência de invasão de traços em campos de escrita adjacentes. Estas invasões podem ocorrer em formulários, onde os campos destinados a cada informação a ser escrita são pequenos e em proximidade. Assim, um traço pertencente a um campo pode invadir o campo vizinho superior, por exemplo, criando toques e sobreposições dos traços. Estas invasões, ocorrem também em cheques bancários, mencionados anteriormente. O processo de separação muitas vezes não é trivial, dependendo de como os dígitos estão se tocando ou sobrepondo, seu grau de inclinação e se estão localizados no mesmo eixo vertical. Dentre os dois problemas, toque e sobreposição, a sobreposição apresenta um nível de complexidade maior para ser resolvido. Toques, como é mostrado no decorrer deste trabalho, podem ser segmentados através de uma linha de corte entre os componentes em questão. Essa linha de corte não se aplica à sobreposição, pois nesse caso, traços de um dos componentes se encontram dentro do componente vizinho. Uma linha de corte não seria capaz de separar traços com estas características. O desafio maior reside, portanto, na sobreposição, um dos temas foco deste trabalho que propõe métodos para a resolução do problema.
1.2 Objetivos
De acordo com os problemas mencionados como centrais ao trabalho, buscamos propor soluções para o processamento de imagens de dígitos manuscritos. Mais especificamente, o foco recai sobre a restauração de dígitos partidos e a segmentação de dígitos sobrepostos. Ainda, os métodos desenvolvidos devem ser aplicáveis a caracteres manuscritos. Para desenvolver métodos voltados para estes fins, antes devemos estabelecer o seu embasamento. Tomamos como filosofia central a emulação de forças físicas para desenvolver os métodos em questão. A ideia é que através da emulação dessas forças, pode-se desenvolver métodos com comportamentos que se adequem às operações que necessitam ser efetuadas sobre os dígitos e seus traços. Mais especificamente, usamos as forças de inércia e centrípeta. As forças físicas foram incialmente utilizadas e mostrado que é possível usá-las por Roe e Mello (2009). Dessa forma, partimos desse uso inicial das forças físicas e estendemos a pesquisa na área, tomando como inspiração o trabalho citado anteriormente.
25
A força de inércia, por sua natureza, se adequaria à um movimento de continuidade. Sir Isaac Newton descreveu a inércia como sendo: o poder da matéria de resistir mudanças em seu movimento. Ou seja, todo o corpo permanece no seu estado atual, seja de repouso ou de movimento uniforme retilíneo, a não ser que seja obrigado a mudar esse estado por conta da ação de forças impressas neste corpo (NEWTON et al., 1934).
Já a segunda opção de força, a força centrípeta, se adequa a movimentos circulares. Em relação ao problema em mãos, a adaptação é vista facilmente, já que alguns dígitos possuem traços com trajetórias circulares. Assim, a força centrípeta é aquela associada a um movimento circular, onde um corpo sofre uma aceleração que é responsável pela direção de seu movimento. Com uma aceleração e massa de um corpo, uma força pode ser derivada: a força centrípeta, que aponta para o centro de uma trajetória circular. De acordo com Newton, a descrição da força centrípeta é dada como: uma força pela qual corpos são atraídos ou impelidos, ou tentam de qualquer forma, para um ponto como um centro (NEWTON et al., 1934).
Com o exposto acima sobre as forças usadas, ressalta-se que não temos a intenção de emular a natureza da escrita humana através do uso de forças físicas. A emulação da escrita humana foi estudada e uma teoria a seu respeito apresentada por Plamondon (PLAMONDON, 1993; PLAMONDON, 1995), onde foram propostos criação e análise de escrita humana através de uma teoria cinemática de movimentos humanos rápidos. A modelagem das características da escrita humana é apresentada através de um modelo vetorial delta-log-normal. Uma das desvantagens desse tipo de abordagem é o alto grau de complexidade envolvido, característica reconhecida pelos autores. Em relação às aplicações desse tipo de abordagem de modelar a escrita humana, podemos citar Li et al. (1998) que utilizam a formulação para propor métodos de segmentação/reconstrução para a compressão com perdas de dados. Podemos citar também e Plamondon e Privitera (1999) que propõem um método de segmentação de palavras aliado com informação motor-temporal da escrita. A segmentação tem como objetivo facilitar uma fase de reconhecimento automático e é efetuada não apenas separando a palavra em seus caracteres, mas quebrando os caracteres em seus traços constituintes. Assim, divergimos desta vertente no sentido que postulamos que forças físicas podem ser emuladas e aplicadas para o fim de processamento de imagens de caracteres e dígitos, mas não com o intuito de emular o comportamento da escrita humana.
26
O objetivo geral então desta Tese de Doutorado é a definição e implementação de métodos voltados para as aplicações de reconstrução de dígitos manuscritos degradados e a segmentação de dígitos manuscritos sobrepostos, através de novas abordagens propostas. Os algoritmos desenvolvidos para o fim de restauração deverão receber como entrada imagens de dígitos manuscritos individuais ou cadeias de dígitos manuscritos e como saída, retornando os mesmos reconstruídos. Os dígitos reconstruídos poderão ser utilizados para efetuar uma segmentação mais eficaz, ou poderão ser submetidos diretamente a um reconhecedor. Em relação à segmentação de dígitos manuscritos sobrepostos, os algoritmos desenvolvidos deverão ser capazes de receber como entrada imagens com pares de caracteres sobrepostos e serem capazes de segmentar cada um dos símbolos integrantes da imagem de entrada, ou seja, através de uma imagem de entrada, retornar os caracteres devidamente segmentados.
Temos então como objetivos específicos:
Criar bases de imagens para serem utilizadas para a validação dos métodos propostos, além de disponibilizá-las publicamente;
Modelar conceitos de física clássica (cinemática) para desenvolver técnicas de processamento de imagens de caracteres;
Propor novos métodos baseados na emulação de conceitos de forças físicas clássicas voltadas para os fins de restauração de dígitos partidos e segmentação de dígitos sobrepostos;
Contribuir para a expansão do estado-da-arte nas áreas de interesse do trabalho, especificamente a reconstrução de caracteres e dígitos degradados e a segmentação de caracteres e dígitos sobrepostos.
1.3 Estrutura da Tese
O restante desta Tese pode ser dividido de acordo com seus capítulos e seções. No Capítulo 2, o estado da arte relativo às técnicas de importância para o trabalho é apresentado. Primeiramente, são analisados métodos de restauração de dígitos e caracteres. Estes métodos são divididos de acordo com sua abordagem para o problema de dígitos e caracteres danificados. Em seguida, são apresentados métodos voltados para
27
segmentação de dígitos. Inicialmente, se aborda dígitos que tocam para em seguida, abordar a segmentação de dígitos sobrepostos.
Os Capítulos 3 e 4 apresentam as contribuições deste trabalho. O Capítulo 3 aborda os métodos criados para restauração de dígitos danificados. É mostrada uma técnica auxiliar, criada para a detecção de tipos de trajetórias e em seguida, o desenvolvimento e evolução de um método para restauração. Já no Capítulo 4, são mostradas as técnicas criadas com o intuito de segmentar sobreposições de dígitos e caracteres. É apresentada uma modificação em um método existente e a criação de uma nova técnica.
No Capítulo 5, temos a experimentação executada no trabalho. Primeiro, as bases que foram criadas e usadas são apresentadas para em seguida, mostrar os testes executados em cada método e seus respectivos resultados. Além dos resultados, os desempenhos das técnicas são discutidos.
Por fim, o Capítulo 6 conclui a Tese, resumindo o trabalho e trazendo as considerações finais. Os trabalhos futuros que poderão ser desenvolvidos também são apresentados neste capítulo.
28
2
Estado da arte
Em se tratando de segmentação de dígitos e caracteres, assim como métodos para reconstrução de dígitos, algumas técnicas são importantes e servem como base para vários métodos. Podemos citar a binarização de imagens (GONZALEZ e WOODS, 2010) como uma técnica relevante. A binarização em si pode ser vista como uma técnica de segmentação, pois visa separar em uma imagem, objetos (foreground) do fundo (background). Tratando de imagens de documentos, a binarização irá separar o texto do papel, produzindo uma imagem apenas com objetos de texto, ou tinta. Esta técnica, no entanto, não é discutida a fundo, já que os métodos não lançam mão diretamente dela, mas sim recebem sua saída como entrada. Desta forma, a binarização de imagens foge do escopo deste trabalho.
Em relação a outras técnicas que representam um grau de importância elevado para este trabalho, é possível citar o afinamento, processo este que pode ser aplicado a uma variada gama de objetos encontrados em imagens, não apenas a dígitos ou caracteres. Justamente por ser uma técnica largamente utilizada, existem diversos métodos variantes que podem ser aplicados a cada tarefa específica, isto é, existem técnicas de afinamento desenvolvidas especificamente para o caso de caracteres. O afinamento é utilizado tanto por técnicas de segmentação de caracteres quanto por técnicas de restauração, o que evidencia sua importância neste trabalho. Ainda que sejam usadas pelas técnicas desenvolvidas neste trabalho, o afinamento, assim como a binarização, não é algo que é abordado diretamente de forma a propor novos métodos. Assim, o detalhamento de técnicas de afinamento também foge do escopo.
Podemos citar duas áreas que têm ligação direta com o trabalho em questão: a reconstrução ou restauração de caracteres danificados (Seção 2.1) e a segmentação de caracteres (Seção 2.2). Cada uma das técnicas pode ser subdividida em técnicas mais específicas. Podemos dividir a restauração de caracteres de acordo como a restauração é feita, se é através de binarização (Seção 2.1.1) ou de segmentação (Seção 2.1.2), por exemplo. A segmentação de caracteres pode ser dividida em duas subáreas de interesse que seriam a segmentação de caracteres que se tocam (Seção 2.2.1) e a segmentação de caracteres que se sobrepõem (Seção 2.2.2). Estas subáreas são discutidas em mais
29
detalhes nas seções seguintes, apresentando assim, uma visão mais detalhada do que cada subárea compreende e quais as técnicas importantes já pesquisadas em cada.
2.1 Restauração de caracteres e dígitos partidos
Caracteres ou dígitos partidos, exemplificado na Figura 3, podem facilmente degradar o desempenho de um reconhecedor de caracteres manuscritos. Um dígito partido é um componente que traz exceções à regra de sua classe, pois não respeita aspectos como contorno e área do dígito, assim como conectividade. Muitas vezes, uma parte de um dígito partido pode ser classificada como uma classe à qual ela não pertence.
Figura 3 - Exemplo de um dígito danificado, ou partido. Neste caso, temos um ‘5’ que não está completamente conectado.
Fonte: Elaborada pelo autor.
Este problema pode ocorrer de diversas formas. É possível encontrar dígitos partidos, por exemplo, em documentos históricos com um alto grau de degradação. A degradação em documentos históricos ocorre em sua maior parte por conta da ação do tempo. Como o papel é um meio bastante frágil, o passar do tempo tem grande impacto, gerando imperfeições como perda da cor da tinta e escurecimento do papel. Em virtude desta degradação, a informação pode ser perdida, os traços de tinta podem esmaecer e até desaparecer, formando dígitos ou caracteres danificados, partindo seus traçados.
Outra maneira de gerar dígitos partidos ou danificados é através do pré-processamento das imagens que contêm os dígitos. Mais especificamente, durante a fase de binarização, pode haver perda de pixels de tinta, ocasionando o problema em questão. Como pode ser visto na Figura 4, os dígitos na imagem não se encontram danificados inicialmente, apesar de ter algumas áreas do seu traçado um pouco mais esmaecidas. Ao aplicar a binarização, constata-se que o algoritmo utilizado não foi capaz de isolar adequadamente todos os pixels pertencentes à tinta, fazendo assim com que algumas partes da tinta fossem descartadas, ocasionando a quebra dos dígitos.
30
Figura 4 - Exemplo de dígitos que são danificados em decorrência do processo de binarização.
Fonte: Elaborada pelo autor.
Outro fator no pré-processamento que pode também influenciar na degradação dos dígitos é a transformação de uma imagem colorida para uma imagem em tons de cinza. Essa conversão pode gerar degradação já que envolve um processo que pode converter uma imagem com 16 milhões de cores para uma com apenas 256 tons, por exemplo. Assim, a diminuição de resolução de cor pode causar a aproximação de tons diferentes, perdendo a informação antes presente e gerando degradação dos tons relativos à tinta.
Ainda uma quarta maneira de gerar dígitos partidos pode ser ressaltada, esta sendo a mais simples das três, que ocorre simplesmente quando o autor escreve naturalmente sem conectar o dígito completamente. Um exemplo facilmente encontrado é do dígito ‘5’, como pode ser visto na Figura 5, o autor não ligou o traço superior do dígito com o restante do seu corpo, gerando assim dois componentes separados.
Figura 5 - Exemplo de um dígito não completamente conectado pelo autor.
Fonte: Elaborada pelo autor.
Existem diversas maneiras de abordar o problema de dígitos danificados, estas variam nos métodos utilizados e em que fase do processamento das imagens elas são acionadas. Um processo mais simples para conectar dígitos partidos pode ser encontrado em (LIU et al., 2003) e resumido como:
1. Encontrar as regiões disjuntas que representam a quebra nos dígitos, atribuir uma legenda à maior região e detectar os pontos proeminentes de curvas. Estes pontos proeminentes correspondem aos pontos locais com curvaturas máximas.
31
2. Calcular as distâncias entre os pontos proeminentes na maior região e das outras regiões.
3. Encontrar o par de pontos proeminentes mais próximos (p0, p1), onde p0
está localizado na região maior e p1 está localizado na região menor.
4. Mover a região menor para a maior em uma direção de p1 a p0 de uma
forma que as regiões possam ser fundidas em uma só.
5. Voltar ao passo 3, caso ainda existam regiões disjuntas.
No entanto, como já comentado, existe uma grande gama de técnicas que visa resolver o problema. Algumas destas técnicas são discutidas nas seções seguintes de acordo com sua abordagem ao problema. As técnicas foram divididas em três grupos. O primeiro engloba os métodos que visam corrigir os dígitos ou caracteres danificados ainda na fase de binarização (Seção 2.1.1). O segundo grupo contém os métodos que abordam o problema na fase da segmentação (Seção 2.1.2). Já o último e terceiro grupo é aquele onde se encontram as técnicas que trabalham diretamente nos dígitos (Seção 2.1.3), sem ser acoplados a uma fase do processamento das imagens dos documentos.
2.1.1 Correção através de binarização
O primeiro tipo de abordagem, a correção através de binarização, atua como o nome indica, na fase de binarização, ou limiarização, de um documento. Assim, esta seção trata especificamente de métodos que de uma forma ou outra, buscam modificar o processo de binarização para gerar imagens binárias com menores perdas nos caracteres. Abordando o problema desta maneira, as técnicas necessitam operar no documento original em tons de cinza ou colorido.
32 2.1.1.1 Xi et al.
O primeiro método a ser discutido é aquele proposto por Xi et al. (2007). Esta técnica propõe o uso conjunto de dois algoritmos de limiarização locais: o algoritmo de Niblack (1986) e uma variação do algoritmo de Palumbo (1986), que os autores chamam de Palumbo melhorado. Os autores argumentam que sua técnica tem como finalidade ser aplicada em documentos históricos degradados e através do uso dos algoritmos de limiarização citados, gerar imagens binárias mais limpas e com menos quebras nos caracteres. O funcionamento do método pode ser visto através do fluxograma mostrado na Figura 6.
Figura 6 - Fluxograma relativo ao método de Xi et al.
Fonte: Imagem adaptada de Xi et al. (2007).
O primeiro passo, como pode ser visto no fluxograma, é aplicar o método de binarização melhorado de Palumbo. Uma vez que a imagem é binarizada, pontos de interesse são determinados. Os pontos de interesse são encontrados através de uma dilatação da imagem binarizada e uma limpeza da imagem dilatada. A limpeza elimina todos os componentes conectados que têm uma altura menor que h, estabelecida empiricamente pelos autores. É argumentado que as quebras nos caracteres provavelmente são reparadas através do processo de dilatação efetuado para encontrar as áreas de interesse. Uma vez que as áreas de interesse forem determinadas, o algoritmo de Niblack é aplicado na imagem original em tons de cinza, mas apenas nas áreas determinadas como de interesse. As áreas que não foram determinadas como sendo de interesse são automaticamente convertidas para branco. Para finalizar, o método executa
33
como pós-processamento uma operação de preenchimento, já que os caracteres binarizados podem apresentar apenas seus contornos. De acordo com os autores, isso pode ocorrer caso a largura do traço do dígito seja maior que o template utilizado no método de Niblack. A Figura 7 mostra um exemplo do resultado desse método, onde podemos observar também os resultados obtidos por métodos clássicos de binarização. Vemos que para os métodos clássicos, os resultados geram degradações nos caracteres ou uma elevada quantidade de ruído.
Figura 7 - (a) Imagem original em tons de cinza. (b)(c)(d)(e) resultados de binarização utilizando métodos clássicos e (f) resultado do método de Xi et al.
Fonte: Imagem adaptada de Xi et al. (2007).
2.1.1.2 Antonacopoulos e Castilla
Podemos também citar o método de Antonacopoulos e Castilla (2006). Esse método, assim como o proposto por Xi et al., faz a combinação de duas técnicas isoladas de binarização para gerar um binarizador final. Esta técnica foi proposta para ser utilizada em documentos tipografados.
O primeiro passo do método é identificar a posição de cada caractere. Para identificar a posição de cada caractere isolado, o método primeiro calcula a análise de projeção (LIKFORMAN-SULEM et al., 2006) horizontal para encontrar as posições de cada linha contida no documento. Uma vez que o posicionamento das linhas é conhecido, uma nova projeção é calculada, desta vez na vertical, para determinar as posições de cada caractere individual nas linhas. Esse processo gera uma bounding box (caixa delimitadora) que indica a posição de cada caractere. Uma vez que a localização de cada caractere é conhecida, um refinamento é feito para localizar os caracteres mais
34
precisamente dentro de cada bounding box. Para refinar a localização, o conteúdo de cada área contendo um caractere, ou bounding box, é submetido a um filtro gaussiano de suavização (GONZALEZ e WOODS, 2010; MELLO et al., 2012) e, em seguida, executa operações de especificação de histograma (GONZALEZ e WOODS, 2010) para realçar a imagem. Com estas operações, o método suaviza o fundo, eliminando algum ruído existente, e depois intensifica a diferença de tons entre o caractere e o fundo. Após esse tratamento, a bounding box será ajustada mais finamente no caractere através do uso de novas análises de projeção. Com a informação mais refinada sobre o posicionamento dos caracteres, a técnica em questão irá aplicar seus algoritmos de limiarização.
O primeiro algoritmo de limiarização é chamado de ternarização cautelosa (cautious ternarisation). Este algoritmo irá classificar os pixels encontrados dentro da bounding box em pixels que podem ser classificados como tinta com alta taxa de confiança, pixels que podem ser classificados como fundo com alta taxa de confiança e pixels que não podem ser classificados. Os pixels que não podem ser classificados são os pixels para os quais o método não apresenta um grau de confiança suficiente para classificação. Para classificar os pixels como tinta, ou pretos, os autores estabeleceram que uma porcentagem de preto pode ser utilizada. Isto é, os pixels pertencentes aos tons mais escuros do histograma são considerados como tinta até que se atinja 40% do total do histograma. Para a classificação de pixels como fundo, um limiar é utilizado. Para determinar o limiar, calcula-se o histograma da primeira bounding box, excluindo-se a segunda bounding box que contém o caractere. Através do histograma, encontra-se o tom com maior quantidade de ocorrências e o tom mais escuro. A média destes tons é utilizada como o limiar. Pixels com tons de cinza mais claros que o limiar são considerados como fundo. O restante dos pixels, que não foram classificados como tinta ou fundo retêm seus valores de cinza e são considerados como não classificados.
O segundo algoritmo de limiarização fará o que os autores chamam de limiarização agressiva. Para este passo, o método de Sauvola (SAUVOLA e PIETIKÄINEN, 2000), que é uma especialização do Niblack, é usado. Um filtro de suavização gaussiano é aplicado novamente, embasado na argumentação dos autores que o método de Niblack é sensível a ruídos. Os autores argumentam que o uso de um método de binarização agressivo, como neste passo, tende a conectar áreas quebradas de caracteres, resolvendo o problema da degradação. No entanto, também existe a tendência a ligar traços que não correspondem a degradações, como os pontos finais do ‘s’ ou ‘a’, que são ligados aos seus corpos. Para manter a vantagem da reconstrução das áreas degradadas, mas não ligar
35
traços indesejados, a combinação da limiarização agressiva com a ternarização cautelosa é feita.
Para ilustrar o processo de combinação das técnicas, a ternarização cautelosa será referida como TC enquanto que a binarização agressiva será referida como BA. No processo de combinação os valores dos pixels gerados por cada método são comparados. Novamente, apenas as áreas delimitadoras dos caracteres são utilizadas, o restante do documento é convertido diretamente para branco. Para cada caixa delimitadora, a TC e a BA geram um resultado cada, portanto, entende-se que para cada pixel, existe um valor gerado pela TC e um valor gerado pela BA. As seguintes regras são utilizadas para combinar as duas técnicas e gerar uma imagem a partir delas:
Se o valor do pixel for igual para a TC e a BA, o pixel assume este valor. Isto é, se a TC e a BA informarem que um pixel é branco, este é convertido para branco. O mesmo vale para o preto.
Se a TC informar que o pixel é branco e a BA informar que o pixel é preto, o resultado da BA é considerado como ruído e o pixel recebe o valor branco.
Se o pixel da TC é cinza (não classificado) e o pixel da BA é preto, então o resultado é uma média ponderada dos valores. Para evitar formar ligações entre traços não correspondentes, maior peso é atribuído ao valor da TC. Para este caso, o resultado é calculado de acordo com a seguinte equação:
𝑝𝑖𝑥𝑒𝑙 =
2∗𝑇𝐶+1003 (1) Se o pixel da BA for branco e o pixel da TC for cinza ou preto, o pixel
resultante é branco. Esta regra foi formada pelo fato da BA tende a errar mais pela geração de pixels pretos, portanto, seus pixels brancos são mais confiáveis.
O último passo da técnica prepara os caracteres para serem submetidos a um reconhecedor. A preparação envolve apenas incluir mais espaçamento entre os caracteres e entre as linhas no documento.
36
Figura 8 - Fluxograma relativo ao método de Antonacopoulos e Castilla.
Fonte: Imagem adaptada de Antonacopoulos e Castilla (2006).
Deve-se destacar que devido ao seu funcionamento, especialmente ao primeiro passo, o método não seria indicado para documentos manuscritos. Este primeiro passo envolve a localização precisa dos caracteres através do uso de análises de projeções vertical e horizontal. Em documentos manuscritos, frequentemente encontra-se texto com linhas muito inclinadas, palavras e caracteres que invadem linhas e palavras vizinhas. Estas características de escrita inviabilizariam a localização dos caracteres, já que o método utilizado necessita que as linhas, palavras e caracteres tenham uma certa organização e homogeneidade horizontal e vertical. Documentos tipografados apresentam essa organização e por isso, viabilizam este tipo de localização dos caracteres, como pode ser visto na Figura 9. Já a Figura 10 mostra um exemplo do funcionamento do método de Antonacopoulos e Castilla, passo a passo.
Figura 9 - (esquerda) Localização das posições dos caracteres e (direita) localização precisa das posições.
37
Figura 10 - Funcionamento do método Antonacopoulos e Castilla. (a) Imagem original, (b) ternerização cautelosa, (c) binarização agressiva e (d) resultado combinado.
Fonte: Antonacopoulos e Castilla (2006).
2.1.2 Correção através de segmentação
Esta seção discute métodos de correção de caracteres degradados que são utilizados durante a fase de segmentação. O trabalho de Nomura et al. (2005) faz a reconstrução apenas como um passo de um algoritmo maior, que tem como finalidade a segmentação de caracteres. A partir desse trabalho, fica evidente que mesmo em aplicações que não focalizam diretamente a reconstrução, esta, ainda assim, é uma técnica importante, pois influencia diretamente no resultado final de uma segmentação de caracteres, por exemplo.
2.1.2.1 Nomura et al.
O trabalho de Nomura et al. tem como objetivo final a segmentação de caracteres. O método foi direcionado para uma aplicação apenas, que é a segmentação de caracteres em placas de veículos. O algoritmo de Nomura et al. é de interesse para este trabalho, pois em um dos seus passos, como mencionado anteriormente, um algoritmo de reconstrução de caracteres, é aplicado.
O trabalho assume que, como estão lidando com imagens que apresentam degradação, alguns dos caracteres podem se encontrar partidos ou se tocando. Para efetivamente segmentar estes casos, algumas rotinas são propostas para solucionar os problemas encontrados nesses caracteres. Para o caso de caracteres partidos, os autores utilizam informações sobre o tipo de imagens que estão lidando, que no caso, são imagens