Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Director
Ing. ROBERT ALEXANDER LIMAS SIERRA
Codirector
Ing. WILSON JAVIER PÉREZ HOLGUÍN, PhD.
iii
Nota de aceptación:
iv
DEDICATORIA
Dedico este trabajo a mis padres y a mis hermanos como reconocimiento al ser un pilar
fundamental no solo para realizar este proyecto sino también durante toda mi formación
profesional y personal.
v
AGRADECIMIENTOS
Agradecemos al Ing. Wilson Javier Pérez Holguín y al Ing. Robert Alexander Limas Sierra por la
dirección de este trabajo sin su apoyo hubiese sido muy difícil el desarrollo de este proyecto,
también a la Universidad Pedagógica y Tecnológica de Colombia UPTC, en especial a la
escuela de ingeniería electrónica por la formación brindada a lo largo de estos años.
También agradecer al Ing. Josie Esteban Rodríguez Condia por compartir su experiencia con
nosotros la cual fue un gran aporte en el desarrollo de este trabajo, a nuestros compañeros de
la escuela de ingeniería electrónica en especial a Juan David Bautista Muñoz por el apoyo
brindado en este camino de formación académica.
vi
CONTENIDO
LISTA DE TABLAS.................................................................................................ix
LISTA DE FIGURAS...............................................................................................x
LISTA DE ANEXOS..............................................................................................xii
1. INTRODUCCIÓN.............................................................................1
2. OBJETIVOS....................................................................................3
2.1. Objetivo General 3
2.2. Objetivos Específicos 3
3. MARCO DE REFERENCIA.............................................................4
3.1. Marco Conceptual 4
3.1.1. Limitación Visual 4
3.1.2. GPU 5
3.1.3. CUDA 6
3.1.4. Imagen Digital 7
3.1.5. Espacios de Color 9
3.1.6. Convolución 12
3.1.7. Filtros 13
3.1.8. Operaciones Morfológicas. 15
3.1.9. Mapa de Profundidad de Campo. 17
3.1.10. Algoritmos de Inteligencia Artificial 19
3.1.11. Algoritmos Secuenciales 19
3.1.12. PWM 20
3.1.13. RPI GPIO 20
4. ESTADO DEL ARTE.....................................................................21
4.1. Dispositivos No Basados en Cámaras 21
4.2. Dispositivos Basados en Cámaras. 22
4.3. Dispositivos Híbridos 24
5. DESARROLLO..............................................................................28
5.1. Materiales 28
5.1.1. Hardware 28
5.1.2. Firmware y Software 30
5.2. Técnicas 30
5.2.1. Escalización del Sensor de Profundidad 30
5.2.2. Algoritmo para la Detección de Obstáculos 31
vii
5.2.3. Discriminante de Suelo 32
5.2.4. Trace Planning. 33
5.2.5. Filtro de Media Móvil 33
5.2.6. Distancia por ultrasonido 33
5.2.7. Comunicación con el microcontrolador 34
5.2.8. Generación De Alertas 34
5.3. Metodología 35
5.3.1. Determinación de las Características Mínimas de Diseño 35
5.3.2. Definición del Diseño de Alto Nivel del Prototipo 35
5.3.3. Selección de Hardware Necesario para Funcionamiento del Prototipo 36
5.3.4. Estudio de la Arquitectura y Selección del Kit de Desarrollo para GPU
NVIDIA® Jetson 37
5.3.5. Sensores a Utilizar 37
5.3.6. Análisis, Revisión y Selección de los Algoritmos para la Detección de
Objetos. 39
5.3.7. Análisis del Algoritmo Seleccionado y Detección de las Etapas que
Intervienen en su Funcionamiento 41
5.3.8. Análisis de los Requerimientos por Etapas del Algoritmo Seleccionado
para su Implementación en CUDA. 42
5.3.9. Diseño de Alto Nivel de Cada una de las Etapas para Implementación en
CUDA 43
5.3.10. Implementación, Simulación y Test del Diseño Realizado para Cada
Etapa. 44
5.3.11. Verificación y Validación del Sistema Implementado con Personas en
Condición de Discapacidad Visual. 49
6. PRESENTACIÓN Y ANÁLISIS DE RESULTADOS......................52
7. CONCLUSIONES..........................................................................57
8. RECOMENDACIONES.................................................................58
9. BIBLIOGRAFÍA..............................................................................59
10. ANEXOS........................................................................................63
viii
LISTA DE TABLAS
ix
LISTA DE FIGURAS
x
Figura 37. Vector de generación de alertas....................................................................49
Figura 38. Asistente de navegación................................................................................50
Figura 39. Pista de obstaculos para las pruenas de validación......................................51
Figura 40. Comodidad al portar el prototipo....................................................................54
Figura 41. Preferencia de emisión de alertas..................................................................55
Figura 42. Facilidad de interpretación de alertas por parte de los usuarios...................56
Figura 43 Código main....................................................................................................63
Figura 44 Codigo Prossesing..........................................................................................65
Figura 45 Código tamplates............................................................................................68
Figura 46 Código Operaciones morfológicas..................................................................70
Figura 47 Código templates............................................................................................72
Figura 49 Archivos de audio generados mediante el código de Emisión de Alertas......78
Figura 50 Archivos de estado de ejecución del Código del Asistente............................78
Figura 51 Implementación del prototipo..........................................................................80
Figura 52 Prototipo vista lateral derecha.........................................................................81
Figura 53 Caja de conexiones del prototipo....................................................................82
Figura 54 Diagrama de conexión PIC 12F675 y la Jetson Xavier de NVIDIA................83
Figura 55 Tarjeta principal PCB (Circuito impreso).........................................................83
Figura 56 Vista superior (top side).................................................................................84
Figura 57 vista inferior (bottom side)..............................................................................84
xi
LISTA DE ANEXOS
xii
1. INTRODUCCIÓN
Cerca del 70% de información que obtiene el ser humano del entorno que lo rodea
proviene del sentido de la vista. Esto demuestra su importancia, ya que permite a las
personas realizar actividades importantes para su vida diaria tales como movilizarse de
manera independiente y llevar a cabo diferentes tareas que aporten a su desarrollo
físico, mental y social (Novoa & Rojas, 2019). Según el Instituto Nacional para Ciegos
(INCI), para el año 2019, las personas con discapacidad visual representaban el 7,2%
de la población total del país (Pulido, 2020). En Colombia, según el censo realizado por
el DANE en el año 2005, el 43,2% del total de discapacitados del país presentaban
algún tipo de discapacidad visual (censos de población y vivienda de 2005)(Romero et
al., 2018). De esta población, el 48,1% considera que las actividades de movilidad
(caminar, correr, saltar, …) son de gran importancia. Mientras que para el 35,6%, las
actividades con mayor relevancia son el aprendizaje. Este censo determinó que el
aspecto de mayor relevancia para las personas invidentes es la movilidad (Romero et
al., 2018).
1
En este proyecto se presenta el desarrollo de un prototipo de un asistente de
navegación para personas con limitaciones visuales sobre plataformas GPU, operando
en espacios cerrados controlados. Se inicia desde la investigación de herramientas
necesarias para la programación de GPUs, para realizar el procesamiento de las
imágenes capturadas y el control de los diferentes periféricos, hasta la prueba de
funcionamiento del asistente desarrollado y la validación de su funcionamiento con un
grupo de voluntarios participantes.
2
2. OBJETIVOS
3
3. MARCO DE REFERENCIA
Visión normal
Discapacidad visual moderada
Discapacidad visual grave
Ceguera
Se considera visión normal cuando la persona puede realizar tareas o actividades que
dependan totalmente o en su mayoría del sentido de la vista sin ningún tipo de
asistencia al momento de ejecutarlas y la facultad de percibir imágenes claras del
entorno que lo rodea. Por otro lado, la discapacidad visual moderada hace referencia a
la dificultad de percibir los objetos de manera clara lo que causa que se realicen tareas
de manera casi normal con algún tipo de asistencia visual como los lentes correctivos. A
diferencia de las dos definiciones anteriores, la discapacidad visual grave se refiere a
aquella limitación para realizar tareas que requieren de una gran agudeza visual para
controlar detalles. Por último, la ceguera es la pérdida de la facultad de percibir
imágenes del ambiente, la cual no se puede corregir con gafas o lentes de contacto y
que dificulta la realización de tareas básicas de orientación (Segura & Lozada, 2019).
4
visión y la necesidad de afrontar desde distintos escenarios, incluido el tecnológico, las
problemáticas que se derivan de estas condiciones de salud pública.
3.1.2. GPU
Muchas de estas unidades usan una arquitectura constituida por varios cientos de
grupos de SM (Streaming MultiProcessors) y a su vez cada uno de los SM está
compuestos por SP (Stream Processors). Un ejemplo de este tipo de arquitecturas es la
arquitectura Fermi (Ver Figura1) de la compañía NVIDIA® (Hernández et al., 2013).
5
realizar el paralelismo que a su vez es aplicable a muchos otros campos
computacionales (Owens et al., 2008).
3.1.3. CUDA
Los hilos se pueden organizar en grupos, dado que pueden sobrepasar el número
permitido para un bloque según lo defina la arquitectura de la GPU. El término bloque
(Block) hace referencia a un conjunto de hilos (Threads) que tienen un límite de
instancias para ser lanzadas durante la ejecución, cuyo valor está dado por la
arquitectura de cada dispositivo en particular. Los bloques de hilos están organizados
de manera conceptual en matrices de 1, 2 y 3 dimensiones denominadas cuadriculas
(Grids) según sea la necesidad de la aplicación. Estas Grids son útiles cuando se
necesita procesar grandes cantidades de datos en paralelo (Ver Figura 2) (NVIDIA,
2021).
Para obtener una alta eficiencia en la ejecución de los kernels se cuenta con el modelo
SIMT (Single Instruction-Multi Thread) que permite el manejo de cientos o miles de hilos
6
a ser ejecutados en paralelo. Su jerarquía, en memoria, por lo general se divide en dos
espacios direccionables: una memoria local que es pequeña y rápida, visible por un
subconjunto de procesos o hilos en ejecución, y una memoria global la cual es más
grande pero más lenta, que es visible por todos los hilos en ejecución. La desventaja del
modelo SIMT es que éste no es eficiente cuando se requiere sincronizar la cantidad de
hilos para garantizar una exclusión mutua en una sección critica (Villegas et al., 2015).
CUDA ofrece las siguientes formas de acceder a los datos mediante múltiples espacios
de memoria durante la ejecución: 1) una memoria global que puede acceder a todos los
hilos ejecutados dentro del kernel; 2) una memoria compartida que posee una velocidad
de acceso intermedia y que permite acceder a todos los hilos en un bloque; y 3) una
memoria local que tiene el menor tiempo de respuesta y permite acceder a un hilo de
los que fue asignada esta memoria (NVIDIA, 2021).
Una imagen digital se define como una función bidimensional f (x , y ) donde x e y son
las coordenadas del plano que contiene un número finito de puntos o elementos
conocidos como pixeles que componen la imagen, y la función f (x , y ) es la amplitud en
el punto con coordenadas ¿, y ¿ la cual también es conocida como la intensidad o nivel
de gris que la imagen tiene en ese píxel. Se habla de una imagen digital si en la función
de la imagen hay valores de intensidad finitos y discretos (Dobernak, 2015).
7
Una de las características más importantes de una imagen es su resolución espacial, la
cual hace referencia a la cantidad de pixeles que la conforman. Es común expresar la
resolución de una imagen por medio de dos valores numéricos: el primero hace
referencia al número de columnas de pixeles o ancho de la imagen y el segundo a las
filas totales de pixeles o alto de la imagen (Dobernak, 2015).
Dentro de las imágenes digitales existen las imágenes a color, las cuales tienen las
mismas características mencionadas anteriormente. Sin embargo, en este tipo de
imagen cada pixel se codifica según el espacio de color que se esté usando. Un
ejemplo de esto son las imágenes RGB (Red, Green, Blue), en donde cada píxel se
muestra como un color constituido por diferentes cantidades de las componentes de
color rojo, verde y azul como se muestra en la Figura 3.
Además de las imágenes a color, están las imágenes en escala de grises (ver Figura 4),
estas son arreglos bidimensionales los cuales contienen información acerca de la
intensidad de luz o luminancia que presenta cada píxel de la imagen. Normalmente, los
valores de cada píxel se encuentran codificados en 8 bits, es decir, cada píxel puede
tomar un valor entre 0 y 255, siendo 0 el valor numérico correspondiente al color negro
y 255 al color blanco.
8
3.1.5. Espacios de Color
Los espacios de color hacen referencia a los distintos planos espaciales con los cuales
se puede trabajar una imagen digital a color. Existen varias representaciones espaciales
entre las que se destacan el RGB, HSV, HSI y el modelo YCbCr.
El espacio de color RGB es uno de los modelos más utilizados por los sistemas
informáticos para crear y realizar la reproducción de colores en los monitores. La
representación gráfica del modelo establece los ejes rojos (Red – R), verde (Green -G)
y azul (Blue – B). Cada componente de color depende de una coordenada especifica
como se muestra en la Figura 5.
Las siglas HSV (Hue, Saturation, Value) hacen referencia al Tono, Saturación y Valor,
respectivamente. El sistema coordenado para este espacio es cilíndrico. La pirámide
hexagonal presentada en la Figura 6 corresponde al subconjunto en donde la
distribución de colores varía dependiendo a la ubicación dentro del plano espacial. En
este modelo los colores más brillantes están contenidos en el área hexagonal donde el
valor de la componente es V=1. Para medir el tono en este plano se usa el ángulo de
apertura tomando como referencia el eje S. El color rojo se sitúa a 0º, el verde a los
120º y el azul a los 240º, mientras que los colores complementarios se encuentran a
180° de su color primario. El vértice en donde las componentes S y V tienen un valor
igual a 0 corresponde al color negro, el color blanco corresponde a las coordenadas
donde S=0 y V=1.
9
Este espacio puede ser obtenido a partir de una transformación no lineal del espacio
RGB, usando las siguientes expresiones (ver Ecuaciones 2 a 4):
Este espacio tiene la ventaja de ser invariante a las condiciones de luz. Sin embargo, la
alta complejidad computacional que requiere para ser implementada, sobre todo en
plataformas como FPGA (Field Programmable Gate Array) dificulta su uso (Dobernak,
2015).
El espacio HSI (Hue, Saturation, Intensity) (ver Figura 7) hace referencia al Tono,
Saturación, Intensidad y es una transformación no lineal del espacio RGB que modifica
el subespacio del cubo transformándolo en dos conos unidos por la base.
Geométricamente, está compuesto por las componentes S, H e I, que corresponden a
una componente de saturación (S) que es la distancia radial del cono y proporciona una
medida del grado del color que se mezcla con la luz blanca, la componente del tono (H)
que es el ángulo respecto al eje rojo y da una magnitud de la longitud de onda
dominante, varía en 360° con separaciones angulares de 120° entre cada color primario
con igual separación para los colores secundarios. La componente de intensidad (I) es
la distancia a lo largo del eje perpendicular al plano de color e indica el valor del brillo y
la información acromática; valores bajos en este eje componente corresponden a los
colores oscuros y los superiores están asociados a los colores claros hasta llegar al
blanco (ver Ecuaciones blanco (ver Ecuaciones 5 a 8. Transformaciones no lineales del
espacio RGB a HSI) (Dobernak, 2015).
A pesar de las ventajas que este espacio ofrece, tiene la misma limitante que el modelo
HSV debido a que tiene una alta complejidad computacional para ser implementada en
aplicaciones hardware debido a sus transformaciones no lineales, lo que lo hace poco
práctico.
El modelo YCbCr es una codificación no lineal del espacio RGB, usada comúnmente
por los estudios de televisión europeos y en la compresión de imágenes. En este
modelo el color se representa por tres componentes o parámetros, uno de ellos es la
luminancia (Y) y dos valores diferentes de color (Cb y Cr). La luminancia (Y) es la
10
cantidad lineal de luz directamente proporcional a su intensidad física. Puede ser
calculada como una suma ponderada de los componentes del espacio RGB.
H=
{360−θ
θ si B ≤G
si B> G
(5)
{ }
−1 ( R−G ) +(R−B)
θ=cos 1 (6)
2
2 [ ( RG ) +( R−B)(G−B)] 2
3 min [R ,G ; B ]
S=1− (7)
(R+G+ B)
1 (8)
I = (R +G+ B)
3
11
En el caso de los sistemas digitales, la ventaja que tiene este modelo es que ahorra
recursos computacionales y ancho de banda para su transmisión. Sin embargo, este
espacio no ofrece buenos resultados con los algoritmos de visión por computadora
como por ejemplo en la segmentación de objetos por color (ver Ecuaciones 9 a 10.
Transformaciones no lineales del espacio RGB a YCrCb) (Dobernak, 2015).
Cr=R−Y (10)
Cb=B−Y (11)
3.1.6. Convolución
Para realizar esta misma operación en tiempo discreto y con sistemas digitales se tiene
la siguiente expresión (Ver Ecuación 13) (Gonzalez et al., 2009).
∞
y [ n]= ∑ h [ k ] x [n−k ] (13)
k=−∞
12
ventana se presenta con borde verde. En el medio se muestra la ventana de
convolución y a la derecha el resultado obtenido. Para realizar la convolución se realiza
la multiplicación entre cada elemento de la ventana de la imagen y la ventana de
convolución, para luego sumar todos los productos y así obtener el nuevo valor del
píxel.
3.1.7. Filtros
Comúnmente, los filtros suelen clasificarse en filtros lineales y filtros no lineales. Los
filtros lineales son usados en la eliminación de ruido y la modificación de los niveles de
intensidad de la imagen (Baron et al., 2002). En cambio, los filtros no lineales tienen
como objetivo reducir el ruido en la imagen (Latouche et al., 2017).
13
Fuente: (Gonzalez et al., 2009).
Algunos de los filtros más empleados por la comunidad científica dentro del
procesamiento digital de imágenes son: el filtro de Laplace, el filtro de Gauss, el filtro de
Roberts y el filtro de Prewitt.
Este filtro se usa para destacar los bordes de una imagen. Usa el operador de Laplace
en la imagen; éste es un operador isotrópico (es decir, es independiente a la dirección
de la discontinuidad en la imagen) por lo cual recibe este nombre. Éste filtro se define
como se muestra en la (Ver ecuación 16).
∂2 f
2 calculo del gradiente en sentido de las columnas.
∂ xf2
2 cálculo del gradiente en sentido de las filas.
∂ 2y
∇ f vector gradiente.
2 2
2 ∂ f ∂ f
∇ f= 2
+ 2 (16)
∂x ∂y
14
Cabe resaltar que este filtro no se usa directamente en la práctica por ser muy sensible
al ruido que presente la imagen, por lo que se aplica después de usar una máscara para
realzar los contornos (González et al., 2009).
El filtro de Gauss difumina las imágenes y permite eliminar ruido. Es similar al filtro de
media, pero se usa una máscara diferente que se obtiene por medio de la Ecuación 18,
logrando un difuminado mucho más uniforme.
g ( x , y )= 2
е (18)
2 лδ
Las ventajas que tiene este filtro es que es separable lo que quiere decir que en vez de
realizar una operación bidimensional es posible realizar dos operaciones
unidimensionales, una de ellas en sentido horizontal y la otra en sentido vertical
(González et al., 2009).
[]
∂f
∇ f =grad =
gx
gy
=
[ ]
∂x
∂f
(19)
∂y
Este filtro, al igual que el de Roberts, sirve para realizar la detección de bordes. Este
operador expande la definición del gradiente a una máscara de 3x3 mejorando su
funcionamiento ante el ruido mediante el uso las ecuaciones de Sobel. Sin embargo, a
diferencia del Filtro de Sobel, este no le da importancia a los pixeles de la imagen que
estén cercanos al centro de la máscara obteniendo una máscara como la mostrada en
la Figura 10 (González et al., 2009).
15
Figura 10. Máscaras del operador de Prewitt
3.1.8.1 Erosión
Consiste en la eliminación de los pixeles del objeto en donde al menos uno de sus
pixeles en su vecindad pertenezca al fondo. La aplicación de esta operación tiene el
efecto de reducir el objeto o eliminar objetos que sean muy pequeños (ver Figura 11)
(Fernández, 2020).
Figura 11. Ejemplo de erosión (a) objeto original (en azul), (b) píxeles
eliminados en la operación de erosión (en amarillo) y (c) resultado final.
3.1.8.2 Dilatación
Todos los pixeles que pertenezcan al fondo se convierten en pixeles del objeto si al
menos uno de los pixeles que esté en su vecindad pertenece a dicho objeto. Esta
16
operación tiene como efecto aumentar el tamaño de los objetos o rellenar agujeros que
puedan estar dentro del objeto a destacar (Ver Figura 12) (Fernández, 2020).
Figura 12. Ejemplo de dilatación (a) objeto original (en rojo), (b) píxeles
convertidos en objeto al aplicar la dilatación (en verde) y (c) resultado final
3.1.8.3 Apertura
I imagen digital
H ventana de operación
I ○ H =(I ⦵ H )⨁ H (20)
3.1.8.4 Clausura
Para realizar esta operación se aplica en primer lugar dilatación y luego se realiza
erosión. La clausura tiene como funcionalid unir dos objetos separados por un margen
delgado, eliminar pequeños orificios manteniendo el tamaño del objeto y rellenar o
suavizar el contorno (ver Figura 14) (Fernández, 2020).
17
Figura 14. Ejemplo de clausura en una imagen binaria
I imagen digital
H ventana de operación
I • H =(I ⨁ H)⦵ H (21)
Existen varios métodos por los cuales es posible generar este tipo de mapa. Uno de
éstos es la técnica de visión estéreo. Esta técnica emplea dos cámaras dispuestas a
una distancia conocida entre sí, con el objetivo de capturar el entorno mediante dos
imágenes con diferente perspectiva. Con esta técnica se busca hacer una
reconstrucción geométrica del entorno mediante la comparación de pixeles presentes
en las dos imágenes por medio de la distancia relativa presente entre dos píxeles que
coincidan entre sí y a partir de este dato, generar un mapa de profundidad. La
desventaja de este método es que requiere mayor capacidad computacional para el
análisis de las imágenes (Ver figura 15) (Parissaki & Otero, 2019).
18
Otro método empleado en la generación de estos mapas es el uso de cámaras que
cuentan con sensores RGB y sensores infrarrojos. En este método, se emplea el sensor
infrarrojo para generar una nube de puntos representativa de la geometría del entorno,
información que permite estimar las coordenadas espaciales de los objetos presentes
en la escena. Esta nube de puntos se puede proyectar en un espacio 2D en donde los
pixeles del mapa generado contienen los valores de distancia. El uso de una cámara
generalmente suele ser suficiente. Sin embargo, si el objeto esta ocluido en referencia a
la cámara el mapa generado puede quedar incompleto. Una solución empleada en este
es el uso de varias cámaras (Ver Figura 16) (Parissaki & Otero, 2019).
El concepto de Inteligencia Artificial (IA) puede variar dependiendo del autor tomado
como referencia y el punto de vista que este manifieste. Sin embargo, lo que es claro es
que la IA estudia la inteligencia de los ordenadores o equipos de cómputo para
realizar actividades o tareas que por ahora son mejor realizadas por los seres humanos
(Vasquez & Cardona, 2019).
19
3.1.11. Algoritmos Secuenciales
Este tipo de algoritmos puede dividirse en tres tipos: procesamiento a alto nivel,
procesamiento a nivel medio y procesamiento de bajo nivel. Para cada nivel en
particular se realiza un conjunto de operaciones diferentes como se muestra en la Tabla
2.
3.1.12. PWM
La modulación PWM (Pulse Width Modulation) es una técnica que consiste en realizar
la variación del ancho de pulso o ciclo de trabajo de una señal periódica (típicamente
cuadrada), que permite determinar el tiempo en el que la señal se encuentra en nivel
alto o bajo con respecto al periodo de la señal. Este tipo de modulación tiene diversas
aplicaciones que incluyen el control de brillo de LEDs, control de velocidad de motores,
y aplicaciones de electrónica de potencia (ver Figura 17) (Vanegas & Marulanda, 2017).
τ
D= (22)
T
En donde,
D es el ciclo de trabajo
τ es el ancho de pulso
T es el periodo de la señal
Figura 17. Señal PWM
20
Fuente: Autores.
Esta librería permite realizar el control de los puertos GPIO (General-Purpose Input-
Output) que poseen las tarjetas Jetson de NVIDIA® los cuales se pueden configurar
como puertos digitales de entrada/salida. Gracias a que el puerto GPIO de las tarjetas
Jetson es muy similar al de las tarjetas Raspberry Pi, es posible realizar la
programación de este mediante el lenguaje Python empleando el paquete JetsonGPIO,
el cual tiene la misma API que la biblioteca RPIGPIO (NVIDIA, 2019).
21
4. ESTADO DEL ARTE
Los sistemas de navegación para personas con discapacidad visual han sido
ampliamente investigados por la comunidad científica. Comúnmente, las
implementaciones realizadas se enfocan en operar en entornos cerrados controlados,
donde los cambios en las variables ambientales no son muy frecuentes, facilitando la
detección de objetos. Algunos ejemplos de estos entornos incluyen casas, edificios y
centros comerciales (Patel et al., 2018).
Un ejemplo de este tipo de sistemas se presenta en (Sadi et al., 2014), trabajo que
muestra el desarrollo de unos lentes compuestos por un sensor ultrasónico y un
microcontrolador encargado de realizar la adquisición de datos y determinar la
presencia de obstáculos en la ruta del usuario. Las ventajas de este sistema son la
portabilidad que ofrece y el alcance de detección permitido por el sensor ultrasónico (0 a
3m). Sin embargo, la precisión de este dispositivo es baja limitando las aplicaciones en
las que puede ser utilizado.
Otro dispositivo, (Miño & Gámez, 2020) es un asistente a la navegación conformado por
un sensor ultrasónico con un rango de detección de 17 a 30 cm y un módulo GPS. El
sensor ultrasónico es usado para realizar la detección de objetos en la ruta trazada
mediante el GPS. Este dispositivo genera una alerta háptica que varía en intensidad
respecto a la distancia a la que se detecta el objeto. Una de las desventajas de este
dispositivo es que, en ambientes cerrados como edificios, el módulo GPS tiene
22
dificultades para establecer una buena recepción de datos, lo que dificulta establecer la
ubicación del usuario.
Un proyecto que hace un aporte en este campo es el Smart Cane (Vasquez & Cardona,
2019). Este es un dispositivo portable que consta de una red de sensores ultrasónicos,
un sensor de humedad y un microcontrolador que procesa los datos provenientes de los
sensores. Para interactuar con el usuario este tiene una serie de motores hápticos y un
zumbador. Este último permite enviar mensajes de audio y alertas hápticas al usuario
para advertir acerca de la presencia de un obstáculo.
Los sensores infrarrojos son usados en espacios interiores para medir la distancia a la
que se encuentran los objetos dentro de la escena de la persona con discapacidad
visual. El rango dinámico de estos sensores oscila entre 0.2 a 14 metros. La desventaja
de los sistemas basados en estos sensores, es que se ven afectados por las
condiciones de luminosidad del ambiente, siendo especialmente susceptibles a la luz
día (Plikynas et al., 2020).
Los sistemas basados en cámaras usan sensores RGB como fuente principal de
información, siendo capaces de reconocer objetos. Algunos de estos sistemas emplean
únicamente una cámara y se apoyan en sensores de códigos de respuesta rápida
(Quick Response code - QR)(Idrees et al., 2015).
23
ofrece el VPS (Visual Positioning Service) usado por Google Tango, se realiza un
algoritmo para alinear los mapas y unirlos con un archivo de área visual que genera el
sistema. Además de incorporar una cámara RGB-D para capturar imágenes del
ambiente y pasarlas por un filtro Kalman (con un sello de tiempo para la detección de
obstáculos), este sistema cuenta con una interfaz HMI multimodal para interactúar con
el usuario por medio de canales de voz y audio, y una interacción háptica por medio de
un Smart cane.
Los Smartphone también han sido usados para el desarrollo de estos asistentes. Por
ejemplo, para los Smartphone con sistema Android, se ha desarrollado una aplicación
que identifica códigos QR distribuidos en el piso a una distancia determinada. Este
código brinda información al usuario de su posición actual y solicita el lugar de destino
al cual se quiere dirigir para trazar la ruta óptima correspondiente. La aplicación cuenta
con un rastreo de ruta para detectar desviaciones y enviar alertas audibles al usuario
que lo ayudan a regresar a la ruta trazada. Uno de los inconvenientes es que requiere
estar todo el tiempo en línea. Los desarrolladores esperan poder suplir este
inconveniente con ayuda del módulo GPS que permitiría que la aplicación pueda ser
usada también para ambientes exteriores (Idrees et al., 2015).
Dentro de los prototipos desarrollados para el apoyo apersonas con limitación visual, se
encuentra el propuesto por (Takizawa et al., 2015) que se compone de un sensor
Kinect® de Microsoft®, un teclado numérico un sensor táctil, un bastón blanco y otros
dispositivos de retroalimentación. El sensor Kinect® se usa para capturar imágenes del
entorno e identificar los objetos presentes en la imagen y que estén fuera de rango de
detección del bastón tales como, sillas, escaleras, entre otros. Ha sido diseñado para
enviar la cantidad justa de información al usuario y de la manera más eficiente posible.
24
En el trabajo realizado por (Konaite et al., 2021) se muestra un dispositivo constituido
sobre una Raspberry 4, una Picamera ubicada en un casco y un parlante. Este prototipo
captura las imágenes del entorno y las envía al algoritmo MobileNet encargado de
realizar la detección de objetos que estén presentes en la imagen capturada, y la
posición en la que están ubicados. El dispositivo solo alerta al usuario por notas de voz.
La precisión en la detección del objeto es igual o mayor al 60%. La desventaja de este
prototipo es que solo procesa 4.5 cuadros por segundo lo cual limita la fluidez con la
cual el usuario transita por el entorno.
Otro aporte en este campo es un prototipo (Romero et al., 2018) que cuenta con una
cámara Kinect® con la que se toman las imágenes de la escena por donde el usuario se
desplaza. Genera dos tipos de alerta audible y no audible, al tiempo que estima la
distancia de los objetos presentes en el ambiente en un rango de 50 a 250 cm. La alerta
no audible se basa en tres dispositivos hápticos que se ubican en el abdomen de la
persona y que indican en qué posición se encuentra el obstáculo (derecha, centro e
izquierda). La alerta audible genera información complementaria como distancia,
ubicación, tamaño (ancho) de los objetos en la escena. Este dispositivo presenta
limitaciones en sus alertas hápticas, debido a que resultan confusas, además de no ser
cómodas de portar en el área abdominal por parte del usuario.
En el trabajo propuesto por (Wang et al., 2017) se desarrolló un prototipo que utiliza una
cámara 3D, un cinturón compuesto por motores vibradores que se controlan por
separado y una interfaz braille, para dar a los usuarios más información del entorno.
Este dispositivo se basa en un algoritmo que recibe la imagen de profundidad, para
luego agrupar los pixeles de la imagen en tres grupos y de esta forma identificar los
objetos en la escena. Cuando el portador del dispositivo se encuentra a dos metros de
distancia del objeto u obstáculo, se emite una alerta por medio del cinturón indicándole
al usuario hacia dónde dirigirse.
En (Nair et al., 2018) se presenta un sistema que utiliza Bluetooth y Google Tango, para
reducir las debilidades que estas dos tecnologías presentan de manera individual. El
sistema recibe por parte del usuario el lugar de destino y luego, mediante las imágenes
tomadas por la plataforma Google Tango y las marcas Bluetooth presentes en el
ambiente, se traza la ruta más corta desde el punto de partida al punto de destino.
25
Cuenta con un módulo vibro táctil con sensores infrarrojos usados para realizar la
detección de objetos cercanos y producir una señal vibratoria proporcional a la
proximidad del objeto. Una de las limitantes que presenta este dispositivo es que tarda
un tiempo considerable en realizar la abstracción de características del entorno en el
que se encuentra el usuario.
De igual manera en (Hakim & Fadhil, 2019) se propone un dispositivo que se compone
de unas gafas con un sensor ultrasónico, una cámara RGB-D y un sistema de emisión
de alertas audible. Este captura la imagen RGB y la divide en secciones para
determinar su ubicación en la escena, teniendo en cuenta que los objetos más cercanos
se ubicaran en la parte inferior de la imagen. Una vez se detecta la posición del objeto
en la escena, se analiza la imagen de profundidad con el fin de determinar la distancia a
la cual se encuentra dicho objeto. Si el objeto es transparente o no es detectado por el
sensor de profundidad de la cámara, se hace el uso del sensor ultrasónico con el fin de
evitar colisiones. Una vez se detecta la posición y distancia del objeto, el sistema envía
un mensaje de audio indicando cual es la ruta libre. Si el camino esta obstruido
totalmente, el sistema le pedirá al usuario rotar 90° hacia la derecha o izquierda hasta
encontrar un camino libre.
Las FPGA han sido utilizadas con el fin de desarrollar prototipos eficaces de asistencia
de navegación para personas con discapacidad visual. En este contexto, se han
aplicado algoritmos de disparidad y diferentes arquitecturas de hardware para la
implementación eficiente de dichos algoritmos sobre la FPGA. A partir de estos se
estima la distancia al obstáculo y se envía la alerta correspondiente al usuario mediante
señales audibles. La desventaja es que, a pesar de optimizar el algoritmo, se requiere el
uso de una gran cantidad de recursos para lograr un óptimo desempeño del sistema.
Por esto, se ha recurrido a arquitecturas semi paralelas que buscan reducir el número
de elementos lógicos requeridos para su implementación (Sekhar et al., 2016).
26
recomendaciones de este trabajo fue estudiar la viabilidad de implementar el algoritmo
general en un sistema embebido, con el fin de aumentar la velocidad de procesamiento
y la portabilidad del sistema. El dispositivo desarrollado no tenía la capacidad de
detectar puertas de acceso, interruptores, escalones, huecos y objetos pequeños,
además, de tener un tiempo de procesamiento elevado, aproximadamente de treinta
segundos por imagen, lo que constituía el principal problema de esta implementación
(Alarcon et al., 2010).
27
Tabla 3. Estado del arte
TIPO DE SISTEMA PLATAFORMA SENSORES TECNICA DE PROCESAMIENTO AUTOR
Ultrasónico Ecolocalización (Sadi et al., 2014)
Ultrasónico Ecolocalización
Microcontrolador (Miño & Gámez, 2020)
GPS Geolocalización
No basados en cámaras Ultrasónico Ecolocalización (Obando & Sotomayor, 2015)
No registra BLE Beacon No registra (Plikynas et al., 2020)
No registra Ultrasonido Ecolocalización (Vasquez & Cardona, 2019)
No registra No registra Geoposicionamiento (Plikynas et al., 2020)
No registra Cámara RGB-D VPS (Li et al., 2019)
Smartphone Cámara Escaneo código QR (Idrees et al., 2015)
Raspberry pi Rasbpicam Visión por computadora (Segura & Lozada, 2019)
Raspberry pi Cámara Kinect® Visión por computadora (Romero et al., 2018)
Computador personal Cámara web Algoritmo YOLO (Jadhav et al., 2020)
Basado en cámaras
Raspberry pi Picamera Algoritmo MobileNet (Konaite et al., 2021)
Harris Corner detector
Computador Cámara Kinect® (Takizawa et al., 2015)
Visión Stereo
Computador Cámara web Mínimos cuadrados (Franco & Rodríguez, 2018)
Computador portable Cámara RGB-D Variación Stixel World (Wang et al., 2017)
Cámara
No registra BLE Beacon Algoritmo de Dijkstra (Nair et al., 2018)
Google Tango
Ultrasonido Ecolocalización
Computador personal (Alarcon et al., 2010)
Cámara Disparidad
Híbridos Cámara RGB-D Umbralización de Otsu
Raspberry (Hakim & Fadhil, 2019)
Ultrasónico Ecolocalización
Cámara Marcadores visuales
28
5. DESARROLLO
5.1. Materiales
5.1.1. Hardware
5.1.1.1 JETSON
Esta tarjeta es un SOM (System On Module) completo, conformado por CPU, GPU,
DRAM y almacenamiento FLASH de alto rendimiento de formato pequeño. Cuenta con
un SDK (software development kit) diseñado por NVIDIA® y denominado JetPack™
para acelerar el software y un SDK de servicios y productos para acelerar el desarrollo
de programas ejecutados en la plataforma. Dentro de las plataformas Jetson, se
encuentra la Xavier NX de NVIDIA®, que presenta las siguientes características
técnicas:
5.1.1.3 Kinect®
29
La cámara Depth o sensor de profundidad 3D funciona a partir de dos elementos, uno
de ellos es un proyector de luz de infrarrojos y un sensor de recepción para este mismo
tipo de luz. El software del Kinect® determina una matriz de 640*480 en la que cada
uno de los pixeles varia su valor dependiendo de la distancia a la que se encuentre el
objeto (Z. Zhang, 2012).
Vin∗5 mm
distancia= (23)
1024
El rango de medición, depende del voltaje de alimentación, el cual varía entre 2,2 a 5,5
voltios estables (MaxBotix Inc., 2021a).
30
5.1.2. Firmware y Software
5.1.2.1 Herramientas
5.1.2.2 PyCUDA
5.2. Técnicas
Fuente: Autores.
31
Se ubicó un obstáculo con medidas 67cmx106cm frente a la cámara, primero a una
distancia mínima de 50cm, y luego desplazado con variaciones de 10 cm hasta una
distancia máxima de 350cm, (ver Figura 18) Se almacenaron 8 datos por cada
variación.
Mediante un algoritmo en Python se accedió a los datos resultantes del paso anterior,
con el fin de documentar en una hoja de cálculo el valor de los pixeles que
corresponden al objeto identificado como obstáculo.
Se realizó la misma prueba en diferentes horas del día y con variaciones en el nivel de
luminosidad, tabulando y promediando los resultados obtenidos en cada experimento,
mediante lo que se llegó a la ecuación característica del funcionamiento general del
sensor.
Se fracciona la imagen en 15 secciones y se evalúa el valor cada uno de los pixeles que
la componen. Teniendo en cuenta que la imagen es binarizada, si existe al menos un
píxel en 1, se determina que hay presencia de un obstáculo en una determinada
sección y de esta manera se logra identificar su posición en la imagen. Los resultados
son plasmados en un vector de 15 posiciones, donde un 1 significa presencia y un 0 la
ausencia de objetos por cada sección.
32
Fuente: Autores.
Nota: La grilla y los números para cada sección se realiza de manera representativa
para mayor claridad en este documento, pero no son visualizados en el sistema.
Fuente: Autores.
33
a
c= (25)
cos β
b=c∗sinβ (26)
El filtro de media móvil de orden 5 consiste en una depuración de los datos por medio
de la realización de la media aritmética entre la muestra actual y las cuatro muestras
anteriores con la siguiente ecuación:
n
∑ Si
(27)
i=n−4
Sn=
5
34
1. Se define el oscilador interno a 4MHz, se habilita el periférico ADC con resolución de
10 bits por el canal 0, se aplica comunicación rs232 por software con un baudrate de
9600 con tamaño de datos de 8 bits y puerto de transmisión por el pin A1 y se
habilita la interrupción por flanco ascendente.
2. Se toma la muestra del valor análogo al cual se le aplica la ecuación 23.
3. Debido a la sensibilidad que el sensor presenta, es necesaria la aplicación del filtro
de media móvil a los datos obtenidos por cada muestra (ecuación 27).
4. Se realiza la iteración de los pasos 2 y 3 cada 250 milisegundos.
AUDIBLES
Para las alertas audibles se definió una función que selecciona la posición 4 del vector
de alertas como entrada con el fin de reproducir una alerta pregrabada correspondiente
a la ruta sugerida.
HAPTICAS
Para las alertas hápticas se emplea una función para generar una señal PWM
controlada por medio del siguiente algoritmo:
35
Tabla 4. Generación de señal PWM respecto a la distancia de detección
DISTANCIA MINIMA DISTANCIA MAXIMA (cm) PWM FREFCUENCIA (Hz)
(cm) (%)
50 100 100 2000
101 199 60 1000
200 300 30 25
Fuente: Autores.
5.3. Metodología
Una vez establecidas las características de diseño, el primer paso, fue definir la
arquitectura interna del prototipo. Su estructuración fue de gran importancia debido a
que se convirtió en el punto de partida para evaluar la selección de componentes,
sensores y demás elementos del sistema. En la Figura 21 se presenta el diseño de alto
nivel del sistema con los subsistemas correspondientes.
Figura 21. Esquema general de la arquitectura interna del dispositivo de guía para
invidentes
36
Fuente: Autores.
Con base en esta arquitectura general, se procedió a definir los elementos de hardware
que cumplan con las especificaciones definidas para el diseño del asistente de
navegación. La plataforma de control debe encargarse de comandar los sistemas de
adquisición y generación de alertas, además de llevar a cabo los algoritmos de
detección de objetos y generación de rutas.
Teniendo en cuenta los requerimientos técnicos del prototipo, se escogió trabajar sobre
una plataforma basada en una GPU. Esta plataforma, además debe tener la posibilidad
de permitir el desarrollo de aplicaciones de software que exploten las características
paralelas intrínsecas a la arquitectura del dispositivo. En particular, se seleccionó una
plataforma desarrollada por el fabricante NVIDIA® debido a que este tipo de GPUs
permite el desarrollo de aplicaciones por medio de la API CUDA y permite trabajar sobre
Linux Ubuntu, lo que permite mayor control y libertad para el desarrollador
Por último, la plataforma debe contar con diversas interfaces de periféricos, o que, en su
defecto facilite la implementación de estas, pues es necesario contar con las interfaces
de comunicación para lograr una recepción y envío de datos con los diversos
componentes que conforman el proyecto.
37
CUDA 10
frecuencia 1 puerto de
máxima de 9Va 20V 40 pines
operación GPIO
de 1100
MHz
Fuente: Elaborada a partir de (NVIDIA, 2020b, 2020a).
Como se observa en la Tabla 5, el fabricante NVIDIA® ofrece dos kits de desarrollo que
cumplen con las especificaciones de diseño para el sistema de navegación planteado.
Sin embargo, estas se diferencian en la cantidad de núcleos, velocidad de frecuencia
máxima y arquitectura que presentan.
5.3.4. Estudio de la Arquitectura y Selección del Kit de Desarrollo para GPU NVIDIA®
Jetson
38
proyector de
luz IR
Micrófono rango de inclinación
multi arreglo física: ± 27 grados
Ajuste de Rango de Audio de 16-bit a
sensor con profundidad del 16 kHz
motor de sensor: 50
inclinación centímetros – 3,5
Giroscopio metros
Color:
sensor Campo de visión 640 × 480 a 16 bits
cromático horizontal: 71.5 de profundidad a 60 5 voltios
con ISP grados FPS
discreto
Intel® Campo de visión
RealSense Profundidad:
SR300 sensor vertical: 55 grados
infrarrojo Rango de 1920 × 1080 32-bit
monocromáti 1.8 vatios USB 3.0
profundidad del de color a 30 FPS
co y sensor: 10
proyector de centímetros – 1.5
luz IR metros
Fuente: Elaborada a partir de (Guerrero & Villaluenga, 2013; Intel, 2016).
De acuerdo con las características presentadas por estas cámaras se determinó que la
cámara Intel® RealSense SR30 posee un consumo energético menor y un campo de
visión más amplio en comparación con la cámara Kinect®. Sin embargo, la cámara
Kinect® posee mejor conectividad, ya que emplea un puerto USB 2.0 para la
transmisión de datos. Además, posee un rango más amplio de medición en los datos
obtenidos en la generación del mapa de profundidad; característica que permite ampliar
el alcance del asistente de navegación. Por lo tanto, se ha seleccionado la cámara
Kinect® como sensor principal para el prototipo.
Posteriormente, se realizaron pruebas para determinar la zona del cuerpo para ubicar la
cámara. Esta zona debe ser adecuada para permitir la máxima adquisición de
información del ambiente y de esta manera, determinar los obstáculos que se presentan
en el entorno. Las pruebas realizadas consistieron en ubicar la cámara sobre diferentes
zonas del cuerpo del usuario y con base en estas, se determinó que la mejor ubicación
para la cámara se encuentra en el pecho del usuario, ya que esta zona permite cargar
un peso ligero, sin generar alguna molestia o afectación para la salud del portador,
además de dar una estabilidad a la imagen obtenida por el sensor ya que esta zona no
genera cambios demasiado bruscos con los movimientos del usuario.
Sin embargo, la cámara del Kinect® tiene un ángulo de apertura de 69° y, al estar
ubicada en esta zona del cuerpo, se genera un espacio con forma de triángulo
rectángulo que representa una zona ciega del sensor. Esta zona genera alto riesgo de
colisión para el usuario, tal como se muestra en la Figura 20. Según el estado del arte
consultado, los sensores ultrasónicos han sido ampliamente utilizados para realizar
mediciones de distancias. De esta forma se detecta la presencia de obstáculos dentro
de su rango de funcionamiento.
39
Adafruit 4007 400cm 3 – 5 voltios (Adafruit, 2022)
DFRobot MaxS 10 Hz 30cm a Salida serial 3.3 – 5.5 voltios (MaxBotix Inc.,
onar- 750cm RS232 2021b)
EZL0 Lectura de tiempo
MaxBotix MaxS 30cm a de ancho de pulso 2.7 – 5 voltios (MaxBotix Inc.,
onar- 500cm Lectura análoga 2021ª)
MB10
03
TDK EV_ 1 Hz 5cm a 1.8 voltios (TDK, 2020)
InvenSense MOD 30cm I2C
_CH2
01
DFRobot SRF0 26 Hz 40cm a 5 voltios (DFROBOT,
8 600cm 50 miliamperios 2022)
Fuente: Autores.
Con el diseño de alto nivel ya planteado y los materiales elegidos, se procedió con la
búsqueda, análisis, comparación y selección de diferentes algoritmos, con un criterio de
búsqueda enfocado al reconocimiento de objetos, basados en imágenes RGB o mapa
de profundidad para la guía de personas invidentes. Teniendo en cuenta la naturaleza
del proyecto, es necesario que el algoritmo seleccionado entregue la ubicación espacial
del usuario y la distancia a la que se encuentran los posibles objetos, con el fin de crear
un mapa en dos dimensiones, para facilitar la elección de una ruta libre que garantice su
desplazamiento.
40
MobileNe TF V45 1 3
t
Fuente: Autores.
Otro algoritmo de naturaleza secuencial es el Stixel World. Este algoritmo toma como
referencia la uniformidad del entorno sin presencia de objetos y lo compara con la
imagen a analizar (ver Figura 23). Si en esta comparación existen valores de píxel por
encima o por debajo del umbral determinado como referencia, se identifica un objeto
como posible causa de esta variación. La característica más importante de este
algoritmo es que permite identificar diferentes tipos de áreas como escaleras (de subida
o de bajada), huecos, objetos, entre otras (Wang et al., 2017).
41
Fuente: (Wang et al., 2017).
Por último, el algoritmo implementado por Romero et al., 2018 y por Alarcon et al., 2010,
se basa en realizar un seccionamiento por intervalos de distancia del mapa de
profundidad y fragmentar cada seccionamiento en un número determinado de columnas
(Figura 24). Mediante el análisis de cada uno de los píxeles, es posible distinguir la
presencia de objetos (píxel con valor 1 es igual a objeto), la distancia a la que se
encuentran (determinado por el valor de distancia a la que se realiza el
seccionamiento), y determinar su ubicación espacial (columna en la cual fue detectado).
Figura 24. Ubicación de obstáculo A en los vectores posx y posy para las
capas
Muy Muy
Izq Centro Der
Izq Der
A
[1] [2] [3] [4] [5]
Posy 0 0 0 1 1
Muy Muy
Alto Medio Bajo
Alto Bajo
De acuerdo con las pruebas realizadas, se pudo determinar que los algoritmos basados
en técnicas de IA presentan una baja tasa de FPS en tarjetas GPU básicas empeladas
en este proyecto. Por su parte, algunos de los algoritmos secuenciales poseen
limitaciones que afectan su funcionamiento. A pesar de esto, éstos últimos fueron
seleccionados para ser modificados con el fin mejorar sus características y poder
obtener los resultados esperados.
5.3.7. Análisis del Algoritmo Seleccionado y Detección de las Etapas que Intervienen
en su Funcionamiento
A partir de los algoritmos de detección de obstáculos utilizados por Alarcon et al., 2010
y Romero et al., 2018, y algunas características del algoritmo utilizado por Hakim &
Fadhil, 2019, se propone un algoritmo con la capacidad de identificar objetos en una
imagen en escala de grises. Sin embargo, y por facilidad en la aplicación del método
para la detección y reconocimiento de la distancia a la que se encuentra el objeto
42
identificado, se requiere primero una etapa para adecuar la imagen a la aplicación del
algoritmo planteado, para posteriormente obtener la identificación y ubicación de los
objetos dentro de la imagen. Por último, se genera una matriz cuya información plasma
el mapeo en 2 dimensiones de los objetos presentes en el ambiente, ver Figura 25.
Fuente: Autores.
5.3.8. Análisis de los Requerimientos por Etapas del Algoritmo Seleccionado para su
Implementación en CUDA.
Considerando el contenido de la Figura 26, se definieron los pasos base para cada uno
de los procesos que son ejecutados en el device, de la siguiente manera:
43
Fuente: (SONZA et al., 2019).
44
ancho de la imagen
¿ hilos ancho= (29)
¿ bloques ancho
¿ total de hilos por bloque=EnteroPorEncima(¿ hilos alto∗¿ hilos ancho) (30)
5.3.9. Diseño de Alto Nivel de Cada una de las Etapas para Implementación en CUDA
Fuente: Autores.
Fuente: Autores.
45
configurar los parámetros necesarios para realizar de nuevo la ejecución del algoritmo
(ver Figura 29).
Fuente: Autores.
5.3.10. Implementación, Simulación y Test del Diseño Realizado para Cada Etapa.
Fuente: Autores.
46
di s tancia=( 2∗10 x ) −( 1∗10 x ) + ( 0.0026 x ) −( 0,2812 x ) +(11,861 x) (31)
−5 5 −4 4 3 2
Figura 31. Valor pixel respecto a la distancia tomados con una resolución de
10 bits y 8 bits
VALOR PIXEL RESPECTO A LA DISTANCIA TOMADOS CON UNA RESOLUCIÓN
DE 10 BITS
330
280
230
180 A
130
80
40 90 140 190 240 290 340
280
230
180
B
130
80
30
100 120 140 160 180 200 220 240
Fuente: Autores.
47
Fuente: Autores.
Figura 33. Detección de ruido “Sal y Pimienta” y eliminación del ruido mediante
operaciones morfológicas.
Fuente: Autores.
48
Figura 34. Seccionamiento y barrido espacial de la escena capturada para determinar
la ubicación de objetos.
A B C
D E F
Fuente: Autores.
Al emplear la imagen binarizada por capas y fragmentada por regiones, permite definir
la presencia de un objeto (pixel en blanco), la ubicación espacial de este en la imagen y
la región que no presenta algún obstáculo se interpreta como transitable o libre de
obstáculos; de no cumplirse esta condición, la región será identificada como riesgosa
(Figura 35). Debido a que en el mapa de profundidad el suelo también es representado
como un objeto, es necesario aplicar el algoritmo para su discriminación al realizar la
detección.
Fuente: Autores.
49
gráficamente en el valor del vector referente a 197 cm (Figura 36 A); en la Figura 35 B
se evidencia que, pese a presentar la detección del suelo como un obstáculo, ubicado
en las posiciones 10, 11 y 12, esta detección no será tomada en cuenta y se indica
como una zona sin presencia de obstáculos. Dado que se generan múltiples vectores,
es necesario anexar cada uno a una sola matriz
Fuente: Autores.
Fuente: Autores.
Para el subsistema de alerta del punto ciego, se empleó el sensor de ultrasonido. Este
sensor, junto con la cámara, conforman el sistema responsable de la detección de
objetos encontrados dentro del rango definido como zona ciega del dispositivo. Si el
valor detectado por el sensor ultrasónico es menor a 80 cm, indica la presencia de un
obstáculo y se origina una alerta de riesgo de colisión para el usuario. Dada la
naturaleza del algoritmo generado para la creación de esta alerta, esta será disparada
cuando el usuario desee acercarse intencionalmente a un objeto o, que incluso se
encuentre con otra persona. Por este motivo, la alarma solo sonará tres veces seguidas
y luego se pausará, hasta que detecte un cambio de distancia por encima de los 80 cm.
Por último, la creación de las alertas audibles fue realizada mediante la librería gtts
(Google text to speach) la cual, mediante la función gTTS () configura el texto y el
lenguaje al que se desea reproducir la indicación definida en formato de audio. Puesto
50
que para su funcionamiento se necesitaba conexión a internet constante, se generaron
y almacenaron los audios con las palabras que conforman la alerta por separado.
Fuente: Autores.
51
Antes de ejecutar las pruebas, las personas voluntarias recibieron una capacitación
sobre la forma de uso del dispositivo con una duración aproximada de 2 minutos. Esta
capacitación se basó en el uso del asistente, con los ojos sin vendar y reconociendo las
indicaciones de navegación, para que procedieran luego a caminar libremente. Una vez
que los colaboradores consideraban que lograban interpretar de manera correcta las
indicaciones, se les vendaban los ojos y se deba inicio a la prueba.
Fuente: Autores.
52
dipositivo, calificada entre 1 y 10 (donde 1 corresponde a muy dificil y 10 muy facil). La
quinta pregunta se enfoca en las recomendaciones de los participantes para mejorar las
alertas del dipositivo y que tan intuitivas les resultaban. De la sexta a la octava
preguntas se enfocan en determinar si los participantes usarian el dispositivo en
espacios cerrados, si considerarian adquirir el dipositivo y las consideraciones que
creen necesarias para mejoraar el funcionamiento del prototipo desarrollado. Esta
encuesta se puede ver con mas detalle en el Anexo N.
53
6. PRESENTACIÓN Y ANÁLISIS DE RESULTADOS
Tabla 10. Tiempos de ejecución total y para cada etapa del algoritmo.
Proceso Tiempo de ejecución (ms)
Reajuste 0,036954
Umbralización 1,707792
Operaciones Morfológicas 59,593461
Etapa de detección 5,396697
Total 66,734904
Fuente: Autores.
Teniendo en cuenta que el algoritmo debe tomar diversas cantidades de frames, y que
su ejecución no siempre toma el mismo tiempo, se realiza una tabla comparativa con el
fin de identificar qué cantidad de frames es la ideal para un tiempo de ejecución
deseado.
54
De acuerdo con los resultados observados del funcionamiento del prototipo,
consignados en la Tabla 11, se encontró que la cantidad ideal de capas a analizar es
16, considerando su corto tiempo de ejecución (aproximadamente 1,1 s) y a la
efectividad con la que reconoce y realiza la ruta de navegación (determinada de forma
empírica).
Tabla 12. Tiempos prototipo anterior soportado en CPU i3 Core de segunda generación
Funciones principales Llamadas Tiempo (ms)
Guide 1 0
Preprocesamiento 1 125
Obtención disparidad 1 78
Post procesamiento 1 623
Ruta 2 235
Sonido (comando voz) 1 1440
Fuente: (Alarcon et al., 2012).
Tabla 13. Tiempos prototipo presente, soportado en CPU ARMv8.2 y GPGPU NVIDIA®
Carmel
Funciones principales Llamadas Tiempo (ms)
Sistema de adquisición 1 1,6152
Preprocesamiento 16 64,7164
Detección 16 6,4916
Post procesamiento 16 1,4233
Generación de alertas 1 3,1030
Fuente: Autores.
Por otro lado, es importante resaltar el tiempo total de ejecución, además de la tasa de
muestreo de cada prototipo (Tabla 14). Teniendo en cuenta que el método para la
detección de los objetos en ambos prototipos es similar, se observa que el presente
prototipo, pese a procesar imágenes con una mayor resolución, posee un tiempo de
ejecución significativamente menor.
55
Tabla 14. Comparación de prototipos realizados por el grupo GIRA
Prototipo anterior Prototipo presente
Numero de hilos máximo 4 393.216
Numero de hilos usados 4 310.000
Porcentaje de procesador utilizado No reporta 78,84%
para realizar el procesamiento
Resolución utilizada 320 x 240 640 x 480
Cantidad de capas procesada 4 16
Frames por segundo 1,47 13,79
Cantidad de píxeles procesados 307.200 4.915.200
Tiempo total de ejecución 2,73 segundos 1,166 segundos
Fuente: Autores.
Fuente: Autores.
56
Como se observa en la Tabla 16 y la Figura 41, la encuesta arrojó que el 66.7% de los
usuarios prefieren el uso de alertas hibridas, debido a que estas proveían más
información acerca del ambiente que rodeaba al sujeto de prueba, proporcionándole
más seguridad en su desplazamiento. En cuanto a las alertas hápticas, el 33.3% de los
usuarios prefieren emplearla como método de emisión de información, debido a que
estas resultan ser intuitivas y no saturan de información al usuario. Por otro lado, la
emisión de alertas audibles resulto ser poco eficaz para dar guía a los participantes,
debido a que no ofrecía suficiente información del entorno, dificultando la movilidad del
portador del asistente.
En cuanto a la facilidad con la que las participantes interpretaban las alertas emitidas
por el dispositivo, se observó que las personas dieron una calificación promedio de 8
puntos sobre 10, (ver Tabla 17), demostrando que lograron interpretar las alertas de
manera fácil. Sin embargo, a un 16,7% de la población le resultó moderadamente difícil
interpretar las alertas, y a un 16,7% les resultó muy fácil o bastante fácil seguir las
indicaciones emitidas por el prototipo, lo que se muestra con mejor detalle en la Figura
42.
Fuente: Autores.
Lo anterior refleja que, en general, las alertas producidas por el asistente de navegación
son fáciles de interpretar. Sin embargo, la desviación estándar obtenida y los rangos de
puntuación de los usuarios (ver Tabla 17) muestran que el entendimiento de las alertas
está sujeto a los reflejos de cada persona y la retroalimentación obtenida en el tiempo
de entrenamiento. Como es natural, cada individuo necesita más o menos tiempo de
capacitación para interpretar de mejor manera las alertas generadas por el dispositivo.
Por esta razón los voluntarios de la prueba recomendaron que al menos las alertas
audibles fueran más descriptivas y dar más información acerca de la ruta a transitar.
57
Figura 42. Facilidad de interpretación de alertas Tabla 17. Dificultad de
por parte de los usuarios interpretación de alertas
Métrica Estadística Valor
Desviación Estándar 1,41
Media 8
Puntuación mínima 6
Puntuación máxima 10
Fuente: Autores.
58
7. CONCLUSIONES
En primer lugar, respecto a la cámara Kinect®, se observó que esta es una buena
alternativa para la adquisición de imágenes para plataformas móviles. Sin embargo, la
versatilidad del dispositivo se ve limitada por a su tamaño, ya que originalmente fue
diseñado para ser utilizado en consolas de videojuegos, por lo que no cumple con el
perfil de ser parte de un equipo portátil.
El prototipo no pudo contar con una fuente de energía portable, debido a la naturaleza
de la cámara se tuvo que sacrificar la portabilidad para que esta funcionara bien, a
pesar de que se intentó energizar mediante una power bank el mapa que provenía de la
cámara no brindaba la información suficiente para la detección de objetos.
Por otro lado, el dispositivo no detecta el techo como obstáculo debido a la ubicación de
la cámara y tampoco detecta objetos que estén paralelos al lente a causa del
funcionamiento del proyector de patrones infrarrojo. Además, se encontró que para
usuarios con estatura promedio de 1.70 cm, el dispositivo no detectaba objetos con
alturas inferiores a 87 cm, ubicados a una distancia entre los 10 y 80 cm del usuario,
puesto que el ángulo de visión de la cámara no es lo suficientemente amplio (estas
medidas pueden variar en función de la altura de la persona que porte el asistente). En
cuanto al sensor de profundidad, fue posible constatar que en ambientes oscuros tiene
un buen comportamiento, pero se ve afectado por la incidencia directa de la luz del día,
debido a que comparte características con el sensor de proyección de luz infrarroja.
Dado que las plataformas empleadas para la implementación del presente prototipo se
basan en kits de desarrollo, se presentaron dificultades importantes a la hora de
ejecutar los algoritmos de IA de manera correcta. Por lo anterior fue necesario el
planteamiento de un algoritmo para la detección de obstáculos, que fuese más sencillo
y que al mismo tiempo aprovechara las cualidades de la plataforma. Dicho algoritmo,
ofreció el resultado esperado permitiendo la navegación del usuario a través de
ambientes desconocidos.
59
60
8. RECOMENDACIONES.
Para trabajos futuros se sugiere tener en cuenta la ubicación de los lentes del Kinect®
para el mejoramiento del dispositivo, o hacer uso de una cámara de menor tamaño para
mejorar la portabilidad del dispositivo.
61
9. BIBLIOGRAFÍA
62
convmatrix.html
Gonzalez, R. C., Woods, R. E., & Masters, B. R. (2009). Digital Image Processing, Third
Edition. In PEARSON (Ed.), Journal of Biomedical Optics (THIRD EDIT, Vol. 14, Issue 2).
https://doi.org/10.1117/1.3115362
Guerrero, D., & Villaluenga, L. (2013). Microsoft Kinect. In Universidad Politécnica de
Catalunya. Universidad Politécnica de Catalunya.
Hakim, H., & Fadhil, A. (2019). Navigation system for visually impaired people based on RGB-D
camera and ultrasonic sensor. ACM International Conference Proceeding Series, 172–177.
https://doi.org/10.1145/3321289.3321303
Hameed, A., & Ahmed, H. A. (2019). Survey on indoor positioning applications based on
different technologies. 12th International Conference on Mathematics, Actuarial Science,
Computer Science and Statistics, MACS 2018 - Proceedings, 1–5.
https://doi.org/10.1109/MACS.2018.8628462
Hernández, M., Guerrero, G. D., Cecilia, J. M., García, J. M., Inuggi, A., Jbabdi, S., Behrens, T.
E. J., & Sotiropoulos, S. N. (2013). Accelerating Fibre Orientation Estimation from Diffusion
Weighted Magnetic Resonance Imaging Using GPUs. PLoS ONE, 8(4).
https://doi.org/10.1371/journal.pone.0061892
Idrees, A., Iqbal, Z., & Ishfaq, M. (2015). An efficient indoor navigation technique to find optimal
route for blinds using QR codes. Proceedings of the 2015 10th IEEE Conference on
Industrial Electronics and Applications, ICIEA 2015, 690–695.
https://doi.org/10.1109/ICIEA.2015.7334197
Intel. (2016). Intel ® RealSense TM Camera SR300 Embedded Coded Light 3D Imaging System
with Full High Definition Color Camera. Product Datasheet, June, 1–54.
Jadhav, R., Anand, D. S., Gupta, A. K., Khare, S., Sharma, D., & Tapadiya, P. (2020). Real-
Time Object Detection for Visually Challenged. Advances in Intelligent Systems and
Computing, 1311 AISC(Iciccs), 281–296. https://doi.org/10.1007/978-981-33-4859-2_28
Klöckner, A. (2021). Home - pycuda 2021.1 documentation. https://documen.tician.de/pycuda/
Konaite, M., Owolawi, P. A., Mapayi, T., Malele, V., Odeyemi, K., Aiyetoro, G., & Ojo, J. S.
(2021). Smart Hat for the blind with Real-Time Object Detection using Raspberry Pi and
TensorFlow Lite. 1–6. https://doi.org/10.1145/3487923.3487929
Latouche, H., Solarte, K., Ordoñez, J., & Sánchez, L. (2017). Filtros no lineales para reducir
ruido en imágenes a color. Revista INGENIERÍA UC, 24(2), 185–195.
Li, B., Munoz, J. P., Rong, X., Chen, Q., Xiao, J., Tian, Y., Arditi, A., & Yousuf, M. (2019).
Vision-Based Mobile Indoor Assistive Navigation Aid for Blind People. IEEE Transactions
on Mobile Computing, 18(3), 702–714. https://doi.org/10.1109/TMC.2018.2842751
Mainzer, D., & Zachmann, G. (2015). GPU Computing and Applications. In Springer (Ed.), GPU
Computing and Applications. https://doi.org/10.1007/978-981-287-134-3_9
MatLab. (2022). Tipos de imagen - MATLAB & Simulink - MathWorks América Latina.
https://la.mathworks.com/help/matlab/creating_plots/image-types.html
MaxBotix Inc. (2021a). HRLV - MaxSonar ® - EZ TM Series. 1–17. https://www.maxbotix.com/
MaxBotix Inc. (2021b). XL - MaxSonar ® - EZ TM Series.
Microchip. (2010). Datasheet - PIC12F629 PIC12F675.
Miño, J., & Gámez, B. (2020). Diseño De Un Dispositivo De Apoyo Para La Movilidad De
Personas Con Discapacidad Visual. Universidad Técnica Del Norte.
Murata, M., Ahmetovic, D., Sato, D., Takagi, H., Kitani, K. M., & Asakawa, C. (2018).
Smartphone-based Indoor Localization for Blind Navigation across Building Complexes.
2018 IEEE International Conference on Pervasive Computing and Communications,
PerCom 2018, 1–10. https://doi.org/10.1109/PERCOM.2018.8444593
Nair, V., Tsangouri, C., Xiao, B., Olmschenk, G., Zhu, Z., & Seiple, W. (2018). A Hybrid Indoor
Positioning System for the Blind and Visually Impaired Using Bluetooth and Google Tango.
Journal on Technology and Persons with Disabilities, 6, 62–82.
63
Novoa, K., & Rojas, L. (2019). La importancia de la comunicación no verbal en el desarrollo de
la comunicación efectiva del relacionador público en la organización. Universidad Viña Del
Mar, 53(9), 1689–1699.
Nvidia. (n.d.). CUDA Overview. Retrieved August 14, 2021, from
http://cuda.ce.rit.edu/cuda_overview/cuda_overview.htm
Nvidia. (2020a). Jetson Xavier Nx.
Nvidia. (2020b). XAVIER NX The World ’ s Smallest AI Supercomputer for Embedded and Edge
Systems.
NVIDIA. (2019). Jetson-gpio: una biblioteca de Python que permite el uso de GPIO de Jetson.
https://github.com/NVIDIA/jetson-gpio
NVIDIA. (2020a). DATA SHEET NVIDIA Jetson Nano System.
https://developer.nvidia.com/embedded/jetson-nano-developer-kit
NVIDIA. (2020b). NVIDIA Jetson Xavier NX System-on-Module. 1–40.
NVIDIA. (2021). Cuda C Programming Guide. Programming Guides, September, 1–261.
Obando, V., & Sotomayor, N. (2015). DISEÑO Y CONTRUCCIÓN DE UN SISTEMA DE
ORIENTACIÓN PARA AYUDA EN LA MOVILIDAD DE PERSONAS INVIDENTES.
Escuela Politecnica Nacional.
Openkinect, O. (2011). OpenKinect. https://openkinect.org/wiki/Main_Page
Owens, J. D., Houston, M., Luebke, D., Green, S., Stone, J. E., & Phillips, J. C. (2008). GPU
Computing. GPGPU Programming for Games and Science, 33–120.
https://doi.org/10.1201/b17296-8
Parissaki, B., & Otero, J. (2019). Desarrollo E implementación De Una Arquitectura Hardware
Para El Calculo De Mapas De Profundidad Para Visión Estereoscipica. Universidad
Politecnica De Madrid.
Patel, C. T., Mistry, V. J., Desai, L. S., & Meghrajani, Y. K. (2018). Environment for Visually
Impaired People. 2018 Second International Conference on Intelligent Computing and
Control Systems (ICICCS), Iciccs, 1–4.
Plikynas, D., Žvironas, A., Budrionis, A., & Gudauskis, M. (2020). Indoor navigation systems for
visually impaired persons: Mapping the features of existing technologies to user needs.
Sensors (Switzerland), 20(3), 18. https://doi.org/10.3390/s20030636
Pulido, G. (2020). Las estadísticas, un insumo necesario. | Instituto Nacional para Ciegos.
https://www.inci.gov.co/blog/las-estadisticas-un-insumo-necesario
Romero, D., Rodríguez, F., & Pérez, M. (2018). Diseño de un Sistema Portátil para la
Detección de Obstáculos por medio de Kinect, como Apoyo a Personas con Limitaciones
Visuales [Universidad Distrital Francisco José De Caldas].
http://repository.udistrital.edu.co/bitstream/11349/14039/3/RodriguezFernandezWilmarFeli
pe2018.pdf
Sabrent. (2021). Sabrent USB Aluminum External Stereo Sound Adapter | Black (AU-EMCB) |
AU-EMCB. https://www.sabrent.com/product/AU-EMCB/usb-aluminum-external-stereo-
sound-adapter-black/
Sadi, M. S., Mahmud, S., Kamal, M. M., & Bayazid, A. I. (2014). Automated walk-in assistant for
the blinds. 1st International Conference on Electrical Engineering and Information and
Communication Technology, ICEEICT 2014.
https://doi.org/10.1109/ICEEICT.2014.6919037
Segura, O., & Lozada, P. (2019). DISEÑO Y CONSTRUCCIÓN DE UN SISTEMA
ELECTRÓNICO PARA PERSONAS NO VIDENTES COMO AYUDA PARA EL CRUCE DE
LAS CALLES URBANAS BASADO EN EL PROCESAMIENTO DE IMÁGENES. Escuela
Superior Pilitecnica De Chimborazo.
Sekhar, V. C., Bora, S., Das, M., Manchi, P. K., Josephine, S., & Paily, R. (2016). Design and
Implementation of Blind Assistance System Using Real Time Stereo Vision Algorithms.
Proceedings of the IEEE International Conference on VLSI Design, 2016-March, 421–426.
64
https://doi.org/10.1109/VLSID.2016.11
Simoes, W. C. S. S., Da Silva, L. M., Da Silva, V. J., & De Lucena, V. F. (2018). A Guidance
System for Blind and Visually Impaired People via Hybrid Data Fusion. Proceedings - IEEE
Symposium on Computers and Communications, 2018-June, 1261–1266.
https://doi.org/10.1109/ISCC.2018.8538480
SONZA, M., STERPONE, L., RODRIGUEZ, J., DU, B., & PENAGLIA, C. (2019). Master ’ s
Degree in Embedded Systems Master ’ s Thesis Reliability issues in GPGPUs (Issue
December). Politecnico Di Torino.
Takizawa, H., Yamaguchi, S., Aoyagi, M., Ezaki, N., & Mizuno, S. (2015). Kinect cane: an
assistive system for the visually impaired based on the concept of object recognition aid.
Personal and Ubiquitous Computing, 19(5–6), 955–965. https://doi.org/10.1007/s00779-
015-0841-4
Tapu, R., Mocanu, B., Bursuc, A., & Zaharia, T. (2013). A smartphone-based obstacle detection
and classification system for assisting visually impaired people. Proceedings of the IEEE
International Conference on Computer Vision, 444–451.
https://doi.org/10.1109/ICCVW.2013.65
TDK. (2020). EV _ MOD _ CH201 Evaluation Module User Guide (Vol. 1, Issue 510).
Texas, I. (2015). DUAL H-BRIDGE MOTOR DRIVER. August.
Vanegas, E., & Marulanda, J. (2017). Consideraciones de diseño para un circuito de disparo de
tiristores en un rectificador trifásico totalmente controlado. Universidad Tecnológica De
Pereira.
Vasquez, R., & Cardona, A. (2019, April). Dispositivos de asistencia para la movilidad en
personas con discapacidad visual: una revisión bibliográfica. Revista Politécnica, 15(28),
107–116. https://doi.org/10.33571/rpolitec.v15n28a10
Villa, O., Stephenson, M., Nellans, D., & Keckler, S. W. (2019). NVBit: A dynamic binary
instrumentation framework for NVIDIA GPUs. Proceedings of the Annual International
Symposium on Microarchitecture, MICRO, 372–383.
https://doi.org/10.1145/3352460.3358307
Villegas, A., Asenjo, R., & Plata, O. (2015). Memoria Transaccional Hardware en Memoria
Local de GPU.
Wang, H. C., Katzschmann, R. K., Teng, S., Araki, B., Giarre, L., & Rus, D. (2017). Enabling
independent navigation for visually impaired people through a wearable vision-based
feedback system. Proceedings - IEEE International Conference on Robotics and
Automation, 6533–6540. https://doi.org/10.1109/ICRA.2017.7989772
World Health organization. (2010). Global data on visual impairments 2010.
https://www.who.int/emergencies/diseases/novel-coronavirus-2019?
gclid=CjwKCAjw092IBhAwEiwAxR1lRkDG_cAxXX61_wj1cEluDWtKYOrbEsyxU3nF9UpkL
XhpMSIR8A780RoC540QAvD_BwE
Xu, F., & Fujimura, K. (2003). Human detection using depth and gray images. Proceedings -
IEEE Conference on Advanced Video and Signal Based Surveillance, AVSS 2003, 115–
121. https://doi.org/10.1109/AVSS.2003.1217910
Zhang, H., & Ye, C. (2016). An indoor navigation aid for the visually impaired. 2016 IEEE
International Conference on Robotics and Biomimetics, ROBIO 2016, 467–472.
https://doi.org/10.1109/ROBIO.2016.7866366
Zhang, Z. (2012). Microsoft kinect sensor and its effect. IEEE Multimedia, 19(2), 4–10.
https://doi.org/10.1109/MMUL.2012.24
65
10. ANEXOS
66
67
Anexo B Código de detección de objetos.
68
Figura 44 Codigo Prossesing
69
70
71
Figura 45 Código tamplates
72
73
Anexo C Codigo de Morfologia
Figura 46 Código Operaciones morfológicas.
74
75
Figura 47 Código templates
76
Anexo D Codigo de utilidades.
77
78
Anexo E Código para el uso de la camara Kinect
79
Anexo F Codigo de Comunicación por UART
80
81
Anexo G Archivos de audio generados
Figura 48 Archivos de audio generados mediante el código de Emisión de Alertas
82
Anexo I Codigo implementado para el sensor Ultrasonico
83
Anexo J Prototipo Implmentado
84
Figura 51 Prototipo vista lateral derecha
85
Figura 52 Caja de conexiones del prototipo
86
Anexo K Diagrama esquematico Módulo de detección
87
Figura 55 Vista superior (top side) Figura 56 vista inferior (bottom side)
Consentimiento Informado
Yo
_ declaro que he sido informado e invitado
a participar en una investigación denominada “ASISTENTE DE NAVEGACIÓN PARA
PERSONAS CON LIMITACIONES VISUALES SOBRE PLATAFORMAS GPU EN
ESPACIOS CERRADOS CONTROLADOS”, éste es un proyecto de investigación
científica desarrollado por el grupo de investigación GIRA de la Universidad. Pedagógica
y Tecnológica de Colombia, Entiendo que este estudio busca conocer Verificar la
efectividad del prototipo diseñado y validar su funcionamiento con personas en condición
de discapacidad visual. Y sé que mi participación se llevará a cabo en ________________,
en el horario _______________ y consistirá en recorrer una pista de obstáculos cuyo
recorrido durará ________ minutos. Me han explicado de los posibles riesgos que hay en
el momento de recorrer la pista de obstáculos, además de realizar una encuesta la
información registrada será usada solo para fines académicos, y que los nombres de los
participantes se mantendrán en el anonimato, esto significa que las respuestas no
88
podrán ser conocidas por otras personas ni tampoco ser identificadas en la fase de
publicación de resultados.
Estoy en conocimiento que los datos no me serán entregados y cumpliendo con los
protocolos de bioseguridad presentes en el plan de gestión de COVID debido a la
contingencia generada por el virus sars-coV-2 o COVID19 y que no habrá retribución por
la participación en este estudio, sí que esta información podrá beneficiar de manera
indirecta y por lo tanto tiene un beneficio para la sociedad dada la investigación que se
está llevando a cabo.
Asimismo, sé que puedo negar la participación o retirarme en cualquier etapa de la
investigación, sin expresión de causa ni consecuencias negativas para mí.
Sí. Acepto voluntariamente participar en este estudio y he recibido una copia del
presente documento.
Firma participante:
Fecha:
Si tiene alguna pregunta durante cualquier etapa del estudio puede comunicarse con,
Mario Alejandro Reyes Medina ESTUDIANTE DE LA UNIVERSIDAD PEDAGÓGICA Y
TECNOLÓGICA DE COLOMBIA mario.reyes01@uptc.edu.co, teléfono 3112080972.
Si tiene alguna pregunta durante cualquier etapa del estudio puede comunicarse
con, MARIO ALEJANDRO REYES MEDINA estudiante de Ingeniería Electrónica
email mario.reyes01@uptc.edu.co, o con WILSON JAVIER PEREZ HOLGUN
profesor de la UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA, email
wilson.perez@uptc.edu.co.
89
(1 muy incómodo, 10 bastante cómodo)
1 2 3 4 5 6 7 8 9 10
3. ¿Cuál de los modos de emisión de alertas por parte del asistente fue de su preferencia? *
únicamente
4. ¿Qué tan fácil o difícil le resultó a usted interpretar las alertas emitidas por el dispositivo? *
1 2 3 4 5 6 7 8 9 10
90
5. Si a usted le resulto difícil la interpretación las alertas emitidas por el asistente (audibles
únicamente o hápticas y audibles simultáneamente), ¿Qué sugerencias cree usted
pertinentes para mejorar el asistente en este aspecto?
6. Si pudiera usar el asistente de navegación en los ambientes cerrados que usted frecuenta en su *
7. Si usted contara con los fondos y pudiera comprar el asistente de navegación ¿lo compraría?, sí *
o no y ¿Por qué?
8. Según la prueba realizada, ¿Qué recomendaciones daría usted para mejorar el funcionamiento *
del asistente?
91
Este contenido no ha sido creado ni aprobado por Google. Link de la encuesta https://forms.gle/TDVU8wvR65H3jjnq5
92