Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
1
PROTOTIPO TRADUCTOR EN TIEMPO REAL PARA LA POBLACIÓN SORDA
EN COLOMBIA
Autores:
JOHAN DANIEL AGUIRRE CARPETA
DANIEL MAURICIO VALDERRAMA PERDOMO
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
FACULTAD TECNOLÓGICA
TECNOLOGÍA EN SISTEMATIZACIÓN DE DATOS
BOGOTÁ DC.
2018
2
PROTOTIPO TRADUCTOR EN TIEMPO REAL PARA LA POBLACIÓN SORDA
EN COLOMBIA
Autores:
JOHAN DANIEL AGUIRRE CARPETA
DANIEL MAURICIO VALDERRAMA PERDOMO
Trabajo de tesis para optar el título de Tecnólogo en Sistematización de Datos
Director:
DARIN JAIRO MOSQUERA
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
FACULTAD TECNOLÓGICA
TECNOLOGÍA EN SISTEMATIZACIÓN DE DATOS
BOGOTÁ DC.
2018
3
NOTA DE ACEPTACIÓN
__________________________________
__________________________________
__________________________________
__________________________________
__________________________________
________________________
PRESIDENTE DEL JURADO
________________________
JURADO
Bogotá, 12 de Octubre de 2018
4
AGRADECIMIENTOS
Al Ingeniero Johan Aguirre, coautor de este trabajo, por ser un gran profesional y
un amigo desde el primer semestre que cursamos juntos en la Universidad; sin
sus conocimientos técnicos, experiencia y compromiso, esta causa no hubiese
sido posible.
Al profesor Darin Jairo Mosquera por creer firmemente en esta propuesta de grado
y brindar su seguimiento al desarrollo de este trabajo.
Al profesor Luis Alfonso Melo Ospina por ser un claro ejemplo de lo que es ejercer
la docencia, mostrando un inigualable interés en el desarrollo de quienes fuimos
sus alumnos y de quienes aún lo son; buscando siempre incentivar nuestra
curiosidad, una cualidad tan subestimada, y a superarnos cada día como
profesionales y como personas.
Al profesor Luis Felipe Wanumen Silva por su forma de ser tan sencilla, queriendo
trascender el rol de docente y convertirse en un compañero y amigo de cada uno
de sus alumnos
A toda la comunidad de la Alma Máter por darle un giro a mi mentalidad de 180º y
formarme tanto como profesional, como académico y como persona.
A mi madre María Ninfa por su inagotable paciencia e inquebrantable fe en mis
capacidades, porque además de ser la persona que me brindó la oportunidad de
abrir mis ojos al nacer e inculcarme valores durante mi crianza, ella me dio la
oportunidad de estudiar en la Universidad Distrital y siempre fue mi motor en el día
a día; no me queda más que pagarle todo su esfuerzo y apoyo en la aventura que
fue mi carrera presentándome ante ella como un profesional.
A mi difunto padre por quedarse en los últimos momentos de su vida junto a mi
madre.
A mis hermanos Juan Carlos y Luz Maritza por estar ahí conmigo en momentos
difíciles y por haber sido dos pilares fundamentales durante mi infancia y
adolescencia.
A mis mejores amigos y hermanos casi de sangre Guillermo Armando y Hyoandri
por éstos invaluables 10 años de amistad y experiencias que vivimos juntos.
A ti querido(a) lector(a).
Y finalmente a mí mismo por nunca desfallecer y seguir adelante sin dudar en
terminar de dar este primer gran paso y alzar el pie para los que hayan por venir.
Daniel Mauricio.
5
En primera instancia quiero agradecerle a mi amigo y compañero Daniel
Valderrama por su colaboración y dedicación para sacar adelante este proyecto,
por ser parte de la convivencia diaria y estadía de la bella época de la Universidad
.
A mis padres que han sido fuente de valores y de responsabilidades y un ejemplo
a seguir.
A mi novia Vanessa Rodríguez por la ayuda y colaboración prestada.
.
A mis hermanos y amigos.
Johan Daniel
6
CONTENIDO
INTRODUCCIÓN………………………………………………………………………...11
1. PLANTEAMIENTO DEL PROBLEMA .............................................................. 12
1.1. Descripción ................................................................................................ 12
1.2. Formulación ............................................................................................... 12
1.3. Alcance y limitaciones ................................................................................ 13
2. ESTADO DEL ARTE ........................................................................................ 13
2.1. Fuentes de información primaria ................................................................ 13
2.2. Fuentes de información secundaria ........................................................... 14
3. OBJETIVOS ..................................................................................................... 14
4. JUSTIFICACIÓN .............................................................................................. 15
5. MARCO DE REFERENCIA .............................................................................. 18
5.1. Fuentes de información primaria ................................................................ 18
5.2. Fuentes de información secundaria ........................................................... 18
5.3. Proyectos relacionados .............................................................................. 19
6. MARCO TEÓRICO ........................................................................................... 23
6.1. ¿Qué es una aplicación web? ................................................................... 23
6.2. Herramientas de desarrollo ........................................................................ 23
6.3. Metodología de desarrollo RUP ................................................................. 24
6.4. Geometric template matching …………………………………………………27
6.5. Redes neuronales artificiales…………………………………………………..28
7. MARCO CONCEPTUAL ................................................................................... 30
8. FACTIBILIDAD ................................................................................................. 33
8.1. Técnico ...................................................................................................... 33
8.2. Operativo ................................................................................................... 34
8.3. Económico ................................................................................................. 35
8.4. Legal .......................................................................................................... 36
7
9. REQUERIMIENTOS DEL SOFTWARE…………………………………………...40
9.1. Requerimientos funcionales……………………………………………………40
9.2. Requerimientos no funcionales………………………………………………..41
9.3. Definición de actores……………………………………………………………42
9.4. Lista preliminar de casos de uso………………………………………………42
10. FASE DE ANÁLISIS…………………………………………………………………44
10.1. Diagrama de casos de uso.……………………………………………..44
10.2. Diagramas de secuencia.……………………………………………….45
10.3. Diagramas de actividades……………………………………………….47
10.4. Diagramas de colaboración……………………………………………..50
10.5. Diagramas de estados…………………………………………………..51
11. FASE DE DISEÑO…………………………………………………………………..53
11.1. Lista inicial de clases…………………………………………………….53
11.2. Diagrama de clases……………………………………………………...54
11.3. Modelo de interfaz………………………………………………………..55
11.4. Modelo lógico……………………………………………………………..56
11.5. Modelo físico……………………………………………………………...57
11.6. Modelo de datos………………………………………………………….57
11.7. Diccionario de datos……………………………………………………..58
12. FASE DE IMPLEMENTACIÓN……………………………………………………..59
12.1. Construcción de la base de datos……………………………………...59
12.2. Diseño Frontend………………………………………………………….61
12.3. Desarrollo Backend………………………………………………………64
12.4. Proceso de entrenamiento………………………………………………67
12.5. Proceso de reconocimiento……………………………………………..71
12.6. Algoritmos de reconocimiento y sus resultados………………………72
13. FASE DE PRUEBAS………………………………………………………………...78
13.1. Pruebas de automatización……………………………………………..78
13.1.1. Ingreso a la página de inicio…………………………………….79
13.1.2. Autenticación de usuarios……………………………………….80
8
13.1.3. Registro de usuarios……………………………………………..82
14. CONCLUSIONES……………………………………………………………………84
15. RECOMENDACIONES……………………………………………………………...84
16. BIBLIOGRAFÍA………………………………………………………………………86
9
ÍNDICE DE TABLAS
Pág.
Tabla 1: Proyectos relacionados ............................................................................ 16
Tabla 2: Ventajas y desventajas de RUP ............................................................... 27
Tabla 3: Factibilidad Técnica ................................................................................. 33
Tabla 4: Cuantía .................................................................................................... 35
Tabla 5: Resultados de reconocimiento del abecedario usando Geometric
Template Matching………………………………………………………………………74
Tabla 6: Resultados de reconocimiento del abecedario usando redes neuronales
artificiales…………………………………………………………………………………75
Tabla 7: Resultados de reconocimiento del abecedario usando correlación
cruzada……………………………………………………………………………………76
10
ÍNDICE DE FIGURAS
Pág.
Figura 1: Esquema de una aplicación web tradicional ........................................... 23
Figura 2: Interfaz WebSocket en Leap Motion ....................................................... 24
Figura 3: Ciclo de vida RUP ................................................................................... 26
Figura 4: Algoritmo geometric template matching...………………………………… 28
Figura 5: Funcionamiento general de una neurona artificial………………………. 30
Figura 6: Diagrama de casos de uso del prototipo traductor………………………..44
Figura 7: Diagrama de secuencia de login……………………………………………45
Figura 8: Diagrama de secuencia del sistema de entrenamiento…………………..45
Figura 9: Diagrama de secuencia del sistema de reconocimiento…………………46
Figura 10: Diagrama de actividades de login…………………………………………47
Figura 11: Diagrama de actividades del sistema de entrenamiento……………….48
Figura 12: Diagrama de actividades del sistema de reconocimiento………………49
Figura 13: Diagrama de colaboración de login……………………………………….50
Figura 14: Diagrama de colaboración del sistema de entrenamiento y
reconocimiento…………………………………………………………………………...50
Figura 15: Diagrama de estados de login……………………………………………..51
Figura 16: Diagrama de estados del sistema de entrenamiento y
reconocimiento…………………………………………………………………………...52
Figura 17: Diagrama de clases…………………………………………………………54
Figura 18: Modelo de interfaz…………………………………………………………..55
Figura 19: Modelo lógico………………………………………………………………..56
Figura 20: Modelo físico…………………………………………………………………57
Figura 21: Representación gráfica de la entidad Usuario...…………………………57
Figura 22: Representación gráfica de la entidad DiccionarioGestos………………58
Figura 23: Abecedario del lenguaje de señas colombiano………………………….73
Figura 24: Gráfico de barras comparando la precisión de los tres algoritmos de
reconocimiento…………………………………………………………………………...78
11
INTRODUCCIÓN
La evolución de la tecnología que se ha vivido en las últimas décadas, ha puesto a
disposición un enorme volumen de información tanto en calidad como en cantidad.
La disponibilidad y facilidad de acceso a esta, ha facilitado las formas de innovar y
la toma de decisiones de pequeños o grandes proyectos.
Hoy en día las comunicaciones abarcan un papel muy importante en todos los
aspectos de la vida cotidiana y es ahí en donde se tiene que hacer partícipe a todas
las personas, en este caso a las personas sordas, que por esta condición son muy
propensas a ser discriminadas.
El proyecto consiste en proponer un sistema de interacción basado en las
tecnologías de la información, de acuerdo a la creación de una aplicación, que
permita dar soluciones concretas a las situaciones internas que afectan
principalmente a las personas sordas. Este documento muestra las diferentes
problemáticas que tiene esta comunidad y a sí mismo como se plantea una solución
basada en aportes de otros proyectos relacionados con el tema.
12
1. PLANTEAMIENTO DEL PROBLEMA
1.1. Descripción
Las señas y gestos es el principal medio de comunicación entre las personas con
discapacidad auditiva y vocal. Los sordos tienen graves problemas de comunicación
con las personas que pueden escuchar y no saben interpretar las señas y esto hace
que se vea afectada la vida de personas sordas ya que es muy difícil ser entendidos
por personas que no comprenden sus señas y forma de comunicarse.
En el mundo se ha evidenciado diversidad de falencias, con las personas que tienen
discapacidad auditiva o vocal afectando la calidad de vida frente a una educación
virtual y así mismo con el uso de las redes sociales; refiriéndonos a encontrar
oportunidades para este tipo de población sin restricciones y con un fácil manejo en
el mundo virtual.
Aunque en el internet existen muchos diccionarios para estas personas, no son
implementados por ellas o son de baja calidad; el punto de equilibrio de la gestión
de información para ellos se ve afectado frente a cada proceso que exige el internet.
Las personas con problemas vocales y auditivos son igual de competentes que las
demás, de hecho muchas de estas están mejor preparadas .El problema están en
el medio de comunicación ya que la mayoría de nosotros no conocemos el lenguaje
de señas y por alguna razón no podemos aprenderlo. Muchas veces hacemos uso
de algún intérprete pero ¿qué pasa si no tenemos uno disponible en el momento? ,
entonces es ahí en donde hacemos uso de la tecnología.
1.2. Formulación
¿Cómo fortalecer la comunicación de personas con discapacidad vocal y auditiva
mediante una aplicación con lineamientos adecuados dando uso de una
herramienta informática construida para tal fin?
1.3. Alcance y limitaciones
13
Alcance
La investigación abarca únicamente la población con discapacidad
auditiva y vocal de una fundación en Bogotá.
El proyecto consiste en el desarrollo de un prototipo de sistema traductor
en tiempo real para sordos, captando los movimientos de sus manos.
Limitaciones
La etapa de tiempo en la recolección de información que permita la
fundación.
Relaciones de información y datos de importancia entre el Instituto
Nacional de Sordos y la fundación.
Autorización requerida para disponer de voluntarios para prueba dentro
de la fundación.
El proyecto implementará un diccionario estático para articular frases en
lugar de utilizar técnicas de Inteligencia Artificial.
2. ESTADO DEL ARTE
2.1. Fuentes de información primaria:
Jorge Enrique Leal Rodríguez, traductor de español a lengua de
señas [online]. Colombia: 2012 Disponible en:
https://www.youtube.com/watch?v=h1RQcWtLY28&feature=youtu.be
Dr. Hernando Cabarcas Antequera, Diccionario básico de la lengua de
señas colombiana [online]. Colombia: 2006 Disponible en:
http://www.ucn.edu.co/e-discapacidad/Documents/36317784-
Diccionario-lengua-de-senas.pdf
Mineducación, Instituto nacional para sordos [online]. Colombia:
Disponible en:
http://www.insor.gov.co/entidad/publicaciones-6/
2.2. Fuentes de información secundaria:
14
Periódico en línea “Portafolio Colombia digital” [online]. Colombia: 2013
Disponible en:
http://www.portafolio.co/tendencias/traductor-colombiano-acorta-
diferencias-red-81424
Periódico en línea “Periodo digital” [online]. Colombia: 2013 Disponible
en:
https://colombiadigital.net/actualidad/noticias/item/5452-colombiano-
desarrolla-primer-traductor-online-de-lenguas-a-senas.html
Denise Araujo, Nuevo traductor en Internet. Colombia: 2014 Disponible
en:
http://www.buendiario.com/nuevo-traductor-en-internet-espanol-
lenguaje-de-senas/
3. OBJETIVOS
General
Desarrollar una aplicación que brinde una mayor comunicación e
integración para las personas con discapacidad auditiva y vocal.
Específicos
Ofrecer a las personas con discapacidad auditiva y vocal, información
necesaria con el instituto nacional de sordos para un contacto permanente.
Brindar un fácil e interactivo manejo a la aplicación para la comunicación
con las personas con discapacidad auditiva.
Identificar los diccionarios establecidos por la ley para elaborar de una
manera efectiva la simulación en la aplicación.
15
4. JUSTIFICACIÓN
Se realiza el bosquejo que hace referencia a la problemática que tienen las
personas sordas en donde con la ayuda de la tecnología se pueden superar muchas
barreras que dificultan o limitan la libertad de acceso y comunicación, de acuerdo a
esto se plantea la aplicación donde la población directamente beneficiaria tendrá
fácil acceso por los módulos en señalización; cuyo fin es facilitar una comunicación
amplia y sin fronteras. Por otra parte identificando varias aplicaciones que
actualmente están en línea y haciendo uso de ellas, los servicios son de baja
calidad, es por esto que la aplicación que se está diseñando es primordial para toda
esta población.
A continuación se realiza un cuadro comparativo en el que se analizara las
semejanzas entre el proyecto propuesto y los proyectos desarrollados en la
actualidad (mirar tabla 1).
Tabla 1: Proyectos relacionados
PROYECTO PROYECTOS RELACIONADOS
16
El proyecto consiste en hacer una
aplicación que se maneje con LEAP
MOTION donde el manejo de
información se hace por un enlace
donde la persona interactúa con sus
manos y el programa identifica la
señal, traduciéndola en palabras o en
voz en tiempo real.
La Interfaz que será web
Soporte de traducción en español
Se manejará en línea
* Proloquo4Text: Aplicación para
personas mudas
Utiliza el sistema de texto de voz para reproducir todas las palabras y frases que la persona quiera decir a otra persona. Con una interfaz simple y altamente personalizable, esta aplicación utiliza los altavoces de un Smartphone para facilitar la conversación. Tiene soporte para 18 idiomas diferentes Para descargar en un iPhone o iPad es necesario pagar alrededor de 130 dólares.
* Aplicación para personas con
discapacidad
El plus de SpeechTrans es no tener que depender del lenguaje de señas para que la persona se pueda comunicar, ya que la aplicación lee todo lo que decimos para mostrar en forma de texto en la pantalla de tu dispositivo. Captura en video la señalización de una persona *MyEarDroid
Es una aplicación de Android para gente con discapacidad auditiva que le notifica al usuario sobre los sonidos que han ocurrido en su alrededor. La aplicación produce vibraciones y notificaciones visuales para alertar al usuario que algo ha causado un sonido en su hogar.
17
La aplicación reconoce sonidos como timbres, llamadas y alarmas. Si MyEarDroid no puede identificar un sonido del hogar, se pueden grabar sonidos y agregarlos a la lista. *Sordo Ayuda
Facilita la comunicación para las personas con discapacidad auditiva. La aplicación traduce voz a texto para que el usuario pueda leer lo que se haya dicho. Otra característica útil de Sordo Ayuda es que puede traducir texto a voz. *AMPDA (Sordomudos) Es una aplicación que facilita la comunicación para aquellas personas con discapacidad auditiva que usan la lengua de señas. La aplicación contiene un abecedario dactilológico de letras acompañadas con sonidos e imágenes. El usuario puede usar el abecedario para aprender la lengua de señas. Incluye, además, una base de palabras predefinidas clasificadas en categorías diferentes, como animales y colores. Esta función sirve como una biblioteca que se puede consultar rápidamente para ver las traducciones de las palabras a la lengua de señas en vez de deletrear cada una con el abecedario dactilológico. La aplicación está disponible para el sistema operativo Android, y actualizaciones recientes indican que la próxima versión incluirá más sonidos para acompañar las palabras escritas por el usuario para que la gente oyente pueda oirlas.
18
*¿De qué hablan?
Es una aplicación que intenta ayudar a gente con discapacidades auditivas a entender los contextos de conversaciones cotidianas y formales.
Estructurado en forma de juego, la aplicación muestra fotos de diferentes situaciones (como una conversación entre un doctor y un paciente en tres lugares distintos) y el usuario tiene que escoger la opción que tiene más sentido en el contexto de la conversación.
5. MARCO DE REFERENCIA
5.1. Fuentes de información primaria:
Jorge Enrique Leal Rodríguez, traductor de español a lengua de
señas [online]. Colombia: 2012 Disponible en:
https://www.youtube.com/watch?v=h1RQcWtLY28&feature=youtu.be
Dr. Hernando Cabarcas Antequera, Diccionario básico de la lengua de
señas colombiana [online]. Colombia: 2006 Disponible en:
http://www.ucn.edu.co/e-discapacidad/Documents/36317784-
Diccionario-lengua-de-senas.pdf
Mineducación, Instituto nacional para sordos [online]. Colombia:
Disponible en: http://www.insor.gov.co/entidad/publicaciones-6/
5.2. Fuentes de información secundaria:
Periódico en línea “Portafolio Colombia digital” [online]. Colombia: 2013
Disponible en:
http://www.portafolio.co/tendencias/traductor-colombiano-acorta-
diferencias-red-81424
19
Periódico en línea “Periodo digital” [online]. Colombia: 2013 Disponible
en:
https://colombiadigital.net/actualidad/noticias/item/5452-colombiano-
desarrolla-primer-traductor-online-de-lenguas-a-senas.html
Denise Araujo, Nuevo traductor en Internet. Colombia: 2014 Disponible
en:
http://www.buendiario.com/nuevo-traductor-en-internet-espanol-
lenguaje-de-senas/
5.3. Proyectos relacionados
Título: Proloquo4Text: Aplicación para personas mudas
Autor: CAMFIND
Año: 2016
Descripción:
Utiliza el sistema de texto de voz para reproducir todas las palabras y frases
que la persona quiera decir a otra persona.
Con una interfaz simple y altamente personalizable, esta aplicación utiliza
los altavoces de un Smartphone para facilitar la conversación.
Tiene soporte para 18 idiomas diferentes
Para descargar en un iPhone o iPad es necesario pagar alrededor de 130
dólares.
20
Título: Aplicación para personas con discapacidad
Autor: Speechtrans TM
Año: 2016
Descripción:
El plus de SpeechTrans es no tener que depender del lenguaje de señas
para que la persona se pueda comunicar, ya que la aplicación lee todo lo
que decimos para mostrar en forma de texto en la pantalla de tu dispositivo.
Captura en video la señalización de una persona.
Título: Aplicación para personas con problemas auditivos
Autor: TruLink
Año: 2015
Descripción:
Es una aplicación ideal para personas con pérdida auditiva.
Las personas pueden tener la comodidad por todos lados puesto que
aprovecha la conexión de los audífonos con el dispositivo para ajustar
fácilmente el volumen según sea necesario.
La aplicación sólo es compatible con los audífonos de las siguientes
marcas: Starkey, Audibel, nuear, Microtech y AGX.
TruLink está disponible de manera gratuita y es compatible con iOS 7.1 en
adelante.
Título: MyEarDroid
Autor: Tecnalia - Salud
Año: 2014
Descripción:
Es una aplicación de Android para gente con discapacidad auditiva que le
notifica al usuario sobre los sonidos que han ocurrido en su alrededor.
La aplicación produce vibraciones y notificaciones visuales para alertar al
usuario que algo ha causado un sonido en su hogar.
21
La aplicación reconoce sonidos como timbres, llamadas y alarmas. Si
MyEarDroid no puede identificar un sonido del hogar, se pueden grabar
sonidos y agregarlos a la lista.
Título: Sordo Ayuda
Autor: Hexxce
Año: 2015
Descripción:
Facilita la comunicación para las personas con discapacidad auditiva.
La aplicación traduce voz a texto para que el usuario pueda leer lo que se
haya dicho.
Otra característica útil de Sordo Ayuda es que puede traducir texto a voz.
Hay una versión gratis; pero, si se quiere usar sin anuncios, se tiene que
comprar la versión PRO.
Título: AMPDA (Sordomudos)
Autor: AMI Inc.
Año: 2014
Descripción:
Es una aplicación que facilita la comunicación para aquellas personas con
discapacidad auditiva que usan la lengua de señas.
La aplicación contiene un abecedario dactilológico de letras acompañadas
con sonidos e imágenes.
El usuario puede usar el abecedario para aprender la lengua de señas.
Incluye, además, una base de palabras predefinidas clasificadas en
categorías diferentes, como animales y colores.
Esta función sirve como una biblioteca que se puede consultar rápidamente
para ver las traducciones de las palabras a la lengua de señas en vez de
deletrear cada una con el abecedario dactilológico.
La aplicación está disponible para el sistema operativo Android, y
actualizaciones recientes indican que la próxima versión incluirá más
sonidos para acompañar las palabras escritas por el usuario para que la
22
gente oyente pueda oírlas.
Título: Signslator
Autor: TBWA\Spain
Año: 2014
Descripción:
Traduce del español a la lengua de señas.
Es una herramienta para que la gente sorda y la gente oyente pueda
comunicarse con más facilidad.
La gente oyente puede grabar su voz y ver las palabras deletreadas por una
persona en la pantalla, y la gente sorda puede deletrear las palabras
usando lengua de señas en la pantalla para que la aplicación pueda
decirlas en voz alta.
Título: ¿De qué hablan?
Autor: RVG
Año: 2014
Descripción:
Es una aplicación que intenta ayudar a gente con discapacidades auditivas
a entender los contextos de conversaciones cotidianas y formales.
Estructurado en forma de juego, la aplicación muestra fotos de diferentes
situaciones (como una conversación entre un doctor y un paciente en tres
lugares distintos) y el usuario tiene que escoger la opción que tiene más
sentido en el contexto de la conversación.
Se ofrece gratis para Android.
23
6. MARCO TEÓRICO
6.1. ¿Qué es una aplicación web?
Una Aplicación Web es un sitio donde la entrada de datos afecta al estado de la
lógica. Es decir, una Aplicación Web se sirve de un sitio o página como entrada a
una verdadera aplicación. Un buscador forma parte de un sitio Web, mientras que
si se acepta información para registrar a un usuario, se trata de una Aplicación Web.
La arquitectura global de una Aplicación Web es idéntica a la de un sitio Web,
aunque su desarrollo sea más elaborado.
Figura 1. Esquema de una aplicación web tradicional
6.2. Herramientas de desarrollo
Interfaz de WebSocket
El servicio Leap Motion ejecuta un servidor WebSocket en el dominio localhost en
el puerto 6437. La interfaz WebSocket proporciona datos de seguimiento en forma
de mensajes JSON. Se dispone de una biblioteca cliente JavaScript que consume
los mensajes JSON y presenta los datos de seguimiento como objetos JavaScript
normales.
24
Figura 2: Interfaz WebSocket en una típica aplicación para Leap Motion.
1. El servicio Leap Motion proporciona un servidor WebSocket que escucha
en http://127.0.0.1:6437 .
2. El panel de control Leap Motion permite a los usuarios finales habilitar o
deshabilitar el servidor WebSocket.
3. El servidor envía datos de seguimiento en forma de mensajes JSON. Una
aplicación puede enviar mensajes de configuración de nuevo al servidor.
4. La leap.jsbiblioteca JavaScript de cliente se debe utilizar en aplicaciones
web. La biblioteca establece la conexión con el servidor y consume los
mensajes JSON.
6.3. Metodología de desarrollo RUP
RUP es un proceso formal: Provee un acercamiento disciplinado para asignar tareas
y responsabilidades dentro de una organización de desarrollo. Su objetivo es
asegurar la producción de software de alta calidad que satisfaga los requerimientos
de los usuarios finales (respetando cronograma y presupuesto). Fue desarrollado
por Rational Software, y está integrado con toda la suite Rational de herramientas.
Puede ser adaptado y extendido para satisfacer las necesidades de la organización
25
que lo adopte. Es guiado por casos de uso y centrado en la arquitectura, y utiliza
UML como lenguaje de notación.
Principales Características
Desarrollo iterativo.
Administración de requisitos.
Uso de arquitectura basada en componentes.
Control de cambios.
Modelado visual del software.
Verificación de la calidad del software.
Pretende implementar las mejores prácticas en Ingeniería de Software, de
forma que se adapte a cualquier proyecto.
El ciclo de vida
El ciclo de vida RUP (Rational Unified Process) es una implementación del
desarrollo en espiral. Fue creado ensamblando los elementos en secuencias semi-
ordenadas. El ciclo de vida organiza las tareas en fases e iteraciones. RUP divide
el proceso en cuatro fases, dentro de las cuales se realizan pocas pero grandes y
formales iteraciones en número variable según el proyecto. En la Figura muestra
cómo varía el esfuerzo asociado a las disciplinas según la fase en la que se
encuentre el proyecto RUP. Las primeras iteraciones (en las fases de Inicio y
Elaboración) se enfocan hacia la comprensión del problema y la tecnología, la
delimitación del ámbito del proyecto, la eliminación de los riesgos críticos, y al
establecimiento de una baseline (línea base) de la arquitectura. Durante la fase de
inicio las iteraciones hacen mayor énfasis en actividades de modelado del negocio
y de requisitos. En la fase de elaboración, las iteraciones se orientan al desarrollo
de la baseline de la arquitectura, abarcan más los flujos de trabajo de requisitos,
modelo de negocios (refinamiento), análisis, diseño y una parte de implementación
orientado a la baseline de la arquitectura.1
1 Taft Darryl K. IBM Acquires Rational [En linea]. 2002.< http://www.eweek.com/pc-hardware/ibm-scoops-up-rational> [Citadoel 11 de Octubre de 2017]
26
En la fase de construcción, se lleva a cabo la construcción del producto por medio
de una serie de iteraciones. Para cada iteración se seleccionan algunos Casos de
Uso, se refinan su análisis y diseño y se procede a su implementación y pruebas.
Se realiza una pequeña cascada para cada ciclo. Se realizan iteraciones hasta que
se termine la implementación de la nueva versión del producto. En la fase de
transición se pretende garantizar que se tiene un producto preparado para su
entrega a la comunidad de usuarios.2
Como se puede observar en cada fase participan todas las disciplinas, pero
dependiendo de la fase el esfuerzo dedicado a una disciplina varía.
Figura 3: Ciclo de vida RUP.
2 Ibid. p .2.
27
Tabla 2: Ventajas y desventajas del RUP 3
6.4. Geometric template matching
Es una técnica de visión artificial usada para encontrar partes específicas dentro de
una imagen a base de la búsqueda de una información matriz o ‘template’. Esta
técnica se centra en tres pilares principales que son: La generación de candidatos,
el cálculo de una medida de similitud y la toma de decisión. Es ampliamente
utilizada para la manufactura, el control de calidad, sistemas de navegación para
robots y como un método para detectar bordes en una imagen.
El algoritmo básico para el funcionamiento del geometric template matching
consiste en asignar a cada pixel un valor de diferencia entre su entorno y la
imagen matriz, considerando que el ‘radio’ de entorno será de iguales dimensiones
que el ‘template’. Finalmente se buscan los valores mínimos dentro de la matriz
3 Ibid. p. 2.
Ventajas Desventajas
• Evaluación en cada fase que permite
cambios de objetivos.
• Funciona bien en proyectos de
innovación.
• Es sencillo, ya que sigue los pasos
intuitivos necesarios a la hora de
desarrollar el software.
• Seguimiento detallado en cada una
de las fases.
• La evaluación de riesgos es compleja
• Excesiva flexibilidad para algunos
proyectos
• Estamos poniendo a nuestro cliente
en una situación que puede ser muy
incómoda para él.
• Nuestro cliente deberá ser capaz de
describir y entender a un gran nivel de
detalle para para poder acordar un
alcance del proyecto con él.
28
generada, se establece un rango de tolerancia y los valores que permanezcan
dentro de ese rango serán reconocidos como detecciones válidas.
Figura 4: Algoritmo de geometric template matching.
Como se observa en la imagen previa, el ‘template’, en este caso la fotografía de
una mano completa, recorre la imagen sujeta a análisis de izquierda a derecha y de
arriba abajo. El centro del ‘template’ se coloca en el pixel que contendrá el valor de
la diferencia entre el recuadro de cálculo y el recuadro del ‘template’. Cuando se
analiza el entorno de todos los pixeles y se ha asignado a cada uno un valor de di-
similitud se puede desarrollar un mapa de diferencias que muestra en tonos de
negro y blanco que tan diferente es la región de cada pixel con respecto al ‘template’.
En este caso el valor más bajo de diferencia está marcado por el pixel negro más
intenso, correspondiente a la tercera mano de la imagen, indicando que se trata de
una correspondencia perfecta. Es importante aclarar que cuando se trabaja con
intensidades de color, el valor más intenso corresponde a 255 y el menor
corresponde al pixel totalmente blanco y totalmente negro en este ejemplo.4
6.5. Redes neuronales artificiales
4 Detección de objetos mediante el algoritmo template matching, <https://cesartroyasherdek.wordpress.com/2016/02/19/deteccion-de-objetos-iv/> [Citado el 02 de Junio de 2018]
29
Las redes neuronales artificiales son sistemas de procesamiento de la información
cuya estructura y funcionamiento están inspirados en las redes neuronales
biológicas. Consisten en gran número de elementos simples de procesamiento
llamados nodos o neuronas que están organizados en capas. Cada neurona está
conectada con otras funciones mediante enlaces de comunicación, cada uno de los
cuales tiene asociado un peso. Los pesos representan la información que será
usada por la red neuronal para resolver un problema determinado.
Así, las redes neuronales artificiales son sistemas adaptativos que aprenden de la
experiencia, esto es, aprender a llevar a cabo ciertas tareas mediante un
entrenamiento con sistemas ilustrativos .
Mediante este entrenamiento o aprendizaje, las redes neuronales artificiales crean
su propia representación interna del problema, por tal motivo se dice que son auto
organizadas. Posteriormente, pueden responder adecuadamente cuando se les
presentan situaciones a las que no habían sido expuestas anteriormente, es decir,
las redes neuronales artificiales son capaces de generalizar de casos anteriores a
casos nuevos.
Esta característica es fundamental ya que permite a la red responder correctamente
no solo ante informaciones novedosas, sino también ante informaciones
distorsionadas o incompletas.
Neurona artificial
La neurona artificial pretende mimetizar las características más importantes de la
neurona biológica. En general, recibe las señales de entrada de las neuronas
vecinas ponderadas por los pesos de las conexiones. La suma de estas señales
ponderadas proporciona la entrada total o neta de la neurona y, mediante la
aplicación de una función matemática –denominada función de salida-, sobre la
entrada neta, se calcula un valor de salida, el cual es enviado a otras neuronas
(figura 5). Tanto los valores de entrada a la neurona como su salida pueden ser
30
señales excitatorias (cuando el valor es positivo) o inhibitorias (cuando el valor es
negativo).5
Figura 5: Funcionamiento general de una neurona artificial.
7. MARCO CONCEPTUAL
Aplicación (Software): es un conjunto de programas, instrucciones y reglas para
ejecutar ciertas tareas en una computadora u ordenador.6
Arquitectura cliente-servidor: consiste básicamente en una aplicación (el cliente)
que hace una o varias peticiones requests a otra aplicación (el servidor) que genera
su respectiva respuesta response, la cual el cliente verá reflejada en su interfaz o
en su defecto obtendrá un mensaje de error ya sea por un fallo en la comunicación,
violación de protocolos, entre otras causas. Esta arquitectura puede ser
5 ¿Qué son las redes neuronales artificiales? Aplicaciones realizadas en el ámbito de las adicciones, Alfonso Palmer Pol. Universidad de las Islas Baleares < http://disi.unal.edu.co/~lctorress/RedNeu/LiRna001.pdf> [Citado el 02 de Junio de 2018] 6 Diccionario panhispánico de dudas, Real Academia Española [En línea], 2005 <http://dle.rae.es/srv/search?m=30&w=software> [Citado el 11 de Octubre de 2017]
31
implementada tanto de manera local (cliente y servidor alojados en la misma
máquina) como de manera remota (cliente y servidor alojados en máquinas
diferentes).
Base de datos: es un almacén virtual que nos permite guardar grandes cantidades
de información de forma organizada para que luego podamos encontrar y utilizar
fácilmente.
Cibernauta: Se enfoca sobre la persona que navega por internet buscando
información de su interés.
Framework: es el marco o entorno de trabajo donde se desarrolla las prácticas
necesarias para la solución de un problema propuesto y lograr resolver problemas
de similar índole.
Host: es la conexión entre varios computadores que proveen y utiliza los servicios
de esta red como las bases de datos, correos electrónicos, etc.
HTTP (Hypertext Transfer Protocol): el protocolo de transferencia de hipertexto
permite la comunicación de datos a través de la Word Wide Web.
Internet: la internet o “Red Interna” es parte de la definición “Red de redes”, debido
a que se conoce como la interconexión de redes informáticas más grande en el
mundo, permitiendo que miles de computadores, conectados desde diferentes
partes del mundo, puedan comunicarse entre sí, ya sea para informarse sobre
política, economía, arte, tecnología, entre otros temas de interés, o para enviar
correos electrónicos a amigos o conocidos
32
Navegador Web: es una aplicación diseñada para acceder al internet para realizar
consultas, buscar información, servicios, productos, etc. Emplea el uso de
hipertexto, y lenguajes de programación enfocados a la web.
Servidor Web: es la comunicación e interpretación de un programa instalado en
una maquina llamada servidor, la cual procesa del lado del servidor los datos
solicitados por el cliente. Puede ser la comunicación entre el cliente y el servidor
bidireccional, unidireccional, asíncronas, o síncronas, y puede dar como respuesta
en cualquier tipo de lenguaje.
Sitio Web: Un sitio Web es un grupo de páginas Web relacionadas entre sí, las
cuales pueden contener texto, enlaces, imágenes y otros elementos multimedia.
Cualquier persona puede ver su sitio utilizando el nombre de su dominio. Los sitios
Web pueden ser desde simples páginas personales, donde incluir sus aficiones,
hasta complejas aplicaciones empresariales donde realizar transacciones bancarias
y comerciales.
World Wide Web: la red informática mundial, consiste en el enlace de hipermedios
conectados mediante la internet, en el que se accede a través de un navegador
web. Permite obtener mediante esta red toda la información solicitada a través de
la navegación, como videos, texto, audios, etc.
33
8. FACTIBILIDAD
8.1. Técnico
En la parte técnica los recursos a utilizar son gestores de bases de datos, con este
conjunto de programas se organizara el modelo apropiado de recursos del proyecto.
Para este proyecto se utilizará el gestor de base de datos MongoBD debido a que
su estructura es clara, soporta consultas dinámicas y maneja Big data, se usará el
lenguaje de programación JavaScript puesto que tiene accesibilidad en los
navegadores web.
Tabla 3. Factibilidad Técnica. Se presentan todos los recursos para realizar el proyecto con su descripción.
RECURSOS TÉCNICOS PARA EL DESARROLLO DEL PROYECTO
Tipo de recurso
Nombre del
recurso
Descripción Cantidad
Recursos
Humanos
Experto en el área de Desarrollo
Analista 1
Diseñador de Base de Datos y Programador
1
Diseñador 1
Hardware PC (HP® 6300 Pro)
Computador
1
CPU Intel® Core i5 3.0 GHz,
4 GB de RAM
500 GB disco duro
Laptop (HP®
Probook 440 G1)
Computador portátil
1 CPU Intel® Core i5 4200M 2.5 GHz
12 GB de RAM
750 GB disco duro
Software MongoDB Sistema Gestor de Bases de Datos No Relacionales
1
JavaScript Lenguaje de Desarrollo
1
34
Microsoft® Windows 10
Sistema operativo 1
Microsoft®Windows 8.1
Sistema operativo 1
Microsoft® Office 2013
Herramienta para aplicación de ofimática
1
Github Gestión del proyecto 1
8.2. Operativo
La visión operativa, tiene como prioridad comprobar que las personas con
discapacidad auditiva y vocal logren darle un uso apropiado a esta aplicación.
Para esto, el sistema debe contemplar ciertos parámetros importantes al
momento de desarrollarse.
El aplicativo web debe ser de un fácil manejo, intuitivo y didáctico, con el que
podrán visualizar la información correspondiente.
Es importante verificar este software para evidenciar los cambios o menús que
se le puedan habilitar después de las opiniones de los usuarios.
35
8.3. Económico
Tabla 4: Cuantía.
Presupuesto Global del Proyecto
Ítems Unidad (pesos
colombianos)
Total (pesos
colombianos)
Recursos Humanos:
Ingeniero Desarrollador Semi Senior 3’780.000 3’780.000
Ingeniero Desarrollador Junior 2’520.000 2’520.000
Honorarios y servicios personales 200.000 400.000
Transporte: 250.000 500.000
Viáticos: 0 0
Tecnológicos:
Computador de mesa HP® 6300 Pro 555.550 555.550
Computador portátil HP® Probook 440
G1
915.200 915.200
Leap Motion 330.000 330.000
Materiales:
Tablero acrílico con trípode 120x80 cm
(x2)
52.000 104.000
Combo de marcadores borrables +
borrador de tablero (x2)
16.650 33.300
Cuaderno 5 materias grande (x2) 16.000 32.000
Imprevistos 1’800.000 1’800.000
36
8.4. Legal
Se ampara este proyecto en el marco legal constitucional colombiano,
cumpliendo el artículo 15 de la Constitución Política de Colombia, la cual cita lo
siguiente:
“Todas las personas tienen derecho a su intimidad personal y familiar y a su buen
nombre, y el Estado debe respetarlos y hacerlos respetar. De igual modo, tienen
derecho a conocer, actualizar y rectificar las informaciones que se hayan
recogido sobre ellas en los bancos de datos y en archivos de entidades públicas
y privadas. En la recolección, tratamiento y circulación de datos se respetarán la
libertad y demás garantías consagradas en la Constitución. La correspondencia
y demás formas de comunicación privada son inviolables. Sólo pueden ser
interceptados o registrados mediante orden judicial, en los casos y con las
formalidades que establezca la ley. Con el fin de prevenir la comisión de actos
terroristas, una ley estatutaria reglamentará la forma y condiciones en que las
autoridades que ella señale, con fundamento en serios motivos, puedan
interceptar o registrar la correspondencia y demás formas de comunicación
privada, sin previa orden judicial, con aviso inmediato a la Procuraduría General
de la Nación y control judicial posterior dentro de las treinta y seis (36) horas
siguientes. Al iniciar cada período de sesiones el Gobierno rendirá informe al
Congreso sobre el uso que se haya hecho de esta facultad. Los funcionarios que
abusen de las medidas a que se refiere este artículo incurrirán en falta gravísima,
Totales 10’435.200 10’970.050
Fuentes de financiamiento:
Recursos propios: 1’700.000 1’700.000
Prestamos (Entidad:______________) 800.000 1’600.000
Total: 8’000.000 8’000.000
37
sin perjuicio de las demás responsabilidades a que hubiere lugar. Para efectos
tributarios judiciales y para los casos de inspección, vigilancia e intervención del
Estado, podrá exigirse la presentación de libros de contabilidad y demás
documentos privados, en los términos que señale la ley.”7
Enmarcado este artículo se puede trabajar en nuestro proyecto bajo el marco
de constitucionalidad colombiano. Sin embargo por la amplitud del artículo
constitucional, se es necesario cobijar el desarrollo del proyecto bajo unas leyes
que tengan en cuenta el manejo de datos públicos y privados, citando dos leyes
expedidas; la Ley 1266 de 2008 y la Ley 1581 de 2012.
La Ley 1266 de 2008, conocida como “Habeas Data” hace referencia a la
protección de información personal. A pesar de esta rencaminado esta ley para
la protección de datos financieros, también hace énfasis en el manejo de la
información, referenciado en el artículo 4 “Principios de la administración de
datos” diciendo lo siguiente:
“En el desarrollo, interpretación y aplicación de la presente ley, se tendrán en
cuenta, de manera armónica e integral, los principios que a continuación se
establece:
a) Principio de veracidad o calidad de registros o datos. La información contenida
en los bancos de datos debe ser veraz, completa, exacta, actualizada,
comprobable y comprensible. Se prohíbe el registro y divulgación de datos
parciales, incompletos, fraccionados o que induzcan a error
b) Principio de finalidad. La administración de datos debe obedecer a una
finalidad legítima de acuerdo con la Constitución y la Ley. La finalidad debe
informársele al titular de la información previa o concomitantemente con el
otorgamiento de la autorización, cuando ella sea necesaria o en general siempre
que el titular solicite información al respecto;
7 Herramientas Jurídicas Para La Protección De Los Datos Personales En Colombia: Análisis Del Grado De Protección Jurídica Del
Habeas Data. [En Línea], < Http://Repository.Unilibre.Edu.Co/Bitstream/Handle/10901/9677/01%20-
%20proyecto%20de%20grado%20final%20aprobado%2025-07-16%20-%20recomendaciones%20incluidas%20-%2010-08-
16.Pdf?Sequence=1> [Citado El 15 De Junio De 2015]
38
c) Principio de circulación restringida. La administración de datos personales se
sujeta a los límites que se derivan de la naturaleza de los datos, de las
disposiciones de la presente ley y de los principios de la administración de datos
personales especialmente de los principios de temporalidad de la información y
la finalidad del banco de datos. Los datos personales, salvo la información
pública, no podrán ser accesibles por Internet o por otros medios de divulgación
o comunicación masiva, salvo que el acceso sea técnicamente controlable para
brindar un conocimiento restringido sólo a los titulares o los usuarios autorizados
conforme a la presente ley;
d) Principio de temporalidad de la información. La información del titular no podrá
ser suministrada a usuarios o terceros cuando deje de servir para la finalidad del
banco de datos;
e) Principio de interpretación integral de derechos constitucionales. La presente
ley se interpretará en el sentido de que se amparen adecuadamente los derechos
constitucionales, como son el hábeas data, el derecho al buen nombre, el
derecho a la honra, el derecho a la intimidad y el derecho a la información. Los
derechos de los titulares se interpretarán en armonía y en un plano de equilibrio
con el derecho a la información previsto en el artículo 20 de la Constitución y con
los demás derechos constitucionales aplicables;
f) Principio de seguridad. La información que conforma los registros individuales
constitutivos de los bancos de datos a que se refiere la ley, así como la resultante
de las consultas que de ella hagan sus usuarios, se deberá manejar con las
medidas técnicas que sean necesarias para garantizar la seguridad de los
registros evitando su adulteración, pérdida, consulta o uso no autorizado;
g) Principio de confidencialidad. Todas las personas naturales o jurídicas que
intervengan en la administración de datos personales que no tengan la
naturaleza de públicos están obligadas en todo tiempo a garantizar la reserva
de la información, inclusive después de finalizada su relación con alguna de las
labores que comprende la administración de datos, pudiendo sólo realizar
suministro o comunicación de datos cuando ello corresponda al desarrollo de
39
las actividades autorizadas en la presente ley y en los términos de la misma.”8
La Ley 1581 de 2012, conocido como “Régimen General de Protección de
Datos Personales” se ampara el proyecto, citando el artículo 4, la cual dicta de
la siguiente manera:
“Artículo 4°. Principios para el Tratamiento de datos personales. En el desarrollo,
interpretación y aplicación de la presente ley, se aplicarán, de manera armónica
e integral, los siguientes principios:
a) Principio de legalidad en materia de Tratamiento de datos: El Tratamiento a
que se refiere la presente ley es una actividad reglada que debe sujetarse a lo
establecido en ella y en las demás disposiciones que la desarrollen;
b) Principio de finalidad: El Tratamiento debe obedecer a una finalidad legítima
de acuerdo con la Constitución y la Ley, la cual debe ser informada al Titular;
c) Principio de libertad: El Tratamiento sólo puede ejercerse con el
consentimiento, previo, expreso e informado del Titular. Los datos personales no
podrán ser obtenidos o divulgados sin previa autorización, o en ausencia de
mandato legal o judicial que releve el consentimiento;
d) Principio de veracidad o calidad: La información sujeta a Tratamiento debe ser
veraz, completa, exacta, actualizada, comprobable y comprensible. Se prohíbe el
Tratamiento de datos parciales, incompletos, fraccionados o que induzcan a
error;
e) Principio de transparencia: En el Tratamiento debe garantizarse el derecho del
Titular a obtener del Responsable del Tratamiento o del Encargado del
Tratamiento, en cualquier momento y sin restricciones, información acerca de la
existencia de datos que le conciernan;
f) Principio de acceso y circulación restringida: El Tratamiento se sujeta a los
límites que se derivan de la naturaleza de los datos personales, de las
disposiciones de la presente ley y la Constitución. En este sentido, el Tratamiento
8 Política De Tratamiento Protección De Datos Personales De Los Titulares De La Universidad Nacional De Colombia
[En Línea] < Http://Www.Unal.Edu.Co/Contenido/Habeas/Politica%20de%20tratamiento%20de%20datos.Pdf> [Citado
El 10 De Octubre De 2012)
40
sólo podrá hacerse por personas autorizadas por el Titular y/o por las personas
previstas en la presente ley;
Los datos personales, salvo la información pública, no podrán estar disponibles
en Internet u otros medios de divulgación o comunicación masiva, salvo que el
acceso sea técnicamente controlable para brindar un conocimiento restringido
sólo a los Titulares o terceros autorizados conforme a la presente ley;
g) Principio de seguridad: La información sujeta a Tratamiento por el
Responsable del Tratamiento o Encargado del Tratamiento a que se refiere la
presente ley, se deberá manejar con las medidas técnicas, humanas y
administrativas que sean necesarias para otorgar seguridad a los registros
evitando su adulteración, pérdida, consulta, uso o acceso no autorizado o
fraudulento.”9
9. REQUERIMIENTOS DEL SOFTWARE
9.1. Requerimientos funcionales
El sistema contará con una pantalla de inicio de sesión.
El sistema se integrará con el sensor Leap Motion el para recibir fotogramas
en infrarrojo, coordenadas y ángulos de las manos del usuario.
El sistema mostrará un render de las manos del usuario el cual reaccionará
a sus movimientos en tiempo real.
El sistema diferenciará entre señas (movimientos arbitrarios con las manos)
y posturas (cuando las manos mantienen una posición estática).
El usuario podrá entrenar al sistema de reconocimiento creando una seña o
postura de manos, pudiendo éste configurar parámetros como el tamaño de
la muestra, algoritmos de entrenamiento, entre otros.
9 Política de Protección De Datos [En línea] < http://mendebal.com/politica-datos.php> [Citado el 6 de Noviembre de
2017]
41
El sistema permitirá al usuario reentrenar una seña o postura de manos
cuando este lo crea conveniente.
El operador del sistema asignará una palabra del lenguaje español a cada
seña o postura de manos que el usuario exprese basándose en el lenguaje
de señas.
El sistema almacenará todas las señas y posturas de manos entrenadas por
el usuario en una base de datos no relacional.
Cuando el usuario replique una seña o postura de manos frente al sensor, el
sistema realizará una búsqueda en la base de datos para validar su
existencia o no dentro de sus registros.
Una vez la búsqueda determine que la seña o postura de manos existe en la
base de datos, el sistema generará una salida de audio en forma de palabra
en lenguaje español asociada a dicho registro.
9.2. Requerimientos no funcionales
El sistema permitirá al operador del software escoger entre tres métodos para
almacenar señas o posturas de manos: Posicionamiento geométrico 3D (por
defecto), Al Resolución y Baja Resolución; cada método con distintas
características.
El sistema permitirá al operador del software escoger entre tres algoritmos
de entrenamiento disponibles: Geometric Template Matching (por defecto),
Redes Neuronales Artificiales y Correlación Cruzada.
El sistema permitirá adicionalmente configurar parámetros como velocidad
mínima de reconocimiento, velocidad máxima de reconocimiento, cuadros
mínimos para reconocimiento de una entrada, porcentaje mínimo de
coincidencia, tamaño de la muestra de entrenamiento, factor de convolución
(para redes neuronales artificiales) y tiempo máximo de inactividad según el
criterio del operador del software.
Si el usuario así lo desea, es posible usar el visualizador de manos instalado
en el sistema junto a los controladores del Leap Motion.
42
9.3. Definición de actores
Usuario: Cualquier individuo que interactúe con el sensor Leap Motion o con
el software de entrenamiento y reconocimiento.
Administrador: Un tipo especial de usuario. Se trata de una persona con el
suficiente conocimiento del software y del sensor Leap Motion para configurar
el sistema integrado, elegir métodos de reconocimiento, asignar en número
de iteraciones para entrenar una seña o postura de manos, resolver
problemas de conexión, calibrar los motores de reconocimiento y
entrenamiento, etc.
Sensor Leap Motion: Dispositivo encargado de tomar imágenes en
infrarrojo en tiempo real de las manos humanas para posteriormente
analizarlas y generar datos asociados como las coordenadas de posición de
los dedos y manos, sus ángulos, coordenadas, estructura, etc.
Sistema Leap Trainer: Es el núcleo de toda la aplicación el cual consiste en
una herramienta diseñada para manipular los datos e imágenes por segundo
capturadas por el Leap Motion para posteriormente crear nuevas señas y
reconocerlas dependiendo de la interacción que tenga el usuario con el
sensor.
9.4. Lista preliminar de casos de uso
Usuario:
o Iniciar sesión.
o Verificar existencia.
o Validar usuario y contraseña.
o Mover manos.
o Entrenar gesto de manos.
o Hacer gesto de manos.
Administrador:
o Configurar motor de entrenamiento.
o Configurar motor de reconocimiento.
43
Sensor Leap Motion
o Escanear manos.
o Capturar gesto de manos.
o Generar coordenadas de las manos.
Sistema Leap Trainer
o Reconocer gesto de manos.
o Analizar gesto de manos.
o Buscar coincidencia.
o Transformar gesto en voz.
44
10. FASE DE ANÁLISIS
10.1. Diagrama de casos de uso
El sistema está dividido en tres subsistemas: subsistema de entrenamiento,
subsistema de reconocimiento y subsistema de login o ingreso al sistema.
Figura 6: Diagrama de casos de uso del Prototipo traductor.
45
10.2. Diagramas de secuencia
Figura 7: Diagrama de secuencia del módulo de registro y
autenticación de usuarios.
Figura 8: Diagrama de secuencia del sistema de entrenamiento.
46
Figura 9: Diagrama de secuencia del sistema de reconocimiento.
47
10.3. Diagramas de actividades
Figura 10: Diagrama de actividades del sistema de Login.
48
Figura 11: Diagrama de actividades del sistema de entrenamiento.
49
Figura 12: Diagrama de actividades del sistema de reconocimiento.
50
10.4. Diagramas de colaboración
Figura 13: Diagrama de colaboración del sistema de login.
Figura 14: Diagrama de colaboración del sistema de entrenamiento y
reconocimiento.
51
10.5. Diagramas de estados
Figura 15: Diagrama de estados del sistema de login.
52
Figura 16: Diagrama de estados del sistema de entrenamiento y
reconocimiento.
53
11. FASE DE DISEÑO
11.1. Lista inicial de clases
leaptrainer-ui:
Ésta clase tiene el objetivo de dar funcionalidad a la vista principal del sistema de
entrenamiento y reconocimiento, su función más destacada es renderizar las manos
del usuario a partir de las lecturas del sensor Leap Motion y permitir visualizarlas en
el navegador web.
leaptrainer:
La clase controladora y por tanto la más importante del sistema. Entre sus
funcionalidades más destacadas se encuentran la de implementar el método de
capturar gestos, instanciar los algoritmos de entrenamiento según la selección del
usuario, recibir los resultados de consultas en el diccionario de datos y transformar
texto en voz.
cross-correlation:
Clase que alberga el algoritmo de entrenamiento de correlación cruzada.
high-resolution-recording:
Clase encargada de procesar cada cuadro por segundo capturado por el Leap
Motion en alta resolución.
neural-networks
Clase donde es implementado el algoritmo de redes neuronales artificiales.
brain
Clase relegada a neural-networks. Tiene la función de actuar como motor de
aprendizaje para el algoritmo de redes neuronales artificiales.
54
DiccionarioGestos
Clase donde se crean, editan y consultan los gestos entrenados.
Usuario
Clase controladora de sesiones de usuario.
11.2. Diagrama de clases
Figura 17: Diagrama de clases.
55
11.3. Modelo de interfaz
Figura 18: Modelo de interfaz.
56
11.4. Modelo lógico
Figura 19: Modelo lógico.
57
11.5. Modelo físico
11.6. Modelo de datos
Ya que durante la fase de diseño se planteó utilizar MongoDB como base
de datos, se generó un modelo de datos no relacional ya que trabajamos
con una tecnología NoSQL.
Figura 20: Modelo físico y de despliegue.
Figura 21: Representación gráfica de la entidad Usuario.
58
11.7. Diccionario de datos
Usuario
o _id: Éste campo es generado automáticamente al crearse un documento
BSON (entidad) en MongoDB, tiene el objetivo de garantizar que no
existan documentos duplicados.
o email: Campo donde se almacena la dirección de correo electrónico del
usuario.
o password: Campo donde se almacena la contraseña de usuario.
DiccionarioGestos
o nombre: Palabra en lenguaje español asociada al gesto entrenado.
o esPose: Determina si el gesto entrenado es una pose estática.
o data: Arreglo que contiene la muestra de entrenamiento para cada
gesto.
Figura 22: Representación gráfica de la entidad DiccionarioGestos.
59
12. FASE DE IMPLEMENTACIÓN
12.1. Construcción de la base de datos
Para empezar creamos nuestra base de datos o schema en la línea de comandos
de MongoDB mediante la instrucción use <nombre-base-de-datos>:
60
Una vez creada la base de datos, creamos una colección llamada User la cual se
encargará de registrar las cuentas de los usuarios que deseen acceder al sistema,
por defecto vamos a crear un registro con email = “Usuario” y password “1234”:
Ahora es turno de crear la colección que almacenará los gestos entrenados desde
el Leap Trainer, dicha colección será nombrada como DiccionarioGestos:
61
12.2. Diseño Frontend
Para el diseño de la interfaz del cliente implementamos la librería de JavaScript
jQuery para referencia todos y cada uno de los componentes html de la vista en un
documento llamado leaptrainer.js:
62
Para el renderizado de las manos se utilizará la librería WebGL dentro del
documento leaptrainer-ui.js:
63
La interfaz principal del Sistema LeapTrainer está declarada en el documento
leaptrainer-ui.html y es allí donde se implementan todas las librerías de JavaScript
mencionadas anteriormente:
64
Toda la parte de Frontend implementada en su conjunto tiene el siguiente
resultado:
12.3. Desarrollo Backend
Inserción de gestos:
En esta función recibimos 3 parámetros, el primero contiene el nombre del gesto,
el segundo un booleano y el tercero el arreglo en x, y, z.
65
Estos parámetros van a hacer enviados al archivo routes.js por medio de “ajax”
mediante la url “add”. En este evento “add” recibimos el parámetro “req” que fue el
que enviamos desde la función guarbase().
En donde recibimos los datos y posteriormente creamos un array para ser guardado
en la colección gestos de la base de datos no relacional “login-node”.
Extraer gestos:
Al iniciar sesión se llama a la función “llamar()” que contiene un método “ajax” en
donde se va a hacer una petición al evento extraer, luego de esto se recorren los
array por medio de un ciclo for() para luego enviarlos de forma ordenada a la función
llenar().En la función llenar se recibe en formato JSON el gesto para luego ser
importado por medio del método fromJSON.
66
En este evento “extraer” hacemos la consulta a la base de datos en donde
retornamos los gestos insertados por el método send().
En el archivo routes.js manejamos toda petición get y post para el inicio de sesión
67
Por medio de mongoose hacemos un esquema de la colección para la
administración de los usuarios
12.4. Proceso de entrenamiento
Al ejecutar la aplicación web nos encontraremos con esta sencilla interfaz,
en la parte superior tenemos un encabezado con un campo de texto donde
digitaremos el nombre del gesto que vamos a crear, un botón para iniciar el
entrenamiento y otro botón para desplegar el menú de configuración de
entrenamiento. En el cuerpo de la página nos encontramos con un modelo
68
renderizado por WebGL de la mano generado en tiempo real.
Al clickear el botón ‘opciones’ desplegamos el menú de configuración de la
aplicación.
Para empezar crearemos el gesto ‘HOLA’, podemos notar que la interfaz se
actualiza automáticamente para guiarnos en el proceso de creación del gesto con
una cuenta regresiva y una lista donde encontraremos el nombre de nuestro
gesto. A medida que el entrenamiento progrese, se nos notificará que realicemos
69
el mismo gesto un número de veces más.
70
Una vez entrenemos el gesto ‘n’ veces, la aplicación nos indicará que el gesto ha
sido entrenado con éxito y el sistema lo aprenderá y reconocerá como veremos
más adelante.
Si por algún motivo lo creemos así necesario, podemos re-entrenar el gesto
creado buscándolo en la lista de gestos entrenados y haciendo clic izquierdo sobre
él; a continuación veremos el siguiente modal:
71
Para continuar con el re-entrenamiento haremos clic en el botón ‘Retrain’ y en
consecuencia el valor anterior del gesto será borrado y sobrescrito por el nuevo
valor que le demos durante el entrenamiento.
12.5. Proceso de reconocimiento
Para verificar que el entrenamiento de un gesto fue exitoso, el usuario procederá a
replicar el(los) gesto(s) entrenado(s) frente al sensor Leap Motion, si el sistema
LeapTrainer reconoce el gesto entonces procederá a notificar desde la interfaz
mediante un mensaje indicando el nombre del gesto y el porcentaje de acierto;
adicionalmente y como nueva característica se generará una salida en audio con
72
voz masculina o femenina replicando el nombre del gesto en idioma español.
12.6. Algoritmos de reconocimiento y sus resultados
Una vez comprendidos los procesos de entrenamiento y reconocimiento de gestos
de manos, fue considerado pertinente poner a prueba los tres algoritmos de
entrenamiento (Geometric template matching, redes neuronales artificiales y
correlación cruzada) y comparar los resultados entre sí para elegir de esa manera
la mejor opción de cara a las aplicaciones prácticas y de la vida real de nuestro
aplicativo.
Para las pruebas de los algoritmos de reconocimiento decidimos usar como medida
el abecedario del lenguaje de señas.
73
Figura 23: Abecedario del lenguaje de señas colombiano.
74
Letra Prueba #1 Prueba #2 Prueba #3 Promedio
A 1 1 1 100,00%
B 1 1 1 100,00%
C 1 0 0 33,33%
D 1 1 1 100,00%
E 1 1 0 66,67%
F 1 1 0 66,67%
G 1 0 0 33,33%
H 1 1 0 66,67%
I 1 1 1 100,00%
J 1 0 1 66,67%
K 1 0 0 33,33%
L 1 1 0 66,67%
M 1 0 0 33,33%
N 1 0 0 33,33%
Ñ 1 1 0 66,67%
O 1 1 0 66,67%
P 1 1 1 100,00%
Q 1 0 0 33,33%
R 1 1 0 66,67%
S 1 0 0 33,33%
T 0 1 1 66,67%
U 1 1 0 66,67%
V 1 1 0 66,67%
W 1 1 0 66,67%
X 1 0 0 33,33%
Y 1 0 0 33,33%
Z 1 0 1 66,67%
Promedio acumulado 61,73%
Tabla 5: Resultados de reconocimiento del abecedario usando
Geometric template matching.
75
Letra Prueba #1 Prueba #2 Prueba #3 Promedio
A 1 1 1 100,00%
B 1 1 1 100,00%
C 0 0 0 0,00%
D 1 1 0 66,67%
E 0 0 0 0,00%
F 1 0 0 33,33%
G 1 0 0 33,33%
H 1 0 0 33,33%
I 1 1 1 100,00%
J 1 0 0 33,33%
K 1 1 0 66,67%
L 1 0 0 33,33%
M 1 1 0 66,67%
N 0 0 0 0,00%
Ñ 1 0 0 33,33%
O 1 1 0 66,67%
P 1 0 0 33,33%
Q 1 1 0 66,67%
R 1 0 0 33,33%
S 0 0 0 0,00%
T 0 0 0 0,00%
U 1 0 1 66,67%
V 1 1 0 66,67%
W 1 1 0 66,67%
X 1 0 0 33,33%
Y 1 0 0 33,33%
Z 1 0 0 33,33%
Promedio acumulado 44,44%
Tabla 6: Resultados de reconocimiento del abecedario usando redes
neuronales artificiales.
76
Letra Prueba #1 Prueba #2 Prueba #3 Promedio
A 1 1 0 66,67%
B 1 0 1 66,67%
C 1 0 0 33,33%
D 0 1 0 33,33%
E 0 0 0 0,00%
F 1 0 0 33,33%
G 0 0 0 0,00%
H 1 0 0 33,33%
I 1 1 1 100,00%
J 1 1 0 66,67%
K 0 0 0 0,00%
L 1 0 0 33,33%
M 1 0 0 33,33%
N 0 0 0 0,00%
Ñ 0 0 0 0,00%
O 1 1 1 100,00%
P 0 0 0 0,00%
Q 0 1 0 33,33%
R 0 0 0 0,00%
S 0 0 0 0,00%
T 0 0 0 0,00%
U 1 0 0 33,33%
V 1 1 0 66,67%
W 1 0 0 33,33%
X 1 1 0 66,67%
Y 1 1 0 66,67%
Z 1 0 0 33,33%
Promedio acumulado 34,57%
Tabla 7: Resultados de reconocimiento del abecedario usando
correlación cruzada.
77
Las tablas 5, 6 y 7 muestran los resultados obtenidos para esos tres algoritmos de
reconocimiento. Para cada algoritmo se hicieron tres pruebas, donde a cada una se
le dio un peso (1 si la seña era reconocida y 0 sino) y en base a esos valores se
calculó la precisión promedio. Entre esos tres algoritmos de reconocimiento,
Geometric Template Matching logró hacerse con la mayor precisión con un valor de
aproximadamente 61,73% para reconocimiento del alfabeto. Sacando gran ventaja
a los algoritmos de redes neuronales artificiales y correlación cruzada los cuales
obtuvieron 44,44% y 34,57% respectivamente.
Los resultados del experimento sugieren que el Leap Motion tiene problemas al
rastrear la posición de los dedos, especialmente cuando están en la primera
posición. Como se ve en la Figura 23, las señas A y E tienen cierta similitud desde
el dedo índice hasta el anular. Para la A, el pulgar se mantiene recto, mientras que
en la E el pulgar se encuentra enroscado y se ubica debajo de los otros cuatro
dedos. Sólo Geometric Template Matching fue capaz de reconocer la seña E en dos
de tres ocasiones, donde los otros dos algoritmos fallaron rotundamente.
Las señas M, N y Ñ también lucen similares. Para replicar esas señas, todos los
cuatro dedos se mantienen enroscados hacia abajo a excepción del pulgar el cual
se ubica de manera diferente. Como resultado, cuando la seña M es replicada, Leap
Motion la confunde con la N frecuentemente o con la Ñ rara vez aunque la Ñ se
diferencia de la M y la N gracias a que requiere un movimiento de afuera hacia
adentro de la palma. Todo esto nos dice que las capacidades de rastreo del Leap
Motion y los algoritmos de reconocimiento requieren de un mayor desarrollo y
mejora para distinguir entre señas que compartan similitudes de una forma más
eficiente, si bien Geometric Template Matching obtuvo una aceptable precisión
78
cercana al 62%.
13. FASE DE PRUEBAS
13.1. Pruebas de automatización
Para hacer la fase de pruebas o fase de testing recurrimos al uso del framework
Jasmine 2 diseñado para JavaScript ya que nuestro aplicativo ha sido desarrollado
en este lenguaje tanto del lado del cliente (jQuery, embebed javascript) como del
servidor (Node.js). Jasmine 2 está orientado a la ejecución de pruebas de
automatización, es decir, donde todo el proceso de pruebas de métodos,
navegación, resultados de peticiones, etc. es gestionado por la herramienta de
testing y el desarrollador sólo se limita a configurar el proceso de testing y a definir
las reglas.
Figura 24: Gráfico de barras comparando la precisión de los tres
algoritmos de reconocimiento.
79
El módulo de testing está compuesto por dos archivos: conf.js para definir las
capacidades de la herramienta, el framework de testing que implementará y una
referencia hacia el archivo de reglas de testing tests.js que es donde se definirán
las condiciones para que el programa apruebe o no el proceso de testing.
Para efectos de notación y cumplimiento de los estándares de testing, la
descripción, las condiciones y los resultados de las pruebas han sido escritos en
inglés.
13.1.1. Ingreso a la página de inicio
En el archivo test.js se han definido pruebas para cada sección de la navegación
web en la aplicación, una de ellas se sitúa en el caso de que el cliente ha ingresado
exitosamente a la página de índice de la aplicación web y ésta se visualiza
correctamente. Para empezar será necesario tener el servidor en estado de
ejecución.
80
El mensaje “Home page open successfully!” indica que ésta primera prueba fue
aprobada por la aplicación, el código de este caso de testing es el siguiente:
La explicación es muy sencilla: “My web page should render home page” mi
página de web debería mostrar página de inicio. El navegador hace una petición
GET para ir a la url http://localhost:3000/ que es donde se encuentra la página de
inicio de la aplicación web y el resultado esperado es que efectivamente se pueda
acceder a dicha url. Al final si la petición GET es exitosa, se mostrará el mensaje
“Home page open succesfully!”.
13.1.2. Autenticación de usuarios
Vemos ahora que el test se enfoca en validar si los campos rellenados por el
usuario (email y contraseña) coinciden con el valor guardado en la petición POST,
de cumplir dicha condición entonces el mensaje “Field values matches our input!”
se mostrará.
Finalmente si el usuario existe en la base de datos, entonces la petición POST
arrojará un estado 200 (resultado exitoso) mostrando el mensaje “User logged in
successfully!” y el usuario será re direccionado a la página profile.
81
Para efectos de pruebas se tomaron las credenciales de email: [email protected] y
contraseña: 1234. Efectivamente dicho usuario existe en la base de datos y por
ende el resultado es que el login ha sido exitoso.
82
13.1.3. Registro de usuarios
El resultado de la prueba de registro de usuarios muestra que al igual que en la
prueba de login, los campos son verificados antes de realizar la petición post;
luego se valida que el email del usuario no exista en la base de datos de la
aplicación; para éste caso se usó el email: [email protected] ya que aún no ha sido
registrado y por ende el resultado muestra que la prueba ha sido superada y el
usuario ha sido registrado y direccionado a la página profile.
83
84
14. CONCLUSIONES
El objetivo de esta tesis de grado fue desarrollar una aplicación web capaz de
capturar y mediante técnicas de inteligencia artificial, aprender expresiones del
lenguaje de señas colombiano y reconocerlas para finalmente obtener una salida
en voz; esto con motivos de inclusión en el ámbito social para con las personas que
sufren de discapacidad auditiva y sonora o coloquialmente llamados sordos.
Un aspecto importante para que la aplicación sea plenamente funcional y eficiente
en la tarea para la cual fue desarrollada es la precisión de sus algoritmos. Éste
parámetro puede ser mejorado siguiendo una serie de lineamientos para facilitar a
los algoritmos el reconocimiento de señas; factores como la posición del usuario
frente al sensor Leap Motion, la distancia, el nivel de intensidad de la luz, la
integridad del mismo sensor, el proceso de entrenamiento de las señas y el tamaño
de las muestras de entrenamiento son determinantes en el grado de precisión de
acierto de la aplicación. Otros factores técnicos y tecnológicos serán vistos con
detalle en la siguiente sección de recomendaciones.
15. RECOMENDACIONES
No hay que desconocer que el desarrollo del Prototipo Traductor en Tiempo Real
para la Población Sorda en Colombia sigue siendo un proyecto ambicioso,
prometiendo cambiar para siempre el modo en el que la población sorda se
comunica con quienes no tienen dicha discapacidad; es deseable que haya una
mejora continua en el desarrollo de la aplicación y por tanto se recomienda a futuro
investigar más acerca del tema de visión artificial con el objeto de optimizar el
algoritmo Geometric Template Matching (técnica de reconocimiento por defecto
para la aplicación) y así obtener mejores resultados en el proceso de aprendizaje y
reconocimiento de señas de manos.
Otra recomendación sería mantenerse al día con las últimas versiones de los
drivers, APIs y el SDK de Leap Motion para desarrollo, así como con nuevas
85
versiones del sensor ya que Leap Motion es un proyecto que sigue en continua
mejora y su propuesta continúa siendo bastante prometedora sobre todo para otras
aplicaciones que se le podrían dar al dispositivo, más allá del enfoque de nuestro
prototipo de aplicación.
Ya que el framework LeapTrainer fue desarrollado por el Instituto Tecnológico de
Massachusetts MIT por sus siglas en inglés y es licenciado por el mismo, se da vía
libre a los desarrolladores de contribuir con el desarrollo del proyecto y mejorar
aspectos en el entrenamiento y reconocimiento de gestos y/o poses de manos. Hay
que brindar especial atención al algoritmo de visión artificial Geometric Template
Matching ya que es la técnica predilecta usada en nuestro prototipo, existen
artículos y ponencias sobre la implementación de éste algoritmo sobre todo en el
campo de la medicina; sería pertinente leer dichos documentos ya que actualmente
están en desarrollo fórmulas más precisas para reducir el error de entrenamiento.
Pensando en un desarrollo futuro deseamos que el sistema extienda su alcance y
también pueda hacer el proceso inverso, es decir, traducir palabras de lenguaje
español hablado a lenguaje de señas para así obtener una comunicación full dúplex
o bidireccional; pensamos que dispositivos de realidad virtual o de realidad
aumentada podrían satisfacer dicho proceso, haciendo que la persona hablante
también interactúe con un sensor Leap Motion y con la ayuda de un software de
articulación de expresiones en lenguaje de señas y protocolos de comunicación
como TCP/IP o con el uso de Web Services se comunique con el equipo donde está
alojado LeapTrainer y así, la persona sorda con ayuda de unas gafas de realidad
virtual o aumentada pueda ver todas las señas que la persona hablante hace y así
poder llegar a tener una conversación real y natural sin la necesidad de recurrir a
personas que hagan el papel de traductores y así rompiendo todas las barreras
lingüísticas.
86
16. BIBLIOGRAFÍA
Taft Darryl K. IBM Acquires Rational [En línea]. 2002.<
http://www.eweek.com/pc-hardware/ibm-scoops-up-rational>
Detección de objetos mediante el algoritmo template matching,
<https://cesartroyasherdek.wordpress.com/2016/02/19/deteccion-de-
objetos-iv/>.
¿Qué son las redes neuronales artificiales? Aplicaciones realizadas en el
ámbito de las adicciones, Alfonso Palmer Pol. Universidad de las Islas
Baleares < http://disi.unal.edu.co/~lctorress/RedNeu/LiRna001.pdf> [Citado
el 02 de Junio de 2018].
Diccionario panhispánico de dudas, Real Academia Española [En línea],
2005 <http://dle.rae.es/srv/search?m=30&w=software>.
Herramientas Jurídicas Para La Protección De Los Datos Personales En
Colombia: Análisis Del Grado De Protección Jurídica Del Habeas Data. [En
Línea],<Http://Repository.Unilibre.Edu.Co/Bitstream/Handle/10901/9677/01
%20-%20proyecto%20de%20grado%20final%20aprobado%2025-07-
16%20-%20recomendaciones%20incluidas%20-%2010-08-
16.Pdf?Sequence=1>
Política De Tratamiento Protección De Datos Personales De Los Titulares
De La Universidad Nacional De Colombia [En Línea] <
Http://Www.Unal.Edu.Co/Contenido/Habeas/Politica%20de%20tratamiento
%20de%20datos.Pdf>
Política de Protección De Datos [En línea] < http://mendebal.com/politica-
datos.php>
Diccionario básico de señas [En línea] < https://www.ucn.edu.co/e-
discapacidad/Documents/36317784-Diccionario-lengua-de-senas.pdf >
McNeill, D. 1992. Hand and Mind. What gestures reveal about thought.
Chicago: Chicago University.
87
Oviedo, A. 2004. Classifiers in Venezuelan Sign Language. Hamburgo:
Signum.
_____. 2001. Apuntes para una gramática de la Lengua de Señas
Colombiana. Cali: Universidad del Valle/Instituto Nacional para sordos
(INSOR).
Parra, J. 2005. Cambios sistemáticos de forma que presentan las señas.
Bogotá. Informe inédito
realizado en el marco del convenio INSOR/Instituto Caro y Cuervo para la
elaboración del DBLSC.
Alejandro Oviedo. “Diccionarios de lenguas de señas: ¿Para qué? En El
bilingüismo de los sordos. Vol. 1, núm. 3, diciembre de 1997. Pág. 53.