Está en la página 1de 104

i

UNIVERSIDAD TECNOLGICA DEL PER


FACULTAD DE INGENIERA ELECTRNICA Y MECATRNICA
ESCUELA DE INGENIERA ELECTRNICA


DETECTOR DE BILLETES PARA
PERSONAS CON DISCAPACIDAD
VISUAL

GUZMN BRCENA, SHEYLLA

ASESOR: HUAMANI NAVARRETE, PEDRO

Tesis para optar el Ttulo de Ingeniero Electrnico
Lima Per
2012
ii





iii



(A mis Padres, mi abuela, y
amigos, que me apoyaron
mucho.)
iv

AGRADECIMIENTOS
Me gustara tener palabras que expresan mi gratitud hacia quienes han
participado directa e indirectamente del desarrollo de este proyecto; sin
embargo hare lo posible por mencionarlos a todos. Gratitud es lo que ms
tengo a Dios, por permitirme vivir esta vida que me consiente seguir en el
camino de crecimiento y evolucin, que es el camino que hacemos todos cada
da, a cada instante que nos pone a prueba la fortaleza y conviccin que
debemos tener; como tambin fe en nosotros mismos y aun ms, fe en Dios.

Mi agradecimiento especial es para mis padres, Rolando y Graciela, como
tambin alguien muy querida; mi abuela, Rosa quien ha influido de manera
continua sin descanso desde los comienzos de mi existencia y que es en gran
medida responsable de mis pasos hasta el da de hoy. Debo decir en honor a
la verdad, que mi ta Jenny ha sido quien me motivo a enfocar mi tesis a una
poblacin minoritaria, como lo es; la de los no videntes, dado que a diario me
muestra que esa minora la componen personas, cada una es hermano,
padre, madre, abuela, primo, prima de alguien y que solo por ese alguien y
su ser querido, ha valido la pena realizar sta tesis.

Porque la amistad es sincera y se demuestra a cada momento gracias Gilbert
por ser el amigo inigualable que siempre una persona deseara tener,
innumerables son las veces que has estado acompandome y ayudndome
ponindote a disposicin en nombre de esa amistad de aos que se ha
forjado compartiendo casi toda la vida en la universidad y que espero siempre
mantenerla, porque personas como t, debo reconocer que son contados. Por
su compaa, paciencia y constancia, est siempre presente en mi mente
Jos, quien ha inspirado y motivado mis pequeos logros. Mi lealtad es
especial para l por amarme tal y como soy.

La educacin y la cultura son la base del progreso y de la felicidad de los
pueblos; gracias profesor Noel por su constancia y comprensin de seguir
paso a paso la realizacin del proyecto.
v

RESUMEN
En el proyecto, se presenta uno de los problemas ms delicados de la
poblacin no tan considerado por la sociedad en el pas, las personas con
discapacidad visual son parte de la sociedad que encuentra un desafo diario
en el manejo de dinero, tema que en el entorno global actual es de inters
general. Con respecto a este asunto, el reconocimiento del valor de las
monedas por parte de personas no videntes es factible, al constituirse estas
monedas de distintos tamaos; sin embargo este no es el caso para los
billetes.

Establecido y reconocido el problema de estas personas con discapacidad
visual, se corrobora la necesidad de contar con algn tipo de dispositivo
autnomo para el reconocimiento de la denominacin de los billetes. De este
modo, haciendo un anlisis de la comodidad y preferencias de estas personas,
el requerimiento importante hace referencia a los telfonos celulares, los
cuales tienen gran penetrabilidad en el mercado actual.

El trabajo toma como fundamento terico las tcnicas de Procesamiento Digital
de imgenes en especial al reconocimiento de imgenes. Este sistema ser
capaz de ofrecer la opcin del reconocimiento de los billetes de comn
circulacin en el Per: diez, veinte, cincuenta, y doscientos Nuevos Soles;
utilizando una aplicacin de software para telfono mvil desarrollado en
NetBIOS 7.0.1 en cdigos del lenguaje java as como tambin el uso del
sistema operativo Symbian SO. Las pruebas se realizaron de preferencia en
un telfono celular Nokia 5800d-1 XpressMusic por su resolucin de cmara.







vi


Netbeans
Software
Symbian SO
Java
Nokia 5800d-1
Cmara


vii

ABSTRACT

In the project, presents one of the most delicate problems of the population
as seen by society in the country, people with visual disabilities are part of
society that is a daily challenge in managing money, subject to the current
global environment is of general interest. On this issue, recognizing the value of
the coins by blind people is feasible, to become the coins of different sizes, but
this is not the case for the tickets.

Established and recognized the problem of these people with visual
impairments, it is confirmed the need for some kind of stand-alone device for
the recognition of the denomination of the bills. Thus, analyzing the
convenience and preferences of these people, the important requirement
refers to cell phones, which have great penetration in the market today.

The theoretical work builds upon the techniques of Digital Image Processing in
particular the recognition of images. This system will be able to offer the option
of recognizing the common traffic tickets in Peru: ten, twenty, fifty and two
hundred Dollars, using a software application for mobile phone developed in
Netbeans 7.0.1 in java language codes as well as using the Symbian OS
version S60 operating system. The preference tests were performed on a cell
phone Nokia5800d-1 XpressMusic camera for its resolution.










viii

Netbeans
Symbian SO
Java
Recognition of images













ix

NDICE GENERAL
ACTA DE SUSTENTACIN ............................................................................ ii
DEDICATORIA ............................................................................................... iii
AGRADECIMIENTOS .................................................................................... iv
RESUMEN ......................................................................................................v
ABSTRACT .................................................................................................. viii
NDICE GENERAL ......................................................................................... ix
NDICE DE FIGURAS .................................................................................... xi
INTRODUCCIN ........................................................................................... 1
Justificacin y motivacin ...................................................................... 1
Contribuciones de la investigacin ........................................................ 1
Estado del arte ....................................................................................... 1
CAPTULO 1: PROCESAMIENTO DIGITAL DE IMAGENES ........................ 3
1.1 Fundamento terico ....................................................................... 3
1.1.1 Procesamiento de imgenes digitales ..................................... 3
1.1.2 Proceso de bajo nivel ............................................................... 4
Representacin de una imagen en cdigos RGB .................... 4
Adquisicin de una imagen digital ........................................... 6
Conversin de una imagen RGB a escala de grises ............... 6
Escalamiento de imagen ......................................................... 7
Normalizacin de una imagen ............................................... 12
1.1.3 Proceso de nivel medio .......................................................... 18
Segmentacin de la imagen .................................................. 18
Extraccin de contornos ........................................................ 31
1.1.4 Proceso de alto nivel .............................................................. 42
Reconocimiento de patrones ................................................. 42
Reconocimiento ptico de caracteres (OCR) ........................ 44
x

CAPTULO 2: DISEO, SIMULACIN E IMPLEMENTACIN .................... 53
2.1 Diagrama de flujo o mapa conceptual de la investigacin............ 43
2.2 Diseo .......................................................................................... 54
2.3 Simulaciones ................................................................................ 62
2.4 Implementacin ............................................................................ 62
CAPTULO 3: RESULTADOS ...................................................................... 63
3.1 Resultados ................................................................................... 63
Manual del usuario del sistema .................................................... 66
Requerimientos ............................................................................ 67
Especificaciones del equipo ......................................................... 68
Contenido del sistema .................................................................. 69
Gua de instalacin ...................................................................... 70

CONCLUSIN ............................................................................................. 75
Conclusiones ....................................................................................... 75
Trabajos Futuros .................................................................................. 76
REFERENCIAS ............................................................................................ 77
A N E X O S ................................................................................................. 82
Anexo A: MENU DEL FORMATO .............................................................. 833
Anexo B: CAMARA .................................................................................... 834
Anexo C: CONEXION ................................................................................ 837
Anexo D: EVENTOS .................................................................................. 838
Anexo E: GUARDARCOMO ....................................................................... 839
Anexo F: COMPARACIN DE BILLETES ................................................... 90

xi

NDICE DE FIGURAS
Figura 1.1.Diagrama esquemtico del cubo RGB y el cubo a 24 bits .............. 5
Figura 1.2. Ejemplo del proceso de adquisicin de una imagen digital ............ 6
Figura 1.3. Malla original y malla final de la operacin ..................................... 8
Figura 1.4. Proceso de interpolacin para la asignacin del nivel de gris ...... 10
Figura 1.5. Efecto del proceso de normalizacin ........................................... 16
Figura 1.6. Normalizacin de imgenes ......................................................... 18
Figura 1.7. Mscara 3 3 .............................................................................. 21
Figura 1.9. Mascaras de lnea ........................................................................ 21
Figura 1.10.histogramas de nivel de gris que se pueden segmentar ............. 22
Figura 1.11.Histogramas y umbral T para la imagen segmentada ................. 24
Figura 1.12.Funcin de reflectancia ............................................................... 27
Figura 1.13. Ejemplo de clustering para dos variables y tres clusters ............ 31
Figura 1.14. Mscaras de convolucin para el filtro gaussiano ...................... 33
Figura 1.15. Extraccin de objetos ................................................................. 42
Figura 1.16. Aprendizaje ................................................................................ 50
Figura 1.17. Reconocimiento del carcter ...................................................... 51
Figura 1.18. Etapas del Sistema OCR desarrollado ....................................... 52
Figura 2.1. Esquema de flujo de data............................................................. 53
Figura 2.2. Tablero del panel central .............................................................. 54
Figura 2.3. Menu de Capturar ........................................................................ 56
Figura 2.4. Menu de dispositivos con los diferentes formatos ........................ 56
Figura 2.5. Menu de Otros ............................................................................. 56
Figura 2.6. Ventana inicial del localHost ........................................................ 57
Figura 2.7 base de datos de los billetes ......................................................... 58
Figura 2.8 Ventana de la claseInsertar ........................................................ 59
Figura 2.9 Tabla en la base de datos de los billetes almacenados ................ 60
Figura 3.1 Pantalla principal ........................................................................... 63
Figura 3.2 Formatos de seal de la cmara ................................................... 63
Figura 3.3 Imagen captada desde la webcam ................................................ 64
Figura 3.4 Archivo de almacenamiento de la imagen6Error! Marcador no definido.
Figura 3.5 Billete numero 1 para la prueba .................................................... 65
xii

Figura 3.6 Billete numero 2 para la prueba .................................................... 65
Figura 3.7 Simulacin de comparacin en el Netbeans ................................. 66
Figura 3.8 modelo del celular nokia................................................................ 69
Figura 3.9 instalacin de la carpeta proyecto en el celular .......................... 70
Figura 3.10 seleccin de la carpeta Capturefoto ............................................ 71
Figure 3.11 resultado de la operacin que no reconoci el celular ................ 71
Figura 3.12 programa de instalacin del proyecto .......................................... 72
Figura 3.13 instalando el programa ................................................................ 72
Figura 3.14 activacin de la cmara............................................................... 73
Figura 3.15 captura de un billete de 100 soles ............................................... 73











1

INTRODUCCIN
Justificacin y motivacin
Consciente del importante papel que adquieren da a da las nuevas tecnologas
de informacin y de la gran cantidad de tareas cotidianas es necesario poner a
servicio las tecnologas para esta clase de personas especiales.

De esta forma, los mtodos usualmente utilizados por ellos para reconocimiento
de la denominacin de un billete en su posesin los ubican en una situacin
desfavorable, ya sea por la dificultad e incomodidad de los mismos. Es por esta
razn que me impulso a realizar un anlisis en una manera de contribuir y
proporcionar a las personas invidentes y deficientes visuales en el Per,
herramientas que contribuyan a mejorar sus oportunidades de insercin laboral,
a travs de recursos que proporcionen servicios dirigidos a mejorar sus niveles
de acceso a la Sociedad y como consecuencia a un futuro.

Contribuciones de la investigacin
La investigacin puede ser aplicada en el mbito empresarial y domstico para
su beneficio ya que ayudar al desarrollo de aplicaciones para sistemas
microprocesador porttiles, como los telfonos celulares como es este caso y
particularmente la contribucin de alguna forma al mejoramiento de la calidad
de vida de las minoras, como la poblacin de personas con algn tipo de
discapacidad. Este proyecto se justifica por su prctica organizacional porque
es til en su aplicacin que beneficiar a la sociedad de personas con alguna
discapacidad visual dando la seguridad para una mejor calidad de vida laboral.

Estado del arte
Este reporte de investigacin expone el estado de arte acerca del
reconocimiento de patrones, trabaja con base en un conjunto previamente
establecido de todos los posibles objetos (patrones) individuales a reconocer.
Primeramente se presenta el origen, los objetivos, los conceptos bsicos y la

2

importancia del anlisis de textura en imgenes. Se recoge de la literatura, un
grupo de software usado del Reconocimiento de imgenes Digitales. Se expone
desde la aparicin de los algoritmos de Reconocimiento ptico de Caracteres
que han sido muchos los servicios que han introducido estos procesos para
aumentar su rendimiento y otros que se basan completamente en estas
tecnologas.

La tecnologa OCR que permite convertir diferentes tipos de documentos (tales
como los documentos de papeles escaneados, los archivos PDF o las
imgenes de cmaras de fotos digitales), en archivos de formato modificable. .



3

CAPTULO 1: PROCESAMIENTO DIGITAL DE IMGENES

1.1 Fundamento terico
En el proyecto se utilizara como base los procesos digitales de imgenes
(PDI) trata de resolver, mediante sus procesos el mejoramiento de la calidad
o facilitar la bsqueda de informacin.

- Procesamiento de imgenes digitales
- Conversin a escala de grises
- Escalamiento de imagen
- Segmentacin de la imagen
- Extraccin de contornos
- Reconocimiento de patrones
- Reconocimiento ptico de caracteres(OCR)

1.1.1 Procesamiento Digital de Imgenes

El PDI es el conjunto de tcnicas que se aplican a las imgenes digitales con
el objetivo de mejorar la calidad o facilitar la bsqueda de informacin (1). Un
sistema como el que se requiere en el presente proyecto, adoptara esta
teora mediante la implementacin de varios de sus procesos, diagramados
de forma general en la que da por una Imagen original que pasa por una
adquisicin de la imagen digital para luego entrar al procesamiento digital de
la imagen central. Dentro de este procesamiento existen etapas que definen
la informacin del proceso de visin como son:

- Procesamiento de bajo nivel: conversin a escala de grises y
escalamiento de imagen
- Procesamiento de nivel medio: segmentacin de la imagen y extraccin
de contornos
- Procesamiento de alto nivel: reconocimiento de patrones


4

Todos estos procedimientos que engloban el procesamiento digital de la
imagen recolecta esta informacin para tomar las acciones que requieren en
el proyecto.

El procesamiento de imagen puede considerarse como un tipo especial del
procesamiento digital en dos dimensiones, el cual se usa para revelar
informacin sobre imgenes y que involucra hardware, software y soporte
terico. El trmino imagen se rever a una funcin bidimensional de
intensidad de luz f(x; y), donde X y Y denotan las coordenadas espaciales y
el valor de f en cualquier punto (x; y) es proporcional al brillo (o nivel de gris)
de la imagen en ese punto.

