• Nenhum resultado encontrado

2.3 Arquitetura de Sistemas de Reconhecimento de Texto

2.3.5 Reconhecimento

Dentro do estudo que envolve o reconhecimento de padrões, a comunidade científica tem reservado grande parte dos esforços para o reconhecimento de escrita impressa e manuscrita. Para isso, a utilização de classificadores tem sido uma importante ferramenta.

Um classificador é um mapeamento a partir de um espaço de características para um conjunto discreto de rótulos ou classes. Considerando o alfabeto ocidental por exemplo, o reconhecimento de caracteres consiste em, a partir de características extraídas de um conjunto de caracteres, separá-los em 10 classes de algarismos e 26 classes de letras do alfabeto.

Desta forma, dado um conjunto de padrões de treinamento contendo elementos de todas as classes, deve-se estabelecer fronteiras de decisão dentro do espaço de carac- terísticas que separem os padrões de classes diferentes. As características devem ser apropriadas para uma boa representação dos padrões de entrada.

O processo de classificação deve considerar, portanto, que um dado padrão está em uma das c categorias ω1, ω2, ω3...ωc pertencente ao universo Ω de classes. As

classes contêm características com alguma relação ou peculiaridade em comum. Desta forma, representamos um vetor x por um conjunto de d características onde x = (x1, x2..., xd). Nesse espaço de d dimensões, cada observação x representa uma

medida classificável em Ω.

Os classificadores são então funções que utilizam como entrada os padrões desconhe- cidos e fornecem como saída as classes a que estes padrões provavelmente pertencem. O classificador apresenta-se como a função Y : X → Ω tal que Y (x) = ωi onde ωi é

a i-ésima classe de Ω, sendo xi um padrão desconhecido pertencente ao conjunto de

padrões X em um espaço de características x, e Ω o conjunto com todas as classes existentes. Existem diversas técnicas de classificação, dentre as quais destacamos:

Árvores de Decisão

São estruturas similares a regras if-then. Comuns em problemas de classificação, tomam como entrada uma situação descrita por um conjunto de atributos e retorna uma decisão, que é o valor predito para o valor de entrada, poendo ser discreto ou contínuo.

A saída ou decisão da árvore se dá pela execução de uma série de testes onde seus nós internos correspondem a testes de valores das propriedades, e os ramos deste nó são identificados com os possíveis valores do teste. Cada nó folha da árvore especifica o valor de retorno se a folha for atingida. Desta forma, as árvores de

decisão trabalham seguindo o paradigma bottom-up onde as informações sobre cada objeto a ser classificado deve poder ser expressa em termos de uma coleção fixa de propriedades ou atributos. Segue exemplo de estrutura de uma árvore de decisão:

Figura 2.7: Estrutura de Árvore de Decisão

Casamento de Modelos (template matching )

Nesta abordagem, o padrão a ser reconhecido é comparado com os modelos arma- zenados, observando todas as variações possíveis em termos de: translação, rotação e mudanças de escalas. A medida de similaridade é frequentemente uma correlação ou uma função de distância.

Desta forma, seja x = (x1, x2..., xd) um vetor em um espaço de d-dimensional e

ω1, ω2, ω3...ωc um conjunto c de classes modelos nesse espaço. Um conjunto de c

funções de decisão d1(x), d2(x)...dc(x) com a propriedade de que se x pertencer a

uma classe ωi então:

di(x) > dj(x) j = 1, 2...c, i 6= j

O casamento de modelos faz parte das abordagens de decisão teórica que se baseiam na utilização de funções de decisão (ou discriminantes). A função dij(x) = di(x) −

dj(x) = 0 identifica a fronteira de decisão entre duas classes. Portanto temos para

Redes Neurais

De forma semelhante ao nosso cérebro, as Redes Neurais são formadas por elemen- tos processadores, chamados neurônios, que interconectados são capazes de adquirir conhecimento com o passar do tempo. Este conhecimento é obtido através do re- lacionamento dos neurônios uns com os outros, compondo uma rede onde as saídas de uns compõe as entradas de outros (sinapse nervosa).

Figura 2.8: Neurônios biológicos e o processo de sinapse

Nas Redes Neurais Artificiais os neurônios semelhante com um número I de entradas xi e uma saída y. As entradas possuem pesos associados wi i = 1..I. Pode ainda

