Académique Documents
Professionnel Documents
Culture Documents
SEDE QUITO
CARRERA:
INGENIERA DE SISTEMAS
TEMA:
RECONOCIMIENTO AUTOMTICO DE CARTAS DE BARAJA UBICADAS
SOBRE UNA MESA
AUTORES:
SORAYA KARINA CISNEROS NAVARRETE.
LEONARDO PATRICIO MEDINA ENCALADA.
TUTOR:
HOLGER RAUL ORTEGA MARTINEZ
..
HOLGER RAUL ORTEGA MARTINEZ
C.I: 1708182728
CESIN DE DERECHOS DE AUTOR
............................................. .............................................
SORAYA KARINA LEONARDO PATRICIO
CISNEROS NAVARRETE MEDINA ENCALADA
Resumen Abstract
En este trabajo se presenta el reconocimiento de This work presents the recognition of playing cards
cartas de baraja sobre una mesa, como parte de un on a table as part of a larger project wich purpose is
proyecto de mayor dimensin cuyo objetivo es asistir to assist blind people in playing card games,
a personas no videntes en juegos con cartas de baraja, specifically the Ecuadorian game called "Cuarenta".
especficamente el juego ecuatoriano llamado The solution proposed in the prototype takes into
Cuarenta. La solucin planteada en el prototipo account the specific rules of the "Cuarenta" game;
toma en cuenta las reglas especficas del juego del that is to say, it recognizes the number of the 40
Cuarenta; es decir, reconoce el nmero de las 40 decks in play (the symbol, color and the cards with
barajas en juego (se descarta el smbolo, color y las numbers 8, 9 and 10 are discarded). In addition, it
cartas con nmero 8, 9 y 10). Adems, resuelve solves difficulties that could present environmental
dificultades que podran presentar aspectos aspects like perspective illumination, etc.
ambientales como iluminacin, perspectiva, etc. The development of the prototype was based on the
El desarrollo del prototipo se bas en el standard procedure for the digital image processing,
procedimiento estndar para el procesamiento digital so for the pre-processing, image enhancement
de imagen, de tal forma, para el pre procesamiento methods such as: Binarization, Adaptive
se usaron mtodos de mejoramiento de imgenes Umbralizacin, Dilation and Erosion were used. For
como: Binarizacin, Umbralizacin Adaptativa, Image Segmentation, the Connected Component
Dilatacin y Erosin. Para la Segmentacin de Tagging method was applied and finally for image
imagen se aplic el mtodo de Etiquetado de detection and recognition, we worked with the
Componentes Conectados y finalmente para la algorithm of Backpropagation of Artificial Neural
deteccin y reconocimiento de imagen, se trabaj Networks.
con el algoritmo de Retropropagacin de Redes In the detection phase 98% accuracy is obtained,
neuronales Artificiales. while for the recognition phase the accuracy is 99%
En la fase de deteccin se obtiene un 98% de Keywords: Algorithm, detection, recognition,
precisin, mientras que para la fase de artificial neural network
reconocimiento la precisin es de un 99%.
Palabras Clave: algoritmo, deteccin,
reconocimiento, red neuronal artificial.
1
Ingeniera de Sistemas, Estudiante de Ingeniera de Sistemas Docente para correspondencia: hortega@ups.edu.ec
4
Universidad Politcnica Salesiana sede Quito. Master Universitario en Gestin de la Informacin, Ingeniera
Autor para correspondencia: scisnerosn@est.ups.edu.ec en Electrnica y Telecomunicaciones, Docente Universidad
2
Ingeniero en Sistemas, Estudiante de Ingeniera de Sistemas Politcnica Salesiana - sede Quito
- Universidad Politcnica Salesiana - sede Quito. Docente para correspondencia: pmorillo@ups.edu.ec
Autor para correspondencia: lmedinae@est.ups.edu.ec
3
Master of Science in Machine Learning, Fsico, Docente
Universidad Politcnica Salesiana - sede Quito
2
de 128 si se trabaja con 255 niveles de gris, pero en pixel es mayor que un valor umbral, se le asigna el
algunas aplicaciones se requiere de otro umbral [10]. valor 1, caso contrario se le asigna valor 0.
La umbralizacin adaptativa genera un valor de
c) Erosin
umbral variable, como una funcin de las
La erosin se refiere a la reduccin de los lmites de caractersticas locales de la imagen. Esto es til
los objetos presentes en la imagen, es decir, un pxel cuando los pixeles de un objeto tienen caractersticas
de la imagen original (1 o 0) tomar el valor 1 slo si diferenciadas debido, por ejemplo, a condiciones de
todos los pxeles vecinos o a su alrededor son 1, de iluminacin.[10]
lo contrario se erosiona (toma el valor 0) [10], Segmentacin
matemticamente la erosin se define como:
La segmentacin es la etapa en la que la imagen es
(2)
() = {| } dividida en regiones segn sus caractersticas de
forma o color. Una de las tcnicas para distinguir las
d) Dilatacin regiones existentes en la imagen, es el etiquetado de
La dilatacin es la operacin contraria a la erosin. componentes conectados en imgenes binarias. Esta
En este caso, el pxel toma el valor 1 si al menos un tcnica asigna una etiqueta nica a cada subconjunto
pxel vecino tiene el valor 1. De tal forma que de puntos.
aumenta la regin blanca en la imagen [10]. Conectividad de pxeles.
Matemticamente la dilatacin de define como:
Un pxel p en la coordenada (x, y) tiene cuatro
vecinos directos, N4 (p) y cuatro vecinos diagonales,
() = {| 0} (3)
ND (P). Los ocho vecinos, N8 (p) del pxel p
e) Filtro gaussiano de suavizado consisten en la unin de N4 (p) y ND (P) [12] .
Finalmente, la neurona usa una funcin para caracteres, fue el primero. Todos los mtodos y
obtener la salida de la neurona j (outj); esta funcin algoritmos que usados en la investigacin fueron
determina qu valores se transmiten a las neuronas migrados al lenguaje Python en la versin 2.7,
vinculadas. Si la funcin de activacin est por haciendo uso de las libreras OpenCV y PyBrain. A
debajo de un umbral preestablecido, ninguna salida continuacin, se detallan los mtodos usados en cada
se pasa a la neurona subsiguiente. [16] etapa del proceso.
Para el entrenamiento de las redes neuronales 3.1. Captura
una alternativa es el uso del llamado algoritmo de En este primer paso se usa una cmara web para
retropropagacin (backpropagation), que toma ese obtener la escena de las cartas e ingresar al pre-
nombre por la forma en que el error es propagado procesamiento en el ordenador.
hacia atrs a travs de la red neuronal, es decir, el
error se propaga desde la capa de salida, hacia la capa Caractersticas Cmara:
de entrada. Esto permite que los pesos de las Resolucin: 8 megapxeles (3264 x 2448)
neuronas ubicadas en la capa oculta cambien durante Conexin: Cable USB
el entrenamiento. Compatibilidad: Windows y Linux
La variacin de los pesos en las conexiones de las Para la captura de la imagen se usa el mtodo
neuronas, influye en toda la estructura de la red cv2.VideoCapture.
neuronal, por esta razn, se debe poner atencin a las
variaciones de la funcin activacin, ya que se
modifica el valor de los pesos. Esto se conoce como
sensibilidad de la funcin activacin.[16]
3. Desarrollo
En este trabajo se realiz una etapa preliminar de
investigacin utilizando MATLAB, en donde se
prob el etiquetado de componentes conectados para Figura 10 . Imagen Real Capturada Por La Cmara Web
la segmentacin de imgenes y redes neuronales
artificiales para la deteccin y reconocimiento de 3.2. Pre-procesamiento
caracteres. El entrenamiento de la red neuronal se En esta etapa se adeca la imagen para la
realiz usando 3 tipos de datos: el primero un vector segmentacin. Se hacen uso de los siguientes
de caractersticas de dimensin 1 donde n es el algoritmos:
nmero de pixeles en una imagen binaria, el segundo
Escala de grises
grupo de datos es un vector de caractersticas 1
donde m es el nmero de caractersticas obtenidas Dado que el objetivo de este trabajo no es reconocer
por el algoritmo de HOG en una imagen binaria. el color, la imagen de entrada en representacin RGB
Finalmente el tercer tipo de datos son vectores de (Red, Green, Blue) es transformada al formato escala
caractersticas1 donde r con caractersticas de grises usando la ecuacin ( 1 ) por medio del
proporcionadas por las regiones basadas en mtodo: cv2.COLOR_BGR2GRAY
propiedades geomtricas bsicas como por ejemplo:
Aspect ratio, Eccentricity, Euler number,
Extent, Solidity. El tipo de dato que mejor resultado
obtuvo en la detencin y reconocimiento de
8
Binarizacin
Luego de transformar la imagen a escala de grises, se
aplica la umbralizacin con el fin de obtener una
imagen binarizada. Debido a las condiciones de
captura de la imagen se tiene iluminacin variable,
por tal razn se utiliza umbralizacin adaptativa con
filtro gaussiano.
Para obtener una mayor nitidez en la imagen Figura 13. Representacin De Componentes Conectados Por Color
binaria se aplican los filtros en el siguiente orden:
1) Erosin
2) Morfologa Opening (elimina el ruido blanco
sobre las zonas negras. Es la erosin seguido de
dilatacin)
3) Morfologa Closing (elimina ruido negro en las
reas blancas. Es la Dilatacin seguido de
Erosin)
4) Dilatacin
3.4. Deteccin
En este trabajo se aplican Redes Neuronales
Artificiales para la deteccin de caracteres y su
posterior reconocimiento. Se hace uso de la librera
PyBrain que proporciona el mtodo de
Figura 12. Imagen Binarizada, Aplicando Umbralizacin Adaptativa, Backpropagation, para el aprendizaje de la red.
Erosin, Dilatacin Y Morfologas Opening Y Closing
Para la deteccin de caracteres el objetivo es
3.3. Segmentacin poder determinar si una imagen corresponde o no a
un carcter. Es decir, el problema de deteccin es su
Para conocer en que parte de la imagen se encuentra
vez un problema de clasificacin con clases: carcter,
las imgenes de inters es necesario agrupar los
no caracter.
9
El conjunto de entrenamiento para esta etapa Un bucle for aade los vectores de
se gener a partir de aproximadamente 200 imgenes caractersticas del conjunto de entrenamiento con sus
de cartas al azar que simulan las posiciones que respectivas etiquetas.
pueden tener las cartas durante el juego de 40, tal Aleatoriamente se divide el conjunto de datos
como se muestra en la figura N 10. Dichas imgenes de entrenamiento en el 70%, el 15% de conjuntos de
se sometieron al pre-procesamiento y segmentacin datos de prueba y el 15% para el conjunto de datos
de imagen. Los resultados de la segmentacin son de validacin.
guardados en imgenes binarias de tamao 40 40,
como lo muestra la Figura N 14 y guardados en una Para la clasificacin en la red neuronal, es
carpeta para su clasificacin manual, en donde se le recomendable codificar clases con una neurona de
asigna el nombre de archivo de la imagen de la salida por clase. Para ello se usa una funcin que
siguiente manera: transforme a las etiquetas en un vector de dimensin
1 donde c es el nmero de clases existentes por
0_n_m.jpg, para Imgenes que NO ejemplo para este caso la clase 0 tendr la
representen un no caracter. representacin [1, 0] y la clase 1 se representar
1_n_m.jpg, para Imgenes que s como [0,1].
representen un caracter. Para construir la red neuronal se establecen
El nmero total de imgenes en el conjunto los siguientes parmetros: tamao de la capa de
de entrenamiento para la clasificacin caracter no entrada, tamao de la capa salida y el nmero de
caracter es de 32000, divididos en 16000 imgenes neuronas en la capa oculta. El tamao de la capa de
no caracteres y 16000 caracteres. Cabe mencionar entrada debe coincidir con el nmero de ejemplos en
que para obtener una mejor clasificacin es el conjunto de entrenamiento y el tamao de la capa
recomendable tener clases balanceadas, es decir que de salida debe coincidir con el nmero clases. La
el nmero de ejemplos de cada clase debe ser mismo. capa intermedia y la capa de salida utilizan la funcin
Por ello, para llegar a los nmeros mencionados se de activacin Sofmax para la clasificacin.
descartaron y aumentaron imgenes hasta obtener la Para el entrenamiento de la red neuronal, se
cantidad de ejemplos indicados. usa el algoritmo de retropropagacin.
Una vez hecha la clasificacin manual se El entrenamiento se realiza por iteraciones o
procede a crear y entrenar la red neuronal. etapas (epochs). El tiempo que tarde en entrenarse la
Para obtener las neuronas en la capa entrada red depende del nmero de neuronas en la capa
Xtrain, se transforma a las imgenes del conjunto de oculta y el nmero de iteraciones. Dado a que el
entrenamiento en un vector de caractersticas de tiempo de entrenamiento suele ser relativamente
tamao (1x1600) y para las etiquetas Ytrain se toma largo, la red es creada y entrenada una sola vez. Este
el primer dgito del nombre de archivo de la imagen modelo de entrenamiento es guardado de forma logar
(0 para No caracter y 1 para caracter). para su posterior uso. El formado de archivo que
guarda este modelo vara segn el lenguaje de
Se configura los parmetros para la
programacin que se use, en este caso se usa el
construccin de la red neuronal, donde:
formato .xml
1600 es el tamao del vector de caractersticas
que va a ingresar a red. Para realizar las predicciones de hace uso del modelo
n_clases, define el nmero de clases para la red de entrenamiento guardado de manera local.
en este caso 2 clases.
10
1_0_0.jpg, para imgenes de un K. error mnimo establecido que es del 5%. Para reducir
Para el mtodo ClassificationDataSet se el error que se obtiene de las pruebas anteriores, se
configura la red neuronal con los siguientes vara el valor del parmetro weight decay. Este
parmetros: parmetro permite optimizar el entrenamiento,
generalmente, toma un valor muy pequeo (0,01 o menos)
1600 es el tamao del vector de caractersticas
tiende a 0, sin embargo si toma el valor de 0 se tendr un
que va a ingresar a red. sobre entrenamiento de la red[17] y si toma un valor
nb_classes, define el nmero de clases para la red mayor a 1 o negativo el error crecer. Los resultados
en este caso 10 clases. obtenidos se muestran en la Figura N16.
El entrenamiento y prediccin se los realiza
de la misma forma que en la deteccin.
4. Resultados
Para obtener el nmero ptimo de imgenes en el
conjunto de entrenamiento para la deteccin carcter
no carcter se realizaron pruebas en 3 conjuntos de
11
Como se observa en la Figura N16 el error Figura 18. Error Vs Nmero De Neuronas En La Capa Oculta De La
se redujo considerablemente, y se obtienen valores Red De Reconocimiento
menores al error mnimo establecido del 5%, por lo De igual manera se realiza la evaluacin de la
que se procede al clculo del error de clasificacin y variacin de weight decay y se obtiene el siguiente
matriz de confusin para el conjunto de test, se resultado:
obtuvieron los siguientes resultados.
Error de clasificacin: 1.83 %
[2] J. F. Parra Buestan, El rescate de los juegos forestales . Captulo 2: Procesamiento Digital de
populares ecuatorianos y su aplicacin en la Imgenes, Universidad de las Amricas Puebla,
animacin turstica, Universidad De Cuenca, 2010. 2010.
[3] R. F. Gualli Ushia and O. S. Angamarca [12] J. Park, C. G. Looney, and H. Chen, Fast
Pupiales, Study of Procedures and Algorithms for Connected Component Labeling Algorithm Using A
the Automatic Recognition of the Cards of a Blind Divide and Conquer Technique, 15th Int. Conf.
Player of 40, Universidad Politcnica Salesiana, Comput. their Appl., vol. 4, pp. 47, 2000.
2017. [13] A. Carcedo y Franco, Programa de
[4] J. D. Estvez, H. Ortega, and R. Tufio, segmentacin de regiones en imgenes mdicas en
Automatic identification of a playing card through MATLAB. Captulo 1 TEORA DE
kNN using a Raspberry Pi 3, Int. Conf. Inf. Syst. PROCESAMIENTO DE IMGENES.,
Comput. Sci., pp. 239245, 2016. Universidad de las Amricas Puebla, 2004.
[5] P. Martins, L. P. Reis, and L. Tefilo, Poker [14] Potencial biolctrico y sinapsis. [Online].
vision: Playing cards and chips identification based Available:
on image processing, Pattern Recognit. Image Anal. http://www.profesorenlinea.cl/Ciencias/Sinapsis_po
IbPRIA 2011. Lect. Notes Comput. Sci., vol. 6669, tencial_biolectrico.html. [Accessed: 10-Jul-2017].
pp. 436443, 2011. [15] P. Vega, H., Cortez, A., Huayna, A., Loayza,
[6] J. Pimentel, Machine Vision in Casino L. y Naupari, Reconocimiento de patrones mediante
Game Monitoring, Universidad Tcnica de Lisboa, redes neuronales artificiales, Rev. Ing. Sist. e
2010. Informtica, vol. 6, no. 2, pp. 1726, 2009.
[7] W. Y. Chen and C. H. Chung, Robust poker [16] D. J. Matich, Redes Neuronales: Conceptos
image recognition scheme in playing card machine Bsicos y Aplicaciones., Historia Santiago., p. 55,
using Hotelling transform, DCT and run-length 2001.
techniques, Digit. Signal Process. A Rev. J., vol. 20, [17] ALGLIB, Redes neuronales: mejorar la
no. 3, pp. 769779, 2010. generalizacin - ALGLIB. [Online]. Available:
[8] S. M. Rodriguez Paredes, Mecanismo de http://www.alglib.net/dataanalysis/improvinggenera
autenticacin de personas basado eb la geometra de lization.php#header3. [Accessed: 10-Jul-2017].
la mano, Universidad Catltiva de Santa Mara,
2013.
[9] R. C. . Gonzalez and R. E. Woods, Digital
image processing, Nueva Jersey. p. 976, 2008.
[10] M. del P. Chiriboga Maldonado and E. A.
Salcedo Eches, IMPLEMENTACION DE
ALGORITMOS PARA PREPROCESAMIENTO,
DETECCIN DE BORDES Y SEGMENTACIN
DE IMGENES DIGITALES A COLOR
UTILIZANDO MATLAB, Escuela Politcnica
Nacional, 2003.
[11] R. A. Gonzlez Gonzlez, Algoritmo basado
en Wavelets aplicado a la deteccion de incendios