You are on page 1of 121

PROYECTO FIN DE CARRERA

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

AUTOR: ANA DOMENECH MARTORELL MADRID, SEPTIEMBRE 2009

Autorizada la entrega del proyecto del alumno/a:

Ana Domnech Martorell

EL DIRECTOR DEL PROYECTO

Juan Antonio Prez Campanero

Fdo.: Fecha: //

V B del Coordinador de Proyectos

David Contreras Brcena

Fdo.: Fecha: //

PROYECTO FIN DE CARRERA

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

AUTOR: ANA DOMENECH MARTORELL DIRECTOR: JUAN ANTONIO PEREZ CAMPANERO MADRID, SEPTIEMBRE 2009

AGRADECIMIENTOS

Principalmente quiero agradecer la ayuda recibida por parte de mi familia. Sin ellos no hubiera sido posible realizar esta etapa de mi vida y llegar a ser ingeniera. Otro punto importante en esta etapa ha sido el apoyo de Alex. Siempre que he tenido algn bajn en este tiempo, l ha estado ah, para lo bueno y para lo malo, alegrndome en todo lo posible y apoyndome para seguir adelante. A mis nias del Mara, en especial a Laura y a Esti que sin ellas la vida aqu en Madrid no hubiera sido la misma. No puedo olvidarme de mis burgaleses, que me han aguantado durante este ltimo verano de carrera, con mis alegras y tristezas dependiendo de cmo fuera el desarrollo del proyecto. En especial a Silvia y a Raquel. A los compaeros de clase, destacando a Laura, empezamos juntas y terminamos juntas y a Hctor por todas las ayudas durante todos estos aos. Por ltimo, quiero agradecrselo tambin a mi Director de proyecto Juan Antonio que me ha ayudado continuamente en todo el desarrollo del mismo aportando nuevas ideas y distintos puntos de vista. Sobre todo la disponibilidad que ha tenido durante todo el verano para resolverme cada una de las dudas que me iban surgiendo. En resumen a toda la gente cercana, estos aos no hubieran sido as si no es por vosotros y os lo agradezco. Comienza ahora una nueva etapa en mi vida.

RESUMEN
Existen diferentes sectores en la poblacin los cuales tienen limitaciones a la hora de la utilizacin de los ordenadores. Da a da, este problema se va solventando poco a poco gracias a las nuevas tecnologas existentes en el mercado y los nuevos estudios referentes a ello. Con el desarrollo de este proyecto se pretende minimizar, en la medida de lo posible, estas dificultades, ayudando al usuario a manejar de una forma sencilla y eficaz algunas aplicaciones del ordenador. El objetivo principal de este proyecto es dotar a estas personas con dificultades, de una herramienta que les permita acceder al ordenador de una manera aproximada a la que puede realizar un usuario cualquiera. Para la realizacin de la aplicacin es necesaria la utilizacin de una cmara web, cualquiera de las existentes hoy en da en el mercado tecnolgico, mediante la cual el usuario podr mandar instrucciones al ordenador simplemente con el movimiento de un dedo. Todo esto debe hacerse con un dedal negro que se coloca en el dedo para facilitar as el estudio de las imgenes que se realizarn posteriormente con el programa Matlab.

Figura 1.Webcam utilizada en el proyecto

II

Figura 2. Dedal utilizado para el proyecto

Las tcnicas que proporciona la herramienta Matlab, nos han permitido tratar cada una de las imgenes que son captadas por la webcam cuando el usuario ejecuta la aplicacin. Mediante Matlab, se leen todas las imgenes tomadas y mediante el reconocimiento del color negro, realizando previamente una binarizacin de la imagen, se estudia el movimiento realizado por el usuario y se devuelve el valor introducido al interfaz programado en Java. En futuros estudios se puede ampliar esta aplicacin, ya que actualmente slo consta de dos opciones que se ofrecen al usuario. Slo reconoce determinadas letras del vocabulario, por lo tanto, se podra investigar para que el sistema reconozca todo el vocabulario y as dotar de la aplicacin de diversas opciones para que el usuario pueda llegar a controlar parcialmente el ordenador.

III

Estudios ms avanzados, podrn permitir al usuario la utilizacin del ratn con el movimiento de la cara o simplemente con el movimiento de los ojos, de esta forma, la Interaccin Persona Ordenador sera total y producira un avance notable en las tecnologas.

IV

ABSTRACT
There are different sectors of the population which have limitations in the use of computers. New technologies in the market and new studies on this solve, day by day, this problem gradually. The development of this project tries to minimize, as far as possible, these difficulties helping the user to manage in a simple and effective way some computer applications. The main objective of this project is to provide these people with difficulties, a tool that allows them to access the computer in a manner similar to the one that any user can perform. For the realization of the application is necessary to use a webcam, any of the ones existing today in the technology market, whereby the user can send instructions to the computer by simply moving a finger. All this must be done with a black thimble that is placed on the finger to facilitate the study of images to be held later with the program Matlab.

Figure 1. Webcam used in the project

Figure 2. Thimble used in the project

The techniques provided by Matlab tool has enabled the treating of each of the images captured by the webcam when the user runs the application. Using Matlab, all images taken are read and by recognizing the color black, by a prior image binarization, the motion made by the user is studied and it returns the value entered to the interface programmed in Java. Future studies can extend this application, which currently only has two options open to you. It recognizes only certain points of vocabulary, therefore, it could be investigated for the system to recognize all the vocabulary and thus to provide the implementation of various options for the user to get to partially control the computer.

VI

Further studies may allow the user to move the mouse with the movement of the face or simply with the eye movement, thus, the Human Computer Interaction would be completed which will produce a significant advance in technology.

VII

INDICE
1. INTRODUCCIN ..............................................................................................................1 1.1 DESCRIPCIN ....................................................................................................................... 2 1.2 MOTIVACIN ....................................................................................................................... 6 2. ESTADO EL ARTE .............................................................................................................8 2.1 VISIN ARTIFICIAL ............................................................................................................. 19 2.1.1 CAMPOS EN LOS QUE SE APLICA LA VISIN ARTIFICIAL ........................................... 23 2.2 PROCESAMIENTO DE IMAGEN .......................................................................................... 25 2.3 IMAGEN DIGITAL ............................................................................................................... 30 2.3.1 BINARIZAR UNA IMAGEN .......................................................................................... 31 2.3.2 HISTOGRAMA DE UNA IMAGEN ................................................................................ 32 3. OBJETIVOS .................................................................................................................... 36 4. TECNOLOGIA UTILIZADA ............................................................................................... 39 4.1 WEBCAM ........................................................................................................................... 40 4.2 SOFTWARE ........................................................................................................................ 49 4.2.1 NETBEANS - JAVA ...................................................................................................... 49 4.2.2 MATLAB ..................................................................................................................... 55 4.2.3 LIBRERA JMATLINK ................................................................................................... 58 5. DESARROLLO DE LA APLICACIN ................................................................................... 59 5.1 PLAN DE TRABAJO ............................................................................................................. 60 6. TRATAMIENTO DE IMGENES CON MATLAB ................................................................. 74 6.1 TIPOS DE IMGENES EN MATLAB ..................................................................................... 75 6.2 PROCESADO DE IMGENES EN MATLAB .......................................................................... 79 7. PLANIFICACIN ............................................................................................................. 80 8. ESTUDIO ECONMICO .................................................................................................. 85 8.1 COSTES DE INGENIERA ..................................................................................................... 86 8.2 COSTE DEL SOFTWARE UTILIZADO.................................................................................... 90 8.3 COSTE DEL HARDWARE UTILIZADO .................................................................................. 91 8.4 PRESUPUESTO FINAL......................................................................................................... 92 9. RESULTADOS DEL SISTEMA............................................................................................ 93 10.CONCLUSIONES Y TRABAJOS FUTUROS .......................................................................... 96 11.BIBLIOGRAFA ............................................................................................................... 99

VIII

12.ANEXOS ...................................................................................................................... 101 12.1 MANUAL DE USUARIO............................................................................................... 102

IX

INDICE DE FIGURAS
Figura 2.1 Eye Tracking en Google Figura 2.2 Eye Tracking en el diario ingls The Times Figura 2.3 Usuario utilizando Project Natal Figura 2.4 Ejemplo de uso de Project Natal Figura 2.5 Ejemplo de uso de HeadDev Figura 2.6 Visin artificial y sus reas Figura 2.7 Ejemplos de aplicaciones de visin artificial Figura 2.8 Imagen tomada con diferentes resoluciones Figura 2.9 Niveles de manifestacin de la seal de la intensidad luminosa Figura 2.10 Imagen con su correspondiente histograma Figura 2.11 Imagen a color con sus correspondientes histogramas RGB Figura 4.1 Diagrama de una videoconferencia a travs de webcams Figura 4.2 Webcam Logitech utilizada Figura 4.3 Pasos al tomar una imagen Figura 4.4 Ejemplo aplicacin Fix.8 Figura 4.5 Usuario jugando con CamSpace Figura 4.6 Imagen Webcam. Plaza del Cid (Burgos) Figura 5.1 Plan de Trabajo del proyecto Figura 5.2 DFD. Nivel de Contexto (Nivel 0) Figura 5.3 DFD. Nivel Conceptual (Nivel 1)

Figura 5.4 Diagrama de flujo Figura 6.1 Imagen en escala de grises Figura 6.2 Imagen RGB Figura 6.3 Imagen Binaria Figura 6.4 Filtrado espacial por ventana 3x3 Figura 7.1 Planificacin del proyecto Figura 8.1 Costes de Ingeniera Figura 8.2 Tarifa /hora de los participantes Figura 8.3 Presupuesto final del proyecto

XI

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

1.

INTRODUCCIN

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

1.1 DESCRIPCIN

Las innovaciones tecnolgicas siempre representan un avance en la humanidad. La investigacin aplicada finaliza con la creacin de herramientas que repercuten en una mejora en la vida cotidiana de las personas. En el siglo XXI la tecnologa ha invadido todos los mbitos de la vida y ha hecho que estas herramientas sean totalmente imprescindibles en nuestro quehacer diario. Por citar slo dos ejemplos, en plena Era de la Informacin somos incapaces de imaginar una vida sin el ordenador y el telfono mvil. Comunicarnos a distancia y en cualquier momento, escribir y guardar documentos, consultar informacin a travs de Internet, comunicarnos con el mundo, son algunas de las actividades que hoy en da hacemos con mucha frecuencia y de las que seramos incapaces de prescindir. Las mejoras han impactado a la vez en la vida laboral y en nuestros ratos de ocio, cambiando nuestros hbitos y formas de vida Estas nuevas tecnologas han permitido sin duda avanzar a los pases desarrollados pero adems han permitido tambin que otros pases ms atrasados tuvieran acceso a una informacin que antes no posean y ello les ha posibilitado un buen salto hacia el progreso. Podramos decir pues que casi todo el mundo se ha beneficiado de estos inventos. As pues la relacin con los ordenadores se ha hecho indispensable. Para tener acceso a las nuevas tecnologas todos los habitantes del planeta han tenido que desarrollar, en mayor o menor medida, habilidades concretas que les permitieran comunicarse con los ordenadores.

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Sin embargo las nuevas tecnologas han descuidado desde sus comienzos a un sector importante de la sociedad que tambin necesita hacer uso de ellas, no solamente en su trabajo, sino tambin para mejorar la calidad de vida: los discapacitados. La dificultad que tiene este sector de la poblacin en cuanto a sus posibilidades de comunicacin con los ordenadores limita enormemente su posibilidad de disfrutar de todas las ventajas de estas nuevas tecnologas. Se trata de una aplicacin IPO, es decir, Interaccin Persona Ordenador, esto es la disciplina que estudia el intercambio de informacin entre las personas y los computadores. sta se encarga del diseo, evaluacin e implementacin de los aparatos tecnolgicos interactivos, estudiando el mayor nmero de casos que les pueda llegar a afectar. Los objetivos son: Conseguir que el intercambio sea ms eficiente Minimizar errores Incrementar la satisfaccin Disminuir la frustracin Hacer ms productivas las tareas que rodean a las personas y los computadores

