Академический Документы
Профессиональный Документы
Культура Документы
Director
Ingeniero Hugo Humberto Morales Pea
Nota de aceptacin:
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
____________________________________
Firma del presidente del jurado
____________________________________
Firma del jurado
____________________________________
Firma del jurado
Quisiera agradecer primero a Dios, en quien todo es posible, tambin quisiera agradecer al
profesor gua del proyecto de grado, el ingeniero Hugo Humberto Morales Pea que apost
por la importancia y necesidad de realizar el presente proyecto, adems tambin quiero
agradecerle por su ayuda y gestiones que fueron muy importantes durante el proceso de
desarrollo del proyecto y finalmente quiero agradecer a la ingeniera Luz Stella Valencia por
su apoyo y valiosos consejos.
CONTENIDO
pg.
INTRODUCCIN................................................................................................................17
2. JUSTIFICACIN.............................................................................................................21
3. OBJETIVOS.....................................................................................................................22
3.1 GENERAL......................................................................................................................22
3.2 ESPECFICOS................................................................................................................22
4. MARCO REFERENCIAL................................................................................................23
4.1 MARCO TERICO........................................................................................................23
4.1.1 Reconocimiento ptico de Marcas (OMR).................................................................23
4.1.1.1 Definicin..................................................................................................................23
4.1.1.2 Generalidades............................................................................................................23
4.1.2 Procesamiento de imgenes.........................................................................................25
4.1.2.1 Representacin de las imgenes................................................................................26
4.1.2.2 Representacin del color - Modelos de color............................................................27
4.1.2.3 Captura de imgenes, representacin y almacenamiento..........................................35
4.1.2.4 Operaciones individuales..........................................................................................38
4.1.2.5 Transformaciones geomtricas..................................................................................40
4.1.2.6 Operaciones espaciales..............................................................................................45
6
5. DISEO METODOLGICO...........................................................................................57
5.1 HIPTESIS.....................................................................................................................59
6. ANLISIS.........................................................................................................................61
6.1 DECLARACIN DE TRABAJO...................................................................................61
6.2 REQUERIMIENTOS......................................................................................................64
6.2.1 Requerimientos funcionales.........................................................................................64
6.2.2 Requerimientos no funcionales....................................................................................65
6.3 CASOS DE USO.............................................................................................................65
6.3.1 Diagrama de casos de uso............................................................................................65
6.3.2 Especificacin de casos de uso....................................................................................65
6.4 DIAGRAMA DE ACTIVIDAD......................................................................................67
6.5 DIAGRAMA DE SECUENCIA.....................................................................................67
6.6 DIAGRAMA DE COMUNICACIN............................................................................70
6.7 DIAGRAMAS DE ESTADOS........................................................................................70
6.8 DIAGRAMA DE CLASES.............................................................................................74
7. DISEO............................................................................................................................76
8. DISEO DE INTERFACES.............................................................................................84
8.1 INTERFAZ DE BASE DE BASE DE DATOS...............................................................84
8.2 INTERFAZ GRFICA DE USUARIO..........................................................................85
8.2.1 Diseo esttico de la interfaz grfica de usuario..........................................................85
8.2.2 Diseo esttico de la interfaz grfica de usuario..........................................................87
8.2.3 Diseo dinmico de la interfaz grfica de usuario.......................................................92
9. IMPLEMENTACIN.......................................................................................................95
9.1 ESTRATGIA PARA EL PROCESAMIENTO DE LAS IMAGENES.........................95
9.1.1 Deteccin de las marcas de alineacin.........................................................................96
9.1.2 Alineacin de la imagen...............................................................................................97
9.1.3 Eliminacin de la informacin innecesaria..................................................................97
9.2.4 Deteccin de las marcas...............................................................................................98
10. PRUEBAS.......................................................................................................................99
10.1 PRUEBAS DE COMPONENTES................................................................................99
11. CONCLUSIONES.........................................................................................................105
BIBLIOGRAFA.................................................................................................................106
LISTA DE FIGURAS
pg.
14
LISTA DE ANEXOS
pg.
15
RESUMEN
El presente documento final de trabajo de grado muestra los resultados de una investigacin
sobre los fundamentos, las tcnicas y algoritmos del procesamiento de imgenes digitales
necesarios para desarrollar un sistema de reconocimiento de marcas pticas, junto con el
anlisis, diseo e implementacin de un producto de reconocimiento de marcas pticas,
bautizado Automatizador de recoleccin de datos de formularios, para el procesamiento de
evaluaciones en el proceso de preparacin para los ECAES (Exmenes de Estado de
Calidad de la Educacin Superior) en el programa de Ingeniera de Sistemas y
Computacin de la Universidad Tecnolgica de Pereira.
Palabras claves: reconocimiento de marcas pticas, procesamiento de imgenes digitales.
16
INTRODUCCIN
En un sentido prctico, por medio de la creacin del producto aqu descrito, se podrn
recolectar los datos de los formularios de respuesta con ms eficacia y precisin, ayudando
al ahorro de tiempo y recursos y mejoramiento general del proceso de preparacin para los
ECAES.
17
18
De lo anterior se puede decir, que tal como se seala explcitamente, a partir de los
resultados de los ECAES se podrn establecer comparaciones tanto a nivel de los
programas como de las instituciones de educacin superior, adems un seguimiento de su
progreso en el tiempo, en consecuencia, estos resultados seran un indicador de la calidad
de la educacin impartida en las universidades, de la fortaleza de programas y
universidades a nivel nacional y de sus esfuerzos por evolucionar. El nuevo decreto tambin
estipula que a partir del ao 2009, todos los programas universitarios, sin establecer
excepcin alguna debern ser evaluados por los ECAES, siguiendo con el lineamiento de
evaluar la calidad del servicio educativo usando los ECAES como un instrumento para tal
fin.
En la Universidad Tecnolgica de Pereira, de forma concreta en el programa de Ingeniera
de Sistemas y Computacin se ha estado adelantado un curso de preparacin a los ECAES,
dirigido a los estudiantes que estn prximos a presentarlo, este proceso ha ido
transformndose, creciendo en complejidad y cantidad de informacin de la cual dispone y
procesa, en el curso se proporciona una preparacin especfica en cuanto a contenidos clave
y preguntas similares a las de la prueba, en este momento se cuenta con una base de
preguntas lo suficientemente amplia como para realizar simulacros en diferentes reas del
examen, tratando de emular lo ms fidedignamente posible la presentacin de los ECAES,
incluso las respuestas de los simulacros se consignan en formas similares a las que los
estudiantes van a enfrentar, sin embargo, la calificacin de las respuestas es un proceso que
se ha convertido en algo complicado y en un cuello de botella para el proceso por el gran
volumen de informacin que se debe procesar para calificar los formatos de respuesta, el
proceso de calificacin es manual y se vuelve repetitivo y montono, as como tambin
demanda gran cantidad de tiempo, caractersticas por las cuales se pueden presentar errores
en algn punto de la revisin y se utiliza un tiempo valioso en el procesamiento cuando este
podra ser aprovechado en tareas ms apremiantes para la preparacin de los cursos y el
proceso formativo de los estudiantes, adems se hace imperioso que los resultados de los
simulacros estn disponibles lo ms rpido posible para que el curso tenga un proceso de
retroalimentacin ms efectivo y se pueden reforzar con prontitud las reas que lo
requieran.
Para hablar de cifras concretas y contextualizar con ms exactitud la situacin, se debe
anotar que segn informacin suministrada por el Ingeniero Hugo Humberto Morales Pea,
responsable del curso de preparacin para los ECAES, en el curso se preparan en promedio
70 estudiantes cada vez, incluyendo las jornadas diurna y nocturna de Ingeniera de
Sistemas y Computacin, se hacen alrededor de 6 simulacros a lo largo del curso, los cuales
poseen aproximadamente 320 preguntas en total, lo cual arroja como resultado, que se
deben calificar 22.400 preguntas, en cuanto a la calificacin de las pruebas, un simulacro
con 60 preguntas realizado por 50 estudiantes consume en su calificacin unas 16 horashombre de trabajo, todas estas cifras evidencian no slo el gran nmero de preguntas que se
deben calificar sino tambin la gran cantidad de tiempo necesario para su calificacin y
reglamenta el Examen de Estado de Calidad de la Educacin Superior. Bogota, D.C.: La Presidencia,
2009. 4 p.
19
adems se debe tener en cuenta que segn la tendencia actual estas cifras aumentan con el
tiempo.
En el presente documento, se describe el desarrollo de un producto para el levantamiento
de los datos consignados en los exmenes de preparacin para los ECAES, en papel, hacia
medios digitales, para su respaldo, calificacin y posterior anlisis, por medio de tcnicas
de procesamiento de imgenes digitales, aplicadas a las imgenes resultado de escanear las
hojas de respuesta de los exmenes.
Este tipo de aplicaciones son conocidas como software OMR (Optical Mark
Recognition/Reading, Reconocimiento/Lectura de Marcas pticas en espaol), en las que
se hace levantamiento de datos a partir de documentos impresos los cuales tienen campos
en donde se hace una marca para ingresar datos, luego, con un escner los formatos o
formas son digitalizados, y posteriormente con tcnicas de procesamiento de imgenes se
extraen los datos.
El rango de accin de esta clase de aplicaciones abarca otros usos aparte del levantamiento
de respuestas en exmenes, como el procesamiento de encuestas, boletas de lotera, e
inclusive es utilizado para el conteo de votos en pases como Noruega, Inglaterra, Gales,
Escocia, entre otros, como se ve en un reporte de London Assemblys Elections Review
Committee4, tambin se puede pensar en otras aplicaciones para un mbito acadmico,
como evaluaciones docentes o exmenes de ingreso, para el caso de la Universidad
Tecnolgica de Pereira en la actualidad existen dos potenciales campos de accin, aparte
del aqu descrito, los cuales son los simulacros en los cursos de preparacin para el examen
del ICFES que desarrolla la institucin y las encuestas de evaluacin docente.
4 INGLATERRA. LONDON ASSEMBLYS ELECTIONS REVIEW COMMITTEE. Counting the Vote [en
lnea]. Londres: diciembre 2007 [citado: 10 octubre 2009]. Disponible en internet:
<http://www.london.gov.uk/assembly/reports/general/counting-the-vote.pdf>.
20
2. JUSTIFICACIN
21
3. OBJETIVOS
3.1 GENERAL
Analizar, disear e implementar un producto de reconocimiento de marcas para el
procesamiento de evaluaciones en la preparacin para los ECAES en el programa de
Ingeniera de Sistemas y Computacin de la UTP, por medio de tcnicas de procesamiento
digital de imgenes.
3.2 ESPECFICOS
22
4. MARCO REFERENCIAL
4.1.1.1 Definicin
Segn Bhattacharya5, Optical Mark Recogition (Reconocimiento de Marcas pticas en
espaol) tambin llamado, Optical Mark Reading (Lectura de Marcas pticas en espaol) o
simplemente OMR, es el proceso de detectar datos de formatos pre-impresos marcados por
humanos.
4.1.1.2 Generalidades
Como dice Perry6, los formatos estn diseados de tal forma que una marca en una posicin
determinada representa algn dato. En el Network Dictionary7 se seala que esta tecnologa
es til para aplicaciones en donde gran cantidad de formatos llenados a mano necesitan ser
procesados rpidamente y con gran precisin como en boletas de votacin, boletas de
lotera, encuestas de investigacin de mercados, exmenes, encuestas de evaluacin de
productos, registros de asistencia, entre muchos otros.
En un sistema de OMR el primer paso es introducir la informacin manualmente en los
formatos, marcando campos destinados a tal fin, que generalmente son burbujas o
rectngulos (en las figuras 1 y 2 se muestra un ejemplo de estos tipos de casillas de
respuesta), para luego procesar los formatos.
Los inicios del OMR se remontan a los aos 1960 segn Couper et al. 8, en ese entonces
segn manifiestan los autores anteriormente referenciados y an en la actualidad como
dicen Godse y Godse9 se han empleado y an se emplean dispositivos dedicados para
procesar los formatos, tales dispositivos son conocidos como optical mark reader (lector
ptico de marcas en espaol), estos dispositivos iluminan el papel con un haz de luz,
entonces la reflexin contrastante en partes predeterminadas de la pgina, se utiliza para
5 BHATTACHARYA, Joyrup. Rudiments of computer science. Calcuta, India: Academic Press, 2010. p. P12-8.
6 PERRY, Bob. Organisational Management and Information Systems. Oxford, Reino Unido: CIMA
Publishing, 2008. p. 5.
7 WWW.JAVVIN.COM. Network Dictionary. Saratoga, Estados Unidos: Javvin Technologies Inc., p.357
8 COUPER, P. Mick, et al. (eds). Computer Assisted Survey Information Collection. New York, Estados
Unidos: John Wiley & Sons, Inc., 1998. p. 571.
9 GODSE, A. P. y GODSE, D. A. Digital Computer Fundamentals. Pune, India: Technic Publications Pune,
2007. c. 4 p. 26.
23
detectar las reas marcadas, ya que estas reflejan menos luz que las reas blancas del papel,
otros lectores usan formas pre-impresas sobre papel transparente y miden la cantidad de luz
que pasa a travs del papel, as pues, una marca en cualquier cara del papel reducir la
cantidad de luz que pasa a travs del mismo.
Sin embargo, como lo indica Perry10, existe un mtodo alternativo para procesar los
formatos a travs de software para OMR de escritorio, este ofrece la posibilidad de leer y
entender la posicin de cada marca en los formatos, gracias al software de escritorio para
OMR un usuario puede crear formatos en un procesador de texto e imprimirlos con una
impresora lser. Este tipo de software trabaja con un escner de imgenes de escritorio
comn para procesar las formas una vez han sido llenadas como explica Bhattacharya11.
El OMR se diferencia del OCR (Optical Character Recognition, Reconocimiento de
Caracteres pticos en espaol) por el hecho de que no se necesita un motor de
reconocimiento avanzado, esto, por el hecho de que existen pocas posibilidades de no leer
las marcas, ya que deben tener un contraste alto y adems tener una silueta de fcil
reconocimiento, segn la explicacin de Godse y Godse12.
24
25
I max I min
I max I min
Donde Imax e Imin son las intensidades mxima y mnima de una regin o imagen.
Las imgenes con un alto contraste tienen grandes regiones de oscuro y luz, entre tanto, las
imgenes con un buen contraste tienen una buena representacin de todas las intensidades
de luminancia.
Cuando el contraste de una imagen crece, el espectador percibe un aumento en el detalle,
esto sin embargo es puramente una percepcin, ya que la cantidad de informacin en la
imagen no aumenta, slo es que nuestra percepcin es sensible al contraste de luminancia,
ms que de las intensidades de luminancia absolutas.
4.1.2.2 Representacin del color - Modelos de color
S (short wavelength, longitud de onda corta en espaol): son sensibles a la luz hacia
el extremo final azul del espectro visual.
M (medium wavelength, longitud de onda media en espaol): son sensibles a luz
alrededor del verde.
L (long wavelength, longitud de onda larga en espaol): son sensibles a la luz hacia
la regin roja del espectro.
15 NIXON, Mark y AGUADO, Alberto. Feature Extraction an Image Processing. 2 ed. Oxford, Reino Unido:
Academic Press, 2008. p. 5.
27
As como el sistema de visin humano construye los diferentes colores con tres tipos de
estmulos, los sistemas de color estn basados en tres valores, que son llamados valores triestmulo.
Hay numerosos espacios de color basados en valores tri-estmulo como el espacio de color
YUV que es usado para la transmisin de televisin bajo el estndar NTSC, que es el
actualmente usa Colombia, o el espacio de color XYZ que no corresponde a los colores
primarios fsicos pero es usado como un espacio de color, es un espacio de colores
imaginarios, es fcil convertir desde el espacio de color XYZ a otros espacios de color con
una simple multiplicacin de matrices.
Todas las referencias a los espacios de color en lo sucesivo, asumirn que los colores estn
normalizados (valores entre 0 y 1,0). Esto se logra dividiendo el color por valor mximo,
por ejemplo, un color de 8 bits es normalizado dividiendo por 255.
RGB (Red, Green, Blue)
El espacio de color RGB consiste en tres primarios aditivos: red (rojo), green (verde) y
blue (azul), los componentes espectrales de estos colores se combinan aditivamente para
producir un color resultante, la cantidad de cada componente de color primario es conocida
como su intensidad.
El modelo RGB es representado por un cubo tri-dimensional con rojo, verde y azul en las
esquinas de cada eje como se muestra en la figura 3, el negro queda en el origen y el blanco
en la posicin opuesta del cubo, la escala de gris sigue la lnea de blanco a negro. En un
sistema de color de 24 bits, con 8 bits por canal, el color rojo sera (255, 0, 0), entones, en
un sistema tpico de 8 bits las intensidades varan de un mnimo de 0, hasta un mximo de
255 en una sistema de 8 bits por canal, y como cada uno de los tres colores tiene 256
niveles de intensidad, existen 2563=16,777,216 diferentes combinaciones de las
intensidades de rojo, verde y azul, el nmero de colores conforman la paleta de colores del
modelo de color RGB.
El modelo RGB simplifica el diseo de sistemas grficos de computacin pero no es ideal
para todas las aplicaciones, los componentes de los colores rojo, verde y azul estn
altamente correlacionados, lo que hace difcil ejecutar algunos algoritmos de procesamiento
de imgenes, muchas tcnicas de procesamiento, como los histogramas de ecualizacin,
trabajan solamente en el componente de intensidad de una imagen, este proceso es ms
fcil de implementar en el espacio de color HSI, Hue (matiz), Satuarion (saturacin) e
Intensity (intensidad).
28
Muchas veces es necesario convertir una imagen RGB a una imagen en escala de grises.
Para convertir de color RGB a una escala de grises, se puede utilizar la siguiente ecuacin:
Intensidad de escala de Gris = 0.299R + 0.587G + 0.114B
La anterior ecuacin viene del estndar para la luminancia de la NTSC, (National
Television System Committee, Comisin Nacional de Sistemas de Televisin en espaol) es
un sistema de codificacin y transmisin de televisin en color analgica desarrollado en
Estados Unidos en torno a 1940, que como anota Kellison 17, se emplea en la actualidad en
la mayor parte de Amrica, incluida Colombia.
Otra forma de conversin comn de color RGB a escala de grises es un promedio simple:
Intensidad de escala de Gris = 0.333R + 0.333G + 0.333B
Esta conversin es muy utilizada en muchas aplicaciones, por ejemplo este es un paso en la
conversin del espacio de color RGB al HSI.
Como el verde es un gran componente de la escala de grises, muchos lo utilizan por si solo
como informacin de la escala de grises, para reducir aun ms los colores a blanco y negro
se puede establecer que los los valores normalizados por debajo de 0,5 se conviertan a
16 LUONG, Chi Mai. Introduction to computer vision and image processing. Institute of Information
Technology Hanoi, Vietnam, 2000. p 9.
17 KELLISON, Cathrine. Producing for TV and new media: a real-world approach for producers. 2 ed.
Burlington, Massachusetts, Estados Unidos: Focal Press, 2009. p. 20.
29
negro y los otros a blanco, esto es simple pero no produce la mejor calidad.
CMY/CMYK (Cyan, Magenta, Yellow / Cyan, Magenta, Yellow, Key|blacK )
El espacio de color tiene como primarios al cyan (cian), magenta (magenta) y yellow
(amarillo), es el complemento del espacio de color RGB, ya que el cian, magenta y amarillo
son los complementos del rojo, verde y azul respectivamente. Los colores cian, magenta y
amarillo son conocidos como los sustractivos primarios, estos primarios se sustraen a la luz
blanca para obtener el color deseado. El color cian absorbe al rojo, el magenta absorbe al
verde y el amarillo absorbe al azul. Se podra incrementar el verde en una imagen
aumentando el amarillo y el cian o disminuyendo el magenta (complemento del verde).
Como los espacios de color RGB y CMY son complementos es fcil convertir entre ambos.
Para pasar del espacio de color RGB a CMY, se resta el complemento del blanco:
C = 1.0 R
M = 1.0 - G
Y = 1.0 - B
Y para ir de CMY a RBG:
R = 1.0 - C
G = 1.0 - M
B = 1.0 - Y
La mayora de la gente est familiarizada con la mezcla de aditivos primarios utilizados en
el espacio de color RGB. A los nios se les ensea que la mezcla de rojo y verde produce
marrn. En el espacio de color RGB, rojo ms verde, produce amarillo. Los que tienen
inclinaciones artsticas son muy eficientes en la creacin de un color deseado con la
combinacin de colores primarios sustractivos. El espacio de color CMY proporciona un
modelo de color sustractivo.
Se debe tener en cuenta que estas ecuaciones y espacios de color estn normalizados, todos
los valores estn entre 0.0 y 1.0, en un sistema de color de 24 bits el color cian seria igual a
C = 255 R. En la industria de la imprenta se aade un cuarto color al modelo CMY.
Los tres colores, cian, magenta y amarillo, ms el negro son conocidos como los colores
proceso, son otro modelo de color llamado CMYK, el negro (K) es aadido en el proceso
de impresin porque es un negro ms puro que la combinacin de los otros tres colores, el
negro puro produce mayor contraste, adems la tinta negra es ms barata que la tinta a
color.
30
31
color HSI.
El espacio de color HSI esta modelado en coordenadas cilndricas, como se aprecia en la
figura 5. El matiz (H), es representado por el ngulo H, variando de 0 a 360, la saturacin
(S), corresponde al radio, que varia desde 0 hasta 1 y la intensidad (I) que toma valores a
travs del eje Z, con 0 siendo negro y 1 blanco.
Cuando S = 0, el color es de un gris de intensidad 1; cuando S = 1, el color est en el lmite
de la base del cono superior; cuanto mayor sea la saturacin, mayor es el color de blanco /
gris / negro (dependiendo de la intensidad).
Ajustar el matiz (H) variar el color desde rojo a 0, pasando por verde a 120, azul a 240,
hasta rojo de nuevo a 360; cuando I = 0, el color es negro y, por tanto H no est definido.
Cuando S = 0, el color es en escala de grises, entonces H es tambin es indefinido en este
caso.
Ajustando la intensidad (I), el color puede ser ms claro o ms oscuro; manteniendo S = 1 y
ajustando I se crean las sombras del color establecido.
19 LUONG, Chi Mai. Introduction to computer vision and image processing. Institute of Information
Technology Hanoi, Vietnam, 2000. p 12.
32
Las siguientes frmulas muestran cmo convertir del espacio RGB al espacio HSI:
I=
1
RGB
3
S = I
3
[min R , G , B]
RGB
H = cos1
1
[ RG RB]
2
RG2 RG R B
1
1S
3
r=
S cos H
1
1
3
cos 60 H
g = 1r b
Para el sector GB, (120 H 240):
H = H 120
r=
1
1S
3
g=
S cos H
1
1
3
cos 60H
r = 1 g b
Para el sector BR, (240 H 360):
H = H 240
g=
1
1S
3
33
b=
S cos H
1
1
3
cos 60H
r = 1 g b
Los valores r, g y b son valores normalizados de R, G y B, para convertirlos se debe
utilizar:
R = 3Ir, G = 3Ig, B = 3Ib
HSV (Hue, Saturation, Value)
Como explican Pajares y de la Cruz20, este modelo es similar al HSI, slo que la intensidad
varia en un slo prisma en vez de dos, una representacin grfica de este modelo de color
se puede ver en la figura 6.
20 PAJARES, Gonzalo y DE LA CRUZ, Jess. Visin Por Computador: Imgenes Digitales Y Aplicaciones.
2 ed. Mxico, D.F.: Alfaomega Grupo Editor, S.A. de C.V, 2008. p.125.
34
Antes de que se pueda procesar una imagen en un computador, se necesita que dicha
imagen est en forma digital, para transformar una imagen de tono continuo a una digital se
35
36
Como dicen Burger y Burge22, estas representaciones binarias de la seal o pxeles tienen la
misma longitud k para toda la imagen, por lo que un pxel puede representar 2 k valores
diferentes, en donde el valor k es llamado profundidad de bit (o simplemente profundidad)
de la imagen, aunque se debe aclarar que cuando se habla de profundidad de una imagen
esta se refiere al nmero de bits utilizados para representar un componente de color (o
canal) y no el nmero de bits necesarios para representar un pxel de color en su totalidad,
por ejemplo, una imagen de color RGB con una profundidad de 8 bits de profundidad
requerira 8 bits por cada canal para un total de 24 bits por pxel, mientras que esa misma
imagen con una profundidad de 12 bits requerira un total de 36 bits por pxel. La
composicin exacta de un pxel depende del tipo de la imagen, por ejemplo, binaria, en
escala de grises, o color RGB.
Imgenes en escala de grises (imgenes de intensidad)
Los datos en una imagen en escala de grises se almacenan en un slo canal que representa
la intensidad, brillo o densidad de una imagen. En la mayora de los casos los valores son
positivos y en el rango [0...2k -1]. Las imgenes en escala de grises usan k=8 bits (1 byte)
por pxel y la intensidad vara en el rango [0..255], donde 0 representa el brillo mnimo
(negro) y 255 el mximo brillo (blanco).
Para muchas aplicaciones de impresin y fotografa digitales, como tambin en medicina y
astronoma, 8 bits por pxel no son suficientes, por lo que se pueden encontrar imgenes de
12, 14 y 16 bits de profundidad en estos dominios.
Imgenes binarias
Las imgenes binarias son un tipo especial de imagen de intensidad en donde los pxeles
slo pueden tomar uno de dos valores, blanco o negro. Estos valores son normalmente
codificados utilizando un solo bit por pxel (0/1). Las imgenes binarias son usadas para
archivar documentos, codificar transmisiones de fax e impresin electrnica.
Imgenes a color
La mayora de las imgenes a color codifican utilizando el espacio de color RGB (Red
Green Blue, Rojo Verde Azul en espaol), el ms usado para la visualizacin de imgenes
en la computacin, aunque existen otros espacios de color usados en este mbito, como por
ejemplo el espacio YCbCr utilizado en el formato de imagen JPEG para la codificacin de la
informacin. Usualmente se emplean 8 bits por cada color de componente, en estas cada
pxel requiere 3 x 8 = 24 bits para codificar los tres componentes, y el rango de cada
componente es [0...255]. Como pasa con las imgenes de intensidad 30, 36 y 42 bits por
pxel son usados comnmente para aplicaciones profesionales.
22 BURGER, Wilhelm y BURGE, Mark J. Principles of Digital Image Processing. Fundamental Techniques.
Londres, Inglaterrra: Springer-Verlag London Limited 2009, 2009. p. 10-12.
37
38
0
para p p 1
255 para p p1
255 para p p 1
0
para p p1
Otro tipo de operaciones individuales utiliza tcnicas estadsticas. Para las operaciones
estadsticas es fundamental el uso de los histogramas, estos son utilizados para ver el perfil
de intensidad de una imagen, el histograma provee informacin sobre el contraste y la
distribucin total de intensidad de una imagen, este consiste en una grfica de barras de las
intensidades de los pxeles, a lo largo del eje x se colocan las intensidades de los pxeles y
en el eje y se indica el nmero de ocurrencias de cada intensidad. En la figura 10 se muestra
un ejemplo sencillo de un histograma.
Las operaciones estadsticas son utilizadas especialmente para mejorar la calidad de las
imgenes, modificando su contraste y ajustando los valores de intensidad.
Existen otra clase de tcnicas que manipulan las imgenes a nivel binario como las
transformaciones geomtricas y las operaciones espaciales, estas se explicarn con ms
detalle en las siguientes secciones.
39
25 LUONG, Chi Mai. Introduction to computer vision and image processing. Institute of Information
Technology Hanoi, Vietnam, 2000. p 17.
26 COMNINOS, Peter. Mathematical and Computer Programming Techniques for Computer Graphics.
Londres: Springer-Verlag London Limited 2006, 2006. p. 165-172.
27 PAJARES, Gonzalo y DE LA CRUZ, Jess. Visin Por Computador: Imgenes Digitales Y Aplicaciones.
2 ed. Mxico, D.F.: Alfaomega Grupo Editor, S.A. de C.V, 2008. p. 74.
40
[][
Sx 0 0
x'
y' = 0 S y 0
1
0 0 1
][ ]
x
y
1
[][
1 0
x'
y' = 0 1
1
0 0
id
jd
1
][ ]
x
y
1
41
Rotacin: segn Pajares y de la Cruz como se citan antes, el concepto es el mismo que en
el caso de la traslacin, sino que ahora la transformacin es un giro.
En la figura 13 se muestra la transformacin de rotacin de forma grfica.
42
x
y
cos sin
R
R
y ' = R
y
x
cos sin
R
R
En forma matricial
[][
x'
cos sin 0
y ' = sin cos 0
1
0
0
1
][ ]
x
y .
1
43
[][
x'
0 1 0
=
y'
1 0 0
1
0 0 1
][ ]
x
y .
1
Por lo tanto el punto (1, 0) se vuelve (0, 1). Si se rota 360 la matriz sera
[ ] [ ][ ]
x'
1 0 0
y' = 0 1 0
1
0 0 1
x
y .
1
Simplificando,
x ' = x cos y sin p x 1cos p y sin
y ' = x sin y cos p y 1cos p x sin
44
en forma matricial:
[][
cos y sin
x'
y ' = x sin y cos
1
0
0
p x 1cos p y sin
p y 1cos p x sin
1
][ ]
x
y .
1
[][
x'
0 1 2
y' = 1 0 0
1
0 0 1
][ ]
x
y .
1
Para rotar una imagen bastara con aplicar la matriz de transformacin obtenida para el eje
y ngulo de rotacin deseados a la posicin de cada uno de los pxeles de la imagen.
4.1.2.6 Operaciones espaciales
Las operaciones espaciales tienen en cuenta los pxeles y sus vecinos, estas incluyen filtros
espaciales (normalmente se elimina el ruido en funcin de los valores de pxeles vecinos),
convolucin (sacar la media ponderada de la vecindad de un pxel), correlacin
(comparacin de zonas de una imagen con formas de zonas de pxeles conocidas para
encontrar formas en imgenes).
El propsito de este apartado es explicar la extraccin de puntos de inters, pero para eso es
necesario detallar los conceptos de convolucin discreta, para lo cual se citar la obra de
Crane30 y el concepto de derivada para la extraccin de bordes expuesto por Pajares y de la
Cruz31.
Convolucin discreta
Las convoluciones son muy utilizadas en el procesamiento de imgenes para suavizar,
filtrar, detectar bordes y otros usos. Una convolucin es simplemente es una suma
ponderada de los pxeles en el vecindario del pxel origen, los pesos estn determinados por
una pequea matriz llamada mscara de convolucin o kernel de convolucin, las
dimensiones de esta matriz usualmente son impares para que el centro se pueda ser
determinado, la posicin central corresponde a las posicin del punto de pxel salida.
Una ventana deslizante, llamada ventana de convolucin, se centra en cada pxel de una
30 CRANE, Randy. A simplified approach to image processing. Classic and modern techniques in C. New
Jersey, Estados Unidos: Prentice Hall PTR , 1997. p. 66-67.
31 PAJARES, Gonzalo y DE LA CRUZ, Jess. Visin Por Computador: Imgenes Digitales Y Aplicaciones.
2 ed. Mxico, D.F.: Alfaomega Grupo Editor, S.A. de C.V, 2008. p. 157-162.
45
imagen de entrada y genera nuevos pxeles de salida (figura 15). El valor del nuevo pxel es
calculado multiplicando cada valor de los pxeles del vecindario con el correspondiente
peso en la mscara de convolucin y sumando estos productos.
Es muy importante colocar los nuevos pxeles en una nueva imagen, si el pxel recin
generado reemplaza el viejo pxel, este ser utilizado para calcular el nuevo valor del
siguiente pxel, esto es conocido como sistema de respuesta de impulso infinito, y no
arrojar los resultados deseados.
46
33 PAJARES, Gonzalo y DE LA CRUZ, Jess. Visin Por Computador: Imgenes Digitales Y Aplicaciones.
2 ed. Mxico, D.F.: Alfaomega Grupo Editor, S.A. de C.V, 2008. p. 135.
47
[ ]
f x , y
Gx
x
G [ f x , y ] =
=
Gy
f x , y
y
[ ]
4.1
x , y = tan1
Gy
Gx
4.2
Es una prctica habitual aproximar la magnitud del gradiente con valores absolutos,
G G xG y 4.3
esto se hace porque el valor de la magnitud del gradiente no es tan importante como la
relacin entre diferentes valores. Es decir, se va a decidir si un punto es de borde segn que
la magnitud del gradiente supere o no un determinado umbral, pues bien slo es cuestin de
ajustar dicho umbral para que el resultado de la extraccin de bordes sea el mismo tanto si
se calcula la magnitud del gradiente mediante (4.2) como si se hace mediante (4.3) y sin
embargo, esta ltima ecuacin resulta mucho ms fcil de implementar, particularmente
cuando se realiza en hardware.
Para calcular la derivada en (4.1) se pueden utilizar las diferencias de primer orden entre
dos pxeles adyacentes; esto es,
Gx =
f x x f x x
f y y f y y
Gy =
2 x
2 y
4.4
g x , y = 1 si G [ f x , y ]T
0 si G [ f x , y ]T
4.5
donde T es un valor umbral no negativo. Slo los pxeles de borde cuyo gradiente excedan
el valor de T se consideran importantes.
f xx f 2y f yy f 2x 2f xy f x f y
3
2 2
y
2
x
U 1 4.6
f f
1 0 1
x
1 0 1
1 0 1
por tanto f x
1 1 1
y
0
0
0
1
1
1
f
f
f
, f y
, f xx
, f
x
y
x x
49
yy
4.7
f
, f
y y
xy
f
x y
que se obtienen siempre por convolucin con los operadores dados en (4.7), que en el caso
de los operadores segunda derivada se aplican dos veces.
La curvatura Gaussiana K puede expresarse en trminos de las derivadas parciales como
sigue
K=
xx
f yy f xy
2
f x f
2
y
U 2
4.8
[ I x , y I xi , y j] U 3 4.9
i , j S
1
I x , y I xi , y j 4.10
mn i
, j S
pasos teniendo en cuenta una ventana W de dimensin mxn. Para cada pxel (i,j) en la
imagen hacer lo siguiente:
1. Calcular fx y fy utilizando diferencias de primer orden mxn para las derivadas
parciales.
2. Calcular las tres cantidades f 2x , f 2y y f x f y .
3. Utilizando un ncleo Gaussiano con desviacin estndar , obtener las medidas
promediadas < f 2x >, < f 2y > y < f x f y > utilizando la vecindad n x n y los
valores obtenidos en el apartado anterior. Obsrvese que la media es una media
ponderada de los valores de la vecindad y no una simple media, aunque podra ser
una simple media.
4. Evaluar los autovalores 1 y 2 de la matriz A.
f 2x
f x f y
A=
=
f x f y
f 2y
f 2x
fxfy
fxf
f 2y
4.11
4.12
51
donde son 13. La direccin de la esquina viene dada por en vector n y donde (X0,Y0)
son las coordenadas de P0 y (Xn,Yn) son las coordenadas de ( P1+P2)/2.
r n = [ X n X 0 ,Y nY 0]t
4.14
52
plazo?
Dominio de la aplicacin: se debe considerar en qu dominio sern utilizados los datos de
las imgenes? Para la Web, medicina, astronoma, etc.
A continuacin se describirn algunos formatos de imagen:
4.1.3.1 Windows Bitmap (BMP)
Este formato fue desarrollado por Microsoft para permitir una entrada/salida por
disco/pantalla.
Entre las caractersticas ms sobresalientes de este tipo de imgenes destaca la gran
cantidad de niveles de profundidad que ofrece: 1 bit por pxel (imagen de 2 colores o
binaria), 4 bits por pxel (imagen de 16 colores), 8 bits por pxel (256 colores) y 24 bit por
pxel o lo que es lo mismo 3 bytes (imagen de color).
Este formato utiliza compresin sin prdida: RLE (Run-length encoding), tpicamente para
imgenes de 4 y 8 bits por pxel, que son las que poseen una paleta de colores embebida.
Adems el almacenamiento es bottom-left (se empieza por la parte inferior izquierda),
adems entrelaza los canales.
Las ventajas de este tipo de formato son:
53
Es demasiado flexible, por lo que es difcil crear un programa que soporte todas las
opciones y tipos de tags.
El almacenamiento en tiras es inadecuado para ciertos usos.
4.1.3.3 JPEG
Este formato inicialmente se desarroll para el almacenamiento de imgenes fotogrficas.
Admite tanto imgenes en escala de grises (1 byte por pxel) como imgenes en color RGB
(3 bytes por pxel). Adems incluye varios mecanismos de compresin, que pueden
ajustarse a distintos niveles de compresin.
Una de sus principales caractersticas es la compresin con prdida, mediante DCT
(Transformacin discreta de coseno).
54
El fichero puede incluir una versin reducida para previsualizar la imagen antes de leerla.
Otro aspecto que es importante mencionar es que se encuentra libre de patentes.
Ventajas:
Inconvenientes:
Aplicaciones:
55
ABBYY FlexiCapture
De acuerdo con la pgina web de la aplicacin 37, es un software de procesamiento de
formas y captura de datos escalable, preciso e inteligente. Este provee un punto de entrada
para transformar automticamente el flujo de diferentes formas y documentos de cualquier
estructura y complejidad para exportarlos a cualquier aplicacin o base de datos.
Evaldra EXAM
Segn su portal de Internet38, esta especficamente diseado para exmenes annimos que
requieran seguridad y automatizacin. Oposiciones, procesos pblicos con tribunales, etc.
Se emplea para evaluar a un grupo elevado de personas mediante una o varias pruebas
objetivas, tipo test, y provee los datos de forma rpida, fiable y clasificada.
FormReturn
Como dice su sitio web39, FormReturn es un software OMR (Optical Mark Recognition
software) para Windows, Mac OSX y Linux. Usado para el procesamiento automtico de
informacin de respuesta de cuestionarios de hojas de burbujas, es una solucin rpida y
eficiente para colecciones de datos de mltiple opcin. Se pueden disear los formatos, los
que despus se escanean y procesan utilizando la aplicacin, los datos capturados pueden
ser exportados a una hoja de clculo o base de datos para un anlisis rpido.
37 ABBY. ABBY FlexiCapature [en lnea]. [citado: 15 mayo 2009]. disponible en internet:
<http://www.abbyy.com/data_capture_software/>.
38 DARA. Evaldara EXAM. Evaluacin de pruebas objetivas. [en lnea]. [citado: 15 mayo 2009]. disponible
en internet: <http://www.dara.es/omr/evaldara-exam.htm>.
39 EB STRADA HOLDINGS PTY LTD. FormReturn. Optical Mark Recognition Made Simple [en lnea].
[citado: 28 junio 2010]. disponible en internet: <http://www.formreturn.com/>.
56
5. DISEO METODOLGICO
57
Investigacin
Se investigaron las teoras, tcnicas bsicas y algoritmos para el procesamiento digital de
imgenes, adems de los avances ms recientes en este campo del conocimiento
relacionados y con relevancia para el desarrollo de la aplicacin de reconocimiento de
marcas, por medio de publicaciones cientficas y acadmicas en medios electrnicos y
fsicos, adems, durante el desarrollo del Automatizador fue necesario investigar sobre las
herramientas escogidas para su desarrollo.
Anlisis
Se recolect la informacin necesaria que condujo a la identificacin de los requisitos
funcionales y no funcionales de la aplicacin, por medio de entrevistas y observacin
directa de cmo se llevaban a cabo los procesos del levantamiento y procesamiento de las
marcas en los formularios de los simulacros de evaluacin en el curso de preparacin para
los ECAES, para elaborar la declaracin de trabajo, la especificacin de requerimientos
funcionales y no funcionales, el modelo de casos de uso y la especificacin de los casos de
uso. Adems, durante el desarrollo de la aplicacin fue necesario hacer cambios a lo que se
plante inicialmente en esta etapa, dado que el comportamiento de las funcionalidades de la
41 CYGANEK, Bogusaw y SIEBERT, J. Paul. Programming Techniques for Image Processing and
Computer Vision. En: An Introduction to 3D Computer Vision Techniques and Algorithms. West Sussex,
Reino Unido: John Wiley & Sons Ltd, 2009. p. 429-456.
58
Diseo
Teniendo en cuenta la informacin recopilada en las etapas de investigacin y anlisis, se
procedi a realizar el diseo de la aplicacin por medio del Lenguaje Unificado de
Modelado, UML, a travs de los diagramas correspondientes, tales como los diagramas
arquitectnico, de secuencia, de componentes y de distribucin. Estos diagramas tuvieron
lugar a modificaciones durante la duracin del proyecto.
Implementacin
Una vez que se obtuvieron los resultados del anlisis y el diseo del aplicacin se procedi
a implementar el Automatizador de acuerdo a los modelos desarrollados en las etapas
anteriores bajo el paradigma de la programacin orientada a objetos. Como la estrategia de
desarrollo empleada fue evolutiva se generaron varias entregas funcionales de la aplicacin
hasta llegar hasta una definitiva que cumpla cabalmente con el comportamiento esperado
de la aplicacin.
Pruebas
Se realizaron pruebas sobre los componentes constitutivos de la aplicacin a medida que se
avanzaba en el desarrollo de los mismas y pruebas de integracin a medida que se
ensamblaban tales componentes, para diagnosticar el funcionamiento esperado de la
aplicacin y detectar posibles fallas en su funcionamiento, es de anotar que se hicieron
pruebas con datos reales, ayudando en el proceso de perfeccionamiento de la aplicacin.
Redaccin de manuales
Se redactaron diferentes manuales: manuales de instalacin de las herramientas utilizadas
en el desarrollo del proyecto, un manual de diligenciamiento de los formatos diseados para
los simulacros de evaluacin y el manual de usuario, redactado una vez se finaliz el
desarrollo de la aplicacin.
5.1 HIPTESIS
El uso de una aplicacin de OMR reducir el tiempo necesario para la recoleccin de los
datos consignados en los formularios de respuesta de los simulacros de examen en la
preparacin para los ECAES en el programa de Ingeniera de Sistemas y Computacin de la
59
60
6. ANLISIS
El presente apartado tiene como objetivo mostrar el producto final del anlisis para el
Automatizador de recoleccin de datos de formularios para el procesamiento de
evaluaciones en el proceso de preparacin para los ECAES en el programa de Ingeniera de
Sistemas y Computacin de la Universidad Tecnolgica de Pereira.
6.1 DECLARACIN DE TRABAJO
El propsito de la aplicacin a desarrollar es el de extraer los datos consignados en las
imgenes resultantes de escanear los formularios de respuesta utilizados en los simulacros
de evaluacin del curso de preparacin para los ECAES, en el programa de Ingeniera de
Sistemas y Computacin de la Universidad Tecnolgica de Pereira, para luego entregar un
reporte con estos datos.
Primero, es importante dar una descripcin del proceso manual de extraccin de los datos
consignados en los simulacros de evaluacin para la preparacin para los ECAES, tal como
se llevaba a cabo antes del desarrollo del Automatizador. El proceso comienza con la
presentacin de los simulacros de evaluacin, de donde sale un nmero determinado de
hojas de respuesta, luego alguien tiene alimentar la base de datos preecaes, creada por el
responsable del curso de preparacin a los ECAES, el ingeniero Hugo Humberto Morales,
entonces, para alimentar esta base de datos por cada hoja de respuesta se debe que crear un
registro en la tabla ESTUDIANTE, otro en la tabla HOJARESPUESTA y por cada una de
las respuestas del simulacro un registro en la tabla DETALLEHOJARESPUESTA, adems,
se debe repetir el procedimiento por cada hoja de respuesta. Ms adelante se muestra la
estructura sintctica de los registros antes mencionados.
Es muy importante anotar que para desarrollar el Automatizador de recoleccin de datos de
formularios no se necesit conocer la estructura interna, ni el modelo entidad-relacin de la
base de datos del usuario, por no ser relevante para su desarrollo, ya que la aplicacin
solamente necesita consultar un par de campos de la base de datos para poder generar el
informe requerido, de esta forma constituye entonces, ms un agente externo al sistema que
parte misma de la aplicacin. Se debe resaltar tambin que la estructura sintctica del
informe fue entregada por el usuario.
Antes de comenzar con la creacin de la aplicacin, se dise un nuevo formulario para
recolectar los datos de los simulacros de evaluacin en la preparacin para los ECAES,
teniendo en mente emular lo ms cerca posible la presentacin del examen, y adems,
siguiendo los requerimientos entregados por el responsable de los cursos, el Ingeniero
Hugo Humberto Morales Pea para la creacin de los nuevos formularios.
Las especificaciones para disear los nuevos formularios son las siguientes:
61
62
Se estableci que las imgenes que la aplicacin debe procesar estarn almacenas en un
mismo directorio (directorio de trabajo, que debe escoger el usuario del Automatizador), las
imgenes tendrn las mismas dimensiones y la misma resolucin, la salida del
procesamiento de dichas imgenes debe ser un informe (estructurado segn
especificaciones concretas, que se mencionarn ms adelante) con los datos marcados en
los formularios, as mismo, desde la aplicacin se deben capturar datos adicionales a los
levantados de los formularios, tales como: la fecha en la que se presenta el simulacro, el
nmero de preguntas a calificar en cada uno de los formularios, y, obtener de una base de
datos diseada e implementada previamente por el Ingeniero Hugo Humberto Morales, el
cdigo del cuadernillo de respuestas aplicado en el simulacro y otros datos asociados con
este, adems, de un ndice necesario para la insercin de nuevos registros en la base de
datos, adicionalmente las imgenes se deben renombrar con el nombre de quien llen el
formulario correspondiente a la imagen y la jornada en la que lo hizo.
En lo respectivo al reconocimiento de las marcas se determin seguir una estrategia
pesimista para la validacin de los bloques de respuestas, con las siguientes reglas:
En los dems bloques de burbujas se debe aplicar solamente una regla para garantizar la
veracidad y consistencia de los datos:
La estructura del informe mencionado anteriormente, que debe ser un script SQL , es la
siguiente:
INSERT INTO ESTUDIANTE (numeroDocumento, nombre) VALUES
(numeroDocumento, nombre);
...
INSERT INTO ESTUDIANTE (numeroDocumento, nombre) VALUES
(numeroDocumento, nombre);
63
6.2 REQUERIMIENTOS
A continuacin se describirn los requerimientos funcionales y los requerimientos no
funcionales de la aplicacin:
6.2.1 Requerimientos funcionales
Elaborar informe.
Descripcin
Entadas
Fuente
Salidas
Destino
Requerimientos El directorio de trabajo debe contener las imgenes (todos los ficheros
deben tener mismas dimensiones y resolucin) de una misma jornada,
en las que se haya aplicado el mismo cuadernillo de preguntas, la base
de datos preecaes debe estar activa y funcional.
64
42 BOOCH, Grady et al. Object-Oriented Analysis and Design with Applications. 3 ed. Boston, MA. Estados
Unidos, 2007. p. 197.
65
Actores: Usuario que desea recolectar los datos consignados en las imgenes.
Propsito: Este caso de uso provee la habilidad de generar un informe con los datos
contenidos en las imgenes de los formatos de respuesta de los simulacros de evaluacin
para la preparacin a los ECAES y de renombrar las imgenes. Este caso de uso le permite
al actor generar un informe con los datos consignados en las imgenes de los formatos de
respuesta y cambiar el nombre de estas imgenes.
Flujo optimista
Actor
Sistema
67
68
70
72
73
74
7. DISEO
76
77
78
79
Uno de los objetivos de OpenCV es proveer una infraestructura para visin por computador
fcil de utilizar que ayude a construir aplicaciones sofisticadas en el campo de la visin en
corto tiempo. La librera contiene ms de 500 algoritmos que se dividen en diversos
campos de la visin, incluyendo inspeccin de productos en fbricas, imgenes mdicas,
seguridad, interfaces de usuario, calibracin de cmaras, visin estreo y robtica.
7.1.2 Python
Como afirma Bosanac47, Python es un poderoso lenguaje de programacin interpretado,
este posee una sintaxis simple, con una naturaleza dinmica, adems de ser una excelente
opcin para construir prototipos de software. Python se distribuye bajo una licencia de
software libre y esta disponible para sistemas Linux, MacOS X, Windows entre muchos
otros.
Este lenguaje, aparte de las estructuras predeterminas de alto nivel con las que cuenta,
ofrece un soporte completo para para la programacin orientada a objetos y creacin de
mdulos que posibilitan el reuso de cdigo y de una buena arquitectura en un entorno
dinmico y de alto nivel de abstraccin.
7.1.3 PySide
Qt es un framework multiplataforma para la creacin de interfaces grficas de usuario.
Segn el sitio web del proyecto48, PySide es una biblioteca para Python, es un binding (un
binding es una adaptacin de una biblioteca para ser usada en un lenguaje diferente para al
que inicialmente fue desarrollada) de las herramientas de interfaz grfica de usuario (GUI)
de Qt. Pyside esta bajo la licencia de software LGPL y permite el desarrollo de software
tanto libre como propietario.
7.2 MODELO DE SUBSISTEMAS (PAQUETES)
Los paquetes agrupan elementos del sistema que comparten algunas propiedades comunes,
a continuacin se muestra un diagrama de los subsistemas del Automatizador bajo la
perspectiva de las clases.
47 BOSANAC, Dejan. Scripting in java : languages, frameworks, and patterns. Boston, Massachussets,
Estados Unidos: Pearson Education, Inc., 2008. p. 47.
48 PYSIDE. Python for Qt. [en lnea]. [citado: febrero de 2012]. disponible en internet:
<http://www.pyside.org/>.
80
81
82
83
8. DISEO DE INTERFACES
84
85
Ahora se dar una breve descripcin de los componentes de la interfaz grfica de usuario de
la aplicacin.
Fecha: captura la fecha en la cual se realiz el simulacro. Este campo consta de un cuadro
de texto en donde se puede escribir la fecha de forma manual, o tambin se puede
establecer por medio de un componente de calendario que aparece cuando se pulsa el botn
de la derecha, una vez se fija la fecha en el componente de calendario aparece en la caja de
texto.
86
87
88
Ventana principal
92
93
94
9. IMPLEMENTACIN
95
96
97
98
10. PRUEBAS
99
100
101
bloques de respuestas, si se encuentra una pregunta con dos respuestas, se anular) para el
reconocimiento de marcas.
10.1.2 Componente conector a la base de datos
Este componente se encarga de obtener el valor de dos de los campos de la base de datos
dedicada al almacenamiento de los datos procedentes de los simulacros de presentacin de
los ECAES, y como se ha sealado anteriormente, estos datos recuperados de la base de
datos son utilizados para la elaboracin del informe generado por la aplicacin.
Para probar este componente se hicieron consultas de diferentes campos de la base de datos
para asegurar la confiabilidad en la operacin del mtodo.
10.1.3 Componente generador del informe
Este componente se encarga de crear un informe con los datos recabados de las imgenes.
Las pruebas consisten en validar que los informes generados tengan la estructura sintctica
deseada y que contengan la informacin extrada de las imgenes de los formatos de
respuesta. Para probar este componente se emplearon los datos recolectados de los
imgenes de los formularios del simulacro como datos de entrada, haciendo pruebas
separadas con todos los formularios de una misma jornada, con subconjuntos de los
mismos y con una sola imagen a la vez, para luego analizar la veracidad del resultado
obtenido.
Durante el desarrollo de las pruebas se encontraron errores en la sintaxis del informe.
10.2 PRUEBAS DE SISTEMA
Las pruebas que se realizaron al Automatizador una vez se integraron todos los
componentes son conocidas como pruebas de sistema. Por medio de las pruebas de sistema
se verifica que una aplicacin cumpla con la especificacin de requerimientos.
Para estas pruebas se utilizaron los 104 formatos del primer simulacro de los ECAES del
segundo semestre de 2010, de la pruebas se espera arrojen un informe en cada una de las
mismas con los datos consignados en los formatos de respuesta.
La prueba consisti en mandar como parmetros al Automatizador las imgenes
correspondientes a una misma jornada de evaluacin, subconjuntos de imgenes de cada
una de las jornadas de evaluacin y un slo formato para que sean extrados los datos
marcados en los formatos (procesar imgenes), adems de extraer los datos necesarios de la
base de datos (obtener datos adicionales) y al final contrastar los datos consignados en los
informes (elaborar informe) con los realmente marcados en los formularios. Durante el
desarrollo de la aplicacin se identificaron varios errores y sus causas.
103
Los errores encontrados a lo largo de todo el proceso de desarrollo al realizar las pruebas y
sus causas son:
104
11. CONCLUSIONES
En este apartado se discuten las conclusiones del proyecto de grado: anlisis, diseo,
implementacin de un producto para el proceso de preparacin para los ECAES en el
programa de Ingeniera de Sistemas y Computacin de la Universidad Tecnolgica de
Pereira.
Por medio de las pruebas se comprob que una incorrecta diligenciacin de los formularios
los datos conducir a un reconocimiento no acertado de las marcas, se debe mencionar que
el error ms extendido a la hora de llenar dichos formularios es la no utilizacin de un lpiz
de mina negra numero 2, esto es un problema que atenta contra el correcto reconocimiento
de las marcas ya que que la aplicacin esta especialmente calibrada para reconocer la
intensidad de las marcas hechas por estos lpices y no presenta dificultades en ignorar
enmendaduras, pero si se utilizan otros tipos de lpices el resultado es incierto, y aunque la
aplicacin puede presentar inexactitudes si no se cumplen con todas las recomendaciones,
la del uso de un lpiz inadecuado es la ms comn.
105
BIBLIOGRAFA
ABBY. ABBY FlexiCapature [en lnea]. [citado: 15 mayo 2009]. disponible en internet:
<http://www.abbyy.com/data_capture_software/>.
BOOCH, Grady et al. Object-Oriented Analysis and Design with Applications. 3 ed.
Boston, MA. Estados Unidos, 2007. 691 p.
BRADSKY, Gary y KAEHLER, Adrian. Learning Opencv. Computer Vision with the
OpenCV Library. Sebastopol, California, Estados Unidos: OReilly Media, Inc., 2008. 555
p.
COUPER, P. Mick, et al. (eds). Computer Assisted Survey Information Collection. New
York, Estados Unidos: John Wiley & Sons, Inc., 1998. 653 p.
DARA. Evaldara EXAM. Evaluacin de pruebas objetivas. [en lnea]. [citado: 15 mayo
2009]. disponible en internet: <http://www.dara.es/omr/evaldara-exam.htm>.
DOWNEY, Allen B. Python for software design. How to think like a computer scientist.
Cambridge, Reino Unido: Cambridge university press, 2009. 251 p.
GRAVIC. Remark Office OMR [en lnea]. [citado: 15 mayo 2009]. disponible en internet:
<http://www.gravic.com/remark/officeomr/ >.
HAMILTON, Kim y RUSSELL, Miles. Learning UML 2.0. Sebastopol, California, Estados
Unidos: O'Reilly Media, Inc., 2006. 286 p.
KELLISON, Cathrine. Producing for TV and new media: a real-world approach for
producers. 2 ed. Burlington, Massachusetts, Estados Unidos: Focal Press, 2009. 344 p.
KIRKLAND, Kyle, PH.D. Computer science: Notable Research and Discoveries. New
York, Estados Unidos: Facts on File, 2010. 208 p.
INSTITUTO COLOMBIANO DE NORMAS TCNICAS. Trabajo escritos: presentacin y
referencias bibliogrficas. Bogot D.C.: ICONTEC, 2008. 95 P.
107
LUONG, Chi Mai. Introduction to computer vision and image processing. Institute of
Information Technology Hanoi, Vietnam, 2000. 175 p.
PERRY, Bob. Organisational Management and Information Systems. Oxford, Reino Unido:
CIMA Publishing, 2008. 450 p.
PYSIDE. Python for Qt. [en lnea]. [citado: febrero de 2012]. disponible en internet:
<http://www.pyside.org/>.
RIVERBANK. What is PyQt? [en lnea]. [citado: 29 julio 2009]. disponible en internet:
<http://www.riverbankcomputing.co.uk/software/pyqt/intro>.
108
SOMMERVILLE, Ian. Software Engineering. 8 ed. Reino Unido: Adison Wesley, 2006.
864 p.
SUMMERFIELD, Mark. Rapid GUI Programming with Python and Qt. The Definitive
Guide to PyQt Programming. Estados Unidos. Pearson Education, Inc. 2008. 648 p.
TSUI, Frank y KARAM, Orlando. Essentials of software engineering. 2 ed. Sudbury, MA,
Estados Unidos: Jones and Bartlett Publishers. 2011. 392 p.
VINCE, John. Mathematics for Computer Graphics. 3 ed. Londres: Springer-Verlag
London Limited 2010, 2010. 293 p.
WILLOWGARAGE. OpenCV 2.1 Python Reference [en lnea]. [citado: 30 junio 2010].
disponible en internet:
<http://opencv.willowgarage.com/documentation/python/index.html>
WWW.JAVVIN.COM. Network
Technologies Inc., 560 p.
Dictionary.
109
Saratoga,
Estados
Unidos:
Javvin
ANEXO A
MANUAL DE INSTALACIN DE PYTHON, OPENCV Y PYSIDE
En este anexo del trabajo final del anlisis, diseo e implementacin del Automatizador de
recoleccin de datos de formularios para el procesamiento de evaluaciones en el proceso de
preparacin para los ECAES en el programa de ingeniera de sistemas y computacin de la
Universidad Tecnolgica de Pereira, se mostrar cmo instalar la librera OpenCV 2.1.0
para que se integre con el lenguaje de programacin Python 2.6.5 en un sistema operativo
Windows XP, adems, de la instalacin de la librera para la creacin de interfaces grficas
de usuario PySide.
Una vez descargado, hacer doble clic sobre el instalador. Luego aparecer un cuadro
de dilogo, en el que se desmarca la casilla Preguntar siempre antes de abrir este
archivo, luego, se da clic sobre Ejecutar.
110
Luego aparece un cuadro de dilogo, el cual pide la ruta donde se instalar Python
(se recomienda instalar sobre la raz del disco, C:\).
111
Una vez terminado este proceso se le notifica al usuario, se da clic sobre Finish.
113
114
the current user, slo se agregar al PATH del usuario que instala la librera, luego
se da clic sobre Siguiente >.
117
Cuando termine esta tarea saldr un cuadro de notificacin sobre el que se clic en
Terminar.
librera.
119
Para comprobar que la librera pueda ser accesada desde Python se importa desde la
lnea de comandos de Python.
120
El instalador (para la versin 2.6 de Python) se puede descargar del sitio web:
http://developer.qt.nokia.com/wiki/PySide_Binaries_Windows
122
Posteriormente el instalador notifica que todo esta listo para comenzar con el
proceso de instalacin, se da clic sobre la opcin Siguiente>.
123
124
ANEXO B
MANUAL PARA DILIGENCIAR LOS FORMATOS DE RESPUESTA
En el presente anexo del trabajo final del anlisis, diseo e implementacin del
Automatizador de recoleccin de datos de formularios, desarrollado para el proceso de
preparacin para los ECAES en el programa de ingeniera de sistemas y computacin de la
Universidad Tecnolgica de Pereira, se muestran las recomendaciones necesarias para
diligenciar correctamente los formularios de respuesta que procesa el Automatizador de
recoleccin de datos de formularios.
Recomendaciones
125
ANEXO C
MANUAL DE USUARIO
El Automatizador de recoleccin de datos de formularios procesa las imgenes
resultantes de escanear los formatos de respuesta (diseados a la medida) de los simulacros
de preparacin a los ECAES del programa de Ingeniera de Sistemas y Computacin de la
Universidad Tecnolgica de Pereira, el procesamiento sobre las imgenes tiene la finalidad
de extraer toda la informacin consignada en dichos formatos, la informacin que recava
comprende los datos personales de quien presenta el simulacro (nombre y cdigo de
identificacin), y los datos de la prueba, como lo son la jornada de presentacin y las
soluciones inscritas en el formato de respuestas. Luego, el Automatizador crea un informe
(un script SQL) utilizando tanto los datos recolectados de los formatos de respuesta, como
tambin los parmetros de construccin del informe ingresados a la aplicacin a travs de la
interfz grfica de usuario.
126
Nmero de preguntas
127
Esta parmetro corresponde al directorio en el cual se encuentran las imgenes que sern
procesadas para recavar los datos del simulacro. La ruta de la carpeta con las imgenes se
puede ingresar en el elemento de edicin de texto manualmente, o, cuando se presiona el
botn de la derecha aparece un cuadro de dialogo de seleccin de directorios, en donde se
puede buscar el directorio con facilidad.
128
IdCuadernillo
Por medio de este parmetro se establece el nombre del informe y su ubicacin, la cual se
puede ajustar manualmente, o, presionando el botn de la derecha en cuyo caso se
despliega un cuadro de dilogo de seleccin de nombre de archivo a guardar.
129
Generar informe
Una vez se han llenado los campos de la interfz grfica, se presiona el botn Generar
informe para que la aplicacin comience a procesar las imgenes y el informe sea creado.
130
El men Archivo slo cuenta con la opcin Salir, se puede acceder a esta a travs del men
o por medio del atajo de teclado Ctrl+S.
Men Ayuda
El men ayuda contiene dos opciones: Acerca del Automatizador y Ayuda.
Acerca del Automatizador muestra informacin general de la aplicacin, su desarrollador y
el objetivo de la aplicacin.
131
Ayuda despliega la ayuda del usuario, se puede acceder a esta opcin a travs del men
Ayuda por medio del atajo de teclado Alt+U+U y tambin con la tecla F1.
132
133