22.11.2013 Views

Reconocimiento de Caracteres: Un abordaje invariante a translaci ...

Reconocimiento de Caracteres: Un abordaje invariante a translaci ...

Reconocimiento de Caracteres: Un abordaje invariante a translaci ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a<br />

<strong>translaci</strong>ón, rotación y escala<br />

Jesús P. Mena-Chalco<br />

jmena@vision.ime.usp.br<br />

Departamento <strong>de</strong> Ciência da Computação<br />

Instituto <strong>de</strong> Matemática e Estatística<br />

<strong>Un</strong>iversida<strong>de</strong> <strong>de</strong> São Paulo<br />

II Congreso <strong>de</strong> Ingeniería e Investigación Científica - 2006<br />

<strong>Un</strong>iversidad Tecnológica <strong>de</strong>l Perú<br />

10/11/2006


El problema<br />

Reconocer los caracteres <strong>de</strong><br />

una imagen dada como entrada<br />

y extraer el texto para un archivo<br />

texto editable.<br />

Imágenes <strong>de</strong> entrada en niveles<br />

<strong>de</strong> gris, con contenido dispuesto<br />

horizontalmente y <strong>de</strong> arriba para<br />

abajo.<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


¿Sistema <strong>de</strong> reconocimiento <strong>de</strong> patrones?<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


Contenido<br />

1. Método simplicado <strong>de</strong> un sistema <strong>de</strong> reconocimiento <strong>de</strong> patrones.<br />

2. Extracción <strong>de</strong> características.<br />

3. Entrenamiento.<br />

4. <strong>Reconocimiento</strong> / Clasificación / Test.<br />

5. Resultados.<br />

6. Conclusiones.<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


¿Cómo reconocer un caracter?<br />

El reconocimiento <strong>invariante</strong> <strong>de</strong> objetos (IOR,<br />

invariant-object recognition) permite i<strong>de</strong>ntificar un<br />

objeto in<strong>de</strong>pendiente <strong>de</strong> su posición (trasladada o<br />

rotacionada) y tamaño (gran<strong>de</strong> o pequeño) [CJ01].<br />

Gran variedad <strong>de</strong> <strong>abordaje</strong>s propuestos:<br />

Técnicas ópticas.<br />

Análisis basados en <strong>de</strong>scriptores <strong>de</strong> Fourier.<br />

Mo<strong>de</strong>los <strong>de</strong> re<strong>de</strong>s neuronales.<br />

Momentos <strong>invariante</strong>s.<br />

Algoritmos genéticos.<br />

Heurísticas [TMRSSG00].<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


Sistema <strong>de</strong> reconocimiento <strong>de</strong> patrones<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


Extracción <strong>de</strong> características: Heurística<br />

En mo<strong>de</strong>los <strong>invariante</strong>s <strong>de</strong> reconocimiento <strong>de</strong> patrones, esta etapa es <strong>de</strong>finida<br />

como la extracción apropiada <strong>de</strong> características <strong>invariante</strong>s que serán usadas<br />

para el reconocimiento.<br />

A. Momento <strong>de</strong> inércia <strong>de</strong> la imagen, que cuantifica la inércia <strong>de</strong> un objeto<br />

rotacionado consi<strong>de</strong>rando su distribución <strong>de</strong> masa.<br />

I = m 1 r 2 1 + m 2 r 2 2 + . . . + m N r 2 N<br />

El momento <strong>de</strong> inércia <strong>de</strong>pen<strong>de</strong> <strong>de</strong> la posición <strong>de</strong>l eje <strong>de</strong> rotación y <strong>de</strong> la figura,<br />

siendo <strong>invariante</strong> a <strong>translaci</strong>ón y rotación.<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


Extracción <strong>de</strong> características: Heurística<br />

A. Momento <strong>de</strong> inércia <strong>de</strong>l caracter. <strong>Un</strong>a imagen bidimensional pue<strong>de</strong> ser<br />

representada como una función contínua f(x, y) don<strong>de</strong> cada pixel sea consi<strong>de</strong>rado<br />

una partícula con masa igual al valor <strong>de</strong> la intensidad <strong>de</strong>l pixel.<br />

Para imágenes binarias el momento <strong>de</strong> inércia con respecto a su centrói<strong>de</strong> es:<br />

I =<br />

N∑<br />

