Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Director (a)
ING.ROBERT ALEXANDER LIMAS SIERRA
Codirector(a)
ING. WILSON JAVIER PÉREZ HOLGUÍN, PHD.
4
DEDICATORIA
Esto es opcional y corresponde a una redacción donde el autor o autores dedican su trabajo.
5
AGRADECIMIENTOS
Esto es opcional y corresponde a la mención que los autores realizan de las personas o
entidades que contribuyeron en la realización del trabajo. No se debe confundir con la
dedicatoria.
6
CONTENIDO
pág.
1. INTRODUCCIÓN......................................................................................................12
2. CAPÍTULO QUE CONTIENE EL MARCO DE REFERENCIA.................................14
2.1. MARCO CONCEPTUAL....................................................................................14
2.1.1. LIMITACIÓN VISUAL...........................................................................................14
2.1.2. GPU..................................................................................................................... 14
2.1.3. CUDA................................................................................................................... 16
2.1.4. IMAGEN DIGITAL................................................................................................18
2.1.5. Espacios de color.................................................................................................19
2.1.6. CONVOLUCIÓN...................................................................................................23
2.1.7. FILTROS.............................................................................................................. 25
2.1.8. OPERACIONES MORFOLIGICAS EN IMÁGENES BINARIAS............................28
2.1.9. MAPA DE PROFUNDIDAD DE CAMPO..............................................................30
2.1.10 ALGORITMOS DE INTELIGENCIA ARTIFICIAL IA.................................................31
2.1.11 PWM........................................................................................................................ 32
2.1.12 RPI GPIO............................................................................................................. 33
2.1.13 Análisis del marco conceptual.................................................................................33
2.2. MARCO METODOLÓGICO...............................................................................34
2.3. ESTADO DEL ARTE..........................................................................................35
2.3.1 Dispositivos no basados en cámaras...................................................................36
2.3.2 Dispositivos basados en cámaras........................................................................37
2.3.3 Dispositivos híbridos.............................................................................................38
3. METODOLOGÍA EMPLEADA...................................................................................43
3.1. MATERIALES Y TECNICAS..............................................................................43
3.1.1 HARDWARE.............................................................................................................. 43
3.1.2 FIRMWARE Y SOFTWARE.......................................................................................46
3.1.3 TECNICAS................................................................................................................ 46
3.2. METODOLOGÍA.................................................................................................52
3.2.1 DETERMINACIÓN DE LAS CARACTAERISTICAS MINIAS DE DISEÑO...........52
4. DESARROLLO..........................................................................................................68
7
5. CONCLUCIONES.....................................................................................................71
6. RECOMENDACIONES.............................................................................................72
7. BIBLIOGRAFÍA.........................................................................................................73
8
LISTA DE TABLAS
pág.
9
LISTA DE FIGURAS
pág.
10
LISTA DE ANEXOS
pág.
11
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, demostrademuestrando la su importancia de este sentido, con el
cual es posibleya que permite que las personas puedan realizar actividades importantes para
su vida diaria y primordiales en el desarrollo de la persona, tales como la capacidad de
movilizarse de manera independiente y llevar a caborealizar diferentes tareas que aporten a su
desarrollo físico, mental y social (Novoa Arancibia & Rojas Vega, 2019). En Colombia para el
año 2019, un 7,2% de la población presentaba algún tipo de discapacidad, de la cual, el 43,2%
contaba con una limitación visual; eEl 48,1% de la población con discapacidad visual considera
importante que las actividades mencionadas al inicio del párrafola capacidad de desplazarse de
manera autónoma son las más importantes, mientras que y el otro el 35,6% de dicha población
les dan mayor importancia a actividades de aprendizaje. Por esta razónDe estos datos es claro
que el aspecto con de mayor más relevancia para las personas con alguna discapacidad visual
es la movilidad (Romero, Rodríguez, Miguel, & Pereira, 2018). Ojo porque la suma da 126.9% ..
!!
Para solventar de forma parcial o total algunos de los problemas de dichos dispositivos,
actualmente se dispone de diferentes plataformas como las Unidades de Procesamiento
Gráfico (Graphics Processing Units - GPU) con las que es posible brindar un menor tiempo de
procesamiento de la información (Owens et al., 2008). También se han usado dado uso a los
microcontroladores como fuente principal de procesamiento en los asistentes de navegación.
Sin embargo, estos últimos los microcontroladores generan una barrera que es ocasionada por
12
sula limitada velocidad de procesamiento que estos presentan y la baja complejidad de datos
que estos pueden analizar (Miño, 2020). Otra plataforma en la cual se han implementado este
tipo de asistentes son los Smartphone que a pesar de su gran variedad de sensores, fácil
asequibilidad y manejo por parte del usuario, tienen el problema de no contar con la precisión y
capacidad de cómputo requerida para adquirir y procesar la información que suministra el
ambiente, lo cualde requerir demanda un alto consumo energético para su funcionamiento en
operaciones de alto volumen de procesamiento de datos como en éste caso (Murata et al.,
2018).
13
2. CAPÍTULO QUE CONTIENE EL MARCO DE REFERENCIA
El termino de limitación visual hace referencia a cualquier daño ocasionado a la agudeza visual
del ojo y el campo visual del mismo. Este término también se usa para referirse a los diferentes
grados de perdida visual hasta la pérdida total de la visión (Giesteira, Zattera, & V. Godall,
2013). Se considera que existe una limitación visual cuando hay una reducción severa de la
agudeza visual o del campo visual del ojo aúun con el uso de lentes correctivas. Este daño
puede ser causado por diferentes factores dentro de las que se destacan el mal desarrollo de
los órganos visuales (se puede dar en la gestación o en la niñez), los accidentes o
procedimientos quirúrgicos que afectan los ojos, vías visuales o hasta el cerebro y las
enfermedades como Cataratas, Glaucoma, Diabetes, Tracoma o Ausencia de vitamina A
(Organization World Health, 2010).
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 lo son 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
perdida de la facultad de percibir imágenes del ambiente lo que dificulta realizar tareas básicas
de orientación la cual no se puede corregir con gafas o lentes de contacto(SEGURA
MEDRANA, 2019).
Según estudios (¿cuáles?) entre los años de 1990 y 2020 los adultos mayores de 50 años
presentaron una diminución de pérdida total de visión en un 28,5%. Sin embargo, el número de
personas que perdieron la vista aumentóo en un 50,6% (¿cuándo o debido a qué?) y para el
año 2020 se estimó que 43.3 millones de personas sufrían de pérdida total de la visión a nivel
mundial, con lo cual se estima que para el año 2050 el número total de personas que perderán
la visión será de 61 millones. Esto , con lo cual se demuestra la creciente tendencia a que las
personas son propensas apuedan sufrir de discapacidad visual debido al envejecimiento
y otros factores (Bourne et al., 2021).
2.1.2. GPU
14
La GPU (Graphics Processing Unit) es un acelerador multihilo que permite realizar múltiples
cálculos a través de flujo de datos de forma paralela de las aplicaciones a implementadasr.
Para mejorar su eficiencia este organiza los hilos en grupos en los cuales se comparte el
mismo contador de programa. D, de esta manera ejecuta una sola instrucción en múltiples hilos
y cada uno de estos hilos cuenta con registros de propósito general los cuales pueden acceder
a las diferentes memorias con las que cuenta el acelerador (Villa, Stephenson, Nellans, &
Keckler, 2019).
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án compuestos por SP
(Stream Procesors). U, un ejemplo de este tipo de arquitecturas es la arquitectura Fermi de la
compañía NVIDIA (Hernández et al., 2013).
En los últimos años se han identificado diversas aplicaciones con requisitos computacionales
complejos las cuales han sido implementadas en una GPU siendo ejecutadas con gran éxito.
Una de estas aplicaciones es la renderización de imágenes en las que para la cual, es
15
necesario procesar miles de millones de pixeles por segundo. P, para esto las GPUs deben
ofrecer una gran capacidad de procesamiento para satisfacer aplicaciones complejas en tiempo
real. Adicionalmente, , también cuentan con un proceso de pipeline para realizar el paralelismo
que a su vez este es aplicable a muchos otros campos computacionales(Owens et al., 2008).
2.1.3. CUDA
Son las siglas para Compute Unified Device Architecture. CUDA, esta es una plataforma de
computación paralela e interface de programación de aplicaciones (API) API o modelo de
programación que permite tener acceso a las GPU diseñadas por NVIDIA mediante una
extensión del lenguaje C estándar. Incluye un compilador junto con un paquete de herramientas
de desarrollo proporcionadas por NVIDIA para realizar la codificación de algoritmos a ser
ejecutados por las GPUs (Mainzer & Zachmann, 2015). Para noviembre de 2006 la compañía
NVIDA presentó una plataforma de cómputo paralela de propósito general que aprovecha el
motor de cómputo en las GPU para dar solución a muchos problemas computacionales
complejos de una manera más eficiente que en una CPU (NVIDIA, 2015).
En cuanto al procesamiento de datos, CUDA tiene la noción de kernel. Un kernel o núcleo hace
referencia a funciones realizadas por el programador que serán ejecutadas la cantidad de
veces necesarias de manera paralela. Esta ejecución se realiza por una cantidad determinada
de hilos o Tthreads, según se requiera, en lugar de solo ejecutarse una sola vez como una
función normal de alto nivel (NVIDIA, 2015).
Los hilos se pueden organizar en grupos dado que estos pueden sobrepasar el numero
permitido para un bloque según lo defina la arquitectura de la GPU. El termino bloque (Bblock)
hace referencia a un conjunto de hilos (Tthreads) los cuales también 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. Dichos Los bloques de hilos están organizados de manera
conceptual en matrices de 1, 2 y 3 dimensiones denominadas cuadriculas (Ggrids) según sea
la necesidad de la aplicación. Estas grids son útiles cuando se necesitan procesar grandes
cantidades de datos en paralelo (NVIDIA, 2015).
16
Fuente Tomada de (Nvidia, 2011.)
Para obtener una alta eficiencia en la ejecución de los kernels se cuenta con el modelo SIMT
(Single Instruction-Multi Thread) este que permite el manejo de cientos o miles de hilos que a
ser se ejecutadosn 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
perogrande pero más lenta y con mayor latencia, que es visible por todos los hiloslos hilos en
ejecución. La desventaja del modelo SIMT es que éste no es eficiente cuando hay la necesidad
de sincronizar la cantidad de hilos para garantizar una exclusión mutua en una sección critica
(Villegas, Asenjo, & Plata, 2015).
CUDA ofrece las siguientes formas de acceder a los datos mediante múltiples espacios de
memoria durante la ejecución: 1) unala memoria global que puede acceder a todos los hilos
ejecutados dentro del kernel; 2) unala memoria compartida , que posee una velocidad de
acceso intermedia y que permite acceder a todos los hilos en un bloque; y; 3) unala memoria
local , siendo está la forma con que tiene el menor tiempo de respuesta y permite acceder a un
hilo de los a los cualesque fue asignada esta memoria (NVIDIA, 2015).
Para administrar los modelos de memoria, NVIDIA proporciona diferentes etiquetas que le
permiten para que eal compilador distinguira entre las funciones que se pueden ejecutar en la
CPU o( host), o en la GPU (o device). Estas etiquetas se muestran en la Tabla 1.
17
Tabla 1 Etiquetas de identificación de funciones.
Figura 3 Imagen digital con 256 niveles de intensidad y representación numérica de un fragmento de 8x8
Una de las características más importantes de una imagen es su resolución espacial, esta la
cual hace referencia a la cantidad de pixeles que la conforman. Es, es común expresar la
resolución de una imagen por medio de dos valores numéricos: el primero de ellos 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 existe un tipo de imagen conocida como imagen en escala de
grises. Las imágenes de este tipo son arreglos bidimensionales los cuales contienen
18
información acerca de la intensidad de luz o luminancia que presenta cada píxel de la imagen.
Normalmente, los valores de cada pixel se encuentran codificados en 8 bits, es decir, cada
pixel puede tomar un valor entre 0 y 255, siendo 0 el valor numérico correspondiente al color
negro y 255 al color blanco.
Existen varios métodos por los cuales es posible realizar la transformación de una imagen ena
color a una imagen en escala de grises. La mayoría de estos métodos utilizan el espacio RGB
para pasar una imagen ena color a su equivalente en la escala de grises debido a su
simplicidad de manejo. Un, siendo unaa de las formas más usadas es el promedio de las tres
componentes del espacio RGB (ver Ecuación 1) como se muestra a continuación (Cortes
Osorio, Urueña, & Mendoza Vargas, 2011):.
R ( x , y ) +G ( x , y ) , B( x , y)
ImGris(x , y)= (1)
3
Ecuación 1 Conversión de una imagen a escala de grises método del promedio.
Los espacios de color hacen referencia a los distintos planos espaciales con los cuales se
puede trabajar una imagen digital a color. E, existen varias representaciones espaciales entre
ellas están el RGB, HSV, HSI y el modelo YCbCr.
El espacio 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
19
establece los ejes R, G, B. C, y caada componente de color depende de una coordenada
especifica como se muestra en la imagen Figura 5.
Esto convierte a este espacio de color como uno de los modelos de mayor importancia para el
procesamiento de imágenes.
Las siglas HSV (Hue, Saturation, Value) hacen referencia a elal tono, saturación y valor
respectivamente. E, el sistema coordenado para este espacio es cilíndrico. La, y la pirámide
hexagonal presentada en la Figura 6 corresponde al sub conjuntosubconjunto en donde la
distribución de colores varía dependiendo a la ubicación dentro del plano espacial. E, en este
modelo los colores más brillantes están contenidos en el área hexagonal donde el valor de la
componente V=1. Para medir el tono dentro deen este plano se usa el ángulo de apertura
tomando como referencia el eje S. E, 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.
20
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 una la gran ventaja de ser y es que es invariante a las condiciones de luz.
Sin embargo, la alta complejidad computacional que requiere para ser implementada sobre
todo en plataformas como FPGA dificulta su uso (Dobernak, 2015).
21
Figura 7 Representación del modelo HSI
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
I = (R +G+ B) (8)
3
Ecuación 3 Transformaciones no lineales del espacio RGB a HSI
22
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 debido a sus
transformaciones no lineales lo que lo y hace que este espacio sea 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. E, 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) que son características del color. L, en cuanto a la luminancia es
la cantidad lineal de luz que es directamente proporcional a sula intensidad física. P esta puede
ser calculada como una suma ponderada de los componentes del espacio RGB.
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, , pero el trabajar en
este espacio no ofrece buenos resultados con los algoritmos de visión por computadora como
por ejemplo laejemplo en la segmentación de objetos por color (ver Ecuaciones 9 a 10.
Transformaciones no lineales del espacio RGB a YCrCb). (Dobernak, 2015).
2.1.6. CONVOLUCIÓN
23
∞
f(t)*h(t)¿ ∫ f ( τ ) h(t−τ )dτ (12)
−∞
Para realizar esta misma operación en tiempo discreto y con sistemas digitales se tiene la
siguiente expresión (Ver Ecuación 13).
∞
y [ n]= ∑ h [ k ] x [ n−k ] (13)
k=−∞
a b
w ( x , y )∗f ( x , y )= ∑ ∑ w ( s , t ) f ( x−s , y−t ) (14)
s=−a t=−b
24
Como se muestra enEn la Figura 8 se muestra a la izquierda se ubica la matriz
correspondiente a la imagen en la que: cada píxel está representado marcado conpor su valor
numérico. El píxel para el que vamos a realizar la operación de convolución se presenta con
inicial tiene un borde rojo. El área de acción de la ventana tiene se presenta con un borde
verde. En el medio se muestra , la ventana de convolución , y a la derecha se presenta , el
resultado de convoluciónobtenido. Para realizar esta operación la ventana se sitúa de manera
que esta quede contenida en la imagen, se toma el pixel inicial se multiplica el valor de este
píxel de la imagen con el valor del pixel de la ventana que coincide con y de el mismo modo
los pixeles circundantes y se suman los resultadosse realiza la multiplicación entre cada
elemento de la ventana de la imagen y la ventana de convolución. en el caso particularPara el
ejemplo de la Figura 8 seria de la siguiente manerase obtiene:
Pixel resultado =( 40∗0 ) + ( 42∗1 ) + ( 46∗0 )+ ( 46∗0 ) + ( 50∗0 ) + ( 55∗0 ) + ( 52∗0 )+ ( 56∗0 )+ ( 58∗0 )=42 (15)
2.1.7. FILTROS
Los filtros son una de las principales herramientas en el procesamiento digital de imágenes y
son usados en este campo para el desarrollo de un gran número de aplicaciones. El concepto
de filtro se ha tomado prestado del procesamiento de señales para ser usado en el campo del
procesamiento de imágenes debido a que este concepto está asociado con permitir o rechazar
componentes frecuenciales. El, el efecto producido por un filtro pasa bajas es realizar el
difuminado de la imagen. Es es posible lograr, este mismo difuminado es posible lograrlo
usando filtros espaciales los cuales son llamados mascaras espaciales o ventanas (Gonzalez
et al., 2009).
25
Fuente tomado de:(Gonzalez et al., 2009)
Estos filtros consisten en un arreglo matricial, el cualen el que se modifican los pixeles de la
imagen que están envueltos dentro del arreglo o filtro y mediante el proceso de filtrado se crea
un nuevo pixel en las mismas coordenadas del elemento central de la ventanala ventana o
matriz, cuyo valor es el resultado de la convolución entre el filtro y la imagen de entrada. Esto,
esto sucede cuando el pixel ubicado en el centro de la venta se opera con cada uno de los
pixeles de la imagen. En, en algunos casos, la operación que ese se realiza entre el filtro y la
imagen a procesar es lineal por lo cual algunos de estos arreglos son llamados filtros lineales,
ademáslineales. Además de estos, también existen los filtros no lineales los cualesque se
emplean en otro tipo de aplicaciones, las cuales están dadas en el dominio frecuencial. Los, los
filtros no lineales funcionan dando un orden a los valores de la vecindad en cada uno de los
puntos, este orden se da de menor a mayor, con lo cual se obtiene un valor para los pixeles a
través de una lista ordenada. Los, estos filtros no lineales son usados también si el objetivo a
lograr es la reducción de ruido en la imagen y no el difuminado de la imagen. En el caso de una
imagen en escala de grises, dependiendo del valor del pixel en dicha escala, el valor del pixel
de la imagen original y se reemplaza por un valor ya sea mínimo, máximo o un valor de
mediana según las necesidades de la aplicación a desarrollar. De esta manera , con lo cual se
tiene un procesamiento particularmente efectivo dado a que si el patrón de ruido coincide en las
componentes frecuenciales más fuertes y tiene forma de pico puede ayudar a resaltar los
bordes en la imagen(González et al., 2009).
Dentro de los filtros más comunes o usados en el procesamiento digital de imágenes se
destacan el filtro laplacianoLaplaciano, el filtro de gaussGauss, el filtro de Roberts y el filtro de
Prewitt.
26
2
∂ f
2 calculo del gradiente en sentido de las columnas.
∂x
∂2 f
cálculo del gradiente en sentido de las filas.
∂ y2
∇ 2 f vector gradiente.
2 2
2 ∂ f ∂ f
∇ f= 2
+ 2
∂x ∂y
Ecuación 9 Definición del laplaciano en 2 dimensiones.
En el caso de realizar la formulación del laplaciano este puede ser implementado de forma
digital de varias maneras la manera más frecuente de aplicar este filtro es la siguiente
Cabe resaltar que este filtro no se suele usar directamente en la práctica por ser muy sensible
al ruido que presente la imagen por lo que se suele usar después de usar una máscara para
realzar los contornos (González et al., 2009).
g ( x , y )= 2
е
2 лδ
Ecuación 11 Filtro de gauss.
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 2 operaciones unidimensionales en donde una
de ellas se realiza en sentido horizontal y la operación restante en sentido vertical además de
que con este filtro se logra un difuminado mucho más uniforme(González et al., 2009).
27
gx coordenada del pixel en sentido de las columnas
gy coordenada del pixel en sentido de las filas
∇ f vector gradiente
[]
∂f
∇ f =grad =
[ ]
gx
gy
=
∂x
∂f
∂y
El operador de Roberts es el más simple de todos, este utiliza la dirección diagonal para
calcular el vector gradiente usado en su respectiva mascara o matriz(González et al., 2009).
28
Las operaciones básicas en cuanto a morfología se refieren son dos erosión y dilatación, con
las cuales se pueden hacer operaciones denominadas como apertura y cierre.
2.1.8.1. EROSIÓN
Esta consiste en eliminar todos los pixeles del objeto en donde al menos uno de sus pixeles en
su vecindad pertenezca al fondo, este tiene como objeto reducir el objeto o eliminar objetos que
sean muy pequeños (Fernández, 2020).
2.1.8.2. DILATACIÓN:
En esta operación todos los pixeles que pertenezcan al fondo se convierten en pixeles del
objeto si al menos uno de los pixeles que este en su vecindad pertenece a dicho objeto, esta
operación se usa para aumentar el tamaño de los objetos o rellena agujeros que puedan estar
dentro del objeto a destacar (Fernández, 2020).
2.1.8.3. APERTURA:
29
Consiste en aplicar primeramente la erosión a la imagen y el resultado obtenido se le aplica la
operación de dilatación, este tiene como efecto eliminar elementos salientes, conexiones finas
o suavizar los contornos de un objeto (Fernández, 2020).
I imagen digital
H ventana de operación
I ○ H =(I ⦵ H )⨁ H
Ecuación 13 Apertura.
2.1.8.4. CLAUSURA:
Para realizar esta operación se aplica en primer lugar dilatación posterior a esto se realiza
erosión, la clausura fusiona dos objetos separados por un margen delgado además de eliminar
pequeños orificios manteniendo el tamaño del objeto rellenar o suavizar el contorno
(Fernández, 2020).
30
Fuente tomado de:(Rafa Docencia,2021.)
I imagen digital
H ventana de operación
I • H =(I ⨁ H)⦵ H
Ecuación 14 Clausura.
Otro método para obtener mapas de profundidad es mediante cámara que no solo cuentan con
señores RGB sino también sensores infrarrojos. En este método lo que se hace es lanzar el
rayo del láser infrarrojo a la superficie del objeto y ser realiza la grabación de la proyección del
láser para así determinar la geometría del ambiente. Una vez determinada la geometría de
entorno las coordenadas de la luz reflejada se pueden estimar por triangulación. Con esto se
genera una nube de puntos con la cual se detecta movimientos en los tres ejes espaciales (x, y,
31
z) en los objetos de la escena o de la cámara. Esta nube de puntos se puede proyectar en un
espacio 2D
La cual en los pixeles de la imagen que genera no contiene los valores de distancia en lugar de
los valores de intensidad. En la mayoría de las veces una sola cámara puede ser suficiente, sin
embargo, si el objeto esta ocluido en referencia a la cámara el mapa generado puede quedar
incompleto para solucionar este problema se recurre al uso de varias cámara láseres(Parissaki,
2019).
El concepto de inteligencia artificial puede variar dependiendo de la fuente que se tome como
referencia y el punto de vista que esta manifieste. Sin embargo, lo que sí es claro es que la IA
estudia la forma para que los ordenadores o equipos de cómputo sean capaces de llevar a
cabo actividades o tareas que por ahora son mejor realizadas a por los seres humanos
(Vásquez Salazar & Cardona Mesa, 2019).
Dentro del proceso de desarrollo de la IA fueron creadas las redes neuronales con las cuales
surgió la posibilidad de realizar tareas que eran cotidianas para las personas, pero ahora con la
asistencia de un equipo de cómputo alguna de estas tareas se han logrado realizar con este
tipo de algoritmos han sido ejemplo de ello es el reconocimiento de patrones, reconocimiento
de caracteres, reconocimiento de voz, reconocimiento de rostros, reconocimiento de objetos y
otras aplicaciones más (Vasquez Salazar & Cardona Mesa, 2019).
32
Uno de los algoritmos más populares es el algoritmo YOLO (You Only Look Once) este
algoritmo hace uso de redes neuronales para realizar la detección de objetos en tiempo real y
ha sido muy utilizado en diversas aplicaciones como detectar señales de tráfico, personas,
parquímetros y animales y objetos(Jadhav et al., 2021).
2.1.11 PWM
La modulación PWM (Pulse Width Modulation) es una técnica que consiste en realizar la
variación del ancho del ancho de pulso o ciclo de trabajo de una señal periódica (típicamente
cuadrada), el cual determinara el tiempo en el que la señal se encuentre en nivel alto o bajo
con respecto al periodo de dicha señal, este tipo de modulación tiene diversas aplicaciones que
van desde el control de brillo de leds, control de velocidad de motores hasta aplicaciones de
electrónica de potencia (Vanegas, 2017).
τ
D=
T
Ecuación 15 PWM.
En donde
D es el ciclo de trabajo
τ es el ancho de pulso
T es el periodo de la señal
33
2.1.12 RPI GPIO
Esta librería es compatible con varias tarjetas de NVIDIA entre ellas la Jetson Xavier NX,
debido a que estas tarjetas tienen un puerto GIPO similar a las de las Raspberry, estos pines
de propósito general son configurables como entradas o salidas digitales, usando esta librería
en Python proporcionada por el paquete Jetson GPIO, esta tiene la misma API que la biblioteca
Rpi.GPIO usada por las Raspberry con el fin de generar compatibilidad entre las 2 plataformas
(NVIDIA, 2019).
Esta proporciona diferentes modos de acceder a los pines, si se trabaja por el número de pin
cada uno de ellos cuenta con dos numeraciones distintas para esto existen el modo BOARD y
BCM, el primero hace referencia al número del pin correspondiente al puerto GPIO y el
segundo modo corresponde al número del Board Com Soc (NVIDIA, 2019).
También cuenta con dos modos adicionales los cuales son el CVM y el Tegra SoC, estos
utilizan cadenas de caracteres en lugar de números que corresponden a los nombres de las
señales con el conector CVM y el Tegra SoC respectivamente (NVIDIA, 2019).
Los anteriores conceptos son importantes en el desarrollo del proyecto debido a contexto que
ofrecen acerca de los diferentes elementos teóricos que soportan la implementación de
asistente de navegación. La definición de discapacidad visual permite contextualizar las causas
que generan dicha discapacidad y los distintos tipos que existen y sus repercusiones a la salud,
y también identificar el porcentaje de población que presenta esta este tipo de discapacidad y
un estimado de la población que puede sufrir este tipo de discapacidad en el futuro y quienes
podrían ser beneficiados con este tipo de sistema.
En cuanto al concepto de GPU ofrece una visión general acerca de la plataforma en la que se
soporta el prototipo, además de las aplicaciones para las que son usados este tipo de
procesadores. CUDA permite conocer como está constituida las GPU’s en específico las
desarrolladas por la compañía NVIDIA y la forma de realizar la programación de los kernels a
ejecutar en esta plataforma.
El concepto de imagen digital permite identificar como están compuestas este tipo de imágenes
y entender de qué forma están constituidas dichas imágenes y de esta manera entender de
mejor manera como realizar el procesamiento de este tipo de imágenes, también los espacios
de color proveen la información de los diferentes planos en las cuales se puede analizar este
tipo de imágenes y las ventajas y desventajas de cada uno de estos espacios.
34
Las operaciones morfológicas fueron tenidas en cuenta debido a su facilidad en la
implementación y que mediante de estas operaciones es posible extraer información de interés
presente en la imagen a analizar.
En cuanto el PWM este concepto permite conocer una técnica de control de actuadores en este
caso motores para generar las alertas hápticas las cuales se describirán con más detalle más
adelante.
El RPI GIPO permite identificar las similitudes que tiene la Jetson Xavier y las Raspberry en
cuanto al puesto de pines de prototipo general lo cual facilita el uso de este puerto para el
desarrollo de diversas aplicaciones
Para el desarrollo del asistente de navegación se establece una etapa en donde se identifiquen
las especificaciones mínimas que permitan solventar las necesidades básicas en cuanto a
movilidad consideradas por parte de las personas con limitaciones visuales además de algunas
mejoras que se sugieren por parte de los distintos autores que han trabajado en el desarrollo
de estos prototipos (Romero et al., 2018; Sadi, Mahmud, Kamal, & Bayazid, 2014; SEGURA
MEDRANA, 2019; Vasquez Salazar & Cardona Mesa, 2019). En el trabajo realizado
por(Romero et al., 2018) se identifica el porcentaje de población con limitación en este trabajo
se encontró que en Colombia según estudios realizados por el DANE para el año 2005 las
personas con discapacidad visual era del 43,2% del total de personas con alguna discapacidad,
también en el trabajo realizado por en donde se en el cual se muestra que la población objetivo
es de 39 millones en todo el mundo lo que equivale al 13% de la población mundial, con esto
se toma como base estos estudios para realizar la identificación de las necesidades que
presenta esta población en particular.
Como segunda instancia y tomando como referencia los trabajos de (Alarcon Ariza & Talero
Niño, German Leonardo, Pérez Holguín, 2013; OBANDO, 2015; Plikynas et al., 2020) se
plantea una etapa de diseño de alto nivel con el fin de identificar las diferentes partes que
componen el asistente que suplan las especificaciones de diseño identificadas en la etapa
anterior, además de identificar las diferentes tecnologías que más usadas en la implementación
de estos dispositivos.
Con base en diseño de alto nivel se propone realizar el diseño a detalle de cada una de las
partes identificadas para conformar el asistente, con el objetivo de identificar cual es el mejor
35
método de procesamiento de la información que reciba el asistente además de los distintos
elementos que componen cada parte de los módulos del asistente. (Caraiman et al., 2017;
OBANDO, 2015; Patel, Mistry, Desai, & Meghrajani, 2018).
Por último se plantea una etapa de validación del asistente con ayuda de personas que
presentan limitación visual como se realizó en los trabajos (ARIZA et al., 2010; Caraiman et al.,
2017; OBANDO, 2015; Romero et al., 2018; Sekhar et al., 2016) , realizando encuestas de
satisfacción al momento de utilizar el dispositivo propuesto para conocer la opinión de esta
población y determinar los posibles ajustes para trabajos futuros.
Existen aproximadamente más de 285 millones de personas que sufren de una discapacidad
visual, de los cuales cerca de 39 millones de personas son ciegas y el restante son personas
que presenta baja visión. La mayor parte de personas con alguna discapacidad visual se
encuentra en edades mayores a 60 años, estos problemas han logrados ser mitigados gracias
al avance en tecnología médica, sin embargo, las personas se ven afectadas por degeneración
macular (destrucción lenta de visión central aguda) relacionadas con la edad. Debido a esto se
espera que en los próximos 25 años la población que sufra de alguna limitación visual se
triplique (Pararajasegaram, 2020).
Por esta razón se ha dado desarrollo a distintos tipos de dispositivos electrónicos los cuales
emplean diversas formas de detección de objetos, para dar más independencia a las personas
con limitación visual y mejorar la calidad de vida de las personas que presentan esta condición,
estos dispositivos se dividen en 3 tipos de pendiendo de la forma en que perciban la
información del entorno dichos tipos se muestran a continuación.
Por otro lado, existe un dispositivo electrónico para dar asistencia a las personas invidentes el
cual consta de un chaleco en el cual se ubican cuatro sensores ultra sónicos además de 2
microcontroladores uno de ellos el maestro se encarga de recibir la información proveniente de
los sensores y enviar la señales de alerta audibles, las cuales son mensajes pregrabados que
36
le informan al usuario acerca de lo que hay en su entorno, el otro microcontrolador el esclavo
se comunica con el maestro mediante un receptor inalámbrico por comunicación serial RS232,
para de esta forma dar las alertas aptica al usuario mediante seis motores vibratorios que se
ubican en el chaleco (OBANDO, 2015)
Otro dispositivo basado en este tipo de plataformas es un asistente el cual está 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 que se traza por medio del
GPS y para alertar de algún obstáculo genera una alerta háptica la cual varia su intensidad
según sea la distancia a la que se detecta el objeto, una de las desventajas de este dispositivo
es que en ambientes cerrados como edificios el modulo GPS no hace una buena recepción de
los datos para realizar su ubicación (Miño, 2020).
Además de las diferentes plataformas en las cuales se soportan los asistentes de navegación
existen también existe diversas tecnologías que pueden ser usadas para la implementación de
prototipos con esta finalidad. Una de estas tecnologías es el BLE (Bluetooth Low Energy),
este trabaja realizando una red de etiquetas de navegación, esta alcanza una precisión de 1 a
2 m dependiendo de la propagación de la señal, uno de los ejemplos de dispositivos basados
en esta tecnología es el asistente SUGAR el cual usa etiquetas (BLE) para dar el
posicionamiento del usuario (Plikynas et al., 2020).
Los sensores infrarrojos también han sido utilizados como una alternativa para el desarrollo de
dispositivos de navegación de interiores, estos son usados para establecer la distancia de los
objetos dentro de la escena en la que se encuentre 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 son demasiado complejos e ineficientes en comparación
con otros asistentes que implementan otras tecnologías de posicionamiento (Plikynas et al.,
2020).
Además de esto también existen formas poco convencionales para realizar asistentes de
navegación en interiores, un ejemplo de esto es utilizar el campo magnético para el
posicionamiento, este utiliza el paisaje magnético que generan las edificaciones creado por sus
estructuras internas y los materiales con los cuales están construidas, estas crean
perturbaciones en el campo estable de la tierra y le dan forma al paisaje anteriormente
mencionado, dichas perturbaciones se usan para determinar la dirección, un asistente que usa
este método es GROPING el cual usa el campo geomagnético para generar mapas de
interiores, para esto se toma la huella dactilar magnética y la localización ligera luego se
reconstruye el mapa magnético para realizar la estimación de la posición del usuario (Plikynas
et al., 2020).
Sin embargo los asistentes basados en estas tecnologías no han tenido gran acogida en el
mercado dado a que estos pueden sufrir fallas, además de que su interfaz de comunicación
37
transmite poca información de los obstáculos que detecta y que puede ser un peligro potencial
de colisión (Vasquez Salazar & Cardona Mesa, 2019).
Los sistemas basados en cámaras usan sensores RGB como fuente principal de información,
siendo capaces de reconocer objetos.
Los Smartphone también han sido usados para el desarrollo de estos asistentes, para los
Smartphone con sistema Android se ha desarrollado una aplicación la cual identifica códigos
QR, la ventaja de este es que no requiere ningún hardware adicional para su funcionamiento
además los códigos QR están distribuidos en el piso a una distancia determinada, este código
le da información al usuario de su posición actual y solicita el destino al cual se quiere dirigir la
persona con discapacidad visual para ofrecer así la ruta más óptima para llegar a su lugar de
destino, la aplicación cuenta con un rastreo de la ruta la cual si detecta una desviación este
envía alertas audibles al usuario para ayudar a regresa al usuario a la ruta trazada
anteriormente. Uno de los inconvenientes es que se debe estar todo el tiempo en línea, pero
con ayuda del módulo GPS se espera poder suplir este inconveniente y que la aplicación pueda
ser usada no solo para interiores sino también para exteriores (Idrees et al., 2015)
Dentro de los prototipos desarrollados para el apoyo apersonas con discapacidad visual existe
un asistente de navegación el cual se compone de un sensor Kinect de Microsoft, un teclado
numérico un sensor táctil y finalmente un bastón blanco y otros dispositivos para la
retroalimentación, el sensor Kinect se usa para realizar la búsqueda de objetos y luego envía
una retroalimentación al usuario mediante el sensor táctil, este cuanta con la capacidad de
reconocer varias clases de objetos como silla escaleras entre otros que estén fuera de rango
de detección con el bastón, este está diseñado para enviar la cantidad justa de información al
usuario y de la manera más eficiente posible (Takizawa, Yamaguchi, Aoyagi, Ezaki, & Mizuno,
2015).
Otro dispositivo realizado dentro de este campo es un prototipo realizado sobre la plataforma
Raspberry pi 3, el cual es capaz de reconocer las diferentes señales de tránsito entre ellas los
tres estados de un semáforo (rojo, amarillo, verde), este primero realiza una etapa de pre
procesamiento con el fin de destacar la información de mayor importancia, para dar más
38
facilidad al seccionamiento de los objetos de interés, para luego realizar una comparación y
realizar la distinción de los objetos identificados y de esta manera generar una alerta para
enviar un mensaje con la información obtenida por medio de alertas auditivas. La desventaja de
este prototipo es su tiempo de ejecución este asistente demoro en promedio de 4.3 segundos
entre adquirir los datos a analizar y enviar una alerta lo cual hace que la fluidez con la que el
usuario transita por el entorno se vea afectada (SEGURA MEDRANA, 2019)
Un aporte más al desarrollo de asistentes de navegación es un prototipo el cual cuenta con dos
tipos de alerta audible y no audible además de una cámara Kinect con la cual se toman las
imágenes de a escena por la cual el usuario se desplaza además de estimar la distancia de los
objetos presentes en el ambiente en un rango de 50 a 250 cm, la alerta no audible consta de
tres dispositivos hápticos que se ubican en el abdomen de la persona con los cuales se
indicaba en qué posición se encuentra el obstáculo (derecha, centro e izquierda) este
dispositivo presento la limitante de que sus alertas vibratorias eran confusas además de no
ofrecer mucha información acerca del ambiente por el cual se está transitando (Romero et al.,
2018).
39
una señal vibratoria con una velocidad inversamente proporcional a la proximidad del objeto es
decir entre más próximo este el objeto u obstáculo en la ruta trazada más veloz será la
vibración. Una de las limitantes que presentaba este dispositivo es el tiempo en el que tarda
para realizar la abstracción de características del entorno en el que se encuentra el usuario
(Nair et al., 2018).
Otro dispositivo que integra varias tecnologías es un asistente de navegación el cual incorpora
dos formas de realizar el procesamiento de la información obtenida del ambiente, la primera
forma es un modo online se realiza la fusión de datos de radio frecuencia junto con unos
marcadores visuales o solo por el wifi cuando uno de los sensores se ve fuertemente afectado
por ruidos u otras interferencias, el segundo modo es el modo off line, el mapeo de interiores se
realiza mediante la fusión de datos de radiofrecuencia y marcadores visuales, construyendo
una representación del entorno por el cual está transitando la persona portadora del dispositivo
(Simoes, Da Silva, Da Silva, & De Lucena, 2018).
Otro aporte realizado en cuanto al desarrollo de asistentes de navegación para invidentes es un
dispositivo para detección de objetos en ambientes cerrados el cual cuenta con unos sensores
de ultrasonido con los cuales envían la información de la ubicación de los objetos presente en
el entorno a un microcontrolador para su procesamiento, el sistema no solo cuenta con
sensores ultrasónico sino también con sensores laser y la captura de imágenes para obtener
información más precisa del ambiente que rodea a la persona. Para la interacción con el
usuario cuenta con un motor vibrador que se ubica en la cintura del usuario además de dar
alerta de forma audible mediante auriculares estéreo, en cuanto al procesamiento de imágenes
este procesa grupos de seis imágenes de una misma escena para determinar si hay un
obstáculo o no y determinar la ruta más segura para el usuario, dentro de los problemas
encontrados con este sistema es que no logra detectar de manera eficiente las paredes
generando un riesgo de colisión al usuario (Gabriel, 2018).
Las FPGA (Field Programmable Gate Array) han sido utilizadas con el fin de desarrollar
prototipos eficaces de asistencia de navegación para personas con discapacidad visual, para
ello se ha aplicado el uso de algoritmos de disparidad, y las diferentes arquitecturas de
hardware eficientes para describir estos algoritmos sobre la FPGA, con los cuales es posible
estimar la distancia del obstáculo y enviar la alerta correspondiente al usuario mediante señales
audibles, la desventaja de esto es que para realizar un sistema veloz se requiere el uso de
muchos elementos lógicos a pesar de optimizar el algoritmo, por lo cual ha recurrido a
arquitecturas semiparalelas para reducir los elementos lógicos en la implementación del
sistema (Sekhar et al., 2016).
40
enviaban la información al computador a través de la tarjeta de adquisición. Para distancias
mayores a los 3 metros, la detección de obstáculos era realizada a través de las imágenes
obtenidas por las cámaras. Por último, los actuadores de vibración le indican al usuario la mejor
ruta de navegación. Una de las recomendaciones de este trabajo es 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 en el año 2010 no
tenía las capacidades para 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, demostrando el principal problema de esta implementación
(ARIZA et al., 2010).
TECNICA DE
Tipo de sistema PLATAFORMA SENSORES PROCESAMIENTO AUTOR
GPS Geolocalización
(SEGURA
MEDRANA,
41
Raspberry pi Rasbpicam Visión por 2019)
computadora
Basado en
cámaras
Harris Corner
detector-Visión (Takizawa et al.,
Computador Cámara Kinect stereo 2015)
Cámara
Cámara Marcadores
visuales
Raspberry (Simoes et al.,
wifi No registra 2018)
Sensores de Marcadores de
42
radio frecuencia radio frecuencia
43
3. METODOLOGÍA EMPLEADA
1.
2.
3.1. MATERIALES Y TECNICAS
3.1.1 HARDWARE
JETSON
Es un sistema en módulo SOM (Sistem On Module) completo, con CPU, GPU, DRAM y
almacenamiento flash de alto rendimiento de formato pequeño, SDK (software development kit)
NVIDIA JetPack™ para acelerar el software y un ecosistema con sensores, SDK, servicios y
productos para acelerar el desarrollo. Dentro de las plataformas se encuentra la Jetson Xavier
Nx de Nvidia, la cual cuenta con las siguientes especificaciones:
Es un sistema en módulo SOM (Sistem On Module) completo, con CPU, GPU, DRAM y
almacenamiento flash de alto rendimiento de formato pequeño, SDK (software development kit)
NVIDIA JetPack™ para acelerar el software y un ecosistema con sensores, SDK, servicios y
productos para acelerar el desarrollo. Dentro de las plataformas se encuentra la Jetson Xavier
Nx de Nvidia, la cual cuenta con las siguientes especificaciones:
puede ser alimentada con voltajes entre el rango de 9v a 20v.
potencia de trabajo hasta los 15W otorgando altas tasas de frecuencias de
trabajo tanto de la CPU como de la GPU.
una GPU volta con 348 núcleo Nvidia Core y de 48 hilos por núcleo.
procesador ARM Carmel V8.2 de 64 bits.
memoria DRAM de 8GB LPDDR4x.
almacenamiento de 16GB de memoria eMMC 5.1.
4 puertos USB 3.1.
GPIO de 40 pines, donde varios de estos están dedicados a módulos
específicos como son dos módulos PWM.
cuenta también con un conector HDMI.
conector Gigabit ethernet (Nvidia, 2020).
Fue necesaria la instalación del sistema operativo Linux en su versión XXX sobre una memoria
micro sd (Micro Secure Digital) de 64GB, Para el uso del GPIO, fue necesaria la instalación de
la librería Rpi.GPIO-0.5.11 con la cual fue posible configurar los pines como entrada o salida e
interrupción por flanco.
44
Es un micro controlador potente y fácil de programar, tiene un encapsulado de 8 pines, cuenta
con 4 canales para el conversor análogo digital los cuales tienen una resolución de 10 bits,
además de esto tiene una memoria flas la cual se usa como memoria de programa de 1.75
Kbytes y puede ser alimentado con voltajes en el rango de 2 a 5.5 voltios (MICROCHIP, 2010).
En la memoria interna del microcontrolador se encuentra un programa con el cual se configuró
el ADC a 10 bit de resolución y se dispuso la toma de datos cada XXX segundos, junto a un
acumulador y una función que se encargara de promediadiar 4 tomas de datos pasadas.
KINECT
El sensor Kinect es un dispositivo desarrollado por la compañía Microsoft, el cual está orientado
principalmente a la industria de los videojuegos. este dispositivo está constituido por una
cámara RGB, un sensor infrarrojo o de profundidad, un micrófono multi array y un procesador
personalizado que es propio de Microsoft. Por medio de su sensor infrarrojo permite obtener un
mapa de profundidad, la cual permite estimar la distancia de los diferentes obstáculo u objetos
presentes en la imagen capturada. Posee también una base graduable de entre 30° y –30° en
el eje vertical (Guerrero & Villaluenga, 2013).
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 de la misma luz, el software del
Kinect determina una matriz de 640*480, en la cual el pixel vario su valor dependiendo a que
distancia se encuentre el objeto con respecto al sensor
45
Fuente Tomada de(ideas geek, 2018)
Debido a que la comunicación del dispositivo con la plataforma Jetson, es por medio de interfaz
USB 2.0 también fue necesaria la instalación de la librería libusb-1.0, la cual permitió acceder a
la información directamente por medio del módulo USB de la Jetson.
Vin∗5 mm
distancia=
1024
Además, este sensor actualiza los datos de distancia cada 0.1 segundos lo que permite que
realice toma de datos en tiempo real (MaxBotix Inc., 2021).
MODULO DE AUDIO
MODULO DE VIBRACION
46
El módulo de vibración fue dividió en dos secciones: La primera sección del módulo constó en
el uso de dos motores de referencia N20, el cual tiene una tensión de alimentación entre 1.5 a
9v, tiene una velocidad de rotación máxima de 8800 RPM, cuenta con una corriente nominal
90mA, en ocasiones estos motores son usados para realizar funciones de realimentación
háptica en diversos dispositivos para diferenciarlos de la competencia. La segunda sección de
modulo es el driver de potencia el cual está conformado por el módulo Arduino DRV8833, este
es un dispositivo el cual cuenta con un puente dual para el control de giro para motores DC, el
bloque de salida del dispositivo consiste por un mosfet de potencia de canal N, también cuenta
con funciones de protección contra cortos y sobre corrientes, un bloqueo por sub tensión y
sobre calentamiento, este puede ser alimentado en un rango de tensión entre -0.3 v a 11.8 v y
en sus entradas digitales tensiones entre -0.5v a 7v (Texas, 2015).
Herramientas
Para el desarrollo del programa del microcontrolador, se utilizaron herramientas en las etapas
de diseño, simulación y depuración tales como la interfaz de desarrollo del código del
controlador CCS en su versión 5.083 y el simulador funcional Proteus en su versión 8.10
utilizado principalmente para la prueba y depuración del algoritmo descrito para el
microcontrolador.
PyCUDA
3.1.3 TECNICAS
47
1. Se realizó la descripción de un algoritmo en Python, el cual fuese capaz de calibrar el
dispositivo para realizar la adquisición y posterior almacenamiento de los datos
correspondientes al mapa de profundidad en formato JPEG y CSV.
2. Se ubicó la cámara Kinect a una altura de 65 centímetros y con un ángulo de inclinación
de 30° para el dispositivo, 0 grados con respecto al suelo.
3. Un obstáculo con medidas 67cm x 106cm fue ubicado frente a la cámara primeramente
a una distancia mínima de 50cm hasta una distancia máxima de 350cm, se obtuvieron 8
datos almacenados por toma y formato realizando variaciones cada 5cm entre toma y
toma.
4. Se describió otro algoritmo en Python que fuese capaz de acceder a los datos
almacenados en formato JPEG y CSV resultantes del anterior paso, con el fin de lograr
promediar el valor de los pixeles que corresponden al objeto identificado como
obstáculo en cada formato correspondiente a cada distancia para así generar una hoja
de cálculo donde se tabularon los resultados obtenidos.
1.1
5. con los datos plasmados en la hoja de cálculo, se promediaron los 8 diferentes valores
obtenidos de los valores de pixel por distancia recorrida, para así obtener un valor de
único de pixel.
6. con los resultados promediados obtenidos por cada distancia vs valor de pixel, se
realizó la gráfica XXX para luego agregar la línea de tendencia y ecuación característica
de esta.
Cabe resaltar que, 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, llegando a una
ecuación característica del funcionamiento general del sensor.
48
El algoritmo para la detección de obstáculos se basó principalmente en el análisis por intervalos
de distancias del mapa de profundidad entregado por el sensor, la ubicación y distancia de los
obstáculos resultados que serán representados por un mapa de profundidad 2D en formato
binarizado. El proceso de funcionamiento se describe en las siguientes iteraciones:
49
Ecuación 15 Cálculo del número de frames procesados.
DISCRIMINANTE DE SUELO
El algoritmo para la discriminación del suelo se basó principalmente en la teoría de perspectiva
que tiene la imagen obtenida por la cámara, en este se tuvo en cuenta que la cámara
idealmente:
Donde:
a b=c∗sin β
c=
cos β
Por lo tanto, b es la distancia desde la cual se empezará a detectar el suelo como un objeto,
para obviar este parámetro fue necesario partir de la matriz resultante del proceso 5 del
algoritmo para la detección de obstáculos adonde: para las capas donde el numero entero del
intervalo de distancias (encontrado en las posiciones [x, 15]) sea igual o mayor a la distancia
obtenida b, en las capas si los valores de las secciones 6, 7 y 8, (las cuales refieren a la parte
baja central de la imagen) son 0, la sección correspondiente al elemento de la fila inferior y que
hace parte de la misma columna también serán puestas en estado de no identificación de
objeto o cero, de modo contrario, cada una mantendrá su valor.
TRACE PLANNING
50
El algoritmo para la creación de la ruta será el encargado de analizar la matriz entregada por el
algoritmo para la detección de obstáculos. Está diseñado principalmente para seleccionar la
ruta que presente ningún obstáculo o el obstáculo a la mayor distancia asegurando al usuario
una más cómoda y segura vía para transitar, además de entregar la información necesaria para
la generación de las alertas. El proceso de funcionamiento se describe en los siguientes
puntos:
GENERACION DE ALERTAS
AUDIBLES
Para las alertas audibles se definió una función la cual selecciona la posición 4
del vector de alertas como entrada con el fin de reproducir una alerta pregrabada
correspondiente a la ruta sugerida para luego ser reproducida.
HAPTICAS
Para estas alertas también se definió una función la cual generara una señal
PWM modificada la cual varia su ancho de pulso y su frecuencia. La salida de
esta señal se realiza por dos pines del GPIO de la siguiente manera:
200 300 30 25
3.2. METODOLOGÍA
52
- El sistema garantizará un menor tiempo de ejecución y mayor precisión al momento de
realizar la ruta y detección de obstáculos que presenten algún riesgo al momento de
desplazamiento del usuario por un ambiente cerrado controlado.
- El sistema será basado principalmente en el procesamiento de imágenes.
- El sistema se ejecutará sobre un dispositivo que permita el procesamiento embebido,
con el fin de facilitar su portabilidad.
Una vez se establecieron las características para el nuevo diseño, el primer paso se centró en
definir la arquitectura interna del dispositivo de guía para invidentes. Para cumplir con las
características mínimas de diseño, se decidió dividir el problema general en partes o
subsistemas, como estrategia para llegar al objetivo de diseño. El esquema de la Figura 40
muestra los principales subsistemas.
Figura 24 Esquema general de la arquitectura interna del dispositivo de guía para invidentes
Dentro del subsistema de plataforma, los datos entrantes serán trabajados por componentes
internos tales como:
Figura 25 Esquema general de la arquitectura interna del dispositivo de guía para invidentes
53
Fuente Tomada de (Autores)
Por último, el subsistema de interacción humana será el encargado de recibir la información y
traducirla a señales eléctricas, las cuales por medio de transductores serán emitidas de forma
audible y háptica al usuario.
54
soporte para CPU clusters Potencia 4 puertos
OpenGL (six NVIDIA soportada de USB, 2
Jetson 4.6,OpenGL Carmel Almacena 10W a 15W módulos
XAVIER- ES 3.2, procesador miento: Voltaje de PWM, 1
NX Vulkan, cores eMMC alimentación: módulo
1.1,CUDA frecuencia 16 GB 9Va 20V SDIO, 2
10, con una máxima de módulos
frecuencia operación SPI, 1
máxima de 1900 MHz UART, 1
operación de módulo
1100 MHz CAN, 2
módulos I2C
, 1 conector
para rasbian
cam,
1 puerto de
40 pines
GPIO
ASUS 2048 Intel Core i7 RAM: 114 W 3 Puertos 1574
VivoBok núcleos 11370H 16GB USB USD
K3500P CUDA Processor Windows 1 Puerto
C Arquitectura 3.3 GHz USB tipo C
Ampere (12M Cache, Almacena 1 Puerto
Vulkan1.1 up to 4.8 miento: Linux microSD
con una GHz, 4 SSD 512 1 puerto de
frecuencia cores) GB audio
máxima de
Operación
1740MHz
PC 1280 RAM: 8GB 650 W 788
escritorio nucleos
CUDA Windows
Arquitectura Almacena
Pascal miento:
con una SSD 512 Linux
frecuencia GB & HDD
máxima de 2TB
Operación
1708MHz
55
Teniendo en cuenta los resultados anteriormente mostrados, se optó por el uso de la
plataforma Jetson en su variante Xavier la cual fue adquirida por el grupo de investigación
GIRA, esta plataforma cumple con las características definidas anteriormente ya que:
3. Las características físicas la hacen ideal para prototipos portátiles y de bajo consumo.
56
cuenta con un sensor capaz de entregar imágenes con suficiente calidad e información de
interés.
Teniendo en cuenta el tipo de información suministrada por cada sensor, sus características
electrónicas y físicas, se optó por la implementación del módulo Kinect de Microsoft, como
principal fuente de información del ambiente capaz de entregar imágenes digitalizadas tanto en
RGB como un mapa de profundidad el cual será de gran utilidad para el proyecto, además de
57
facilitar el análisis de los datos debido a que la plataforma utilizada facilita también la conexión
y sincronización de los dispositivos al momento de realizar el muestreo del ambiente.
Debido a que la cámara del Kinect tiene un ángulo de apertura de 69° se genera un punto ciego
el cual causa un gran problema al momento de la detección de obstáculos que se encuentren
en esta zona generando un gran riesgo de colisión al usuario.
Fuente Tomada de
58
TDK 30cm
InvenSense SRF08 40cm 5 voltios 26 Hz I2C
a 50 miliamperios
600cm
DFRobot 981 2cm a 5 voltios 47 Hz Lectura de
200cm 15 miliamperios tiempo de
ancho de pulso
Al comparar los datos presentados en la Error: Reference source not found, se observan
diferencias en las características de los sensores. Se encuentran para uso general con un bajo
costo, pero con la desventaja de baja sensibilidad, poca información del rango dinámico.
Igualmente, se presentan otros sensores con buena sensibilidad, ancho de banda adecuado y
rango dinámico aceptable, pero a un elevado costo.
Con el diseño de alto nivel ya planteado y los materiales elegidos se procedió en la búsqueda,
comparación y selección de diferentes algoritmos de reconocimiento de objetos debido a que
es necesario identificar los obstáculos presentes en el ambiente además de conocer la
distancia a la que se encuentran, con el fin de crear un mapa de dos dimensiones el cual
permita elegir una ruta libre de obstáculos que permita un seguro desplazamiento para el
usuario, debido a la naturaleza de la plataforma es necesario que el algoritmo sea fácilmente
paralelizable con el fin de aprovechar la velocidad de procesamiento siendo este el principal
objetivo a tratar en este proyecto.
Tomando como base la anterior premisa, y de acuerdo a los antecedentes consultados, las
técnicas IA más utilizadas en las últimas décadas para el procesamiento de imágenes según
[Ali2015] son las redes neuronales, los sistemas difusos y los algoritmos evolutivos en donde
se destacan los sistemas inmunes artificiales y la inteligencia de enjambre. En estas técnicas
de IA se encuentra YOLO (You Only Look Once) donde por medio de por medio del uso de una
red neuronal convolucional se efectúa la detección y reconocimiento de objetos el cual esta
optimizado para su ejecución en plataformas portátiles como se muestra en [YOLO].
Otro algoritmo de IA usado para la detección de objetos es el algoritmo MobileNet este al igual
que YOLO esta basados en una arquitectura de redes neuronales convolucionales con la
diferencia es que dichas redes están optimizadas para ser más livianas y trabajar de mejor
manera en las plataformas móviles, este algoritmo ha tratado de obtener un buen equilibrio
entre el volumen de cálculo y espacio de almacenamiento, sin embargo al tratar de ser más
liviano este ha reportado predicas en la precisión de detección en comparación de otros
algoritmos (Howard et al., 2017).
Teniendo en cuenta la tabla XXX, se concluyó que la información no es suficiente para realizar
la selección de alguno de estas dos técnicas, por lo que fue necesaria la implementación y
59
prueba de estas sobre la plataforma Jetson Xavier descrita en la anterior sección, obteniendo
como resultados
YOLO
Debido a que esta técnica cuenta con varias versiones se decidió implementar las que el
desarrollador facilita el en su repositorio enfocado a plataformas que ejecuten sistema operativo
Linux en las cuales se encuentra Yolo v4, v3 y v2, se realizó además la adecuación de la
plataforma e instalación de firmware y software necesario para su correcta y optimizada
ejecución sobre CUDA obteniendo los siguientes resultados:
MOBILENET
Al igual que con el algoritmo YOLO se realizó la instalación de las diferentes herramientas a
nivel de software para que el algoritmo corra de manera correcta en la plataforma para lo cual
se instaló la librería TensorFlow en su versión 2.0 la cual viene optimizada para el uso con
plataformas GPU. En las pruebas realizadas se usó el algoritmo MobileNet se encontró que
este algoritmo no corría de forma óptima sobre la plata forma puesto que pocas veces se
lograba ejecutar el algoritmo y recibir respuesta de la detección realizada por parte de este, por
otro lado, las pocas ocasiones en las que la plataforma lograba ejecutar este solo lograba
60
trabajar a 3 FPS además de tardar bastante tiempo en dar respuesta en comparación del
algoritmo YOLO pues el algoritmo MobileNet tardaba en promedio 10.58 segundos en realizar
una detección
A demás del uso de técnicas de IA como método para reconocimiento de obstáculos, también
se planteó y estudió la implementación de un algoritmo que, basado en el mapa de profundidad
lograse la identificación de obstáculos, para ello se toma como referencia el algoritmo llamado
watershed. Según [notrelevant-2006-imprwatershed], este algoritmo es una de las herramientas
más valoradas en el campo de la segmentación de imágenes digitales el algoritmo, cumple la
función de realizar RL (Region Labeling) considerando la imagen como una superficie
topográfica donde cada píxel es un punto situado a cierta altura en función de su nivel de gris,
donde el color blanco (gris nivel 255) se toma como la altura máxima y el color negro (gris nivel
0) la mínima, el resto de los niveles de gris coinciden con una altitud asociada a la imagen entre
estos extremos.
Fuente Tomada de
mediante valores definidos y otros obtenidos por el algoritmo, es posible individualizar los
pixeles que tengan características idénticas obteniendo como resultado un conjunto de áreas
bien delimitadas, por lo que, si consideramos que estas áreas representan los objetos
buscados, obtendremos una detección de bordes precisa definida por un conjunto de píxeles
conectados [notrelevant-2006-imprwatershed].
Debido a que los resultados obtenidos por las técnicas IA presentaron una muy baja tasa de
procesamiento y un alto tiempo de ejecución, se opta por la selección del algoritmo que basa
su técnica en el etiquetado e identificación de elementos cuyos pixeles comparten
características.
61
Teniendo en cuenta el algoritmo seleccionado, su funcionamiento y resultados, conocer la
cantidad y área de objetos presentes en la imagen no es un dato de interés, más sí lo es el de
la identificación de la presencia de un objeto, además de su ubicación en el mapa espacial. Por
este motivo se tomó como referencia dicho algoritmo y el procedimiento de detección de
obstáculos utilizado por [RodriguezFernandezWilmarFelipe2018] a los cuales se les realizó un
análisis y reestructuración asegurando un funcionamiento y resultado deseado.
Como resultado, se planteó un algoritmo el cual fuese capaz de identificar objetos desde 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 encontrado, se
requirió primero de una etapa donde se lograse adecuar la imagen para la aplicación del
algoritmo replanteado, donde mediante un proceso similar al ejecutado en el algoritmo
watershed se obtuvo la identificación de objetos además de sus coordenadas dentro de la
imagen. por último, se entregó una matriz la cual plasmo el mapeo 2D de los objetos presentes
en el ambiente. El algoritmo resultante se encuentra plasmado en la sección de materiales y
técnicas.
Con base en el análisis del algoritmo, se reconocieron 3 etapas principales en la ejecución del
mismo y se planteó un diseño de alto nivel:
Basándose en el tipo de datos que le ingresan al subsistema y en las funciones que cada etapa
realizó, se observa que: los datos provenientes del sensor de profundidad son de tipo vector
con un tamaño de 640 ×480 en un solo canal, para realizar el procesamiento de dichos valores
se procedió a establecer los parámetros para reservar el espacio en memoria en el device de la
siguiente manera:
62
El primer parámetro establecido fue el número de hilos mínimo por cada bloque
que se debieron lanzar para procesar la imagen, dicho valor se estableció
mediante las siguientes expresiones:
ancho de la imagen
¿ hilos ancho=
100
alto de la imagen
¿ hilos alto=
100
Para poder procesar los 307200 pixeles que tiene la imagen de profundidad proveniente
del Kinect se tiene que el número mínimo de hilos por bloque requeridos es de 30.72,
pero debido a que solo se pueden lanzar números enteros de hilos en cada bloque se
aproxima a 31 hilos por bloque.
Como segundo parámetro se estableció el tamaño del grid necesario para almacenar la
imagen de profundidad en la memoria del device, se determinó que, para obtener el
número total de hilos las dimensiones del grid debían ser de 100 bloques de ancho y
100 bloques de alto para un total de 310000 hilos a lanzar en la memoria del dispositivo.
A demás de estos parámetros se definieron los pasos base para cada uno de los procesos que
realicen el procesamiento en el device, de la siguiente manera:
- Definir arreglos matriciales con las mismas dimensiones de la imagen para almacenar la
información en la memoria del host y en el device.
- Realizar la descripción del kernel en el lenguaje nativo CUDA.
- Retornar a la memoria del Host los valores procesados para ser enviados a la siguiente
etapa del algoritmo.
Dependiendo de la etapa y el proceso que se esté ejecutando, la función del kernel varia de la
siguiente forma: en la etapa de pre procesamiento únicamente en el proceso 3, la descripción
del kernel se realiza con el fin de aplicar las operaciones morfológicas y en la etapa de
detección, la descripción del kernel se orienta al fraccionamiento de la imagen y análisis de
cada uno de sus pixeles.
3.2.8 Diseño de alto nivel de cada una de las etapas para implementación en
CUDA
Partiendo de los procesos del algoritmo resultante, se procedió en el diseño de alto nivel y
descripción de cada etapa propuesta cada una enfocada a su implementación en CUDA
63
de profundidad ya que, debido a valores intrínsecos de la cámara la imagen obtenida presenta
una resolución de bits inapropiada para la precisa identificación de distancias. Este cambio
además facilita la umbralización de la imagen, sin embargo, por factores propios del sensor y
del ambiente, la imagen resultante presenta ruido que puede provocar falsos positivos en la
detección de objetos, para su eliminación, como último paso, se aplican operaciones
morfológicas mediante los requerimientos descritos para la carga y procesamiento de datos
sobre el device con CUDA.
Detección es la segunda etapa; en esta intervinieron los procesos 4 y 5 los cuales hicieron uso
pleno de los núcleos y memoria del device para el procesamiento de los datos, ya que el
método definido por el algoritmo exige que sea revisado el valor de cada uno de los pixeles,
además de su correspondiente posición en la imagen mediante los requerimientos descritos
para la carga y procesamiento de datos sobre el device con CUDA. Debido a que, por las
características del sensor de profundidad, se toma el suelo como un objeto, es necesaria la
aplicación además del algoritmo para la discriminación del suelo.
Para la última etapa solo interviene el proceso 6, en este se organizaron de mejor manera los
datos obtenidos y se configuran los parámetros para realizar de nuevo la ejecución del
algoritmo.
64
Fuente Tomada de (Autores)
3.2.9 Implementación, simulación y test del diseño realizado para cada etapa.
65
A B C
D E F
G H I
66
Figura 33 Organización de hilos y bloques
Debido a que la etapa de detección trabaja plenamente en el device, Para su ejecución fue
necesaria la carga de estos datos con el fin de ejecutar el kernel correspondiente. Como primer
paso, mediante valores pre definidos, se fracciona la imagen en tres partes verticales y cinco
horizontales (para efecto representativo esta división es visualizada por la grilla verde) con los
cuales fue posible designar la ubicación espacial en la que se encuentran los pixeles en la
imagen, teniendo en cuenta la distorsión de perspectiva del observador y el efecto túnel que
esto genera, es necesario también que esta varíe su tamaño de análisis conforme aumenta la
distancia que se analiza.
A B C
D E F
Fuente Tomada de (Autores)
Mediante la imagen binarizada por capas y fragmentada por regiones, al momento de observar
el valor de cada uno de los pixeles, es posible definir la presencia de un objeto (pixel en blanco)
y su ubicación espacial en la imagen, además de definir qué región no presenta ningún objeto,
la cual será definida como transitable o libre de obstáculos, de no cumplir esto la región será
identificada como riesgosa, además de esto, mediante la ecuación característica es posible
67
definir la distancia que cada capa representa y de manera directa se referencia la distancia a la
que se encuentran los objetos encontrados en cada una de ellas. Debido a que en el mapa de
profundidad el suelo también es representado como un objeto, fue necesaria la aplicación del
algoritmo para su discriminación al momento de realizar la detección explicado en la sección de
técnicas.
Por cada capa analizada se genera un vector de 16 posiciones donde cada posición representa
el análisis de cada uno de los fragmentos, y si éste está libre de objetos o no, en la última
posición se almacena la distancia en la que se realizó el análisis. Dado que se generan
[ECUACION PROCESO 5] cantidad de capas, donde por cada una se crea un vector
correspondiente, fue necesario anexar cada una a una sola matriz.
Debido a que se pueden detectar regiones que componen las columnas donde se encuentre
algún objeto, por prevención, esta columna completa se considera como riesgo potencial, para
ello se tabulan los resultados de los valores que componen las columnas y se plasman en un
vector de 6 posiciones, donde las primeras 5 son los valores tabulados obtenidos y la última
posición es el valor de distancia estudiado de esta manera finalizando la implementación del
algoritmo para la detección de obstáculos.
Figura 36 Organización de hilos y bloques
Además del algoritmo para la detección de obstáculos, se planteó y aplico el algoritmo de trace
planning perteneciente al subsistema de elaboración de rutas, el cual recibe la matriz resultante
del algoritmo de detección de objetos y, mediante la ejecución realizada en el procesador del
host, como resultado entrega un vector con la información necesaria para generar las señales
hápticas y audibles en el subsistema de generación de alertas.
Para el subsistema de alerta punto ciego se implementó el sensor ultrasonido, el cual también
fue el encargado de tomar la variable de distancia del entorno para la detección de objetos que
estén dentro de un rango determinado de 300cm, este proceso fue realizado mediante la
descripción en C del algoritmo
68
de funcionamiento para el micro controlador, el cual, cada XXX tiempo toma muestra del valor
análogo entregado por el sensor el cual corresponde a la distancia calculada, si esta es igual o
inferior a 80cm se enviará por medio de directamente los datos necesarios para la creación de
una alerta inmediata FILTRO DE MEDIA MOVIL???? https://www.luisllamas.es/arduino-filtro-
media-movil/
Por medio de la librería serial, se realizó la configuración del puerto serial 1 que posee la
Jetson Xavier, ajustando el baud rate a 9600 y el tamaño de bits a 8. Debido al funcionamiento
que la Jetson debe enviar un pulso al microcontrolador
Por último, la creación de las alertas audibles fue realizada mediante la librería gtts (Google
text to speach) con la cual, mediante la función gTTS() se configuró el tipo de texto y el
lenguaje al que se deseó reproducir en formato de audio el texto definido, debido a que para su
funcionamiento se necesitaba de conexión a internet constante, algo que disminuiría la
autonomía del prototipo, se decidió generar y almacenar los audios con las palabras que
conforman la alerta por separado.
69
Las pruebas se realizaron en el edificio de laboratorios de la Universidad Pedagogica y
Tecnologica de Colombia UPTC, estas pruebas se basaron en trancitar una pista de
obstáculos usando los tres modos de emisión de alertas por parte del asistentes (alertas
hápticas, audibles e híbridas), para la prueba se conto con la presencia de 6 particiapantes de
entre 20 a 25 años de edad a los cuales se les informo de la prueba a realizar mediante un
consentimiento informado que se presenta en el Anexo xx, para realizar las pruebas las
personas recibieron un tiempo de entrenamiento de aproximadamente 2 minutos, para
interpretar las alertas el cual consistia en caminar con el asistente puesto, con los ojos sin
vendar y reconociendo las indicaciones del asistente mientras ellos caminaban libremente, al
momento de sentir que interpretaban de manera correcta, se les vendaron los ojos paraque
dieran inicio al reccorrido de la pista preparada para la prueba, al terminar la prueba se pedia a
cada participante diligenciar una encuesta en donde se manifestara la opinion acerca del
funcionamiento del asistente y otros aspectos como comodidad al portar el dispositivo. La
encuesta realizada se puede ver en el Anexo xx.
70
4. DESARROLLO
4.1.
4.2.
4.3.
Dentro de los resultados obtenidos en las pruebas de validación del prototipo implementado, se
encontró que la mayor parte de las personas encuestadas expresaron que el prototipo era muy
cómodo al momento de portarlo lo cual se puede ver con mejor claridad en la gráfica de la
Figura 38.
Uno de los aspectos más importantes que se evaluaron en las pruebas fue la manera en la cual
los voluntarios se sentían más orientados al momento de transitar lo cual arrojo como resultado
que de los tres modos disponibles en el asistente, el 66,7% de las personas que realizaron las
pruebas sintieron mayor preferencia por la emisión de alertas hibridas (audibles y hápticas
simultáneamente) debido a que este modo proveía mayor información acerca del ambiente que
rodeaba al sujeto de prueba, en cuanto a los otros dos modos las alertas las personas con las
cuales se llevó acabo la prueba manifestaron que al ser orientados únicamente por las alertas
audibles no les permitió movilizarse de una manera fluida por la pista a transitar pues los
encuestados no sintieron que con este tipo de alertas dieran la suficiente información para
orientarse.
71
Al usar únicamente las alertas hápticas, el 33,3% de las personas manifestaron que este tipo
de alertas dieron mejores resultados en comparación a las alertas audibles al momento dar
guía a los voluntarios de la prueba dichos resultados se expresan de una mejor manera en la
figura
Figura 40 facilidad de interpretación de alertas por parte de los usuarios(1 muy difícil de interpretar, 10
muy fácil de interpretar)
72
Fuente Tomada de (Autores)
Además de lo anterior las pruebas realizadas con el asistente de navegación que la mayor
parte de los participantes, encontraron que el asistente es una herramienta útil pues expresaron
que el prototipo contaba con una buena reacción ante obstáculos cercanos, sin embargo,
también notaron que el dispositivo presenta limitaciones debido a que en algunos casos las
personas tuvieron colisiones leves con algunos obstáculos. También manifestaron que si
tuvieran la posibilidad de adquirir este tipo de dispositivos lo harían puesto que a pesar de ser
un prototipo sujeto a mejoras consideran que es una herramienta útil y de fácil manejo que
brinda una mayor independencia al momento de movilizarse.
73
5. CONCLUCIONES
74
6. RECOMENDACIONES.
75
7. BIBLIOGRAFÍA
76
77
78