Una imagen digital es una imagen f(x; y) que ha sido discretizada en
coordenadas espaciales y en brillo. Una imagen digital puede considerarse
como una matriz cuyos ndices del rengln y columna identican un punto en
la imagen y el correspondiente valor del elemento de la matriz que identica
el nivel de intensidad de luz en ese punto. Los elementos de tal arreglo digital
son llamados elementos de imagen, elementos de pintura, pixeles o pels
1
.


1.1.2 Proceso de bajo nivel

Representacin de una imagen en cdigos RGB

El modelo RGB consta de tres componentes primarios de cada color en el
espectro
2
, este modelo est basado en un sistema de coordenadas
cartesianas que forman un cubo que en sus 3 esquinas estn los valores
RBG. En las dems 3 esquinas del cubo se encuentran los valores de cian,
magenta y amarillo; y en el origen est el color negro como tambin en el

1
pixels o pels; abreviaturas del ingls picture elements
2
RBG son las siglas de los que componentes primarios del espectro que consta de tres colores en este
modelo (rojo, verde y azul).

5

vrtice ms alejado del color negro se halla el blanco como muestra la
siguiente figura 1. (1)



Figura 1.1.Diagrama esquemtico del cubo RGB y el cubo a 24 bits

En el modelo RGB se representa 3 imgenes y cada imagen est
compuesta de un color primario, en el espacio RGB el nmero de bits que se
utiliza para representar cada pixel se llama profundidad de pixel.

Una imagen consta de 8 bits y cada pixel de color RGB tiene una profundidad
de 24 bits
3
. Una imagen a color puede ser adquirida utilizando 3 filtros,
sensitivos al rojo, verde y azul, respectivamente. Cuando observamos una
escena de color con una cmara moncroma equipada con uno de estos
filtros, el resultado es una imagen moncroma cuya intensidad es
proporcional a la respuesta del filtro. Si se repite el proceso con cada filtro se
producen 3 imgenes moncromas que son los componentes RGB de la
escena en color
4
.

Una imagen digital se obtiene mediante un adecuado proceso de adquisicin
de datos, que captura la informacin de la imagen original situada en nuestro
espacio tridimensional y la entrega en una matriz de valores de dos
dimensiones, que representara a la imagen digital (1). Este proceso es

3
El nmero total de colores en una imagen RGB de 24 bits es de (2
8
)
3
= 16,777,216
4
En la prctica los sensores RGB integran el proceso en un solo dispositivo

6

llevado a cabo mediante sistemas de adquisicin de imgenes, muchas
veces ya incorporados en los sistemas microprocesados; usualmente, son
las cmaras.

Adquisicin de una imagen digital

Esta se representa dentro de un sistema especialmente como la matriz de m
x n elementos; es (2) decir que m filas y n columnas y cada elemento de
esta matriz constituye la imagen digitalizada al cual se conoce como pixel y
tiene una luminosidad de acuerdo al valor numrico asignado del punto que
correspondiente de la imagen original en una escena captada, generalmente
est basada en un rango de 0 a 255, es decir 8 bits; donde el negro
representa el 0 y el blanco absoluto es 255. El nivel gris se encuentra en una
luminosidad conocida como intensidad en el punto como muestra la siguiente
grafica, figura 2. (3)


Figura 1.2. Ejemplo del proceso de adquisicin de una imagen digital

Conversin de una imagen RGB a escala de grises

Consiste en una imagen RGB que puede transformar la informacin de los
tres canales de color rojo, verde y azul, a un solo canal de intensidad de gris
mediante la conversin de escala a grises.

7


Se establece de una sola imagen digital con informacin equivalente de la
imagen real a una matriz de valores de intensidad. Existen varias formulas de
realizar dicha conversin, entre las ms comunes se tiene:

- NTSC: esta frmula estndar de conversin es la ms utilizada para el
clculo de la iluminacin efectiva de cada pixel. (4).

(1.1)

- Promedio de RGB: esta frmula consiste en el promedio de los tres
colores de RGB y es la ms sencilla y practica de obtener el nivel gris.

(1.2)

- Cuando las imgenes son tomadas con cmaras digitales de telfonos
mviles presenta a menudo un efecto que los tres canales de color
difieren en su calidad, contraste y nitidez por lo que se formula esta
ecuacin para la conversin a escala gris. (5)

(1.3)

Escalamiento de imagen

Una nueva tcnica para modificar el tamao de las imgenes, de manera
simple, tambin es llamado redimensionado que junto a la traslacin y
rotacin se encuentran dentro de las transformaciones geomtricas (2) para
operar modificando las coordenadas especiales de la imagen. La
transformacin de escalamiento implica un cambio en la disposicin de los
pixeles respecto a un sistema de coordenadas. Para el anlisis se establece

8

de una adecuada nomenclatura de la distribucin espacial de los pixeles en
dos entornos, estos son llamados malla original y malla final.

La malla original es la matriz de resolucin original m x n y la malla final es
aquella de resolucin final m
f
x n
f
. Estas matrices representan a la imagen
original de entrada de la operacin (para este caso es una imagen en escala
de grises), y la resultante es la imagen de la operacin es decir la imagen
escalada.

Se presentan dos imgenes como en la figura 3 (2) mostrada; en ambas
imgenes los pixeles que se asignan valores de intensidad de gris, estas
asumen estructuras matriciales que son espacialmente identificados por cada
una de sus coordenadas, referenciadas con ndices, que son representadas
como (i, j) y en parte final como (q, r).


Figura 1.3. Malla original y malla final de la operacin de escalamiento y
reduccin

Este proceso se realiza en general mediante los siguientes pasos:

A partir de las coordenadas de cada uno de los pixeles (q, r) de la malla
final, se determina un conjunto de coordenadas (i, j) que corresponden a
los pixeles seleccionados de la malla original para asignarse a los de la

9

malla final de destino. Esto se realiza mediante una funcin de
transformacin (i, j) =((q, r)) que es particular de cada distinta
operacin geomtrica.

Determinar los valores de las intensidades a ser asignadas a las
coordenadas de cada uno de los pixeles en la malla final (q, r), a partir de
los valores de intensidad conocidos, de la malla original, de los pixeles
en las coordenadas (i, j) que estn determinadas. Esto es necesario
pues, el conjunto de coordenadas (i, j) no siempre se corresponde con
valores existentes coordenadas (i, j), de tal forma que se necesita un
criterio para la seleccin de la intensidad de gris a ser asignada en cada
coordenada (q, r) de la malla final, el ms conveniente para mantener la
geometra de la operacin. Esta operacin se conoce como interpolacin.

La operacin de escalamiento en cuestin es una variacin del tamao de la
imagen original, que se puede realizarse a los largo de cualquiera de los ejes
coordenados de filas y columnas como la figura anterior como la figura se
encuentra en el plano del eje x y el eje y entonces el escalado es mediante
su factor de la forma de escala S
X
(direccin x) y S
y
(direccin y).cuando el
factor tome los valores entre 0 y 1 se producir una reduccin de la imagen y
cuando sean los valores mayores que 1, se produce un aumento en la
imagen. Para esta operacin se determina mediante las siguientes
ecuaciones.

q = S
X
i (1.4)

r = S
y
j (1.5)

Para los factores que implican en las aplicaciones de las ecuaciones
anteriores, se determinan mediante la relacin por cociente existente entre
las dimensiones de la malla final, contenedoras de la imagen escalada, y la
malla original de la imagen de entrada:


10

(1.6)
(1.7)

Una vez ya obtenidas los valores de la nueva imagen con las coordenadas
asignadas se calcula las coordendas de cada pixel de la malla
final, seguidamente se obtienen las coordenadas pseudo discretas ,
mediante la aplicacin de las ecuaciones 1.4 y 1.5 de la siguiente manera.

(2.8)
De esta forma se tiene un conjunto de x coordenadas , una para
cada de la malla final, que corresponda a valores de coordenadas en la
malla original.

Para determinar los valores enteros de coordenadas correspondiente a
cada coordenada para la seleccin de pixeles adecuados se opera
mediante la interpolacin
5
.

En este caso la operacin, asignara en la malla final al pixel de posicin
un valor de gris en funcin de los pixeles que rodean al punto de posicin
en la malla original, como muestra la figura 4.



5
Interpolacin; esta operacin se puede considerar como el clculo del valores de la intensidad de un
pixel, en una posicin cualquiera, como una funcin de los pixeles que le rodean.

11


Figura 1.4. Proceso de interpolacin para la asignacin del nivel de gris
6


Este tipo de interpolacin supone que el pixel al ser interpolado toma el
mismo valor de intensidad que el ms cercano de entre los cuatro que le
rodean asignndole de esta forma, al pixel de la malla final, el nivel gris
del vecino ms cercano al punto superpuesto en la malla original; en
este caso del ejemplo el valor de intensidad asignado es a .

La determinacin de este vecino ms cercano se la puede realizar en base a
ciertos criterios, de los cuales, uno de los ms usados es la realizacin de un
redondeo de los valores de las coordenadas , mediante la relacin de
redondeo ms comn de la forma siguiente:

; Donde: (2.8)

Cabe destacar que la implementacin de una operacin de interpolacin
puede realizarse con mtodos ms formales
7
como los mtodos ms
heursticos, siempre y cuando se mantenga la filosofa de la asignacin de un
nivel de gris de los pixeles.

La aplicacin de estas operaciones sobre una imagen en escala de grises
completa las posiciones de la malla final para producir el mismo resultado
esperado que es la imagen escalada.

Con los programas de retoque se puede manipular el tamao de las fotos, su
orientacin, o hacer que ocupen menos espacio en el disco duro. Si bien se
trata de recursos muy cmodos, se debe valorar hasta qu punto se hace

6
Existen varios tipos de interpolaciones; el utilizado en el ejemplo de la figura 5. es la interpolacin por
vecino ms prximo tambin llamado interpolacin de orden cero (10 pg. 326).
7
Los mtodos ms formales pueden ser como la aplicacin de ncleos matemticos de interpolacin.

12

uso de ellos, su empleo no es gratuito para la imagen, que puede perder
buena parte de su calidad visual.

Cuando un escner, una cmara o un programa aplican tcnicas de
interpolacin, lo hace para cambiar la cantidad o la orientacin de los pxeles.
Al hacer un remuestreo, a la cuadrcula inicial se superpone otra de distinto
tamao o frecuencia, y a partir de los valores de color originales se calculan
los pxeles nuevos. Con lo cual, la primera regla a tener en cuenta es que no
se debe remuestrear ms veces de las necesarias, porque no es una
operacin reversible. As en una foto de 300 ppp, se remuestrea en cada
paso a la mitad de su resolucin: 150, 70 y 30 ppp. Al mantener el tamao
superficial, los pxeles van duplicando su tamao en ancho y alto.

En este punto, se vuelve a usar la misma tcnica para retroceder, al
aumentar de nuevo la resolucin: de 30 a 70 ppp, luego a 150 ppp y,
finalmente, a 300 ppp. Como los pxeles nuevos son calculados y no
proceden de la toma original, no se recupera la misma informacin, el
promediado resultante desdibuja las formas.

Normalizacin de una imagen

Normalizacin de imagen se refiere a la eliminacin de las variaciones de la
imagen (como el ruido, la iluminacin, o la oclusin) que estn relacionados
con las condiciones de adquisicin de imgenes y no son pertinentes a
objeto de identidad. Normalizacin de la imagen se puede utilizar como una
etapa del proceso previo para ayudar a ordenador o la percepcin de objetos
humanos. En este trabajo, un mtodo de normalizacin de la imagen basada
en la clase se propone.

Los objetos de este mtodo estn representados en la base del PCA, y la
informacin mutua se utiliza para identificar irrelevante componentes
principales. Estos componentes son descartados para obtener una imagen
normalizada que no se ve afectada por las condiciones especficas de

13

adquisicin de la imagen. El mtodo se demuestra a producir resultados
visualmente agradables y mejorar significativamente la precisin de los
algoritmos de reconocimiento conocido.

El uso de informacin mutua es una ventaja significativa sobre el mtodo
estndar de los descartes componentes de acuerdo con los valores propios,
ya que corresponden a la variacin y no tienen relacin directa con la
relevancia de los componentes de la representacin. Una ventaja adicional
del algoritmo propuesto es que muchos tipos de variaciones de la imagen
que se manejan en un marco unificado.

Normalizacin de imagen se refiere a la eliminacin de las variaciones de la
imagen (como el ruido, la iluminacin, o la oclusin) que estn relacionados
con las condiciones de adquisicin de imgenes y no son pertinentes a
objeto de identidad. El objetivo es obtener una imagen estndar, sin
artefactos derivados de las condiciones especficas en que se tom una
imagen en particular. Por ejemplo, la iluminacin debe ser neutral, y no el
ruido debe estar presente. Hay dos tipos de variaciones.

La necesidad de normalizacin de la imagen surge por varias razones. En
primer lugar, las variaciones de la imagen descrita anteriormente perturban
gravemente las tareas, tales como el reconocimiento de objetos,
normalizacin de la imagen por lo tanto puede ser una etapa til del proceso
previo para estas tareas. Adems, la normalizacin de la imagen puede
utilizarse para facilitar la percepcin de objetos humanos, por ejemplo, para
ayudar a su reconocimiento.

o Los mtodos actuales de normalizacin

Anlisis de componentes principales (PCA) se aplica con frecuencia a
diversas tareas de procesamiento de imgenes. Sin embargo, su uso se
ha basado en observaciones empricas relacionadas con la magnitud de los

14

valores propios. Esta magnitud corresponde a la varianza explicada por el
componente correspondiente.

Por ejemplo, una tcnica comnpara la eliminacin de ruido aleatorio
pequeo para descartar componentes principales con los ms pequeos
valores propios. La eliminacin de tres componentes con valores propios
mayores se ha utilizado para manejar las variaciones de iluminacin. Sin
embargo, en general, los valores propios no tienen por qu corresponder
a la relevancia de los componentes correspondientes a la representacin.

Por ejemplo, si la varianza del ruido es mayor que la variacin de algunos
componentes significativo, estos componentes se retiran junto con el
ruido (6).

El muestreo de las direcciones de iluminacin es poco probable que sea
uniforme, y en esta situacin tres primeros valores propios ya no
corresponden a la iluminacin.

Por el contrario, la informacin mutua prevista por cada componente es
una medida basada en principios de su importancia para la representacin.
Dos importantes fuentes de variabilidad de la imagen son el ruido aleatorio y
la iluminacin. A continuacin, los algoritmos especializados para manejo de
cualquiera de estas tareas son revisados.

La normalizacin de una imagen es el proceso que elimina los efectos
eventuales variaciones de iluminacin y ruido debidas a las condiciones
inherentes a la adquisicin de la imagen.
Transformar es normalizar matemticamente las estadsticas de una imagen
de modo que su media sea cero y su varianza uno de acuerdo con la
siguiente ecuacin.

(2.9)

15


Donde:
: Media de la imagen original
: Desviacin estndar de la imagen original
g: Matriz de la imagen original
:
Matriz de la imagen normalizada

Al calcular la matriz de la imagen normalizada con la ecuacin 2.9, los
valores de dicha matriz suelen ser nmeros decimales cercanos a uno e
incluso negativos: se puede notar que estos valores, en el dominio de las
imgenes digitales, no tiene mucho sentido de ser, teniendo en cuenta que
una imagen por lo general solo toma valores enteros entre 0 y 255.