Es muy importante disear sistemas que sean efectivos, eficientes, sencillos y amenos a la hora de utilizarlos, dado que la sociedad disfrutar de estos avances. La dificultad viene dada por una serie de restricciones y por el hecho de que en ocasiones se tienen que hacer algunos sacrificios.

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Dado que la interaccin persona computador estudia la comunicacin entre el ser humano y las mquinas, esto provoca que se tengan que tener unos conocimientos por parte de ambos, humano y mquina. Con el fin de tener un concepto ms aproximado sobre el campo de interaccin persona computador, contemplamos que est especializado en: La unin de las tareas de los humanos con las mquinas Las capacidades humanas para utilizar las mquinas Los algoritmos y programas de la interfaz en s Conceptos de ingeniera que se plantean a la hora de disear y construir interfaces El proceso de especificacin, diseo e implantacin de la interfaz Sacrificios del diseo En conclusin, cuenta con aspectos cientficos de ingeniera y diseo. Los componentes fundamentales son: El usuario: Hay que tener en cuenta que el ser humano tiene una capacidad limitada de procesar informacin; lo cual es importante considerar a la hora de hacer el diseo. Nos podemos comunicar a travs de cuatro canales de entrada/salida: visin, audicin, tacto y movimiento. La informacin recibida se almacena en la memoria sensorial, la memoria a corto plazo y la memoria a largo plazo. Una vez recibimos la informacin, sta es procesada a travs del razonamiento y de habilidades adquiridas. A todo este proceso afectar el estado emocional del usuario, dado que influye directamente sobre las capacidades de una persona.

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

El computador: El sistema utilizado puede afectar de diferentes formas al usuario. Los dispositivos de entrada permiten introducir texto, como sera el caso del teclado del ordenador. Como dispositivos de salida contaramos con diversos tipos de pantallas. Los sistemas de realidad virtual y de visualizacin 3D juegan un rol muy importante en el mundo de la interactividad persona computador. El origen del proceso interactivo: Es importante que haya una buena comunicacin entre usuario y computador, por este motivo, la interfaz tiene que estar diseada pensando en las necesidades del usuario. Es de vital importancia este buen entendimiento entre ambas partes dado que sino la interaccin no ser posible.

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

1.2 MOTIVACIN

La motivacin que nos lleva a la realizacin de este proyecto es el hecho de ayudar a las personas de este sector de la poblacin que tienen problemas para comunicarse con el ordenador y ven con ello limitado su uso. La forma ms comn de interactuar con el ordenador es a travs del ratn y el teclado. Dentro de los discapacitados hay distintos grados de limitacin y en algunos casos las posibilidades de comunicacin con el ordenador se ven impedidas. Mediante este proyecto se pretende aportar una contribucin a los avances en este campo creando y desarrollando una nueva interfaz que permita que una persona con movilidad limitada pueda utilizar el ordenador comunicndose con l mediante simples movimientos de la mano. Con objeto de ayudar a personas con discapacidades o que tienen dificultades para acceder al ordenador utilizando los sistemas estndar, se ha creado una forma nueva de comunicacin a travs de reconocimientos gestuales. La persona interesada, utilizando slo una webcam normal, podr enviar instrucciones al ordenador mediante movimientos espaciales con su mano. El programa creado, procesando una superposicin de parmetros de posicin y movimiento, se encargar de interpretar los gestos de la persona y transformarlos en instrucciones para el ordenador, eliminando de esta manera su limitacin.

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Adems de todo lo mencionado el proyecto tiene dos ventajas aadidas. En primer lugar podra suponer un avance en la rehabilitacin psquico fsica de pacientes con enfermedades como Alzheimer, Parkinson, etc. Y en segundo no podemos olvidar la posibilidad de que esta nueva interfaz pueda ser utilizada por personas que, sin tener ninguna discapacidad, quieran utilizarla como una alternativa de comunicacin hacia nuevos mundos virtuales.

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

2.

ESTADO EL ARTE

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

En la actualidad, para poder tener acceso al ordenador las personas que tienen algn tipo de discapacidad motriz requieren de diversas ayudas tcnicas. Por un lado, perifricos adaptados como teclados especiales, ratones controlados por un joystick, otros de tipo TrackBall o multimouse. Y por otro lado, adaptaciones y modificaciones de los programas ya existentes en el mercado o programas especficos como los de barrido controlados por un pulsador o los emuladores de teclado y ratn en pantalla. De hecho, si una persona es capaz de realizar un control voluntario sobre alguna parte de su cuerpo mediante un pulsador y un sistema de barrido puede controlar un ordenador y cualquier programa y con esta herramienta controlar su entorno prximo y acceder a un entorno lejano. En general, los sistemas con joysticks o pulsadores se basan en el control mecnico de un aparato o sensor conectado fsicamente al ordenador. Cada usuario requiere un sistema personalizado que incluye los soportes que sujetan el pulsador o joystick en la posicin adecuada, el pulsador especfico con el que puede trabajar y sistemas de barrido personalizados, etc. Ello tiene como gran ventaja su simplicidad tcnica, pero supone encadenar a la persona a la mquina y complicar el proceso de preparacin antes de trabajar. Adems, se conoce el elevado coste del material informtico adaptado. El Reconocimiento Gestual es una parte de las ciencias de la computacin y tecnologa del lenguaje. En este campo el objetivo es la interpretacin de gestos a travs de algoritmos. Los gestos pueden proceder de cualquier movimiento corporal pero ms comnmente de la cara o de las manos.

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Se han estudiado e investigado muchos algoritmos de procesamiento de imagen para utilizarlos con diversos equipos de captura de la imagen o de visin, como pueden ser las Webcams, cmaras digitales, sensores con el fin de interpretar el lenguaje de los signos, posturas y gestos de la persona humana, con el fin de detectar su comportamiento y utilizarlo como una posible interfaz con el ordenador, llevando a tcnicas de reconocimiento gestual con dicha finalidad. El Reconocimiento Gestual puede ser visto como una forma en la que las mquinas empiecen a comprender el lenguaje del cuerpo humano y el avance hacia un autntico interfaz humano natural con el ordenador. Actualmente, existen diferentes aplicaciones que permiten reconocer los movimientos capturados a travs de un dispositivo de video o imagen. Muchos de ellos, estn realizados utilizando dispositivos LED que la persona coloca en sus manos o incluso su cara y as reconocer el movimiento a travs de la webcam y poder plasmar el mismo. La tecnologa hoy en da avanza a pasos agigantados, en los cuales podemos encontrar hasta mviles que realicen este tipo de servicios, ya que muchos de ellos se pueden utilizar o pueden activar funciones simplemente pasando la mano sobre el dispositivo mvil o incluso movindolos hacia un lado, o cambiando su postura, aunque todava no se ha implementado el interfaz a travs de los gestos. A da de hoy podemos encontrar diversas aplicaciones tanto para mandar rdenes al ordenador como para poder realizar estudios de marketing y diseos de creadores de pginas web. An son muchos los posibles avances de la tecnologa en este mbito.

10

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Se pueden destacar las siguientes aplicaciones:

EYE TRAKING
El Eye Tracking es una tcnica interesante para mejorar el diseo y la usabilidad de los sitios web. Consiste en seguir los movimientos de los ojos en el momento en que se visualiza una determinada pgina y en comprobar qu elemento de la pgina se pincha. De esta manera, se estudia qu es lo que ms atrae del diseo y el contenido de un sitio. Este estudio puede partir de una mquina avanzada que controla todos los parmetros de la mirada (distancia, duracin, etc) o tambin a partir de una webcam asociada con un software. Entre las alternativas gratuitas se pueden citar 2 de cdigo libre que realizan la tarea de analizar el movimiento de los ojos: Opengazer, para GNU/Linux y cuyo desarrollo est detenido y TrackEye El concepto de Eye Tracking hace referencia a un conjunto de tecnologas que permiten monitorizar y registrar la forma en la que una persona mira una determinada escena o imagen, en concreto en qu reas fija su atencin, durante cunto tiempo y qu orden en su exploracin visual. Las tcnicas de Eye Tracking tienen gran potencial de aplicacin en una amplia variedad de disciplinas y reas de estudio, desde el marketing y la publicidad hasta la investigacin mdica o la psicolingstica, pasando por los estudios de usabilidad. En esta ltima clase de estudios, el objetivo es determinar la forma en la que el usuario explora visualmente la interfaz a travs de la que interacta con el sistema.

11

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

En el contexto de la Interaccin Persona Ordenador (IPO), podemos diferenciar dos posibles vertientes de aplicacin del Eye Tracking: Uso como dispositivo de entrada o interaccin: Aunque la precisin del eye tracking como dispositivo de entrada dista de la de otros, como el ratn o el teclado, puede tener numerosas aplicaciones prcticas, tales como su uso en entornos de realidad virtual o por usuarios con discapacidad motriz. Pero adems, incluso en determinadas operaciones como la seleccin de objetos de la interfaz, la mirada puede resultar ms rpida que la accin mediante el ratn. Uso como herramienta para la evaluacin objetiva de interfaces: En el uso del Eye Tracking como herramienta de evaluacin, la informacin extrada ya no requiere un anlisis y respuesta en tiempo real por el sistema, sino que es registrada mediante ficheros de log, para su posterior anlisis e interpretacin.

12

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

En la Figura 2.1 se muestra un ejemplo de la aplicacin Eye Tracking en la pgina web de Google realizando una bsqueda cualquiera. Como se puede comprobar, el usuario dirige ms la mirada a la parte superior izquierda de la pantalla, donde se muestran los primeros resultados de la bsqueda realizada. Esta tcnica se utiliza en empresas de diseo web, para concentrar la informacin ms relevante en las zonas donde el usuario dirija su mirada ms frecuentemente.

Figura 2.1. Eye Tracking en Google

13

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

La Figura 2.2 muestra los resultados obtenidos al utilizar la tcnica de Eye Tracking en una persona que visualiza la pgina web del diario ingls The Times. Como se pude comprobar, el usuario centra completamente su mirada a los titulares principales y a noticias secundarias que se encuentran en los laterales de la misma pgina. Eso explica que la noticia ms importante del da est ubicada en esa zona de la pgina web.

