Movimiento ocular por medio de inteligencia artificial "Es aquí en donde las técnicas de inteligencia artificial ayudan a representar un proceso complejo de una manera más sencilla logrando una muy buena aproximación a la realidad y sin la necesidad de un experto." - Mauro Aja Prado, Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Ciudad de México El Reto: Describir el movimiento del ojo humano mediante la creación de un modelo aproximado que permita una compresión clara de la acción de los músculos involucrados en el movimiento ocular, esto con fines no solo didácticos sino incluyéndose en el ámbito de la robótica. Lea el Caso de Estudio Completo La Solución: Se construyó un modelo a escala del ojo humano accionado por válvulas proporcionales y músculos de aire para imitar los movimientos oculares. Se implementaron técnicas de inteligencia artificial y control avanzado mediante la herramienta de LabVIEW, al igual que una tarjeta de adquisición para integrar el sistema. Autor(es): Mauro Aja Prado - Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Ciudad de México Roberto Guerrero Zurita - Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Ciudad de México Pedro Ponce Cruz - Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Ciudad de México Introducción: El movimiento del ojo humano se da por medio de la acción de seis músculos extraoculares. Debido a la geometría del ojo y de la forma en que este se mueve hacer un análisis mecánico de este resulta muy complejo y por lo tanto se pueden cometer errores muy fácilmente al tratar de modelarlo. Por la misma razón resulta muy difícil explicar y comprender como se dan estos movimientos. Sin embargo, existen técnicas de inteligencia artificial que permiten traducir reglas lingüísticas en un control adecuado que permitan crear un modelo muy aproximado al real. Descripción de la Aplicación: El ojo es el órgano de la visión y se encuentra localizado en las cavidades orbitarias. El movimiento ocular se debe principalmente a la acción de los seis músculos extraoculares que se mencionan a continuación: Recto superior, recto inferior, recto medial (o interno), recto lateral (o externo), oblicuo superior y oblicuo inferior. Todos estos músculos extraoculares con excepción del oblicuo inferior tienen su origen en un punto en común conocido como “Anillo de Zinn”. El problema que se presenta con modelar el movimiento del ojo humano es que se requiere de expresar muchas ecuaciones que no serian entendibles por un experto en el ámbito, un oftalmólogo, para checar su validez. Por lo tanto no se puede obtener información detallada del movimiento real del ojo. Para esto se recurrió a la inteligencia artificial, ya que nos permite traducir esta serie de ecuaciones en reglas lingüísticas capaces de ser entendidas por el experto y quien lo modela. Las reglas lingüísticas consisten solo en expresiones de tipo: si el ojo se mueve “mucho” a la derecha entonces determinado musculo se mueve “poco”. Estas reglas permiten crear un sistema experto el cuál se entrena para que se comporte tal y como el experto humano lo indica. Para poder modelar el sistema se recurrió al uso de la lógica difusa y las redes neuronales en lo que se conoce como un sistema ANFIS (Adaptave-Network-Based Fuzzy Inference System). Para entender el funcionamiento de dicho sistema primero se explicará el uso de la lógica difusa. La lógica difusa utiliza las expresiones de uso común en nuestro lenguaje como poquito, mucho, muchísimo, casi nada, etc. Estas expresiones representan lo que se conoce como funciones de membresía. Estas funciones de membresía son las que le dan un nivel de pertenencia a las entradas. El nivel de pertenencia se refiere a un valor que va de 0 a 1 e indica que grado de validez tiene para cada función de membresía, entiéndase como, que tanto pertenece la entrada a las funciones de “poquito” y “muy poquito”. A éste proceso se le llama fusificación y se obtienen variables difusas para cada entrada. El sistema se modela con un conjunto de reglas de tipo: si A entonces B. En estas reglas también se pueden usar los operadores lógicos AND, OR y NOT. El siguiente paso se le conoce como defusificación que consiste en obtener variables analógicas o valores nítidos a partir de una variable difusa. Esto se logra con un método de inferencia de mínimos y máximos. Con los valores nítidos se calcula el peso de cada uno con respecto a la suma de todos. Esto se representa como el centro de masa del área debajo de las funciones de membresía. La teoría y modelado de las redes neuronales está inspirada en la estructura y funcionamiento de los sistemas nerviosos, donde la neurona es el elemento fundamental. Esta similitud radica en que las señales que llegan a la sinapsis son las entradas a la neurona; las cuáles son ponderadas, ya sea atenuadas o simplificadas a través de un parámetro denominado peso asociada a la sinapsis correspondiente. Las señales excitan a la neurona con un peso positivo o la inhiben con un peso negativo. Dándose una situación de todo o nada donde cada neurona se activa o no se activa. Las redes neuronales artificiales (RNA) reproducen este comportamiento simplificando así la cantidad de información que se dispone al ser excesiva o bien redundante. Cada entrada a la neurona tiene un efecto aditivo, por lo que es la suma del producto de cada señal individual por el valor de la sinapsis que conecta ambas neuronas, llamada red de propagación. Se utiliza una matriz W con los pesos que modifican el comportamiento de cada neurona. El aprendizaje se da debido a la modificación de comportamiento inducido por la interacción con el entorno y como resultado de experiencias que conduce al establecimiento de nuevos modelos de respuesta a los estímulos. De manera análoga las RNA simulan el conocimiento cambiando los pesos de las conexiones entre neuronas. Los sistemas ANFIS combinan el uso de redes neuronales artificiales con técnicas de lógica difusa para realizar el sistema de inferencia artificial. Es una arquitectura que es funcionalmente equivalente a una base de reglas difusas de tipo “Sugeno”, por lo que permite sintonizar las reglas existentes con un algoritmo de aprendizaje basado en la recolección de datos de entrenamiento, optimizando la base de reglas, adaptándose a su entorno. Los ANFIS utilizan las redes neuronales para optimizar por medio del entrenamiento los coeficientes de las funciones de membresía, esto en lugar de modificar los pesos de la matriz W en la red neuronal. El sistema usado en el proyecto es un ANFIS con dos entradas y una salida. Estas dos entradas son las coordenadas X y Y en las que se mueve el ojo. Se utilizaron tres funciones de membresía de tipo triangular para cada eje. Para entrenar el sistema se investigó el porcentaje de elongación de cada músculo para cada movimiento. A partir de estos datos se normalizaron los valores escogiendo los mínimos que representa la máxima contracción y valores máximos representando el máximo estiramiento de cada músculo fijando el valor más grande como valor unitario. Con ayuda de la librería Anfiseditor del software de MatLab se generó la red ANFIS fijando el número y forma de las funciones de membresía. Se utilizó el método de “backpropagation” con un error máximo de 5% permitido. Los resultados arrojaron 9 reglas cuyos resultados arrojan igual número de funciones de salida de tipo “Singleton” donde finalmente por medio de una función centro de masa se obtiene un valor de salida nítido. El sistema inteligente se programó con el software LabView debido a su facilidad de conexión con tarjetas de adquisición y su fácil forma de programación de manera gráfica. De manera más clara se puede explicar la red neuronal tipo ANFIS con el siguiente diagrama de la Figura 1. Como se muestra en la capa 1 se encuentran las funciones de membresía, las cuales son adaptables. En la capa 2 y 3 se encuentra la lógica de reglas sugeridas para obtener la pertenencia mínima así como su debida normalización, obteniendo sus respectivos pesos. En la capa 4 tenemos las funciones de salida adaptables que permiten que la suma nos de la función del músculo deseado. En la capa 5 por último se realiza la suma de funciones, haciendo que su comportamiento sea al de un sistema de tipo “Sugeno”. Para la implementación se creó un modelo del ojo derecho a escala de 5:1 utilizando músculos de aire para su movimiento. Los músculos de aire están hechos con termofit de 3/8” envueltos con tela, sellados con un tornillo por un lado una manguera de 1/4” por el otro. Al momento de pasar aire a presión por la manguera el músculo se estira, haciendo que se mueva el ojo dependiendo de qué músculo representa y su elongación alcanzada. Por medio de una tarjeta de adquisición de datos NI USB 6009 mandamos por sus salidas analógicas el nivel de voltaje representante de las salidas nítidas del sistema 1/4 www.ni.com una tarjeta de adquisición de datos NI USB 6009 mandamos por sus salidas analógicas el nivel de voltaje representante de las salidas nítidas del sistema ANFIS. Este voltaje activa una válvula proporcional. Se usan válvulas proporcionales FESTO 167078 de 5/3 vías las cuales regulan el paso del aire proporcionalmente hacia los músculos de aire. La acción de las válvulas en conjunto generan el movimiento del ojo a la posición indicada por la posición angular deseada en X y Y de la interfaz gráfica del programa. A continuación se describe el programa por partes a grandes rasgos: En el primer bloque de la Figura 2 se obtiene la posición en grados, para X de -30° a 30° y para Y de 0° a 30°. En la etapa marcada por el segundo bloque se encuentran los músculos programados. En el siguiente la salida, dando un valor nítido para cada musculo. En el último recuadro se tiene la salida a la tarjeta de adquisición. La cual genera un valor de 0 a 5 volts por sus salidas análogas que para las válvulas proporcionales son 0, completamente abierta y 5 v completamente cerrada. En el primer bloque se muestra el recuadro donde recibe los valores de posición. El segundo bloque muestra las funciones de membresía, 3 para la posición en X y 3 para Y. El tercer bloque se genera un valor numérico difuso de su pertenencia en cada una de la funciones de membresía. En el cuarto bloque se obtiene el centro de masa al sumar y multiplicar los valores constantes generados por MatLab durante el entrenamiento por medio de las siguientes ecuaciones: Donde i=1,2 wi es la pertenencia generada en las funciones de membresía y fi es la función de salida constante que se utilizó. En el quinto bloque se muestra la salida numérica que representa la elongación muscular. A continuación en la Figura 4 se describe la programación de las funciones de membresia de tipo triangular usadas. Las funciones triangulares se hacen por los valores α, β y γ generados por el ANFIS en MatLab. El primer bloque obtiene la posición deseada a la cual encontrar su valor de pertenencia. El segundo bloque es la lógica de activación, el cual activa cada una de las ecuaciones para calcular de la función triangular. En el tercer bloque devuelve un valor de 0 para cuando el valor es menor o menor a los valores de α y γ. Las dos funciones de en medio calculan su pendiente positiva y su pendiente negativa. En el tercer bloque se compara las pertenencias escogiendo su mayor pertenencia, siendo así en el valor difuso. Todas las funciones de membresía se generaron de la misma manera, cambiando únicamente los valores α, β y γ correspondientes a cada función. Finalmente presentamos la interfaz gráfica del usuario en la Figura 5. En esta se observan dos perillas que al moverlas regresan los valores en grados de X y Y. Se muestran barras con el porcentaje de elongación para cada músculo. Por último se muestra la imagen del ojo derecho que se posiciona en cada una de las 6 posiciones logradas dependiendo de los valores en X y Y. Conclusión: Representar fielmente el movimiento del ojo humano mediante un análisis vectorial o mecánico resulta sumamente complicado por la complejidad del sistema de visión que los seres humanos tenemos. Sin embargo, resulta mucho más sencillo entender cómo se produce este movimiento al hablar de un movimiento muscular grande o pequeño. Es aquí en donde las técnicas de inteligencia artificial ayudan a representar un proceso complejo de una manera más sencilla logrando una muy buena aproximación a la realidad y sin la necesidad de un experto. De esta forma se puede ayudar a estudiantes del área de medicina a comprender de una forma más simple el movimiento ocular. Información del Autor: Mauro Aja Prado Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Ciudad de México Calle del Puente No. 222, Col. Ejidos de Huipulco. México 14380 México Tel: 52 (55) 55527057 ajama87@gmail.com (mailto:ajama87@gmail.com) Figura 1. Diagrama de Bloques Redes Neuronales Tipo ANFIS. 2/4 www.ni.com Figura 2. Diagrama de Bloques del Programa General Ojo Derecho Artificial. Figura 3. Bloque de programa de elongación muscular artificial. 3/4 www.ni.com Figura 4. Control de una función de membresía tipo triangular. Figura 5. Interfaz gráfica. Legal Este caso de estudio (este "caso de estudio") fue desarrollado por un cliente de National Instruments ("NI"). ESTE CASO DE ESTUDIO ES PROPORCIONADO "COMO ES" SIN GARANTÍA DE NINGUN TIPO Y SUJETO A CIERTAS RESTRICCIONES QUE SE EXPONEN EN LOS TÉRMINOS DE USO EN NI.COM. 4/4 www.ni.com