Por este motivo, la matriz de la imagen normalizada debe ser considerada
como cualquier seal en dos dimensiones ya que el concepto de imagen
como representacin visual pierde su sentido.

Adicionalmente, la naturaleza decimal de la matriz es un problema al
momento de implementar el proceso de normalizacin en plataformas de
hardware sin unidades de procedimiento con decimales.

A fin de superar este inconveniente, se suele modificar de manera que la
media y varianza tomen valores tpicos de una imagen (e,g. media 100,
varianza 80); con esto se logra que el rango de sea lo suficiente amplio
para poder redondear o truncar sus valores sin incurrir en un error como el
que se cometera al truncar una imagen con media cero y varianza uno.
La ecuacin que permite realizar este ajuste se representa de la siguiente
manera:

(2.10)
Donde
: Media de la imagen original

16

: Desviacin estndar de la imagen original
g: Matriz de la imagen original

N
: Matriz deseada de la imagen

N
: Desviacin estndar deseada de la imagen
g
N
: Matriz de la imagen normalizada

En el desarrollo de este estudio, la frmula 2.10 se adopta la ecuacin para
la implementacin de la normalizacin. Para la muestra del efecto de
normalizacin de una imagen se realiza bajo dos condiciones de iluminacin
diferentes como muestra la siguiente figura 5 (7).



Figura 1.5. Efecto del proceso de normalizacin
(a) Imagen con iluminacin
(b) Normalizacin de la imagen con iluminacin alta
(c) Imagen con iluminacin baja
(d) Normalizacin de imagen con iluminacin baja




17

o Proceso de insercin

Aunque la imagen normalizada ofrece un dominio invariante a todas las
distorsiones geomtricas, la implementacin discreta del proceso de
normalizacin y su proceso inverso produce una degradacin visual a la
imagen, debido a los procesos de interpolacin. Por lo tanto, en el algoritmo
propuesto en vez de insertar la marca de agua en la imagen normalizada, el
patrn de marca de agua es normalizada antes de su insercin, la
normalizacin de la imagen original es usada solamente para determinar la
energa de insercin adecuada, por lo que la insercin de marca de agua se
lleva a cabo en el dominio espacial de la imagen sin normalizar (8). En esta
seccin se describe la creacin del patrn de marca de agua y el proceso de
insercin del mismo como sigue:

a) Aplicar el procedimiento de normalizacin de imgenes descrito en la
seccin anterior a la imagen original para generar una imagen
normalizada.

b) Dividir la imagen normalizada en bloques de 8x8 pxeles y seleccionar los
bloques con textura fuerte. Para estimar una complejidad de textura de
cada bloque de la imagen normalizada. Primero, los coeficientes de DCT
de cada bloque son cuantificados usando una matriz de cuantificacin
que usa una codificacin de entropa de JPEG. Si el k-simo bloque F
k
(u,
v), 0 u,v 7 satisface la condicin, este bloque es clasificado como
textura fuerte, en otro caso el bloque pertenece a una textura dbil.

La figura 6 (8) muestra un ejemplo de normalizacin de imgenes, en la
cual, (c) es la imagen normalizada de ambas imgenes (a) original y (b)
distorsionada geomtricamente.


18



Figura 1.6. Normalizacin de imgenes
(a) Imagen original
(b) Versin distorsionada de la imagen
(c) Imagen normalizada obtenida de ambas imgenes

1.1.3 Proceso de nivel medio

Segmentacin de la imagen

La segmentacin de una imagen implica la deteccin, mediante
procedimientos de etiquetado deterministas o estocsticos, de los contornos
o regiones de la imagen, basndose en la informacin de intensidad o/y la
informacin espacial.

Para las imgenes a nivel de gris, una de las tcnicas ms clsica y simple
de segmentacin supone la determinacin de los modos o agrupamientos del

19

histograma, lo cual permite une clasificacin o umbralizacion
8
de los pixeles
en regiones homogneas (9). Este mtodo se puede generalizar a las
imgenes multiespectrales, teniendo en cuenta que la segmentacin de las
imgenes en color implica inicialmente la eleccin de un espacio de
representacin para el color.

Los algoritmos de segmentacin de imagen generalmente se basan en dos
propiedades bsicas de los niveles de gris de la imagen: discontinuidad y
similitud. Dentro de la primera categora se intenta dividir la imagen
basndonos en los cambios bruscos en el nivel de gris. Las reas de inters
en esta categora son la deteccin de puntos, de lneas y de bordes en la
imagen. Las reas dentro de la segunda categora estn basadas en las
tcnicas de umbrales, crecimiento de regiones, y tcnicas de divisin y
fusin. Segn el grado de asociacin entre las operaciones de segmentacin
y las de reconocimiento, se distinguen tres tipos principales de mtodos de
segmentacin:

- Los Mtodos explcitos o segmentacin en unidades fsicas:

Estos mtodos, intervienen avanzando el proceso de reconocimiento.
Las partes segmentadas se dividen prcticamente en letras, tanto que la
segmentacin se considera una parte del proceso de reconocimiento.

- Los Mtodos de segmentacin implcita o segmentacin en
unidades lgicas:

Los mtodos implcitos, consisten generalmente en una segmentacin
ms fina y as conseguir los puntos de corte correctos. Las partes
segmentadas son llamadas grafemas. Estos se usarn ms adelante,
durante el proceso de reconocimiento/ clasificacin. Los grafemas

8
La umbralizacion o binarizacion suele ser uno de los primeros pasos de los algoritmos de anlisis de
imgenes. El objetivo de binarizar una imagen es convertir dicha imagen a una representacin de dos
niveles como puede ser una imagen en blanco y negro.

20

estarn compuestos por fragmentos de caracteres, caracteres o grupos
de caracteres.

- Los Mtodos de segmentacin implcitos y exhaustivos:

En este caso, es el reconocimiento quien gua la segmentacin, as que
el sistema de evaluacin que se aplica aqu implica un reconocimiento
por clculo de las posiciones sucesivas de la imagen y escoger las
posiciones de segmentacin que se correspondan con las responsables
de las partes ms significativas.

o Deteccin de Discontinuidades

En esta seccin se presenta varias tcnicas para detectar varios tipos de
discontinuidades: puntos, lneas y bordes. El mtodo ms comn de
buscar discontinuidades es la correlacin de la imagen con una mscara.
En la gura 7 se puede ver un caso general de mscara de 3 3 (10).

En este procedimiento se realiza el producto de los elementos de la
mscara por el valor de gris correspondiente a los pixeles de la imagen
encerrados por la mscara. La respuesta a la mscara de cualquier pixel
de la imagen viene dado por la ecuacin siguiente:

(2.11)

Donde zi es el nivel de gris asociado al pixel de la imagen con coeciente
de la mscara wi. Como suele ser habitual, la respuesta de la mscara
viene referida a su posicin central. Cuando la mscara est centrada en
un pixel de borde de la imagen, la respuesta se determina empleando el
vecindario parcial apropiado.


21


Figura 1.7. Mscara 3 3

o Deteccin de Puntos

La deteccin de puntos aislados es inmediata. Empleando la mscara de
la figura 8 (10), vamos a decir que se ha detectado un punto en la
posicin en la cual est centrada la mscara |R| > T.

Donde T es un umbral. Bsicamente se mide la diferencia entre el pixel
central y sus vecinos, puesto que un pixel ser un punto aislado siempre
que sea suficientemente distinto de sus vecinos. Solamente se
considerarn puntos aislados aquellos cuya diferencia con respecto a sus
vecinos sea significativa.


Figura 1.8. Mscara usada para la deteccin de punto aislados.




22

o Deteccin de Lneas

En este caso se consideran las mscaras de la figura 10. Si pasamos la
primera de las mscaras a lo largo de la imagen, tendr mayor respuesta
para lneas de ancho un pixel orientadas horizontalmente.

Siempre que el fondo sea uniforme, la respuesta ser mxima cuando la
lnea pase a lo largo de la segunda fila de la mscara. La segunda
mscara de la figura 9 (10 pg. 450) responder mejor a lneas
orientadas a 45; la tercera mscara a lneas verticales; y la ultima a
lneas orientadas a 45.


Figura 1.9. Mascaras de lnea

Estas direcciones se pueden establecer observando que para la
direccin de inters las mscaras presentan valores mayores que para
otras posibles direcciones. Si denotamos con R1, R2, R3 y R4 las
respuestas de las cuatro mscaras de la figura 3 para un pixel en
particular, entonces si se cumple que |Ri| > |Rj | con j 6= i, ser ms
probable que dicho pixel est asociado a la direccin correspondiente a
la mscara i.

o Deteccin de Bordes

La deteccin de bordes es el procedimiento empleado ms
habitualmente para la deteccin de discontinuidades. Un borde se define
como la frontera entre dos regiones con nivel de gris relativamente

23

diferente. Vamos a suponer a partir de ahora que las regiones de inters
son suficientemente homogneas de modo que la transicin entre dichas
regiones se puede determinar empleando exclusivamente las
discontinuidades en el nivel de gris.

La idea bsica detrs de cualquier detector de bordes es el clculo de un
operador local de derivacin. En la parte derecha se puede ver una
imagen de una banda clara sobre un fondo oscuro, el perfil a lo largo de
una lnea horizontal y la primera y segunda derivada de dicho perfil. Se
puede observar que el perfil del borde se ha modelado como una
discontinuidad suave. Esto tiene en cuenta el hecho de que en las
imgenes reales los bordes estn ligeramente desenfocados.

Como se puede observar la primera derivada es positiva para cambio a
nivel de gris ms claro, negativa en caso contrario y cero en aquellas
zonas con nivel de gris uniforme. La segunda derivada presenta valor
positivo en la zona oscura de cada borde, valor negativo en la zona clara
de cada borde y valor cero en las zonas de valor de gris constante y justo
en la posicin de los bordes. El valor de la magnitud de la primera
derivada nos sirve para detectar la presencia de bordes, mientras que el
signo de la segunda derivada nos indica si el pixel pertenece a la zona
clara o a la zona oscura. Adems la segunda derivada presenta siempre
un cruce por cero en el punto medio de la transicin. Esto puede ser muy
til para localizar bordes en una imagen.

Aunque lo que llevamos dicho se refiere a perfiles unidimensionales, la
ex tensin a dos dimensiones es inmediata. Simplemente se define el
perfil en la direccin perpendicular a la direccin del borde y la
interpretacin anterior seguir siendo vlida. La primera derivada en
cualquier punto de la imagen vendr dada por la magnitud del gradiente,
mientras que la segunda derivada vendr dada por el operador
Laplaciano.


24

o Tcnicas de Umbrales

Supongamos que el histograma de los niveles de gris de una imagen I(x,
y) es el que se muestra en la figura 10(a) (10). La imagen I(x, y) est
compuesta de objetos claros sobre fondo oscuro de tal forma que los
niveles de gris est agrupados en dos modos predominantes. Una forma
de separar los objetos del fondo consiste en seleccionar un umbral T que
separe esos modos
9
.

Entonces, cualquier punto (x, y) para el que se cumpla que:

I(x, y) > T (1.12)

Se lo etiqueta como objeto; en otro caso, como fondo. La figura 10(b)
muestra el histograma de otra imagen en un caso ms general.


Figura 1.10.histogramas de nivel de gris que se pueden segmentar
con (a) un nico umbral y (b) con mltiples umbrales

En este caso el histograma de la imagen est caracterizado por tres
modos dominantes. Esto ocurrir cuando tengamos dos tipos de objetos
claros sobre fondo oscuro, por ejemplo. Se puede utilizar el mismo
principio para clasificar cada punto (x, y). Si T1 < I(x, y) T2 entonces se

9
Los mtodos de umbralizacion que se observaran en las siguientes paginas se puede encontrar en
mayor detalle en la referencia (35) de otra parte, un desarrollo matemtico mas extenso sobre la integral
de una imagen puede ser encontrado en (36 pgs. 137-154).

25

lo etiqueta como primer objeto, si I(x, y) > T2 como segundo objeto y si
I(x, y) T1 como fondo. En general, este tipo de clasificacin con varios
umbrales es menos viable, ya que es ms difcil determinar esos
umbrales que aslen de forma efectiva las regiones de inters,
especialmente cuando el nmero de modos del histograma aumenta. En
este caso es mejor emplear umbrales variables.

En general, un mtodo de umbral se puede ver como una operacin en la
que se hace un test de cada pixel con respecto a una funcin T de la
forma

T = T (x, y, p(x, y), I(x, y)] (1.13)

Donde I(x, y) es el nivel de gris del punto (x, y) y p(x, y) denota cualquier
propiedad local de ese punto (como por ejemplo el nivel de gris medio en
un vecindario centrado en (x, y)). El mtodo de umbral dar lugar a otra
imagen B(x, y) definida por:

(1.14)

En este caso un pixel con etiqueta 1 de la imagen B corresponder a
objetos, mientras que un pixel con etiqueta 0 corresponder al fondo.
Cuando T dependa slo del nivel de gris I(x, y) se denomina umbral
global (en la figura 11(a) se puede ver un ejemplo en este caso). Si T
depende tanto del nivel de gris I(x, y) como de la propiedad local p(x, y),
el umbral se denomina local. Si, adems, T depende de las coordenadas
espaciales x e y, el umbral se denomina dinmico.

En la figura 11(a) (10) se puede ver el histograma para el que se ha
fijado un umbral T. En la figura 11(b) se muestra el resultado de
segmentar dicha imagen con ese umbral T.


26


Figura 1.11. (a) Histogramas y umbral T para la imagen. (b)
Imagen segmentada usando el umbral T

Como se puede apreciar el histograma de esta imagen es bimodal. Sin
embargo, el valle no est claramente marcado debido fundamentalmente
a que la iluminacin de la imagen no es constante. Esto influye
enormemente en el histograma como veremos a continuacin. Sin
embargo, en este caso la segmentacin es bastante adecuada, excepto
en la zona inferior donde la iluminacin de la imagen es peor.

o Influencia de la Iluminacin

La formacin de una imagen I(x, y) se puede ver como:

I(x, y) = R(x, y) L(x, y) (1.15)

Donde R(x, y) es la componente de reflectancia y L(x, y) la de
iluminacin. Vamos a ver cul es el efecto de la componente de
iluminacin L(x, y) de cara a poder segmentar la imagen I(x, y).

Vamos a considerar la funcin de reflectancia R(x, y) generada con
ordenador de la figura 12(a). El histograma de esta funcin, como se
aprecia en la figura 12(b), es claramente bimodal y la imagen se puede
segmentar fcilmente mediante un umbral situado en el valle del

27

histograma. Consideramos ahora la funcin de iluminacin L(x, y)
generada con ordenador de la figura 12(c).

Multiplicando las funciones de reflectancia e iluminacin obtenemos la
imagen I(x, y) mostrada en la figura 12(d) (10). En el histograma de la
imagen I(x, y), como se puede ver en la figura 12, el valle prcticamente
ha desaparecido por completo, por lo que la segmentacin mediante un
nico umbral es en este caso imposible.

