• No se han encontrado resultados

Implementación de Seguimiento de Rostros en Rehabilitación Cognitiva

N/A
N/A
Protected

Academic year: 2020

Share "Implementación de Seguimiento de Rostros en Rehabilitación Cognitiva"

Copied!
73
0
0

Texto completo

(1)

Implementaci´

on de Seguimiento de

Rostros en Rehabilitaci´

on Cognitiva

Universidad Nacional del Centro de la Provincia de Buenos Aires

Trabajo Final de la carrera Ingenier´ıa de Sistemas

Alumno:

Mart´ın Mench´

on

Director:

Dr. Ing. Jos´

e Mar´ıa Massa

(2)

Resumen

La rehabilitaci´on cognitiva, es un m´etodo terap´eutico destinado a mejorar o com-pensar los d´eficits neurocognitivos producidos por procesos que afectan el normal funcionamiento cerebral. Diversas enfermedades neurol´ogicas o afecciones psicol´ ogi-cas, pueden acarrear dificultades en las capacidades de atenci´on, memoria, lenguaje, razonamiento, organizaci´on, etc. A trav´es de la terapia de rehabilitaci´on cognitiva se procura restaurar esas funciones o compensarlas a trav´es del aprendizaje de otras habilidades. Las herramientas de software de rehabilitaci´on cognitiva actuales no satisfacen las necesidades planteadas por el Hospital Italiano.

(3)

Agradecimientos

(4)

´

Indice general

1. Introducci´on 9

1.1. Motivaci´on . . . 11

1.2. Objetivos . . . 11

1.3. Estructura de la tesis . . . 12

2. Estado del Arte 13 2.1. Herramientas de rehabilitaci´on cognitiva . . . 13

2.2. Estimaci´on de la pose humana . . . 14

2.2.1. Estimaci´on de la pose de la cabeza . . . 16

2.2.2. Seguimiento ocular . . . 26

2.2.3. Estimaci´on de la mirada . . . 30

2.2.4. Detecci´on de rostros . . . 30

2.2.5. Puntos faciales . . . 32

2.3. Herramientas para desarrollo de aplicaciones interactivas en linea . . 37

3. M´etodo Propuesto 39 3.1. Introducci´on . . . 39

3.2. Ejercicios de rehabilitaci´on cognitiva . . . 40

3.2.1. Decisiones de implementaci´on . . . 41

3.2.2. Tecnolog´ıas consideradas para el desarrollo . . . 42

3.3. Aplicaci´on de estimaci´on de la mirada a trav´es de la posici´on de la cabeza . . . 42

3.3.1. Elecci´on del entorno de desarrollo . . . 45

3.3.2. Obtenci´on de frames capturados por la c´amara web . . . 46

3.3.3. Detecci´on del conjunto de facial landmarks . . . 46

3.3.4. Conversi´on del conjunto de puntos 2D a 3D . . . 48

3.3.5. Estimaci´on de la pose de la cabeza . . . 49

3.3.6. Archivo de configuraci´on del modelo y de los puntos . . . 50

(5)

3.4. Interfaz de configuraci´on de ejercicio . . . 51

3.5. Base de datos y servicio web . . . 52

4. Resultados 55 4.1. Resultados de la herramienta de rehabilitaci´on cognitiva . . . 55

4.2. Resultados de la implementaci´on del seguimiento de mirada . . . 56

4.3. Integraci´on de los datos de la herramienta de rehabilitaci´on con el seguimiento de mirada . . . 58

5. Conclusiones 59 5.1. Discusi´on . . . 59

5.2. Trabajos Futuros . . . 60

A. Relevamiento de t´ecnolog´ıas de desarrollo 61 A.1. Introducci´on . . . 61

A.2. Tecnolog´ıas de desarrollo de herramientas interactivas . . . 61

A.3. Lenguajes para intercambio de datos . . . 62

A.4. Tecnolog´ıas para el desarrollo de sitios web . . . 64

A.5. Tecnolog´ıas para el desarrollo deweb services . . . 65

(6)

´

Indice de figuras

2.1. Captura de pantalla de las herramientas analizadas. . . 14 2.2. Tecnolog´ıa Motion Capture utilizada para la digitalizaci´on de

movi-mientos faciales en la pel´ıcula Avatar. . . 15 2.3. Partes del cuerpo reconocidas desde una c´amara monocular. . . 16 2.4. Microsoft Kinect. Sus componentes resaltados en la imagen. . . 16 2.5. (a) Una persona jugando al golf. La serie de im´agenes capturadas con

Kinect en la que se segmenta a la persona y se reconocen las partes del cuerpo reflejando las mismas en un modelo 3D. (b) Miembros corporales reconocidas por Kinect. . . 17 2.6. Los tres grados de libertad de una cabeza humana pueden ser

des-criptos por los ´angulos de rotaci´on pitch, roll y yaw. . . 18 2.7. Ilusi´on de Wollaston: Aunque los ojos son iguales en ambas im´agenes,

la direcci´on de la mirada es percibida por la orientaci´on de la cabeza. 18 2.8. Se observa una comparaci´on de una nueva imagen de una cabeza con

un conjunto de ejemplares (cada una etiquetada con poses discretas) con el fin de encontrar la pose m´as similar. . . 19 2.9. Se observa el entrenamiento de una serie de detectores de cabeza con

unas poses espec´ıficas y se asigna unas poses discretas al detector con mayor tasa de reconocimiento. . . 20 2.10. Se observa como se utilizan herramientas de regresi´on no lineal para

desarrollar un mapeo funcional a partir de una imagen para estimar la pose de la cabeza. . . 20 2.11. Los m´etodos m´ultiples embebidos tratan de proyectar una imagen

procesada sobre la pose de la cabeza usando t´ecnicas lineales y no lineales. . . 21 2.12. Ajustar un modelo no r´ıgido a la estructura facial de cada individuo

(7)

2.13. Utiliza la ubicaci´on de caracter´ısticas tales como los ojos, la boca, y la punta de la nariz para determinar la pose a partir de su configuraci´on relativa. . . 23 2.14. M´etodos de seguimiento recuperan el cambio de pose global de la

cabeza a partir del movimiento observado entre fotogramas de v´ıdeo. 24 2.15. En esta imagen el rostro es modelado como un plano. Las coordenadas

indican la pose de la cabeza. . . 25 2.16. Los m´etodos h´ıbridos combinan uno o m´as de los m´etodos

menciona-dos anteriormente para superar las limitaciones inherentes a cualquier enfoque ´unico. Este imagen es un ejemplo de una plantilla de aparien-cia combinado con un sistema de seguimiento de puntos. . . 25 2.17. Ejemplo de un rostro reconocido con CLM. . . 26 2.18. Ejemplo de mascara de seguimiento aplicado a un rostro mediante

Kyle McDonald Tracker. . . 26 2.19. Electrones pegados sobre el rostro de una persona. . . 27 2.20. Bobina sobre el ojo colocada en un lente de contacto. . . 28 2.21. Esta imagen ilustra un emisor infrarrojos sobre el ojo y un receptor

conectado a un medidor. . . 28 2.22. Luz infrarroja reflejada en el ojo. . . 29 2.23. M´etodo invasivo, casco con una c´amara capturando un ojo y otra

c´amara sobre la frente para obtener el campo de vis´on. . . 30 2.24. Mediate la aplicacion de sucesivas t´ecnicas de procesamiento de im´

age-nes se a´ısla la pupila y se estima su dimensi´on. . . 31 2.25. Sistema de c´amaras estero y luz infrarroja situadas en un auto, para

estimar la mirada del conductor. . . 31 2.26. M´etodos actuales utilizan Kinect u otros dispositivos con sensores de

profundidad y generan un modelo 3D del globo ocular. . . 32 2.27.EyesDecide es una aplicaci´on que indica el tiempo que una p´agina

web es vista. Mientras m´as tiempo pase mirando un usuario, m´as roja ser´a la zona de la pantalla. Es utilizada para conocer los intereses del usuario o evaluar si un dise˜no es correcto y la persona se fija en la informaci´on que se quiere resaltar. . . 32 2.28. Se puede observar una implementaci´on de detecci´on de rostros en una

c´amara digital convencional. . . 33 2.29. En esta imagen se observa un conjunto de “bloques” para reconocer

(8)

2.30. En esta imagen se observa la combinaci´on de distintos clasificadores aplicados a un rostro. . . 33 2.31. Los puntos rojos representan los facial landmarks reconocidos en el

rostro. . . 34 2.32. Demostraci´on de facial landmarks detectados con este algoritmo. . . . 35 2.33.Facial Landmarks indicados con su correspondiente numeraci´on. . . . 36 2.34. Resultados de Clandmark, El cuadrado amarillo es el rostro

recono-cido, el rect´angulo verde es la orientaci´on de la cabeza y los puntos rojos son los facial landmarks detectados. . . 36 2.35. Conjunto de landmarks obtenidos con FLFLP. . . 37 2.36. Captura de pantalla de la p´agina facepluplus.com. . . 37 2.37. En verde los facial landmarks reconocidos y en rosa la posici´on de los

ojos. En rojo se indican los lagrimales de los ojos. . . 38 3.1. Diagrama que muestra las diferentes secciones y su comunicaci´on. . . 40 3.2. Capturas de pantalla de la herramienta en las cuales es posible

apre-ciar las diferentes configuraciones posibles. . . 41 3.3. En esta figura se observa Kyle McDonald Tracker marcando una pose

