universidade de são paulo instituto de matemática e ...fabriciolopes/mac5749-ep2.pdf · teste, e...

12

Upload: truongquynh

Post on 02-Feb-2019

212 views

Category:

Documents


0 download

TRANSCRIPT

Universidade de São Paulo � Instituto de Matemática e Estatística

MAC5749 � Análise e Reconhecimento de Formas

Exercício-Programa 2: OCR - Validação

Alexandre Noma, Arnaldo Lara, Fabrício Martins Lopes, e Jesús Mena-Chalco{noma,alara,fabriciolopes,jmena}@vision.ime.usp.br

10 de dezembro de 2006

Sumário

1 Introdução 2

2 Material e métodos 2

2.1 Conjunto de dados de imagens usado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2 Pré-processamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.3 Segmentação dos caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.4 Extração de características . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.5 Treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.6 Classi�cação usando o vizinho holográ�co mais próximo . . . . . . . . . . . . . . . . . . . . . . . 7

2.7 Processo de validação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.7.1 Validação cruzada generalizada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.7.2 Validação deixa-um-fora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3 Resultados 9

3.1 Reconhecimento de caracteres (EP1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.2 Validação do reconhecimento (EP2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4 Conclusões 11

1

1 Introdução

O objetivo deste trabalho foi aplicar conhecimentos teóricos de Análise e Reconhecimento de Formas paradesenvolver uma aplicação de reconhecimento óptico de caracteres (OCR, optical character recognition).

De maneira resumida, o objetivo de um sistema OCR é reconhecer os caracteres de uma imagem dada comoentrada e extrair o texto para um arquivo texto editável. Neste trabalho, as imagens de entrada estão em tonsde cinza, cujo conteúdo é um texto disposto horizontalmente e de cima para baixo. Dessa forma, não é feita aseparação de região textual de regiões não textuais como fotos, �guras geométricas e outras.

Abordagens clássicas de OCR, como descrito em [2, 4], sugerem o uso de etapas como segmentação, extraçãode características e reconhecimento dos caracteres.

Este trabalho segue essa padronização, apenas acrescentando (1) uma etapa de pré-processamento, a qual nor-malmente está implícita, e (2) uma etapa de validação, sendo então dividido em cinco partes: pré-processamento,segmentação dos caracteres, extração de características, e classi�cação1. Como segunda parte do trabalho foirealizado um processo de validação da nossa implementação.

O desenvolvimento deste trabalho foi realizado por um grupo de alunos (autores deste texto), de forma quecada um dos componentes foi encarregado do estudo e implementação de uma etapa e elaboração do relatórioreferente às atividades individualmente desenvolvidas. Também foi desenvolvida, mas de forma coletiva, aintegração das partes (texto e implementação). A seguir é descrito os responsáveis por cada uma das etapas:

• Pré-processamento, alocado para o aluno Arnaldo Lara

• Extração de caracteres, alocado para o aluno Fabrício Martins Lopes;

• Extração de características, alocado para o aluno Alexandre Noma;

• Treinamento e classi�cação, alocado para o aluno Jesús Mena-Chalco.

• Validação do classi�cador, realizado de forma coletiva.

Foi utilizado para a implementação deste trabalho a linguagem de programação Java e o pacote Java AdvancedImaging (JAI) 1.1.2, operando sobre o sistema operacional Linux (Debian Sarge 3.1).

Este texto está organizado da seguinte maneira. Na Seção 2 são apresentadas as imagens usadas neste trabalho eas técnicas aplicadas na solução de cada uma das etapas: (1) pré-processamento, (2) segmentação de caracteres,(3) extração de características, (4) os passos de classi�cação dos caracteres e posterior aplicação na fase deteste, e (5) reconhecimento ou classi�cação de caracteres. A seção 2 é �nalizada com uma pequena descriçãodas técnicas de validação tratadas no trabalho. Os resultados experimentais obtidos são discutidos na Seção 3.Finalmente, na Seção 4, apresentamos as conclusões deste trabalho.

2 Material e métodos

O reconhecimento de caracteres estudado e implementado está principalmente baseado no trabalho realizadopor Torres-Méndez e colaboradores [8]. A segmentação sucessiva de caracteres é realizada usando operadoresmorfológicos, a extração de características usando o centróide do objeto segmentado, e o reconhecimento usandoo vizinho holográ�co mais próximo. Na validação foram usadas as técnicas de validação cruzada e deixa-um-fora.

Nesse trabalho é utilizada uma abordagem clássica para o OCR, o qual pode ser descrito como (Figura 1):a) Leitura da imagem de entrada e pré-processamento. b) Segmentar os caracteres da imagem. c) Extraircaracterísticas que diferenciem o caractere (incluídos os valores de fase). d) Classi�car o caractere de acordocom as características extraídas. É evidente as etapas apresentadas são interdependentes, sendo o resultado deuma etapa anterior afeta diretamente o resultado da etapa seguinte.