Aunque en general casi nunca se dispone de la funcin de reflectancia
aislada, este ejemplo muestra que la naturaleza reflectiva de los objetos
y del fondo son tales que son fcilmente separables. Sin embargo, la
imagen resultante, debido a una mala iluminacin, es muy difcil de
segmentar.

La razn por la que el histograma de la reflectancia se ve modificado por
la iluminacin se puede explicar de forma sencilla. Vamos a tomar
logaritmos en la ecuacin () obteniendo otra imagen:

Z(x, y) = ln I(x, y) = lnR(x, y) + lnL(x, y) = R(x, y) + L(x, y) (2.16)


(a) (b)

28


(c) (d)

(e)
Figura 1.12. (a) Funcin de reflectancia R(x, y) generada con ordenador.
(b) Histograma de la funcin de reflectancia. (c) Funcin de iluminacin
L(x, y) generada con ordenador. (d) Imagen I(x, y) producto de las
funciones de reflectancia e iluminacin. (e) Histograma de la imagen.

Si R(x, y) y L(x, y) son variables independientes, el histograma de Z(x, y)
viene dado por la convolucin de los histogramas de R(x, y) y L(x, y). Si
la iluminacin L(x, y) es constante, L(x, y) tambin lo es, y su histograma
ser un impulso. La convolucin de este impulso con el histograma de la
reflectancia R(x, y) no lo modifica y por lo tanto la imagen I(x, y) tiene el
mismo histograma que la reflectancia R(x, y). Si por el contrario la
iluminacin L(x, y) tiene un histograma ms ancho, el proceso de la
convolucin con el histograma de la reflectancia R(x, y), dar lugar a que
el histograma de la imagen I(x, y) sea sustancialmente diferente al
histograma de la componente de reflectancia R(x, y). El grado de
distorsin depender de cmo de ancho sea el histograma de la
componente de iluminacin L(x, y), es decir, de cmo de no uniforme sea
la iluminacin.

29


Cuando se tenga acceso a la fuente de iluminacin, una solucin que se
emplea habitualmente para compensar la no uniformidad de esta,
consiste en proyectar la iluminacin sobre una superficie clara y plana.
Esta proyeccin dar lugar a una imagen G(x, y) = kL(x, y), donde k es
una constante que depende de la reflectividad de la superficie. Ahora
para cualquier otra imagen I(x, y) formada a partir de la ecuacin (2.15)
para una funcin de reflectividad dada R(x, y) y para la misma funcin de
iluminacin L(x, y), podemos compensar la iluminacin haciendo

(1.17)

Entonces si R(x, y) se puede segmentar empleando un umbral T,
entonces la imagen H(x, y) tambin, empleando un umbral T/k. Este
mtodo se puede emplear siempre que la iluminacin no cambie de
imagen a imagen.

o Umbrales basados en Varias Variables

Hasta ahora se ha considerado la determinacin de umbrales para una
nica variable: el nivel de gris de la imagen. En algunos casos, se
dispone de varias variables que caracterizan cada pixel de la imagen. Un
ejemplo muy claro son las imgenes en color, donde se dispone de las
componentes RGB para formar la imagen compuesta en color. En este
caso, cada pixel se caracteriza por tres variables, y se puede construir un
histograma en tres dimensiones.

El concepto de segmentacin mediante umbral en este caso da lugar el
empleo de tcnicas de clasificacin o clustering
10
.


10
El Anlisis Cluster, tambin conocido como Anlisis de Conglomerados, Taxonoma Numrica o
Reconocimiento de Patrones, es una tcnica estadstica multivariante cuya finalidad es dividir un
conjunto de objetos en grupos.

30

Si se han encontrado K clusters significativos en el espacio de las
variables, la imagen se puede segmentar asignando a cada pixel una de
las K etiquetas a todos aquellos pixeles cercanos al cluster
correspondiente a esa etiqueta. La complejidad de esta clasificacin
depende del nmero de variables y del nmero de clusters. Adems si se
desconoce el nmero de clusters el problema se complica an ms
.
En el caso particular que se conozca el nmero de clusters se puede
emplear el algoritmo LBG o K-means. Este algoritmo permite determinar
iterativamente el centroide de cada uno de los K clusters y la particin del
espacio de los parmetros en K zonas, una para cada cluster. Partiendo
de una estimacin inicial para los centroides, se clasifica los datos segn
esos centroides. A partir de los datos clasificados para cada cluster se
vuelve a determinar el centroide para ese cluster. Esto se repite hasta
que la posicin de los centroides de los clusters y la clasificacin de los
datos no cambien apreciablemente. La imagen segmentada viene dada
entonces por las etiquetas correspondientes a la ltima clasificacin.

Es particularmente importante la clasificacin de imgenes en color
basada en tono y saturacin. Estas propiedades de color son
particularmente importantes, a diferencia de los canales RGB, porque
son equivalentes a como se perciben los colores en el sistema visual
humano. En este caso tenemos dos variables y se pueden emplear
tcnicas de clasificacin o clustering en dos dimensiones.


31



Figura 1.13: Ejemplo de clustering para dos variables y tres clusters.

En la figura 13 (11) se puede ver un ejemplo para tres clusters junto con
las regiones de clasificacin (umbrales en dos dimensiones).

Extraccin de contornos

Separacin de elementos significativos de la superficie de los objetos los
contornos resumen la mayor parte de la informacin de una imagen

Deteccin de puntos de contorno
Cambios de luminosidad en la imagen
o Mximos del Gradiente

En el rea de procesamiento de imgenes, la deteccin de los bordes de
una imagen es de suma importancia y utilidad, pues facilita muchas
tareas, entre ellas, el reconocimiento de objetos, la segmentacin de
regiones, entre otras.

Se han desarrollado variedad de algoritmos que ayudan a solucionar este
inconveniente. El algoritmo de Canny
11
es usado para detectar todos los

11
Algoritmo de Canny es un operador desarrollado por John F. Canny en 1986 que utiliza un algoritmo
de mltiples etapas para detectar una amplia gama de bordes en imgenes (37 pgs. 679-698).

32

bordes existentes en una imagen. Este algoritmo est considerado como
uno de los mejores mtodos de deteccin de contornos mediante el
empleo de mscaras de convolucin y basado en la primera derivada.
Los puntos de contorno son como zonas de pxeles en las que existe un
cambio brusco de nivel de gris. En el tratamiento de imgenes, se
trabaja con pxeles, y en un ambiente discreto, es as que en el algoritmo
de Canny se utiliza mscaras, las cuales representan aproximaciones en
diferencias finitas.

Uno de los mtodos relacionados con la deteccin de bordes es el uso
de la primera derivada, la que es usada por que toma el valor de cero en
todas las regiones donde no vara la intensidad y tiene un valor
constante en toda la transicin de intensidad. Por tanto un cambio de
intensidad se manifiesta como un cambio brusco en la primera derivada,
caracterstica que es usada para detectar un borde, y en la que se basa
el algoritmo de Canny. El algoritmo de Canny consiste en tres grandes
pasos:

- Obtencin del gradiente: en este paso se calcula la magnitud y
orientacin del vector gradiente en cada pxel.
- Supresin no mxima: en este paso se logra el adelgazamiento del
ancho de los bordes, obtenidos con el gradiente, hasta lograr bordes de
un pxel de ancho.
- Histresis de umbral: en este paso se aplica una funcin de histresis
basada en dos umbrales; con este proceso se pretende reducir la
posibilidad de aparicin de contornos falsos.

o Obtencin del gradiente

Para la obtencin del gradiente, lo primero que se realiza es la aplicacin
de un filtro gaussiano a la imagen original con el objetivo de suavizar la
imagen y tratar de eliminar el posible ruido existente. Sin embargo, se
debe de tener cuidado de no realizar un suavizado excesivo, pues se

33

podran perder detalles de la imagen y provocar un psimo resultado
final. Este suavizado se obtiene promediando los valores de intensidad
de los pxeles en el entorno de vecindad con una mscara de
convolucin de media cero y desviacin estndar . En la figura 14 se
muestran dos ejemplos de mscaras que se pueden usar para realizar el
filtrado gaussiano.

Una vez que se suaviza la imagen, para cada pxel se obtiene la
magnitud y mdulo (orientacin) del gradiente, obteniendo as dos
imgenes. El algoritmo para este primer paso se describe a continuacin.



Figura 1.14. Mscaras de convolucin recomendadas para el
obtener el filtro gaussiano. La mscara (a) fue obtenida de (12),
mientras que la mscara (b) fue obtenida de (13).

En situaciones ms complejas es necesario realizar un procesado
posterior, a nivel ms alto, para interpretar, reconocer o clasicar los
objetos segmentados a bajo nivel, y as dar conectividad o eliminar los
falsos positivos y negativos.

Una solucin ms satisfactoria consiste en utilizar unas tcnicas de
aparicin ms reciente que son mucho ms robustas, aunque requieren
bastante ms tiempo de clculo. Estas tcnicas las podemos agrupar en
lo que se han venido a denominar con el trmino genrico de contornos

34

activos. Estos contornos modelan las fronteras entre un objeto, el fondo y
el resto de objetos de la imagen.

Permiten extraer los contornos de los objetos de inters basndonos en
modelos que utilizan informacin a priori de la forma de los objetos. Estas
tcnicas son mucho ms robustas frente a la presencia de ruido y otros
elementos espureos y permiten segmentar imgenes mucho ms
complejas que las imgenes para las que eran aplicables los mtodos de
segmentacin de bajo nivel, como son las imgenes mdicas, por
ejemplo.

La solucin proporcionada por estas tcnicas en general no requiere
procesado posterior y son directamente interpretables, puesto que se
basan en un modelo establecido a priori. Si este modelo es el adecuado,
la presencia de falsos positivos o negativos ser muy pequea.

o Supresin no mxima al resultado del gradiente

Las dos imgenes generadas en el paso anterior sirven de entrada para
generar una imagen con los bordes adelgazados. El procedimiento es el
siguiente: se consideran cuatro direcciones identificadas por las
orientaciones de 0, 45, 90 y 135 con respecto al eje horizontal. Para
cada pxel se encuentra la direccin que mejor se aproxime a la direccin
del ngulo de gradiente (14).


o Algoritmo: Obtencin de Gradiente

Entrada: imagen I
Mscara de convolucin H, con media cero y desviacin estndar .

Salida: imagen m E de la magnitud del gradiente
Imagen o E de la orientacin del gradiente

35


1. Suavizar la imagen I con H mediante un filtro gaussiano y obtener J como
imagen de salida.

2. Para cada pxel (i, j) en J, obtener la magnitud y orientacin del gradiente
basndose en las siguientes expresiones:

El gradiente de una imagen f(x,y) en un punto (x,y) se define como un
vector bidimensional dado por la ecuacin:
(1.18)

Siendo un vector perpendicular al borde, donde el vector G apunta en la
direccin de variacin mxima de f en el punto (x,y) por unidad de
distancia, con la magnitud y direccin dadas por:

(1.19)

Obtener Em a partir de la magnitud de gradiente y Eo a partir de la
orientacin, de acuerdo a las expresiones anteriores. Posteriormente se
observa si el valor de la magnitud de gradiente es ms pequeo que al
menos uno de sus dos vecinos en la direccin del ngulo obtenida en el
paso anterior. De ser as se asigna el valor 0 a dicho pxel, en caso
contrario se asigna el valor que tenga la magnitud del gradiente.

La salida de este segundo paso es la imagen In con los bordes
adelgazados, es decir, Em (i j), despus de la supresin no mxima de
puntos de borde.

36

o Contornos activos

Los contornos activos se puede clasicar en snakes (serpientes) (15),
patrones deformables y contornos dinmicos. Los snakes
12
son
mecanismos para dar cierto grado de conocimiento a priori a la
interpretacin de la imagen a bajo nivel.

En lugar de esperar que propiedades deseables de los contornos como
son continuidad y suavidad provengan de los datos de imagen, estas
propiedades son impuestas desde el principio. Se impone un modelo
elstico de curva continua y exible, que posteriormente se ajustar a los
datos de la imagen. Variando los parmetros de elasticidad de la curva
se puede controlar la cantidad de informacin a priori que se asume.

El modelado a priori se puede hacer ms especco construyendo un
conjunto de curvas exibles que formarn el contorno global, con un
conjunto de parmetros que controlen las variables cinticas de la curva,
como por ejemplo, los tamaos de las diferentes partes y los ngulos con
las que se unen. Un modelo como este recibe el nombre de 1patron
deformable y es un mecanismo muy potente para buscar estructuras
conocidas en una imagen.

En caso de que sea necesario localizar objetos en movimiento, las cosas
se complican aun ms dando lugar al problema del seguimiento de
objetos. Esto se denomina modelado dinmico, para el que es necesario
aadir inercia, fuerzas de restauracin y factor de amortiguamiento al
snake esttico. Cuando las curvas sean de seguimiento y utilicen
informacin dinmica a priori reciben el nombre de contornos dinmicos.


12
Los contornos activos, tambin llamados 'Snakes', son unas lneas curvas cerradas que van
evolucionando iterativamente hasta que se adaptan la figura buscada en una escena. Los Snakes pueden
ser internos (cuando se inicializan en el interior de la figura) externos (cuando se inicializan en el
exterior) o mixtos (cuando se inicializan cortando a la figura). Los tres problemas de estos algoritmos son:
Inicializacin, criterio de parada y coste computacional.

37

o Algoritmo de Burns

Esta tcnica de extraccin de lneas rectas est basada en dos
observaciones realizadas sobre muchos algoritmos de extraccin de
lneas (16):

1) carecen de una vista global de la estructura fundamental de la imagen
prioritaria para la toma de decisiones acerca de los sucesos de bordes
2) relegan la informacin de la orientacin de los bordes a un plano
secundario en el procesamiento.
En la mayora de los algoritmos de extraccin de bordes y lneas, el
cambio en la magnitud de la intensidad se usa de algn modo como una
medida de la importancia local del borde. Mientras que la informacin de
la orientacin de los bordes puede ser usada para modular el proceso de
agrupacin aplicado a las lneas importantes, la magnitud del borde
normalmente tiene la influencia dominante y central. Segn Burns, la
orientacin del borde transporta la informacin importante sobre la
colocacin de los pixel que participan en la variacin de intensidad que
delimitan la lnea recta, particularmente en su extensin espacial.

El gradiente de orientacin es definido como la direccin de mximo
cambio de nivel de gris medido sobre un rea pequea alrededor del
pixel, o de forma equivalente, como la direccin local de incrementos
ascendentes (o descendentes) en intensidad superficial. El modelo de
pixel tiene dos caractersticas:

a) el gradiente de magnitud local (medido sobre una pequea ventana
local) variar significativamente sobre la superficie de intensidad, por
razones citadas antes, particularmente en la direccin ortogonal a la
lnea.


38

b) el gradiente de orientacin local variar relativamente poco a lo largo
de la superficie de intensidad completa.