Figura 2.2. Eye Tracking en el diario ingls The Times

14

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

PROYECTO NATAL DE MICROSOFT


Se espera que en 2010 Microsoft lance al mercado uno de los mejores avances en la tecnologa de los videojuegos y reconocimiento de cuerpo a travs de un controlador de movimiento. El sistema Natal se basa en una barra que incorpora una cmara y un micrfono que se encargan de recoger todo lo que se hace y se dice delante de ella. No solo sabe quin est utilizndolo, lo que se dice o lo que se hace, sino que conoce a qu distancia est la persona del sistema. En 3D, analizando e interpretando todos los movimientos del cuerpo y la orientacin de los mismos. El sensor de profundidad est formado por un proyector de infrarrojos en combinacin con un sensor CMOS que ve la estancia en 3D independientemente de las condiciones de luz de la misma. Existen diferentes estudios actualmente que estn en proceso de eliminar el ratn del ordenador y poder manejar el mismo simplemente con el reconocimiento facial de la persona. Estos estudios estn hoy en da desarrollndose, y dentro de unos aos podrn verse a la luz. En las Figuras 2.3 y 2.4 se muestran dos ejemplos de uso de Project Natal. Como se puede comprobar en las imgenes, los usuarios utilizan la aplicacin a una cierta distancia y simulan utilizar un monopatn o conducir un coche en una carrera automovilstica respectivamente.

15

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Figura 2.3. Usuario utilizando Project Natal

Figura 2.4. Ejemplo de uso de Project Natal

16

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

PROYECTO HEADDEV
El proyecto HeadDev o el ratn facial para discapacitados, desarrollado por la Fundacin Vodafone Espaa y la Fundacin para la Integracin de Discapacidades en Red cuyo objetivo es facilitar el acceso a las TIC a todos los grupos sociales a la incorporacin de Accesibilidad Universal y Diseo para Todos. HeadDev es un software gratuito que permite la interaccin persona computador, sin necesidad del uso de las manos, cables, sensores u otro tipo de dispositivo. La interaccin se obtiene a travs del uso de una cmara tipo webcam USB estndar que reconoce el movimiento de la cara ya que en el sistema slo se emplea la nariz u otros movimientos faciales como puntero de ratn sobre teclado virtual en la pantalla del ordenador para efectuar los eventos de un ratn convencional. HeadDev est dirigido a personas con discapacidades motrices severas. El desarrollo de investigaciones destinadas a la insercin de personas con discapacidades hacia el rea de las TICs tiene la enorme responsabilidad de permitir mejorar ostensiblemente la calidad de vida.

Figura 2.5. Ejemplo uso de HeadDev

17

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Los desarrollos informticos y los mundos virtuales (como lo es la Ingeniera del Software, Desarrollo de Aplicaciones, entre otros) prescinden de actividades fsicas severas permitiendo integrar personas con discapacidades. El proyecto ha sido desarrollado por un grupo de investigadores de la Unidad de Grficos y Visin por Ordenador del Departamento de Matemticas e Informtica de la Universidad de Baleares y la empresa, spin off de la UIB, TAGRV S.L. especializada en el desarrollo de software grfico y de realidad virtual. Se pretende que el software sea capaz de mejorar la calidad de vida de las personas y muy especialmente en el mbito de las discapacidades. Con HeadDev se ha querido contribuir a una Sociedad de la Informacin ms accesible para todos y a la igualdad de oportunidades en el acceso a las TIC precisamente para aquellas personas a las cuales las nuevas tecnologas pueden suponer muy especialmente nuevas oportunidades de formacin, empleo y ocio, concibiendo el ordenador como una herramienta integradora y la tecnologa al servicio del desarrollo humano, potenciando las capacidades de las personas.

18

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

2.1 VISIN ARTIFICIAL


La visin artificial es un subcampo de la inteligencia artificial. El propsito de la visin artificial es programar un ordenador para que entienda una escena o las caractersticas de una imagen. Los objetivos tpicos de la visin artificial incluyen: Deteccin, segmentacin, localizacin y reconocimiento de ciertos objetos en imgenes Evaluacin de los resultados Registro de diferentes imgenes de una misma escena u objeto Deteccin de movimiento de un objeto y su direccin y seguimiento del mismo en una secuencia de imgenes Mapeo de una escena para generar un modelo tridimensional de la escena Estimacin de posturas tridimensionales de humanos Bsqueda de imgenes digitales por su contenido Deteccin de formas y su uso en la produccin industrial y almacenaje

Este proyecto est relacionado con la Visin Artificial ya que su objetivo es desarrollar una aplicacin que sea capaz de reconocer el movimiento capturado por unas Webcams y lo traduzca en rdenes al ordenador, utilizando para ello funciones de procesamiento digital de la imagen. Los objetivos de la Visin Artificial se convierten tambin en parte, en objetivos de este proyecto.

19

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

La Figura 2.6 muestra las relaciones existentes entre la visin artificial y sus reas ms afines

Figura 2.6. Visin artificial y sus reas

La visin artificial es uno de los tipos de percepcin que ms se ha trabajado desde los comienzos de la Inteligencia Artificial como disciplina. La visin de los humanos es una caracterstica que tpicamente se ha tratado de emular de manera artificial para poder luego construir dispositivos inteligentes con ciertas habilidades basadas en la visin. Luego, la visin artificial se puede definir como la capacidad de ver mediante dispositivos que procesan su informacin en un ordenador.

20

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

La visin artificial incluye muchas tcnicas que son tiles para s misma. Por ejemplo, el procesamiento de imgenes (que se refiere a la transformacin, codificacin y transmisin de las imgenes) y la extraccin de patrones. As, aunque la visin artificial se refiere ciertamente al procesamiento de imgenes, estas imgenes son solamente la materia prima de una ciencia mucho ms amplia, la misma que se esfuerza en ltima instancia para emular las capacidades perceptivas del hombre, y quizs, para verter una luz sobre la manera por la cual l logra su interaccin adaptativa y robusta con su ambiente. En la Figura 2.7 se muestran las diferentes aplicaciones de la Visin Artificial.

Figura 2.7. Ejemplos de aplicacin de visin artificial

21

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

La visin artificial o visin por computador es un campo de la Inteligencia Artificial que consiste en programar mediante computador un conjunto de procesos para que pueda llegar a comprender una escena; pero tambin existen definiciones en las que se contrapone que la visin artificial no ha de ser obligatoriamente parte de la Inteligencia Artificial. As, como segunda definicin se tiene que la visin artificial es un conjunto de tcnicas que permiten obtener informacin por mtodos pticos y algortmicos de manera automtica o asistida por un operador. Este conjunto de tcnicas incluye pre procesamiento, segmentacin, descripcin, clasificacin e interpretacin de resultados. La percepcin del mundo actual abarca la deteccin y clasificacin inmediata de mltiples objetos tanto animados como inanimados. As la visin constituye una ventana al reconocimiento del mundo y el sentido con mayores posibilidades de que disponemos para conocer el mundo observndolo. La visin artificial, pretende realizar y simular tareas de este proceso mediante sistemas pticos y computacionales en lugar de un ojo y cerebro de un ser vivo. Las imgenes recogidas para su interpretacin son imgenes digitales. Una imagen digital es una representacin discreta, con valores en puntos regularmente muestreados y es una representacin cuantificada, donde cada valor es un nmero entero. Las imgenes constituyen la materia prima de una ciencia que se esfuerza en emular las capacidades perceptivas del hombre. La visin artificial incluye muchas tcnicas, algunas de ellas son el procesamiento de imgenes y la extraccin de patrones; otras ms significativas tratan de conseguir una descripcin geomtrica til: forma, permetro, rea para realizar modelos geomtricos y con otra se realiza un anlisis de color.

22

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

2.1.1 CAMPOS EN LOS QUE SE APLICA LA VISIN ARTIFICIAL


Los primeros experimentos con computadores para desarrollar sistemas artificiales de visin comenzaron hace relativamente poco tiempo; los ya realizados han abarcado una gran variedad de reas como ofimtica, medicina, seguridad. En esta era multimedia, el procesamiento de imgenes digitales es la tecnologa ms importante que se puede asistir en la produccin de imgenes. Son muchas las aplicaciones que hacen uso de las tcnicas de procesado de la imagen: Biologa: el procesado de imgenes se usa para analizar visualmente las muestras biolgicas, identificacin automtica, clasificacin, categorizacin y anlisis de ADN en otros Procesado de documentos: esta tarea es muy difcil para bancos y compaas de seguros. Estos documentos estn digitalmente comprimidos y guardados. Se detecta e identifica automticamente la informacin impresa sobre cheques y otros documentos contables Automatizacin en la industria: para inspeccin y supervisin automtica en lneas de produccin de grandes empresas. Esto reduce el error humano al tiempo que proporciona estabilidad y precisin en la produccin Diagnstico a partir de imgenes mdicas: los rayos X y las proyecciones CT mdicas se digitalizan para examinar reas internas del cuerpo. Las imgenes se combinan y digitalizan automticamente para la produccin de imgenes 3D. Teledeteccin: los satlites fotografan la corteza exterior de la Tierra a intervalos regulares y las imgenes se unen para estudiar diferentes tareas ejercidas en la superficie terrestre. Tambin pueden ser convertidas a imgenes 3D a partir de las 2D tomadas por los satlites

23

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Efectos de video/film: la industria cinematogrfica usa una extensa variedad de tcnicas de procesado de imgenes para producir efectos visuales especiales. Las imgenes irreales y otras escenas costosas son artificialmente producidas usando tcnicas de Informacin Grfica y/o Procesamiento de Imgenes Digitales

Identificacin mediante biomtrica, marcas de agua, meteorologa, ciencia de los materiales

Todas estas tcnicas comienzan con el estudio de las capacidades visuales del ser humano para luego llevarlo al campo digital.

24

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

2.2 PROCESAMIENTO DE IMAGEN


El procesamiento de imgenes es el conjunto de tcnicas que se aplican a las imgenes digitales con el objetivo de mejorar la calidad o facilitar la bsqueda de informacin. Las operaciones que se pueden realizar con imgenes se dividen en: Operaciones de punto Operaciones de entorno Operaciones con dos o ms imgenes

A diferencia del estudio de los mecanismos de la visin humana, el procesamiento y anlisis de imgenes digitales nace en el momento en que se dispone de recursos tecnolgicos para captar y manipular grandes cantidades de informacin espacial de matrices de valores. Esta distincin sita al procesamiento y anlisis de imgenes digitales como una tecnologa asociada a las Ciencias de la Computacin y por tanto, cabe pensar de ella como una proyeccin del trmino Visin Artificial dentro del mbito de la Inteligencia Artificial. La secuencia tpica de procesado de imgenes suele implicar los siguientes pasos: 1. Captura de la imagen a partir del proceso fsico que la genera mediante el sensor adecuado 2. Restauracin y realce para reducir ruidos y mejorar su calidad 3. Codificacin, segmentacin y extraccin de propiedades 4. Interpretacin

25

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

