Está en la página 1de 6

Reconocimiento del lenguaje de signos peruano

utilizando cámaras de baja resolución.

Resumen:
el reconocimiento del gesto de lenguaje de señas mediante el procesamiento de
imágenes y el aprendizaje automático ha sido ampliamente estudiado en los últimos
años. Este artículo presenta un conjunto de datos que consta de 2400 imágenes de los
gestos estáticos del alfabeto del lenguaje de señas peruano, además de su aplicación a
un sistema de reconocimiento de gestos manuales con cámaras de baja resolución. Para
el reconocimiento de gestos, se utilizó el descriptor de características de gradiente
orientado de histograma, junto con 4 algoritmos de clasificación. Los resultados
mostraron que el gradiente orientado de histograma, junto con la máquina de vectores
de soporte, obtuvo el mejor resultado con un 89.46% de precisión y el sistema pudo
reconocer los gestos con variaciones de traslación, rotación y escala.
Términos de índice: procesamiento de imágenes, aprendizaje automático, gradiente
orientado a histogramas, reconocimiento de lenguaje de señas

I. INTRODUCCIÓN
El lenguaje de señas es usado por personas que tienen alguna dificultad para hablar o
escuchar y les permite comunicarse con otras personas que pueden o no presentar las
mismas dificultades. Sin embargo, este idioma no es universal, por lo que cada país
tiene su propio lenguaje de señas. Este tipo de lenguaje puede ser difícil de aprender
para una persona oyente, sin embargo, gracias a los estudios avanzados en
procesamiento digital de imágenes, es posible crear programas que faciliten este tipo de
aprendizaje [1]. Varios estudios dentro de esta área han generado sus propios conjuntos
de datos que incluyen los lenguajes de señas de varios países. Estos conjuntos de datos
se aplicaron en proyectos relacionados con: interacción hombre-computadora para
facilitar la comunicación de personas sordas, la manipulación de robots con este tipo de
lenguaje o el desarrollo de programas educativos que permitan mejorar la enseñanza de
este tipo de idiomas en sus respectivos países [ 2]. En Perú, las personas sordas usan el
alfabeto de lenguaje de señas para aprender el idioma español mediante el proceso de
deletrear las palabras. Sin embargo, esto requiere repetir este proceso para cada palabra
que aprenden, lo cual no es intuitivo. Hasta la fecha, no se ha encontrado un estudio que
haya utilizado el lenguaje de signos peruano, por eso este artículo presenta un conjunto
de datos compuesto por los 24 gestos estáticos del alfabeto del lenguaje de signos
peruano. También aplicamos este conjunto de datos en un sistema de reconocimiento de
gestos manuales utilizando Histogram of Graded Gradients (HOG) y evaluamos su
eficiencia utilizando 4 algoritmos de clasi fi cación. Figura 1. representa este alfabeto
que se basa en el lenguaje de señas americano, pero tiene 4 gestos estáticos únicos (g, p, t,
u).

II. TRABAJO RELACIONADO


La revisión de la literatura se basa en estudios previos relacionados con el reconocimiento de
gestos con las manos. En primer lugar, es necesario conocer la ubicación de la mano dentro de
la caja de la cámara. Las técnicas aplicadas para este tipo de reconocimiento deberían permitir
detectar el área de la mano independientemente de otros factores como: traslación, rotación o
escala. En [4] se utilizaron algoritmos de casco convexo para reconocer el contorno de una
mano y así facilitar la identificación de los tipos de gestos estáticos, en función del número de
dedos que suben. Una aplicación de esto se puede ver en [5], que desarrolló un sistema de
reconocimiento de 6 gestos estáticos, utilizando técnicas de reconocimiento de contorno,
centro de masa y algoritmos de casco convexo, para realizar un control remoto de
computadora con la mano. Una vez obtenida la región de interés, es necesario aplicar una
técnica que permita describir características distintivas como la forma o la textura. Para hacer
esto, hay varios algoritmos de descriptores de imagen que permiten extraer características
relevantes que describen la composición de la imagen. Entre estos descriptores de imagen
podemos encontrar la transformación de la característica invariante de escala (SIFT). En [6] se
aplicó este algoritmo, para obtener un vector de características que permitiera clasificar los
gestos del lenguaje de signos Bangla
Otro descriptor de imagen utilizado para el reconocimiento de gestos con las manos es
HOG. En [7] se aplicó junto con redes neuronales para clasificar 10 gestos del alfabeto
del lenguaje de señas estadounidense. El artículo [8] propuso un nuevo producto de
tecnología para combinar los valores de diferentes tipos de tamaño de celda de un HOG,
lo que permitió mejorar la precisión obtenida al clasificar imágenes de gestos con una
cámara de baja resolución. Un estudio más reciente [9] utilizó HOG para extraer las
características de las imágenes de gestos manuales de más de 30 países diferentes, a fin
de crear un sistema que permita traducir los gestos de signos de un idioma a otro. Los
resultados presentados por este estudio mostraron que HOG obtuvo un mejor
rendimiento en comparación con otros descriptores de imagen.
III. METODOLOGÍA
A. Sistema propuesto El sistema permite reconocer 24 gestos estáticos del alfabeto peruano
de lenguaje de señas. Esta arquitectura del sistema se divide en 5 fases, que se pueden ver en
la Fig. 2. Primero, se aplicó un algoritmo de segmentación de fondo basado en la mezcla
gaussiana utilizando OpenCV, para facilitar el reconocimiento del área de la mano. Para
obtener un mejor rendimiento, se recomienda establecer un entorno estático, uniforme e
iluminado. En segundo lugar, una vez que se levanta la mano frente a la cámara, el programa
detectará el área de la mano utilizando el algoritmo de casco convexo, y procederá a cortarla y
cambiarle el tamaño al área de interés. En tercer lugar, aplicamos un filtro bilateral al área de
interés, convertimos a escala de grises y aplicamos un umbral para estandarizar los píxeles
negros de la imagen. Cuarto, consideramos un descriptor de imagen global, porque el único
elemento presente en la imagen es la región de la mano. Para hacer esto, aplicamos el
algoritmo HOG usando OpenCV [11]. En este algoritmo, la distribución (histograma) de la
dirección de los gradientes (gradientes orientados) se utiliza como características. En primer
lugar, calcula los gradientes centrados horizontales y verticales sin suavizar. Luego encuentra
las magnitudes y la orientación del gradiente usando las siguientes fórmulas

