Anda di halaman 1dari 6

SISTEMA PARA CALCULAR E IDENTIFICAR MONEDAS, PRESENTANDO LOS RESULTADOS MEDIANTE UNA VOZ ROBOTICA

Cristian Aguirre Esparza cbaguirre@utpl.edu.ec Ronnier Torres ratorres8@utpl.edu.ec Santiago Paladines slpaladines@utpl.edu.ec

AbstractEn un futuro la sociedad necesitar de sistemas a que faciliten la vida asi como la comodidad de las personas, el procesamiento de im genes cada da se hace mas fuerte y a mas utilizado por las personas en muchos campos. En base a estos argumentos el proyecto fue elaborado con esta nalidad, construir un sistema capaz de calcular e identicar en una imagen el numero y valor de las monedas, que sea pr ctico, y a su vez a se lo pueda implemtentar en futuras aplicaciones. Con ayuda de este proyecto a su ves podremos ilustrar el procesamiento de im genes utilizando la herramienta MATLAB y el sinnumero a de funciones que esta nos proporciona. Como resultado de la ardua investigaci n y pr ctica a prueba y error, se logr disenar o a o una aplicaci n en la herramienta MATLAB capaz de cumplir con o todas las caractersticas necesarias para cumplir con los objetivos planteados en un inicio. KeywordsMonedas, matlab, ltros, voz rob tica, proceo samiento de imagenes.

3) Realzar bordes: destacar los bordes que se localizan en una imagen. 4) Detectar bordes: detectar los pxeles donde se produce un cambio brusco en la funci n intensidad. o Por tanto, se consideran los ltros como operaciones que se aplican a los pxeles de una imagen digital para optimizarla, enfatizar cierta informaci n o conseguir un efecto especial en o ella. El proceso de ltrado puede llevarse a cabo sobre los dominios de frecuencia y/o espacio.[1] La herramienta MATLAB para el caso de manipulaci n o de im genes se emplea el toolbox Image Processing que a contiene un conjunto de funciones de los algoritmos m s conocidos para trabajar con im genes binarias, a a trasformaciones geom tricas, morfologia y manipulaci n de e o color que junto con las funciones ya integradas en matlab permite realizar an lisis y trasformaciones de im genes.[2] a a MATLAB almacena las im genes como vectores a bidimensionales (matrices), en el que cada elemento de la matriz corresponde a un s lo pixel.En matlab una imagen o a escala de grises es representada por medio de una matriz bidimensional de m x n elementos en donde n representa el numero de pxeles de ancho y m el numero de pxeles de largo. Cada elemento de la matriz de la imagen tiene un valor de 0 (negro) a 255 (blanco). Por otro lado una imagen de color RGB (la mas usada para la visi n computacional, o adem s de ser para matlab la opci n default) es representada a o por una matriz tridimensional m x n x p, donde m y n tienen la misma signicaci n que para el caso de las im genes de o a escala de grises mientras p representa el plano, que para RGB que puede ser 1 para el rojo, 2 para el verde y 3 para el azul. En este artculo se realiza un estudio de dise o de hardware n y software para implementar un sistema de procesamiento de im genes y la utilizaci n de voz rob tica para una posible a o o aplicaci n a futuro. o La parte restante de este documento est estructurado de a

I. INTRODUCTION

L procesamiento digital de im genes es el conjunto de a t cnicas que se aplican a las im genes digitales con e a el objetivo de mejorar la calidad o facilitar la b squeda u de informaci n. Asi mismo, la aplicaci n de ltros a o o im genes es el conjunto de t cnicas englobadas dentro del a e preprocesamiento de im genes cuyo objetivo fundamental a es obtener, a partir de una imagen origen, otra nal cuyo resultado sea m s adecuado para una aplicaci n especca a o mejorando ciertas caractersticas de la misma que posibilite efectuar operaciones del procesado sobre ella.[1] Los principales objetivos que se persiguen con la aplicaci n o de ltros son: 1) Suavizar la imagen: reducir la cantidad de variaciones de intensidad entre pxeles vecinos. 2) Eliminar ruido: eliminar aquellos pxeles cuyo nivel de intensidad es muy diferente al de sus vecinos y cuyo origen puede estar tanto en el proceso de adquisici n de o la imagen como en el de transmisi n. o