El anlisis humano de imgenes u objetos presenta dificultades, pues el proceso de inspeccin visual consume una gran cantidad de tiempo y est sujeto a interpretaciones incoherentes e incompletas. El procesamiento de imgenes, que comprende la manipulacin por ordenador de imgenes reales, resuelve estos problemas al poder automatizar el proceso de extraccin de informacin til de los datos de la imagen. Con el procesamiento de imgenes, tambin se puede perfeccionar la imagen, corregir distorsiones... Uno de los ms importantes y sencillos preprocesamientos es la deteccin de bordes. Importante porque de l se puede empezar a extraer importante informacin de la imagen, como pueden ser las formas de los objetos que la componen, y sencillo porque los operadores de deteccin de bordes son simples mscaras de convolucin. La deteccin de bordes es a menudo el primer paso en la segmentacin de la imagen, que es un campo del anlisis de la imagen, y se utiliza para agrupar los pxeles en regiones para determinar una composicin de la imagen. La deteccin de bordes tambin es usada en el registro de imagen, el cual alinea dos imgenes que podran ser adquiridas en momentos separados. Los bordes de una imagen contienen mucha informacin de la imagen. Los bordes cuentan donde estn los objetos, su forma, su tamao, y tambin su textura. Los ejes o bordes se encuentran en zonas de una imagen donde el nivel de intensidad flucta bruscamente, cuanto ms rpido se produce el cambio de intensidad, el eje o borde es ms fuerte. En el procesamiento de imgenes se utilizan diferentes tcnicas para realzar las propiedades de la imagen a fin de facilitar el proceso de segmentacin, la extraccin de caractersticas y finalmente su interpretacin.

26

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Las tcnicas de procesamiento de imgenes se pueden clasificar en: Las procedentes del procesamiento de seales Las que mejoran algn aspecto de la imagen El proceso de muestreo es la tarea de discretizacin del escenario en el plano sensor. Est relacionado con la resolucin espacial de la imagen

Figura 2.8. Imagen tomada con diferentes resoluciones

27

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

La cuantificacin de la seal es el nmero finito de los valores de intensidad de cada pxel. Se suele emplear un byte de cuantificacin por pxel, consiguiendo as 256 niveles de gris. El 0 corresponde al color negro y el 255 al blanco. Entre estos dos valores estn los distintos tonos de gris. Para las imgenes en color, la cuantificacin es vectorial; por cada pxel se representan tres valores. Estos tres valores dependen del sistema de representacin del color: RGB (Red Green Blue), HSV (Hue, Saturation, Value), HSI Comnmente se utiliza RGB con un byte por cada color consiguiendo 256 niveles o 16 millones de colores. En el apartado [2.3.1] de este documento se explica el tratamiento de imgenes en tonos de grises y a color mediante el histograma correspondiente.

Figura 2.9. Niveles de cuantificacin de la seal de la intensidad luminosa

28

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

En las tcnicas de procesado de las imgenes se trata el valor de la intensidad de cada pxel hasta conseguir el resultado deseado.

29

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

2.3 IMAGEN DIGITAL


Una imagen digital es una funcin f(x,y) que ha sido discretizada en ambas coordenadas espaciales (x,y) y en el nivel de gris. Se considera que el nivel de brillo mnimo equivale al negro, el mximo al blanco y los valores intermedios son distintos niveles de gris que varan del negro al blanco. Principalmente, tenemos las siguientes caractersticas de una imagen: La resolucin: La resolucin de una imagen se refiere al nmero de puntos por unidad de distancia que sta tiene, de forma que a mayor nmero de puntos por centmetro mayor resolucin y ms definida estar la imagen La profundidad del color: La profundidad del color de una imagen se refiere al nmero de niveles de gris (o nmero de colores) que empleamos para representar la imagen. Un valor aceptable podra corresponder con una profundidad de color de 8 bits, equivalente a 256 distintos niveles de gris

30

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

2.3.1 BINARIZAR UNA IMAGEN


La binarizacin de imgenes es una tarea bsica en muchas aplicaciones de procesamiento digital de imgenes. El objetivo es obtener una imagen que solo sea representada por dos tonos de color, por lo general blanco y negro. La idea para realizar este trabajo es sencilla, solo hay que decidir qu tono de color dar a cada pxel que sea mayor que un determinado umbral (valor lmite), el resto de pxeles tendrn por defecto el otro tono de color. La binarizacin de una imagen consiste en comparar los niveles de gris presentes en la imagen con un valor (umbral) predeterminado. Si el nivel de gris es menor que el umbral predeterminado, se le asigna al pxel de la imagen binarizada el valor 0 (negro), y si es mayor, se le asigna un 1 (blanco). De esta forma se obtiene una imagen en blanco y negro. Generalmente se utiliza un umbral de 128 si se trabaja con 255 niveles de gris, pero en algunas aplicaciones se requiere de otro umbral.

31

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

2.3.2 HISTOGRAMA DE UNA IMAGEN


El histograma de una imagen contiene la informacin de la probabilidad de aparicin de las distintas tonalidades de color que se pueden dar en cada caso, ya que podemos trabajar en distintos tipos de colores o en escala de grises. En el caso de una imagen en color, no podemos hablar de un nico histograma que caracterice a la imagen, sino de tres histogramas, uno para cada color (RGB, por ejemplo). La creacin de un histograma, en el caso de una imagen en escala de 256 tonalidades del blanco al negro (escala de grises), se realiza fcilmente mediante medios informticos, de manera que, en primer lugar se crea un vector que contenga 256 posiciones, una por cada nivel de gris, el algoritmo recorrer cada uno de los pixeles de la imagen, aumentando en una unidad el valor guardado en la posicin del vector correspondiente al tono del pixel en cuestin.

Figura 2.10. Imagen con su correspondiente histograma

32

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

El histograma proporciona una descripcin de la apariencia global de una imagen. De forma que si los niveles de gris estn concentrados hacia el extremo oscuro del rango de la escala de gris, la apariencia global de la imagen ser oscura, mientras que si sucede justo lo contrario, la imagen correspondiente ser brillante. Por su parte, el histograma que presente un perfil estrecho corresponder a una imagen de bajo contraste y un histograma con una dispersin considerable a una imagen de alto contraste. En el caso de la imagen en color, aparecen tres histogramas, de forma que el tratamiento de imgenes en color se complica por la aparicin de nuevos componentes. Ahora el histograma no contiene los tonos del negro al blanco, sino del negro al color correspondiente (rojo, verde o azul caso RGB ). Al elaborar el histograma, el algoritmo debe separar el color correspondiente a cada pixel en sus componentes RGB (rojo, verde y azul).

33

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Figura 2.11. Imagen a color con sus correspondientes histogramas RGB

Un histograma es un grfico estadstico que permite representar la distribucin de intensidad de los pxeles de una imagen, es decir, el nmero de pxeles que corresponde a cada intensidad luminosa. Por convencin, el histograma representa el nivel de intensidad con coordenadas X que van desde lo ms oscuro a lo ms claro.

34

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

En general, se representa como un grfico de barras en el que las abscisas son los distintos colores de la imagen y las ordenadas la frecuencia relativa con la que cada color aparece en la imagen. El histograma proporciona informacin sobre brillo y el contraste de la imagen, y puede ser utilizado para ajustar estos parmetros, eliminar ciertas tonalidades molestas...

35

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

3.

OBJETIVOS

36

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Son muchos los objetivos al desarrollar este proyecto, se pueden destacar los siguientes: Desarrollar una librera que permita o Capturar imgenes o Analizar las imgenes capturadas o Obtener parmetros de la posicin de los dedos y manos Utilizar dicha librera para mostrar la bondad del sistema por medio de un programa que permita capturar el movimiento, interpretarlo y actuar en el ordenador. Posibles aplicaciones en salud y juegos

El objetivo principal de este proyecto es proporcionar una herramienta a las personas que tienen dificultad para acceder al ordenador. Por ello, se pretende desarrollar una aplicacin que sea capaz de capturar imgenes a travs de una webcam, analizar las imgenes capturadas y obtener los parmetros para reconocer la letra realizada por el usuario. Para conseguir estos objetivos, se han estudiado los diferentes programas de tratamiento de imgenes existentes en el mercado, y se ha decidido trabajar con el programa Matlab, ya que proporciona una herramienta de manejo de imgenes muy buena.

37

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Las siguientes tareas son la llave para alcanzar con xito los objetivos previstos inicialmente: Mostrar una webcam mediante la cual el usuario realiza el movimiento y la aplicacin captura diferentes imgenes cada 50 milisegundos Una vez se tienen las imgenes almacenadas, se estudian mediante el programa realizado en Matlab Una vez se ha reconocido el movimiento realizado por el usuario se devuelve el valor y el programa ejecuta una u otra opcin dependiendo del resultado obtenido Se muestran las opciones al usuario y se ejecuta la elegida

38

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

4.

TECNOLOGIA UTILIZADA

39

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

4.1 WEBCAM
Para el desarrollo del proyecto es necesaria la utilizacin de una webcam para la captura de imgenes. Una cmara web o webcam es una pequea cmara digital conectada a una computadora, la cual puede capturar imgenes y transmitirlas a travs de Internet en tiempo real. En 1991, se puso en marcha la primera webcam localizada en el departamento de Ciencia y Computacin de la Universidad de Cambridge, y desde entonces, se ha propagado a hogares, negocios, oficinas e incluso calle pblicas. Las webcam se suelen usar para uso personal en casas privadas, principalmente para contactar con familiares lejanos, monitorizar casas desde el trabajo o desde otra parte remotamente. Puede ser para vigilar una mascota o por temas de seguridad. En realidad, los usos que se le pueden dar son innumerables. En el rea laboral, se suelen usar las webcam para realizar video conferencias. Algunas entidades usan esta tecnologa para dar acceso pblico a una gran variedad de informacin, que puede ir desde el tiempo y el trfico, hasta otros lugares de inters turstico o popular por alguna razn. En menor medida, algunos colegios o centros de enseanza usan las webcam para permitir a familiares ver lo que estn haciendo sus hijos.

40

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Figura 4.1. Diagrama de una videoconferencia a travs de webcams

Una webcam bsicamente trabaja capturando una serie de imgenes digitales que son transferidas por el ordenador a un servidor, y luego mostradas en una pgina alojada para tal propsito. Hay sitios que permiten a sus usuarios enviar y almacenar sus imgenes de webcam de forma gratuita, para uso particular. Las webcam pueden variar en sus capacidades y funciones, y estas variaciones se reflejan en el precio. Algunas webcam capturan una imagen fija solo una vez cada 30 segundos, mientras que otras proveen de un flujo continuo capturando 30 imgenes por segundo.