incorrecta (invertida es este caso). . . 44 3.4. Ilustraci´on del sistema propuesto. . . 44 3.5. M´etodo de Matsumoto, es posible apreciar varias posiciones de cabeza. 45 3.6. Un mismo rostro con diferentes tipos de oclusiones, se puede observar

las distintas respuestas de la biblioteca Dlib. . . 47 3.7. Puntos elegidos para la aplicaci´on. . . 47 3.8. Un ejemplo de detecci´on de rostro. Luego el ´area donde se encuentra

es utilizada como entrada del algoritmo de reconocimiento puntos caracter´ısticos. . . 48 3.9. Representaci´on de la estimaci´on de los puntos 3D de la malla (c´ırculos

rojos) correspondiente a cada facial-landmark (puntos rosa). . . 49 3.10. Representaci´on de los ojos de forma cenital. El segmento inferior

re-presenta la pantalla,d representa la distancia a la que esta la persona de la c´amara,dipes la distancia interpupilar,f es la distancia focal de la c´amara,l la distancia que hay que calcular para determinar donde se encuentra q. . . 50 3.11. Representaci´on visual de la direcci´on de la mirada, el punto 3D de es

(9)

3.13. (a) La resoluci´on de la c´amara es mapeada a la pantalla. (b) Puntos

son mapeados a la pantalla. . . 51

3.14. Interfaz del configurador de ejercicio. . . 52

3.15. Comunicaci´on entre la base de datos y las distintas plataformas a trav´es del servicio web. . . 53

3.16. Diagrama esquem´atico del funcionamiento de la aplicaci´on. . . 54

4.1. Herramienta corriendo sobre dispositivos M´oviles: (a)Una tablet (b) Un celular. . . 56

4.2. Cuadrantes Numerados. . . 56

4.3. Ilook 300. . . 56

4.4. Resultados. . . 57

(10)

Cap´ıtulo 1

Introducci´

on

El procesamiento digital de im´agenes es el conjunto de t´ecnicas que se aplican con el objetivo de facilitar la b´usqueda de informaci´on visual [1]. Una de sus numerosas aplicaciones es el campo de la visi´on artificial, lo que permite a una computadora, extraer informaci´on relevante de una imagen a partir de ciertas caracter´ısticas o patrones para un determinado prop´osito. Esto le permite a la computadora “com-prender” una escena y por ejemplo, identificar y seguir los objetos de relevancia [2]. M´as espec´ıficamente, es posible aplicar t´ecnicas de segmentaci´on y reconocimiento de patrones a las im´agenes capturadas por la c´amara y as´ı ejecutar tareas espec´ıfi-cas [3]. Un ejemplo de aplicaci´on de este tipo de t´ecnicas sobre dispositivos m´oviles son las funciones “Smile Shot”, “Face Detection” y “Automatic estabilization” que se han aplicado masivamente a las c´amaras fotogr´aficas y a los smartphones. Dos de las t´ecnicas principales que se utilizan para atacar el problema de seguimiento de objetos se basan en: el seguimiento del flujo ´optico [4] y la extracci´on de pun-tos caracter´ısticos [5]. El flujo ´optico puede ser definido como el movimiento de los patrones de intensidad en una imagen. A partir de la interpretaci´on de dicho movi-miento, se induce el movimiento espacial de los objetos a los cuales caracteriza. La extracci´on de puntos caracter´ısticos define un m´etodo para encontrar caracter´ısticas relevantes en una imagen proporcionando cierta invariancia a la escala, rotaci´on y a una peque˜na variaci´on en la pose 3D, de esta manera es posible localizar un objeto en dos im´agenes contiguas en un clip de video. Existe un amplio espectro de varian-tes respecto a las t´ecnicas antes mencionadas, y la performance de las mismas var´ıa de manera significativa en relaci´on a su forma de implementaci´on [5].

(11)

vectores. Un conjunto de Eigenfaces se puede generar mediante la realizaci´on de un proceso matem´atico llamado an´alisis de componentes principales (PCA) en un gran n´umero de im´agenes que representan diferentes rostros humanos. Informalmente, Ei-genfaces pueden considerarse un conjunto de “caras estandarizadas”, derivadas de un an´alisis estad´ıstico de muchas fotos de rostros. Cualquier rostro humano puede ser considerado como una combinaci´on de estas caras est´andar. No se necesitan mu-chos Eigenfaces combinados para lograr una aproximaci´on razonable de la mayor´ıa de los rostros.

Otra caracter´ıstica de este m´etodo es que la cara de una persona no se registra como una fotograf´ıa digital, sino como una simple lista de valores.

La t´ecnica utilizada en la creaci´on de Eigenfaces tambi´en se usa fuera del reconoci-miento facial, por ejemplo, el an´alisis de la escritura, la lectura de labios, reconoci-miento de voz y tratareconoci-miento de im´agenes m´edicas.

En cuanto al ´area de Rehabilitaci´on Cognitiva, la inclusi´on de las Tecnolog´ıas de la Informaci´on y de la Comunicaci´on (TIC) ha resultado ser beneficiosa en el tra-tamiento de trastornos de la memoria y la conducta [7]. En particular el Hospital Italiano de Buenos Aires lleva adelante un proyecto de este tipo, dentro del cual se enmarca esta tesis.

Mediante la inclusi´on de las herramientas de NeuroInform´atica se pretende proveer de los beneficios de la Neurorehabilitaci´on a mayor cantidad de pacientes, optimi-zando la relaci´on Costo/Beneficio en cada prestaci´on sin descuidar la calidad cl´ınica. La inclusi´on de t´ecnicas de seguimiento de rostros en Rehabilitaci´on Cognitiva ha sido beneficiosa para la detecci´on de ciertas afecciones [8].

(12)

1.1.

Motivaci´

on

La motivaci´on principal de este trabajo es poder contribuir con la aplicaci´on de una t´ecnica de Visi´on Computacional a mejorar algunos aspectos de la Rehabilita-ci´on Cognitiva, en particular en el contexto del proyecto del Hospital Italiano de Buenos Aires mencionado anteriormente.

La idea central de este proyecto consiste en el desarrollo de una herramienta de tratamiento, rehabilitaci´on y estimulaci´on cognitiva para las personas que han sido afectadas por lesiones neurol´ogicas (accidentes cerebrovasculares, anoxias, Trauma-tismo craneoencef´alico, tumores, etc.); enfermedades neurodegenerativas (Alzhei-mer; Parkinson, Esclerosis m´ultiple, etc.); o actividades de promoci´on y prevenci´on para personas con declinaci´on cognitiva debido a la edad.

Esta herramienta permitir´a contribuir a mejorar el seguimiento de tratamientos de rehabilitaci´on cognitiva de forma personalizada, intensiva y con monitorizaci´on continua. La inclusi´on de t´ecnicas de Seguimiento de Rostros en este problema, per-mitir´a obtener un conjunto de informaci´on ´util que podr´a luego ser analizada en conjunto con el registro de entradas de perif´ericos convencionales (mouse y teclado) para conocer m´as en detalle c´omo el paciente interact´ua con el software.

1.2.

Objetivos

Este trabajo se enfoc´o en la rehabilitaci´on de pacientes con Neglect. El Neglect hemiespacial es una alteraci´on neuropsicol´ogica secundaria (una lesi´on cerebral fun-damentalmente localizada en el l´obulo parietal) caracterizada por el fallo a informar, responder u orientarse hacia est´ımulos presentados y que no es atribuible a altera-ciones motoras o sensoriales [10].

(13)

1.3.

Estructura de la tesis

(14)

Cap´ıtulo 2

Estado del Arte

2.1.

Herramientas de rehabilitaci´

on cognitiva

Existen numerosas investigaciones que muestran resultados beneficiosos en la aplicaci´on de diferentes herramientas desoftware para el problema de rehabilitaci´on cognitiva en pacientes neurol´ogicos [11], [12], [13], [14], [15], [16], [17]. Para esta tesis, se realiz´o un relevamiento de las diferentes tecnolog´ıas disponibles al acceso del p´ublico. Entre las que m´as se destacan se puede mencionar a Happy Neuron (www.happy-neuron.com), RehaCom Brain Training(www.rehacom.co.uk), Neuro-psic (www.neuroNeuro-psicologia.com.ar), Foramen (www.foramenrehab.info), Society for Cognitive Rehabilitation (www.societyforcognitiverehab. org), Psychological Softwa-re Services (www.psychological-softwaSoftwa-re.com) y ParrotSoftwaSoftwa-re (www.parr otsoft-ware.com).

Luego se analizaron teniendo en cuenta tres aspectos: consideraciones del paciente, de los m´edicos y por ´ultimo consideraciones de los desarrolladores.

• Desde el punto de vista de un paciente, estos programas son pagos, lo cual limita el acceso de las personas a los mismos, la mayor´ıa implican tener que instalar un

software y luego mantenerlo, es decir, actualizar a las nuevas versiones. Todos las aplicaciones analizadas no funcionan en otros dispositivos a excepci´on de la compu-tadora.

(15)

(a) My Happy Neuron (b) RehaCom Brain

Figura 2.1: Captura de pantalla de las herramientas analizadas.

• Desde el punto de vista de los desarrolladores, al no ser tecnolog´ıas libres, no es posible conocer las caracter´ısticas del desarrollo. Su c´odigo cerrado restringe la ex-tensibilidad del mismo.

Las ´unicas herramientas de software que proveen una versi´on de prueba son My Happy Neuron y RehaCom Brain (ver fig. 2.1). Se testearon, analizaron en profun-didad cada uno:

Propiedad/Herramienta My Happy Neuron RehaCom Brain

Cantidad de ejercicios Gran variedad de ejercicios Un s´olo tipo de ejercicio Ajuste de dificultad Tiene varios niveles que son

seleccionados manualmente

La dificultad se ajusta au-tom´aticamente

Configuraci´on Poco configurable Posee un configurador que permite a los m´edicos ajus-tar el tratamiento

Tecnolog´ıa de imple-mentaci´on

Esta desarrollado en flash, por lo tanto no es posible utilizarlo en dispositivos co-mo tablets o celulares

Desconocido

Plataforma de ejecu-ci´on

Online PC

Licencia Pago Pago

Cuadro 2.1: Comparativa My Happy Neuron - RehaCom Brain

2.2.

Estimaci´

on de la pose humana

(16)

Figura 2.2: Tecnolog´ıa Motion Capture utilizada para la digitalizaci´on de movimientos faciales en la pel´ıcula Avatar.

Por ejemplo, permite un nivel m´as elevado de interacci´on humano-computadora y es esencial para las actividades de reconocimiento. Es, adem´as, uno de los pilares b´ asi-cos para la captura de movimiento, conocida en ingl´es comoMotion Capture,Motion Tracking o MoCapes, un t´ermino utilizado para describir el proceso de grabaci´on de movimientos y su traslado a un modelo digital. Este tipo de t´ecnicas se utiliza principalmente en la industria del entretenimiento, deportes, o con fines m´edicos y se basa en t´ecnicas de fotogrametr´ıa. En las producciones cinematogr´aficas es usual utilizar t´ecnicas que buscan almacenar las acciones y gestos de actores humanos con el objetivo de lograr animaciones fidedignas en modelos digitales 3D de personajes virtuales. Al principio, el mecanismo consist´ıa en el uso de marcadores o esferas de luz en posiciones espec´ıficas del cuerpo junto con software de seguimiento de estos objetos. En la fig. 2.2 se muestra esta tecnolog´ıa que fue empleada para la produc-ci´on de la pel´ıcula Avatar.

El reconocimiento puede ser realizado desde una c´amara monocular (ver fig. 2.3) o pueden utilizarse dispositivos m´as complejos. Un ejemplo conocido de estos dispo-sitivos es el Microsoft Kinect, desarrollado para el mundo de los videojuegos. Este sensor de movimiento es una barra horizontal de aproximadamente 23 cm conectado a una peque˜na base circular con un eje de articulaci´on de r´otula, dise˜nado para ser colocado longitudinalmente por encima o por debajo de la pantalla de video. El dis-positivo cuenta con una c´amara RGB, un sensor de profundidad, un micr´ofono de m´ultiples matrices y un procesador personalizado que ejecuta el software patentado, el cual proporciona captura de movimiento de todo el cuerpo en 3D, reconocimiento facial y capacidades de reconocimiento de voz. Existen otros dispositivos similares a Kinect que han sido lanzados posteriormente, entre los cuales se destacan los desa-rrollados por las empresas Asus y SoftKinectic.

(17)

Figura 2.3: Partes del cuerpo reconocidas desde una c´amara monocular.

Figura 2.4: Microsoft Kinect. Sus componentes resaltados en la imagen.

siguientes etapas: pre procesamiento, segmentaci´on y extracci´on de caracter´ısticas. Usualmente en el pre procesamiento se aplican filtros y transformaciones que mo-difican la imagen para que satisfaga ciertas asunciones que ser´an aplicadas por los m´etodos siguientes del proceso. En la etapa de segmentaci´on se busca delimitar regio-nes en la imagen que sean relevantes para el reconocimiento. Una vez que la imagen fue segmentada, la etapa de extracci´on de caracter´ısticas se encarga de encontrar zonas del cuerpo humano, como por ejemplo el contorno completo del usuario o la ubicaci´on de las manos, brazos y piernas [18]. Ver fig. 2.5.

2.2.1.

Estimaci´

on de la pose de la cabeza

(18)

(a)

(b)

Figura 2.5:(a) Una persona jugando al golf. La serie de im´agenes capturadas con Kinect en la que se segmenta a la persona y se reconocen las partes del cuerpo reflejando las mismas en un modelo 3D. (b) Miembros corporales reconocidas por Kinect.

rotaci´on muscular y orientaci´on relativa es una ambig¨uedad que a menudo se pasa por alto (por ejemplo, una vista de perfil de una cabeza no se ve exactamente lo mismo cuando una c´amara est´a viendo desde el lado en comparaci´on con cuando la c´amara est´a viendo desde el frente y la cabeza se gira hacia los lados). A pesar de este problema, generalmente se supone que la cabeza humana puede ser modelada como un objeto r´ıgido. Bajo este supuesto, la cabeza humana se limita a tres grados de libertad, que puede caracterizarse como pitch, roll y yaw, ver fig 2.6. La estima-ci´on de la pose de la cabeza est´a intr´ınsecamente relacionado con la estimaci´on de la mirada, es decir, la capacidad de caracterizar la direcci´on y el enfoque de los ojos de una persona. Por s´ı misma, la posici´on de la cabeza proporciona una indicaci´on tosca de la mirada que puede ser estimada en situaciones en las que los ojos de una persona no son visibles (como las im´agenes de baja resoluci´on, o en presencia de objetos como gafas de sol). Cuando los ojos son visibles, la posici´on de la cabeza se convierte en un requisito para predecir con precisi´on la direcci´on de la mirada. Investigaciones fisiol´ogicas han demostrado que la predicci´on de la mirada de una persona proviene de una combinaci´on de la posici´on de la cabeza y la direcci´on de los ojos [21], ver fig. 2.7.

M´etodos de estimaci´on de la pose de la cabeza

(19)

Figura 2.6: Los tres grados de libertad de una cabeza humana pueden ser descriptos por los ´angulos de rotaci´on pitch, roll y yaw.

Figura 2.7: Ilusi´on de Wollaston: Aunque los ojos son iguales en ambas im´agenes, la direcci´on de la mirada es percibida por la orientaci´on de la cabeza.

(20)

Figura 2.8: Se observa una comparaci´on de una nueva imagen de una cabeza con un conjunto de ejemplares (cada una etiquetada con poses discretas) con el fin de encontrar la pose m´as similar.

destacar algunos de los rasgos faciales, mejorando la exactitud del algoritmo [1]. Esta t´ecnica generalmente requiere de un paso previo de etiquetado manual de im´agenes para identificar las plantillas con las poses de salida. El resultado generalmente es una estimaci´on grosera de la pose de la cabeza.

Conjunto de detectores Estos m´etodos entrenan un clasificador discriminante, como una red neuronal artificial [24], y procesan la imagen de entrada con ´el. Esta t´ecnica es similar a la descripta anteriormente, excepto que en lugar de utilizar la imagen coincidente con todos los casos en la base de datos de entrenamiento, se utiliza un clasificador binario entrenado con todas las caras que comparten una misma pose dentro de la base de datos. Esto permite entrenar el detector para distinguir no s´olo las diferentes posturas de la cabeza, sino tambi´en la presencia o no de un rostro en un solo paso. En la fig. 2.9 se muestra una cabeza nueva a reconocer y se la compara con distintos conjuntos de cabezas clasificados para una determinada pose. Luego se elije el conjunto con mayor porcentaje de coincidencia y se retorna la respectiva pose.

(21)

Figura 2.9: Se observa el entrena-miento de una serie de detectores de cabeza con unas poses espec´ıficas y se asigna unas poses discretas al de-tector con mayor tasa de reconoci-miento.

Figura 2.10: Se observa como se utilizan herramientas de regresi´on no lineal para desarrollar un mapeo funcional a partir de una imagen pa-ra estimar la pose de la cabeza.

La desventaja de este enfoque es que se no puede conocer si una herramienta de regresi´on espec´ıfica, ser´a capaz de aprender el mapeo adecuado.

De las herramientas de regresi´on no lineal usadas para estimar la pose de la cabeza, las redes neuronales han sido las m´as utilizadas en la literatura. Un ejemplo de esto es multilayer perceptron (MLP), que consta de muchas unidades de procesamiento no lineal que se comunican definidas en capas m´ultiples (por ejemplo, la salida de las unidades de una capa comprende la entrada para la capa posterior) [25] [26]. El

Perceptron puede ser entrenado mediantebackpropagation, que es un procedimiento de aprendizaje supervisado que propaga el error hacia atr´as a trav´es de cada una de las capas ocultas en la red para actualizar los pesos y sesgos. La pose de la cabeza puede estimarse a partir de las im´agenes recortadas de una cabeza usando MLP en diferentes configuraciones. Las ventajas de los enfoques de redes neuronales son numerosas. Estos sistemas son muy r´apidos, s´olo requieren caras recortadas y etiquetadas para su entrenamiento, trabajan bien para im´agenes tanto de campo cercano como lejano u oclusiones parciales y dan las estimaciones m´as precisas.

(22)

Figura 2.11:Los m´etodos m´ultiples embebidos tratan de proyectar una imagen procesada sobre la pose de la cabeza usando t´ecnicas lineales y no lineales.

Modelos flexibles Los m´etodos anteriormente descriptos han considerado la esti-maci´on de la pose de la cabeza como un problema de detecci´on de se˜nales, mapeando una regi´on rectangular de p´ıxeles de una imagen con una pose espec´ıfica. Los mode-los flexibles adoptan un enfoque diferente. Con estas t´ecnicas, un modelo no r´ıgido es superpuesto a la imagen de tal manera que se ajusta a la estructura facial de cada individuo. Estos m´etodos requieren datos de entrenamiento con rasgos faciales etiquetados. Ver fig. 2.12.

