CONTROL DE MOUSE A TRAVÉS DE SEÑALES EOG Y …
Transcript of CONTROL DE MOUSE A TRAVÉS DE SEÑALES EOG Y …
CONTROL DE MOUSE A TRAVÉS DE SEÑALES EOG Y ALGORITMOS DE BOOSTING
DIANA CAROLINA MAHECHA ROJAS
UNIVERSIDAD DE LOS ANDES
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA
BOGOTA D.C
Enero de 2008
CONTROL DE MOUSE A TRAVÉS DE SEÑALES EOG Y ALGORITMOS DE BOOSTING
DIANA CAROLINA MAHECHA ROJAS
Trabajo de grado para optar al título de:
Ingeniera Electrónica
Asesor:
Fernando Lozano Martínez, Ph.D.
Co-Asesor:
Elkin Eduardo García Díaz
UNIVERSIDAD DE LOS ANDES
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA
BOGOTA D.C
Enero de 2008
I
A mis padres, cuyo apoyo incondicional
permitió que todo esto fuera posible.
II
AGRADECIMIENTOS
A Fernando Lozano por todos los conocimientos recibidos a lo largo de estos años y por
enseñarme que la disciplina es una parte muy importante del éxito.
A Luís Ignacio Lopera y a los trabajadores del laboratorio de Ingeniería Eléctrica y
Electrónica por la colaboración brindada.
A mis amigos y compañeros por todo el apoyo y ayuda que me dieron no solo en este
trabajo, sino en el día a día de estos 5 años que terminan de pregrado. En especial a Andrea
Espinel, Miguel Navarro y Álvaro Acuña.
A mi familia y a aquellos que participaron en las mediciones de este proyecto, por su
disposición incondicional y el tiempo invertido.
A mis padres, Blanca Rojas y Lazaro Mahecha, por su incalculable esfuerzo y por todo el
amor y la comprensión que me han dado a lo largo de mi vida.
III
TABLA DE CONTENIDOS
1 INTRODUCCIÓN ......................................................................................... 1
2 PRELIMINARES ......................................................................................... 2
2.1. Sistema Motor Ocular .......................................................................................... 2
2.1.1. Anatomía Ojo ............................................................................................... 2
2.1.2. Movilidad Ojo .............................................................................................. 3
2.1.2.1. Músculos ................................................................................................... 3
2.1.2.2. Movimientos ............................................................................................. 5
2.2. Detección de Movimientos Oculares .................................................................... 7
2.2.1. Electrofisiología............................................................................................ 7
2.2.2. Electrooculografía......................................................................................... 8
2.2.2.1. Historia ..................................................................................................... 8
2.2.2.2. Metodología y señales EOG .................................................................... 9
2.3. Aprendizaje supervisado y boosting ................................................................... 10
2.3.1. Aprendizaje supervisado ............................................................................. 10
2.3.2. Boosting ..................................................................................................... 11
3 DISEÑO E IMPLEMENTACIÓN .................................................................. 13
3.1. Adquisición Señales EOG .................................................................................. 13
3.1.1. Electrodos Superficiales .............................................................................. 13
3.1.2. Acondicionamiento de la señal .................................................................... 14
3.1.2.1. Amplificación ......................................................................................... 15
3.1.2.2. Aislamiento ............................................................................................. 16
3.1.2.3. Filtraje..................................................................................................... 18
3.1.2.3.1. Filtro Pasa Altas ................................................................................. 19
3.1.2.3.1. Filtro Pasa Bajas ................................................................................ 19
3.1.2.4. Acondicionamiento ADC ........................................................................ 20
IV
3.1.3. Digitalización y Transmisión a PC .............................................................. 21
3.1.3.1. ADC y transmisión serial ........................................................................ 21
3.1.3.2. Adaptador RS-232 ................................................................................... 23
3.2. Construcción de la base de datos ....................................................................... 24
3.2.1. Aplicación .................................................................................................. 24
3.2.1. Protocolos ................................................................................................... 24
3.2.2. Toma de datos............................................................................................. 26
3.3. Preprocesamiento .............................................................................................. 27
3.4. AdaBoost Multivariable ..................................................................................... 30
3.4.1. Algoritmos de Boosting multivariable ......................................................... 30
3.4.2. Implementación .......................................................................................... 31
3.5. Mouse Electrooculográfico basado en Boosting ................................................. 35
4 RESULTADOS .......................................................................................... 38
5 CONCLUSIONES ....................................................................................... 41
6 BIBLIOGRAFÍA ........................................................................................ 43
7 ANEXOS (CD-ROM)
7.1. Código fuente de las aplicaciones
7.2. Layout de la tarjeta de adquisición
V
ÍNDICE DE FIGURAS
Figura 2.1 Anatomía del ojo. .............................................................................................. 2
Figura 2.2 Músculos motores del ojo. ................................................................................ 4
Figura 2.3 Direcciones de movimiento del ojo y músculos asociados a ellas. ...................... 4
Figura 2.4 Ejes imaginarios existentes en el ojo.................................................................. 5
Figura 2.5 Comportamiento del ojo como dipolo. ............................................................... 9
Figura 2.6 Ubicación electrodos para análisis EOG. ......................................................... 10
Figura 2.7 Algoritmo Adaboost ........................................................................................ 12
Figura 3.1 Arquitectura del circuito de adquisición de datos EOG .................................... 13
Figura 3.2 Electrodos superficiales usados en las mediciones ........................................... 14
Figura 3.3 Configuración Amplificador de Instrumentación INA128. ............................... 16
Figura 3.4 Configuración etapa de aislamiento (ISO 124)................................................. 17
Figura 3.5 Alimentación ±VS2 del circuito después del aislamiento. ................................. 18
Figura 3.6 Función de transferencia de la etapa de filtraje pasa banda [10mHz – 35Hz] .. 18
Figura 3.7 Filtro Pasa Altas con frecuencia de corte en 10mHz ........................................ 20
Figura 3.8 Filtro Pasa Bajas con frecuencia de corte en 35Hz. .......................................... 20
Figura 3.9 Acondicionamiento de la señal al rango del ADC. ........................................... 21
Figura 3.10 Arquitectura familia PSoC CY8C27x4. ........................................................ 22
Figura 3.11 Bloques del PSOC usados en la digitalización de las señales EOG ................ 22
Figura 3.12 Configuración MAX 232. .............................................................................. 23
Figura 3.13 Aplicación para la toma de la base de datos. .................................................. 25
Figura 3.14 Esquema de los 10 protocolos implementados para la toma de datos ............. 25
Figura 3.15 Datos adquiridos en una prueba durante la realización de los protocolos de
movimientos medios. ....................................................................................................... 26
Figura 3.16 Señal adquirida por la tarjeta de adquisición de señales EOG. ....................... 27
Figura 3.17 Señal promediada. ......................................................................................... 28
Figura 3.18 Preprocesamiento del protocolo 7 de datos presentados en la Figura 3.15. ..... 29
Figura 3.19 Comportamiento de parpadeos involuntarios a través del preprocesamiento. . 30
Figura 3.20 Algoritmo débil que genera hipótesis pertenecientes a la clase de clasificadores
lineales. ............................................................................................................................ 32
VI
Figura 3.21 Algoritmo AdaBoost.MH .............................................................................. 33
Figura 3.22 Algoritmo de boosting multivariable usado ................................................... 34
Figura 3.23 Tarjeta de adquisición de señales EOG .......................................................... 35
Figura 3.24 Aplicación implementada para controlar el mouse ......................................... 35
Figura 3.25 Estructura general del software implementado (EOG_mouse) ....................... 36
Figura 4.1 Errores de entrenamiento y generalización de cada clase para 100 iteraciones . 38
Figura 4.2 Errores de entrenamiento y generalización totales para 100 iteraciones ........... 39
Figura 4.3 Errores de entrenamiento y generalización totales para 500 iteraciones. .......... 40
VII
ÍNDICE DE TABLAS
Tabla 3.1 Codificación de los movimientos a identificar con el aprendizaje...................... 32
Tabla 4.1. Comparación de porcentaje de aciertos en la clasificación de clases y total ...... 39
1
1 INTRODUCCIÓN
Actualmente el uso creciente de la tecnología, hace que sea necesario crear alternativas de
acceso a ella para ayudar a personas con diferentes grados de discapacidad motora. El
desarrollo de software asociado a estos elementos, tiende a la implementación de interfaces
gráficas (GUI’S) (1) cuyo principal acceso es el cursor controlado por el mouse. Por
consiguiente, crear una interfaz entre este control y un usuario discapacitado es un paso
muy importante para permitir su integración completa al mundo actual y al acceso a
diferentes tecnologías.
Existen distintos tipos de mouse alternativos al tradicional, cuyo desarrollo se centra
principalmente en 3 áreas: el reconocimiento de imágenes de video, el uso de elementos
físicos fáciles de manejar con partes del cuerpo diferentes a las manos y el análisis de
potenciales bioeléctricos (2)(3)(4). Como hay distintos grados de discapacidad, la opción
que brinde más comodidad al usuario debe ser la escogida y en consecuencia hay mucho
campo de acción para todas las soluciones.
En el análisis de potenciales bioeléctricos se usan diferentes técnicas para la
implementación de este tipo de interfaces (electro miografía (EMG), electroencefalografía
(EEG) y Electrooculografía (EOG)). Este trabajo se centra en el análisis EOG y además,
busca incorporar técnicas de clasificación del área de Machine Learning en el proceso. Es
así como, el objetivo principal consiste en desarrollar un sistema de control de mouse por
medio del análisis de señales EOG y la clasificación de las mismas a través de algoritmos
de Boosting Multivariable.
2
2 PRELIMINARES
2.1. SISTEMA MOTOR OCULAR
2.1.1. ANATOMÍA DEL OJO
El globo ocular es irregularmente esférico, está ligeramente aplanado de arriba a abajo y en
la parte anterior sobresale la córnea trasparente. Su peso oscila entre 7 y 8 gramos y es de
consistencia firme(5). Esta situado dentro de una pirámide muscular en la parte anterior de
la cavidad orbitaria. Tiene 2 partes, la primera está conformada por 3 membranas
concéntricas y la segunda son los medios transparentes y refringentes que encierran estas
membranas.
Figura 2.1 Anatomía del ojo. Imagen tomada de (6)
Las membranas son:
- Membrana externa: Formada por la esclerótica y la córnea. En la esclerótica se
insertan los músculos del ojo, mientras que la córnea permite el paso de la luz
además de sus funciones protectoras.
- Membrana media ó musculo-vascular: Llamada tracto uveal, consta de 3 partes: la
coroides (dos capas de vasos), la zona ciliar (se encarga de la secreción del humor
3
acuoso y de la acomodación) y el iris (Esta detrás de la cornea, tiene forma circular
y tiene un orificio central y contráctil, la pupila).
- Membrana interna – Retina: Es de naturaleza nerviosa y es en donde se captan las
imágenes por medio de foto receptores y son transportadas por el nervio óptico a los
centros corticales de la visión.
Los medios transparentes y refringentes del ojo son: la cornea, el cristalino, el humor
acuoso y el cuerpo vítreo. El cristalino es una lente biconvexa, esta por detrás del iris y es el
más importante de estos medios. El humor acuoso es un fluido claro que rellena el espacio
existente entre el cristalino y la cara posterior de la córnea. El cuerpo vítreo es una masa
gelatinosa que está colocada por detrás del cristalino y va hasta la retina.
Además de estos, también existen órganos externos que están asociados al funcionamiento
del ojo. Estos órganos aseguran las condiciones óptimas para que el ojo desarrolle sus
funciones y son: los músculos, la cápsula de Tenon, las cejas y los parpados, la conjuntiva y
el aparato lagrimal(7).
2.1.2. MOVILIDAD DEL OJO
2.1.2.1. MÚSCULOS
Existen 7 músculos en la órbita ocular que controlan el movimiento del ojo y los
párpados(5), cuya ubicación se puede apreciar en la Figura 2.2 y funcionalidad se explica a
continuación:
- Recto Superior: Es un aductor elevador (rotador interno), girar al globo del ojo de
manera que la córnea se dirige hacia arriba y un poco hacia adentro.
- Recto Inferior: Es un abductor depresor (rotador externo), moviliza la córnea hacia
abajo y un poco hacia adentro.
- Recto Interno: Es un aductor, lleva el globo ocular hacia adentro.
4
Figura 2.2 Músculos motores del ojo. Imagen tomada de (6)
- Recto externo: Es un abductor, lleva el globo ocular hacia fuera.
- Oblicuo Superior o Mayor: Es un rotador interno, un depresor y un abductor. Hace
girar al ojo de tal manera que la córnea se dirige hacia abajo y hacia fuera.
- Oblicuo Menor: Es un rotador externo, un elevador y un abductor. Está enrollado
sobre la parte interior del globo ocular y dirige la córnea hacia arriba y hacia afuera.
- Elevador del párpado superior: Es alargado, aplanado y triangular. Este músculo
dirige el movimiento del parpado superior hacia arriba y hacia atrás. La acción de
este musculo es limitada por los fascículos orbitarios.
En la Figura 2.3 Direcciones de movimiento del ojo y músculos asociados a ellas podemos
apreciar los músculos que intervienen en cada dirección de movimiento.
Figura 2.3 Direcciones de movimiento del ojo y músculos asociados a ellas. Imagen tomada de (5)
5
2.1.2.2. MOVIMIENTOS
Existen tres ejes imaginarios que cruzan el globo ocular (Figura 2.4): el vertical, el
horizontal y el antero posterior. En el eje vertical se dan movimientos de abducción
(separación) y aducción (aproximación) de la córnea hacia la línea media, producidos por
los músculos rectos y oblicuos inferior y superior. Este grupo de músculos también genera
los movimientos en el eje antero posterior, cuyos movimientos son de intorsión y extorsión
y están referenciados al polo superior de la córnea. En el eje horizontal se dan
movimientos hacia arriba y hacia debajo de la parte delantera del ojo y son generados por
los músculos rectos interno y externo. Existe también un movimiento no rotacional que es
la retracción del globo ocular hacia el interior de la órbita.
Figura 2.4 Ejes imaginarios existentes en el ojo. Imagen tomada de (8)
Los movimientos oculares son de 4 tipos(5):
- Movimientos Sacádicos: Son desplazamientos angulares muy rápidos y precisos. Se
producen usualmente para observar con detalle objetos y no requieren de un
estimulo inicial para generarse. Para realizar un movimiento sacádico es necesario
que el cerebro calcule la posición del ojo en la órbita y la del objetivo, de acuerdo a
6
la diferencia de estas dos medidas se generan órdenes motoras para cada grupo de
moto neuronas oculares.
- Movimientos Reflejos:
o Reflejo Vestibuloocular: Son movimientos que compensan los cambios de
posición lineal y angular de la cabeza para mantener constante el campo visual.
Estos movimientos están limitados porque el rango de movimiento de la cabeza
es mucho mayor que el del ojo, situación que es compensada con un
movimiento rápido (cuando el ojo se encuentra muy lejos del eje central de la
retina) en la misma dirección que el movimiento de la cabeza, que fija un nuevo
blanco visual y es seguido de movimientos lentos compensatorios. El conjunto
de estos dos movimientos se denomina nigstamo vesticular.
o Reflejo Opto cinético: Es un movimiento compensatorio cuando se desplaza
todo el campo visual. Tiene dos componentes, uno rápido en la dirección
contraria al campo visual y uno lento compensatorio en la misma dirección y
velocidad que el campo visual. Estos dos movimientos se denominan nistagmo
opto cinético.
o Reflejo Oculocervical: Es producido por los originados en los músculos del
cuello. Mantiene la vista en un punto fijo a pesar de que la cabeza se mueva.
- Movimientos de Persecución Foveal: Se encargan de conseguir una visión nítida
cuando el objetivo se desplaza sobre el campo visual y la cabeza permanece
inmóvil. Este reflejo se inicia usualmente con un movimiento sacádico para alcanzar
el objetivo y corregir errores de posición entre la imagen del objeto y la fóvea. Los
movimientos de persecución Foveal siguen la velocidad del objeto hasta 80º/s,
cuando esta velocidad es superada se sigue al objeto combinando movimientos
sacádicos de corrección, oculares y cefálicos.
- Sistema de Vergencia: Controla los movimientos lentos desconjugados en los que
los ojos se mueven en direcciones contrarias y permiten fijar los objetos a diferentes
distancias. Los movimientos de vergencia se producen cuando un objeto se aleja
7
del observador y consisten en la separación del eje antero posterior de ambos ojos.
Los movimientos de convergencia se dan cuando el objeto se acerca al observador.
2.2. DETECCIÓN DE MOVIMIENTOS OCULARES
2.2.1. ELECTROFISIOLOGÍA
La electrofisiología Ocular consiste en la detección y análisis de la respuesta eléctrica de
los ojos y de la corteza occipital y de los músculos extra oculares. Este estudio incluye los
siguientes exámenes(9):
- Electroretinografía (ERG): Es un registro gráfico de la energía eléctrica de la retina
que muestra las respuestas de la actividad metabólica de la retina frente a
estimulaciones lumínicas, multi o monocromáticas, individuales o repetitivas.
- Potenciales visuales (Occipitales evocados (PVE o POE): Es el estudio de la
energía eléctrica en la cisura calcarina del lóbulo occipital. Se realiza por medio de
la aplicación de perturbaciones eléctricas controladas.
- Electromiografía Ocular (EMG): Es la respuesta eléctrica de las fibras musculares
de los músculos extra oculares.
- Electro-Oculografía sensorial (EOG sensorial): Es el registro gráfico de la energía
eléctrica del globo ocular visto como un dipolo. Su objetivo es complementar el
estudio bioeléctrico de la retina frente a la adaptación oscuridad – luz – oscuridad.
- Electro-Oculografía cinética (EOG Cinética): Se obtiene una apreciación directa de
la movilidad ocular mediante la medición de voltajes diferenciales originados en el
dipolo ocular.
8
2.2.2. ELECTROOCULOGRAFÍA
2.2.2.1. HISTORIA
Emil du Bois-Reymond en 1849 fue el primero en reportar un potencial eléctrico asociado
con el ojo. Él realizo experimentos con peces Tench mediante electrodos no polarizables
conectados a un galvanómetro de Thompson. DuBois mostro que un punto arbitrario en la
superficie del ojo es positivo respecto a la sección transversal del ojo.
Este experimento fue repetido por Dewar y M’Kendrick (1876) y Dewar(1877) usando
diferentes animales. Ellos observaron un cambio en el potencial con la iluminación de la
retina. Holmgren también realizo estudios similares. Estas investigaciones tempranas
notaron la presencia de un potencial continuo (estable) cuando la retina no era iluminada
que se convirtió en la primera señal dependiente de la posición del ojo observada.
Meyers (1929) usando un galvanómetro de cuerda descubrió que los movimientos
verticales podían ser detectados con electrodos arriba y abajo del ojo. Jacobson (1930)
atribuyo las señales EOG a la contracción de los músculos oculares y aunque esta teoría es
errónea, su importancia radica en que él fue el primero en mencionar que la posición del
ojo podía ser obtenida con los ojos cerrados.
Kohlrausch en 1931 estudio el potencial continuo mostrando que en los vertebrados la
cornea es positiva en relación con la retina, mientras que en los invertebrados la parte
anterior del ojo es negativa. Además de esto mostro que la polaridad del potencial es
incrementada por la luz y que bajo ciertas condiciones hay cambios independientes del
potencial continuo y de iluminación.
Hasta ese momento existían 3 teorías respecto al comportamiento del EOG. Unos veían el
origen en la contracción de los músculos, otros pensaban que como los galvanómetros
tenían un flujo de corriente causado por un cambio en la resistencia inter-electrodo y
finalmente otros creían que variaba con el potencial existente entre la cornea y la parte de
atrás del ojo y que el movimiento de los ojo variaba el voltaje medido por los electrodos.
9
Entre 1935 y 1936 Mowrer demostró que la fuente de la señal EOG era el potencial
continuo existente entre la cornea y la base del ojo con una retina funcionando. El ojo se
comporta entonces como un dipolo que se mueve en un conductor de volumen no
homogéneo (la cabeza) tal como se muestra en la Figura 2.5. Con el uso de dos pares de
electrodos puestos ortogonalmente alrededor del ojo se pueden medir potenciales que son
usados para detectar la dirección de la mirada respecto a la cabeza. La polaridad de este
potencial depende del tipo del ojo y la magnitud aumenta cuando la iluminación aumenta.
(10)
Figura 2.5 Comportamiento del ojo como dipolo. Imagen tomada de (1)
2.2.2.2. METODOLOGÍA Y SEÑALES EOG
En el análisis electrooculográfico se obtiene una valoración de la movilidad ocular
mediante la medición y análisis de voltajes diferenciales alrededor del ojo. Nuestro interés
se centra en los movimientos sacádicos, ya que son los movimientos que se realizan para
observar los objetos con detalle y producen cambios notables en la señal EOG.
Para adquirir la señal electrooculografica se usan 5 electrodos como se muestra en la Figura
2.6. El electrodo A es de referencia, los electrodos B y C toman la señal generada por los
movimientos verticales y los electrodos D y E toman la señal de los movimientos
horizontales.
10
Figura 2.6 Ubicación electrodos para análisis EOG. Imagen tomada de (1)
Muchos estudios han intentado determinar la relación entre el voltaje del EOG y el ángulo
de mirada. Rafael Barea (5) realizó un amplio estudio acerca de esta señal y de sus
resultados rescatamos los siguientes:
- El valor del EOG varía entre 50 y 3500µV con un rango de frecuencias de DC-35Hz
y tiene un comportamiento lineal para ángulos entre .
- La señal se ve perturbada por otros biopotenciales como pueden ser el EEG, EMG y
las perturbaciones del sistema de adquisición. El EEG y el EMG pueden producir
errores de aproximadamente un grado.
- La forma del EOG para movimientos sacádicos es similar para cualquier persona,
por eso si se usa una normalización de los datos se puede obtener un modelo EOG
universal.
- Los movimientos sacádicos pueden detectarse en función de la derivada del EOG.
2.3. APRENDIZAJE SUPERVISADO Y BOOSTING
2.3.1. APRENDIZAJE SUPERVISADO
El aprendizaje supervisado está fundamentado en una programación por ejemplos, en donde
el algoritmo conoce la respuesta correcta a los patrones de entrada y encuentra una
11
correspondencia entre ellos, conocida como hipótesis. La hipótesis es una regla de
clasificación que asigna una etiqueta a cada elemento en el espacio de entrada. El objetivo
de esta, no es responder bien a los datos de entrenamiento, sino responder bien a nuevos
datos, por consiguiente, es necesario realizar algún tipo de validación cruzada dividiendo
los datos disponibles en datos de prueba y de entrenamiento. El desempeño de una hipótesis
es evaluado utilizando el error de generalización y el de entrenamiento, con el primero se
mide la capacidad de clasificar bien nuevos datos y con el segundo se mide la capacidad de
clasificar los datos con los que se aprende. Se debe realizar una validación cruzada para
establecer un compromiso entre ambos errores, ya que si el error de entrenamiento se hace
muy pequeño puede existir sobre ajuste a los datos de entrenamiento y no generalizar.
2.3.2. BOOSTING
Para entender el funcionamiento de los algoritmos de boosting es necesario primero definir
los conceptos de Aprendibilidad fuerte y débil.
- Aprendibilidad Débil: Determina la existencia de un algoritmo que retorna una
hipótesis para cualquier distribución sobre los datos, cuyo error es arbitrariamente
cercano a la probabilidad de etiquetar correctamente un dato adivinando (50%).
- Aprendibilidad Fuerte: Determina la existencia de un algoritmo que retorna una
hipótesis para cualquier distribución de datos, cuyo error es arbitrariamente pequeño
con probabilidad mayor a ½.
Los algoritmos de boosting toman un algoritmo débil que busca minimizar el error
empírico y a partir de llamadas iterativas a éste, generan una hipótesis fuerte.
Adaboost [8] es un algoritmo de boosting adaptativo y consiste en la creación de una
hipótesis fuerte a partir de la combinación lineal de las hipótesis débiles. Los parámetros de
esta combinación lineal son modificados en cada iteración de acuerdo al error de
12
entrenamiento de la hipótesis retornada por el aprendiz débil y de tal forma que en la
siguiente iteración del algoritmo, el objetivo sea aprender los datos en los que se equivocó
la hipótesis anterior. En este caso los errores se hallan respecto a la distribución de la
iteración t y están dados por:
[1]
Figura 2.7 Algoritmo Adaboost
T
tt
t t
t
tt
1tt
t
ititt1t
t
tt
iitDirt
t
1
iim
iii
xhα
αsignxH
12 Ztón.distribuci una sea
D que para iónnormalizac de factor un es Zdonde Z
xhyexp iDiD Actualizar
ε
ε1ln
2
1α Escoger
yxhP :error con h debil hípótesis la Obtener
D óndistribuci la usando debil hipótesis la Entrenar T 1t m
1iD rInicializa
1,-1Y y X, x dondeyx S
1
1
:Salida
Fin
hastaPara
,,:Entrada
AdaBoost
~
13
3 DISEÑO E IMPLEMENTACIÓN
3.1. ADQUISICIÓN SEÑALES EOG
Un sistema de electrooculografía debe responder a voltajes cuya amplitud está entre 50 y
3500 µV con frecuencias entre 10mHz y 35Hz. La arquitectura del sistema de adquisición
de señales EOG se puede observar en la Figura 3.1. El diseño consta esencialmente de tres
etapas:
- Transductores (Electrodos)
- Acondicionamiento de la señal
- Digitalización y Transmisión a PC
Figura 3.1 Arquitectura del circuito de adquisición de datos EOG
3.1.1. ELECTRODOS SUPERFICIALES
Para captar el electrooculograma se utiliza un conjunto de 5 electrodos superficiales de
acuerdo a la Figura 2.6. En la elección de los electrodos es importante tener en cuenta la
interferencia producida por el contacto electrodo-piel. Esta interferencia es producida
principalmente por dos factores: Los movimientos del electrodo y la impedancia de la
epidermis (capa más externa de la piel)(5).
14
Los movimientos del electrodo se pueden dar entre el electrodo y el electrolito (Gel
Conductor) ó entre el electrolito y la piel. Estas interferencias, conocidas como motion
artifact, producen fluctuaciones en la señal a frecuencias muy bajas que no se pueden filtrar
ya que contienen un alto grado de información EOG. La forma de evitar esta interferencia
es fijar el electrodo a la piel para evitar cualquier movimiento y usar electrodos que tengan
polarizaciones menores, como los de plata – cloruro de plata (Ag-AgCl)(5).
Los efectos de la impedancia de la epidermis son función de la composición, cantidad de
grasa superficial y densidad de células muertas de la piel(11). Para disminuirlos se suele
eliminar parte de la misma, en los lugares que van a estar debajo de los electrodos.
De acuerdo a esto, se usaron electrodos superficiales autoadhesivos de Ag-AgCl para
electrocardiografía pediátrica de 4 cm de diámetro (Figura 3.2), se limpio la piel con
alcohol (11) antes de ubicarlos y se aplico un gel conductor adicional al que viene con el
electrodo.
Figura 3.2 Electrodos superficiales usados en las mediciones
3.1.2. ACONDICIONAMIENTO DE LA SEÑAL
El acondicionamiento toma las señales biológicas del EOG horizontal y vertical
provenientes de los electrodos, para procesarlas y eliminar la mayor cantidad de ruidos e
interferencias, acentuando al mismo tiempo la información importante. Está conformado
por las siguientes étapas:
15
3.1.2.1. AMPLIFICACIÓN
Los voltajes dados por los electrodos son del orden de µV, por esto es necesario
amplificarlos para poder analizar y registrar la información en ellos. Para ello, se necesita
tener una etapa de amplificación inicial cuyas características permitan obtener una
ganancia alta y además buena resistencia a ruidos. Los elementos usados en este tipo de
implementación se conocen como amplificadores de instrumentación y se caracterizan por
tener alta impedancia en la entrada (del orden de G ) y baja en la salida (del orden de ),
ganancia estable y fácil de configurar, CMRR alto (mayor a 100 dB) y tensión de offset y
polarización bajas.
El CMRR se conoce como la relación de rechazo común de un amplificador y mide la
capacidad de rechazar las señales comunes a los dos canales (señal en modo común - ruido)
en relación a la preferencia de la señal diferencial en los mismos (12). Se calcula por medio
de la ecuación 1 y es preferible que su valor sea alto, entre más alto mejor.
[2]
Como los potenciales de contacto no son iguales, en la amplificación diferencial la señal
esta superpuesta a un voltaje continuo y al amplificarla, ambos componentes son
amplificados, lo cual reduce la ganancia de esta etapa ya que esta tensión podría saturar el
amplificador.
El amplificador de instrumentación seleccionado para implementar esta amplificación es el
INA128(13), cuyas principales características son:
- Alta Precisión
- Voltaje Offset: 50µV máx.
- Alto CMRR: 120 dB mín.
- Voltaje de alimentación: ±2.25V a ±18V
- Impedancia de entrada: 100G
16
- BW (-3dB): 20KHz – 1.3MHz, dependiendo de la ganancia.
- Bajo consumo de potencia
La configuración implementada se encuentra en la Figura 3.3 y su ganancia depende del
valor de la resistencia RG según la siguiente expresión:
[3]
Esta ganancia se estableció en 500 con RG = 100 . El voltaje de alimentación es ±9V
producido por 2 pilas de 9V puestas en serie.
Figura 3.3 Configuración Amplificador de Instrumentación INA128. Imagen tomada de (6)
3.1.2.2. AISLAMIENTO
Como el circuito va a estar en contacto directo con el usuario, se implementa una etapa de
aislamiento para protegerlo de posibles descargas eléctricas que puedan atentar contra su
17
bienestar. Esto se realiza con el amplificador de aislamiento ISO 124, de tal forma que
entre la alimentación de los elementos conectados a los electrodos (Amplificadores de
instrumentación INA 128) y la alimentación del resto del circuito no haya paso de
corriente. Las características del integrado usado son (14):
- Voltaje offset: 20mV
- Impedancia de entrada: 200kΩ
- Alto IMRR: 140dB a 60Hz
- Voltaje de amplificación: ± 4.5 a ± 18V
- Ganancia nominal: 1
- Impedancia de barrera al interior: 1014
Ω.
- Se comporta como un amplificador lineal para frecuencias menores a 250KHz
-
- Figura 3.4 Configuración etapa de aislamiento (ISO 124). Imagen tomada de (7)
La configuración implementada se presenta en la Figura 3.4. En donde VS1 está dado por
dos pilas de 9V en serie y VS2 proviene de una fuente dual con voltaje mayor o igual a 8V,
que es regulada por medio de los integrados LM 7805(15) y LM 7905(16) tal y como
muestra la Figura 3.5.
18
.
Figura 3.5 Alimentación ±VS2 del circuito después del aislamiento.
3.1.2.3. FILTRAJE
Como ya conocemos el ancho de banda de las señales EOG, se implementa un filtro pasa
banda entre 10mHz y 35Hz conformado por un filtro pasa bajas y un filtro pasa altas, cuyas
frecuencias de corte son los límites de la banda. Este filtraje busca eliminar posibles ruidos
en la señal producidos principalmente por el movimiento de otros músculos cercanos al
globo ocular, la red eléctrica que funciona a 60Hz y la componente continua de la señal. La
función de transferencia de la etapa de filtrado implementada se encuentra en la Figura 3.6.
Figura 3.6 Función de transferencia de la etapa de filtraje pasa banda [10mHz – 35Hz]
19
Todos los filtros aquí descritos se implementaron con amplificadores de tecnología JFET
TL084, cuyas características son (17):
- CMRR: 80-86 dB
- Baja distorsión de armónicos (0.003%) y compensación de frecuencia.
- Alta impedancia de entrada (1012
Ω)
- Bajo consumo de potencia
- Buena respuesta en frecuencia.
3.1.2.3.1. FILTRO PASA ALTAS
Este filtro se encarga de eliminar las componentes DC de la señal, generadas por la
diferencia de los potenciales de contacto en cada par de electrodos. En esta componente
continua también influyen otros factores como la luminosidad del ambiente, el estado de
ánimo del usuario y los movimientos de cabeza, cuerpo y músculos aledaños.
Se implemento un filtro de segundo orden para 10mHz (Figura 3.7) de acuerdo a las
siguientes ecuaciones:
[4]
[5]
[6]
3.1.2.3.1. FILTRO PASA BAJAS
Este filtro tiene como principal ventaja que gracias a su frecuencia de corte evita el uso de
un filtro Notch (rechaza banda) para eliminar el ruido de la red eléctrica (60Hz). Además de
esto, elimina las interferencias producidas por otros biopotenciales, principalmente por los
electromiográficos (producidos por otros músculos de la cara).
20
Figura 3.7 Filtro Pasa Altas con frecuencia de corte en 10mHz
Se implemento un filtro Butterworth pasa bajas de orden 4. El orden del filtro busca que en
60Hz exista una buena atenuación y de esta forma se pueda evitar el filtro Notch. En el
diseño se uso la herramienta FilterPro de Texas Instruments, obteniendo la configuración
mostrada en Figura 3.8.
Figura 3.8 Filtro Pasa Bajas con frecuencia de corte en 35Hz.
3.1.2.4. ACONDICIONAMIENTO ADC
Debido a que la señal a la salida de los filtros está centrada en cero, es decir, tiene valores
positivos y negativos, es necesario acondicionarla al rango del conversor análogo digital
21
que se va a usar. Este ADC solo acepta valores positivos, por eso se hace necesario subir la
señal a la mitad del rango utilizable de los amplificadores TL084. Se encontró que con la
alimentación especificada, estos amplificadores se saturan alrededor de los 4.2V, por
consiguiente se busca subir la señal a 2V. Esto se hace en dos etapas: la primera es un
seguidor de voltaje cuyo objetivo es evitar pérdidas debido a los acoples de impedancias
entre etapas; la segunda es un amplificador sumador no inversor que amplifica la señal 2.5
veces y después le suma 2V. De esta forma, aprovechamos al máximo el rango del ADC
[0,5V] teniendo en cuenta las restricciones puestas por los amplificadores operacionales. La
configuración de ambas partes se encuentra en la Figura 3.9 y la ecuación de diseño del
sumador se presenta a continuación:
[7]
En donde V1 es el voltaje después del seguidor y V2 es el voltaje de alimentación (5V). De
acuerdo a los valores de la Figura 3.9, la ganancia de V1 es 2.5 y la de V2 es 0.416.
Figura 3.9 Acondicionamiento de la señal al rango del ADC.
3.1.3. DIGITALIZACIÓN Y TRANSMISIÓN A PC
3.1.3.1. ADC Y TRANSMISIÓN SERIAL
Para la implementación de esta etapa se utilizo el chip programable PSoC (Mixed- Signal
Array with On-Chip Controller devices) CCY8C27443-24PXI de la compañía Cypress
22
Semiconductor, él cual fue programado con la ayuda de la herramienta software PSoC
Designer, disponible en forma gratuita en la página Web de la compañía(18). Estos
dispositivos incluyen bloques análogos y digitales configurables para diferentes lógicas, así
como interconexiones programables entre ellos. Su arquitectura (Figura 3.10) permite al
diseñador crear diferentes configuraciones (incluyendo periféricos si es el caso) que se
ajustan a cada aplicación individual (19).
Figura 3.10 Arquitectura familia PSoC CY8C27x4. Imagen tomada de (19)
La herramienta permite elegir los componentes más apropiados de acuerdo a las
especificaciones antes descritas. En la Figura 3.11 se muestran los bloques usados y
después se explica la funcionalidad de los mismos y la configuración implementada.
Figura 3.11 Bloques del PSOC usados en la digitalización de las señales EOG
23
- Amplificadores de Ganancia Programable (PGA1 y PGA2): Estos módulos se
utilizaron con ganancia unitaria para conectar la señal de entrada al conversor
Análogo-Digital, debido a la distribución interna de los bloques.
- Conversor Dual Análogo-Digital con resolución de 8 bits (DUALADC8): este
modulo permite el escaneo de una señal análoga y la transformación del valor de su
magnitud a una cadena de bits (BYTE). Su principal ventaja es que toma muestras
de dos señales simultáneamente y además puede ser configurado para eliminar altas
frecuencias optimizando el tiempo de integración. La salida puede ser sin signo o
en complemento a 2, la tasa de muestras varía desde 122 a 7600 mps, tiene
múltiples rangos de entrada configurables y su reloj puede ser interno o externo. Se
configuro para tomar 105 muestras por segundo en cada canal.
- UART: Establece la comunicación con el computador en forma serial. Se configuro
la transmisión de datos a 9600 Baudios.
3.1.3.2. ADAPTADOR RS-232
Para cambiar los niveles de la transmisión serial de TTL a los voltajes manejados por el
computador (bus estándar rs-232), se uso el integrado MAX232 en la siguiente
configuración:
Figura 3.12 Configuración MAX 232. Imagen tomada de (20)
24
3.2. CONSTRUCCIÓN DE LA BASE DE DATOS
Para conformar la base de datos necesaria para el entrenamiento, se implementó una
aplicación en Visual Studio.NET 2005 con VB.net como lenguaje, en la que se
programaron varios protocolos con el objetivo de registrar diferentes movimientos
sacádicos del ojo.
3.2.1. APLICACIÓN
La idea de la prueba es que el usuario, manteniendo la cabeza en el centro de la pantalla y
aproximadamente a 30cm de la misma, siga el movimiento de un indicador y en
determinados momentos realice parpadeos voluntarios. Las señales EOG producidas son
adquiridas por medio del circuito descrito en la sección 3.1 y guardadas en un archivo de
texto generado por la aplicación (Se crea un archivo de texto por cada prueba). Los datos se
guardan en pares vertical-horizontal y a cada par se le asigna un código hecho por el
programa, que corresponde al movimiento que se realiza según el protocolo que se está
corriendo y que será utilizado más adelante para el etiquetamiento de los datos.
En la Figura 3.13 podemos ver la ventana de la aplicación EOG_Mov en la que se ven las
funciones del programa. Cuenta con un menú para seleccionar el puerto serial a utilizar, un
botón de inicio y uno de parada que se encargan de la conexión al puerto y del control de la
prueba. Al oprimir Inicio, se despliega un cuadro para guardar los datos del participante
(Nombre, Edad, Código Identificación). Después de introducir los datos, se cierra este
cuadro y empiezan a correr los diferentes protocolos automáticamente, es decir, el
indicador (circulo en la parte superior izquierda) se empieza a mover por la ventana.
3.2.1. PROTOCOLOS
Se implementaron 10 protocolos buscando cubrir, no sólo la mayor cantidad de direcciones
posibles, sino también varias magnitudes de la longitud del movimiento. En la Figura 3.14
se pueden apreciar los esquemas de los mismos, en donde las figuras cuadradas representan
dos parpadeos voluntarios. Los cambios en el indicador ocurren cada segundo en los
25
movimientos y cada vez que hay un parpadeo voluntario se espera un segundo antes y
después del mismo. Una toma de datos dura aproximadamente 5 minutos y en ella se corren
todos los protocolos, empezando con los movimientos cortos (Prot. 1, 2, 3, 4), luego los
medios (Prot. 5, 6, 7,8) y finalmente los movimientos largos (Prot. 9 y 10).
Figura 3.13 Aplicación para la toma de la base de datos.
Figura 3.14 Esquema de los 10 protocolos implementados para la toma de datos
26
3.2.2. TOMA DE DATOS
La toma de datos se realizó con 20 personas entre 21 y 58 años, con ningún tipo de
discapacidad. Esto no representa ningún problema, ya que, como se ha dicho anteriormente,
la forma del EOG es similar en todas las personas y en el caso que en usuarios con alto
grado de discapacidad motora se presente algún tipo de variación considerable en la señal,
el sistema puede ser fácilmente adaptado tomando una nueva base de datos con ellos y
corriendo el algoritmo de entrenamiento con ella. En la Figura 3.1 podemos ver los
resultados de la medición de un participante para los protocolos 5, 6, 7 y 8. Se puede ver
como las señales cambian de nivel cada vez que el ojo varía el ángulo de mirada en la
pantalla y que los parpadeos voluntarios corresponden a los picos más altos de la señal
vertical.
Figura 3.15 Datos adquiridos en una prueba durante la realización de los protocolos de movimientos medios.
(Línea negra delgada: EOG_Vertical; Línea verde gruesa: EOG_Horizontal)
27
3.3. PREPROCESAMIENTO
Antes de utilizar los datos en cualquier algoritmo de aprendizaje, es necesario extraer de
ellos determinadas características sobre las cuales se va a crear la hipótesis. En este caso,
estamos interesados en detectar los movimientos sacádicos producidos por el ojo y
según(5), una forma de hacerlo es evaluando la derivada de la señal.
El preprocesamiento consiste en:
Figura 3.16 Señal adquirida por la tarjeta de adquisición de señales EOG.
1. Buscando eliminar ruidos producidos por el contacto de los electrodos y los cables
de conexión, el primer paso consiste en promediar la señal de cada canal con
intervalos de 47.61ms (cada 5 datos), obteniendo . El número de datos sobre el
cual se calculó el promedio se estableció de acuerdo a la frecuencia del ruido de la
señal original (ampliación en la Figura 3.16).
28
Figura 3.17 Señal promediada.
2. Se halla una aproximación a la derivada en cada uno de sus datos por medio de la
ecuación 8, en donde tomamos que representa el tiempo trascurrido
entre 7 datos de . Según podemos apreciar en la ampliación de la Figura 3.17 este
tiempo corresponde a la duración del cambio mínimo que se quiere detectar
(movimientos de los protocolos 1 y 2).
[8]
3. Para hacer más evidentes los cambios, se mide la energía de esta aproximación cada
3 datos conservando el signo, dado que éste es un parámetro importante a la hora de
clasificar.
4. Por último, se escoge la energía de máxima magnitud entre 5 datos consecutivos.
Los valores sobre los cuáles se realizan los pasos 3 y 4 fueron escogidos
experimentalmente, ya que eran con los que se podía condensar más información sin tener
perdidas, en el menor número de datos. En la Figura 3.18 se muestra el protocolo 8 de los
29
datos presentados en la Figura 3.15, junto con el etiquetamiento realizado gracias a los
códigos guardados durante la ejecución del programa de adquisición.
Figura 3.18 Preprocesamiento del protocolo 7 de los datos presentados en la Figura 3.15. Las flechas en la gráfica de etiquetas indican la dirección del movimiento y la estrella indica un parpadeo voluntario.
Como se quiere detectar el parpadeo voluntario como una clase, es necesario estudiar el
comportamiento de los parpadeos involuntarios. En la Figura 3.19 podemos ver resaltados
este tipo de movimientos. En general, podemos decir que los parpadeos involuntarios tienen
menor magnitud y duración que los voluntarios, por consiguiente su derivada es mucho
menor y al hallar la energía de la señal la diferencia entre ellos se acentúa aun más (última
grafica de la Figura 3.19) haciendo más fácil su diferenciación.
0 5 10 15 20 25
2
3
4
EOGVertical
Pro
medio
0 5 10 15 20 25
-5
0
5
Derivada
0 5 10 15 20 250
5
EOGHorizontal
0 5 10 15 20 25-4
-20
2
4
0 5 10 15 20 25-100
0
100
Energ
íaD
er
0 5 10 15 20 25-40
-200
20
40
0 5 10 15 20 25-100
0
100
Max
En
er
0 5 10 15 20 25-40-20
02040
0 5 10 15 20 25-1
0
1
t [s]
Etiqueta
s
0 5 10 15 20 25-1
0
1
t [s]
30
Figura 3.19 Comportamiento de los parpadeos involuntarios a través del preprocesamiento.
Después de etiquetar los datos, se dividieron por clases y se repartieron aleatoriamente en
dos grupos, uno para entrenamiento y el otro para evaluación. Cada grupo quedó
conformado con aproximadamente 2500 datos.
3.4. ADABOOST MULTIVARIABLE
3.4.1. ALGORITMOS DE BOOSTING MULTIVARIABLE
Originalmente Adaboost es un algoritmo diseñado para problemas binarios, sin embargo,
existen varios métodos para extenderlo a problemas multivariable. El más simple es
AdaBoost.M1 (21) que es muy similar al caso binario pero con un aprendiz débil
multivariable.
0 5 10 15 20 25 30 35 402
2.5
3
3.5
4
Pro
medio
Preprosesamiento Señal EOGVERTICAL
0 5 10 15 20 25 30 35 40-5
0
5
Derivada
0 5 10 15 20 25 30 35 40
-50
0
50
t [s]
Max.
Energ
Derivada
31
Existen otras aproximaciones como AdaBoost.MH y AdaBoost.M2 que crean problemas
binarios al comparar las clases entre sí. El primero pregunta para cada muestra y cada clase
posible, si la clase yl es la correcta o lo es alguna de las otras (22). El segundo plantea un
problema binario en el cual una clase es correcta y la otra no es y se pregunta cuál de las
dos clases es la correcta. La hipótesis débil proporciona un conjunto de clases posibles y la
hipótesis combinada escoge la clase que más aparece en estos conjuntos, teniendo en cuenta
que hay conjuntos que pesan más que otros (23).
Así mismo se han propuesto acercamientos usando métodos de codificación de salida, uno
de estos es AdaBoost.MO, una versión de AdaBoost.MH que corre este algoritmo con
etiquetas basadas en una matriz de codificación (código por clase) y modifica la salida de la
hipótesis final midiendo su distancia con los códigos de clase (escoge la clase cuyo código
sea más cercano a la salida) (24). Otro tipo de codificación es la propuesta por Dietterich y
Bakiri’s, conocida como EOCO. Esta codificación es usada en AdaBoost.OC que es un
caso especial de AdaBoost.M2.
3.4.2. IMPLEMENTACIÓN
El objetivo de la implementación de algún algoritmo de boosting multivariable en la
clasificación de señales EOG es tomar los datos bidimensionales entregados por el
preprocesamiento y retornar la dirección del movimiento realizado. Para esto se definen 5
movimientos básicos: arriba, abajo, derecha, izquierda y clic (parpadeo voluntario), cuya
codificación se presenta en la tabla 1.A. Por otro lado, se busca identificar movimientos
diagonales, que corresponden a combinaciones de los movimientos básicos. Estas
direcciones se encuentran codificadas en la tabla 1.B.
Debido a que cada canal de la señal EOG cambia de nivel proporcionalmente a los
movimientos realizados en su respectiva dirección y el valor de su derivada está
directamente relacionado con la magnitud de este cambio (Figura 3.15), se elige como
clasificador débil un separador lineal. Este tipo de funciones corresponden a un problema
binario, por consiguiente descartamos el uso de AdaBoost.M1. Nos queda entonces plantear
la solución creando varios problemas binarios a partir del problema multivariable.
32
Tabla 3.1 Codificación de los movimientos a identificar con el aprendizaje. En A se presentan los
movimientos básicos y en B los generados por la combinación de los primeros.
El algoritmo débil binario escogido para implementar el clasificador lineal se presenta en la
Figura 3.20. Esta función recibe un vector con los datos ordenados en cada dimensión y un
vector con las etiquetas ordenadas respecto a cada una de las dimensiones. El algoritmo
recorre cada columna de los datos de entrada y evalúa cada hipótesis i en todos los datos
calculando el error pesado (Ecuación 1). Luego compara el error de la hipótesis i, si es
mayor a 0.5 invierte la polaridad de la hipótesis y halla el respectivo error (1-errori).
Después se compara con el menor error hasta el momento y si su valor es inferior a éste, se
guarda la hipótesis i. Las hipótesis i recorren los puntos medios de los datos, es decir, es el
valor medio entre un dato determinado y el dato inmediatamente anterior a él.
Figura 3.20 Algoritmo débil que genera hipótesis pertenecientes a la clase de clasificadores lineales.
outh
Fin
hiph e e
e e Si
Fin 1y no si1;yhip x Si hipótesis la de polaridad la Invertir
)e-(1e 0.5 e Si
,e D) óndistribuci a (respecto hip de pesado error el Evaluar
1y no si1;y hip x Sixtxhip m 1t
0.51xxme rInicializa
Dyx
tout
tmin
mint
iiti
tt
t
tt
iitiantordt
ordantmin
m
iordord
:SalidaFin
hastaPara
,,:Entrada1
33
Al usar este tipo de clasificador se debe pasar al algoritmo débil cada dato xi con la salida
y(i, l) correspondiente a una columna de la matriz de codificación (Tabla 3.1). De esta
forma, para cada iteración se crean L hipótesis débiles, una en cada dimensión de la salida,
en donde L es el número de dimensiones. Este tipo de razonamiento corresponde a la
pregunta que se hace AdaBoost.MH, ya que al tomar cada columna de Y como una clase,
nos estamos preguntando si la clase Yl es la correcta o si lo es alguna de las otras clases.
Además de esto, este algoritmo sirve para datos que tienen más de una etiqueta, por
consiguiente podríamos reconocer los movimientos diagonales planteados en la Tabla 3.1.B
El seudo código de AdaBoost.MH se presenta en la Figura 3.21.
Figura 3.21 Algoritmo AdaBoost.MH
En los problemas multivariable, la exigencia de exactitud del algoritmo débil es mucho más
alta que en los problemas binarios(23). Al evaluar la hipótesis débil con AdaBoost.MH
intentando maximizar rt, propósito del aprendiz débil (24) para esta aproximación
T
tt
t t
t
t
1tt
t
ittt1t
t
tt
m
i
L
littt
L
1l
lt
1
i
iim
iii
lxhα
αsignlx,H
r-1 Ztón.distribuci una sea
D que para iónnormalizac de factor un es Zdonde Z
lxhliYexp liDliD Actualizar
r-1
r1ln
2
1α Escoger
lxh liYliDr Calcular
xh debil hípótesis la Obtener
D óndistribuci la usando debil hipótesis la Entrenar T 1t mL
1iD rInicializa
Y de Columnas clases de Número :L
Y X, x dondeYx S
1
2
1 1
1
, :Salida
Fin
,,,,
,,,
hastaPara
,,:Entrada
MH.AdaBoost
34
multivariable, se encontró que el algoritmo débil usado no tiene el nivel de precisión
requerido y por consiguiente el comportamiento del aprendiz fuerte no es el esperado.
Como la hipótesis débil corresponde a la geometría de las señales EOG, se realiza una
adaptación del algoritmo AdaBoost presentado en la Figura 2.7, cuya exigencia a la
hipótesis débil es menor, a la lógica usada por AdaBoost.MH. En esta versión se crea una
distribución D para cada clase de datos y se actualizan los valores de y de acuerdo a
AdaBoost. El resultado es el seudo-código presentado en la Figura 3.22 Algoritmo de
boosting multivariable usado, que corresponde al algoritmo implementado en la
clasificación de las señales EOG.
Figura 3.22 Algoritmo de boosting multivariable usado
Debido a simplicidad de la codificación de clases escogida no es necesario establecer otro
tipo de códigos de salida para implementar los métodos usados en AdaBoost.MO ó
AdaBoost.OC.
T
tt
t t
t
tt
1tt
t
ittt1t
t
tt
iitDirt
lt
1
i
iim
iii
lxhα
αsignlx,H
l12 Ztón.distribuci una sea
D que para iónnormalizac de factor un es Zdonde Z
lxhliYexp liDliD Actualizar
l
l1ln
2
1lα Escoger
yxhPl
:error con xh debil hípótesis la Obtener
D óndistribuci la usando debil hipótesis la Entrenar L 1 l
T 1t m
1liD rInicializa
Y de Columnas clases de Número :L
Y X, x dondeYx S
1
1
, :Salida
FinFin
,,,,
hastaParahastaPara
,
,,:Entrada
~
35
3.5. MOUSE ELECTROOCULOGRÁFICO BASADO EN
BOOSTING
La solución final del mouse electrooculográfico consta de dos etapas:
Tarjeta de adquisición de señales EOG:
Figura 3.23 Tarjeta de adquisición de señales EOG
Aplicación EOG_mouse:
Figura 3.24 Aplicación implementada para controlar el mouse
El funcionamiento de la tarjeta de adquisición se describe en la sección 3.1 y el desarrollo
de la aplicación EOG_mouse se explica a continuación:
36
Figura 3.25 Estructura general del software implementado (EOG_mouse)
- RX Serial: Se encarga de la recepción de los datos provenientes de la tarjeta de
adquisición. Organiza los datos en parejas (Medición Vertical, Medición
Horizontal).
- Preprocesamiento de los datos: Consiste en el algoritmo descrito en la sección 3.3
pero en vez de recorrer un vector, procesa secuencialmente los datos entregados
por el modulo 1.
- Hipótesis Boosting: Es la hipótesis combinada obtenida del algoritmo de boosting
implementado (Figura 3.22). La hipótesis se carga al iniciar la aplicación desde
archivos de texto a vectores. Se implementó un algoritmo para evaluar esta
hipótesis con cada par de datos procedentes del preprocesamiento, dando como
resultado un vector con 5 posiciones que representa el movimiento detectado.
- Acciones mouse: En esta etapa se identifican los movimientos realizados usando la
Tabla 3.1 y de acuerdo a ellos se utilizan rutinas basadas en la librería user32 de
Windows, disponibles en Visual Studio y en internet (25), para mover el cursor y
simular el clic. Las rutinas usadas se muestran a continuación:
o Movimiento cursor
xx = Windows.Forms.Cursor.Position
RX SERIAL
PROMEDIO
(De 5 Datos de X)
DERIVADA
(Cada 7 Datos X1)
ENERGÍA _ SIGNO
(De 3 datos de D)
MAXIMA ENER.
(Entre 3 Datos E)
X1X
D
E
PREPROCESAMIENTO
HIPOTESIS
BOOSTINGDECODIFICACION
MOVIMIENTO
5
RUTINAS
MOVIMIENTO
Puerto
Serial
Cursor
ACCIONES MOUSE
RX SERIAL
PROMEDIO
(De 5 Datos de X)
DERIVADA
(Cada 7 Datos X1)
ENERGÍA _ SIGNO
(De 3 datos de D)
MAXIMA ENER.
(Entre 3 Datos E)
X1X
D
E
PREPROCESAMIENTO
HIPOTESIS
BOOSTINGDECODIFICACION
MOVIMIENTO
5
RUTINAS
MOVIMIENTO
Puerto
Serial
Cursor
ACCIONES MOUSE
37
xx.Y += corrimiento
xx.X -= corrimiento
Windows.Forms.Cursor.Position = xx
o Click
xx = Windows.Forms.Cursor.Position
SetForegroundWindow(WindowFromPoint(xx))
SendMessage(WindowFromPoint(position),Button.WM_LBUTTONDOWN,0, 0)
SendMessage(WindowFromPoint(position), Button.WM_LBUTTONUP, 0, 0)
38
4 RESULTADOS
El algoritmo de boosting multivariable escogido en la sección 3.4.2 se corrió inicialmente
100 veces obteniendo los resultados de las Figuras Figura 4.1 y Figura 4.2. En la Figura
4.1se realiza la comparación del error de entrenamiento y generalización en cada clase por
separado. Podemos ver que en general, no hay ninguna clase que sea más difícil de
aprender que la otra, ya que todas llegan a errores muy bajos a medida que aumenta el
número de iteraciones. La clase con más precisión en generalización es la 5 (99.76%), lo
cual tiene sentido, ya que el comportamiento de sus valores es diferente al resto.
Figura 4.1 Errores de entrenamiento y generalización de cada clase para 100 iteraciones
En la Figura 4.2 se puede apreciar el comportamiento del error total. Este error, se evalúa
comparando el vector conformado por la respuesta de la hipótesis final de cada clase, con el
vector completo de Y. El error decrece aproximadamente en forma exponencial, principal
característica de los algoritmos basados en AdaBoost, ya que a medida que aumentan las
iteraciones la hipótesis final se vuelve más fuerte. Aunque el error de entrenamiento no
10 20 30 40 50 60 70 80 90 100
0.01
0.02
0.03
Errores de entrenamiento y generalización para cada clase
Cla
se 1
AR
R
0 10 20 30 40 50 60 70 80 90 1000.008
0.01
0.012
Cla
se 2
AB
0 10 20 30 40 50 60 70 80 90 1000
0.05
Cla
se 3
DER
0 10 20 30 40 50 60 70 80 90 1000
0.02
0.04
Cla
se 4
IZQ
0 10 20 30 40 50 60 70 80 90 1000
0.01
0.02
Iteraciones
Cla
se 5
CLIC
K
errEntr.
errGen
39
llego a cero, si llego a un valor muy bajo (3.4%), mientras que el error de generalización
llego al 4.59%.
Figura 4.2 Errores de entrenamiento y generalización totales para 100 iteraciones
En la Tabla 4.1 se presenta una comparación entre la precisión de cada clase y del
clasificador total para 100 iteraciones. Como se puede apreciar los resultados son bastantes
buenos, considerando que 100 es un número bajo con relación al número de entrenamientos
que se suelen hacerse en boosting (500-1000). Esto evidencia que el algoritmo débil
presenta muy buenos resultados cuando se usa para minimizar el error pesado, que son
potencializados por la aplicación del boosting.
Clases
Aciertos 1 2 3 4 5 Total
Ent. [%] 98.56 99.15 98.92 98.74 99.77 96.55
Gen.[%] 98.08 99.10 98.68 91.61 99.76 95.41
Tabla 4.1. Comparación de porcentaje de aciertos en la clasificación de clases y total
0 10 20 30 40 50 60 70 80 90 1000.03
0.04
0.05
0.06
0.07
0.08
0.09
0.1
0.11
0.12Error de entrenamiento y generalización Total
Iteración
ErrorGen.
ErrorEnt.
40
En la Figura 4.3 se presentan los resultados para 500 iteraciones del algoritmo de boosting
implementado. Podemos ver que el punto mínimo de ambos errores se da en 271
iteraciones (4.2% para generalización y 2.96% para entrenamiento), a partir de este valor,
aunque el error de entrenamiento sigue decreciendo, el de generalización empieza aumentar
lo cual indica que las hipótesis combinadas resultantes se sobre ajustan a los datos. De
acuerdo a la validación cruzada descrita, se escoge como hipótesis combinada final la
lograda en la iteración 271.
Figura 4.3 Errores de entrenamiento y generalización totales para 500 iteraciones.
Aunque hay varias aplicaciones de este tipo y diferentes estudios en torno al tema, muy
pocos dan claridad acerca de los métodos de clasificación usados y más aún, de la
efectividad porcentual de los mismos en una base de datos considerable. Al comparar los
resultados descritos anteriormente, con la implementación de un mouse que usa señales
EMG y redes neuronales (11) que reporta errores inferiores al 5%, se observa que el
sistema de clasificación implementado es altamente competitivo.
0 50 100 150 200 250 300 350 400 450 5000.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0.1
0.11
0.12
X: 271
Y: 0.02966
Error de entrenamiento y generalización totales para 500 iteraciones
Iteraciones
X: 271
Y: 0.042
errGen
errEnt
41
5 CONCLUSIONES
En este trabajo se desarrolló un prototipo de control de mouse como una forma alternativa
de acceder a diferentes tecnologías orientada a usuarios discapacitados, que busca mejorar
su capacidad para desenvolverse libremente en el mundo actual.
En el desarrollo del sistema de control propuesto, se analizaron características importantes
de las señales EOG y los requerimientos necesarios para desarrollar un adecuado hardware
e instrumentación (electrodos) que permitan su digitalización. Además de esto, se realizó
un nuevo acercamiento al análisis EOG, partiendo de algoritmos de boosting multivariable
para la clasificación de las señales.
El preprocesamiento de los datos logró no sólo identificar los movimientos sacádicos sino
también condensar su información en muy pocos datos, de tal forma que se pudo asociar
muy pocos datos a un solo movimiento, sin perder mucha información en el proceso.
El algoritmo de Boosting Multivariable implementado permitió encontrar una hipótesis
buena, que no se sobre ajusta a los datos y permite tener generalización. Además, debido a
la codificación elegida se pueden tomar las salidas directas de la hipótesis y mediante ellas
generar los comandos de movimiento del cursor, sin necesidad de decodificarlas con otro
algoritmo.
AdaBoost.MH y en general los algoritmos de boosting multivariable requieren una
hipótesis débil con una precisión considerable para clasificar con éxito señales EOG.
42
En comparación con otros acercamientos al tema, la solución propuesta en este trabajo es
altamente competitiva.
Quedan planteados como trabajos futuros la implementación del resto de funciones de un
mouse convencional, además del diseño de algún tipo de máscara que haga más amigable la
interacción del usuario con el control. También hay que realizar pruebas de validación
adicionales con un grupo considerable de personas, preferiblemente que presenten algún
tipo de discapacidad. Desde el punto de vista del aprendizaje, se puede buscar implementar
AdaBoost.MH u otro algoritmo multivariable de los aquí presentados, con diferentes
hipótesis débiles que aseguren su funcionamiento y así poder comparar el funcionamiento
de los diferentes algoritmos en la clasificación de señales EOG.
43
6 BIBLIOGRAFÍA
1. Barea, Rafael y Otros. Diseño de un ratón electrooculográfico para el control de
Interfaces Gráficos. [En línea] http://www.depeca.uah.es/personal/barea/-
electrooculografia/saaei00_raton.pdf.
2. Gips, James y otros. Eagle Eyes Project - Boston College. [En línea] http://www.-
bc.edu/schools/csom/eagleeyes/contact.html.
3. Gips, James y Betke, Margrit. CameraMouse.org. [En línea] http://www.camera-
mouse.org/index.html.
4. Technologies, Brain Actuated. Cyberlink - Brainfingers: Hands-free Computer Access
Solution. [En línea] http://www.brainfingers.com/.
5. Barea Navarro, Rafael. Interfaz Usuario-Maquina basado en electrooculografía.
Aplicación a la movilidad. Universidad de Alcalá. Madrid, España : s.n., 2001. Tesis
Doctoral. Disponible en: http://www.depeca.uah.es/personal/barea/tesis/tesis.htm.
6. Microsoft corporation. Enciclopedia Microsoft Encarta 2007.
7. Cadena Camacho, Dario. Manual de Anatomía Humana. Bogota, Colombia : s.n., 1984.
Vol. 2.
8. Kaufman, Paul. Adle's physiology of the eye: clinical application. St. Louis. Mo :
Mosby : s.n., 2003.
9. Rodriguez Vásquez, Francisco y Arenas Archila, Eduardo. Oftalmología básica. 2. s.l. :
Sociedad Colombiana de Oftalmología, 199.
10. Geddes, Leslie Alexander. Principles of applied biomedical instrumentation. New
York : John Wiley & Sons, 1975.
44
11. Huertas, Zulma Y. Sistema de control de mouse mediante señales electromiográficas
faciales. Universidad de los Andes, Colombia. 2007. Tesis Maestría.
12. Sedra, Adel y Smith, Kenneth. Microelectronic Circuits. New York : Oxford University
Press, 2004. pág. 81.
13. Burr-Brown. Datasheet INA 128. [En línea] http://www.ortodoxism.ro/-
datasheets/BurrBrown/mXrttty.pdf.
14. Burr-Brown. Datasheet ISO 124. [En línea] http://www.ortodoxism.ro/-
datasheets/BurrBrown/mXtwuxx.pdf.
15. Fairchild Semiconductor. Datasheet LM7805. [En línea] http://www.ortodoxism.ro/-
datasheets/fairchild/LM7805.pdf.
16. National Semiconductor. Datasheet LM7905. [En línea] http://www.national.com/-
mpf/LM/LM7905.html.
17. Texas Instruments. Datasheet TL084. [En línea] http://www.ortodoxism.ro/-
datasheets/texasinstruments/tl084.pdf.
18. Cypress Semiconductor. [En línea] http://www.cypress.com/.
19. Cypress Semiconductor. Datasheet PSoC CY8C27443,. [En línea] http://www.cy-
press.com/products/index.jsp?fid=24&rpn=CY8C27443.
20. Carletti, Eduardo. Comunicación MAX 232 Conversor TTL - RS232 - Robots
Argentina. [En línea] http://robots-argentina.com.ar/Comunicacion_max232.htm.
21. Freund, Yoav y Schapire, Robert E. A decision theoretoc generalization of on-line
learning and a application to boosting. Journal of Computer and System Sciences. 1997,
Vol. 55, 1, págs. 119-139.
22. Schapire, Robert E. A Brieft Introduction to Boosting. Proceeding of the Sixteenth
International Join Conference on Artificial Intelligence. 199.
45
23. Schapire, Robert E. Using Output code to boost multiclass learning problems. Machine
Learning: Proceedings of the Fourteenth International Conference. 1997, págs. 313-312.
24. Schapire, Robert E y Singer, Yoram. Improved boosting algorithms using confidence-
rated predictions. Machine Learning. 1999, Vol. 37, 297-336.
25. Los foros del Guille. [En línea] http://foros.elguille.info/Mensajes.aspx?ID=22261.