Estas caractersticas son ciertas en la mayora de las lneas rectas que
nosotros deseamos extraer en las imgenes digitalizadas. Por encima de
basarse en la consistencia del gradiente de orientacin local, se
desarrolla un algoritmo simple para la extraccin de regiones entorno de
lneas, que son conjuntos de pixel que se incluyen en cada superficie de
intensidad. De este modo, en un suceso de gran envergadura el paso
difcil de la extraccin de todas las lneas puede ser reducido a simples
agrupaciones y a un proceso de conexin de componentes. El beneficio
adicional de la separacin de estas regiones entorno es que otros
aspectos de la lnea, como el contraste y la anchura (o el rizado), pueden
ser medidos ms exactamente.

Sorprendentemente, las aproximaciones globales para la extraccin de
lneas rectas, como los mtodos de la transformada de Hough
13
, no
explotan la orientacin tanto como se podra pensar. Aunque los grupos
de histograma de coordenadas (r, q) codifican la orientacin de los
bordes en trminos de puntos colineales, una vez ms dominan las
magnitudes de los bordes. El proceso global para la extraccin de lneas
depende de la bsqueda de cumbres importantes en la transformada.

Todas las tcnicas de Hough usan de alguna manera la magnitud del
borde en el proceso de votacin, por un peso proporcional o por
umbralizacin de tal modo que slo acceden los bordes importantes. As,
es muy difcil extraer lneas grandes, coherentes, de bajo contraste
porque su respuesta en el espacio (r, q) se reduce por el proceso de

13
La Transformada de Hough es un algoritmo empleado en reconocimiento de patrones en imgenes
que permite encontrar ciertas formas dentro de una imagen, como lneas, crculos, etc. La versin ms
simple consiste en encontrar lneas. Su modo de operacin es principalmente estadstico y consiste en
que para cada punto que se desea averiguar si es parte de una lnea se aplica una operacin dentro de
cierto rango, con lo que se averiguan las posibles lneas de las que puede ser parte el punto.

39

votacin, pudiendo ser ocultadas por la informacin de alto contraste y
pudiendo existir presente otro tipo de ruido.

La tcnica presentada aqu fue motivada por un mtodo de extraccin de
lneas que encontrara lneas rectas en imgenes razonablemente
complejas, particularmente aquellas lneas que son grandes pero no
necesariamente de alto contraste.

Una caracterstica clave de la aproximacin que la distingue de los
trabajos previos es la organizacin global del contexto de entorno de
lneas prioritario a cualquier decisin sobre la relevancia de los cambios
locales de intensidad. Una estimacin de la orientacin local de cada uno
de los pixel es la base de este primer proceso de organizacin. La
agrupacin de pixel en regiones entorno de lneas evita el exceso de
respuesta de las mscaras de tamaos y orientaciones variables, as
como la complejidad innecesaria en la organizacin de mecanismos
subsiguientes.

Permite la extraccin de lneas rectas a pesar de las debilidades en la
claridad de la lnea debido a variaciones locales en la anchura, contraste
y orientacin. Esto traslada directamente el problema asociado con el
tamao del operador del borde y determina la extensin de entorno dada
a los bordes y lneas directamente desde de los datos fundamentales.

La aproximacin tiene su origen en el proceso de coleccin de gradientes
de Hanson, Riseman y Glazer (17). El proceso de coleccin de
gradientes utiliza un mecanismo de datos directos para organizar el
contexto completo del borde en una direccin para cada instante de
tiempo (la componente vertical y horizontal) por encima de la anchura de
una seccin de incremento o decremento montono del perfil de
intensidad contribuyente al borde (por ejemplo, donde el signo del
gradiente sea constante). El gradiente total del contraste fue entonces

40

distribuido alrededor de la localizacin del centroide del gradiente de
magnitudes local en el perfil del borde.

Este proceso organizaba la informacin del contraste de un lado al otro
de la anchura de un borde sin comprometerse con ningn tamao fijo o
con tamaos establecidos para el operador de bordes. Ambas tcnicas
capturan el gradiente de informacin global que resulta de una tasacin
ms exacta de la magnitud total del borde de un lado al otro de su
anchura. Haralick
14
tambin procesa la superficie de intensidad en el
orden de crear decisiones acerca de las lneas, pero la diferencia clave
es que sus tramos de superficie son locales, y afronta el mismo tipo de
dificultades en la organizacin de esta informacin como lo hace el
resultado de los operadores locales de bordes.

La aproximacin aqu tomada ha generalizado el proceso global de
organizacin contextual hacia dos dimensiones, agrupando los pixel de la
imagen de un lado al otro de la anchura de un borde as como
disminuyendo la longitud del borde, para formar la base para la
extraccin de una lnea recta. Todos los pixel en esas regiones entorno
de lnea contribuyen tanto a la representacin final de la lnea como a la
generacin de un conjunto de atributos descriptivos que son tiles para
procesamientos posteriores de los datos de la lnea. Las regiones
entorno de lnea podran tambin ser usadas en la separacin de lneas
rectas en imgenes intrnsecas representando bordes y lneas de
diferentes tipos, tal como iluminacin, textura, reflejo, orientacin, etc.

o Representacin y proceso para la extraccin de lneas rectas

La aproximacin general para la extraccin de lneas rectas es agrupar
los pixel en regiones entono de lneas basadas en el gradiente de

14
HARALICK es miembro del IEEE por sus contribuciones en visin por computador y procesamiento de
imgenes y un miembro de la Asociacin Internacional para el Reconocimiento de Patrones (IAPR) por
sus contribuciones en el reconocimiento de patrones , procesamiento de imgenes, y para el servicio de
IAPR

41

orientacin, y ms tarde extraer de cada regin un segmento de lnea
recta. Hay que ver que cada una de las variaciones de intensidad,
incluyendo los cambios de baja magnitud, inicialmente ser extrada
como segmentos de lneas dbiles (a menudo de gran anchura). Durante
la interpretacin de estas lneas, las regiones entorno adyacentes de bajo
contraste pueden ser agrupadas en regiones homogneas y filtradas
para que no sean vistas como lneas rectas dbiles.

Hay cuatro pasos bsicos en la extraccin de lneas rectas:

1) Agrupacin de pixel en regiones entorno de lneas
Basadas en la similitud del gradiente de orientacin. Esto permite una
organizacin directa de los datos de contexto de borde sin
comprometerse a ningn tamao particular de mscara.

2) Aproximacin de la superficie de intensidades por una superficie
plana.
La aproximacin plana es ponderada por el gradiente de magnitud
asociado con los pixel de modo que dominar la intensidad en las partes
ms empinadas.

3) Extraccin de atributos
De las regiones de entorno de lneas y aproximacin plana. Los atributos
extrados incluyen la lnea representativa y su longitud, contraste,
anchura, colocacin, orientacin y rectitud.

4) Filtrado de lneas
sobre los atributos para aislar los variados sucesos de la imagen como
grandes lneas rectas de cualquier contraste, lneas pequeas de bajo
contraste (textura pesada), lneas cortas de bajo contraste (textura
ligera), regiones homogneas de lneas adyacentes de muy bajo
contraste, y lneas en posiciones y orientaciones particulares.


42

1.1.4 Proceso de alto nivel

Reconocimiento de patrones

Un patrn es un arreglo de descriptores obtenidos de los objetos. La palabra
caracterstica es comnmente usada en la literatura de reconocimiento de
patrones para denotar a un descriptor. Una clase de patrn en una familia de
patrones que comparten propiedades comunes. Las clases de patrones son
denotadas como w
1
, w
2
,, w
W
, donde W es el numero de clases. El
reconocimiento de patrones realizado por computadora involucra diversas
tcnicas para realizar la asignacin de los patrones a sus respectivas clases
automticamente y con la mnima intervencin posible por parte del ser
humano (18).

Los patrones pueden ser representados como vectores denotados por la letra
x de la misma manera como se muestra en la figura 15 (19)


Figura 1.15. Extraccin de objetos


43

(1.20)

Donde cada componente xi representa el i-esimo descriptor y n es el
nmero total de descriptores asociados con el patrn. Los vectores de
patrones son representados como columnas (matrices de n1). As, un
patrn puede ser expresado en la forma mostrada en (1.20) o en la forma
equivalente x = (x1, x2, . . . , xn)
T
, donde T indica transposicin.

o Momentos invariantes de Hu

El reconocimiento visual de patrones y caracteres independientes de la
posicin, tamao y orientacin, es uno de los objetivos en las muchas de
las investigaciones. Para alcanzar este objetivo, se deben utilizar
mtodos insensibles a las transformaciones geomtricas.

Una tcnica muy utilizada en la extraccin de caractersticas es la de
momentos invariantes
15
.

Considrese un objeto geomtrico S en el espacio X. Se supone la
existencia de un grupo de transformaciones admisibles G que acta en el
espacio X. Un invariante escalar de un objeto S es una cantidad que no
cambia su valor cuando el objeto S sufre cualquiera de las
transformaciones admisibles, tales como rotacin, traslacin o
escalamiento. Supngase que el objeto S tiene invariantes escalares
I1, I2,. . ., In. Considrese que se obtiene el objeto S al transformar
apropiadamente el objeto S usando transformaciones admisibles, los
valores de estos invariantes escalares deben ser idnticos (20).

15
La teora de los momentos invariantes para el reconocimiento de patrones fue introducida por Ming-
Kuei Hu (19), por medio del teorema fundamental de momentos invariantes.

44


El uso de los momentos invariantes en imgenes de dos dimensiones es
muy utilizado en el reconocimiento de patrones, ya que son muy tiles
dado que se puede realizar el reconocimiento de un objeto an sin
importar si ha sufrido transformaciones geomtricas como rotacin,
traslacin y/o escalamiento. Los momentos invariantes han sido
aplicados ampliamente en el reconocimiento de patrones, por ejemplo,
en la localizacin automtica de objetos 2D y 3D (21), en la autenticacin
de imgenes digitales (22), entre otros.
Hu (19) propone un conjunto de momentos invariantes a las
transformaciones geomtricas como la rotacin, traslacin y
escalamiento. Este conjunto est formado por siete funciones denotadas
por . Una vez que se han obtenido los momentos se puede establecer
la clase para este tipo de patrones.

o Clasificador de mnima distancia

Las tcnicas de reconocimiento basadas en coincidencias representan a
cada clase por un vector de patrones prototipo. Un patrn desconocido
es asignado a la clase que se encuentre ms cerca en trminos de una
mtrica predefinida. La forma ms simple es el clasificador de mnima
distancia, lo cual implica el clculo de la distancia Euclideana entre el
patrn desconocido y cada uno de los vectores prototipos. Est
clasificada toma la distancia ms corta como decisin.

Reconocimiento ptico de caracteres (OCR)

Cuando se dispone de informacin en forma de documento impreso y se
desea procesarla mediante un computador, existen dos opciones: una
primera consistira en introducirla a travs del teclado, labor larga y
tediosa. Otra posibilidad es automatizar esta operacin por medio de un
sistema de OCR compuesto de un software y hardware adecuado que
reducira considerablemente el tiempo de entrada de datos.

45


La tecnologa de reconocimiento de caracteres, OCR (Optical Character
Recognition) engloba a un conjunto de tcnicas basadas en estadsticas,
en las formas de los caracteres, transformadas y en comparaciones, que
complementndose entre s, se emplean para distinguir de forma
automtica entre los diferentes caracteres alfanumricos existentes. En
realidad no se reconocen exactamente los caracteres de un determinado
alfabeto, sino que es posible distinguir entre cualquier conjunto de formas
o smbolos. Sin embargo, se debe tener en cuenta que la precisin que
se obtiene en la prctica al intentar distinguir entre un conjunto de
smbolos no es del 100%. Por lo tanto, es fcil deducir que cuanto ms
numeroso es el conjunto de smbolos entre los que se debe decidir,
mayor es la probabilidad de que se produzca un fallo de clasificacin
(23).

En todo sistema de reconocimiento ptico de caracteres (OCR) se
distinguen al menos estas 4 etapas:

- Adecuacin de la imagen (pre proceso).
- Seleccin de la zona de inters (segmentacin).
- Representacin digital de la imagen (extraccin de caractersticas).
- Distincin del carcter contenido en la imagen (reconocimiento).

Para cada una de las cuatro etapas es posible aplicar multitud de
tcnicas ya existentes o desarrollar alguna especfica en funcin de las
condiciones en las que se presentan los datos de entrada, que en el caso
de OCR se puede traducir por las imgenes de entrada.

Uno de los pasos ms difciles es la extraccin de las caractersticas, ya
que es de gran dificultad elegir un conjunto ptimo de caractersticas. En
general para que una caracterstica sea buena debe tener:


46

a) Discriminacin: Deben ser caractersticas que diferencien
suficientemente una clase de otra.
b) Deben tener igual valor para mismas clases.
c) Independencia: Las caractersticas deben estar incorreladas unas de
otras.
d) Pequeo espacio para caractersticas: El nmero de caractersticas
debe ser pequeo para la rapidez y facilidad de clasificacin.

Adems las caractersticas deben contar con otros requerimientos como
son que tengan un bajo gasto computacional, tanto en tiempo como en
complejidad. Debido a estos motivos es muy difcil conseguir unas
caractersticas ptimas.

Normalmente, las tcnicas de OCR son tiles para digitalizar textos de
algn libro (caracteres impresos) o formularios rellenados manualmente
(caracteres manuscritos). Tanto en un caso como en el otro el desglose
de los caracteres individuales es mucho ms sencillo que en el caso de
texto manuscrito continuo, para el que es necesario la aplicacin de
tcnicas de pre proceso y segmentacin ms complejas que en el caso
de OCR (24).

En esta fase de pre procesamiento (o adecuacin de la imagen) el
objetivo que se persigue es eliminar de la imagen de cualquier tipo de
ruido o imperfeccin que no pertenezca al carcter, as como normalizar
el tamao del mismo. Adems, para el caso de OCR, la normalizacin de
la imagen tambin puede implicar un binarizado de la misma.

Para la eliminacin del ruido que puede aparecer en una imagen digital,
bien provocada por manchas reales o grafas imperfectas, o bien por
defectos tcnicos en la adquisicin o binarizado de la imagen, se utilizan
diversos algoritmos:


47

- Etiquetado: para la divisin de la imagen en regiones de
componentes conectadas.
- Erosin / expansin: para la eliminacin de pequeos grupos de
pxeles.
- Umbralizado de histograma: para eliminar/seleccionar los objetos
ms brillantes o ms oscuros de la imagen.

o Esquema bsico de un algoritmo de Reconocimiento ptico de
Caracteres

Todos los algoritmos de Reconocimiento ptico de Caracteres tienen la
finalidad de poder diferenciar un texto de una imagen cualquiera. Para
hacerlo se basan en 4 etapas: Binarizacin, fragmentacin o
segmentacin de la imagen, Adelgazamiento de los
componentes y Comparacin con patrones.

o KNN

Para OCR, existe un mtodo muy conveniente, no paramtrico y
supervisado, que proporciona resultados muy adecuados para la
aplicacin que se est tratando, El algoritmo K-NN (K vecinos ms
prximos). Este mtodo es muy popular debido a su sencillez y a cierto
nmero de propiedades estadsticas bien conocidas que le proporcionan
un buen comportamiento para afrontar diversos tipos de problemas de
clasificacin, siendo uno de ellos el de OCR.

Dado un conjunto de objetos prototipo de los que ya se conoce su clase
(es decir, dado un conjunto de caracteres de muestra) y dado un nuevo
objeto cuya clase no conocemos (imagen de un carcter a reconocer) se
busca entre el conjunto de prototipos los k ms parecidos a nuevo
objeto.