Para estimar la pose, la vista de la nueva cabeza es superpuesta con cada plantilla y una m´etrica basada en los p´ıxeles es usada para comparar las im´agenes. Incluso con un registro perfecto, las im´agenes de dos personas diferentes no se alinean exac-tamente, ya que la ubicaci´on de los rasgos faciales var´ıa entre las personas. Por ello se considera una plantilla basada en un grafo deformable de rasgos locales (borde de los ojos, nariz, boca, etc). Para entrenar este sistema, los puntos faciales deben ser localizados y etiquetados manualmente en cada imagen de entrenamiento. Esta representaci´on es llamada Elastic Bunch Graph [28], y posee la habilidad de repre-sentar objetos deformables. Para comparar un grafo con una imagen de un rostro nuevo, el grafo es ubicado sobre la imagen, e iterativamente deformado para en-contrar la distancia m´ınima entre las caracter´ısticas en cada nodo del grafo. Este proceso es llamado Elastic Graph Matching (EGM). Para la estimaci´on de la pose de la cabeza, se crea un conjunto de grafos para cada pose, y cada uno de estos es comparado con una nueva imagen de la cabeza. El conjunto de grafos con la m´axima similaridad asigna la pose de la cabeza [29], [30].

(23)

Figura 2.12: Ajustar un modelo no r´ıgido a la estructura facial de cada individuo en el plano de la imagen. La pose de la cabeza se estima a partir de comparaciones a nivel de entidad o de la instanciaci´on de los par´ametros del modelo.

computacionalmente caro en comparaci´on con otras t´ecnicas de HPE.

Otro modelo flexible esActive Appearance Model (AAM) [31] que aprende los modos primarios de la variaci´on en la forma del rostro y la textura desde una perspectiva 2D. Considere un conjunto de puntos faciales espec´ıficos M, (quiz´as el contorno de los ojos, o´ıdos, nariz, la barbilla y la boca). Cada punto tiene una coordenada 2D en una imagen, y estos puntos pueden ser ordenados por caracter´ısticas faciales y concatenados en un vector de longitud 2M. Si estos vectores de caracter´ısticas se calculan para muchas caras, abarcan los diferentes individuos y poses que se pueden encontrar y as´ı esto permite que sean utilizados para hallar la variaci´on de la for-ma de la cara. Usando una t´ecnica de reducci´on de dimensi´on como PCA en estos datos, resulta en Active Shape Model (ASM) [32], capaz de representar los modos primarios de variaci´on de la forma. Simplemente mirando los componentes princi-pales m´as largos, se puede encontrar en los datos las direcciones que corresponden a la variaci´on enpitch y yaw, [33].

La principal limitaci´on de estas t´ecnicas es que todas las caracter´ısticas faciales re-quieren ser localizadas en cadaframe de la imagen. En la pr´actica, estos enfoques se limitan a las posiciones de la cabeza en la que los bordes de los ojos son visibles. Una ventaja de estos algoritmos de ajuste es que pueden operar con im´agenes faciales de baja resoluci´on.

(24)

Figura 2.13: Utiliza la ubicaci´on de caracter´ısticas tales como los ojos, la boca, y la punta de la nariz para determinar la pose a partir de su configuraci´on relativa.

y la precisa configuraci´on de caracter´ısticas locales para estimar la pose como en la fig. 2.13. La desventaja de estos enfoques es que la pose solo puede ser estimada si es cercana a la vista frontal, ya que es necesario ver todas las l´ıneas faciales. Estos m´etodos son r´apidos y simples. Con solo unas pocas caracter´ısticas faciales, se puede obtener una estimaci´on de la pose de la cabeza. La dificultad obvia recae en detectar las caracter´ısticas con alta precisi´on y exactitud. Las im´agenes de campo lejano, en este contexto, son problem´aticas ya que la resoluci´on puede hacer que sea dif´ıcil o imposible determinar precisamente la localizaci´on de las caracter´ısticas. Tambi´en, a menudo surgen situaciones en las que los puntos del rostro son obstruidos, como por ejemplo cuando una persona usa anteojos y no es posible ver el contorno de los ojos. Teniendo en cuenta que los enfoques geom´etricos dependen de la detecci´on precisa de puntos faciales, por lo general son m´as sensibles a la oclusi´on que los m´etodos basados en plantillas de apariencia que utilizan la informaci´on de toda la regi´on facial.

Vale la pena se˜nalar que incluso las caracter´ısticas geom´etricas m´as simples pueden ser usadas para estimar la pose de la cabeza. Al ajustar una elipse al contorno de un rostro se provee una estimaci´on grosera de la pose [35]. Para rostros frontales, el grado yaw puede ser estimado creando un tri´angulo entre los ojos y la boca y encontrando la desviaci´on con respecto a un tri´angulo is´osceles [36].

(25)

Figura 2.14: M´etodos de seguimiento recuperan el cambio de pose global de la cabeza a partir del movimiento observado entre fotogramas de v´ıdeo.

el sujeto debe mantener una pose frontal antes de que el sistema comience, y debe ser reinicializado cuando el seguimiento es perdido. Como resultado, los enfoques dependen de la inicializaci´on manual o una ubicaci´on de la c´amara de tal manera que la cabeza del sujeto este mirando hacia adelante y pueda ser f´acilmente reini-cializada con un detector de rostros.

(26)

Figura 2.15: En esta imagen el rostro es modelado como un plano. Las coordenadas indican la pose de la cabeza.

Figura 2.16: Los m´etodos h´ıbridos combinan uno o m´as de los m´etodos mencionados anteriormente para superar las limitaciones inherentes a cualquier enfoque ´unico. Este imagen es un ejemplo de una plantilla de apariencia combinado con un sistema de segui-miento de puntos.

M´etodos h´ıbridos Los enfoques h´ıbridos combinan uno o m´as de los m´etodos anteriormente mencionados para HPE, un ejemplo es ilustrado en la fig. 2.16. Estos sistemas est´an dise˜nados para superar las limitaciones de los m´etodos anteriores. Una modalidad com´un es complementar una aproximaci´on est´atica de head pose con un sistema de seguimiento. El sistema est´atico es responsable de la inicializaci´on, y el sistema de seguimiento es responsable de mantener la estimaci´on de la pose en el tiempo. Si el tracker empieza a desviarse, el sistema est´atico puede reinicializar el seguimiento. Este m´etodo proporciona precisi´on de las t´ecnicas de seguimiento puro sin los problemas de inicializaci´on y desv´ıos. Muchas combinaciones exitosas han sido presentadas mezclando m´etodos geom´etricos con puntos de seguimiento [46], [47], [48], [49], [50].

Bibliotecas head pose estimation

(27)

Figura 2.17: Ejemplo de un rostro reconocido con CLM.

Figura 2.18: Ejemplo de mascara de seguimiento aplicado a un rostro mediante Kyle McDonald Tracker.

Cambridge face tracker Cambridge face tracker (CLM-framework) es una bi-blioteca OpenSource desarrollada en la Universidad de Cambridge. Esta escrita en C++ y provee puntos faciales y estimaci´on de la pose de la cabeza. Si bien es de c´ odi-go abierto, no se encontr´o ninguna publicaci´on cient´ıfica que revelara informaci´on acerca del algoritmo implementado, adem´as su reutilizaci´on con fines comerciales esta prohibida por licencia. Ver fig. 2.17.

Kyle McDonald Tracker Kyle McDonald Tracker es una biblioteca escrita en C++ usando OpenCV 2. Es libre para uso no comercial. Al igual que CLM, tampoco se proporciona informaci´on sobre el algoritmo. Ver fig. 2.18.

2.2.2.

Seguimiento ocular

El seguimiento ocular (en ingl´es,eye tracking) es la medici´on del movimiento del ojo. El seguimiento de la mirada (gaze tracking) es el an´alisis de la informaci´on del seguimiento de los ojos con respecto a un campo de visi´on.

Los investigadores de esta ´area suelen usar los t´erminos eye tracking, gaze tracking

(28)

M´etodos de eye tracking

El m´etodo que consiste en registrar la posici´on de un ojo y sus movimientos es lla-mado oculograf´ıa. Existen cuatro diferentes m´etodos de seguimiento del movimiento de los ojos.

Electro-Oculograf´ıa En este m´etodo, son adheridos sensores a la piel alrededor de los ojos para medir el campo el´ectrico existente cuando los estos rotan. Al grabar las peque˜nas diferencias en el potencial de la piel alrededor del ojo, la posici´on del mismo puede ser estimada. Separando cuidadosamente los electrodos es posible dividir entre movimientos verticales y horizontales. Ver fig. 2.19. Sin embargo, la se˜nal puede cambiar cuando no hay movimiento del ojo. Esta t´ecnica no es adecuada para el uso diario, ya que requiere el contacto del usuario con los electrodos, pero todav´ıa es utilizado frecuentemente por los m´edicos.

Es un m´etodo simple y econ´omico, pero invasivo. La ventaja de este m´etodo es la habilidad para detectar movimientos del ojo, incluso cuando ´este esta cerrado, por ejemplo, al dormir [53].

Figura 2.19: Electrones pegados sobre el rostro de una persona.

(29)

Figura 2.20: Bobina sobre el ojo colocada en un lente de contacto.