la siguiente manera: La secci n 2 se realiza un breve analisis o de la problem tica planteada. En la secci n 3 se especica a o el dise o del hadware implementado en el proyecto. En la n seccion 4 el dise o del software implementado. En la secci n n o 5 se describe la realizaci n del GUI. En la seccion 6 la o implementaci n de la voz rob tica. En la seccion 7 una o o breve lista de materiales usados. En la secci n 8 resultados o obtenidos, y en la seccion 9 se concluye. II. PROBLEMATICA PLANTEADA Tras haber elegido el dise o de un sistema para calcular n e identicar en una imagen la cantidad de monedas y su respectivo resultado presentarlo mediante una voz rob tica, o este conservar los mismos requerimientos antes planteados a que son: utilizaci n de la herramienta matlab, aplicaci n con o o alto potencial pr ctico y cumplimiento de todos los objetivos a planteados. III. DISENO DEL HARDWARE Para el dise o del hardware se elabor una estructura, en n o la cual se coloc la c mara en un pedestal jo conectada o a al software, que se detallara m s adelante, y en su base se a elabor una bandeja donde se colocar las monedas (V ase o a e gura 1). Se elabor primeramente el hardware ya que se o debe tomar en cuenta la altura adecuada entre la webcam y la bandeja para de esta manera poder tener una imagen precisa de las monedas. Ya que una vez establecida la altura esta no podr ser cambiada a

en cualquier imagen y posici n donde se las ubique, con esto o ya podemos trabajar en calcular e identicar la cantidad de monedas (V ase gura 1). e

Figure 2.

Estructura pedestal

Al dise ar el sotware tuvimos un problema la luz que se n reejaba en las monedas impedia que la imagen se pueda procear de una manera correcta, es por eso que se le implemento a la bandeja una estructura a manera de caj n para tratar de o evitar luces que ingresen de los costados (V ase gura 2), e de igual manera se implemento a la estructura un sistema de iluminaci n, para que la imagen siempre mantuviera un tono o de brillo establecido, por lo tanto se elabor un circulo de leds o de alta luminosidad blancos, se lo adapto al pedestal alrrededor de la camara (V ase gura 3) e

Figure 1.

Estructura pedestal

As mismo una vez obtenidas las im genes de las monedas a se puede empezar a trabajar en el software del sistema, ya que las im genes no cambiaran debido a la estructura ja del a sistema, por lo tanto cada moneda tendr el mismo tama o a n

Figure 3.

Estructura pedestal con iluminaci n o

IV. DISENO DEL SOFTWARE Utilizando la herramienta Matlab [3] se dise o el software n capaz de cumplir con los objetivos propuestos los cuales son procesar una imagen, reconocer que en la imagen exista una moneda, esto es, identicar que el objeto sea una moneda y no cualquiero otro objeto, y saber determinar su respectivo valor. (V ase gura 4) e

de ejecutar el video en la aplicaci n no se ejecutar y saldr o a a errores en la lnea de comandos. Ya con la webcam congurada podemos elaborar las lneas de c digo del software, para cumplir los objetivos planteados o que debe realizar este. (V ase gura 6). e Una vez ya capturada la imagen con la webcam, en matlab para leer una imagen se utiliza la funci n imo read(nombreimagen), en nuestro c digo la variable imagen2 o almacena la imagen de la webcam. imagen=imread(moneda.jpg) Es importante tener en cuenta que el nombre de la imagen debe ir con la extensi n del archivo, es por eso que en nuestro o c digo va moneda.jpg. (V ase gura 6). Deseamos convertir o e nuestra imagen moneda a binaria.[3] Normalmente cuando se convierte una imagen a binaria se emplea el 0 para indicar el fondo y 1 el objeto. Para realizar esto se emplear a una t cnica de umbralizaci n, para convertir las im genes en e o a binarias se utiliz el comando (im2bw()), en nuestro c digo la o o variable coin1 almacenar la imagen binaria. (V ase gura a e 5). coin1= im2bw(imagen) Para realizar la descripci n de regiones se utiliza o propiedades b sicas de matlab, B = bwlabel(f) donde f es la a imagen original y el comando bwlabel convierte la imagen a una representaci n de etiquetas (labels).[3][4] Adem s bwlabel o a devuelve una matriz, del mismo tama o de la imagen original, n que contiene las etiquetas para los objetos conectados en la imagen. Devuelve en n mero el n mero de objetos relacionau u dos que se encuentran en la imagen original (V ase gura 6) e [L, ne] = bwlabel (double,coin1)