41

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Las webcams estn diseadas para enviar vdeos en vivo y grabados as como capturas de imagen a travs de la red a uno o ms usuarios. Una webcam tambin puede ser una cmara digital colocada en alguna parte del mundo, enviando vdeo que se ve a travs de un sitio web, de modo que los usuarios puedan ver ciertos acontecimientos en vivo. El papel que toma la webcam en este proyecto es el de captar imgenes cada 50 milisegundos del movimiento gestual de la persona en tiempo real. Estas imgenes son almacenadas para luego tratarlas y calcular el movimiento producido por el usuario. De todas las atracciones que Internet ofrece a sus navegantes hay pocas capaces de ejercer el magnetismo de las webcams. Tambin llamadas cmaras espas y netcams, tienen esa indefinible fascinacin de mostrarnos escenas cotidianas de lugares remotos tal como las ven sus pobladores en el mismo instante. Esencialmente son una combinacin de equipamiento sencillo y hasta barato comparado con los resultados que permite. Para poner una webcam en marcha se necesitan tres elementos: Cmara: Cualquier cmara de video, de aficionado o profesional, de la norma y el formato de cinta que se quiera o se tenga, sirve. Plaqueta digitalizadora: Instalada en un ordenador comn, recibe la imagen captada por la cmara y se encarga de tomar la fotografa. Para ello congela o digitaliza una sola de las 25 a 30 pantallas que genera la cmara cada segundo, tal como si escogiera uno de los cuadros o fotogramas de una pelcula de cine

42

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Software: Controla la plaqueta digitalizadora. Bsicamente aprieta el disparador, es decir, ordena a la plaqueta en qu instante digitalizar, segn el intervalo fijado por el usuario. Obtenida la imagen, la convierte en un formato compatible y graba el archivo resultante en el servidor conectado a la red mundial. Podemos encontrar diferentes tipos de webcam, algunos de ellos son: o Webcams remotas: Algunas webcams estn instaladas a grandes distancias del ordenador que se encargan del proceso. La nica diferencia en este caso es que la imagen no podr enviarse por cable. Es necesario un equipo transmisor junto a la cmara para convertir la imagen en seal de radio, y uno receptor junto al ordenador, que reconvierte la seal de radio en imagen, tal como normalmente llega un programa desde exteriores a un canal de televisin. o Webcams con servidores de Internet remotos: Como las lneas directas a Internet son todava costosas para los aficionados o pequeas empresas que operan webcams, lo usual es que el ordenador que digitaliza la imagen no sea el mismo servidor al que se accede por la red. En este caso, la escena ya digitalizada y convertida en archivo grfico debe ser transmitida a intervalos regulares desde el ordenador que la digitaliza hasta el servidor de acceso pblico conectado a Internet. Esa es tarea de programas que actan coordinadamente con el software de digitalizacin, y en ocasiones un solo programa hace todo el trabajo. Una vez generado el archivo con la imagen, el programa automticamente llama al proveedor local de Internet, se conecta con el servidor de destino y transmite el grfico va FTP (protocolo de transferencia de archivos) al directorio del que ser ledo cada vez que se pida ver la imagen.

43

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

o Webcams controlables a travs de Internet: En este caso, el software del ordenador que digitaliza la imagen es un poco ms complejo porque puede gobernar un mecanismo que mueve la mquina y algunos de sus sistemas (como por ejemplo la lente zoom) segn la voluntad del navegante remoto de Internet. El resto del proceso es exactamente el mismo.

En la figura 4.2 se muestra la webcam utilizada para la realizacin de este proyecto. Se puede utilizar cualquier tipo de cmara, slo tiene que estar instalada en el ordenador.

Figura 4.2. Webcam Logitech utilizada

44

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

El funcionamiento de una webcam es muy simple: una cmara de video toma imgenes y las pasa a un ordenador que las traduce a lenguaje binario y las enva para disfrute de todo aquel que quiera verlas.

Figura 4.3. Pasos al tomar una imagen

Los pasos son los siguientes: Una cmara toma imgenes que enva regularmente a un ordenador, algunas se actualizan cada pocos segundos y otras cada varias horas. El ordenador, mediante un Hardware/Software adecuado, traduce las imgenes a formato binario, generalmente a fichero jpeg, dada su buena relacin calidad/tamao. Las imgenes ya traducidas son incluidas dentro de una direccin URL que proporciona la posibilidad de ser vistas en la red, de manera que est siempre disponible la imagen ms reciente. As, cuando alguien solicita la pgina de la webcam, puede ver en su navegador la ltima imagen.

45

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Existen webcams cuyo ritmo de refresco es muy alto y pueden llegar a dar la impresin de transmitir imgenes de video en directo. Sin embargo, son fotogramas sueltos que se actualizan normalmente al pulsar o pasar el ratn por el enlace.

El uso de las webcam, como se puede comprobar, es muy amplio en el mundo de la informtica. Otros programas y sitios web tratan de buscar el lado ms ldico de estas cmaras de ordenador. Por ejemplo, Fix8 es un programa, de momento gratuito en su versin bsica, que logra modificar la apariencia de la persona que protagoniza la grabacin mediante dibujos animados que se superponen a la imagen real y que imitan sus gestos y sus movimientos. As, se puede parodiar a personajes famosos a partir de segundas pieles en formas de avatares que vende Fix8 o crear caracterizaciones muy curiosas. Por su parte, Cameroid permite realizar en su sitio web retoques originales a las instantneas captadas por una webcam a travs de varias distorsiones y marcos

sobreimpresionados.

Figura 4.4. Ejemplo aplicacin Fix8

46

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Por otro lado, CamSpace se trata de un proyecto todava en fase de pruebas que intenta que se pueda controlar cualquier juego de ordenador con diversos objetos sin necesidad de comprar un mando especfico. En este caso, la webcam identifica el objeto que el jugador desea utilizar como mando inalmbrico. Se adjunta la figura 4.5 en la cual se puede ver cmo una persona est jugando y el objeto que usa para controlar el juego es un destornillador.

Figura 4.5. Usuario jugando con CamSpace

47

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Las webcams hoy por hoy son uno de los recursos ldicos ms conocidos que nos proporciona Internet. Con ellas es posible ver qu est ocurriendo en cualquier parte del mundo, como por ejemplo, una imagen de la Plaza del Cid de la ciudad de Burgos, donde se puede ver en la Figura 4.6

Figura 4.6. Imagen Webcam. Plaza del Cid (Burgos)

48

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

4.2 SOFTWARE
4.2.1 NETBEANS - JAVA
NetBeans se refiere a una plataforma para el desarrollo de aplicaciones de escritorio usando Java y a un entorno de desarrollo integrado (IDE) desarrollado usando la Plataforma NetBeans. La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes software llamados mdulos. Un mdulo es un archivo Java que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo especial que lo identifica como mdulo. Las aplicaciones construidas a partir de mdulos pueden ser extendidas agregndose nuevos mdulos. Debido a que los mdulos pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser extendidas fcilmente por otros desarrolladores de software. La Plataforma NetBeans es una base modular y extensible usada como una estructura de integracin para crear aplicaciones de escritorio grandes. Empresas independientes asociadas, especializadas en desarrollo de software, proporcionan extensiones adicionales que se integran fcilmente en la plataforma y que pueden tambin utilizarse para desarrollar sus propias herramientas y soluciones. La plataforma ofrece servicios comunes a las aplicaciones de escritorio, permitindose al desarrollar enfocarse en la lgica especfica de su aplicacin.

49

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Entre las caractersticas de la plataforma estn: Administracin de las interfaces de usuario Administracin de las configuraciones del usuario Administracin del almacenamiento (guardando y cargando cualquier tipo de dato) Administracin de ventanas Framework basado en asistentes

NetBeans IDE es un entorno de desarrollo - una herramienta para que los programadores puedan escribir, compilar, depurar y ejecutar programas. Est escrito en Java - pero puede servir para cualquier otro lenguaje de programacin. Existe adems un nmero importante de mdulos para extender el NetBeans IDE. NetBeans IDE es un producto libre y gratuito sin restricciones de uso. Tambin est disponible NetBeans Platform; una base modular y extensible usada como estructura de integracin para crear grandes aplicaciones de escritorio. Empresas independientes asociadas, especializadas en desarrollo de software, proporcionan extensiones adicionales que se integran fcilmente en la plataforma y que pueden tambin utilizarse para desarrollar sus propias herramientas y soluciones. Ambos productos son de cdigo abierto y gratuitos para uso tanto comercial como no comercial. El cdigo fuente est disponible para su reutilizacin de acuerdo con la Common Development and Distribution License (CDDL) v1.0 and the GNU General Public License (GPL) v2.

50

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Un Entorno Integrado de Desarrollo gratuito, de cdigo abierto para desarrolladores de software. Puede obtener todas las herramientas que necesite para crear aplicaciones profesionales para el escritorio, la empresa, la web y equipos mviles con el lenguaje Java, C/C++, y Ruby. NetBeans IDE es fcil de instalar y de uso instantneo y se ejecuta en varias plataformas incluyendo Windows, Linux y Mac OS X y Solaris. NetBeans IDE 6.1 provee varias nuevas caractersticas y mejoras, como funciones de edicin enriquecida de JavaScript, soporte para el uso del framework web Spring, y mejor integracin con MySQL. Esta versin tambin provee mejor rendimiento, especialmente un arranque ms rpido (ms de 40%), menor consumo de memoria y mejor respuesta cuando se trabajan con proyectos grandes.

51

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

El lenguaje de programacin que utiliza NetBeans es Java. Java es un lenguaje de programacin orientado a objetos desarrollado por Sun Microsystems a principios de los aos 90. EL lenguaje en s mismo toma mucha de su sintaxis de C y C++ pero tiene un modelo de objetos ms simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulacin directa de punteros o memoria. El lenguaje Java se cre con cinco objetivos principales: Debera utilizar la metodologa de la programacin orientada a objetos Debera permitir la ejecucin de un mismo programa en mltiples sistemas operativos Debera incluir por defecto soporte para trabajo en red Debera disearse para ejecutar cdigo en sistemas remotos de forma segura Debera ser fcil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++

Java es un lenguaje de programacin con el que podemos realizar cualquier tipo de programa. En la actualidad es un lenguaje muy extendido y cada vez cobra ms importancia tanto en el mbito de Internet como en la informtica en general. Est desarrollado por la compaa Sun Microsystems con gran dedicacin y siempre enfocado a cubrir las necesidades tecnolgicas ms punteras.

52

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Una de las principales caractersticas por las que Java se ha hecho muy famoso es que es un lenguaje independiente de la plataforma. Eso quiere decir que si hacemos un programa en Java podr funcionar en cualquier ordenador del mercado. Es una ventaja significativa para los desarrolladores de software, pues antes tenan que hacer un programa para cada sistema operativo, por ejemplo Windows, Linux, Apple, etc. Esto lo consigue porque se ha creado una Mquina de Java para cada sistema que hace de puente entre el sistema operativo y el programa de Java y posibilita que este ltimo se entienda perfectamente. La independencia de plataforma es una de las razones por las que Java es interesante para Internet, ya que muchas personas deben tener acceso con ordenadores distintos. Pero no se queda ah, Java est desarrollndose incluso para distintos tipos de dispositivos adems del ordenador como mviles, agendas y en general para cualquier cosa que se le ocurra a la industria. Pasado y presente Java fue pensado originalmente para utilizarse en cualquier tipo de electrodomstico pero la idea fracas. Uno de los fundadores de Sun rescat la idea para utilizarla en el mbito de Internet y convirtieron a Java en un lenguaje potente, seguro y universal gracias a que lo puede utilizar todo el mundo y es gratuito. Una de los primeros triunfos de Java fue que se integr en el navegador Netscape y permita ejecutar programas dentro de una pgina web, hasta entonces impensable con el HTML.

