Reconocimiento de Caracteres: Un abordaje invariante a translaci ...
Reconocimiento de Caracteres: Un abordaje invariante a translaci ...
Reconocimiento de Caracteres: Un abordaje invariante a translaci ...
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