48

o Fase de entrenamiento y fase de test.

En OCR, esta recoleccin implica disponer de una base de datos de
imgenes de los tipos de caracteres que posteriormente se esperen
reconocer. A este conjunto de datos se le denomina conjunto de
entrenamiento. Sin embargo, la fase de entrenamiento no solo consiste
en la recopilacin de estos datos, sino que, tpicamente, los datos
originales que se dedican al entrenamiento deben ser preprocesados
adecuadamente para obtener representaciones compactas y coherentes.

En el ejemplo de OCR, esto quiere decir que las imgenes deben ser
segmentadas (eliminacin de ruido y seleccin de la caja mnima de
inclusin), normalizadas y transformadas (extraccin de caractersticas)
para obtener los vectores de baja dimensionalidad que finalmente se
almacenan como conjunto de entrenamiento.

Con este conjunto de entrenamiento ya construido, el clasificador knn
ya puede ser utilizado para reconocer la clase de una nueva muestra.
Esta es la fase de test y lgicamente, tambin aqu es necesario aplicar
todo el preproceso descrito anteriormente a cada una de las nuevas
muestras. Por lo tanto, aqu se ve la necesidad de disponer de mtodos
rpidos de realizar estas tareas de preproceso, puesto que la velocidad
de reconocimiento depender, en parte, de ellos.

En la prctica se tiene que este preproceso es posible realizarlo muy
rpidamente, aunque justo a continuacin aparece la parte del proceso
de reconocimiento que normalmente ms carga computacional conlleva,
la clasificacin.

o Tcnicas de bsqueda rpida de vecinos

Se ha visto que el mtodo de clasificacin knn requiere la construccin
de un conjunto de prototipos. El tamao, entre otras cosas, de este

49

conjunto influye en la precisin del clasificador. Debido a la naturaleza
estadstica del mtodo de clasificacin, cuantos ms prototipos contiene
este conjunto mayor exactitud se consigue aunque al mismo tiempo
mayor complejidad se introduce para realizar las bsquedas,
aumentando el coste computacional. En tareas de OCR es frecuente
utilizar conjuntos de referencia de ms de 200.000 muestras. Con estos
tamaos surge la necesidad de disear estructuras de datos adecuadas
para realizar las bsquedas de forma optimizada, pues una bsqueda
exhaustiva requerira demasiado tiempo y se degradaran las
prestaciones del sistema de OCR.

En esta lnea se han desarrollado algunos algoritmos de bsqueda rpida
de vecinos y sus correspondientes estructuras de datos (voronoy
polygons, k-d-trees, r-trees, etc.), que intentar paliar el problema del
coste de realizar bsquedas en grandes conjuntos de datos
multidimensionales. Para diversas tareas que combinan tcnicas de
reconocimiento de formas y visin por computador, los k-d-trees son una
buena opcin para implementar los algoritmos de bsqueda. De hecho,
en el ITI se han empleado algoritmos de bsqueda aproximada sobre k-
d-trees con diversas tareas (reconocimiento de caras, matrculas y
caracteres) obteniendo resultados competitivos, tanto en velocidad como
en precisin.

o rboles de decisin

Los rboles de decisin, al igual que el K-NN, es una tcnica de minera
de datos que se puede aplicar en el contexto de reconocimiento ptico de
caracteres. Su aprendizaje es inductivo y no supervisado. Los patrones o
atributos que se quieren evaluar de un carcter determinado constituyen
los nodos del rbol, mientras que los resultados finales de los mismos se
almacenarn en las hojas del mismo. Tras la construccin del rbol y
dada la estructura del mismo, toda la evaluacin de caracteres se puede
tratar como una arquitectura IF-THENELSE, por lo que si el nmero de

50

parmetros a evaluar es suficientemente grande para tener capacidad
expresiva pero suficientemente pequeo para ser eficiente
computacionalmente, el rbol resulta una estructura que favorece mucho
la velocidad de clculo, no como el algoritmo K-NN que aunque muy
conveniente, puede llegar a ser muy costoso computacionalmente.

Durante el aprendizaje, el orden de evaluacin de los parmetros es
fundamental para alcanzar el ajuste ptimo del rbol. Para ello se
emplean una serie de funciones de evaluacin que a la vista de los
datos, determinan la relevancia o la correlacin de unos parmetros en
funcin de los otros, definiendo una ganancia de informacin, que al
postre es la reduccin de la entropa del sistema. La secuencia de
aprendizaje del rbol se puede resumir en el siguiente diagrama figura
16. (25):

Figura 1.16. Aprendizaje

51

Una vez se tiene construido el rbol hay que detallar como recorrerlo. En
definitiva, si durante el recorrido se llega a una hoja, esa serie de
patrones responden a un carcter reconocido y por tanto se devuelve. Si
en el recorrido y despus de evaluar todo el rbol no se llega a una hoja,
se deduce que esa caracterstica no ha sido consignada en el rbol y por
tanto se debe crear una nueva hoja para guardar el nuevo dato. Un
esquema muy ilustrativo de cmo recorrer un rbol de decisin es el
siguiente figura 17 (25):



Figura 1.17. Reconocimiento del carcter

Tras analizar los mtodos y tcnicas que se utilizan para el
reconocimiento ptico de caracteres (OCR), vamos a describir de
manera ms detallada el proceso completo haciendo alusin a los puntos
antes expuestos y centrndose en el mtodo de rboles de decisin,
aunque sin prdida de generalidad, ya que estas caractersticas se
pueden aplicar tanto a redes neuronales como a KNN.


52

- Deteccin de renglones
- Separacin de caracteres
- Extraccin de caractersticas
- Introduccin en la red de neuronas
- Reconocimiento final del texto
El esquema bsico a seguir ser (26):



Figura 1.18. Etapas del Sistema OCR desarrollado




53

CAPTULO 2: DISEO, SIMULACIN E IMPLEMENTACIN

El objetivo es implementar un sistema en el lenguaje de programacin Java en
Netbeans 7.0.1 como una aplicacin de software para un telfono mvil del cual
sea capaz de reproducir el audio que expresan denominaciones del billete en
frente de la cmara del dispositivo.
2.1 Diagrama de flujo o mapa conceptual de la investigacin



Figura 2.1: Esquema de flujo de data
Mediante la comparacin por pixeles de cada imagen en el formato JPEG.
As se ver la diferencia de cada denominacin de billetes que resalta sus
INICIO
Obtencin de la
imagen a travs
de la cmara web
Almacenamiento
en la base de datos
de comparacin
Reproduccin de
mensaje
Comparacin de la
imagen con los
patrones
guardados en la BD
Conversin de la
imagen binaria en
JPEG
No existe
el billete
Son
iguales
las
imgenes
?
Si
No
FIN

54

propias caractersticas que se exhiben en las imgenes que representa la
particularidad de un billete.

2.2 Diseo


ADQUISICION DE LA IMAGEN
Para este bloque se hace us de la API Java Media Framework (JMF) para el
manejo del dispositivo de video instalado (cmara) con la que se realizan las
funciones descritas como la visualizacin y obtencin de la imagen para el
procesamiento.

Para lograr este objetivo existe una api especializada diseada por Sun, que no
se proporciona en el paquete del jdk, llamada JMF (Java Media Framework, en
espaol Entorno de Trabajo Multimedia de Java), actualmente en la
versin 2.1.1e, que permite la programacin de tareas multimedia, es decir que
puede capturar, reproducir, transferir y codificar varios formatos de medios, as
como la retransmisin en tiempo real de vdeo y envi a la base de datos.

En el cdigo al detectar la cmara se verifica primero los formatos disponibles
de ordenadores donde se tuvieran cmaras con soporte de color RGB y YUV
(en este caso la cmara es YUV). As como las resoluciones permitidas y
agregarlas a un men, en el cual se puede seleccionar dinmicamente el
tamao preferido, y guardar la imagen en formato JPEG en el archivo que se
prefiera o tambin y para este caso en particular enviar a la base de datos que
ser creada despus de la adquisicin de datos.

Se crea un proyecto con el nombre de ``TomaFoto, despus aadir un
paquete dentro de source packages con el mismo nombre de ``estudiandojmf
y crear dentro del mismo, 8 clases (java class) con los nombres de :
- JmenuFormato
- Conexin

55

- Eventos
- GuardaComo
- JDispositivos
- Mensajero
- MiPlayer
- PanelCamara

Ahora se crea la interfaz de usuario, para ello se da un clic derecho en el
paquete interfaz y se selecciona New -> JFrame Form, se le da por nombre
'Camara'.

Se agrega un panel llamado ``Camarita como se muestra en la imagen y luego
se crea un Menu Bar (JMenuBar) y dentro de este crear tres MenuItem
``Capturar , ``Dispositivo y ``Otros como se muestra a continuacin:



Figura 2.2. Tablero del panel central

Seguidamente se le aade en cada MenuItem dos JMenu en Capturar (En
Archivo y En Base de Datos) y tambin en Otros (Salir y Acerca) de manera que
queden como las figuras siguientes:


56


Figura 2.3. Menu de Capturar


Figura 2.4 Menu de dispositivos con los diferentes formatos

Figura 2.5 Menu de Otros





57

BASE DE DATOS

Se crea una base de datos en MySQL utilizando el software Appserver que
permite el manejo de MySQL y el lenguaje PHP .

Para acceder a Panel Plesk, loguearse en su rea de cliente (27) y seleccionar:
alojamiento > administracin. Entre todas las opciones disponibles, en la parte
de derecha en Aplicaciones y Servicios encuentra bases de datos luego
selecciona la base de datos que va a exportar y con Webadmin acceda a la
administracin de la base de datos conPHPMyAdmin.

Dentro de PHPMyAdmin seleccione Exportar base de datos:

Figura 2.6. Ventana inicial del localHost

phpMyAdmin es una herramienta escrita en PHP con la intencin de manejar la
administracin de MySQL a travs de pginas web, utilizando Internet.
Actualmente puede crear y eliminar Bases de Datos, crear, eliminar y
alterartablas, borrar, editar y aadir campos, ejecutar cualquier sentencia SQL,
administrar claves en campos, administrar privilegios, exportar datos en varios
formatos y est disponible en 62 idiomas.


58

Para acceder a la administracin de las bases de datos (28) en el cual se cre
el usuario y la contrasea:
Usuario: root
Contrasea: idat

De inmediato aparecer la pagina de la base de datos de los billetes para
almacenar los patrones que luego se necesitara para la comparacin con la
imagen capturada.


Figura 2.7 base de datos de los billetes

Como se ve en la figura existen 5 Blobs donde se subieron las imgenes de los
billetes que serviran de patrones. BLOB viene a ser un tipo de datos para
almacenar un objeto en binario en una tabla de la base de datos.

En PHP se cre las clases para la configuracin del mysql

59

- Billetes
- Insertar
- Formulario
- Listar imgenes
- Ver

En la clase formulario se crea el panel donde se va subir las imgenes a la base
de datos como se muestra en la figura:


Figura 2.8 Ventana de la claseInsertar

Despus de subir los archivos de JPEG se colocaran automticamente los blob
en la tabla de la base de datos como esta en la siguiente figura.


60


Figura 2.9 Tabla en la base de datos de las
Imgenes de billetes almacenados


COMPARACION DE IMGENES

Una comparacin es un objeto extrado de la diferencia de dos Estados. se
tiene una nueva serie de nmeros que representan la diferencia entre las
imgenes en este paquete se trabaja en matrices donde se resta las lineas de
los bordes desde un patrn.

Continuamente se puede leer de un streaming de la webcam y desmantelar la
imagen en los datos ms flexible.

Un BufferedImage (es una clase que se utiliza para crear imgenes en la
memoria). Esta imagen se convierte en lo que se llama un objeto del Estado. Un
Estado no es ms que una matriz 2D de enteros. Por el momento este conjunto
representa el brillo de los pxeles de la imagen. (se tiene la intencin de
incorporar de alguna manera la diferencia en este tono y en el futuro.) A partir
de aqu que en parte se debe olvidar que se est trabajando con imgenes, sino
ms bien conjuntos de nmeros, por lo que desde aqu el cdigo podra ser
utilizado para cualquiera de los mapas de los nmeros. A continuacin, un

61

objeto EdgeDetector primitivo puede procesar el cambio de mapa para resaltar
los bordes de las lneas.
Se utiliza el paquete JMF en la librera para el proceso de las imgenes. Para
el proceso se de comparacin se configura en el netbeans colocando el nombre
de la aplicacin como comparacionimagen luego se crea un paquete con el
mismo nombre y dentro de este se agrega dos clases con los nombres de
ImageCompare y Main, el ultimo es creado por defecto.

Especificamos las imgenes que deseamos comparar.
ImageCompare ic = new ImageCompare("I:\\test1.jpg", "I:\\test2.jpg");

En los constructores:
Constructor 1. utilizan nombres de archivos
Constructor 2. utilizar imgenes de awt.
Constructor 3. utilizar imgenes de bfer. todos los caminos conducen al
mismo lugar.

setParameters establece los parmetros para el uso en la deteccin de
cambios. El cdigo compare() compara las dos imgenes en este objeto y
GrayFilter convierte las imgenes en gris.

Se aplica un for para el bucle que travs de toda la imagen compara los
distintos bloques de imgenes. En el If se establece la diferencia en una
determinada regin ha pasado el umbral defactor A que luego se colocara un
indicador dibujando el cambio en la imagen para mostrarque el cambio se ha
detectado. getChangeIndicator indica si en caso existen cambios de deteccin
de regiones de la imagen comparada y getAverageBrightness devuelve un valor
que especifica un tipo de brillo medio de la imagen.

Para escribir una imagen de bfer en un archivo jpeg se coloca un saveJPG y
loadJPG para leer un archivo jpeg en una imagen del buffer.


62

Tambien se debe especificar el lugar donde se encuentran las imgenes a
comparar en este caso la imagen se guardo en C:\\ y colocar los parametros de:
numero de regiones verticales, numero de regiones horizontales, sensibilidad y
estabilizador en este caso se puso de manera aleatoria los numeros por
ejemplo (8, 6, 5, 10) considerando que a menor sensibilidad mayor seran los
puntos de diferencias de ambas imgenes.

si las imagenes son distintas se crear una nueva imagen con nombre
changes.jpg en la que se muestre las regiones que son distintas pues
sobrepasan la sensibilidad.

2.3 Simulaciones
El siguiente cdigo muestra el procedimiento de deteccin de la cmara para
capturar la imagen y posteriormente almacenar en la base de datos como
segundo paso.

En la clase de JmenuFormato agregamos los siguientes cdigos con sus
respectivos imports vase en anexo A. Ya que tenemos lo anterior nos vamos a
la vista de cdigo y agregamos los siguientes objetos en el anexo B. Para la
configuracin de los tems de la cmara nos ubicamos en la clase eventos
anexo D.

Para guardar la imagen en un archivo cualquiera donde se pueda guardar en el
formato JPEG nos situamos en la clase guardarComo Anexo E.






63

CAPTULO 3: RESULTADOS

3.1 Resultados