donde g es la magnitud del gradiente y θ es la orientación del gradiente. Después de eso,


divide la imagen en (i x i) celdas y calcula el histograma de gradientes para cada celda.
Dependiendo de la cantidad de contenedores, este histograma se extiende de 0 ° a 20 ° ∗
nbins. Para tener en cuenta los cambios en la iluminación y el contraste, las intensidades de
gradiente deben normalizarse localmente, lo que requiere agrupar las celdas en bloques más
grandes, conectados espacialmente. El descriptor de HOG es entonces el vector concatenado
de los componentes de los histogramas de células normalizadas de todas las regiones de
bloque. La quinta fase corresponde a la clasificación del gesto utilizando el vector de
características y el modelo de clasificación entrenado. El gesto clasificado se muestra en la
esquina superior izquierda de la pantalla.

B. Generación de conjunto de datos La metodología aplicada para la construcción de


este conjunto de datos puede
ser visualizado en la figura 3.

Fig. 3. Metodología para crear el conjunto de datos. Primero, se aplicó el algoritmo de resta de
fondo, explicado anteriormente. Una vez extraído el fondo, se realizó la grabación de los 24
gestos estáticos. En esta grabación, se pidió a los participantes que hicieran movimientos de
las manos dentro de la caja, además de pequeñas rotaciones. Una vez que se realizaron las
grabaciones, el video se dividió en imágenes y se seleccionó manualmente para cada gesto.
Dentro de esta selección manual, se consideraron los fotogramas en los que se observaron
variaciones de rotación en los ejes de las manos "X" e "Y", de modo que se puede generar un
conjunto de datos sólido para este tipo de cambios. Para la generación de conjuntos de datos
característicos, cada una de las imágenes en el conjunto de datos pasa por un proceso de
reconocimiento de mano. Una vez que se detectó esta región, procedimos a recortar y cambiar
el tamaño de las imágenes a un tamaño de 200 x 200 píxeles, para mantener un formato
uniforme dentro del conjunto de datos. Finalmente, se aplicó un filtro a las imágenes y se
generaron vectores de características utilizando HOG.

IV. EXPERIMENTOS
A. Hadware y software En nuestros experimentos utilizamos una cámara con resolución de
720p y una relación de 4: 3 para generar el conjunto de datos y para probar el entorno del
sistema propuesto. Este sistema se probó en una CPU Intel Core i7-7770HQ con 2.80GHz y
16GB de RAM. El sistema operativo era Windows 10 de 64 bits. El sistema de reconocimiento
se desarrolló en Python 3.5 dentro del código IDE Visual Studio. Para el procesamiento previo
de imágenes, la sustracción de fondo y los algoritmos HOG, se utilizó la biblioteca OpenCV.
Además, para facilitar el proceso de análisis de datos y la generación de modelos utilizando
algoritmos de clasificación de Aprendizaje automático, se utilizó la biblioteca scikit-learn [12]. B.
Conjunto de datos de imagen El conjunto de datos se generó con el apoyo de 10 personas
sordas, que se grabaron haciendo cada uno de los 24 gestos estáticos del alfabeto de la
lengua de signos peruana. Las grabaciones se realizaron en un entorno iluminado con un fondo
estático. Las imágenes extraídas de estas grabaciones tienen pequeñas variaciones o
rotaciones en los ejes "X" e "Y" para obtener un conjunto de datos sólido para estos cambios.
Una vez realizada la grabación, se extrajeron todos los cuadros del video y se seleccionaron un
total de 2400 imágenes. Cada uno de los 24 gestos contiene 100 imágenes (10 por persona).
C. Conjunto de datos de características Para la generación del conjunto de datos de
características, las imágenes se redimensionaron a un tamaño de 64x48 y se aplicó un
descriptor de HOG. Este algoritmo se aplicó por primera vez para la detección humana [11],
pero en los últimos años se ha utilizado en el reconocimiento de gestos con las manos [7] [8]
[9].