53

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Actualmente Java se utiliza en un amplio abanico de posibilidades y casi cualquier cosa que se puede hacer en cualquier lenguaje se puede hacer tambin en Java y muchas veces con grandes ventajas. Para lo que nos interesa a nosotros, con Java podemos programar pginas web dinmicas, con accesos a bases de datos, utilizando XML, con cualquier tipo de conexin de red entre cualquier sistema. En general, cualquier aplicacin que deseemos hacer con acceso a travs web se puede hacer utilizando Java.

54

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

4.2.2 MATLAB
Matlab es un software matemtico que ofrece un entorno de desarrollo (IDE) con un lenguaje de programacin propio (lenguaje M) Entre sus prestaciones bsicas se hallan: Manipulacin de matrices Representacin de datos y funciones Implementacin de algoritmos Creacin de interfaces de usuario (GUI) Comunicacin con programas en otros lenguajes y con otros dispositivos hardware

Matlab es un entorno de computacin y desarrollo de aplicaciones totalmente integrado orientado para llevar a cabo proyectos en donde se encuentren implicados elevados clculos matemticos y la visualizacin grfica de los mismos. Matlab integra anlisis numrico, clculo matricial, proceso de seal y visualizacin grfica en un entorno completo donde los problemas y sus soluciones son expresados del mismo modo en que se escribiran racionalmente, sin necesidad de hacer uso de la programacin tradicional.

55

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Matlab dispone tambin en la actualidad de un amplio abanico de programas de apoyo especializados, denominados Toolboxes, que extienden significativamente el nmero de funciones incorporadas en el programa principal. Estos Toolboxes cubren en la actualidad prcticamente casi todas las reas principales en el mundo de la ingeniera y la simulacin, destacando entre ellos el 'toolbox' de proceso de imgenes, seal, control robusto, estadstica, anlisis financiero, matemticas simblicas, redes neuronales, lgica difusa, identificacin de sistemas, simulacin de sistemas dinmicos, etc. es un entorno de clculo tcnico, que se ha convertido en estndar de la industria, con capacidades no superadas en computacin y visualizacin numrica. De forma coherente y sin ningn tipo de fisuras, integra los requisitos claves de un sistema de computacin tcnico: clculo numrico, grficos, herramientas para aplicaciones especficas y capacidad de ejecucin en mltiples plataformas. Esta familia de productos proporciona al estudiante un medio de carcter nico, para resolver los problemas ms complejos y difciles. Matlab nace como una solucin a la necesidad de mejores y ms poderosas herramientas de clculo para resolver problemas de clculo complejos en los que es necesario aprovechas las amplias capacidades de proceso de datos de grandes computadores. El nombre Matlab viene de "matrix laboratory" (laboratorio matricial). Matlab fue originalmente escrito para proveer acceso fcil al software matricial desarrollado por los proyectos LINPACK y EISPACK, que juntos representan el estado del arte e software para computacin matricial.

56

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Hoy Matlab es usado en una variedad de reas de aplicacin incluyendo procesamiento de seales e imgenes, diseo de sistemas de control, ingeniera financiera e investigacin mdica. La arquitectura abierta facilita usar Matlab y los productos que lo acompaan para explorar datos y crear herramientas personalizadas que proveen visiones profundas tempranas y ventajas competitivas. Caractersticas de Matlab: Clculos intensivos desde un punto de vista numrico. Grficos y visualizacin avanzada. Lenguaje de alto nivel basado en vectores, arrays y matrices. Coleccin muy til de funciones de aplicacin.

57

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

4.2.3 LIBRERA JMATLINK


Ha sido necesaria en este proyecto la utilizacin de una librera que proporciona Matlab y la cual se llama JMatLink que est basada en JNI (Java Native Interface). Esta librera conecta Java y Matlab. Los mtodos nativos permiten utilizar diferentes funciones de Matlab desde una aplicacin desarrollada en el lenguaje de programacin Java. Esta librera se ha utilizado en NetBeans, es decir, se ha programado con Java y con diferentes mtodos es posible realizar llamadas a funciones de Matlab y recibir valores como resultado de la funcin. Mediante esta librera lo que se pretende es que una vez el interfaz programado en Java, se haga una llamada a las funciones programadas con Matlab las cuales son las encargadas de tratar las imgenes capturadas inicialmente por Java. Una vez trata las imgenes y estudia el movimiento realizado por el usuario, devuelve un valor al programa Java y ste, dependiendo del valor devuelto, realizar una u otra opcin programada.

58

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

5.

DESARROLLO DE LA APLICACIN

59

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

5.1 PLAN DE TRABAJO


En la figura 5.1 se muestra el Plan de Trabajo a seguir para el desarrollo del proyecto. Como se puede comprobar, est dividido en 6 fases (paquetes de trabajo) y algunas de ellas dividida tambin en subfases.

Figura 5.1. Plan de Trabajo del Proyecto

60

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

A continuacin se muestra detalladamente cada uno de los paquetes de trabajo de los que se compone el proyecto, explicando en cada uno de ellos las tareas realizadas.

(WP.01) ESTUDIO DE LOS REQUISITOS DEL SISTEMA Es una de las etapas ms importantes en el desarrollo del proyecto. En ella se tienen que tener en cuenta cada uno de los requisitos que se exigen para alcanzar el xito en el desarrollo del proyecto. Los requisitos necesarios son los siguientes: o Requisitos de Usuario Para poder ejecutar la aplicacin en cualquier ordenador, es necesaria la instalacin del programa Matlab, ya que sin el programa no se podrn estudiar y tratar cada una de las imgenes tratadas o Requisitos del Sistema Leer el movimiento del dedo realizado por el usuario Almacenar las imgenes en un fichero Estudiar y tratar dichas imgenes para reconocer el movimiento realizado Dependiendo de los valores resultantes, se ejecutar una u otra opcin

61

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

(WP.02) ANLISIS En la etapa de anlisis se estudian las necesidades y objetivos a alcanzar con el desarrollo de la aplicacin.

(WP.02.01) Anlisis de las Necesidades Las necesidades de este proyecto y la motivacin que se lleva para la realizacin del mismo es el desarrollar una herramienta para permitir a un usuario con discapacidad motriz o a personas ancianas comunicarse con el ordenador y enviar rdenes mediante el simple movimiento de un dedo.

(WP.02.02) Anlisis de los Objetivos El objetivo principal es realizar lograr con xito el desarrollo de la aplicacin y pueda ser utilizada por personas de este sector de la poblacin. A la hora de analizar cada uno de los pasos a dar, se ha realizado un estudio del sistema, teniendo en cuenta los parmetros necesarios del exterior y las funciones que internamente hace la herramienta. En la Figura5.2 se muestra el Modelo fsico del sistema en el nivel 0, es decir, nivel de contexto. En el mismo se puede comprobar la relacin existente entre el sistema y el usuario y los datos que son necesarios para el funcionamiento del sistema

62

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Figura 5.2. DFD. Nivel de Contexto (Nivel 0)

Se tiene que profundizar a un nivel ms, por eso se ha realizado el modelo fsico del sistema a nivel 1 (Nivel conceptual) donde se detallan cada una de las tareas y las relaciones entre las funciones. Se muestran todos los datos que son enviados entre ellos.

63

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Figura 5.3. DFD. Nivel Conceptual (Nivel 1)

64

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Como se puede comprobar en la Figura 5.3, existen 12 procesos distintos. Cada uno tiene una tarea determinada dentro del sistema. Existen 2 almacenes de informacin: Imgenes: Fichero en el cual se almacenan todas las imgenes que son capturadas por la webcam en la aplicacin. Este almacn de imgenes lo crea el programa Java para que despus Matlab pueda acceder a dicho almacn y poder extraer las imgenes para ser comparadas con los patrones existentes y reconocer as el movimiento realizado por el usuario Patrones: La herramienta desarrollada slo reconoce determinadas letras del vocabulario, por lo tanto, a la hora de analizar el movimiento del usuario, tiene que comparar las imgenes con las letras almacenadas inicialmente que forman parte de los patrones para poder reconocer el movimiento del dedo

65

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

(WP.03) DISEO Para el diseo, se ha realizado inicialmente el diagrama de flujo de la aplicacin, el cual se muestra en la Figura 5.3.

Figura 5.4. Diagrama de flujo

66

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

A continuacin se muestra una descripcin detallada del Diagrama de Flujo del proyecto. Inicialmente se muestra la pantalla principal al usuario, internamente, el proceso comprueba si se encuentra conectado el dispositivo de la webcam. Si no encuentra el dispositivo muestra un mensaje de error y vuelve a mostrar la pantalla principal, comprobando a su vez internamente si ya se ha conectado el dispositivo. Una vez la aplicacin ha detectado la conexin del dispositivo, muestra la imagen en la pantalla y comienza a realizar fotografas cada 50 milisegundos. Estas imgenes son almacenadas para que despus sean tratadas por el programa Matlab, que es el encargado de reconocer el movimiento que ha realizado el usuario con el dedo. Una vez Matlab ha reconocido el movimiento del dedo, devuelve el resultado a NetBeans, que dependiendo del valor recibido, realizar una u otra opcin. Las opciones son las siguientes: Movimiento correspondiente a la letra L El usuario ha elegido realizar

llamadas a una lista de contactos, por lo tanto se le mostrar por pantalla la lista de contactos que tiene en el sistema. Se muestra una vez ms en la parte izquierda de la pantalla la imagen de la webcam. Como en el caso anterior, se vuelven a almacenar imgenes para que Matlab vuelva a estudiarlas y reconocer el movimiento realizado por el usuario. Una vez detectado el movimiento, se muestra una pantalla donde se indica que se est llamando al contacto elegido. Cuando se quiera, se pulsa el botn de Finalizar Llamada y finaliza a su vez la aplicacin

67

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Movimiento correspondiente a la letra M

El usuario ha elegido escuchar

msica de una lista de canciones. Se muestran las canciones existentes en el sistema y se muestra la imagen de la webcam donde el usuario debe realizar otro movimiento con el dedo para elegir la cancin que quiere reproducir. Una vez capturadas las imgenes, Matlab las estudia y dependiendo del movimiento realizado, se reproduce la cancin mediante el Reproductor de Windows Media. El reproducir la cancin, indica que la ejecucin del programa ha finalizado y por lo tanto se cierra la aplicacin.

(WP.03.01) Diseo del Interfaz Una de las cosas ms importantes en este proyecto es conseguir un interfaz sencillo y fcil de usar, ya que recordamos, que el usuario tiene dificultad a la hora de acceder al ordenador, por ello, la aplicacin nada mas ejecutarse muestra la webcam que debe estar conectada y reconocido el dispositivo por el programa. Para indicar a la aplicacin que ha finalizado el movimiento, debe pulsar un botn, dicho botn puede ser pulsado con el ratn o simplemente con la tecla ENTER. Esto est hecho as para que el usuario simplemente tenga que pulsar un botn durante toda la ejecucin de la herramienta.

68

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

