Sumário - Computer Vision Research Group

Transcrição

Sumário - Computer Vision Research Group
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
Classicaçã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 para
desenvolver 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 como
entrada e extrair o texto para um arquivo texto editável. Neste trabalho, as imagens de entrada estão em tons
de cinza, cujo conteúdo é um texto disposto horizontalmente e de cima para baixo. Dessa forma, não é feita a
separaçã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ção
de características e reconhecimento dos caracteres.
Este trabalho segue essa padronização, apenas acrescentando (1) uma etapa de pré-processamento, a qual normalmente 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 classicação1 . Como segunda parte do trabalho foi
realizado 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 que
cada um dos componentes foi encarregado do estudo e implementação de uma etapa e elaboração do relatório
referente às atividades individualmente desenvolvidas. Também foi desenvolvida, mas de forma coletiva, a
integraçã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 classicação, alocado para o aluno Jesús Mena-Chalco.
• Validação do classicador, realizado de forma coletiva.
Foi utilizado para a implementação deste trabalho a linguagem de programação Java e o pacote Java Advanced
Imaging (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 e
as 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 classicação dos caracteres e posterior aplicação na fase de
teste, e (5) reconhecimento ou classicação de caracteres. A seção 2 é nalizada com uma pequena descrição
das 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 realizado
por Torres-Méndez e colaboradores [8]. A segmentação sucessiva de caracteres é realizada usando operadores
morfológicos, a extração de características usando o centróide do objeto segmentado, e o reconhecimento usando
o 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) Extrair
características que diferenciem o caractere (incluídos os valores de fase). d) Classicar o caractere de acordo
com as características extraídas. É evidente as etapas apresentadas são interdependentes, sendo o resultado de
uma etapa anterior afeta diretamente o resultado da etapa seguinte.
1
Um 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 bloco
com linhas sólidas representa uma operação, cada echa o uxo de dados entre os processos, e cada bloco com linhas
pontilhadas 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 imagem
343.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 de
828x2598 pixels. Tanto as amostras para teste quanto de treinamento foi realizada usando as linhas segmentadas
dessa imagem composta.
2.2 Pré-processamento
Nesta etapa a imagem de entrada é carregada e verica-se se já se encontra em níveis de cinza e caso não
esteja ela é então convertida. A seguir é feita então uma normalização da iluminação da imagem de trabalho.
Vericou-se que durante o processo de aquisição das imagens ocorreu uma diferença de iluminação em pontos
diversos 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 é denido pela seguinte equação:
f ˆ◦b = f − (f ◦ b)
(1)
ˆb
onde f ◦ b é a abertura, uma erosão seguida por uma dilatação por um mesmo elemento estruturante b e f ◦
é o operador Abertura Top-Hat que é imagem original f subtraída pela abertura. O elemento estruturante
utilizando é 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. Para
binarizar a imagem utilizamos o procedimento descrito em [8] que dene o limiar de binarização da seguinte
maneira:
limiar = m − k ∗ (max − min)
3
(2)
onde m é a mediana dos valores do histograma da imagem, max é a maior intensidade dentre os pixels da
imagem, 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 usamos
uma dilatação da imagem já binarizada. Um elemento estruturante do tipo linha com 20 pixels de comprimento
e origem na extremidade esquerda foi utilizada nesta dilatação. Como resultado temos uma região borrada
formando um único componente conexo para cada linha do texto. Assim a região das linhas de texto da imagem
são identicadas, 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 imagem
dilatada, contendo as regiões das linhas como descrito na seção anterior.
A informação contida na imagem dilatada é usada para a identicação espacial das linhas, permitindo a segmentação dos caracteres da imagem binarizada em ordem seqüencial, considerando que o texto esteja na orientação
retrato.
A segmentação dos caracteres pode ser vista como uma tarefa que busca a decomposição de uma imagem
em uma seqüência de sub-imagens contendo símbolos individuais. No trabalho de Casey e Lecolinet [2], são
apresentados 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 classicados com base nas características dos caracteres, ou
seja, 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 casam
com classes no alfabeto. Baseando-se muitas vezes em análise sintática e/ou semântica das palavras
reconhecidas.
• Métodos Holísticos, no qual a busca pelo reconhecimento de palavras como um todo, evitando a necessidade
de segmentação dos caracteres.
Seguindo esta classicação, foi aplicado neste trabalho a estratégia clássica, sendo implementada a extração dos
caracteres pela identicação de componentes conexos (CC).
A abordagem utilizando componentes conexos [4], consiste na identicação de regiões do objeto que estejam
conectadas por uma vizinhança, neste trabalho 4-vizinhança. Após a identicação do CC, o mesmo é extraído
da imagem por meio do menor retângulo ereto que inclui inteiramente o CC, conhecido comumente como caixa
de 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 e
da direita para a esquerda. Quando é encontrado um pixel pertencente ao objeto, ele é rotulado e vericada
sua vizinhança. Os pixels vizinhos com a mesma intensidade são também rotulados como objetos, sendo esse
processo repetido até que não existam mais pixels vizinhos classicados como objeto. Caso o CC gerado pelo
agrupamento desses pixels seja maior que um limiar, nesse trabalho usado empiricamente 2x2, ele é extraído e
enviado 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 identicação desses caracteres foi realizada levando-se em conta o ponto médio da largura do CC, e a busca
vertical por pixels pertencentes ao objeto nesse ponto médio. Uma vez identicados, foram adicionados ao CC.
Nessa etapa também foram identicadas as quebras de linhas e os espaços em branco. As trocas de linhas foram
identicadas quando o limite horizontal da linha dilatada era atingido, enviando um caractere de quebra de linha
diretamente ao arquivo de saída. Os espaços em branco foram identicados de acordo com o número de pixels
percorridos no sentido horizontal sem que exista a identicação de um CC, nesse trabalho usado empiricamente
valor 5, ou seja, se forem identicados 6 pixels na horizontal sem que exista nenhum CC, é enviado um caractere
de 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, como
descrito 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 esse
tipo de reconhecimento não foi abordado nesse trabalho, sendo objetivo apenas o reconhecimento de caracteres
impressos.
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 único
caractere) obtida na fase de segmentação e devolve um 'vetor de características' (descrito mais adiante). Nesta
fase, o objetivo é calcular três tipos de informações:
(c1 ) momento central normalizado de inércia;
(c2 ) codicação radial para o total de transições;
(c3 ) codicação radial diferencial.
O cálculo do momento de inércia (c1 ) foi baseado na seguinte fórmula:
I=
N
X
((xi − Cx )2 + (yi − Cy )2 )
i=1
onde (Cx , Cy ) são as coordenadas (aproximadas) do centro do menor círculo que contém o caractere, N é o
total de pixels pertencentes ao caractere e (xi , yi ), para i = 1 . . . N , são as coordenadas destes pixels. O valor
de (c1 ) é o momento de inércia normalizado, obtido pela divisão de I por N 2 .
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, partindo 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 azuis
nã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 ) é
denido pela fórmula:
d1 − d2
d
onde 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ções
partindo de pixels de dentro para fora da letra. Para obter (c3 ), em cada círculo, os arcos A1 e A2 estão indicados em
azul.
Note que as três informações acima são baseadas no centróide do caractere com o objetivo de extrair características robustas à rotação. Além disso, estas informações são normalizadas pelo tamanho (seja pelo tamanho do
caractere ou pelo tamanho do círculo), resultando assim em características robustas a mudanças de escala. Com
estas informações, foi denido 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:
S k = (sk1 , sk2 , . . . , skM )
(3)
em que ski são os escalares que inuenciarã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 codicação radial
(total de transições e diferencial, respectivamente) para cada um dos M2−1 círculos.
acho que aqui faltou indicar que usamos mais caracteristicas para assim evitar, de certo modo, a
invariâ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 usaram
letras em maiúsculo, pois as rotações entre elas não tem correlação. Esse é o ponto fraco da nossa
implementação. Alguém poderia argumentar: "tudo bem, usam caracteristicas topológicas para
ter invariância a rotação, mas depois colocando esas novas características esquecem da primeira
parte..."... 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 ) apresentado 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-resposta
por:
S k = (sk1 , sk2 , . . . , skM , skM +1 )
(4)
em que si , . . . , sM são os escalares que denem 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):
k
θik = 2π(1 + e(µ−si )/σ )−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 mapeia
cada estímulo ski a valores de fase entre 0 e 2π 3 .
3 Essa é 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 treinamento
está mostrada na Tabela 1. Para cada amostra k são extraídas as M características Sik , com i = 1, . . . , M
(Seção 2.2). As fases θik correspondentes às características são calculadas mediante a Equação 5. Tais valores
são usados na etapa de reconhecimento do caractere.
Amostra
1
2
..
.
N-1
N
S11
S12
Características
1
...
SM
2
...
SM
S1N −1
S1N
(µ1 , σ1 )
...
...
...
N −1
SM
N
SM
(µM , σM )
θ11
θ12
Fases
...
...
1
θM
2
θM
θ1N −1
θ1N
...
...
N −1
θM
N
θM
Classe
1
SM
+1
2
SM
+1
..
.
N −1
SM
+1
N
SM
+1
Tabela 1: Domínios dos estímulos, da fase e resposta.
2.6 Classicaçã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 ) para
cada característica.
Assim, o mínimo valor das N amostras de treinamento com o padrão de entrada será a
qP
M
k
k
k
2
resposta:
(θ
i=1 i(exp) − θi(t) ) , isto é, a classe atribuída ao novo padrão será SM +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 os
mé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 aplicadas na vericação da estabilidade de modelos [6]. Seu funcionamento consiste em dividir o conjunto total de
amostras em dois subconjuntos: treinamento e teste, mutuamente exclusivos como mostra a Figura 6. O número
k representa a quantidade de execuções e conseqüentemente o número de divisões das amostras em treinamento
e teste, que serão usadas durante a validação. Sendo o resultado de cada validação a média obtida durante as
execuçõ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 uma
amostra ao conjunto de teste e todas a restantes são atribuídas ao conjunto de treinamento [1]. Assim, sua
aplicação neste trabalho faz uso de 48 linhas de amostra para o treinamento e apenas uma para teste. Essa
validação também pode ser vista como uma validação k -validação cruzada, sendo k denido como o tamanho
do conjunto de amostras. A representação gráca do funcionamento da validação deixa-um-fora pode ser
observada na Figura 7. Dessa forma, essa validação fornece uma estimativa de erro para cada uma das amostras
do conjunto. Uma observação importante nessa validação é que todas as amostras disponíveis devem passar pelo
menos uma vez pelo conjunto de teste, isto é, as amostras são combinadas para que todas sejam aproveitadas
pelo treinamento e teste pelo menos uma vez. Vale destacar que a maior desvantagem desse método é o tempo
computacional usado para sua execução em relação à validação cruzada generalizada, e os resultados obtidos
sobre a validação dos dados são superestimados, ou seja, fornece uma previsão pessimista sobre o conjunto de
dados 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 de
desempenho entre a nossa implementação OCR com os demais programas. Selecionamos quatro programas
OCRs 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 texto
obtido pela digitação manual (M é o 'gabarito'). Primeiro calculou-se uma subseqüência máxima4 S entre A e
M . A taxa de acerto é obtida pela divisão de |S| por |M |, onde |S| denota o tamanho da subseqüência máxima
encontrada 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 e
344.png dadas como entrada para este EP.
Programa OCR
GNU Ocrad
GOCR 0.41
SimpleOCR 3.1
Cuneiform OCR 6.0
Nosso OCR
Acerto 343
70.21%
69.82%
83.29%
90.86%
95.59%
Acerto 344
66.80%
70.12%
81.02%
85.60%
84.93%
Em nosso OCR usamos como treinamento a imagem 343.png e a taxa de acerto obtida para reconhecimento
do texto da própria imagem 343.png foi de 95.59% e obtivemos a taxa de 84.93% para o reconhecimento do
texto da imagem 344.png.
O nosso OCR perde apenas para o Cuneiform aplicado na segunda imagem. Mas um detalhe importante deve
ser mencionado: os quatro OCRs usados nesta comparação são 'genéricos', ou seja, eles rodam sem a necessidade
do 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 tamanho
relativo de cada linha em relação ao texto todo. Na média nal acumulada: começa igual a primeira taxa de
acerto e a partir daí é calculada a taxa média de acerto entre as linhas já processadas, sendo o resultado nal
a média de acerto do classicador.
• Validação cruzada generalizada: (Figura 10)
Nessa validação foi denido k = 3, i.e. a validação é realizada utilizando 1/3 das linhas para teste e 2/3
para treinamento, sendo executada 3 vezes. A gura exibe os erros obtidos para o reconhecimento de cada
uma das linhas.
• Validação deixa-um-fora: (Figura 9)
Na Tabela 2 mostramos as taxas de acerto médio ponderada e acumulada.
4
Um 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
Cruzada
Deixa-um-fora
Bootstrap
Taxa de acerto
Média ponderada Média acumulada
0.65377
0.63179
0.65608
0.57892
...
...
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 na
implementaçã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 o
nosso 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 ser
aplicada uma heurística para melhorar a eciência da extração. Uma heurística sugerida seria armazenar
os últimos três caracteres reconhecidos, e para cada caractere, as duas outras possibilidades (caracteres
classicados em 2 e 3 lugares para a imagem contida no CC) e usar essas informações por meio de análise
semâ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 reconhecimento de caracteres com alta resolução, como podemos perceber no artigo. Porém, ao utilizar uma imagem
de um livro, onde cada letra apresenta uma resolução baixa, a extração de caracteres se mostra deciente. As
características extraídas são invariantes a rotação, translação e escala. Como resultado da baixa resolução das
imagens utilizadas, ocorreram problemas como a confusão entre as letras u e n e as letras q e b. Para resolver
estes problemas extraímos 2 características a mais: o número de pixels do CC que está acima e abaixo de uma
linha média no CC. Com estas novas características no vetor o reconhecimento passou a ser mais preciso e a
nossa taxa de acerto aumentou. Portanto acreditamos que a técnica descrita em [8] seja válida apenas para
caracteres extraídos com uma boa resolução.
Finalmente, foi identicado que a aquisição das imagens de entrada tiveram iluminação não homogênea, gerando
faixas 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 prejudicou/inuenciou negativamente o desempenho do aplicativo OCR. Lembrando com isso que o processo de aquisição/digitalização de imagens deve ser o melhor possível para que as etapas subseqüentes aconteçam o melhor
possí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 Transactions on Pattern Analysis and Machine Inteligence 18 (1996), no. 7, 690706. 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 classication: 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 segmentation
to 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. 11371145. 7
[7] B. Soucek (ed.), Fuzzy, holographic, and parallel intelligence: The sixth-generation breakthrough, Sixth Generation 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 scaleinvariant object recognition, IEEE Transactions on Systems, Man, and Cybernetics, Part C 30 (2000), no. 1,
125130. 2, 3, 5, 6, 11
12

Documentos relacionados