Oculograf´ıa infrarroja La oculograf´ıa infrarroja mide la intensidad de la luz infrarroja reflejada. En este m´etodo de seguimiento, el ojo es iluminado por una luz infrarroja que es reflejada en la esclera. La diferencia entre la cantidad de luz infrarroja reflejada desde la superficie del ojo, lleva informaci´on acerca de los cambios de posici´on del ojo.

La oculograf´ıa infrarroja tiene menos ruido que la electro oculograf´ıa, pero es m´as sensible a los cambios de intensidad de la luz externa. La desventaja de este m´etodo es que puede medir el movimiento del ojo solo por ±35 grados sobre el eje horizontal y ±20 grados sobre el eje vertical. Adem´as es un m´etodo invasivo, la luz debe ser colocada en un casco sobre la cabeza. La ventaja m´as importante es la habilidad para medir movimientos del ojo en la oscuridad [55]. Ver fig. 2.21.

Figura 2.21: Esta imagen ilustra un emisor infrarrojos sobre el ojo y un receptor conec-tado a un medidor.

(30)

Figura 2.22: Luz infrarroja reflejada en el ojo.

invasivos o no invasivos. Cada categor´ıa se divide en otras dos categor´ıas dependien-do del tipo de luz usada: visible o infrarroja. Los sistemas invasivos son montadependien-dos en la cabeza y son generalmente compuestos por una o m´as c´amaras [56].

Eye tracker con una sola c´amara La mayor´ıa de loseye trackers basados en video trabajan iluminando el ojo con una fuente de luz infrarroja. Esta luz produce un destello en la cornea del ojo llamada reflexi´on corneal. En la mayor´ıa del trabajo existente, el destello ha sido usado como un punto de referencia paragaze estimation. El destello cambia de lugar cuando se mueve la cabeza. Ver fig. 2.22.

Existen m´etodos m´as invasivos, en los que se coloca un casco con una c´amara apuntando al ojo para tener una imagen en alta calidad del globo ocular, luego con t´ecnicas de procesamiento de im´agenes se a´ısla el iris y la pupila. Ver fig. 2.23. Al comparar y analizar la deformaci´on del iris con respecto a una elipse es posible estimar hacia donde esta observando una persona [57]. Ver fig. 2.24. Tambi´en es posible usar c´amaras de alta calidad y resoluci´on apuntando al rostro.

Otros m´etodos propuestos utilizan una sola c´amara colocada sobre el monitor. Sesma

et al. public´o un sistema deeye tracking basado en una c´amara web que se destaca por no utilizar luces infrarrojas [58]. Estos sistemas estiman la pose de la cabeza de una persona usando una malla 3D. En [59] Matsumoto et al.propone un sistema en el cual una sola c´amara es usada para calcular y estimar la pose 3D de la cabeza y los globos oculares.

(31)

Figura 2.23: M´etodo invasivo, casco con una c´amara capturando un ojo y otra c´amara sobre la frente para obtener el campo de vis´on.

para formar un sistema de visi´on estero que permite calcular la coordenada 3D de la pupila [60]. Ver fig. 2.25. Otra alternativa es usar un dispositivo con sensores de profundidad como Kinect y generar un modelo 3D del globo ocular [61]. Ver fig. 2.26.

En situaciones en las que los ojos de una persona no son visibles, la pose de la cabeza proporciona una estimaci´on grosera de la mirada [21].

2.2.3.

Estimaci´

on de la mirada

Una rama dentro dehuman pose estimation es la estimaci´on de la mirada (visual gaze estimation).

En general los m´etodos de gaze tracking son utilizados para la escritura con los ojos para personas discapacitadas [62], terapia cognitiva y de comportamiento [63], b´usqueda visual [64], marketing [64] (ver fig. 2.27), neurociencia [65], psicolog´ıa [66] e interacci´on humano-computadora (HCI) [67], [68].

La precisi´on de la detecci´on de los ojos esta fuertemente relacionada con la estima-ci´on de la pose de la cabeza. Esta ´ultima contribuye a establecer la estimaci´on de la mirada de forma m´as precisa.

2.2.4.

Detecci´

on de rostros

La detecci´on de rostros (face detection) consiste en determinar si en una imagen arbitraria hay alg´un rostro y determinar su posici´on en el plano 2D.

(32)

Figura 2.24: Mediate la aplicacion de sucesivas t´ecnicas de procesamiento de im´agenes se a´ısla la pupila y se estima su dimensi´on.

Figura 2.25: Sistema de c´amaras estero y luz infrarroja situadas en un auto, para estimar la mirada del conductor.

• M´etodos hol´ısticos: Utilizan toda la imagen del rostro como entrada al sistema de reconocimiento, siendo ´esta la unidad b´asica de procesamiento.

•M´etodos basados en caracter´ısticas locales: Se extraen caracter´ısticas locales, como ojos, nariz, boca, etc. Sus posiciones y estad´ısticas locales constituyen la entrada al sistema de reconocimiento.

(33)

Figura 2.26: M´etodos actuales utilizan Kinect u otros dispositivos con sensores de pro-fundidad y generan un modelo 3D del globo ocular.

Figura 2.27: EyesDecide es una aplicaci´on que indica el tiempo que una p´agina web es vista. Mientras m´as tiempo pase mirando un usuario, m´as roja ser´a la zona de la pantalla. Es utilizada para conocer los intereses del usuario o evaluar si un dise˜no es correcto y la persona se fija en la informaci´on que se quiere resaltar.

Este detector se ha hecho muy popular debido a su velocidad a la hora de detectar las caras en im´agenes. Ver fig. 2.28

2.2.5.

Puntos faciales

Los puntos de referencia del rostro (o puntos caracter´ısticos del rostro) (facial landmarks) se definen como un subconjunto de puntos caracter´ısticos en el rostro, los cuales tienen un impacto en tareas como reconocimiento de rostros, detecci´on de mirada, seguimiento facial, reconocimiento de expresiones y gestos, etc.

(34)

caracter´ısti-Figura 2.28: Se puede observar una implementaci´on de detecci´on de rostros en una c´amara digital convencional.

Figura 2.29: En esta imagen se observa un conjunto de “bloques” para reconocer formas llamados Haar-like features.

Figura 2.30: En esta imagen se observa la combinaci´on de distintos clasificadores aplicados a un rostro.

cas en una imagen. Generalmente en un rostro son reconocidos entre 60 y 80 puntos. La ventaja de la t´ecnica de seguimiento basada en puntos faciales es que las defor-maciones del rostro y el movimiento de la cabeza son estimados en forma conjunta [69]. Ver fig. 2.31.

Bibliotecas de procesamiento de im´agenes

Para el desarrollo de la parte de procesamiento de im´agenes concerniente a la detecci´on de la mirada se han considerado algunas tecnolog´ıas posibles que se men-cionan en las siguientes secciones.

(35)

Figura 2.31: Los puntos rojos representan losfacial landmarks reconocidos en el rostro.

los clasificadores entrenados para el reconocimiento facial [70].

Dlib Dlib es una biblioteca OpenSource escrita en C++. Su dise˜no esta influen-ciado por la ingenier´ıa de software basada en componentes. Esto significa que es, en general, una colecci´on de componentes de software independientes. En particu-lar, contiene componentes para networking, threads, interfaces gr´aficas de usuario, estructuras de datos, ´algebra lineal, machine learning, procesamiento de im´agenes, miner´ıa de datos, optimizaci´on num´erica y redes bayesianas entre otras funciones [71].

Bibliotecas de reconocimiento de facial landmarks

A continuaci´on se presentan algunas bibliotecas relevadas para extraer facial landmarks

(36)

Figura 2.32: Demostraci´on defacial landmarks detectados con este algoritmo.

para tratar con este problema. En lugar de estimar la forma del rostro usando las caracter´ısticas extra´ıdas en el sistema de coordenadas global de la imagen, la imagen es transformada a un sistema de coordenadas normalizado basado en una estimaci´on actual de la cara, y despu´es las caracter´ısticas son extra´ıdas para predecir un vector actualizado para los par´ametros de la figura. Este proceso suele repetirse varias veces hasta converger.

Lo siguiente es c´omo combatir la dificultad del problema de inferencia. Al momento de la prueba, un algoritmo de alineamiento estima la forma que mejor coincide con los datos de la imagen y la forma del modelo. Esta t´ecnica propone utilizar una cascada de vectores de regresi´on. De esta manera, si S(t) es un conjunto de landmarks de la imagen I, siendo S(t)= (l1,l2,..,ln), donde li es una coordenada (x,y), se tiene un conjunto de vectores de regresi´on r1,r2,...rn que permiten predecir el conjunto de landmarks de la forma: S(t+1) = S(t) + r(t)(I,S(t)). Debido a que el regresor r(t) predice el nuevo S(t+1) de forma relativa al conjunto de landmarks actual, esto introduce una cierta invariancia geom´etrica. Esta invariancia permite lograr una precisi´on mayor a la lograda utilizando s´olo caracter´ısticas globales de la imagen. Cada r(t) es entrenado utilizando un m´etodo de descenso por gradiente que minimiza el error cuadr´atico medio. En la fig. 2.32 se puede ver este algoritmo aplicado a fotograf´ıas.

(37)

Figura 2.33: Facial Landmarks indicados con su correspondiente numeraci´on.

Figura 2.34: Resultados de Clandmark, El cuadrado amarillo es el rostro reconocido, el rect´angulo verde es la orientaci´on de la cabeza y los puntos rojos son losfacial landmarks