(WP.03.02) Diseo de Libreras Se ha decidido programar todo el tratamiento y estudio de las imgenes mediante el programa Matlab, por ello, las libreras son programadas con esta herramienta. Se han utilizado diferentes funciones para ello: Funcin principal: Esta funcin lee las imgenes que se han tomado a travs de la webcam. Detectar negro: Como se comenta en apartados siguientes del presente documento, es necesaria una binarizacin de la imagen para reconocer el color negro del dedal que lleva el usuario en el dedo. Mediante esta funcin, se detecta el negro en la imagen y su posicin Comparar imagen: Ya que el sistema slo reconoce determinadas letras, una vez se ha detectado el movimiento del dedal negro, se comparan las imgenes para comprobar qu letra ha realizado el usuario y poder ejecutar una u otra opcin dependiendo del resultado obtenido.

69

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

(WP.04) PROGRAMACIN Es la etapa que ms dura de todo el proyecto. En ella se tiene que programar cada una de las funciones escogidas en la etapa anterior de diseo.

(WP.04.01) Programacin del Interfaz: Se ha decidido programar el interfaz con el programa NetBeans. Esta herramienta proporciona un interfaz bastante llamativo e intuitivo. Esta programado con el lenguaje de programacin Java. La funcin principal del interfaz es mostrar la webcam y capturar imgenes cada 50 milisegundos. Estas imgenes deben ser almacenadas en un fichero para que ms tarde, Matlab las lea y pueda interpretarlas. El interfaz es bastante sencillo, por lo explicado anteriormente. Debe ser un programa que no tenga muchas pantallas, ya que el usuario no puede ir navegando con ellas con facilidad, sino con el movimiento del dedo. El programa en Java debe comunicarse con las libreras programadas en Matlab, para ello es necesaria la utilizacin de la librera JMatLink, que es la encargada de unir estos dos programas. Una vez que Java toma las imgenes, mediante unas lneas de cdigo se llama a la funcin de Matlab que realiza el estudio de las imgenes.

70

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

El cdigo de unin es el siguiente:

(WP.04.02) Programacin de Libreras Como se ha comentado, todo el tratamiento de las imgenes se han realizado con Matlab. Matlab es una herramienta que proporciona un buen estudio de imgenes, por ello se han utilizado algunas funciones ya existentes en Matlab. Es necesaria la binarizacin de la imagen, esto es, convertir la imagen originar el una imagen compuesta slo por blanco y negro. Esto es imprescindible para que el programa reconozca el color negro y se pueda estudiar el movimiento realizado por el usuario.

71

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

(WP.05) PRUEBAS Como todo proyecto, es necesaria una etapa de pruebas al finalizar la aplicacin. Las pruebas se realizarn despus de la programacin del interfaz y de las libreras. Se han de probar todas las letras que reconoce el sistema, si realmente se reconocen correctamente y se realizan las opciones programadas.

(WP.05.01) Pruebas del Sistema Se podra realizar un Plan de Pruebas del sistema, pero al tener restricciones de tiempo, no se ha podido llevar a cabo un Plan de Pruebas total, por lo tanto, las nicas pruebas que se han hecho con respecto al sistema son las pruebas de programacin, tanto del interfaz como de la librera, y pruebas en los resultados obtenidos, para poder sacar una conclusiones y pensar en trabajos futuros que puedan ampliar la utilidad del proyecto.

72

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

(WP.05.02) Pruebas Presenciales Al finalizar la aplicacin, se ha querido demostrar la fiabilidad del sistema y para ello se han realizado unas pruebas presenciales. Los usuarios eran dos personas mayores de 71 y 72 aos respectivamente, que no acostumbran al uso de los ordenadores. Las pruebas resultaron satisfactorias, con algunos problemas iniciales. Los problemas encontrados fueron el control del dedo entre los lmites de la imagen que muestra la webcam. El usuario, al realizar el movimiento con el dedo, no tena control sobre los marcos de la imagen y por lo tanto, la aplicacin no devolva el resultado correcto. Una vez los usuarios consiguieron controlar el movimiento para que ste fuera dentro de la imagen de la cmara, los resultados fueron los previstos.

(WP.06) DOCUMENTACION La etapa de la Documentacin dura casi todo el proyecto, ya que a medida que es va avanzando en el desarrollo de la aplicacin, se van escribiendo los pasos dados y los temas relacionados. Se han estudiado las diferentes herramientas existentes hoy en da para poder enfocar el proyecto a partir de ellos y as poder aadir ms funciones a la aplicacin. Todas estas aplicaciones se han explicado en el apartado 2.1 del presente documento.

73

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

6. TRATAMIENTO DE IMGENES CON MATLAB

74

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

6.1 TIPOS DE IMGENES EN MATLAB


En Matlab una imagen a escala de grises se representa por medio de una matriz bidimensional de m x n elementos de donde n representa el nmero de pxeles de ancho y m el nmero de pxeles de largo. Cada elemento tiene un valor de 0 (negro) a 255 (blanco). Por otro lado, una imagen de color RGB (la ms usada para la visin computacional) se representa por una matriz tridimensional m x n x p, donde m y n tienen el mismo significado que para el caso de las imgenes de 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. Existen tres tipos de imgenes en Matlab: Imgenes indexadas: [I,MAP] La matriz I contiene la imagen indexada y la

matriz MAP la paleta de colores RGB asociada. SI la imagen es de 100x100x256 colores, la matriz I es de 100x100 con rango de valores [1 256] y la matriz MAP es de 256x3 con rango de valores en [0,1]. En caso de imgenes en niveles de gris, la paleta de colores suele tener todos los niveles de gris ordenados, de tal forma que en la posicin i de la paleta est el i-simo nivel de gris Imgenes de nivel de Gris: I La matriz I contiene la imagen en nivel de gris,

donde el rango de valores es de [0,1]. No necesita una paleta de colores. Las imgenes en blanco y negro son un caso especial de este tipo, donde slo estn los valores 0 y 1.

75

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Imgenes RGB: RGB

Cada matriz R, G, B contiene las intensidades en rojo,

verde y azul respectivamente de la imagen. Son imgenes en las que cada punto de la imagen se representa por un nivel de rojo, un nivel de verde y un nivel de azul; por lo que estn formadas por cada uno de estos 3 planos de color. Puesto que todos los colores que el ser humano es capaz de distinguir se pueden representar por una combinacin de estos tres. Cada canal de color tiene 256 niveles de intensidad posibles.

En este proyecto, se toman imgenes de la webcam, dichas imgenes se pasan a escala de grises, y despus se binarizan para as poder estudiar el movimiento realizado por el usuario. La imagen 6.1 representa un ejemplo de una imagen en escala de grises en Matlab

Figura 6.1. Imagen en escala de grises

76

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Figura 6.2. Imagen RGB

77

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Figura 6.3. Imagen Binaria

78

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

6.2 PROCESADO DE IMGENES EN MATLAB


El nmero de funciones que implementa Matlab para el procesamiento de imgenes es muy diverso, sin contar con la mltiple oferta de funciones ya generadas por otros usuarios y disponibles a travs de Internet. Filtraje espacial El filtraje espacial es una de las operaciones comunes en la visin computacional ya sea para realizar efectos de eliminacin de ruido o bien deteccin de bordes. En ambos casos la determinacin de los pxeles de la nueva imagen dependen del pxel de la imagen originar y de sus vecino. De esta forma es necesario configurar una matriz (mscara o ventana) que considere cuales vecinos y en qu forma influirn en la determinacin en el nuevo pxel.

Figura 6.4. Filtro espacial por ventana 3x3

79

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

7.

PLANIFICACIN

80

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

En la imagen 7.1 se muestra la planificacin inicial planteada para el desarrollo del proyecto

Figura 7.1. Planificacin del proyecto

A continuacin se realiza una explicacin detallada de cada uno de los paquetes de trabajo: Estudio de los Requisitos del Sistema: Se realiza un estudio de los objetivos iniciales del proyecto y de la motivacin que nos lleva a la realizacin del mismo. o Duracin: 3 semanas o Responsable: Jefe de proyecto o Participantes: Jefe de proyecto Analista

81

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Anlisis: Se analiza cada uno de los paquetes de trabajo del proyecto. Se analizan las necesidades del usuario y del sistema, partiendo de los objetivos iniciales concretados en la etapa anterior. o Duracin: 3 semanas o Responsable: Analista o Participantes: Analista

Diseo del interfaz: Debe ser un interfaz de fcil uso, ya que la persona que utilizar la aplicacin es una persona que no puede acceder fcilmente al ordenador, por ello, la interfaz debe ser totalmente intuitiva para que el usuario simplemente con la webcam pueda manejar las diferentes opciones que se le plantean y nicamente tenga que pulsar una tecla (ENTER) cada vez que finalice el movimiento. o Duracin: 2 semanas o Responsable: Diseador o Participantes: Diseador

82

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Diseo de libreras: Se plantea un diseo inicial de las libreras que se quieren programar. En esta etapa se decide que la parte de la interfaz grfica se realizar mediante el lenguaje de programacin Java con la plataforma NetBeans, a su vez, se decide que todo el procesamiento de imgenes se realizar con el programa Matlab ya que es un programa adecuado para este tipo de trabajo o Duracin: 3 semanas o Responsable: Diseador o Participantes: Diseador

Programacin interfaz: Se realiza la programacin de la interfaz. o Duracin: 5 semanas o Responsable: Programador o Participantes: Programador

Programacin libreras: Se realiza la programacin de las libreras o Duracin: 4 semanas o Responsable: Programador o Participantes Programador

83

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Pruebas del sistema: Las pruebas del sistema se realizan una vez se haya programado el interfaz de la aplicacin y las libreras. o Duracin: 5 semanas o Responsable Analista o Participantes Analista Diseador Programador

Documentacin: La documentacin se ha ido desarrollando a lo largo de todo el proyecto, ya que se ha de ir documentando a medida que se va avanzando en el proyecto, informando de los problemas encontrados y los objetivos que se han ido cumpliendo. o Duracin: Desarrollo de todo el proyecto o Responsable: Jefe de proyecto o Participantes: Analista

84

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

8.

ESTUDIO ECONMICO

85

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

8.1 COSTES DE INGENIERA

La tabla siguiente muestra el coste total del proyecto.

Figura 8.1. Costes de Ingeniera

86

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Euros/hora de cada uno de los participantes en el proyecto:

Figura 8.2. Tarifa Euros/Hora de los participantes

A continuacin se muestra el coste detallado de cada uno de los paquetes de trabajo: Estudio Requisitos del Sistema o Jefe de proyecto: Reunin con Analista de 2 horas cada semana 2 horas/semana * 3 semanas = 6 horas Coste: 6 horas * 70/hora = 420 o Analista: Reunin con Jefe de Proyecto de 2 horas cada semana 2 horas/semana * 3 semanas = 6 horas Coste: 6 horas * 50/hora = 300 o Coste paquete de trabajo 1 = 420 + 300 = 720 Anlisis o Analista: 4 horas al da durante 3 semanas 4 horas/da * 5 das/semana * 3 semanas = 60 horas Coste: 60 horas * 50/hora = 3.000 o Coste paquete de trabajo 2 = 3.000