Figure 4.

Lneas de c digo MATLAB o

Para comenzar a desarrollar el software empezamos congurando el pixelaje de la webcam[3]. Se realiza esto, es por el motivo de que no existan problemas al momento de emplear el video y captura de las im genes, mientras mayor a sea el pixelaje de resoluci n de la webcam, m s conveniente o a es el uso de la misma. Utilizando la funci n imaqtool en el Command Window o de Matlab podemos acceder a la conguraci n de la webcam, o donde se puede escoger la resoluci n as como determinar la o funci n para acceder a la c mara. (V ase gura 5) o a e

Figure 6.

Lneas de c digo. o

Figure 5.

Conguraci n c mara web. o a

Luego de tener bien congurada la webcam, es importante dar clic en stop preview ya que si no se lo hace, al momento

En la siguiente lnea el comando regionprops toma la matriz etiquetada de la lnea anterior y calcula las propiedades que se seleccionen. Las propiedades que se desean calcular se van poniendo una detr s de otra seguidas por una coma.[4] a Las propiedades que utilizaremos en este caso son rea, a centroid, boundingbox para determinar la propiedades de los objetos, la propiedad area nos permite calcular el area en pixeles cuadrados de la regi n, centroid que calcula la posici n o o

del centroide de la regi n, y boundingbox, calcula la posici n o o y dimensiones del mnimo rect ngulo que envuelve la regi n a o (V ase gura 6) e propied=regionprops(L,Area,Centroid,BoundingBox) Para mostrar im genes en matlab se usa el comando a imshow cuyo formato es imshow(f, G) donde f es la im gen a original y G es el n mero de niveles de intensidad a mostrar. Si u G se omite, se usa 256 por defecto. En la lnea 7 procedemos a mostrar la im gen. (V ase gura 7 ). a e

esto, que moneda es y su respectivo valor. (V ase gura 8) e propied(n).Area

Figure 8.

Lneas de c digo o

imshow(imagen) El comando hold on mantiene en la ventana gr ca los a dibujos anteriores. Se utiliz la variable total que almacenar o a el valor total de las monedas identicadas. As mismo se utiliza las variables moneda10c, moneda1c, moneda5c, moneda25c, moneda1D, moneda50c, para almacenar el n mero de monedas dependiendo su valor. (V ase gura 7). u e Para obtener los lmites de areas de las monedas se lo realiz de la siguiente manera. Se tom en cuenta dos o o aspectos importantes, el primero es que la moneda de diez centavos con la de un centavo son parecidas en tama o por n lo que a cada una se la examin y coloc en diferentes o o posiciones para ir tomando valores de areas de cada una. Se realiz en cada moneda tomas de medida en diferentes o posiciones para sacar el mnimo y el m ximo valor. Lo mismo a se realiz para las monedas de un d lar y 25 centavos y se o o obtuvo rangos de medida en los cuales no haya ning n tipo u de cruce e intersecci n. Despu s de esto se prob el resto de o e o monedas una por una, ya que de igual manera en algunas se tena problemas de intersecci n de areas. Pero al igual que o las anteriores se hizo las tomas de medida una por una.[3][4]. Obtenidos los valores de las areas de cada moneda se procede a utilizar un if para ir comparando los tama os n obtenidos y de esta manera identicar que monedas son. Dentro de cada if se realiza la comparaci n con un rango o especico dependiendo de cada moneda. Luego lo que se realiza es el corte de la imagen con el comando immcrop y lo que se ubica dentro de los corchetes es el valor de x y y de la imagen seg n donde est u e ubicada y luego se coloca el ancho y la altura deseada para el corte (V ase gura 9). e

