´ Y REALIZACI ON ´ DE UN SOFTWARE IMPLEMENTACION QUE ANALIZA LA SONRISA Y LA REPRESENTA EN ´ UN VUMETRO #1 #1 #2
Miguel Jumbo,
#1
Dario Ochoa,#1 Juan Sanmart´ Sanm art´ın. ın.
#2
Manuel Qui˜ nones. nones.
Profesionales en formaci´ on on de la EET ,Universidad ,Universidad T´ecnica ecnica Particular de Loja.
Docente de la Escuela de Electr´onica onica y Telecomunicaciones, elecomunicaciones, Universidad Universidad T´ ecnica ecnica Particular Particular de Loja Loja, Ecuador 2012
1
1
[email protected],
[email protected], 1
[email protected],
[email protected], 2
[email protected]
presen ente te trab trabaj ajo o consta onsta de la Resumen: El pres detecci´ on de la sonr sonris isa a de una una perso ersona na usand usando o un softw softwar aree dise˜ dise˜ nado en Matl atlab, ab, lo que nos servir´ a para la representaci´ on de la sonrisa en un v´ umetro. Palabras Palabras claves: Proc Procesamie esamiento nto de im´ agenes, MATLAB, v´ umetro, visi´ on por computadora.
Un v´ umet u metro ro se incl incluy uyee a me men nudo udo en equi equipo poss de audi audioo para para mo mosstrar trar un niv nivel de se˜ senal n ˜ al en unid unidad ades es de volu volume men, n, el dispo disposi siti tiv vo es a veces eces tambi´ tambi´ en en llamado indicador indicador de volumen, volumen, pero en nuestro caso se lo ha utilizado como un indicador de nivel de la sonrrisa.
´ I. INTRODUCCION
II. METODOLOG´ IA DE TRABAJO.
MATLAB[1 MATLA B[1]] o laborator laboratorio io de matric matrices, es, es un software software matem´ atico, atico, que entre entre sus princip principale aless aplicabilida aplicabilidades des est´ an an dadas hacia la ingenier ingenier´´ıa, debi debido do a los los toolbo toolbox x inte integra grados dos o que que pued pueden en ser ser agreg agregado ados, s, es uno uno de progra programa mass de ma may yor uso en las universidades y centros de investigaci´on. on.
Como primer paso, se realiz´o una amplia investigaci´on on y recolecci´on on de informaci´on on disponible disponible en la red, con la cual pudimos guiarnos y tener una base de conocimientos para poder iniciar el proceso de desarrollo del algoritmo. El soft softw ware que que estam estamos os usand usandoo es MA MATL TLAB AB de matworks.inc[4], en la versi´on o n R2012a con el cual estamos realizando el algoritmo de reconocimien cimiento to de la sonris sonrisaa usando usando princip principalm almen ente te el toolbo toolbox x de sist sistem emaa de visi visi´´on on por com comput putado adora ra y proce procesa sami mien ento to de im´ im´agene a genes, s, entr entree otros otros que que MATLAB MA TLAB contiene.
Se entiende por procesamiento de im´agenes[2] agenes[2] al conjunto de t´ecnicas ecnicas que se aplican aplica n a las im´ im ´agenes agenes digitales con el objetivo de mejorar la calidad o facilitar la b´ usqueda usqueda de informaci´ informaci´ on. on. El prop prop´ osit o´ sitoo de la visi´ isi´ on o n artifi artifici cial al[3 [3]] es proprogramar un computador para que ”entienda” una escena escena o las caracter caracter´ısticas ısticas de una imagen. imagen. Los objetivos t´ıpicos de la visi´on on artifici artificial al est´ estan: a´ n: la detecci´ on, on, segmentaci´on, on, localizaci´on on y reconocimiento de ciertos objetos en im´agenes. agenes.
Una vez que obtuvimos el programa MATLAB, procedimos a elaborar c´ odigos odigos tales como el uso de la c´amara, amara, aplicaci´ aplicaci´ on on de filtros a las im´agenes agenes que seran seran captur capturadas adas para log lograr rar visual visualiza izarr resultados obtenidos, en la versi´on o n de MATLAB La com comuni unicac caci´ i´ on o n seria eriall es un prot protoc ocol oloo muy R2012 trae una funci´on on espec´ espec´ıfica con la que se com´ un un para comunicaci´on on entre dispositivos que detecta el rostro de la imagen tomada. se incluye de manera est´andar andar pr´ acticamente acticamente en cualquier computadora, tambi´ en en la comunicaci´ on on Entr Entree los los filtr filtros os que que hemo hemoss utli utliza zado do est´ est´ an: an: seria seriall pued puedee ser ser util utiliz izada ada para para adqu adquis isic ici´ i´ on de filtro entropyfilt, filtro mat2gray. datos datos si se usa usa en conju conjun nto con con un dispo disposi siti tiv vo Siguie Siguiendo ndo con la planifi planificac caci´ i´ on o n crea creamo moss un blog blog remoto de muestreo. muestreo. el cual cual sirv sirvi´ i´ o para para la publ public icac aci´ i´ on o n de c´odigos odigos y 1
Universidad T´ ecnica Particular de Loja
EET IEEE
avances del proyecto y la revisi´o n por parte del tutor. III. CAPTURA DE LA IMAGEN
El presente trabajo tiene como finalidad representar en una GUI el reconocimiento de la sonrisa la cual ser´ a encerrada en un recuadro todo esto con la ayuda del software MATLAB, nuestro proyecto est´ a directamente involucrado con el procesamiento de im´agenes, y visi´o n por computadora. MATLAB es una herramienta muy u ´ til para nuestro prop´ osito debido al toolbox ’Computer Vision System’ y el demo que este trae integrado que nos sirvi´o para lograr orientar parte de nuestros objetivos .
Figura 2: Imagen Capturada y ’Vi’vision.CascadeObjectDetector’ sion.ShapeInserter’que son propia del toolbox Vision SystemComputer[6] ,mediante estas funciones logramos reconocer los rotros presentes en la imagen[7]. Gracias a la ayuda de dichas funciones mencionadas anteriormente, que nos entregan valores importantes del rostro de la persona tales como: posici´on (x,y), dimensi´on del rostro(largo,ancho), podemos proceder a recortar el rostro de la imagen original, pues en este caso trabajaremos con una imagen m´as peque˜ na ya que solo ser´a el rostro de la persona, seguidamente usando la variable ’bbox’ que es donde se almacenan estos valores importantes obtuvimos nuevas variables para lograr recortar la imagen de la sonrrisa, para ello multiplicamos coeficientes con la variable ’bbox’ y de esta manera lograremos obtener siempre una imagen recortada cerca de la sonrisa.
La adquisici´on de la imagen se la realiza por medio de la webcam y se la obtiene mediante la ejcecuci´ on del c´o digo, para ello usamos la funci´on ’videoinput’ y ’getsnapshot’ que es del toolbox de adquisici´on de im´agenes, ajustamos la resoluci´on de la c´amara[5] y la configuramos para que la imagen sea tomada y almacenada en colores RGB y en formato JPG, el almacenamiento de la imagen lo logramos realizar mediante el imwrite. Cabe recalcar que para equipos con Sistema Operativo Winwdos se utiliz´o ’winvideo’ y para equipos con Sistema Operativo Lion se utiliz´o ’macvideo’, que en nuestro caso trabajamos con un equipo ’Mac’, debido algunas ventajas en cuanto a la resoluci´on de la webcam.
on vision.CascadeObjectDetector Figura 3: Funci´ Figura 1: C´ odigo de la Imagen Capturada
´ DE FILTROS V. APLICACION
Para la obtenci´ o n de area de la sonrrisa nos basamos en los filtros entropyfilt y mat2gray, pero Una vez que se captura la imagen la im- a mas de esto se utilizo algunas funciones entre portamos a MATLAB para iniciar el tra- las principales est´an im2bw, bwareaopen, imclose, bajo sobre ella mediante el comando ’im- bwlabel. read’, seguidamente utilizamos las funciones IV. RECORTE DE LA IMAGEN
2
Universidad T´ ecnica Particular de Loja
EET IEEE
la dentadura blanca usamos la funci´on ’imclose’ y ’bwlabel’, el primero usa una operaci´on morfol´ ogica de dilataci´ o n y posterior erosi´ on y la segunda funci´ o n es usada para conectar los componentes de dicha imagen, formando de mejor manera la regi´on de la boca. ´ ´ VI. CALCULO DEL AREA DE LA SONRISA
on del ’imcrop’ Figura 4: Aplicaci´
Una vez que se tiene identificada la sonrisa se usa ’regionprops’ que es una funci´on utilizada ´ con el fin de tener par´ametros como es Area, Centroide y BoundingBox los cuales utilizaremos a futuro. Ahora calcularemos el a´rea m´as grande con el comando ’max’ lo que ser´a la sonrisa, seguidamente utilizamos la funci´ on ’ismember’ que nos da como resultado verdadero (1) o cero (0) dependiendo si los elementos buscados son encontrados[9].
Como primer filtro usamos la funci´ on ’entropyfilt’ ,sirve para dar el valor de entrop´ıa de cada uno de los pixeles encontrados en la imagen, ya que la imagen es tomada como una matriz, usamos la funci´ on ’mat2gray’ para convertirla en una imagen en escala de grises[8].
VII. ENCERRAR LA SONRISA
Ya que se tiene identificada la sonrisa, como el ´area m´ as grande, para encerrarla nos ayudamos de los par´ ametros obtenidos anteriomente con el regionprops, especificamente utilizamos el ’BoundingBox’, pues que en BoundingBox est´an almacenadas las coordenadas y la dimensi´o n del ´area mayor, que en s´ı ser´ a la sonrisa. Ahora con la funci´ on ’DrawRect’ encerramos en un recuadro la sonrisa y ha ´esta la montamos en la imagen donde est´a el rostro, al poder utilizar DrawRect enviamos las coordenadas y las dimensiones del recuadro que deseamos dibujar, esto lo logramos gracias a BoundingBox[10].
Figura 5: Filtro Entropyfilt La funci´ o n usada para la binarizaci´ on de la imagen es el comando ’im2bw’, el cual ser´a de gran ayuda en la u ´ ltima imagen recortada es decir la imagen donde esta la sonrisa, debido a que convierte a la imagen RGB en una imagen binaria que nos servir´a como base para proseguir con el desarrollo de nuestro objetivo.
Figura 6: Aplicaciones de Filtros
Ya que, la binarizaci´on no toma solo el ´area de los dientes como blancos, si no tambi´en quedan peque˜ nos pixeles en blanco estos son removidos con el uso de ’bwareaopen’ . Y tambi´en quedan peque˜ nos puntos negros que se encuentran en el borde de cada diente para hacer toda el ´area de
Figura 7: Sonrisa Encerrada
3
Universidad T´ ecnica Particular de Loja
EET IEEE
VIII. GUI
Basados en la ayuda de Mathworks procedemos abrir el puerto serial con ’fopen’, seguidamente se envi´a un dato con ’fprintf’, acontinuaci´ on procedemos a cerrar el puerto con ’fclose’ cabe se˜nalar que el dato que se envio ser´a interpretado por el microcontrolador y este ser´a representado en el v´ umetro.
Una vez obtenida, la sonrisa en un recuadro, para poder representar mejor el proyecto proseguimos a realizar una ’gui’, que es la interfaz gr´ afica del usuario de Matlab, para esto recurrimos a realizar una extensa busqueda de informaci´o n en la web, donde se encontr´o una gran variedad sobre este tema, de la cual nos guiamos como base para poder crear una ’gui’, en la siguiente imagen podemos observar la GUI creada, nuestra presentaci´on consta de 2 GUI, en donde GUI 1 indica los integrantes y el tutor que levaron a cabo la realizaci´ on de este proyecto, adem´ a s la GUI 1 tiene la funci´o n de llamar a la GUI 2. En la GUI 2 es en donde veremos el funcionamiento de nuestro proyecto.
on MAX232 Figura 10: Configuraci´
Un v´ u metro en nuestro caso se lo ha utilizado como un indicador de nivel de la sonrrisa, la funcion que realiza el v´ umetro es, representar los datos del microcontrolador, una vez que el dato es interpretado por el microcontrolador, se encenderan los leds del v´umetro, a mayor sonrisa mayor ser´ a el nu ´ mero de leds encendidos, el dise˜ n o del v´ umetro es de forma escalonada, y fue elaborado en acr´ılico.
on Gui Figura 8: Presentaci´
´ X. ANALISIS DE LOS RESULTADOS
Es muy importante la detecci´on del rostro y el recorte del mismo ya que nos ayuda a trabajar con una imagen m´ a s peque˜ n a y ha enfocarnos en la sonrisa La aplicaci´on de filtros a la imagen recortada es muy importante ya que la intensidad de luz afecta el resultado, mediante la aplicaci´on de filtros se logra obtener m´ a s resaltados el borde de los labios y en si obtener la sonrisa que finalmente ser´a la parte m´as importante.
Figura 9: Aplicaci´ on Gui
´ SERIAL y IX. COMUNICACION ´ VUMETRO
La comunicaci´o n serial es un protocolo muy com´ u n para comunicaci´ o n entre dispositivos. Los datos recibidos y enviados est´an en formato ASCII. El puerto serial env´ıa y recibe bytes de informaci´o n un bit a la vez. Para realizar la comunicaci´ on se utilizan 3 l´ıneas de transmisi´on: 1 tierra, 2 transmitir, 3 recibir. Para la comunicaci´o n serial utilizamos un cable de USB a SERIAL (DB9) que a su vez est´a conectada a la configuraci´ on del MAX232 que permitir´a comunicar con un microcontrolador AVR Atmega32.
El c´o digo est´ a dise˜ n ado para solo una persona ya que al detectar mas de un rostro se obtiene un error, debido a que las condiciones del vector est´an dadas solo para un rostro, se recomienda estar de frente a la c´a mara evitando que se obscurezca el rostro (con gorras o sombreros) y con un fondo sin personas. El proyecto y los c´o digos fueron probados y var´ıan dependiendo de las condiciones de cada equipo, pero finalmente la presentaci´ o n se 4
REFERENCIAS
Universidad T´ ecnica Particular de Loja
EET IEEE
realiz´o en un ordenador Mac de Apple, debido proyecto se realice correctamente los cuales a la mejor calidad de imagen y resoluci´o n de son la posici´on correcta de la persona, el enla webcam, ya que var´ıan las coordenadas de torno y su iluminaci´on y la resoluci´o n de la recorte del vector y en si errores en la detecci´on c´ amara con la que se trabaja. de la sonrisa dependiendo de equipo. Al aplicar nuestro c´ o digo en tiempo real la maquina se XII. BIBLIOGRAF´ IA vuelve lenta,debido a los filtros que utilizamos, por lo que decidimos trabajar con una GUI en Referencias donde representaremos la sonrrisa de una sola persona. [1] MATLAB, [6 de abril del 2012] : [en l´ınea] < http //es.wikipedia.org/wiki/M atlab >,Wikipedia. [2] Procesamiento Digital de im´ a genes, [6 de abril del 2012].[en l´ınea] < http : //es.wikipedia.org/wiki/M atlab >,Wikipedia . [3] Visi´on artificial,[6 de abril del 2012].[en l´ınea] < http : //es.wikipedia.org/wiki/M atlab >,Wikipedia. [4] B´ usqueda de resultados, [19 de abril del 2012].[en l´ınea] < http : //www.mathworks.com/searchresults /?c %5B %5D = entiresite&q >,Mathworks .
Figura 11: V´ umetro XI. CONCLUSIONES
Para la realizaci´ on de este proyecto, es decir para lograr medir la sonrisa de una persona nos hemos basado en el ´area de la misma, es por ello la utilizaci´on de los filtros, pues mediante el uso adecuado de ´estos nos facilitan o nos ayudan a determinar datos que ser´an muy esenciales para lograr nuestro objetivo, por lo cual mediante el ´area obtenida lograremos representar la sonrisa de la persona.
[5] Diego Barrag´ an CONECTAR WEBCAM EN MATLAB, [19 de abril del 2012].[en l´ınea], < http : //www.youtube.com/watch ?v = JOxbgsKDtcg >,Youtube . [6] Reconocimiento de caras,[20 de abril del 2012].[en l´ınea] < http : //isa.umh.es/asignaturas/iarp/practicas/ P 8/PRACTICA8.pdf >,isa.uhm.es.
Se concluy´ o que la velocidad de transmisi´on (baudios) de la comunicaci´on serial entre Matlab y el Microcontrolador deben ser las mismas y as´ıncrona para que pueda existir la comunicaci´on sin errores
[7] Seguimiento de patrones faciales por descriptores de forma, [19 de abril del 2012].[en l´ınea] < http : //adf.ly/480941/int/http : //pdffinder.net/SEGUIMIENTO DEPATRONESFACIALES PORDESCRIPTORESDE F ORMA.html >,adf.ly.
El uso de la versi´on MATLAB R2012a fue indispensable para el desarrollo del proyecto, ya que en esta versi´on encontramos demos de ayuda para lograr entender como se puede trabajar con reconocimiento facial, tambien se logr´o entender el uso de algunas funciones disponibles en el programa.
[8] B´ usqueda de resultados,[20 de abril del 2012].[en l´ınea] < http : //www.mathworks.com/matlabcentral/new sreader/view thread/283963 >,Mathworks. [9] Matlab smile detection,[20 de abril del 2012].[en l´ınea], < http : //www.sourcecodeonline.com/list ?q = matlab smile detection >,Sourcecodeonline.
En base a varias pruebas con nuestros equipos, nos hemos dado cuenta de aspectos importantes que son necesarios para que nuestro 5
REFERENCIAS
Universidad T´ ecnica Particular de Loja
[10] facedetection and smile detection,[20 de abril del 2012].[en l´ınea] < http : //www.csie.ntu.edu.tw/ f uh/personal/Face DetectionandSmileDetection.pdf > ,csie.
6
EET IEEE