Se dispone a correr el programa y de inmediato aparece la pantalla principal,
as como se muestra en la imagen siguiente.


Figura 3.1 Pantalla principal

En el men de Dispositivos se puede configurar el tamao de la imagen segn
se prefiera para la captura de la imagen desde 160x144 hasta 640x480 en la
seal RGB de la misma manera tambin se aprecia en la seal YUV.


Figura 3.2 Formatos de seal de la cmara


64


Figura 3.3 Imagen captada desde la webcam

Se captura la imagen dando click en la parte Archivo para guardar la imagen
donde se prefiera almacenar.


Figura 3.4 Archivo de almacenamiento de la imagen

La imagen puede guardarse en el archivo que se prefiera con extensin JPEG
sin embargo para este caso se guardara en la base de datos que es la otra
opcin dentro del menu de capturar.

65

Luego se corre el programa de comparacin de imgenes en este como
ejemplo se coloca dos imgenes de billetes de 10 y 20 soles como las
imgenes siguientes:


Figura 3.5 Billete nmero 1 para la prueba


Figura 3.6 Billete nmero 2 para la prueba

Ambas imgenes almacenadas en c: al correr el programa detecta que son
distintas por el rostro del personaje dibujado en el billete. Como se muestra a
continuacin diferencias de matrices es alta entonces lo declara falso que
quiere decir que son distintas si fueran iguales el mensaje de resultado dira
true de verdadero.

66


Figura 3.7 Simulacin de comparacin en el Netbeans

En la comparacin con el tomafoto no se pudo hallar el enlace porque la base
de datos convierte las imgenes tomadas desde la cmara en jpg sin embargo
la base de datos trabajo en imgenes binarios y hasta ahora no se hallo la
frmula para cambiar de binario a jpg para que pueda hacer la comparaciones
por eso que la figura 3.7 muestra una comparacin de dos imgenes guardadas
en la unidad c//.


MANUAL DEL USUARIO DEL SISTEMA

El presente manual persigue el objetivo de hacer un estudio breve del
dispositivo mvil que se utilizar para las pruebas ya que el programa presenta
limitaciones del diseo.

67

REQUERIMIENTOS

Como el sistema es una aplicacin de software diseada para trabajar en
un telfono celular mvil. En la presente versin el dispositivo mvil debe
cumplir con los siguientes requerimientos mnimos:

Cmara de video
Sistema operativo : Symbian OS
Versin : 9.1, 9.2
Plataforma : S60 3 edicin
Feature Pack : initial Realease o Feacture Pack 1
Memoria RAM necesaria : 2MB
Capacidad de disco : 1.6 MB

Para la instalacin de la aplicacin, se requiere adems una PC con
conectividad bluetooth 2.0 o el software de comunicacin del dispositivo
mvil a una PC segn el tipo de conectividad de cada modelo de celular
(para el fabricante Nokia, el software de comunicacin es el Nokia PC
Suite). Sin embargo para este proyecto se utiliz un dispositivo
electrnico donde se coloca la memoria externa del celular ya que dicho
dispositivo es un lector y grabador de tarjetas multimedia mviles de
Siyoteam como un usb que se conecta directamente en el puerto usb de
la PC. Lo suficientemente ligero y compacto como para llevarlo en el
bolsillo o la bolsa del porttil, este lector y grabador de tarjetas de
memoria y tarjetas *SIM es compatible con la mayora de tarjetas de
almacenamiento del mercado, sobre todo, las nuevas tarjetas SD de alta
capacidad, miniSD y microSD y Transflash. Este lector es un accesorio
obligatorio para transferir y hacer copias de seguridad de los archivos del
mvil y de los contactos de la *SIM se recomienda visitar la pgina web
para mayores informaciones (29).


68

La versin es USB 2.0 de alta velocidad, la velocidad de transmisin de
hasta 480Mbps puede, 4 ranura de la tarjeta, puede leer-escribir las
siguientes series de tarjetas de memoria:

SD
SDHC
DV
T-Flash
Micro SD
Mini SD
M2
Sony Memory Stick de largo y palo corto sin adaptado


ESPECIFICACIONES DEL EQUIPO

Se presenta en esta seccin a manera de ejemplo de los requerimientos
de funcionamiento del sistema el modelo es:

Nokia 5800 / 5800d-1 XpressMusic

Pantalla : 360 x 640 (230400 pxeles)
Cmara de video : 2048 x1536 pixeles (3.15MP)
Sistema operativo : Symbian OS 9.4 Series 60 5th Edition (Symbian ^1)
CPU : ARMv6 @ 369 MHz
Memoria RAM : 128 MiB, 73MiB accesibles


69


Figura 3.8 modelo del celular Nokia

CONTENIDO DEL SISTEMA

El sistema es guardada con el nombre de Proyecto.sisx consta del
siguiente contenido:

Archivo Proyecto.sisx es una carpeta de la aplcacion a
instalarse en el dispositivo mvil.

La carpeta con los archivos necesarios para el funcionamiento de
la aplicacin.






Proyecto.sisx

70

GUIA DE INSTALACION

Introducir la carpeta del Proyecto que ser introducida con .sisx para el
momento de la aplicacin, luego subirla carpeta portable para la
instalacin en el celular.

En el dispositivo, entrar al men de las funciones del celular y dirigirse a
gestor de archivos. Seleccionar la memoria externa del dispositivo donde
se encontrara la carpeta Proyecto.


Figura 3.9 instalacin de la carpeta proyecto en el celular

Cabe aadir que en el proceso de llevar el toma foto que fue simulado
en el Netbeans se propuso introducir directamente en el celular con
extensin de .jar sin embargo el archivo no fue reconocido por el mvil
ya que el celular trabaja con otro tipo de resolucin ms alto que la
cmara por ser de la PC as como se observa en la imagen siguiente
como tambin antes de introducir una aplicacin se realiza los cdigos
en el mismo sistema operativo del Nokia que viene a ser el Symbian.

71


Figura 3.10 seleccin de la carpeta Capturefoto


Figure 3.11 resultado de la operacin que no reconoci el celular

72

Entonces como se pens despus hacer el cambio de los cdigos que
se realizaron en un principio del tomafoto se utiliz un programa llamado
i-nigma para poder utilizar la cmara del celular; este programa realiza
una aplicacin que sirve para leer con suma facilidad cdigos BIDI
desde un terminal mvil. En este caso para el sistema se utiliz como
plataforma para hacer recin la comparacin y obtener resultados.

Se procede a hacer click en la carpeta de proyecto y despus saldr un
mensaje de aplicacin del programa como se muestra en la figura 3.12


Figura 3.12 programa de instalacin del proyecto

Seguidamente una vez instalado el programa se realiza la prueba como
se observa en la siguiente figura 3.13




73

Figura 3.13 instalando el programa

Figura 3.14 activacin de la cmara

Como se observa en la figura anterior 3.14 se activa la cmara del
celular donde se procede a tomar las fotos.



74

Figura 3.15 captura de un billete de 100 soles

Dirigirse a Menu donde se encontrara la carpeta de compareimagen y
realizar la comparacin en el anexo F, se encuentra el resumen de los
cdigos de comparacin de imgenes realizados en Symbian. Por ser un
sistema operativo no se puede realizar la simulacin sino es ir
directamente al celular y observar los resultados; sin embargo al probar
en otro celular Nokia de origen chino se observo las fallas del programa
ya que la memoria interna del celular no soporta el algoritmo de todos
las diferentes denominaciones que se pens realizar en esta tesis es por
eso que tal hecho llevo ha malograr el sistema interno del celular que
hasta hoy est en reparacin.






















75

CONCLUSIN

Conclusiones

En la primera prueba el dispositivo no fue detectado por jmf por lo que en la
parte de la informacin deca: Sin dispositivos detectados, al parecer era
porqu cuando se ejecuta desde el jar directamente sin abrirlo desde
Netbeans NO detecta ningn dispositivos esto se da porque el programa no
puede encontrar el archivo jmf.properties, el archivo se encuentra en la
carpeta libs dentro de la carpeta donde se instalo el JMF, se debe copiar este
archivo a la raz de la aplicacin.

Se pudo obtener la imagen desde la cmara web y almacenarlo en la base de
datos, sin embargo para el llamado de la comparacin de imagen no reconoce
el archivo almacenado y es porque el archivo de la imagen esta en formato
binario ya que la base de datos cambia automtica en el blob la imagen en
binario todo archivo JPEG que se suba. Se tendra que cambiar el archivo
binario en JPEG para hacer el llamado para la comparacin de imgenes ya
que la programacin de comparacionimagen solo compara en formatos JPEG.

De no encontrar la manera de cambiar los formatos de binario a JPEG se
tomara la opcin de guardar la imagen En Archivos de la ventana principal de
la captura de fotos. As se podr almacenar temporalmente en C: o para el
futuro en la memoria interna del celular y hacer el llamado con su misma
extensin y posteriormente comparar las imgenes.

El archivo de tomafoto solo se pudo simular en Netbeans ya que este sistema
trabaja para PC con su respectiva resolucin sin embargo para la cmara
aunque se hizo lo posible por introducir el programa no se logro porque el
archivo jar es mas para juegos que son extrados de internet o ventas en
servicio autorizados que viene ya con su sistema de instalacin automtica por
este motivo se realizo en bajar un programa de internet i-nigma para obtener

76

desde una carpeta ir directamente a la cmara del celular y despus colocar en
el mismo i-nigma el archivo de la comparacin de la imagen.

Al realizar el proyecto de la comparacin en i-nigma el archivo no fue
reconocido por el sistema del celular, al buscar ayuda externa por este punto se
llego a la conclusin que el programa no es soportado por el celular ya que se
pens hacer la comparacin con 4 patrones que se encuentran en la base de
datos del programa como un gestor de base de datos, pese a insistir en colocar
el programa en el celular; lamentablemente el sistema se quedaba esttico y se
tena que reiniciar constantemente hasta llegar a malograr el sistema interno
por eso se recomienda no insistir en colocar un sistema que el archivo no
reconozca el celular sino se podra malograr el sistema como paso en esta
prueba.

Trabajos Futuros

Como las pruebas no salieron como se deseaban en un principio se debe hacer
mejoras en el estudio de la comparacin de la imagen ya que es un tema
complejo al tratarse de imgenes capturadas por la cmara, porque podran
situarse en diferentes condiciones tanto como el billete segn su conservacin
como tambin la posicin de la cmara al tomar la imagen, esto podra tener
muchas limitaciones al momento de comparar desde el mismo celular.

Se podra colocar un segundo algoritmo para poder implantar los 4 patrones
guardados en la base de datos para realizar la comparacin con diferentes
denominaciones del billete.

Para realizar un mejor acabado se tendra que programar botones en teclado
del celular que conduzcan mejor la entrada del programa para la persona
invidente.


77

El programa se podra girar a otro sentido ms complejo como reconocer la
validez del billete si es falso o verdadero y esto no solo servira para personas
con este tipo de discapacidad mencionada sino tambin el pblico en general
utilizando el carbide c++ como plataforma de comparacin de caracteres y
eigeimages como algoritmo de comparacin de imgenes as como tambin
PCA que hace una comparacin numricamente enlazada en lenguaje C++
utilizando el video cmara con frame.


78

REFERENCIAS
1. GONZALES, Rafael y WOODS, Richard. Digital Imagen Procecessing. segunda edicin.
New Jersey : editorial Prentice Hall, 2002. pgs. 11-14.
2. PAJARES Gonzalo, De la Cruz Jess M. y otros. Imgenes Digitales, Procesamiento
prctico con Java. Segunda edicion. Madrid : AlfaOmega, 2004. pg. 67. ISBN:
8478975632 ISBN-13: 9788478975631.
3. SNCHEZ, Jos Andrs Somolinos. Avances en robotica y vision por computador.
primera edicion. espaa : universidad de Castilla- La Mancha, 2002. pgs. 33-34.
ISBN 84-8427-199-4.
4. MathWorks. Accelerating the pace of engineering and science. [En lnea] 26 de Junio
de 2009. [Citado el: 10 de Abril de 2011.]
http://www.mathworks.es/support/solutions/en/data/1-
1ASCU/index.html?product=IP&solution=1-1ASCU.
5. ROHS, Michael. Recognition of 2-dimensional visual codes with the Nokia 7650. [En
lnea] 2003. [Citado el: 10 de Abril de 2011.]
http://www.mics.ch/SumIntU03/BGfeller.pdf.
6. BART, Evgeniy y Shimon Ullman. Image normalization by mutual information. [En
lnea] 2004. [Citado el: 14 de Abril de 2011.]
http://www.comp.leeds.ac.uk/bmvc2008/proceedings/2004/papers/paper_125.pdf.
7. HUANG, Shi. Adaptive image watermar kingscheme based on visual masking. s.l. :
IEEE Electronics letters, 1998. pg. 749. Vol. 34.
8. MANUEL C., Mariko Nakano Miyatake, Hctor Prez Meana. A robust watermarking
technique based on. [En lnea] 29 de Agosto de 2008. [Citado el: 15 de Abril de
2011.] http://jaibana.udea.edu.co/grupos/revista/revistas/nro052/Articulo13.pdf.
9. Fu, Mui J.y K. A survey on image segmentation. s.l. : Pattern Recognition, 1981. pgs.
3-16. Vol. Vol. 13.
10. RAFAEL C. Gonzales, Richard E. Woods. Digital Imagen Processing. Wilmington :
Addison- Wesley Iberoamericana S.A., 1996. pg. 481. ISBN: 0-201-62576-8.

79

11. MARTIN, Marcos. Tcnicas Clsicas de Segmentacin de Imagen. [En lnea] 21 de
mayo de 2002. [Citado el: 15 de Abril de 2011.]
http://poseidon.tel.uva.es/~carlos/ltif10001/segmenclasica.pdf.
12. F. Escolano, O. Colomina, M.A.Cazorla. Visin Artificial: Extraccin de
Caractersticas I. 2006.
13. HILL, green. Canny Edge Detection Tutorial. 2002.
14. JORGE, Valverde Rebaza. Deteccin de bordes mediante el algoritmo de Canny. [En
lnea] Noviembre de 2007. [Citado el: 22 de Abril de 2011.]
http://www.seccperu.org/files/Detecci%C3%B3ndeBordes-Canny.pdf.
15. KASS, M., Witkin, A., and Terzopoulos D. Snakes Active Contour Models. Londres :
Proceedings of the First International Conference on Computer Vision, 1987. pgs.
259-268.
16. Burns, M. Arithmetic: The Last Holdout. [aut. libro] Margaret J. Kenney Lorna J.
Morrow. The teaching and learning of algorithms in school mathematics. s.l. : Phi,
Delta, Kappan, 1994, pgs. 471-476.
17. RAUL, Varas Martnez. Extraccin de contornos rectos. [En lnea] 1999. [Citado el:
25 de Abril de 2011.]
http://www.elai.upm.es:8009/spain/Investiga/GCII/publicaciones/pub00/DOC005_0
0.pdf.
18. EIRIK, Eng. This GUI toolkit makes porting graphics to multiple platforms a snap. [En
lnea] 01 de Noviembre de 1996. [Citado el: 25 de Abril de 2011.]
http://www.linuxjournal.com/article/201.
19. MING, Hu Kuei-. Visual Pattern Recognition by Moment Invariants. s.l. : IRE
Transactions on Information Theory, 1962.
20. HERMILIO, Snchez. Optimizacin de una medida de semejanza para objetos
tridimensionales a partir de invariantes y transformaciones. Mxico : IIMAS, 2000.
21. RAUL, Pinto Elias and Humberto Sossa. Localizacin automtica de objetos 2d y 3d
en imagenes. s.l. : Computacin y Sistemas, 2002. pgs. 26-34.
22. MARIANA Vonzoy Villuendas, Aarn Ruiz Ziga, Mariko Nakano Miyatake, and
Hctor Prez Meana. Marca de agua semifril para autenticacn de imgenes
digitales. Mxico. : SEPI-ESIME, 2001.