Figure 7.

Lneas de c digo. o

Procedemos a gracar las cajas de frontera de todos los objetos existentes en la imagen.[4] Con la utilizaci n de un o for realizaremos el conteo desde 1, hasta las areas que tengamos presentes en la imagen. (V ase gura 7) e for n=1:size(propied,1) Para tratar de diferenciar la ubicaci n de cada moneda en o la im gen utilizamos el comando rectangle que dibuja el a recuadro alrededor de cada moneda identicada rectangle(Position,propied.BoundingBox) En la siguiente lnea de c digo se procede a obtener el o centro de cada area identicada en la im gen para poder a colocar el valor de dicha moneda. cent=propied .Centroid; En las siguientes lneas se procede a obtener la posici n del o centro X=cent(1);Y=cent(2);

r10c=imcrop(imagen,[X-36 Y-36 72 72]) En la siguiente lnea se convierte la imagen cortada a binaria, para su procesamiento (V ase gura 9 ). e c1 = im2bw(r10c); Para evitar el inconveniente de que exista otro objeto, del mismo tama o, es decir que tenga la misma area, pero no n sea una moneda, se procesa la imagen para observar que no tenga oricios, primeramente en la variable c2 se almacena la imagen inversa de c1. coc2 = (c1); Y a continuaci n se obtiene el area de cada una de las o monedas que es con la que se trabajar para determinar seg n a u Utilizando nuevamente el comando bwlabel se etiqueta y

cuenta todos los objetos conectados en la imagen, as mismo utilizando regionprops se calcula las propiedades de los objetos y se almacena en la variable huecos (V ase gura e 9)

Figure 10.

Realizaci n interfaz gr ca o a

Figure 9.

Proceso de c lculo de monedas a

[l ne]=bwlabel(double(c2)) huecos=regionprops(l,Area,Centroid,BoundingBox) Con la utilizaci n del commando text(X-10,Y,10 C) se o escribe en el centro de la moneda su valor, que en este caso sera 10C, 10 centavos. As mismo la variable total ir almacenando y sumando la cantidad seg n las monedas a u existentes para al nalizar tener el valor total de todo el conteo de monedas.[5][6] total=total+0.10 Se repetir el mismo procedimiento para determinar cada a una de las monedas existentes en la imagen dependiendo del rango de su area

El inicio de la interfaz gr ca se la congur de la siguiente a o manera (V ase gura 11), al momento que el usuario presione e continuar se abrira la siguiete interfaz graca donde se realizar todo el procedimiento del proyecto. (V ase gura a e 12). En la siguiente interfaz, tenemos los botones de previsualizado que abrira la camara y el usuario podra ver la imagen con las monedas que desea procesar, tenemos el bot n o Procesar que realiza todo el proceso descrito en el desarrollo del software a la imagen antes previsualizada, y nalmente tenemos el boton Salir que pondra n a todo el proceso.

Figure 11.

Realizaci n interfaz gr ca o a

Al nal de todo este proceso se colocar como ttulo a de la imagen el valor total de la cantidad en dinero de las monedas. title([Total de dinero: ,num2str(total),d lares]) o V. DISENO DEL GUI Interfaz gr ca de usuario a GUIDE es un entorno de programaci n visual disponible o en MATLAB para realizar y ejecutar programas que necesiten ingreso continuo de datos. Tiene las caractersticas b sicas de a todos los programas visuales como Visual Basic o Visual C++. Para nalizar con la presentaci n del proyecto se debe o congurar el GUI. En esta parte se puede observar y manejar los botones, axes y textos seg n la interface que se quiera u dise ar.[7] Tambi n cambiar los nombres a los tag tanto de los n e axes como de los botones y tambi n la salida de los strings. e Se puede poner textos con botones (V ase gura 10) e
Figure 12. Realizaci n interfaz gr ca o a