d 2 i =<br />

i=1<br />

N∑<br />

((x i − C x ) 2 + (y i − C y ) 2 )<br />

i=1<br />

don<strong>de</strong> (C x , C y ) son las coor<strong>de</strong>nadas <strong>de</strong>l centrói<strong>de</strong> <strong>de</strong>l caracter, N es el total<br />

<strong>de</strong> pixels, y (x i , y i ), para i = 1 . . . N, son as coor<strong>de</strong>nadas <strong>de</strong> los pixels.<br />

Invariáncia a escala: I N = I/N 2<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


Extracción <strong>de</strong> características: Heurística<br />

B. Características topológicas <strong>invariante</strong>s, basado en el hecho que el círculo<br />

es la única figura geométrica que es perfectamente <strong>invariante</strong> a rotación.<br />

Son usados círculos igualmente espaciados y centrados en (C x , C y ).<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


Extracción <strong>de</strong> características: Heurística<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


Entrenamiento<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


Entrenamiento<br />

En esta etapa se usa el algoritmo <strong>de</strong>l vecino holográfico mas próximo (HNN,<br />

Holographic nearest neighbor).<br />

Dado un conjunto <strong>de</strong> entrenamiento S, representamos el vector <strong>de</strong> características<br />

<strong>de</strong>l elemento k como:<br />

S k = (c k 1, c k 2, . . . , c k M, r k )<br />

don<strong>de</strong> c 1 , . . . , c M son as características extraídas, y r k es la respuesta asociada<br />

(clase).<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


Entrenamiento<br />

Cada una das características é mapeada a variables polares usando la función<br />

<strong>de</strong> relación sigmoidal:<br />

θ k i = 2π(1 + e (µ−sk i )/σ ) −1<br />

don<strong>de</strong> µ y σ son respectivamente el promédio y la <strong>de</strong>sviación estándar <strong>de</strong> cada<br />

una <strong>de</strong> las características.<br />

Permite mapear cada característica s k i<br />

a valores <strong>de</strong> fase entre (0, 2π) [Sou92].<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


Entrenamiento<br />

Representación tabular <strong>de</strong> las características, valores <strong>de</strong> fase y clase <strong>de</strong> las<br />

muestras <strong>de</strong>l conjunto <strong>de</strong> entrenamiento:<br />

Caracter Clase Características Fases<br />

1 rM+1 1 c 1 1 . . . c 1 M θ1 1 . . . θM<br />

1<br />

2 rM+1 2 c 2 1 . . . c 2 M θ1 2 . . . θM<br />

2<br />

. .<br />

N-1 r N−1<br />

M+1<br />

c1 N−1 . . . c N−1<br />

M<br />

θ N−1<br />

1 . . . θ N−1<br />

M<br />

N rM+1 N c N 1 . . . c N M θ1 N . . . θM<br />

N<br />

(µ 1 , σ 1 ) . . . (µ M , σ M )<br />

θ k i = 2π(1 + e (µ−sk i )/σ ) −1<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


<strong>Reconocimiento</strong><br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


<strong>Reconocimiento</strong><br />

Cuando un nuevo patrón es presentado, <strong>de</strong>be ser seleccionado el caracter<br />

mas próximo (similar) <strong>de</strong>l conjunto <strong>de</strong> entrenamiento.<br />

Pue<strong>de</strong> ser calculada la distancia mínima entre el nuevo patrón (θ t ) y los valores<br />

obtenidos en la fase <strong>de</strong> entrenamiento (θexp) para cada característica.<br />

De esa forma el mínimo valor <strong>de</strong> las N muestras <strong>de</strong>l conjunto <strong>de</strong> entrenamiento<br />

con el nuevo patrón <strong>de</strong> entrada será la respuesta:<br />

∑<br />

√ M (θi(exp) k − θk i(t) )2<br />

i=1<br />

i.e., la clase atribuída al nuevo patrón será r k M+1 .<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


<strong>Reconocimiento</strong><br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


Imágenes utilizadas<br />

Entrenamiento: 343 (828x1300)<br />

<strong>Reconocimiento</strong>:344 (830x1300)<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


Resultados<br />

Fue realizada una comparación <strong>de</strong> <strong>de</strong>sempeño entre la implementación <strong>de</strong><br />

OCR con algunos programas disponibles en el internet:<br />