haver um parâmetro adicional do neurônio w0 chamado de viés (bias) que pode ser visto como o peso associado com uma entrada x0 que é sempre 1.

Figura 2.9: Representação de um Neurônios Artificial

A Figura 2.10 [20] apresenta a representação da organização de uma rede neural multicamadas ou Multilayer Perceptrons (MLP). Elas são compostas tipicamente de uma camada de entrada, uma ou mais camadas ocultas e uma camada de saída. O sinal de entrada se propaga para frente através da rede, camada por camada e cada

neurônio computa o somatório de suas entradas incluindo o viés (b) formalizando esses fatores através de uma função de transferência ou ativação.

Figura 2.10: Rede Neural MLP com três camadas

Um algoritmo de treinamento bastante utilizado nesse tipo de rede é o backpropaga- tion onde os dados são repetidamente apresentados a rede neural e então comparadas a saída obtida com a saída desejada. O erro calculado é então propagado de volta na rede e utilizado para ajustar os pesos buscando reduzi-lo a cada iteração.

O estudo sobre Redes Neurais é bastante extenso inclui, além das redes MLP, outros tipos de rede como Redes de Kohonen, Redes Hopfield. Para maiores informação consulte Braga et al. [21].

Lógica Nebulosa

A Lógica Nebulosa ou Fuzzy (FL) se baseia no conceito de Conjuntos Fuzzy e seus limites não precisos. Em oposição ao conceito tradicional de conjuntos numéricos em que um número pertence ou não a um determinado conjunto, na lógica fuzzy os números de um conjunto possuem um grau de pertinência a este conjunto, que varia dentro de um intervalo. Esta teoria trouxe uma contribuição importante ao conceito de incerteza.

Para representar os conjuntos fuzzy e o grau de pertinência, a FL usa funções de pertinência. Seguem exemplos de funções de pertinência:

Figura 2.11: Funções de pertinência: (a) triangular, (b) trapezoidal, (c) gaussiana

Nos gráficos, o eixo X representa os valores no conjunto fuzzy e o eixo Y o grau µ de pertinência dos mesmos. Desta forma, µA(x) = y nos diz que y é o grau de

pertinência de x no conjunto A.

A partir de conjuntos não-nebulosos (crisp2), a criação de seu respectivos conjuntos nebulosos é feita através da determinação do grau de pertinência de cada um dos elementos aos conjuntos. A este processo dá-se o nome de fuzzyficação. O processo de defuzzificação consiste da utilização dos resultados das regras para a criação de conjuntos crisp que contenham informações a respeito da classificação dos elementos. Desta forma, a classificação com lógica nebulosa normalmente é feita através de regras nebulosas e métodos de defuzzificação. As regras nebulosas normalmente são regras de inferência que utilizam delimitadores dos valores de pertinência de cada padrão aos conjuntos.

k – Nearest Neighbors (kNN)

O kNN (k – Nearest Neighbors) é um dos métodos de classificação mais antigos e simples. Apesar disso, tem apresentado bom desempenho em diferentes cenários. A aplicação do algoritmo kNN, ou k-Vizinhos mais próximos, depende da existência de um conjunto de treinamento formado por vetores n-dimensionais. Cada elemento deste conjunto representa um ponto no espaço n-dimensional.

Uma vez definido o conjunto de treinamento, para determinar a classe de um ele- mento não pertencente a este conjunto, o classificador kNN procura k elementos existentes no conjunto de treinamento que estejam mais próximos deste elemento desconhecido, ou seja, que tenham a menor distância.

Existem vários métodos para o cálculo dessa distância. O mais utilizado é a distancia Euclidiana e este será o método de cálculo que utilizaremos nesse nosso primeiro

2Conjuntos com valores bem delimitados. Elementos pertencem ou não pertencem a um dado

experimento de classificação. Matematicamente, sendo p e q dois pontos no espaço n-dimensional, a distância euclidiana é dada por:

d(p, q) = v u u t n X i=1 (pi− qi)2

Vale ressaltar ainda que, para evitar a existência de discrepâncias de valores dos diferentes atributos, é importante que os dados estejam normalizados. Desta forma, sendo v um valor do atributo a que aparece na tupla p, para normalizá-lo conside- ramos o valor v0 ∈ [0; 1] calculado como:

v0 = v − mina maxa− mina

Uma vez descobertos quais são os k-vizinhos mais próximos, a classificação se dá verificando qual a classe mais frequente dentre as classes desses k vizinhos. A classe mais frequente encontrada é então atribuída ao elemento desconhecido.

A determinação do valor de k ou seja, do número de vizinhos a ser considerado, é um fator importante para a precisão do algoritmo e é determinado pelo usuário para obter uma melhor classificação.

Conforme podemos observar na Figura 2.12, se o usuário escolher um valor de k muito pequeno, a classificação ficará sensível a pontos de ruído ou características irrelevantes. Se k for muito grande, a vizinhança pode incluir elementos de outras classes. Em ambos os casos, o processo de classificação com o kNN pode ficar prejudicado.

Em suma, esse algoritmo é bastante utilizado por ser uma técnica flexível e simples

de implementar. Por outro lado, em um grande volume de dados, o algoritmo

kNN pode ser um grande consumidor de recursos computacionais, tornado-se lento por exigir a realização de cálculos de distância para cada elemento do conjunto de treinamento.

3 Diferenciação entre Manuscritos e

Impressos: Abordagens da

Literatura

3.1 Visão Geral

O Reconhecimento de Padrões por Computador é uma das mais importantes áreas da Inteligencia Artificial e possui, atualmente, diversas aplicações como análise de dados sísmicos, identificações biométricas (voz, iris, digital e outros), previsão de mercados financeiros, previsões meteorológicas e reconhecimento de textos.

Aplicações na área de reconhecimento de textos são particularmente complexas em decorrência do grande número de variáveis envolvidas. De uma forma geral, os docu- mentos podem apresentar diversos componentes não textuais, como linhas, imagens, manchas provocadas pelo tempo, além de uma infinidade de tipos e estilos de fon- tes. Além disso, é frequente a existência de textos impressos e manuscritos em uma mesma imagem de documento e, como as técnicas para reconhecimento dessas duas classes de texto costumam ser distintas, faz-se necessário um procedimento de diferenciação desse dois tipos de texto [15].

A diferenciação entre manuscritos e impressos é necessária principalmente em decor- rência da irregularidade dos textos manuscritos. Na Figura 3.1 podemos observar que a segmentação do texto em palavras, por exemplo, torna-se uma tarefa complexa em textos manuscritos tendo em vista que o método mais óbvio para esta função, a medida e comparação da distância entre os caracteres e as palavras, falharia devido a irregularidade encontrada em manuscritos [16].

Figura 3.1: Segmentação de palavras em textos impressos (a) e manuscritos (b)

Em (a), a distância entre caracteres (letras de uma mesma palavra) e a distâncias entre palavras em texto impressos são constantes, sendo a segunda maior que a primeira. Dessa forma, as palavras podem ser facilmente separadas por meio da dis- tância horizontal entre os componentes. Entretanto, em (b), não existe regularidade de espaçamento entre os caracteres do texto manuscrito, transformando a tarefa de segmentação num procedimento mais difícil e elaborado. No trecho “That cannot”, por exemplo, o espaçamento entre as duas palavras é menor do que entre letras e e i da palavra "either".

As variações de estilo em manuscritos fazem com que um mesmo caractere possa apresentar formas diferentes de uma pessoa para outra, ou até mesmo para uma mesma pessoa, em momentos diferentes tornando a tarefa de reconhecimento para este tipo de texto muito mais complexa. Os textos manuscritos podem ainda se apresentar de forma isolada ou cursiva. No primeiro caso os caracteres estão dis- postos de forma não conectada, enquanto que no segundo estão dispostos de forma completamente irrestrita, ou seja, conectados ou eventualmente desconectados. Na palavra “continue” da Figura 3.1, os caracteres estão quase todos conectados. Uma série de outros problemas existentes em textos manuscritos justificam o uso de técnicas diferentes para o trabalhos de reconhecimento de caracteres. Seguem mais alguns exemplos:

• Variação de tamanho dos caracteres;

• Inclinação na escrita, ruídos na imagem ou borramento; • Influência da escrita no verso do documento;

Documentos relacionados