VI. IMPLEMENTACION VOZ ROBOTICA Para la implementaci n de la voz rob tica primeramente se o o utiliz la libreria x lo que hace es obtener la parte real de o

la variable TOTAL, una vez obtenida esta parte, obtenemos la parte de los centavos cent=(total-dolar)*100 y se procede a comprobar para obtener el audio. Si la variable dolar es menor a 1 unicamente se reproduce la parte de los centavos, si la variable dolar es mayor a 1 se reproduce el valor de la variable dolar y la variable centavos. Para la reproducci n o de la voz rob tica en matlab se utiliza el comando tts [8], lo o que realiza es llamar a la voz del sistema y reproducir el texto, el unico inconveniente encontrado es que la voz del sistema de un computador con Windows 7 se encuentra en ingles lo que no nos servia a nosotros. Se procedecio a cambiarle las librerias del sistema pero este no las detectaba como v lidas. a Asi que se intento en un sistema con Windows Xp se le instalo el motor de voz en espa ol propio para XP y de esta n manera utilizar ya el comando tts con la voz en espa ol. n audio=([Total de dinero: ,num2str(dolar), d lares o ,num2str(cent), centavos]); tts(audio); VII. MATERIALES 1) 2) 3) 4) 5) C maraWeb JT-NCM014. a Pedestal. Fuente (colocaci n de las monedas) o Cable USB 2.0 (conexi n c mara) o a Leds de alta luminosidad VIII. RESULTADOS Luego de realizar todas las pruebas, y vericar todos los fallos, se pudo obtener el software junto con el hardware funcionando sin falla alguna (V ase gura 13 ), detectando e la cantidad correcta de monedas e identicando cualquier otro objeto que no sea moneda alguna. As mismo se pudo obtener conocimientos en la utilizaci n de diferentes comandos de la o herramienta MATLAB para el procesamiento de im genes a

2) Se realiz medidas de areas en diferentes partes de la o zona de espacio. 3) Debe haber un uso correcto de los comando de MATLAB para evitar inconvenientes. 4) El sistema se lo fue dise ando desde la altura de la c mara n a para as evitar inconvenientes con el tama no de las monedas en la imagen 5) La c mara debe deber estar ja pues de esto depende a a que el sistema no falle. X. REFERENCIAS 1) ROMERO Jos Fundamentos Matem ticos Para la Ine a geniera Con Matlab, Ed. Univ. Polit c. Valencia, 2002, e pp 22-27 2) UABC Fundamentos para el procesamiento de im genes a con Matlab, Tutorial Formaci n, 2009 pp 126-138. o 3) SLIDESHARE Procesamiento de Im genes a con Matlab, Disponible en linea en: [http://www.slideshare.net/lonely113/procesamientodigital-de-imgenes-con-matlab], consultado el [12-052012] 4) SCRIBD Visi n o por Computadora utilizando MatLab y el Toolboox de procesamiento Digital de Im genes, a Disponible en:[http://es.scribd.com/doc/23371/Procesamientode-imagenes-con-Matlab],consultado el [12-06-2012] 5) MATLAB Procesado de Im genes en Color, Disponible a en:[http://elgva1.usc.es/ mjose/docencia/3ciclo/tema2.htm], consultado el [19-06-2012] 6) MATHWORKS Image and Video Processing, Disponible en [http://www.mathworks.com/image-videoprocessing/], consultado el [20-06-2012] 7) BARRAGAN Diego, Manual de Interfaz Gr ca de a usuario en Matlab

Figure 13.

Proceso de c lculo de monedas a

IX. CONCLUSIONES 1) No debe existir intersecci n de areas de tal manera que o no se descalibre el reconocimiento de cada una de las monedas.

Anda mungkin juga menyukai