87

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Diseo interfaz o Diseador: jornada completa 8 horas/da * 5 das/semana * 2 semanas = 80 horas Coste: 80 horas * 40 /hora = 3.200 o Coste paquete de trabajo 3 = 3.200 Diseo libreras o Diseador: jornada completa 8 horas/da * 5das/semana * 3 semanas = 120 horas Coste: 120 horas * 40/hora = 4.800 o Coste paquete de trabajo 4 = 4.800 Programacin interfaz o Programador: jornada completa 8 horas/da * 5das/semana * 5 semanas = 200 horas Coste: 200 horas * 30 /hora = 6.000 o Coste paquete de trabajo 5 = 6.000 Programacin libreras o Programador: jornada completa 8 horas/da * 5 das semana * 4 semanas = 160 horas Coste: 160 horas * 30 /hora = 4.800 o Coste paquete de trabajo 6 = 4.800

88

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Pruebas del sistema o Analista: trabaja a jornada completa durante 3 semanas 8 horas/da * 5 das/semana * 3 semanas = 120 horas Coste: 120 horas * 50 /hora = 6.000 o Diseador: trabaja a jornada completa durante 1 semana 8 horas/da * 5 das/semana * 1 semana = 40 horas Coste: 40 horas * 40 /hora = 1.600 o Programador: trabaja a jornada completa durante 2 semanas 8 horas/da * 5 das/semana * 2 semanas = 80 horas Coste: 80 horas * 30 /hora = 2.400 o Coste paquete de trabajo 7 = 6.000 + 1.600 + 2.400 = 10.000 Documentacin o Jefe de Proyecto: Aprueba la documentacin a lo largo de todo su desarrollo Coste: 10 horas * 70 /hora = 700 o Analista: Realiza la documentacin a lo largo de todo el desarrollo del proyecto Coste: 60 horas * 50 /hora = 3.000 o Coste paquete de trabajo 8 = 700 + 3.000 = 3.700

Por lo tanto, el coste total de personal asciende a: 720 + 3.000 + 3.200 + 4.800 + 6.000 + 4.800 + 10.000 + 3.700 = 36.220

89

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

8.2 COSTE DEL SOFTWARE UTILIZADO


Se han utilizado los siguientes programas: Sistema Operativo Windows XP Professional: 60 Microsoft Office: 100 Acrobat Professional: 125 Matlab: 1.000 o Imagen Processing Toolbox: 140 NetBeans IDE 6.7.1: Sofware Libre

Con estos datos, el coste total del software utilizado asciende a: 1.425

90

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

8.3 COSTE DEL HARDWARE UTILIZADO


El nico Hardware utilizado para la realizacin del proyecto es la utilizacin de la webcam Logitech. o Webcam Logitech: 50

El coste total del Hardware utilizado es de 50

91

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

8.4 PRESUPUESTO FINAL


Teniendo en cuenta los costes de personal, software y hardware, explicados en los apartados anteriores, el presupuesto final del proyecto es de:

Figura 8.3. Presupuesto final del Proyecto

92

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

9.

RESULTADOS DEL SISTEMA

93

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

La intencin inicial de este proyecto era realizar una aplicacin mediante la cual una persona con dificultad mvil pudiera utilizar ciertas opciones con el ordenador a travs de rdenes enviadas mediante una webcam. Uno de los principales objetivos era que el movimiento se realizara sin ningn elemento, simplemente con el dedo, pero a la hora de realizar los estudios con las imgenes nos hemos encontrado con bastantes dificultades para capturar dicho movimiento. El principal problema ha sido el fondo de la imagen. Nos ha sido imposible realizar el proyecto con cualquier fondo, por ello se decidi la utilizacin de un fondo fijo. El fondo debe ser totalmente liso y de color claro, para las pruebas se ha utilizado una lmina translcida que se coloca detrs del dedo, eliminando as todo el ruido que puede haber de fondo en la imagen. Otro problema encontrado ha sido capturar el movimiento nicamente del dedo, para solucionarlo, se ha utilizado un dedil de color negro que se coloca en el dedo que realiza el movimiento. De esta forma, se captura el dedil para realizar el tratamiento de imgenes y as reconocer el movimiento que se ha realizado. Con respecto al software utilizado, el mayor problema que hemos encontrado ha sido la utilizacin de la librera JMatLink. Como se ha explicado en el apartado [4.2.3] del presente documento, esta librera es la encargada de unir el lenguaje de programacin Java con la aplicacin Matlab.

94

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

A la hora de la instalacin de esta librera, hemos tenido muchos problemas para que funcionara, ya que las actualizaciones propias de Windows, modificaban los ficheros y por lo tanto, no permita que funcionara. Este problema nos ha llevado a perder mucho tiempo, hemos estado parados muchos das intentando resolverlo, pero finalmente se ha conseguido y se ha podido seguir desarrollando el proyecto para poder unir el programa realizado en NetBeans con todo el tratamiento de imgenes realizado con Matlab. Las pruebas presenciales se han realizado con xito, aunque se han encontrado algunos problemas ya que las personas no medan bien el espacio que la cmara captura, salindose de los marcos de la imagen. Una vez controlado esto, las pruebas han sido totalmente exitosas. Ha sido un trabajo duro y constante, al tratarse de un trabajo de investigacin ya que siempre supone un sacrificio de tiempo continuo, que se compensa con la satisfaccin al llegar a los objetivos planificados inicialmente.

95

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

10. CONCLUSIONES Y TRABAJOS FUTUROS

96

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Las nuevas tecnologas pueden ser un medio ms para ayudar a las personas con discapacidad motriz, pero sera un error pensar que la tecnologa es una finalidad en s misma. Las tecnologas slo formarn parte del proceso de humanizacin en la medida que las personas las hagan servir adecuadamente. No es suficiente con crear ayudas tcnicas y ofrecerlas a los usuarios como consumidores pasivos. Hay que entender la funcin que las ayudas tendrn para su vida personal y social, y entender que esta funcin afecta a todos los grupos sociales con capacidad o sin ella. [PUIG93] Este proyecto es un primer paso para luego poder seguir desarrollando en el tema aadiendo ms opciones al usuario y mejorar las prestaciones, ya que por ejemplo, en este caso, se utiliza un dedil para el seguimiento del dedo. Esto se podra mejorar sin el dedil e incluir mejoras tales como que la persona con el simple movimiento de la cara pueda controlar totalmente el ratn y poder utilizar el ordenador con un simple movimiento de la cabeza y un posible movimiento de los ojos para simular el click del ratn. En esta rea se pueden desarrollar muchas aplicaciones distintas, y con el paso del tiempo mejorar las mismas. Personalmente, me ha gustado realizar este proyecto y me he empezado a interesar por este tema, el ayudar a personas discapacitadas a poder acceder al ordenador, ya que tienen demasiadas limitaciones para ello. Se podra profundizar con esta misma aplicacin en controlar el ratn con el movimiento del dedo, aunque para ello hara falta un tiempo notablemente largo para la realizacin del mismo y posiblemente un grupo de personas trabajando en ello. Para controlar el ratn con el dedo, hay que tener en cuenta los parmetros del Sistema Operativo, por eso no se ha profundizado en ello en este proyecto ya que era complicado para el periodo de tiempo en que se desarrollaba el mismo.

97

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Una de las posibles mejoras y de las ms importantes sera el control de fondo de la imagen. En esta aplicacin, el usuario parte de un fondo esttico translcido y realiza el movimiento delante de ese fondo. A la hora de estudiar los diferentes movimientos del dedo, hemos tenido bastantes problemas para eliminar el ruido de fondo y todo lo que ello conlleva. Por eso se decidi usar un fondo esttico. Por ello, sera una interesante mejora el realizar el proyecto con cualquier fondo y sin necesidad del dedil negro que utiliza el usuario. Otra segunda ampliacin de este proyecto es la opcin de Llamar al usuario. Inicialmente slo se muestra una pantalla que indica que est llamando. Se podra juntar con programas de llamadas va Internet como puede ser el Skype. Y as dar la opcin al usuario de poder realizar una llamada a cualquier persona existente en su lista de contactos. Una vez se ha realizado el reconocimiento de las letras que puede realizar el usuario mediante el movimiento del dedo, se puede desarrollar un amplio abanico de posibilidades en la aplicacin dando diferentes opciones segn realice una u otra letra. En este proyecto, slo se ha dado la opcin de poder escuchar msica o realizar llamadas (ficticias) a una lista de contactos, pero podra ampliarse en muchas variedades de uso.

98

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

11. BIBLIOGRAFA

99

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

[WIKI07]: Wikipedia, la enciclopedia libre: www.wikipedia.org [MAT]: Toolbox Image Processing Matlab [MONOG]: Manual de Matlab: www.monografias.com/trabajos5/matlab/matlab.shtml [PUIG93]: Puig de la Bellacasa, 1993: Discapacidad y sociedad: una perspectiva histrica [JAVWEB]: Cdigo Java: www.java_desarrolloweb.com [INTDISC]: www.integraciondiscapacidades.org [SCRIB]: Procesamiento imgenes con Matlab: www.scribd.com/doc/23371/Procesamientode-imagenes-con-Matlab [VALD]: Visin por computador utilizando Matlab y el toolbox de procesamiento digital de imgenes [MASANZ]: Apuntes de Inteligencia Artificial (Miguel ngel Sanz Bobi)

100

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

12. ANEXOS

101

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

12.1

MANUAL DE USUARIO

Una vez se ejecuta la aplicacin, al usuario le aparece esta primera pantalla principal en la cual se est esperando a encontrar el dispositivo de la webcam conectado.

102

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Si no encuentra el dispositivo, muestra una ventana de ERROR, se vuelve a la pantalla principal y hace una comprobacin continua hasta que encuentre el dispositivo conectado de la webcam

103

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Una vez la aplicacin ha detectado la webcam se muestra en la parte izquierda de la ventana la captura de la misma. En la parte derecha de la ventana se muestran las instrucciones de uso del programa. El usuario puede realizar una L con el dedo, queriendo as realizar una llamada o hacer una M y por lo tanto escuchar msica.

104

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Si el usuario ha realizado la L con el dedo, con la tecla ENTER indica que ha finalizado el movimiento y se pasara a la siguiente pantalla donde se muestran los contactos del usuario a los cuales podr llamar realizando con el dedo el movimiento de la inicial de cada nombre.

105

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

El usuario realiza el movimiento con el dedo, debe pulsar la tecla ENTER para indicar a la aplicacin que ha finalizado el movimiento. Una vez hecho esto, aparecer la siguiente pantalla dependiendo de la persona a la que quiera llamar.

Cuando el usuario pulse ENTER se cerrar la pantalla y finalizar la aplicacin.

106

RECONOCIMIENTO GESTUAL A TRAVS DE WEBCAM

Si inicialmente el usuario ha realizado la letra M con el dedo, la aplicacin mostrar la siguiente pantalla.

Como se puede comprobar, aparecen una serie de canciones. El usuario deber realizar la letra indicada para escuchar cada una de ellas. Una vez realizado el movimiento, debe pulsar ENTER y la cancin elegida empezar a reproducirse con el Reproductor de Windows Media.

107