D. Entrenamiento y validación En los experimentos, utilizamos 4 algoritmos de


clasificación, que son: Máquina de vectores de soporte (SVM), Vecinos más cercanos a
K (KNN), Perceptrón multisensor (MLP) y Bosque aleatorio (RF). Establecemos los
parámetros basados en experimentos previos realizados por [6], [7], [13] y realizamos
cambios para evaluar si hubo alguna mejora. Para la validación de estos algoritmos, se
utilizó una validación cruzada de 15 veces, con la precisión como una métrica de
evaluación, debido al hecho de que se utiliza un mismo número de casos para cada
gesto. Para obtener la precisión se utilizó la siguiente fórmula:

V. RESULTADOS
Los resultados mostraron que los 4 modelos de clasificación obtuvieron una precisión
superior al 85%. De todos los modelos, el que mejor se desempeñó fue SVM con un
89.46% de precisión, utilizando un kernel rbf y un valor de C de 1000 como vemos en
la Tabla II.

TABLA II EXACTITUD DE LOS ALGORITMOS DE CLASIFICACIÓN


Algorithm Accuracy(%) Parameters Support Vector Machine 89.46 kernel= rbf, C=1000 K-
Neighbors 89.17 n-neighbors=2, metric = manhattan MultiLayer Perceptron 86.93 hidden
layer=1, neurons=900 Random Forest 86.03 n-trees=850, max-depth=1000

Como vemos en la figura 4. El SVM presenta una precisión constante cuando el


parámetro C es mayor que 200. Un caso similar ocurre con MLP y RF donde el mayor
número de neuronas o árboles utilizados genera una precisión constante,
respectivamente. Esto es diferente con KNN donde más k-vecinos se usan, la precisión
es menor.

Fig. 4. Resultados de experimentos utilizando los 4 algoritmos propuestos. En función


de la experimentación, se cambiaron los siguientes parámetros para cada algoritmo:
Máquina de vectores de soporte (C usando kernel rbf), Vecinos más cercanos a K
(kNeighbors with manhattan distance), Perceptron MultiLayer (n-Neuronas usando 1
capa oculta), Forest Random (n -Rrees).
El conjunto de datos representa dos desafíos para cualquier clasi fi cador: el primero
estaba considerando diferentes tipos de rotación en los que un gesto puede ser similar a
otro si se ven desde una orientación específica como se puede ver en la Fig. 5. El
segundo desafío consiste en la naturaleza del signo Idiomas donde algunas letras pueden
ser muy similares. Por lo tanto, para clasificar correctamente, las letras similares se
vuelven difíciles (como se muestra en la Fig. 6). En esta figura se puede observar que
las letras "m", "n" y "p", "q", presentan una mayor confusión de verdaderos positivos. ,
debido a la similitud que tienen los gestos "m" y "n"; y la similitud de los gestos "p" y
"q".
VI. CONCLUSIONES
En este documento, propusimos un nuevo conjunto de datos compuesto por los 24 gestos
estáticos del alfabeto peruano de lenguaje de señas. Este conjunto de datos se aplicó a un
sistema de reconocimiento de gestos manuales, que permite reconocer los gestos manuales
con variaciones de traslación, rotación y escala. Si bien los resultados fueron favorables, el
sistema todavía tiene dificultades para reconocer el fondo en áreas donde hay poca o ninguna
luz y es necesario que el fondo sea estático, por lo que se aplica un algoritmo que permite
eliminar un fondo complejo y con diferentes variaciones. de luz haría que el sistema sea más fl
exible a los cambios en el entorno. Por otro lado, este sistema se puede usar para crear un
juego que enseña a las personas sordas y no sordas sobre el alfabeto peruano de lenguaje de
señas de forma interactiva y utilizando solo una cámara web interna. Además, esperamos que
este trabajo pueda dar paso a la aplicación de nuevos proyectos mediante el reconocimiento
dinámico de gestos con la mano del lenguaje de señas peruano.
VII. AGRADECIMIENTOS
Nos gustaría agradecer a la asociación ENSE˜NAS PER´U que nos ayudó a proporcionar
expertos para reproducir y validar los gestos en el conjunto de datos.