Viewcontent Cgi
Viewcontent Cgi
Ciencia Unisalle
2018
Part of the Computer Engineering Commons, and the Engineering Education Commons
Citación recomendada
Triviño López, I. C. (2018). Sistema para el aprendizaje del lenguaje de señas colombiano usando visión
por computador. Retrieved from [Link]
This Trabajo de grado - Pregrado is brought to you for free and open access by the Facultad de Ingeniería at
Ciencia Unisalle. It has been accepted for inclusion in Ingeniería en Automatización by an authorized administrator
of Ciencia Unisalle. For more information, please contact ciencia@[Link].
SISTEMA PARA EL APRENDIZAJE DEL LENGUAJE DE SEÑAS
COLOMBIANO USANDO VISIÓN POR COMPUTADOR
UNIVERSIDAD DE LA SALLE
FACULTAD DE INGENIERÍA
INGENIERÍA EN AUTOMATIZACIÓN
BOGOTÁ, D.C.
2018
SISTEMA PARA EL APRENDIZAJE DEL LENGUAJE DE SEÑAS
COLOMBIANO USANDO VISIÓN POR COMPUTADOR
Director
CESAR HERNÁN RODRÍGUEZ GARAVITO, PhD.
UNIVERSIDAD DE LA SALLE
FACULTAD DE INGENIERÍA
INGENIERÍA EN AUTOMATIZACIÓN
BOGOTÁ, D.C.
2018
Nota de aceptación
Bogotá D.C.
DEDICATORIA Y AGRADECIMIENTOS
Dedico este trabajo a mis padres Martha López y Camilo Triviño que con su esfuerzo
hicieron todo lo posible para permitirme comenzar y culminar este proceso y ayudarme a
lograr mis objetivos. Agradezco su apoyo, sus consejos y su preocupación por hacerme
crecer como persona y como profesional día a día.
Agradezco a mi director de trabajo de grado Cesar Rodríguez por todas sus enseñanzas
a lo largo del desarrollo de este trabajo de grado; todo el conocimiento que me compartió
sin duda me hizo crecer como persona y como profesional.
Por último, comparto este logro con las personas anteriormente mencionadas y con to-
dos los profesores, compañeros y amigos que estuvieron presentes a lo largo de este
proceso.
TABLA DE CONTENIDOS
pág.
INTRODUCCIÓN 1
1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3. Descriptores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.4. Trayectorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2. DETECCIÓN Y SEGUIMIENTO 22
3. RESULTADOS DE CLASIFICACIÓN 30
III
3.1.2. Precisión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1.4. F1 -Score . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4. DESARROLLO DE LA APLICACIÓN 39
5. CONCLUSIONES 44
REFERENCIAS 47
C. Formato de encuesta 53
IV
LISTA DE FIGURAS
pág.
17. Ilustración de los vecinos que son seleccionados por cada pixel. . . . . . . 28
V
18. Representación genérica de la matriz de confusión. . . . . . . . . . . . . . 30
VI
LISTA DE ALGORITMOS
pág.
VII
RESUMEN
Palabras clave: visión por computador, seguimiento de la mano, Microsoft Kinect, ma-
chine learning, Interfaz Humano-Maquina
INTRODUCCIÓN
1
Lenguaje de señas
El lenguaje de señas en el mundo occidental tiene sus inicios formales a partir del año
1755, cuando el abad francés Charles Michel de l’Épée funda en París la primera escuela
pública para sordos, donde desarrolla un alfabeto y crea signos que posteriormente se
adaptaron a una estructura gramatical parecida al idioma francés; ese primer lenguaje
de señas posteriormente dio inicios a otros lenguajes de señas como el Lenguaje de
Señas Americano (ASL, por sus siglas en inglés), Lenguaje de señas Mexicano (LSM),
el Lenguaje de señas Brasileño (LIBRAS, por sus siglas en brasileño), entre otros (Cruz,
2008). A partir de la extensión del lenguaje de señas alrededor del mundo, cada país
lo adoptó de una manera particular teniendo en cuenta su cultura y su idioma natal
(aunque sin embargo es importante aclarar que el lenguaje de señas en un país no
es dependiente de su idioma natal y no necesariamente guarda estrecha relación con el
mismo); el lenguaje de señas adoptado para la realización de este trabajo es el Lenguaje
de Señas Colombiano (LSC).
2
incentiva a realizarla, validando si la está ejecutando de manera correcta.
El conjunto de datos utilizado se creó desde ceros, ya que era necesario extraer los des-
3
Figura 2: Diagrama de funcionamiento del sistema diseñado.
criptores y entrenar los algoritmos de machine learning con las imágenes y trayectorias
obtenidas luego del procesamiento de las imágenes capturadas para prevenir que se
propagara un error de clasificación; asimismo, se recopilaron imágenes propias ya que
no existen bancos de datos libres para el Lenguaje de Señas Colombiano. Para la clasifi-
cación de las señas estáticas se capturaron en total 3.600 imágenes pertenecientes a 9
diferentes categorías: letra A, letra B, letra E, letra L, letra V, letra W, letra Y, Fondo y Pal-
ma abierta. Para la clasificación de las señas dinámicas de capturaron 800 trayectorias
pertenecientes a 4 diferentes categorías: Decidir, Diferente, Hacer y Jugar.
4
Trabajos relacionados
5
la analiza con la base de datos. Si bien puede resultar más fácil segmentar la imagen
y realizar la posterior identificación, para el desarrollo de este proyecto es de gran im-
portancia conocer la posición de la mano para acertar en el signo que el usuario está
introduciendo, aunque no precisamente realizando aproximaciones mediante modelos.
Plaza (2015) realiza una herramienta computacional capaz de capturar una secuencia de
imágenes, correspondientes a los gestos que ingresa el usuario; el software se encarga
de analizar el gesto introducido para emitir el texto correspondiente a su significado.
El software permitió identificar correctamente los signos en diferentes ambientes. Se
empleó el algoritmo convexhull para detectar adecuadamente el contorno de la mano
y apoyar el proceso de identificación del significado del signo ingresado; también se
empleó el algoritmo k-nearest para el entrenamiento del clasificador.
Sánchez and Hurtado (2015) emplean la API ofrecida por Microsoft para el sensor Kinect,
que proporciona las posiciones de las articulaciones del cuerpo humano en un espacio
bidimensional. Con las posiciones se usa la técnica DWT para realizar la traducción del
LSC a texto, para lo cual se obtuvo un 98,2 % de acierto. Este trabajo está orientado
únicamente al reconocimiento de señas dinámicas, principalmente debido a la técnica
empleada; los resultados de este trabajo dejan ver que la técnica DWT resulta ser una
opción adecuada para el análisis de señas dinámicas dado su porcentaje de éxito.
6
aprendizaje del lenguaje de señas hacia un oyente mediante Microsoft Kinect”. El trabajo
presenta un aplicativo que por medio de un sensor de tipo RGB-D procesa las imágenes
capturadas y a través de inteligencia artificial enseña al usuario conceptos básicos sobre
el lenguaje de señas colombiano. Se hizo énfasis en el filtrado de la imagen de entrada
para eliminar variables de luminosidad y contraste, esto con el fin de evitar calibrar el
sistema cada vez que se iniciase. Se concluyó que el entrenamiento juega un papel
crucial, ya que los valores de convergencia de los estados de la cadena de Markov están
ligados con las secuencias de entrenamiento, por lo que con puntos parecidos el sistema
no sabe a cuál converger.
Vogler and Metaxas (2001) propone un framework para el reconocimiento del lenguaje de
señas americano que consiste en la descomposición de los signos en sus fonemas que
emplea Modelos Paralelos Ocultos de Markov para así obtener aspectos simultáneamen-
te de forma independiente; con lo cual se logra que se pueda realizar el entrenamiento
de forma independiente sin requerir la consideración de las diferentes combinaciones.
Se realizó el experimento para 22 signos diferentes del Lenguaje de Señas Americano
y se demostró la eficiencia de los Modelos Paralelos Ocultos de Markov frente a los
convencionales.
Yamashita and Watasue (2014) propone una metodología en la que se divide la comple-
ja arquitectura de la mano; por un lado se realiza la extracción de la forma de la mano
con fondos complejos y cambios de iluminación y por otro lado el reconocimiento de la
postura de la mano por medio de una imagen binarizada. Según lo anterior, se propone
la implementación de una red neuronal convolucional con capas especiales para la ex-
7
tracción de características de imágenes binarizadas. Se obtuvieron mejores resultados
en comparación con con el método base (esto es, sin incluir las capas especializadas en
extracción de características de las imágenes binarizadas). PÉREZ (2012) propone en
su tesis de maestría un sistema que contiene dos módulos principales: uno de aprendi-
zaje y uno de reconocimiento. Emplea un sensor Microsoft Kinect para capturar los datos
y compararlos con los patrones almacenados en la base de conocimiento del sistema.
Cuando se ingresa un signo con una similitud menor al 90 % se acciona el módulo de
aprendizaje que almacena el nuevo signo ingresado. Con el primer método se reconocen
20 signos diferentes invariantes a rotaciones , escalamiento y traslaciones del lenguaje
de señas mexicano; para este método se requiere de un fondo negro, condiciones de
iluminación controladas y que la mano se sitúe a 50cm del sensor óptico. Se encontró
que el problema más recurrente es identificar la ubicación de la muñeca, ya que el an-
tebrazo afecta el reconocimiento de la mano. Con el segundo método se reconocieron
25 señas del Lenguaje de Señas Mexicano; con este método se obtuvo una tolerancia
ante las rotaciones y deformaciones de la mano durante la ejecución, además de que no
requiere de aprendizaje previo. Se observó que capturar la mano con el sensor Kinect
presenta una ventaja para el proceso de segmentación, pero debido a la resolución de la
cámara (para la versión 1) no se puede distinguir la transición entre señas realizadas rá-
pidamente debido al efecto motion blur. Para el proceso de aprendizaje-reconocimiento
del segundo método se requirió definir un umbral de reconocimiento para discriminar
adecuadamente cuando se trata de una seña del Leguaje según los datos de la base de
conocimiento; dicho umbral debe ser menor o igual al 10 % para un resultado correcto.
A nivel internacional, uno de los trabajos más representativos en el campo de hand trac-
king es el presentado por POUDEL (2014) en su tesis doctoral. En esta se propone una
técnica basada en regiones para la detección del color de la piel, que contrasta con
las técnicas empleadas actualmente basadas en pixeles y según el autor supera los re-
sultados obtenidos; se basa en una técnica de segmentación llamada superpixels que
agrupa varios pixeles del mismo color. El framework propuesto consta de 3 módulos:
segmentación de regiones de la mano, estimación de la postura mediante regresiones y
seguimiento de la mano empleando estimación de la posición, prioridad cinemática e in-
8
formación temporal. Empleando la técnica propuesta se obtuvo un resultado del 91,17 %
de aciertos, frente a un 13,12 % de falsos negativos. El trabajo realizado en esta tesis fue
publicado en la propuesta de código abierto para liberación del SDK’s del sensor Kinect
para el sistema operativo Microsoft.
9
1. VISIÓN POR COMPUTADOR
1.1. Introducción
La visión artificial, también conocida como visión por computador (CV, por sus siglas
en inglés), es un campo de la inteligencia artificial en el cual por medio de análisis de
imágenes se obtiene una descripción de los objetos capturados en una escena. Dentro
de los campos en los que se utiliza la visión por computador se encuentran aplicaciones
militares, de control de calidad industrial, robótica, agricultura, biomedicina, seguridad,
control de tráfico, etc.
Una imagen digital se compone de un conjunto de valores numéricos que van típica-
mente de 0 a 255, cada valor es denominado pixel y su posición dentro de la imagen se
determina a través de coordenadas X y Y que se sitúan en los ejes horizontal y vertical
con límites en el ancho y alto de la imagen respectivamente, siendo el eje X horizontal y
positivo en dirección derecha y el eje Y vertical y positivo hacia abajo. De forma general,
considerando un modelo de imagen simple f (x, y) compuesta únicamente de valores de
intensidad luminosa (imagen en escala de grises), donde el valor f (x, y) es el valor de
intensidad en el pixel (x, y), se tiene que f (x, y) ∈ [0, ∞) debido a que la luz es una forma
de energía (Muñoz P., 2009).
10
f (x, y) = I(x, y) × r(x, y) (1)
De la Ecuación 1 se obtiene que una imagen tiene una representación matricial y por
tanto es susceptible de ser computada con otras imágenes por medio de operaciones
como suma, resta o multiplicación; asimismo, una imagen digital puede ser representa-
da mediante histogramas, los cuales son funciones que indican la frecuencia con la que
aparecen los valores de intensidad que pueden tomar los pixeles, como se muestra en
la Figura 3; sin embargo, es necesario tener en cuenta que esta representación no pro-
porciona información espacial de la imagen, por lo que dos imágenes diferentes podrían
llegar a tener un mismo histograma, razón por la cual esta representación no suele ser
utilizada como una descripción de la imagen (de la Escalera et al., 2016).
11
de los más populares se encuentran el RGB, el HSV y el YCrCb.
Es el más extendido y el que utilizan dispositivos como cámaras de video y cámaras fo-
tográficas para construir imágenes de color, motivo por el cual es ampliamente utilizado
como sistema de referencia en aplicaciones de visión por computador, ya que trabajar
con el mismo espacio de color en que vienen las imágenes desde el sensor disminu-
ye la aparición de ruido y previene la alteración de las propiedades del color durante
operaciones sobre la imagen.
En el espacio de color RGB los colores están definidos por la mezcla de los valores de
intensidad de tres colores primarios, rojo, verde y azul (Red-Green-Blue), de manera que
cada pixel de una imagen RGB está compuesto por una tupla de 3 componentes, cada
uno correspondiente a un canal de color (ver Figura 4).
Fuente: El autor.
12
toma colores en una escala entre el azul y el amarillo y Cr toma colores en una escala
entre el rojo y el verde. La transformación entre el espacio RGB y YCrCb se puede reali-
zar mediante la Ecuación 2 (Molinero D., 2010).
Y 65, 481 128, 553 24, 966 R 16
Cb = −39, 797 −74, 203 ∗ G + 128 (2)
112
Cr 112 −93, 786 −18, 214 B 128
Las componentes RGB están codificadas en un byte (de 0 a 255), mientras que la lumi-
nancia se define en 220 niveles y las crominancias en 224 niveles, por lo que es necesa-
rio escalar las componentes para que puedan ser almacenadas dentro de un byte como
un número sin signo.
1.3. Descriptores
Una imagen digital puede contener cientos de características inmersas en la escena, pa-
ra extraer correctamente las características de las imágenes previamente presentadas
al sistema se hace uso de los descriptores (Cuenca, 2008); estos son características
extraídas del resultado de modelos matemáticos aplicados a las imágenes digitales, los
cuales resumen y simplifican el contenido de estas. Existen diferentes tipos de descrip-
tores que varían según su complejidad; entre estos se pueden encontrar histogramas de
color o intensidad, descriptores LBP, HOG, etc.
13
Figura 5: Imágenes tomadas para ejemplo.
Fuente: El autor.
Para realizar el cálculo del descriptor LBP inicialmente se divide la imagen en celdas;
se compara cada pixel de cada celda con sus vecinos, los cuales se determinan a partir
de un radio que puede ir desde 1 hasta n ∈ N+ con n < [Link] (ej. si el radio es
1 toma los 8 pixeles contiguos al pixel actual); si el pixel central es mayor al vecino se
toma un valor de 0 para la posición del vecino, de lo contrario se toma un valor 1, lo
anterior genera un byte que se suele representar en base decimal, el cual reemplaza al
valor del pixel central; finalmente, se normaliza el histograma resultante de cada celda y
se concatenan sucesivamente para formar el vector descriptor. La Figura 6 muestra un
ejemplo del cálculo del descripto LBP para una posición, tomando un radio R = 1.
14
Figura 6: Ejemplo de cálculo de descriptor LBP.
Fuente: El autor.
N −1
1, x≥0
X
LBPR,N (x, y) = s(ni − nc )2i , s(x) = (3)
i=0
0, otherwise
Donde nc corresponde al valor del pixel central y ni corresponde al nivel de gris de los
pixeles del vecindario en el radio R.
15
Figura 7: Patrones LBP uniformes en una imagen.
P (P − 1) + 3 (4)
Debido a lo anterior, para este descriptor se decidió utilizar la variación U-LBP, ya que
el LBP original introduce muchas dimensiones al vector descriptor y las características
más importantes de la imagen están localizadas en los contornos y las esquinas, entre
otras que son correctamente localizadas con la variación U-LBP; de acuerdo con eso, se
utilizó un radio R = 8 y P = 24 puntos. En la Figura 8 se muestra el resultado de aplicar
el algoritmo U-LBP sobre las tres señas de muestra de la Figura 5.
Fuente: El autor.
16
1.3.2. Histograma de Orientación de Gradientes (HOG)
dx = I(x + 1, y) − I(x − 1, y)
(5)
dy = I(x, y + 1) − I(x, y − 1)
En segundo lugar se determina el ángulo del gradiente de acuerdo con las diferencias
empleando la Ecuación 6.
−1 dy
θ(x, y) = tan (6)
dx
p
g(x, y) = dx2 + dy 2 (7)
A partir del cálculo del gradiente es posible definir un descriptor que pueda brindar in-
formación global de la imagen, conocido como histograma de orientación de gradientes
(HOG por sus siglas en inglés), para lo cual hay que dividir la imagen en un número fijo de
celdas y para cada celda se obtiene un histograma de las orientaciones de los gradientes
y finalmente todos los histogramas se combinan para formar el descriptor (López P. et al.,
2015).
Para el descriptor HOG se seleccionó una configuración de bloques de 16x16 px, tamaño
de celdas de 8x8 px y 9 bins. En la Figura 9 se muestra el resultado de aplicar el des-
criptor HOG sobre las imágenes de la Figura 5. Se puede identificar que cada seña tiene
17
una orientación de gradientes diferente y se evidencia particularmente en el contorno de
la mano y los bordes de los dedos.
Fuente: El autor.
N X
X M
Mp,q = xp y q I(x, y) (8)
x=1 y=1
En particular se sabe que M0,0 es el área A del objeto (reemplazando p y q por cero en
la Ecuación 8), con ello se calcula el centroide con las formulas de la Ecuación 9.
18
N P
P M
xI(x, y)
x=1 y=1 M1,0
x̄ = =
A M0,0
(9)
N P
P M
yI(x, y)
x=1 y=1 M0,1
ȳ = =
A M0,0
Finalmente, a cada punto del contorno se le resta el valor del centroide encontrado y se
pasa de coordenadas cartesianas a coordenadas polares tomando como (0, 0) el punto
del centroide. En la Figura 10 se muestra un ejemplo del descriptor obtenido para las
señas de la Figura 5.
Fuente: El autor.
1.3.4. Trayectorias
Una seña dinámica puede ser descrita por diferentes características tales como la tra-
yectoria, la velocidad, la aceleración, la orientación y combinaciones entre las anteriores
(Meng et al., 2014); en este trabajo se tomó la trayectoria como descriptor de las se-
ñas dinámicas y se eliminaron las componentes de velocidad y aceleración mediante un
proceso de remuestreo para mejorar la similitud entre una seña y otra.
19
del intervalo de tiempo en que es capturada, del sensor empleado, la velocidad con la
que se mueve el objeto y la cantidad de operaciones realizadas durante el tiempo de
captura. Para este trabajo, las trayectorias se capturaron durante un intervalo de tiempo
de 4 segundos para cada muestra.
Debido a que la longitud de una trayectoria puede variar, para hacer dos trayectorias
directamente comparables se realiza un procedimiento de remuestreo de los puntos ori-
ginales en N puntos equidistantes; si bien el remuestreo no es la única técnica, ha de-
mostrado tener buenos resultados sobre trayectorias (Wobbrock et al., 2007). El número
de puntos N más adecuado depende del tipo de trayectoria que se esté trabajando, y si
bien no existe una formula para definir la cantidad más adecuada, se tiene como regla
general que una cantidad N de puntos muy baja puede generar perdida de precisión a
la hora de comparar dos trayectorias, mientras que una cantidad N de puntos muy alta
le agrega mayor dimensionalidad al vector, lo cual no necesariamente genera una ma-
yor precisión pero si suma tiempo de procesamiento al generar un vector más largo. La
longitud máxima de las trayectorias capturadas en este trabajo fue de 156 puntos, por
lo que se probaron diferentes combinaciones de ese valor hacia abajo en potencias con
base dos, encontrando que el valor más adecuado es de 64 puntos.
Una vez remuestreada la trayectoria se calcula su centro y se traslada al origen del plano
coordenado X-Y , esto se hace con el fin de normalizar el vector y hacerlo invariante
a traslaciones en el espacio, de manera que cada seña pueda ser reconocida por el
clasificador independientemente del lugar donde esté ubicada la persona que la ejecuta.
20
M = length(trajectory);
I = M / (N-1);
i = 0;
for j in 0:I:m-1 do
reshaped[i] = trajectory[j];
i++;
end
trayectoria que relaciona cada punto N con el punto N +1 como se observa en el ejemplo
de la Figura 11, calculando la relación angular entre ambos siendo X el eje principal (ver
Ecuación 11).
yt−+1 − yt
θt = arctan , t = 1, 2, ..., T − 1 (11)
xt+1 − xt
Fuente: El autor.
21
2. DETECCIÓN Y SEGUIMIENTO
Las cámaras convencionales permiten retratar el mundo desde una perspectiva bidimen-
sional, pero para un correcto análisis del entorno es necesario capturar la imagen por
medio de una representación tridimensional. La terminología en sensores ópticos hoy en
día permite el análisis tridimensional del entorno por medio de sensores de tipo RGB-D.
Ahora bien, la forma en que es almacenada la información de este tipo de sensores es
por medio de nubes de puntos; una nube de puntos es un arreglo de datos sobre un
sistema coordenado X, Y y Z (Kadambi et al., 2014). Para generar la nube de puntos es
necesario que el sensor óptico empleado cuente con dos elementos principales: sensor
de profundidad y cámara RGB; la cámara permitirá captar características esenciales en
los elementos de la escena mientras que el sensor de profundidad permitirá definir la
ubicación en el espacio de dichos elementos. Además de contar con el sensor RGB-D,
es necesario realizar una calibración debido a que los dos sensores ofrecen resoluciones
diferentes y asimismo se encuentran separados físicamente uno del otro, lo que genera
traslación de una imagen a otra (ver Figura 12).
Figura 12: Superposición de imágenes del sensor de profundidad y el sensor RGB sin
calibración, el borde azul representa el contorno de la mano en el mapa de profundidad.
Fuente: El autor.
22
El método más común para hallar los parámetros es el modelo de pinhole, donde la
escena se forma proyectando los puntos 3D en un plano empleando transformaciones
geométricas; la forma general de este modelo se describe por la Ecuación 12.
X
u f 0 cx r r r t
x 11 12 13 1 Y
v = 0 fy cy r21 r22 r23 t2 (12)
Z
w 0 0 1 r31 r32 r33 t3
1
u fx 0 cx X
v = 0 fy cy Y (13)
w 0 0 1 Z
w=Z ⇒ Z=w
Z(u − cx )
u = fx X + Cx Z ⇒ X = (14)
fx
Z(v − cy )
v = fy Y + Cy Z ⇒ Y =
fy
23
2.2. Pre-procesamiento y detección de la mano
Fuente: El autor.
24
el tratamiento se realiza como si se tratara de una única nube de puntos en el espacio.
Inicialmente se toma el punto más cercano al dispositivo de captura, el sensor de profun-
didad tiene un rango de operación de 0, 7 a 4, 0 metros, de modo que la distancia mínima
del sensor a la mano debe ser de 0, 7 metros para lograr un resultado correcto; luego de
obtener el punto más cercano se extraen los elementos que estén 80 milímetros hacia
atrás en el eje Z de ese punto.
Figura 14: Posiciones de la mano detectadas por el clasificador Haar Cascade pre-
entrenado.
25
la Figura 15), con los cuales se puede calcular el ángulo de apertura que hay entre un
dedo y otro. Sólo los defectos que se encuentran en medio de dos dedos deben ser
tomados como válidos y para que un defecto sea tomado como el punto de unión entre
dos dedos, el ángulo que debe haber entre ambos no debe ser mayor a 90 grados (para
que la mano sea validada debe tener entre 3 y 4 defectos).
Con la detección de la mano se obtiene la región de interés (ROI, por sus siglas en
inglés) que indica su ubicación en el plano X − Y , cuyo centro se utiliza como punto
de partida para hacer el seguimiento de la mano; el proceso de seguimiento tiene como
objetivo segmentar activamente la mano del resto de la escena sin necesidad de realizar
el proceso de reconocimiento por cada frame.
26
un procedimiento de inpaint, con lo que se obtiene una nueva imagen cuyos pixeles se
corresponden con el color de la piel; el procedimiento de inpaint permite corregir marcas
o imperfecciones en una imagen con base en los pixeles vecinos de las mismas, dichas
imperfecciones para el objeto de este trabajo se toman como el fondo de la imagen, con lo
cual se logra que los pixeles del fondo sean reemplazados por los pixeles obtenidos como
color de piel. Para realizar la extracción del fondo se retiran todos los elementos que se
encuentren a más de 1, 5m del sensor y finalmente para extraer la piel de la escena se
realiza una operación de backprojection entre el histograma de la imagen que contiene
el modelo de color y la imagen de la escena; el backprojection compara los histogramas
de dos imágenes (una imagen base y otra de muestra) y extrae los pixeles de la imagen
de muestra que se asemejen a los de la imagen base, lo anterior se puede entender
como un procedimiento de filtrado o umbralización adaptativo basado en histogramas.
Todo el procedimiento anterior se realiza empleando el espacio de color YCrCb ya que
ha demostrado tener un mejor resultado en segmentación de piel (Khamar et al., 2015).
En la Figura 16 se observa el resultado de realizar la segmentación basada en el color
de piel.
Fuente: El autor.
27
Por otro lado, Region Growing es un método utilizado en visión por computador para
segmentar elementos de forma local partiendo de un punto semilla y propagándose por
una región homogénea o con características similares (Puneet Kumar and Seba, 2013).
El algoritmo desarrollado para este trabajo parte del punto semilla y toma en cuenta los
puntos superior, inferior y laterales como se observa en el ejemplo de la Figura 17, donde
el cuadro verde corresponde al punto semilla y los cuadros azules corresponden a los
vecinos tomados en cuenta; su funcionamiento se puede asemejar al de un algoritmo
convencional de búsqueda, donde se tiene una lista de candidatos y se evalúa cada uno
para determinar si pertenece o no a la región que se quiere delimitar; el criterio para
definir si el candidato corresponde a la región es que se encuentre dentro de la ventana
del ROI de la mano y que el nivel de profundidad se encuentre dentro del umbral, que
para este caso es de 20 milímetros y corresponde a la distancia máxima que puede
haber entre los extremos de la mano en perspectiva.
Figura 17: Ilustración de los vecinos que son seleccionados por cada pixel.
Fuente: El autor.
Debido a que el algoritmo consiste en una serie de operaciones cíclicas anidadas, sobre
una imagen de 640 x 480 pixeles toma un tiempo de ejecución variable del orden de
cientos de milisegundos y una carga computacional alta debido a que el script de Python
es interpretado. Para solucionar el problema y mejorar el rendimiento del algoritmo se
hace uso de Cython, un compilador optimizado para lenguaje de programación Python,
Cython (el cual es un lenguaje extendido) y C, que al ser ejecutado retorna un módulo
28
Input: threshold, depthMap, window
seed = [Link];
meanDepth = depthMap[seed.x, seed.y];
queue = [Link](1, [Link]*[Link]);
while length(queue) != 0 do
item = getFirstElementInTheQueue(queue);
dropFirstElementInTheQueue(queue);
neighbors = getNeighbors(item);
for neighbor in neighbors do
if isMember(neighbor, meanDepth) then
[Link](neighbor);
end
end
end
Output: region
compilado que puede ser usado tanto desde lenguaje C/C++ como Python. Luego de
realizar la optimización del algoritmo escrito en su gran mayoría en lenguaje Cython se
obtuvo que el tiempo de ejecución descendió al orden de cientos de nanosegundos, así
como también la carga computacional.
De acuerdo con los resultados obtenidos, se decidió utilizar el algoritmo de Region Gro-
wing, ya que si bien el método de segmentación por piel arroja buenos resultados en
terminos de extracción de las zonas que contienen piel, deja pasar regiones que no
corresponden a piel y asimismo devuelve regiones correspondientes a los brazos y el
rostro, lo que hace necesario adicionar una sub-etapa más de segmentación, mientras
que el algoritmo de Region Growing permite obtener directamente la region segmentada
de la escena y es invariante a la iluminación al trabajar únicamente sobre el mapa de
profundidad.
29
3. RESULTADOS DE CLASIFICACIÓN
Fuente: El autor.
30
Falsos negativos (FN por sus siglas en inglés): es el número de clasificaciones
falsas incorrectas.
TP + TN
Accuracy = (15)
TP + FP + FN + TN
La exactitud únicamente debe ser utilizada cuando el número de muestras tanto de entre-
namiento como de prueba es similar para cada clase, de lo contrario la métrica siempre
tendrá un sesgo hacia la clase que tenga mayor número de muestras.
3.1.2. Precisión
Evalúa el número de clasificaciones correctas para cada clase de prueba; es decir, cuán-
tas clasificaciones verdaderas son realmente verdaderas para cada clase, esto en la MC
se describe en la Ecuación 16. La precisión al igual que la exactitud, toma valores de
cero a uno (o cero a cien si se representa como porcentaje) siendo cero una precisión
muy baja y uno una precisión muy alta.
TP
P recision = (16)
TP + FP
31
3.1.3. Sensibilidad o Recall
Indica qué número de muestras que corresponden a una clase fueron clasificadas dentro
de ella para cada muestra evaluada; es decir, cuántas clasificaciones que debían ser ver-
daderas fueron clasificadas como verdaderas, esto en la MC se describe en la Ecuación
17. La sensibilidad también toma valores de cero a uno (o cero a cien si se representa
como porcentaje) siendo cero una sensibilidad muy baja y uno una sensibilidad muy alta.
TP
Recall = (17)
TP + FN
A primera vista la precisión y la sensibilidad parecen ser iguales, pero la diferencia radica
en que la precisión tiene en cuenta los falsos positivos mientras que la sensibilidad tiene
en cuenta los falsos negativos.
3.1.4. F1 -Score
Para conocer el rendimiento general del modelo habitualmente se calcula la relación en-
tre las medidas de precisión y sensibilidad mediante una media harmonica, este indicador
es conocido como F1 -Score y es calculado mediante la Ecuación 18
P recision · Recall
F1 Score = 2 · (18)
P recision + Recall
En el Apéndice A se muestran las matrices de confusión para las señas estáticas. Para
cada matriz de confusión se analizaron las cuatro métricas mencionadas en la sección
anterior, determinando mediante la precisión qué descriptor es el más adecuado y, me-
diante la exactitud y la métrica F1 -Score qué clasificador es el más adecuado.
32
clasificador y en la Figura 20 se observan gráficamente los datos de las tablas de la Fi-
gura 19.
Fuente: El autor.
Para el clasificador de Naive Bayes se obtiene una alta precisión con el descriptor U-LBP
sobre los otros dos descriptores (ver Figura 20); sin embargo, los valores obtenidos no
superan el umbral de 0,86 como se observa en su respectiva tabla en la Figura 19. Por
otro lado, para los clasificadores SVM, ANN y KNN se obtienen resultados superiores
tanto con el descriptor HOG como con el descriptor U-LBP, como se puede observar en
las líneas de color azul de las gráficas de la Figura 20. Descartando el descriptor de
Firma del Contorno por sus bajos resultados y asimismo el clasificador de Naive Bayes
que igualmente presenta una precisión más baja que los demás clasificadores, se tiene
que para el clasificador SVM la precisión promedio del descriptor HOG es de 0, 97 y
la del descriptor U-LBP es de 0,91; para el clasificador ANN la precisión promedio del
33
Figura 20: Gráficas de precisión de señas estáticas.
Fuente: El autor.
Por otro lado, en la Figura 21 se muestra la tabla de los resultados de exactitud calculados
con las matrices de confusión del Apéndice A de cada descriptor contra cada clasificador.
Fuente: El autor.
34
con respecto a los demás datos. Omitiendo los datos anteriores se tiene que la exactitud
más baja es de 0, 8389 para el descriptor U-LBP con el clasificador ANN y la exactitud
más alta es de 0, 9806 para el descriptor HOG con el clasificador SVM.
Fuente: El autor.
Se observa que para el descriptor HOG el resultado más alto se obtiene con el clasifica-
dor SVM con un puntaje de 0, 97 y el resultado más bajo se obtiene con el clasificador
Naive Bayes con un puntaje de 0, 48; para el descriptor U-LBP el resultado más alto tam-
bién se obtiene con el clasificador SVM con un puntaje de 0, 91 y el resultado más bajo
igualmente con el clasificador Nave Bayes con un puntaje de 0, 75; finalmente, para el
descriptor Firma del Contorno el resultado más alto se obtiene con el clasificador KNN
con un puntaje de 0, 32 y el resultado más bajo se obtiene con el clasificador Naive Bayes
con un puntaje de 0, 08.
35
número de muestras con respecto a los demás clasificadores y además se observa que
el descriptor HOG junto con el clasificador SVM permite una mejor clasificación de las
muestras de prueba.
Fuente: El autor.
36
Figura 24: Tabla de precisión de señas dinámicas
Fuente: El autor.
Por otro lado, en la Figura 25 se muestra la tabla para la métrica F1 -Score obtenida de
las matrices de confusión del Apéndice B y en la Figura 26 se muestra una gráfica con
los resultados promedio obtenidos para cada clasificador.
Fuente: El autor.
37
Figura 26: Gráfica de resultados promedio de la métrica F1 -Score para señas dinámicas
Fuente: El autor.
Fuente: El autor.
Al igual que para el caso de las señas estáticas se obtiene que el clasificador SVM
tiene una mayor exactitud de clasificación con un puntaje de 0, 9400 frente a los demás
clasificadores que tienen una exactitud de 0, 8050, 0, 8800 y 0, 8850 para Random Forest,
KNN y Naive Bayes respectivamente; de manera que se selecciona el clasificador SVM.
38
4. DESARROLLO DE LA APLICACIÓN
Fuente: El autor.
39
usuario elija la seña que desea practicar, un recuadro donde se muestra el ejemplo de la
seña que el usuario debe ejecutar (que es un video para el caso de las señas dinámicas
y una fotografía para el caso de las estáticas) y las instrucciones de ejecución.
Fuente: El autor.
Si bien la aplicación está escrita en Python, los tiempos de ejecución son cortos debido
a que gran parte de los componentes están hechos con Cython o C/C++ y se comunican
con Python a través de wrappers y módulos compilados, lo que se traduce en un ren-
dimiento similar al de un programa compilado, con una penalización del 3 % al 10 % en
tiempo de ejecución y uso de recursos durante los procedimientos de mayor demanda
computacional; lo anterior permite no solo proporcionarle al usuario una mejor experien-
cia durante el uso de la aplicación, sino también que la aplicación pueda ser utilizada en
equipos con menores prestaciones de hardware siempre y cuando cuenten con todas las
dependencias de software necesarias.
En la Figura 30 se observa una tabla con el tiempo de ejecución promedio de los prin-
cipales componentes de la aplicación; los valores presentados pueden variar según la
cantidad de puntos que haya en las imágenes analizadas entre el 10 % y 15 % del valor
40
presentado hacia arriba o hacia abajo. En el cálculo del tiempo de clasificación tanto de
las señas estáticas como las dinámicas se tuvo en cuenta la extracción de descriptores,
la normalización de los vectores, la reducción dimensional con PCA y la clasificación.
Fuente: El autor.
De acuerdo con los datos de la tabla de la Figura 30, el tiempo de ejecución de la apli-
cación durante la práctica de señas estáticas es de aproximadamente 233, 7315 ms y
durante la práctica de las señas dinámicas es de 375,1995 ms, lo anterior sin tener en
cuenta el tiempo que el usuario tarda en ejecutar la seña ni el tiempo de arranque de la
aplicación que pueden variar entre diferentes personas y equipos respectivamente.
Como se observa, las etapas más críticas son las de búsqueda y validación de la mano,
con una duración de 188, 0412 ms y la clasificación de las señas dinámicas con una du-
ración de 186, 7470 ms; lo anterior puede ser optimizado empleando un clasificador más
robusto que se encargue de detectar y validar la mano en una sola operación, aunque
eso puede suponer un mayor costo computacional y optimizando la extracción del des-
criptor de las señas dinámicas. Sin embargo, con los valores obtenidos se garantiza que
el usuario puede obtener una respuesta casi inmediata durante el uso de los diferentes
componentes de la aplicación.
41
4.1. Resultados de encuestas
Cada pregunta de la encuesta tiene tres posibles respuestas categóricas: Malo, Regular
y Bueno; luego de obtener las respuestas de los usuarios se extrajo el porcentaje para
cada tipo respuesta por pregunta y se representó en una gráfica para analizar las dife-
rentes variables. En la Figura 31 se muestran los resultados obtenidos.
Fuente: El autor.
En cuanto al tiempo que toman los dos procesos más críticos en términos computaciona-
les, de la gráfica de la Figura 31 se observa que el 60 % de los encuestados consideran
que la aplicación tiene un buen tiempo de arranque mientras que el 40 % restante con-
sidera que tiene un tiempo de arranque regular; por otro lado, el 80 % considera que el
tiempo de reconocimiento es bueno mientras que el 20 % considera que es regular. De
los resultados anteriores se observa que un gran porcentaje de los encuestados conside-
42
ra que la aplicación tiene un buen tiempo de arranque y de reconocimiento de las señas;
es importante tener en cuenta que algunos voluntarios experimentaron el tiempo de car-
ga inicial de la aplicación que toma más tiempo en comparación con los demás inicios,
principalmente por el tiempo que tarda en cargar los modelos que deben ser leídos de
archivos de texto plano y cargados a la RAM al inicio de la aplicación.
43
5. CONCLUSIONES
44
alta con el clasificador SVM con un puntaje de 0, 9400 junto con el valor de F1 -Score más
alto para el mismo clasificador con un puntaje de 0, 9390. De acuerdo con lo anterior,
para la clasificación de las señas estáticas se eligió el clasificador HOG junto con el
clasificador SVM y para las señas dinámicas se empleó el descriptor propuesto basado
en la trayectoria junto con el clasificador SVM.
Por último, de acuerdo con las encuestas realizadas a los voluntarios, se comprobó que
la aplicación tiene un tiempo de respuesta bastante bueno tanto en el arranque con un
60 % de aceptación como en el reconocimiento de las señas con un 80 % de aceptación, la
precisión de las señas dinámicas tiene muy buenos resultados con un 80 % de aceptación
pero para las señas estáticas se presentan fallas debido principalmente a los cambios
fuertes de iluminación, que la aplicación es intuitiva y fácil de manejar pero sin embargo
es importante mejorar el diseño gráfico y que la aplicación diseñada representa una
buena herramienta para el aprendizaje.
En cuanto a los descriptores de las señas estáticas, es necesario tener en cuenta que
si bien el HOG demostró entregar mejores resultados con respecto a los demás descrip-
tores, no es invariante a la iluminación, por lo que en condiciones de iluminación preca-
rias puede generar la propagación de falsos positivos y falsos negativos en el sistema
y también que el sensor Microsoft Kinect no puede ser usado en exteriores puesto que
45
entornos con abundante luz natural pueden causar sobre-exposición de las imágenes
RGB y generar ruido en el mapa de profundidad; de modo que emplear un sensor más
robusto y proponer un descriptor basado únicamente en información tridimensional (co-
mo descriptores sobre la nube de puntos de la mano) podría mejorar considerablemente
el rendimiento de la aplicación en cualquier entorno, aunque igualmente se sacrificaría
costo computacional.
46
Referencias
Abadi, M., Agarwal, A., Barham, P., Brevdo, E., Chen, Z., Citro, C., Corrado, G. S., Davis,
A., Dean, J., Devin, M., Ghemawat, S., Goodfellow, I., Harp, A., Irving, G., Isard, M., Jia,
Y., Jozefowicz, R., Kaiser, L., Kudlur, M., Levenberg, J., Mané, D., Monga, R., Moore,
S., Murray, D., Olah, C., Schuster, M., Shlens, J., Steiner, B., Sutskever, I., Talwar, K.,
Tucker, P., Vanhoucke, V., Vasudevan, V., Viégas, F., Vinyals, O., Warden, P., Watten-
berg, M., Wicke, M., Yu, Y., and Zheng, X. (2015). TensorFlow: Large-scale machine
learning on heterogeneous systems.
Behnel, S., Bradshaw, R., Citro, C., Dalcin, L., Seljebotn, D. S., and Smith, K. (2011).
Cython: The best of both worlds. Computing in Science and Engineering, 13(31–39).
Bradski, G. (2000). The opencv library. Dr. Dobb’s Journal of Software Tools.
Chana, C. and Jakkree, S. (2016). Hand gesture recognition for thai sign language in
complex background using fusion of depth and color video. University of Technology
Thanyaburi, Department of Electronics and Telecommunication Engineering.
de la Escalera, A., Armingol, J. M., García, F., Gómez, D. M., and Al-Kaff, A. H. (2016).
Introducción a la visión por computador: desarrollo de aplicaciones con opencv.
Heikkilä, M., Pietikäinen, M., and Schmid, C. (2009). Description of interest regions with
local binary patterns. Pattern Recognition, 42(3):425 – 436.
47
Kadambi, A., Bhandari, A., and Raskar, R. (2014). 3d depth cameras in vision: Benefits
and limitations of the hardware.
Khamar, S., Ganesan, P., Kanlist, V., Sathish, B. S., and Merlin, J. (2015). Comparative
study of skin color detection and segmentation in hsv and ycbcr color space.
López P., A., Valveny, E., and Vanrell, M. (2015). Detección de objetos.
Meng, H., Furao, S., and Jinxi, Z. (2014). Hidden markov models based dynamic hand
gesture recognition with incremental learning method.
Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., Blondel,
M., Prettenhofer, P., Weiss, R., Dubourg, V., Vanderplas, J., Passos, A., Cournapeau,
D., Brucher, M., Perrot, M., and Duchesnay, E. (2011). Scikit-learn: Machine learning
in python. Journal of Machine Learning Research, 12:2825–2830.
Pietikäinen, M., Hadid, A., Zhao, G., and Ahonen, T. (2011). Computer Vision Using Local
Binary Patterns. Springer Science and Business Media.
48
POUDEL, R. P. (2014). 3d hand tracking. Bournemouth University.
Puneet Kumar, J. and Seba, S. (2013). An adaptative single seed based region growing
algorithm for color image segmentation.
Rodríguez, C. P., Pineda, J. A., and Sánchez, D. F. (2013). Software que captura, por
medio de kinect, los datos de las señas manuales y los traduce a texto.
Sánchez, R. A. and Hurtado, J. I. (2015). Sistema intérprete del lengaje de señas colom-
biano (lsc) usando el sensor kinect.
Vargas, L., Barba, L., and Mattos, L. (2010). Sistema de identificación de lenguaje de
señas usando redes neuronales artificiales.
Vogler, C. and Metaxas, D. (2001). A framework for recognizing the simultaneous aspects
of american sign language. University of Pennsylvania, Department of Computer and
Information Science.
Wobbrock, J. O., Wilson, A. D., and Li, Y. (2007). Gestures without libraries, toolkits or
training: A $1 recognizer for user interface prototypes.
49
APÉNDICES
(c) SIGNATURE
(c) SIGNATURE
50
(a) HOG (b) U-LBP
(c) SIGNATURE
(c) SIGNATURE
51
B. Matrices de confusión de señas dinámicas
52
C. Formato de encuesta
A continuación encontrará una encuesta de nueve (9) preguntas que resumen su experiencia con la aplicación en
terminos de efectividad y velocidad de la aplicación desarrollada.
Cada pregunta cuenta con tres posibles respuestas: Malo, Regular y Bueno. Por favor responda las preguntas de
acuerdo con su experiencia con el uso de la aplicación
Puntaje
No. Pregunta
Malo Regular Bueno
Cómo considera el tiempo de arranque de la aplicación
1
53