Movimiento ocular por medio de inteligencia artificial

Anuncio
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
[email protected] (mailto:[email protected])
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
Descargar