detectados.

Clandmark Clandmark es una versi´on actualmente en desarrollo de los creadores de Flandmark. El mismo utiliza un algoritmo basado en partes de modelos defor-mables (DPM) [77]. Ver fig. 2.34.

FLFLP Fast Localization of Facial Landmark Points with an ensemble of rando-mized trees utiliza una secuencia de estimadores basados en conjuntos de ´arboles de regresi´on. Los ´arboles utilizan comparaciones de intensidad p´ıxel simples en sus nodos internos y esto los hace capaces de procesar ´areas de imagen muy r´apido [78]. Ver fig. 2.35.

Aplicaciones web A continuaci´on se presentan algunas aplicaciones web que per-miten acceder a la c´amara web del equipo e implementar reconocimiento de rostros por medio de complementos del navegador.

FacePlusPlus (www.faceplusplus.com) Es una aplicaci´on web de c´odigo ce-rrado que obtiene video desde una c´amara web y retorna un JSON con los facial landmarks de todos los rostros presentes en la imagen. Tambi´en existe una versi´on

(38)

Figura 2.35: Conjunto de landmarks obtenidos con FLFLP.

Figura 2.36: Captura de pantalla de la p´agina facepluplus.com.

Xlabs Es una extension para Google Chrome que permite el seguimiento en tiempo real de un cabeza y retorna un JSON con las caracter´ısticas del rostro y la posici´on de los ojos a partir de una imagen obtenida desde la c´amara web. Ver fig. 2.37.

2.3.

Herramientas para desarrollo de aplicaciones

interactivas en linea

(39)

Figura 2.37: En verde los facial landmarks reconocidos y en rosa la posici´on de los ojos. En rojo se indican los lagrimales de los ojos.

Tecnolog´ıa Aplicaci´on

Unity Desarrollo de herramientas interactivas Phaser.io Desarrollo de herramientas interactivas Haxe Desarrollo de herramientas interactivas JSON Lenguajes para intercambio de datos YAML Lenguajes para intercambio de datos HTML5 Tecnolog´ıas para el desarrollo de sitios web CSS3 Tecnolog´ıas para el desarrollo de sitios web Bootstrap Tecnolog´ıas para el desarrollo de sitios web PHP Tecnolog´ıas para el desarrollo deweb services

(40)

Cap´ıtulo 3

etodo Propuesto

3.1.

Introducci´

on

Luego de analizar las herramientas de software mencionadas en el Cap´ıtulo 2, se lleg´o a la conclusi´on de que las mismas no satisfac´ıan las necesidades planteadas por el Hospital Italiano. Todas ellas est´an limitadas a los ejercicios programados y no pueden ser expandidas. No existe posibilidad alguna de desarrollar un ejercicio que se adapte a lo requerido por el hospital. Por otra parte, este trabajo tiene como objetivo acad´emico y pedag´ogico la implementaci´on de t´ecnicas de procesamiento de im´agenes aplicado a problemas de rehabilitaci´on, particularmente cognitiva, es por lo anterior que se decidi´o implementar un software desde cero donde se pueda representar fielmente las ideas propuestas por los responsables del servicio de Neu-rolog´ıa Cl´ınica del Hospital.

Al tener control sobre las tecnolog´ıas con las que se programa la herramienta, se puede brindar la capacidad de que la misma pueda ser soportada por distintos tipos de dispositivos. Esto posibilita, entre otras cosas, que los pacientes no tengan que trasladarse al Hospital para realizar las sesiones de rehabilitaci´on.

C´omo los usuarios de esta herramienta presentar´an diferentes discapacidades, fue una prioridad a la hora de dise˜nar la misma evitar la necesidad de un programa instalador y sistemas de configuraci´on que sean complejos. Por ´ultimo cabe destacar que el costo local de desarrollar una herramienta de este tipo es inferior al costo de una licencia de las herramientas de software disponibles en el exterior.

(41)

Figura 3.1: Diagrama que muestra las diferentes secciones y su comunicaci´on.

la posici´on de la cabeza. El objetivo de este m´odulo es brindar informaci´on a los te-rapeutas sobre el cuadrante hacia donde est´a mirando el paciente, y en base a todos estos datos analizar la evoluci´on del mismo durante el tratamiento. El tercer m´odulo comprende el desarrollo de la interfaz de configuraci´on web para los ejercicios. Por ´

ultimo, el cuarto m´odulo incorpora un servicio web que almacena y retorna los datos y configuraciones de los usuarios a la herramienta.

Todos los m´odulos de software correspondientes interaccionan entre s´ı, enviando y recibiendo informaci´on seg´un lo solicitan. En la fig. 3.1 se muestra un diagrama de los mismos y la forma de intercambiar datos.

3.2.

Ejercicios de rehabilitaci´

on cognitiva

En esta etapa se implementaron los ejercicios de rehabilitaci´on dise˜nados por los responsables del servicio de Neurolog´ıa Cl´ınica del Hospital Italiano. En los mismos se divide la pantalla en cuatro cuadrantes definidos por dos l´ıneas perpendiculares y se muestra cinco veces por cuadrante una figura de distinta forma y color en lugares aleatorios de la pantalla. Estas figuras aparecen durante un tiempo determinado y el usuario debe hacerles click al instante que las observa. Ver fig. 3.2.c

(42)

por-Figura 3.2: Capturas de pantalla de la herramienta en las cuales es posible apreciar las diferentes configuraciones posibles.

centaje de aciertos, el tiempo que demor´o en resolver todos los ejercicios y la canti-dad de clicks que hizo. En la fig. 3.2 se pueden observar capturas de pantalla de la herramienta, donde se diferencian las distintas configuraciones posibles.

3.2.1.

Decisiones de implementaci´

on

Un requisito de gran relevancia de este sistema es que los usuarios de estesoftware

son pacientes que presentan diferentes capacidades, tanto motrices como cognitivas. Como se mencion´o anteriormente, este requisito implica que el software debe tener la caracter´ıstica de ser f´acilmente instalable y configurable. Luego de considerar varias alternativas basadas en diversas tecnolog´ıas enumeradas en la secci´on 3.2.2 de este cap´ıtulo y en la secci´on A.2 del ap´endice A, se decidi´o implementar esta etapa como una aplicaci´on web.

(43)

ligero se logra la independencia del sistema operativo, as´ı como la facilidad para actualizar y mantener aplicaciones sin distribuir e instalarsoftwarea un gran n´umero de usuarios potenciales. De esta manera s´olo con ingresar a la p´agina web se est´a accediendo a la aplicaci´on deseada. Cualquier cambio requerido se actualiza por ´

unica vez en el servidor y se evita la complejidad de capacitar al paciente para que instale el software desarrollado.

3.2.2.

Tecnolog´ıas consideradas para el desarrollo

Para la implementaci´on de estos ejercicios se analizaron un conjunto de tecno-log´ıas entre ellas las m´as destacadas son Unity 3D engine, Phaser.io y Haxe.

Adobe Flash Player fue descartado ya que la mayor´ıa de los navegadores actuales lo bloquean por defecto debido a la presencia de vulnerabilidades. Tampoco tiene soporte oficial en las nuevas versiones de Android e IOS.

La ejecuci´on web de Unity es a trav´es de un plugin. El problema de este plugin

es que se requiere su instalaci´on en el navegador de la computadora lo cual a˜nade una complejidad a los usuarios a la hora de utilizar la aplicaci´on. Debido a esto fue descartado como una opci´on para este trabajo.

Con Phaser.io se realiz´o un prototipo de los ejercicios pero debido a la imposi-bilidad de crear clases con Javascript, el c´odigo se tornaba demasiado extenso y procedural a medida que aumentaba la complejidad del proyecto, dificultando as´ı su legibilidad y extensibilidad.

Despu´es de atravesar los problemas presentados anteriormente se tom´o la decisi´on de implementar el software en el lenguaje Haxe. Al ser la sintaxis de Haxe ins-pirada en Java, el tiempo de aprendizaje del lenguaje fue muy corto. Adem´as, las aplicaciones funcionan muy r´apido debido a la compilaci´on a c´odigo nativo. Por estos motivos fue elegido para desarrollar la aplicaci´on web.

3.3.

Aplicaci´

on de estimaci´

on de la mirada a trav´

es

de la posici´

on de la cabeza

(44)

misma puede ser inferida a partir de la posici´on de la cabeza [21].

Luego de testear las bibliotecas de head pose estimation mencionadas en el Cap´ıtu-lo 2 se lleg´o a la conclusi´on de que tanto CLM-Framework como Kyle McDonald Tracker no son de utilidad para la aplicaci´on de estimaci´on de la mirada propuesta en este trabajo.

CLM-Framework es una biblioteca para uso no comercial, esta basada en Dlib y actualmente se encuentra en desarrollo, fue descartada como opci´on ya que al co-mienzo de este proyecto se encontraba en un nivel de madurez bajo desde el punto de vista de la presencia de errores de c´odigo sin solucionar, con todos los problemas que eso implica. Cabe destacar que al momento de finalizar esta tesis, la biblioteca CLM-Framework alcanz´o un estado de madurez que puede ser considerado como adecuado para ser utilizado. En lineas generales, actualmente funciona de manera correcta y fluida.