GNU Ocrad (http://www.gnu.org/software/ocrad/ocrad.html)<br />

GOCR 0.41 (http://jocr.sourceforge.net/)<br />

SimpleOCR 3.1 (http://www.simpleocr.com/)<br />

Cuneiform OCR 6.0 (http://www.ocr.com/)<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


Resultados<br />

Taza <strong>de</strong> acierto:<br />

Sea A el texto extraído computacionalmente, y M o texto obtenido por la digitación<br />

manual. Primero se calculó una subsecuencia <strong>de</strong> longitud máxima S<br />

entre A e M [CLR90].<br />

La taza <strong>de</strong> acierto fue obtenida por |S|<br />

|M|<br />

, don<strong>de</strong> |S| <strong>de</strong>nota el tamaño <strong>de</strong> la subsecuencia<br />

máxima encontrada y |M| el tamaño <strong>de</strong>l texto (solución).<br />

Programa OCR Imagen 343 Imagen 344<br />

GNU Ocrad 70.21 % 66.80 %<br />

GOCR 0.41 69.82 % 70.12 %<br />

SimpleOCR 3.1 83.29 % 81.02 %<br />

Cuneiform OCR 6.0 90.86 % 85.60 %<br />

Implementación <strong>de</strong>l OCR 95.59 % 84.93 %<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


Resultados<br />

-----------------------------------------------------------------------------<br />

Maria Irma riu.<br />

Maria rma riu.<br />

Maria lrma riu.<br />

Diferecia: 1 / 15<br />

-----------------------------------------------------------------------------<br />

que, espaventada. fugiu. O galo pedrês investiu, <strong>de</strong> porrete. Empavesado e<br />

que, espaventada fugiu. O galo pedrês investiu, <strong>de</strong> porrete. Empavesado e<br />

que, espaventada, fugiu. O galo pedrês investiu, <strong>de</strong> porrete. Empavesado e<br />

Diferencia: 1 / 73<br />

-----------------------------------------------------------------------------<br />

berto... Vem aqui no galinheiro, só porque gosta <strong>de</strong> confusão e algazarra.<br />

e o... em aqui o galinheiro, rq e gosta <strong>de</strong> confusão e alga rra.<br />

heno... Aem aqui uo galinheiro, a Mrqne gosta <strong>de</strong> confusão e algaMrra.<br />

Diferencia: 12 / 73<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


Conclusiones<br />

El método utilizado usa información topológica (heurística) para la extracción<br />

<strong>de</strong> características.<br />

El trabajo realizado por Torres-Men<strong>de</strong>z y colaboradores [TMRSSG00] presenta<br />

buenos resultados para el reconocimiento <strong>de</strong> caracteres con alta resolución,<br />

así un número mayor <strong>de</strong> círculos concéntricos permite obtener<br />

características con mejor resolución.<br />

La invariáncia a rotación aplicada a reconocimiento <strong>de</strong> caracteres permite<br />

reconocer letras diferentes como únicas. Por ejemplo: u-n, p-b-q-d, etc.<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala


Referencias<br />

[CJ01]<br />

[CLR90]<br />

L. F. Costa and R. M. Cesar Jr. Shape Analysis and Classification: Theory and<br />

Practice. CRC Press, Inc., Boca Raton, FL, USA, 2001.<br />

T. H. Cormen, C. E. Leiserson, and R. L. Rivest. Introduction to Algorithms. The<br />

MIT Press, 1990.<br />

[Sou92] B. Soucek, editor. Fuzzy, Holographic, and Parallel Intelligence: The Sixth-<br />

Generation Breakthrough. Sixth Generation Computer Technologies Series.<br />

John Wiley and Sons, New York, 1992.<br />

[TMRSSG00] L. A. Torres-Men<strong>de</strong>z, J. C. Ruiz-Suárez, L. E. Sucar, and G. Gómez. Translation,<br />

rotation, and scale-invariant object recognition. IEEE Transactions on Systems,<br />

Man, and Cybernetics, Part C, 30(1):125–130, 2000.<br />

<strong>Reconocimiento</strong> <strong>de</strong> <strong>Caracteres</strong>: <strong>Un</strong> <strong>abordaje</strong> <strong>invariante</strong> a <strong>translaci</strong>ón, rotación y escala

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!