RECONOCIMIENTO DEL LENGUAJE DE GESTOS MANUALES
ALFABÉTICOS MEDIANTE VISIÓN ARTIFICIAL
Beatriz Nathalia Serrato Panqueba, E. Ingenieria en Control
nathaliaserrato@yahoo.com
Frank Nixon Giraldo Ramos, Ingeniero en Control
frank_correo@hotmail.com
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS, BOGOTA 2009
RESUMEN: La forma de comunicación más
comúnmente empleada por los seres humanos es la
expresión oral, que se efectúa mediante la transmisión y
recepción de mensajes en forma hablada. En su forma
básica, este método de comunicación es acústico, por
esta razón, cuando se carece de este medio, se hace
necesario buscar alternativas que permitan interactuar
con otras personas a través de sistemas o códigos de
comunicación opcionales. Con el fin de brindar una
solución a este problema, se diseñó e implementó un
sistema con la capacidad de interpretar los signos
alfabéticos manuales haciendo uso de herramientas
como visión artificial y redes neuronales artificiales.
PALABRAS CLAVE: Digital image processing, ART
neural networks, Image classification, Image shape
analysis
1 INTRODUCCIÓN
Esta propuesta incluye las descripciones completas
del controlador PID digital a utilizar en el DSP, es una
guía que se refuerza con la respectiva teoría en
controladores
PID,
como
también
describirá
detalladamente las características de nuestra planta y la
forma como identificamos e implementamos un
controlador mediante la herramienta de matlab.
2 OBJETIVOS.
3 DESARROLLO REALIZADO.
3.1 DIPOSITIVOS DE CAPTURA DE IMÁGENES.
Para el desarrollo de este proyecto se empleó una
cámara digital tipo Web-Cam con una resolución de 640
por 480 pixeles, lo suficiente para tener imágenes
digitales con una calidad representativa de la escena
original, baja carga computacional en el procesamiento y
con una velocidad de captura de 30 fps (frames por
segundo). El objetivo de trabajar con una Web-Cam fue
brindar versatilidad al sistema desarrollado, permitiendo
que él mismo, opere con computadores de escritorio,
además de los bajos costos en la adquisición de este
tipo de cámaras y la fácil disponibilidad de las mismas
para los usuarios.
3.2 ADQUISICION DE IMÁGENES PATRONES
Las imágenes patrones se adquirieron en condiciones
de ambiente controlado específicas, se realizaron
capturas de las gesturas ejecutadas por la mano
contrastándola contra un fondo de tono el alto grado
oscuro. También se empleó un guante blanco sobre la
mano con el fin de minimizar el ruido y obtener imágenes
patrones estándar con pocas variaciones de color y brillo
entre fotografías.
Las imágenes poseen la misma resolución de la red
neuronal de 640 X 480. Inicialmente se captura la
imagen a color, posteriormente fue necesario
transformarlas a escala de grises y luego realizar la
segmentación para extraer la información necesaria para
el funcionamiento de la red.
Una forma de comunicación, que no requiere el
empleo del lenguaje hablado, se puede efectuar usando
las manos. Con las cuales se puede simbolizar el
alfabeto completo ejecutando símbolos y movimientos
estándar de comunicación no audible a partir de
gesturas visuales.
Con el fin de reconocer estas mismas, mediante la
incorporación de técnicas de programación basadas en
inteligencia y visión artificial, se implementó un sistema
que capta el símbolo que está representando la mano,
para ser clasificado como una letra del alfabeto ante el
usuario que desconoce el código de gesturas.
Fig 1. Escala de grises y delimitación de bordes de la
letra G
3.3 CAPTURA
IMÁGENES
Y
ALMACENAMIENTO
DE
El tratamiento de las imágenes se realizó en Visual
Basic®, almacenándolas como archivos en formato de
mapa de bits BMP, empleando el control OCX ezVidCap
y se visualizaron en un cuadro Picture del mismo
programa. Posteriormente se inician los procesos de
lectura de imagen pixel a pixel; cada uno de estos está
conformado por tres componentes RGB (red, green,
blue). Este no es el único modelo de la conformación del
color, ya que existen otros como son el modelo YIQ y el
modelo HIS. En el modelo RGB existen tres bandas
espectrales mientras que en el contenido del color, que
se está representando en las matrices I, Q o H, S
respectivamente, la diferencia radica en que las matrices
I de ambos modelos, en YIQ contiene información de
color y en HSI es la imagen de intensidad, por lo que
hay que tener precaución de no confundirlas[1].
Para realizar el procesamiento anteriormente
descrito se llevaron a cabo tres procedimientos:
Operación banda a banda y obtención del resultado
conjunto de las tres bandas de color como una nueva
imagen también de color; transformar la imagen RGB a
uno de los modelos YIQ o HIS, realizar las operaciones
sobre la imagen de intensidad Y o I y realizar,
posteriormente la transformación YIQ o HIS a RGB
utilizando la nueva imagen de intensidad resultante de la
operación realizada y las componentes IQ o HS de la
imagen original para obtener el resultado final. En este
caso la imagen final es una imagen de color también; y
por ultimo transformar la imagen RGB al modelo YIQ o
HIS, realizar las operaciones sobre la imagen de
intensidad Y o I, respectivamente sin volver al color. El
resultado final es una imagen de grises, es decir, con
una sola banda.
Como
primera
medida,
utilizando
los
procedimientos
anteriormente descritos,
en
el
procesamiento de la imagen se redujo la información
contenida en las tres componentes RGB a un valor único
entre 0 a 255.
La ecuación matemática que permite transformar
una imagen a color a una imagen en escala de grises
es:
(70 * cmpR + 150 *cmpG + 29 * cmpB)/255
Donde cmpR, cmpG y cmpB representan los
valores de un pixel en sus componentes de color rojo,
verde y azul en orden respectivo.
El resultado de aplicar esta ecuación sobre el valor
de un pixel a color genera como resultado un nuevo
valor para el pixel en el rango de 0 a 255.
Fig 2. Transformación de imagen patrón a escala
de grises.
3.4 IMPLEMENTACION DE ALGORITMOS PARA
REALIZAR EXTRACCION DE BORDES
Se implementaron 4 algoritmos para llevar a cabo
este procedimiento que fueron [3]:
•
•
•
•
Operador de Prewitt
Operador de Roberts
Operador Frei-Chen
Operador de Sobel
Y los resultados obtenidos fueron los siguientes:
Fig 3. Imagen patron
a
b
c
d
Fig 4. Resultados de la implementacion de los
algoritmos para realizar extraccion de bordes. a)Prewitt,
b) Roberts, c) Frei-Chen, d) Sobel
A partir de la implementación de cada operador y
observando la respuesta de los mismos, se determino
cual de los cuatro operadores, representan del modo
más claro los bordes correspondientes a la imagen
original.
Como conclusión se obtuvo que el operador de
Sobel es el que mejor funciona pues el resultado de la
aplicación permite la extracción de bordes de forma clara
y con mejor calidad en la imagen comparado con el resto
de operadores.
3.5 IMPLEMENTACION DE RED NEURONAL
La red arquitectura de red neuronal elegida para
realizar el procedimiento de reconocimiento de
imágenes fue la ART (Adaptive Resonance Theory). Una
vez realizado el procesamiento previo de imágenes
(transformaciones a escala de grises, eliminación de
ruido y extracción de contornos) se hizo elección de tres
imágenes fácilmente diferenciables para realizar el
proceso de entrenamiento y procesamiento de la red
neuronal [2].
a
b
c
Fig 5. Imágenes utilizadas para entRenar la red
neuronal, a) letra B, b) letra L, c) letra M
El primer paso consistió en determinar el número
de neuronas y capas para la configuración de la red
neuronal. De este modo se trabajo con tres neuronas de
salida, cada una para el reconocimiento de las imágenes
patrones, y una capa de entrada de 307200 neuronas.
Como las imágenes a trabajar tienen una
resolución de 640 X 480 pixeles es necesario dedicar
una neurona para cada uno de ellos.
La función de la red neuronal es realizar la
sumatoria de productos entre cada neurona con su
respectivo peso para cada una de las neuronas de
salida. El resultado de este cálculo determina cual de las
neuronas es la ganadora, es decir la de mayor valor.
Fig 6. Software en ejecucion
Las condiciones de operación del software exigen
que la gestura deba realizarse del modo más parecido a
las imágenes patrones de la red, es por esto, que antes
de operar el software se debe tener un conocimiento
previo de la representación de cada letra y también que
la gestura se debe realizar lo más centrado posible.
Teniendo en cuenta estas recomendaciones la
operación es óptima.
3.6 ENTRENAMIENTO DE LA RED NEURONAL
El entrenamiento de la red neuronal se realizó en el
programa MATLAB 7.0; se implementó un algoritmo para
realizar el cálculo de los valores de los pesos para las
conexiones de las neuronas. Una vez calculados dichos
valores se generó un archivo plano en EXCEL de los
mismos para que el algoritmo de la red neuronal los
pueda leer en cualquier momento con tan solo
especificar la ubicación de este archivo.
En el proceso de entrenamiento de la red neuronal
se tuvo en cuenta tres imágenes diferenciables
claramente entre sí, estas se tomaron como patrón para
el cálculo de los pesos de w de la red.
Como el número de filas de la matriz es 307200, en
EXCEL se emplearon tres columnas de 102400 filas por
cada vector para represnetar una sola, es decir, el vector
de pesos de la Letra B esta comprendido entre las
columnas de EXCEL “A”,”B” y “C”, los pesos de la Letra
L estan entre las columnas “D”,”E” y “F” y los pesos de la
Letra M estan entre “G”, “H” e “I”, para cada caso, las
tres columnas en realidad son una sola para el algoritmo
de la red neuronal.
4 CONCLUSIONES:
.
Durante la elaboración del
sistema de
reconocimiento del lenguaje de gestos manuales
alfabéticos mediante visión artificial, se desarrollaron
diferentes etapas que permitieron lograr el objetivo final
del sistema (reconocimiento de signos alfabéticos); cada
una de las etapas, exigió una documentación y estudio
previó para realizar implementaciones óptimas que
cumplieran con las exigencias propuestas.
En esencia el desarrollo se separo en tres partes:
a) captura y acondicionamiento de imágenes, en donde
se implementaron algoritmos para hacer captura desde
una Web-Cam y un posterior procesamiento de las
imágenes adquiridas, dando como resultado una imagen
óptima para ser entregada a la red neuronal. b)
Procesamiento de imágenes mediante una red neuronal.
Para esta etapa se hizo selección del tipo de
arquitectura de red neuronal a ser implementada, con
base en la aplicación deseada y en aplicaciones
similares, se tomo la decisión de trabajar con la
arquitectura de redes neuronales tipo ART (Adaptive
Resonance Theory). c) Por último se realizó el
entrenamiento de la red neuronal, proceso en el cual se
desarrollo un algoritmo en MATLAB designado a realizar
esta
labor.
Se
escogieron
tres
imágenes
(correspondientes a los signos manuales para las letras
B, L y M) claramente diferenciables entre si, y se genero
la matriz de pesos para la operación de la red.
En el procesamiento previo de la imagen antes de
ser entregada a la red neuronal para realizar el
reconocimiento, se evidencia la importancia de aplicar
operadores y transformaciones básicas para entregar
una imagen con la información más relevante en
óptimas condiciones, es decir, realizar la eliminación de
ruido y elementos ajenos a la imagen. El termino
información relevante hace referencia a los contornos de
la imagen extraídos. Existen diversos tipos de
operadores (filtros) que permiten realizar la labor de
procesamiento previo, sin embargo, es necesario hacer
elección de los mismos de acuerdo al tipo de imágenes
manipuladas así como las condiciones en que se
encuentre la misma. Para realizar una elección oportuna
de transformaciones a realizar, se implemento en
software cada una de las descritas a lo largo de este
documento y mediante las pruebas se definió cual era la
más apropiada.
Al igual que en la elección de transformaciones
aplicadas a las imágenes en el procesamiento previo, al
realizar la elección de topología de red neuronal a
implementar, fue necesario investigar en aplicaciones
similares (a través de la web) cuales eran las de mayor
aplicación y por tanto las que mejor se ajustaran al
desarrollo elaborado. ART fue una respuesta oportuna,
pues incorpora además de las redes convencionales un
factor adicional llamado flexibilidad, definido como la
capacidad de adquirir nuevos patrones (aprender
nuevas cosas), sin que sean modificados u olvidados
conocimientos anteriores.
La implementación de algoritmos para la red
neuronal ART es de fácil programación y un tiempo de
ejecución reducido. Los resultados fueron buenos
pruebas introduciendo ruido a las imágenes, sin
embargo el algoritmo fue capaz de discernir y dar una
respuesta acertada.
Por otra parte, el entrenamiento de la red juega un
papel de vital importancia, pues es en esta etapa donde
la red adquiere el conocimiento necesario para realizar
el reconocimiento eficaz de las imágenes. Se hace
necesario trabajar con imágenes en óptimas condiciones
para calcular matrices de pesos limpias para ser
manipuladas por la red neuronal.
Una vez realizado el sistema, se puede correr la
aplicación para la cual fue propuesta, sin embargo, lo
interesante del desarrollo no es la aplicación como tal,
sino la red y procesamiento que corre debajo, de este
modo, la aplicación puede diferir para el mismo
algoritmo, se puede realizar reconocimiento de rostros,
reconocimiento de formas, huellas dactilares y demás
aplicaciones similares con pequeñas modificaciones en
los algoritmos y con un nuevo proceso de
entrenamiento.
Los sistemas de visión artificial brindan alternativas
para la solución práctica de problemas comunes, su uso
es cada vez más frecuente y las aplicaciones son
innumerables. Es importante migrar a aplicaciones de
este tipo para trabajar con sistemas modernos y de gran
utilidad en diversos campos, que van desde la ingeniería
hasta la economía y las finanzas.
6 REFERENCIAS
[1]. Royman López Beltrán, Edgar Sotter Solano, “Operación
automática de control de calidad utilizando un sistema de
visión”
[2]. Bonifacio Martin del Brio, Alfredo Sanz Molina, “Redes
neuronales y sistemas difusos”, Alfaomega, 2002¨.
[3]. Mo Dai, Pierre Baylou, “An efficient algorithm for
computation of shape moments from chain codes” ,
Univerisité de Bordeaux-France