La alternativa, Kyle McDonald Tracker, si bien cumple con los requisitos de fluidez para este problema, es demasiado imprecisa, ya que se puede observar que luego de un par de movimientos el seguimiento se pierde, marca una posici´on incorrecta y la mantiene hasta el momento en que reconoce otra vez un rostro y reinicia el segui-miento. El problema radica en que si el rostro esta separado de la posici´on donde qued´o la malla, el algoritmo demora en reconocer el error y volver a detectar la cara para reiniciar el seguimiento. Como se puede apreciar en la fig. 3.3. Esta biblioteca tampoco responde bien a oclusiones en algunos de los puntos de la cara.

En el Cap´ıtulo 2 se mencion´o que Sesma et al. public´o un m´etodo de eye tracking

basado en una c´amara web que se destaca por no utilizar luces infrarrojas [58]. Se decidi´o, entonces, basarse en este trabajo para desarrollar una aplicaci´on propia para estimar la posici´on de la cabeza. La idea fue intentar lograr unhead pose estimator

r´apido eficiente y robusto, que soporte oclusiones, sea f´acilmente integrable a la apli-caci´on y que sea configurable en todos sus par´ametros, por ejemplo que sea posible incorporar optimizaciones en el reconocimiento de rostros, etc. Por otro lado, a nivel acad´emico y pedag´ogico por lo general se obtiene mas conocimiento armando una herramienta desde cero que utilizar una biblioteca desarrollada por otras personas con los problemas de licencias que esto acarrea.

(45)

Figura 3.3: En esta figura se observa Kyle McDonald Tracker marcando una pose inco-rrecta (invertida es este caso).

Figura 3.4: Ilustraci´on del sistema propuesto.

un sistema en el cual una sola c´amara es usada para calcular y estimar la posici´on 3D de la cabeza y los globos oculares, pero combin´andolo con la propuesta de Sesma de emplear una c´amara de baja resoluci´on. Al utilizar im´agenes de menor resoluci´on el contorno de los ojos, el iris y la pupila se difuminan, provocando esto que sea m´as dif´ıcil poder segmentar cada uno con precisi´on [79].

Matsumoto aplica un modelo 3D flexible, como se puede apreciar en la fig. 3.5. Para esta tesis se decidi´o utilizar un modelo 3D r´ıgido ya que un modelo flexible a˜nade la complejidad extra de tener que deformar la malla para representar los gestos de la cara. La implementaci´on de un modelo flexible puede ser considerada adecuada si el objetivo de la detecci´on es su utilizaci´on en animaciones [80], [81], pero en el caso de estimaci´on de la mirada para el problema de rehabilitaci´on cognitiva carece de sentido ya que la representaci´on de los gestos no es buscada en este problema. El m´etodo implementado en este trabajo puede clasificarse como h´ıbrido, ya que combina AAM con m´etodos de seguimiento asociados a un modelo 3D r´ıgido. En la fig. 3.4 se puede ver un esquema del sistema propuesto.

(46)

1. Obtenci´on deframes capturados por la c´amara web. 2. Detecci´on del conjunto de facial landmarks.

3. Conversi´on del conjunto de puntos 2D a 3D. 4. Estimaci´on de la posici´on de la cabeza.

5. Archivo de configuraci´on del modelo y de los puntos.

Figura 3.5: M´etodo de Matsumoto, es posible apreciar varias posiciones de cabeza.

3.3.1.

Elecci´

on del entorno de desarrollo

Al trabajar con grandes vol´umenes de datos (en este caso im´agenes) uno de los requisitos para la estimaci´on de la posici´on de la cabeza es que la misma se calcule r´apidamente. Es por esto que se prefiri´o el uso de C++ por sobre otros, ya que es un lenguaje de programaci´on de bajo nivel pero con soporte a Programaci´on Orientada a Objetos.

(47)

3.3.2.

Obtenci´

on de

frames

capturados por la c´

amara web

Considerando que OpenCV provee una API para capturar video desde c´amaras o archivos, esto desliga de las responsabilidades de tener que conocer el hardware o entrar en contacto con el driver de la c´amara, lo cual permite que la aplicaci´on pueda ser utilizada en cualquier computadora con diferentes c´amaras.

A continuaci´on se adjunta un psudoc´odigo que ilustra la simplicidad para la obten-ci´on de los frames:

Algorithm 1 Obtener unframe

1: V ideoCapture cap(−1); //Abre la c´amara por defecto 2: if cap.isOpened()then

3: cap >> newF rame; //Obtiene un nuevo frame de la c´amara

4: else

5: return error;

3.3.3.

Detecci´

on del conjunto de

facial landmarks

En esta etapa se detecta el rostro del usuario utilizando la funci´on HaarCasca-de HaarCasca-de biblioteca OpenCV que implementa el framework Viola-Jones descripto en la secci´on 2.2.4 del Cap´ıtulo 2. Este algoritmo devuelve un rect´angulo donde esta contenida la cara y ser´a la entrada de la biblioteca de reconocimiento delandmarks. Como una primera aproximaci´on, se trabaj´o con la biblioteca Flandmark (ver secci´on 2.2.5 del Cap´ıtulo 2) que retorna 8 puntos faciales. El problema con esta biblioteca es que los puntos si bien permanec´ıan alrededor de una zona determinada, ´estos cambiaban mucho debido a peque˜nos cambios de iluminaci´on y ruido producido principalmente por la baja calidad de las c´amaras web. Esto trajo inconvenientes en la siguiente etapa del m´etodo propuesto (los detalles ser´an tratados en la pr´oxima etapa) y por lo tanto esta biblioteca fue descartada. Luego se estudi´o la biblioteca Clandmark, pero la ausencia de documentaci´on y manuales de instalaci´on impidi´o que pueda ser analizada con detalle en este trabajo. Otra biblioteca relevada fue FLFLP, aunque al ser un software privativo no se dispone de su c´odigo fuente y por lo tanto no pudo ser utilizado para este proyecto. Las aplicaciones web tambi´en fueron descartadas como opciones validas: Xlabs implica la instalaci´on de unplugin

para el navegador, opci´on que se contradice con lo expuesto anteriormente en la sec-ci´on 3.2, y FacePlusPlus implica enviar al servidor todos frames del video obtenido desde la c´amara web, lo cu´al es inviable para una aplicaci´on interactiva.

(48)

Figura 3.6: Un mismo rostro con diferentes tipos de oclusiones, se puede observar las distintas respuestas de la biblioteca Dlib.

Figura 3.7: Puntos elegidos para la aplicaci´on.

a juzgar por las pruebas realizadas en este trabajo, result´o ser estable y responder muy bien frente a las oclusiones, estimando con gran aproximaci´on donde deber´ıan estar los puntos no visibles. Por todas estas razones fue elegida para desarrollar la aplicaci´on de estimaci´on de la mirada. En la fig. 3.6 se puede apreciar varios ejem-plos de oclusiones en la cara.

Del total de los 68 puntos resultantes de aplicar Dlib, solo se seleccionaron 8 que permanecen fijos sin importar la expresi´on del rostro. Dos puntos indican el borde de los ojos y la boca, el extremo y el intermedio de la nariz (ver fig. 3.7 ). En la siguiente etapa se explicar´a la raz´on de seleccionar estos puntos.

Previamente a utilizar bibliotecas de reconocimiento de puntos faciales se prob´o con un m´etodo propuesto por Valentini et al. [82] que ubica una malla cil´ındrica sobre el rostro con una t´ecnica para obtener puntos aleatorios y luego seguirlos con flujo ´

optico. Frente a esta situaci´on se experiment´o con good features to track para detec-tar puntos aptos para el seguimiento. Esta t´ecnica tiene problemas ya que cuando var´ıa la iluminaci´on, los features cambian de lugar y se pierden o se mueven a una posici´on incorrecta. Se trabaj´o con distintas t´ecnicas de procesamiento de im´agenes para solucionar estos problemas pero los resultados no fueron favorables.

(49)

Figura 3.8: Un ejemplo de detecci´on de rostro. Luego el ´area donde se encuentra es utilizada como entrada del algoritmo de reconocimiento puntos caracter´ısticos.

3.3.4.

Conversi´

on del conjunto de puntos 2D a 3D

En esta etapa, se realiza un mapeo del conjunto de puntos obtenidos en la etapa anterior con un conjunto de 8 puntos seleccionados sobre una malla 3D de un modelo que representa una cabeza humana (ver fig. 3.9). Este mapeo entre los facial land-marks 2D detectados y los puntos 3D de la malla se realiza mediante el algoritmo

solve PnP [83] de OpenCV.

Este algoritmo utiliza un concepto llamado modelo de c´amara estenopeica ( pinhole-camera). En este modelo, una vista de una escena se forma mediante la proyecci´on de puntos en tres dimensiones sobre el plano de la imagen. Esta proyecci´on se realiza utilizando una transformaci´on de perspectiva. La imagen se forma como resultado de aplicar la siguiente expresi´on:

m0 =A[R|t]M0

Donde A es la matriz de par´ametros intr´ınsecos formada por las distancias focales, los cuales no dependen de la escena y por lo tanto puede ser re-utilizada siempre que no cambie la c´amara y la resoluci´on. [R/t] es la matriz de rotaciones y traslaciones de la c´amara sobre una escena fija. La misma f´ormula puede ser expresada de forma m´as completa:

    u v 1     =    

fx 0 cx

0 fy cy

0 0 1        

r11 r12 r13 t1

r21 r22 r23 t2

r31 r32 r33 t3

          X Y Z 1       D´onde:

(X, Y, Z) son las coordenadas de un punto 3D

(50)