1Um breve descrição histórica da evolução dos métodos de OCR é apresentado em [5].

2

Figura 1: Diagrama de blocos do método usado para o treinamento e o reconhecimento de caracteres. Cada blococom linhas sólidas representa uma operação, cada �echa o �uxo de dados entre os processos, e cada bloco com linhaspontilhadas uma operação repetitiva dos processos nele contidos.

2.1 Conjunto de dados de imagens usado

Para a primeira parte do trabalho foi usada a imagem 343.png (828x1300 pixels) para o treinamento e 344.png(830 x 1300 pixels) para o teste do EP. Para o treinamento foram usados os caracteres segmentados da imagem343.png e gerado assim um conjunto de treinamento de 2223 caracteres.

No entanto, para a validação foi usada uma imagem composta pelas duas imagens anteriores (343_344opng de828x2598 pixels. Tanto as amostras para teste quanto de treinamento foi realizada usando as linhas segmentadasdessa imagem composta.

2.2 Pré-processamento

Nesta etapa a imagem de entrada é carregada e veri�ca-se se já se encontra em níveis de cinza e caso nãoesteja ela é então convertida. A seguir é feita então uma normalização da iluminação da imagem de trabalho.Veri�cou-se que durante o processo de aquisição das imagens ocorreu uma diferença de iluminação em pontosdiversos da imagem. Para esta normalização estamos utilizando o operador morfológico Abertura Top-Hat.Este operador extrai os picos da imagem e assim a diferença de iluminação que por ventura ocorra na imagemé eliminada. O operador Abertura Top-Hat é de�nido pela seguinte equação:

f ◦̂b = f − (f ◦ b) (1)

onde f ◦ b é a abertura, uma erosão seguida por uma dilatação por um mesmo elemento estruturante b e f ◦̂bé o operador Abertura Top-Hat que é imagem original f subtraída pela abertura. O elemento estruturanteutilizando é um disco, plano, de raio 3.

O primeiro passo para obter a segmentação de cada caractere no texto é a binarização da imagem do texto. Parabinarizar a imagem utilizamos o procedimento descrito em [8] que de�ne o limiar de binarização da seguintemaneira:

limiar = m − k ∗ (max − min) (2)

3

onde m é a mediana dos valores do histograma da imagem, max é a maior intensidade dentre os pixels daimagem, min é a menor intensidade e k é um parâmetro ajustado empiricamente que controla a limiarização,estamos utilizando valores entre 0 e 1.

Estando a imagem binarizada, o próximo passo é encontrar as regiões das linhas na imagem. Para isto usamosuma dilatação da imagem já binarizada. Um elemento estruturante do tipo linha com 20 pixels de comprimentoe origem na extremidade esquerda foi utilizada nesta dilatação. Como resultado temos uma região borradaformando um único componente conexo para cada linha do texto. Assim a região das linhas de texto da imagemsão identi�cadas, e conseqüentemente, suas caixas de contorno e seus limites horizontais e verticais.

2.3 Segmentação dos caracteres

Essa etapa tem como entrada duas imagens, a primeira é a imagem original binarizada e a segunda é a imagemdilatada, contendo as regiões das linhas como descrito na seção anterior.

A informação contida na imagem dilatada é usada para a identi�cação espacial das linhas, permitindo a segmen-tação dos caracteres da imagem binarizada em ordem seqüencial, considerando que o texto esteja na orientaçãoretrato.

A segmentação dos caracteres pode ser vista como uma tarefa que busca a decomposição de uma imagemem uma seqüência de sub-imagens contendo símbolos individuais. No trabalho de Casey e Lecolinet [2], sãoapresentados três estratégias "puras", no sentido de não híbridas, para a segmentação de caracteres.

• A abordagem clássica, na qual segmentos são classi�cados com base nas características dos caracteres, ouseja, extração de caracteres da imagem em componentes representativos, independentes do seu conteúdo.

• Segmentação baseada em reconhecimento, no qual é procurado por componentes na imagem que casamcom classes no alfabeto. Baseando-se muitas vezes em análise sintática e/ou semântica das palavrasreconhecidas.

• Métodos Holísticos, no qual a busca pelo reconhecimento de palavras como um todo, evitando a necessidadede segmentação dos caracteres.

Seguindo esta classi�cação, foi aplicado neste trabalho a estratégia clássica, sendo implementada a extração doscaracteres pela identi�cação de componentes conexos (CC).

A abordagem utilizando componentes conexos [4], consiste na identi�cação de regiões do objeto que estejamconectadas por uma vizinhança, neste trabalho 4-vizinhança. Após a identi�cação do CC, o mesmo é extraídoda imagem por meio do menor retângulo ereto que inclui inteiramente o CC, conhecido comumente como caixade contorno ou "Bouding Box".

Percorre-se então a região de cada linha para localizar os CC. O percurso é realizado de cima para baixo eda direita para a esquerda. Quando é encontrado um pixel pertencente ao objeto, ele é rotulado e veri�cadasua vizinhança. Os pixels vizinhos com a mesma intensidade são também rotulados como objetos, sendo esseprocesso repetido até que não existam mais pixels vizinhos classi�cados como objeto. Caso o CC gerado peloagrupamento desses pixels seja maior que um limiar, nesse trabalho usado empiricamente 2x2, ele é extraído eenviado a próxima etapa. Caso contrário o CC é descartado, pois supostamente se trata de um ruído.

No entanto, existem caracteres que possuem mais de um componente conexo, como por exemplo: i, ú, é, ã, etc.A identi�cação desses caracteres foi realizada levando-se em conta o ponto médio da largura do CC, e a buscavertical por pixels pertencentes ao objeto nesse ponto médio. Uma vez identi�cados, foram adicionados ao CC.

Nessa etapa também foram identi�cadas as quebras de linhas e os espaços em branco. As trocas de linhas foramidenti�cadas quando o limite horizontal da linha dilatada era atingido, enviando um caractere de quebra de linhadiretamente ao arquivo de saída. Os espaços em branco foram identi�cados de acordo com o número de pixelspercorridos no sentido horizontal sem que exista a identi�cação de um CC, nesse trabalho usado empiricamentevalor 5, ou seja, se forem identi�cados 6 pixels na horizontal sem que exista nenhum CC, é enviado um caracterede espaço diretamente ao arquivo de saída.

4

Um outro problema encontrado é a concatenação de vários caracteres em um mesmo CC, como exibido na�gura 2. Dependendo do limiar de binarização, este problema pode ocorrer com mais ou menos freqüência.O operador morfológico Abertura Top-Hat foi utilizado como tentativa de minimizar essa concatenação, comodescrito na seção anterior.

Figura 2: Componente conexo contendo dois caracteres.

É importante destacar que essa abordagem não é adequada para a extração de caracteres manuscritos, logo essetipo de reconhecimento não foi abordado nesse trabalho, sendo objetivo apenas o reconhecimento de caracteresimpressos.

2.4 Extração de características

A extração de características foi baseada no artigo [8]. Neste projeto, esta parte foi implementada em umúnico módulo (Caracteristicas.java). Este módulo recebe uma imagem binária 2 (o ideal é com um únicocaractere) obtida na fase de segmentação e devolve um 'vetor de características' (descrito mais adiante). Nestafase, o objetivo é calcular três tipos de informações:

(c1) momento central normalizado de inércia;

(c2) codi�cação radial para o total de transições;

(c3) codi�cação radial diferencial.

O cálculo do momento de inércia (c1) foi baseado na seguinte fórmula:

I =N∑

i=1

((xi − Cx)2 + (yi − Cy)2)

onde (Cx, Cy) são as coordenadas (aproximadas) do centro do menor círculo que contém o caractere, N é ototal de pixels pertencentes ao caractere e (xi, yi), para i = 1 . . . N , são as coordenadas destes pixels. O valorde (c1) é o momento de inércia normalizado, obtido pela divisão de I por N2.

As outras duas características foram calculadas a partir de círculos igualmente espaçados e centrados em(Cx, Cy), conforme ilustrado na �gura 3. Para cada um desses círculos, as características (c2) e (c3) foram

Figura 3: Para cada uma das letras acima, foram desenhados seis círculos concêntricos e igualmente espaçados.

obtidas da seguinte forma. Dado um dado círculo C, o número de transições (c2) é o total de transições, par-tindo de pixels de dentro para fora do caractere, detectadas ao percorrer C no sentido horário, por exemplo.Para as duas letras da �gura 4, (c2) vale 2. Para o cálculo de (c3), sejam A1 e A2 o maior e o segundo maior

2 Assim, fará sentido quando referirmos aos pixels da letra ou caractere (ou pixels que estão na letra � e não no background).Por exemplo, na �gura 4, nos dois círculos desenhados sobre as letras 'M' e 'N', os pixels em vermelho estão nas letras e os azuisnão, resultando em alternâncias 'dentro e fora' da letra quando percorremos estes círculos no sentido horário, por exemplo.

5

arcos de C que não estão no caractere, respectivamente, conforme ilustrado na �gura 4. O valor de (c3) éde�nido pela fórmula:

d1 − d2

donde d é o total de pixels de C, d1 é o total de A1 e d2 o total de A2.

Figura 4: Para 'M' e 'N' acima, (c2) vale 2: percorrendo-se cada um dos dois círculos, detectamos duas transiçõespartindo de pixels de dentro para fora da letra. Para obter (c3), em cada círculo, os arcos A1 e A2 estão indicados emazul.

Note que as três informações acima são baseadas no centróide do caractere com o objetivo de extrair caracterís-ticas robustas à rotação. Além disso, estas informações são normalizadas pelo tamanho (seja pelo tamanho docaractere ou pelo tamanho do círculo), resultando assim em características robustas a mudanças de escala. Comestas informações, foi de�nido um vetor de características usado no processo de reconhecimento dos caracteres,descrito mais adiante.

O vetor de características associado a uma amostra k pode ser denotado como:

Sk = (sk1 , sk

2 , . . . , skM ) (3)

em que ski são os escalares que in�uenciarão na etapa do reconhecimento. Na nossa implementação, o momento

de inércia foi armazenado na primeira posição desse vetor (escalar sk1), seguido pelos pares da codi�cação radial

(total de transições e diferencial, respectivamente) para cada um dos M−12 círculos.

acho que aqui faltou indicar que usamos mais caracteristicas para assim evitar, de certo modo, ainvariância à rotação... discutir um pouquinho dos problemas usando alguns tipos de letras. (e.g.u-n, b-p-q-d, V-A, etc.)... o que vocês acham?... acho que por isso os caras do artigo usaramletras em maiúsculo, pois as rotações entre elas não tem correlação. Esse é o ponto fraco da nossaimplementação. Alguém poderia argumentar: "tudo bem, usam caracteristicas topológicas parater invariância a rotação, mas depois colocando esas novas características esquecem da primeiraparte..."... compramos um carro com ar condicionado, e somente usamos as janelas... :-(

2.5 Treinamento

Nesta etapa usa-se o algoritmo do vizinho holográ�co mais próximo (HNN,holographic nearest neighbor) apre-sentado em [8] devido à sua robustez matemática, rapidez computacional e fácil entendimento e implementação.A operação do algoritmo está baseado no principio de unfolding information de diferentes fases em um plano(simples). Representamos o campo de dados do elemento k por um conjunto de amostras S de estímulos-respostapor:

Sk = (sk1 , sk

2 , . . . , skM , sk

M+1) (4)

em que si, . . . , sM são os escalares que de�nem o campo estimulo. M é o número de variáveis de entrada(características), e sM+1 a resposta associada (classe).

Cada variável de entrada é mapeada a variáveis polares usando a função de relação sigmoidal (Figura 5):

θki = 2π(1 + e(µ−sk

i )/σ)−1 (5)

em que µ e σ são respectivamente a média e o desvio padrão de cada uma das variáveis. Essa equação mapeiacada estímulo sk

i a valores de fase entre 0 e 2π3.3Essa é considerada uma boa forma de representação da informação tratada, limitando-a (0,2π), no lugar de (−∞,+∞). É dito

que tal mapeamento leva de um domínio dos estímulos a domínios de fase [7].

6

Figura 5: Função sigmoidal de mapeamento de fase.

Uma representação tabular dos estímulos, valores de fase e classe das amostras do conjunto de treinamentoestá mostrada na Tabela 1. Para cada amostra k são extraídas as M características Sk

i , com i = 1, . . . ,M(Seção 2.2). As fases θk

i correspondentes às características são calculadas mediante a Equação 5. Tais valoressão usados na etapa de reconhecimento do caractere.

Amostra Características Fases Classe1 S1

1 . . . S1M θ1

1 . . . θ1M S1

M+1

2 S21 . . . S2

M θ21 . . . θ2

M S2M+1

......

N-1 SN−11 . . . SN−1

M θN−11 . . . θN−1

M SN−1M+1

N SN1 . . . SN

M θN1 . . . θN

M SNM+1

(µ1, σ1) . . . (µM , σM )

Tabela 1: Domínios dos estímulos, da fase e resposta.

2.6 Classi�cação usando o vizinho holográ�co mais próximo

Quando um novo padrão é apresentado, é selecionado o melhor casamento, com os dados de treinamento,calculando a distancia mínima entre o novo padrão (θt) e os valores obtidos na fase de treinamento (θexp) paracada característica. Assim, o mínimo valor das N amostras de treinamento com o padrão de entrada será a

resposta:√∑M

i=1(θki(exp) − θk

i(t))2, isto é, a classe atribuída ao novo padrão será Sk

M+1.

2.7 Processo de validação

Foram duas as técnicas usadas no processo de validação deste sistema reconhecedor de caracteres. A seguir osmétodos de validação são descritos.

2.7.1 Validação cruzada generalizada

A validação cruzada generalizada conhecida também como k-validação cruzada, é uma das técnicas mais apli-cadas na veri�cação da estabilidade de modelos [6]. Seu funcionamento consiste em dividir o conjunto total deamostras em dois subconjuntos: treinamento e teste, mutuamente exclusivos como mostra a Figura 6. O númerok representa a quantidade de execuções e conseqüentemente o número de divisões das amostras em treinamentoe teste, que serão usadas durante a validação. Sendo o resultado de cada validação a média obtida durante asexecuções. Uma vantagem desse método é que todas as amostras são usadas para treinamento e teste.

7

Figura 6: Exemplo de divisão das amostras usadas na validação cruzada generalizada.

2.7.2 Validação deixa-um-fora

A validação deixa-um-fora é uma forma extrema de validação cruzada. Essa validação atribui somente umaamostra ao conjunto de teste e todas a restantes são atribuídas ao conjunto de treinamento [1]. Assim, suaaplicação neste trabalho faz uso de 48 linhas de amostra para o treinamento e apenas uma para teste. Essavalidação também pode ser vista como uma validação k-validação cruzada, sendo k de�nido como o tamanhodo conjunto de amostras. A representação grá�ca do funcionamento da validação deixa-um-fora pode serobservada na Figura 7. Dessa forma, essa validação fornece uma estimativa de erro para cada uma das amostrasdo conjunto. Uma observação importante nessa validação é que todas as amostras disponíveis devem passar pelomenos uma vez pelo conjunto de teste, isto é, as amostras são combinadas para que todas sejam aproveitadaspelo treinamento e teste pelo menos uma vez. Vale destacar que a maior desvantagem desse método é o tempocomputacional usado para sua execução em relação à validação cruzada generalizada, e os resultados obtidossobre a validação dos dados são superestimados, ou seja, fornece uma previsão pessimista sobre o conjunto dedados submetido à validação.

Figura 7: Exemplo de divisão das amostras usadas na validação deixa-um-fora.

8

3 Resultados

3.1 Reconhecimento de caracteres (EP1)

Neste trabalho, foi feita uma pesquisa por OCRs disponíveis na internet para possibilitar uma comparação dedesempenho entre a nossa implementação OCR com os demais programas. Selecionamos quatro programasOCRs para esta comparação.

• GNU Ocrad (http://www.gnu.org/software/ocrad/ocrad.html)

• GOCR 0.41 (http://jocr.sourceforge.net/)

• SimpleOCR 3.1 (http://www.simpleocr.com/)

• Cuneiform OCR 6.0 (http://www.ocr.com/)

A taxa de acerto foi contabilizada da seguinte maneira. Seja A o texto extraído por um dos OCRs e M o textoobtido pela digitação manual (M é o 'gabarito'). Primeiro calculou-se uma subseqüência máxima4 S entre A eM . A taxa de acerto é obtida pela divisão de |S| por |M |, onde |S| denota o tamanho da subseqüência máximaencontrada e |M | é o tamanho do texto no gabarito.

A seguir, é exibida a tabela com o nome do programa OCR e as taxas de acerto para as imagens 343.png e344.png dadas como entrada para este EP.

Programa OCR Acerto 343 Acerto 344GNU Ocrad 70.21% 66.80%GOCR 0.41 69.82% 70.12%

SimpleOCR 3.1 83.29% 81.02%Cuneiform OCR 6.0 90.86% 85.60%

Nosso OCR 95.59% 84.93%

Em nosso OCR usamos como treinamento a imagem 343.png e a taxa de acerto obtida para reconhecimentodo texto da própria imagem 343.png foi de 95.59% e obtivemos a taxa de 84.93% para o reconhecimento dotexto da imagem 344.png.

O nosso OCR perde apenas para o Cuneiform aplicado na segunda imagem. Mas um detalhe importante deveser mencionado: os quatro OCRs usados nesta comparação são 'genéricos', ou seja, eles rodam sem a necessidadedo treinamento.

3.2 Validação do reconhecimento (EP2)

Na média �nal ponderada, é calculada uma média da taxa de acerto para cada linha ponderada pelo tamanhorelativo de cada linha em relação ao texto todo. Na média �nal acumulada: começa igual a primeira taxa deacerto e a partir daí é calculada a taxa média de acerto entre as linhas já processadas, sendo o resultado �nala média de acerto do classi�cador.

• Validação cruzada generalizada: (Figura 10)Nessa validação foi de�nido k = 3, i.e. a validação é realizada utilizando 1/3 das linhas para teste e 2/3para treinamento, sendo executada 3 vezes. A �gura exibe os erros obtidos para o reconhecimento de cadauma das linhas.

• Validação deixa-um-fora: (Figura 9)

Na Tabela 2 mostramos as taxas de acerto médio ponderada e acumulada.4Um algoritmo da subseqüência máxima pode ser vista em [3].

9

Figura 8: Taxa de acerto acumulado médio usando a validação cruzada.

Figura 9: Taxa de acerto acumulado médio usando a validação deixa-um-fora.

Figura 10: Taxa de acerto acumulado médio usando bootstrap.

10

Técnica de validação Taxa de acertoMédia ponderada Média acumulada

Cruzada 0.65377 0.63179Deixa-um-fora 0.65608 0.57892

Bootstrap ... ...

Tabela 2: Taxas de acerto das validações executadas.

4 Conclusões

O objetivo deste trabalho foi aplicar conceitos teóricos da disciplina Análise e Reconhecimento de Formas naimplementação de um sistema OCR baseado na extração de características.

Analisando o resultado da seção 3, obtido da comparação entre o nosso OCR com os demais, notamos que onosso protótipo obteve um bom desempenho.

Como trabalhos futuros, podemos automatizar a fase de treinamento e analisar a possibilidade de:

• extrair novas características com o objetivo de melhorar as taxas de acertos;

• incrementar o reconhecimento por meio de heurística: durante a extração do caractere da imagem, pode seraplicada uma heurística para melhorar a e�ciência da extração. Uma heurística sugerida seria armazenaros últimos três caracteres reconhecidos, e para cada caractere, as duas outras possibilidades (caracteresclassi�cados em 2 e 3 lugares para a imagem contida no CC) e usar essas informações por meio de análisesemântica (bem simples) desses caracteres, com o objetivo de evitar ocorrências como "qn", "qa", "qd","ttt", "dn", entre outros, e também a ocorrência de consoantes isoladas, como "h", "t", etc.

Outro ponto importante a salientar é que o trabalho descrito em [8] apresenta bons resultados para o reconhe-cimento de caracteres com alta resolução, como podemos perceber no artigo. Porém, ao utilizar uma imagemde um livro, onde cada letra apresenta uma resolução baixa, a extração de caracteres se mostra de�ciente. Ascaracterísticas extraídas são invariantes a rotação, translação e escala. Como resultado da baixa resolução dasimagens utilizadas, ocorreram problemas como a confusão entre as letras u e n e as letras q e b. Para resolverestes problemas extraímos 2 características a mais: o número de pixels do CC que está acima e abaixo de umalinha média no CC. Com estas novas características no vetor o reconhecimento passou a ser mais preciso e anossa taxa de acerto aumentou. Portanto acreditamos que a técnica descrita em [8] seja válida apenas paracaracteres extraídos com uma boa resolução.

Finalmente, foi identi�cado que a aquisição das imagens de entrada tiveram iluminação não homogênea, gerandofaixas horizontais mais escuras e outras mais claras, as quais foram amenizadas na etapa de pré-processamento,mas como foi utilizada a limiarização (processamento global da imagem) essa falha na aquisição prejudi-cou/in�uenciou negativamente o desempenho do aplicativo OCR. Lembrando com isso que o processo de aqui-sição/digitalização de imagens deve ser o melhor possível para que as etapas subseqüentes aconteçam o melhorpossível.

Referências

[1] C. M. Bishop, Neural networks for pattern recognition, Oxford University Press, Inc., New York, NY, USA,1995. 8

[2] R. G. Casey and E. Lecolinet, A survey of methods and strategies in character segmentation, IEEE Tran-sactions on Pattern Analysis and Machine Inteligence 18 (1996), no. 7, 690�706. 2, 4

[3] T. H. Cormen, C. E. Leiserson, and R. L. Rivest, Introduction to algorithms, The MIT Press, 1990. 9

11

[4] L. F. Costa and R. M. Cesar Jr., Shape analysis and classi�cation: Theory and practice, CRC Press, Inc.,Boca Raton, FL, USA, 2001. 2, 4

[5] H. Fujisawa, Y. Nakano, and K. Kurino, Segmentation methods for character recognition: From segmentationto document structure analysis, Proc. of the IEEE, vol. 80, July 1992. 2

[6] Ron Kohavi, A study of cross-validation and bootstrap for accuracy estimation and model selection, IJCAI,1995, pp. 1137�1145. 7

[7] B. Soucek (ed.), Fuzzy, holographic, and parallel intelligence: The sixth-generation breakthrough, Sixth Ge-neration Computer Technologies Series, John Wiley and Sons, New York, 1992. 6

[8] L. A. Torres-Mendez, J. C. Ruiz-Suárez, L. E. Sucar, and G. Gómez, Translation, rotation, and scale-invariant object recognition, IEEE Transactions on Systems, Man, and Cybernetics, Part C 30 (2000), no. 1,125�130. 2, 3, 5, 6, 11

12