80

23. FERNANDO, Martos Navarro. Tecnicos de Soporte Informatico de la Comunidad de
Castilla Y Len. Primera editcin. Sevilla : MAD, S.L., 2005. pg. 166. Vol. I, Temario
comun y test. Grupos III y IV de la comunidad Autnoma de Castilla y Len. ISBN: 84-
565-5098-4.
24. Snchez, CARLOS J. y Fernndez, Vctor. Reconocimiento ptico de Caracteres
(OCR). [En lnea] 2009. [Citado el: 26 de Abril de 2011.]
http://www.it.uc3m.es/jvillena/irc/practicas/08-09/09.pdf.
25. JOSE R. Rodn, Javier Rez R., Ismael Vargas P. OCR para caracteres impresos
basados en rboles Binarios. [En lnea] 2004. [Citado el: 25 de Abril de 2011.]
http://alojamientos.us.es/gtocoma/pid/pid10/OCRarbolbinario.htm.
26. JOSE R. Hilera Gonzlez, Juan P. Romero Villaverde, Jose A. Gutirrez de Mesa.
SISTEMA DE RECONOCIMIENTO PTICO DE CARACTERES (OCR) CON REDES
NEURONALES. [En lnea] 1996. [Citado el: 23 de Abril de 2011.]
http://www.cc.uah.es/hilera/docs/1996/c_jiacse1/c_jiacse1.htm.
27. COMALIS. ELB Web Hosting SL. Comalis soluciones web. [En lnea] Registro
Mercantil de Sevilla, 2005. [Citado el: 10 de diciembre de 2011.]
http://www.comalis.com/ayuda/alias-de-dominio.php.
28. phpMyAdmin. SourceForge.net. phpMyAdmin. [En lnea] 2001. [Citado el: 21 de
Diciembre de 2011.] http://localhost:8080/phpMyAdmin/.
29. MOBIHAUS. Siyoteam SY-630 CITAC Kartica. Powered by Interspire Shopping Cart.
[En lnea] 2012. [Citado el: 23 de Febrero de 2012.]
http://www.mobihaus.net/products/Siyoteam-SY%252d630-%C4%8Cita%C4%8D-
Kartica.html.
30. NOKIA. Carbide C++ tutorial 1 Helloworld. [En lnea] 23 de Setiembre de 2009.
[Citado el: 20 de febrero de 2011.]
http://wiki.forum.nokia.com/index.php/Carbide.c%2B%2B_Tutorial_1_-_Helloworld.
31. POULTON. Using Soun whit Symbian. [En lnea] 6 de octubre de 2003. [Citado el:
10 de febrero de 2011.] http://symbian.newlc.com/Using-Sound-with-Symbian.html.
32. Informtica-Hoy, Spivok. Informtica Hoy. Un servicio de OCR online. [En lnea]
Anuncios google, 2010. [Citado el: 25 de Abril de 2011.] http://www.informatica-
hoy.com.ar/aplicaciones-web/Un-servicio-de-OCR-online.php.

81

33. HOMERO V. Rios, Antonio Marn, Martn Acosta, Joaqun Pea y Nora E. Cancela.
Extraccin de contornos en tomografas y visualizacin 3D. Veracruz : s.n., 2005.
34. EFE. Cuba Out. Ciencia y Tecnologia. [En lnea] El Nacional, 26 de Enero de 2011.
[Citado el: 23 de Abril de 2011.]
http://cubaout.wordpress.com/2011/01/27/reconocimiento-optico-de-caracteres-
ocr-en-el-museo-del-holocausto-de-jerusalen/.
35. BRADLEY, Dereck y ROTH, Gerhard. Adaptive Thresholding Using the Integral
Image. [En lnea] 2007. [Citado el: 21 de Abril de 2011.]
http://people.scs.carleton.ca/~roth/iit-publications-iti/docs/gerh-50002.pdf.
36. VIOL, P y JONES, M.J. Robuste real-time face detection. Vancouver : International
Journal of Computer Vision, 2004. pgs. 137-154. Vol. 57.
37. CANNY, J. A Computational Approach to Edge Detection. s.l. : IEEE Transactions on
Pattern Analysis and Machine Intelligence, 1986. Vol. VIII.







82

A N E X O S

83

ANEXO A: MENU DEL FORMATO

package estudiandojmf;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

public class JMenuFormato extends JMenuItem implements Action Listener{
private int ancho;
private int alto;
private JPanel modificable;
private Camara padre;
private String dispositivo;
private int ordinal;

public JMenuFormato(String dispositivo,String etiqueta,int ordinal,int ancho,int
alto,Camara Padre,JPanel modificable)
{
super(etiqueta);
this.modificable=modificable;
this.ancho=ancho;
this.alto=alto;
this.addActionListener(this);
this.padre=Padre;
this.dispositivo=dispositivo;
this.ordinal=ordinal;
}
/*
* Retorna el nombre del dispositivo que representa
*/
public String getDispositivo()
{
return dispositivo;
}
public void actionPerformed(ActionEvent e) {
if(padre.getPlayer()==null)
panelCamara.estableceCamara(padre, dispositivo, ordinal);
else
jDispositivos.cambiaResolucion(dispositivo, padre.getPlayer(), ordinal);
padre.setSize(ancho+200, alto+200);
padre.setLocationRelativeTo(padre);
}
}

84

ANEXO B: CAMARA

package estudiandojmf;

import javax.media.Player;
import javax.swing.JPanel;

public class Camara extends javax.swing.JFrame
{
private Player p1;
/** Creates new form Camara */
public Camara(){
initComponents();
initComponents2();
}

public Player getPlayer()
{
return p1;
}
public void setPlayer(Player pin)
{
p1=pin;
}
public JPanel getCamara()
{
return panelCam;
}

private void initComponents2()
{
//registramos los Oyentes de eventos
eventos e=new eventos(this);
addWindowListener(e);
jmCArchivo.addActionListener(e);
jmCBD.addActionListener(e);
jmSalir.addActionListener(e);
jmAcerca.addActionListener(e);
//Cargamos en el menu los Dispositivos detectados
jDispositivos.menuDispositivos(this,jmDispositivos);
setLocationRelativeTo(this); //centramos el formulario
}

// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

panelCam = new javax.swing.JPanel();

85

jMenuBar1 = new javax.swing.JMenuBar();
jmCapturar = new javax.swing.JMenu();
jmCArchivo = new javax.swing.JMenuItem();
jmCBD = new javax.swing.JMenuItem();
jmDispositivos = new javax.swing.JMenu();
jmOtros = new javax.swing.JMenu();
jmSalir = new javax.swing.JMenuItem();
jmAcerca = new javax.swing.JMenuItem();


setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Toma una Foto");


panelCam.setBorder(javax.swing.BorderFactory.createTitledBorder("Camarita"))
;
panelCam.setPreferredSize(new java.awt.Dimension(640, 480));
panelCam.setLayout(new java.awt.BorderLayout());

jmCapturar.setText("Capturar");

jmCArchivo.setText("En Archivo");
jmCapturar.add(jmCArchivo);

jmCBD.setText("En Base de Datos");
jmCapturar.add(jmCBD);

jMenuBar1.add(jmCapturar);

jmDispositivos.setText("Dispositivos");
jMenuBar1.add(jmDispositivos);

jmOtros.setText("Otros");

jmSalir.setText("Salir");
jmOtros.add(jmSalir);

jmAcerca.setText("Acerca");
jmOtros.add(jmAcerca);

jMenuBar1.add(jmOtros);

setJMenuBar(jMenuBar1);

javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(

86


layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(panelCam,
javax.swing.GroupLayout.DEFAULT_SIZE, 201, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap()
.addComponent(panelCam,
javax.swing.GroupLayout.DEFAULT_SIZE, 120, Short.MAX_VALUE)
.addContainerGap())
);

pack();
}

public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Camara().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jmAcerca;
private javax.swing.JMenuItem jmCArchivo;
private javax.swing.JMenuItem jmCBD;
private javax.swing.JMenu jmCapturar;
private javax.swing.JMenu jmDispositivos;
private javax.swing.JMenu jmOtros;
private javax.swing.JMenuItem jmSalir;
private javax.swing.JPanel panelCam;
// End of variables declaration

}

87

ANEXO C: CONEXION


package estudiandojmf;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class conexion {

public static Connection iniciaConexion()
{
Connection conexion=null;
try
{
Class.forName("org.gjt.mm.mysql.Driver");
conexion = DriverManager.getConnection
("jdbc:mysql://localhost/billetes","root","idat");
}
catch (Exception e){mensajero.mensajeError(null, "Fallo al Conectar a
SGBD");}
return conexion;
}
public static void cerrarConexion(Connection con)
{
try {
con.close();
} catch (SQLException ex) {}
}
}

















88

ANEXO D: EVENTOS

package estudiandojmf;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class eventos implements WindowListener,ActionListener{
private Camara padre;
public eventos(Camara padre){this.padre=padre;}
public void windowOpened(WindowEvent e) {
}
public void windowClosing(WindowEvent e) {
miPlayer.detenerPlayer(padre.getPlayer());
}
public void windowClosed(WindowEvent e) {
}
public void windowIconified(WindowEvent e) {
}
public void windowDeiconified(WindowEvent e) {
}
public void windowActivated(WindowEvent e) {
}
public void windowDeactivated(WindowEvent e) {
}

public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("En Archivo"))
{

miPlayer.guardaImagenEnFichero(miPlayer.capturaFoto(padre.getPlayer()),gua
rdaComo.verDialogo(padre));
}
else if(e.getActionCommand().equals("En Base de Datos"))
{
miPlayer.guardaImagenEnBD(miPlayer.capturaFoto(padre.getPlayer()));
}
else if(e.getActionCommand().equals("Salir"))
{
miPlayer.detenerPlayer(padre.getPlayer());
System.exit(0);
}
}
}

89

ANEXO E: GUARDARCOMO
package estudiandojmf;

import java.awt.Component;
import java.io.File;
import javax.swing.JFileChooser;

public class guardaComo {
public static File verDialogo(Component padre)
{
File rpta=null;
String imagen="";
JFileChooser f = new JFileChooser();
f.setDialogTitle("Guardar Captura como...");
f.showSaveDialog(padre);
if(f.getSelectedFile()!=null)
{
imagen= f.getSelectedFile().getAbsolutePath();
if (imagen.lastIndexOf(".") > 0)
imagen = imagen.substring(0,imagen.lastIndexOf("."));

imagen = imagen+".JPG";
rpta = new File(imagen);
}
return rpta;
}
}



90

ANEXO F: COMPARACIN DE BILLETES

Algoritmo comparacin de imagen

Entorno:
entero dinero /* esta variable almacenar la cantidad de pesos que el usuario
solicita al cajero*/

entero billetes200, billetes100, billetes50, billetes20, billetes10

/* variables que almacenarn la cantidad de billetes de cada cantidad que el
cajero deber de dispensar */

INICIO

/* PRIMERO: Solicitud de la cantidad al usuario */

ESCRIBIR . \n\n Bienvenido programa de comparacin de billetes \n\n
ESCRIBIR .\n \t Introduzca una cantidad de soles y seguidamente pulse la tecla
INTRO:
LEER .%d. dinero


/* SEGUNDO Operaciones para averiguar de cuantos billetes de cada tipo se
necesitan */

* Recordad que tambin se puede poner como dinero = dinero-billetes100*100
*/
billetes100 = dinero/100;
dinero = dinero%100;
billetes50 = dinero/50;
dinero = dinero%50;
billetes20 = dinero/20;
dinero = dinero%20;
billetes10 = dinero/10;
dinero = dinero%10;

/* TERCERO : Impresin de toda la informacin */

ESCRIBIR . \n \n Se le dar los siguientes billetes:\n .

ESCRIBIR .\n \t\t%d billetes de 100, \n \t\t%d billetes de 50, \n \t\t%d billetes de
20., billetes10,

ESCRIBIR .\n \t\t%d billetes de 100, \n \t\t%d billetes de 50, \n \t\t%d billetes de
20., billetes10,


91

ESCRIBIR .\n \t\t%d billetes de 100., billetes50 billetes de 20., billetes de10,
FIN

$% ,('&(+A cdigo entero
(Proxy)para comparar el cdigo binario


/* Este programa trata de simular el comportamiento de un programa de
comparacin de billetes en soles*/
/* ENTRADA: una cantidad positiva entera y mltiplo de 10*/
/* SALIDA: un numero de billetes de cada cantidad en soles*/n/t/

/* **** BIBLIOTECAS NECESARIAS **/

#include <comparacion.h>
/* esta biblioteca es necesaria cuando se necesita llevar a cabo n y t */


/* ** DEFINICIN DE CONSTANTES ***/

/* No hay ninguna*/

/* Comienza el programa*/
main() { /*INICIO*/

/* DECLARACIN DE VARIABLES*/

int dinero ;
/* esta variable almacenar la cantidad de soles que el usuario solicita al
programa*/

int billetes100, billetes50, billetes20, billetes10;
/* Variables que almacenarn la cantidad de billetes de cada cantidad que
el programa deber de comparar */

/* UNA VEZ QUE SE HAN DECLARADO TODAS LAS VARIABLES,
COMIENZAN LAS INSTRUCCIONES */

/* PRIMERO: Solicitud de la cantidad al usuario */

printf( \n\n Bienvenido al comparador de billetes\n\n);
printf( \n \t Introduzca una cantidad de soles y seguidamente pulse la tecla
INTRO: );
scanf( %d, &dinero)


/* SEGUNDO Operaciones para averiguar de cuantos billetes de cada tipo se
necesitan */ para realizar la comparacin


92


billetes100 = dinero/100;
dinero = dinero%100;
billetes50 = dinero/50;
dinero = dinero%50;
billetes20 = dinero/20;
dinero = dinero%20;
billetes10 = dinero/10;
dinero = dinero%10;


/* TERCERO : Impresin de toda la informacin */

printf( \n \n Se le dar los siguientes billetes:\n );

printf( \n \t\t%d billetes de 100, \n \t\t%d billetes de 50, \n \t\t%d billetes de 20,\n
\t\t%d billetes de 10;
mesagge(/* No hay ninguna*/)

printf( \n \t\t%d billetes de 100, \n \t\t%d billetes de 50, \n \t\t%d billetes de 20,
billetes10);
mesagge(/* No hay ninguna*/)

printf( \n \t\t%d billetes de 10, billetes5 );
mesagge(/* No hay ninguna*/)

También podría gustarte