Figura 3.9:Representaci´on de la estimaci´on de los puntos 3D de la malla (c´ırculos rojos) correspondiente a cada facial-landmark (puntos rosa).

(cx, cy) es el punto que es usado como centro de la imagen

fx, fy son las distancias focales en p´ıxeles

Dados los puntos 2D y sus correspondientes en el espacio 3D, solve PnP calcula la matriz de rotaci´on y el vector de traslaci´on descriptos anteriormente. Con esta informaci´on se debe armar la matriz [R|t] que luego se multiplica con la matriz de par´ametros intr´ınsecos obteniendo, de esta forma,A[R|t]. Por ´ultimo se multiplican todos los puntos de la malla 3D por esta matriz, quedando la malla rotada y tras-ladada en el espacio. Este algoritmo se debe aplicar por cada frame en el que se reconocen landmarks.

Como resultado de esta etapa, cuando los puntos 2D var´ıan de posici´on, es decir, si el usuario mueve la cabeza, la malla imita el movimiento. Ver fig. 3.9.

En pruebas preliminares se observ´o que si el usuario gesticula o habla durante los ejercicios, muchoslandmarks var´ıan de posici´on en un instante, afectando la correcta ubicaci´on de la malla en el espacio. La selecci´on de los 8 puntos elegidos sobre la ma-lla se realiz´o de forma tal de minimizar la variaci´on de la posici´on de los landmarks

frente a gestos o expresiones. Cabe aqu´ı repetir que por el mismo motivo se descart´o Flandmark ya que los puntos indicados por esta cambiaban constantemente de lugar y afectaban significativamente la posici´on de la malla.

3.3.5.

Estimaci´

on de la pose de la cabeza

Con el objetivo de estimar la pose de la cabeza a partir de los puntos mapea-dos en la secci´on anterior, se emple´o el siguiente mecanismo: se toma un punto p

(51)

Figura 3.10:Representaci´on de los ojos de forma cenital. El segmento inferior representa la pantalla, d representa la distancia a la que esta la persona de la c´amara, dip es la distancia interpupilar, f es la distancia focal de la c´amara, l la distancia que hay que calcular para determinar donde se encuentra q.

Figura 3.11:Representaci´on visual de la direcci´on de la mirada, el punto 3D de es mapeado a un punto 2d en rojo.

Figura 3.12: Mirada estimada so-bre el cuadrante 1.

el punto seleccionado entre medio de los ojos y el extremo de dicha prolongaci´on, denominado q. Se considera para este trabajo que el usuario est´a ubicado a una distancia focal f (entre 50 y 70 cm). Entonces, se calcula l en base a esa distancia y el ´angulo de la matriz de rotaci´on , (ver fig. 3.10). El punto q se calcula como la intersecci´on de entre el segmento mencionado anteriormente y el plano correspon-diente a la pantalla. Luego este punto en el espacio (x,y,z) es mapeado a espacio de la c´amara 2D (u,v) mediante la f´ormula u=x/z y v =y/z. Ver fig. 3.11.

Con este punto 2D, se puede hacer una aproximaci´on de la posici´on en la pantalla de acuerdo a las proporciones de la misma.

En la fig. 3.13 se puede observar como el primer plano es la resoluci´on de la c´amara y el segundo plano es la resoluci´on de la pantalla. Este m´etodo de aproximaci´on fue basado en Valenti et al. [82].

3.3.6.

Archivo de configuraci´

on del modelo y de los puntos

(52)

nativa-Figura 3.13: (a) La resoluci´on de la c´amara es mapeada a la pantalla. (b) Puntos son mapeados a la pantalla.

mente una funcionalidad para manipular este tipo de archivos. Esto evita instalar otra biblioteca para el manejo de directorios.

Primero se carga el nombre del archivo de la malla 3D que se quiere utilizar, esto brinda la posibilidad de usar cualquier malla tridimensional que se desee. Luego se almacenan la cantidad de puntos y sus coordenadas tridimensionales en el modelo. Las mismas se corresponder´an con los facial landmarks detectados en el rostro del usuario. A continuaci´on se guarda el punto que sirve para estimar la mirada. Por ´

ultimo se indican cuales son los facial landmarks elegidos. El orden de aparici´on indica c´omo se corresponden los puntos de la malla previamente elegidos.

3.3.7.

Diagrama esquem´

atico

A continuaci´on se adjunta un diagrama del funcionamiento de la aplicaci´on (ver fig. 3.16).

3.4.

Interfaz de configuraci´

on de ejercicio

Mediante la interfaz de configuraci´on de ejercicio, el m´edico es capaz de confi-gurar cada detalle de los ejercicios de acuerdo a la problem´atica del paciente y su evoluci´on en el tratamiento. La interfaz de configuraci´on de ejercicio se realiz´o con HTML5, CSS3, Javascript y Bootstrap. Se pens´o un dise˜no simple, intuitivo y mo-derno. En la fig. 3.14 se pueden apreciar todas las configuraciones disponibles para detallar los ejercicios dependiendo la enfermedad del paciente.

(53)

herramien-Figura 3.14: Interfaz del configurador de ejercicio.

ta como por el servicio web. La configuraci´on en JSON tiene el siguiente dise˜no: [{"Key":"NOMBRE DE LA CONFIG", "Value":"VALOR QUE ALMACENA"}] Por ejemplo, si se desea configurar la transparencia de las l´ıneas divisoras de cua-drantes:

[{"Key":"VisibilidadCuadrante","Value":"100"}]

Donde el valor 100 indica que son totalmente visibles y el valor 0 representa que son transparentes.

3.5.

Base de datos y servicio web

C´omo los ejercicios son implementados mediante una aplicaci´on web, las con-figuraciones particulares de cada paciente deben ser almacenadas en forma online

de tal manera de garantizar su disponibilidad en todo momento. Se utiliz´o MySQL para almacenar tanto la informaci´on de las configuraciones como los resultados de la rehabilitaci´on con los ejercicios particulares de cada paciente. La conexi´on entre la base de datos, la herramienta y la interfaz web se realiz´o mediante unweb service

(54)

Figura 3.15: Comunicaci´on entre la base de datos y las distintas plataformas a trav´es del servicio web.

(55)
(56)

Cap´ıtulo 4

Resultados

En este cap´ıtulo se muestran los resultados, tanto para la herramienta de reha-bilitaci´on cognitiva, como as´ı tambi´en para la implementaci´on de las t´ecnicas de seguimiento de mirada y la integraci´on de ambas partes.

4.1.

Resultados de la herramienta de

rehabilita-ci´

on cognitiva

Se desarroll´o una plataforma sobre la cual se implement´o una herramienta de rehabilitaci´on cognitiva que cumple con lo requerido por los profesionales del servi-cio de neurolog´ıa cl´ınica del Hospital Italiano.

Se han utilizado las tecnolog´ıas m´as actualizadas que se encuentran en el estado del arte del desarrollo de videojuegos de forma tal de asegurar una usabilidad adecuada. La plataforma se desarroll´o como una aplicaci´on web, lo permite el acceso a los pa-cientes desde sus domicilios sin necesidad de descargar e instalar programas locales. Otro beneficio de las tecnolog´ıas aplicadas es la independencia de la resoluci´on del dispositivo, lo cual permite que la plataforma pueda ser utilizada desde computado-ras personales, as´ı como desde diferentes dispositivos m´oviles.

La herramienta permite que los m´edicos puedan configurar ejercicios para sus pa-cientes, estableciendo los par´ametros de acuerdo a los requisitos solicitados.

Las m´etricas de la herramienta, tal como cantidad de clicks realizados, cantidad de aciertos en los ejercicios, medici´on de tiempos, etc., se env´ıan a trav´es de un servicio web para ser almacenados en una base de datos para su uso y an´alisis por parte de los m´edicos.

(57)

(a) Galaxy tab

(b) Nexus 5

Figura 4.1: Herramienta corriendo sobre dispositivos M´oviles: (a)Una tablet (b) Un ce-lular.

muestran capturas de pantalla sobre diferentes dispositivos.

4.2.

Resultados de la implementaci´

on del

segui-miento de mirada

Esta secci´on describe los experimentos realizados para evaluar el sistema de se-guimiento de mirada. Para el relevamiento de resultados se utiliz´o la c´amara web Genius Ilook 300 (ver fig. 4.3), una c´amara de baja calidad y resoluci´on (1.3 mega-pixels en video). La resoluci´on de las im´agenes capturadas es de 640x480 p´ıxeles. Como el objetivo acordado con los m´edicos es el seguimiento de cuadrantes sobre la pantalla, se numeraron los mismos tomando como referencia la herramienta de rehabilitaci´on cognitiva. Se utiliz´o el orden descripto en la fig. 4.2

Figura 4.2: Cuadrantes

Numera-dos. Figura 4.3: Ilook 300.

Referencias

Documento similar

 Para recibir todos los números de referencia en un solo correo electrónico, es necesario que las solicitudes estén cumplimentadas y sean todos los datos válidos, incluido el

Las manifestaciones musicales y su organización institucional a lo largo de los siglos XVI al XVIII son aspectos poco conocidos de la cultura alicantina. Analizar el alcance y

En la parte central de la línea, entre los planes de gobierno o dirección política, en el extremo izquierdo, y los planes reguladores del uso del suelo (urbanísticos y

"No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

dente: algunas decían que doña Leonor, "con muy grand rescelo e miedo que avía del rey don Pedro que nueva- mente regnaba, e de la reyna doña María, su madre del dicho rey,

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

entorno algoritmo.

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas