• No results found

Model setup

In document Essays on financial intermediation (Page 56-59)

La Tabla 3 Product Backlog, presenta el producto backlog definido para el desarrollo de este proyecto, donde se cuenta con el nombre del producto backlog ítem, su descripción, el conjunto de tareas que lo componen, la estimación en horas del trabajo asociado a este ítem y el nivel de prioridad, en una escala definida así: baja, media y alta.

ID Nombre Descripción Tareas Estimación (horas) Prioridad 1 Construcción, implementación y modificación de AR- Sandbox

Instalación de hardware y software para revisión de código fuente y modificación del mismo.

Instalación de módulos

288 Alta Revisión de código fuente

Modificación de líneas de contorno Modificación de colores

Implementación de comandos mediante teclado

2

Implementación de reconocimiento de imágenes

Reconocimiento de imágenes basado en un método de clasificación aplicando una técnica de procesamiento de imágenes

Definir método de clasificación de Imágenes.

480 Alta Definir modelo del método de clasificación de

imágenes.

Definir técnica de procesamiento de imágenes. Implementar técnica de procesamiento de imágenes

Generar conjunto de imágenes de entrenamiento y prueba

Implementar, entrenar el modelo de clasificación de imágenes

Integrar algoritmo de procesamiento de imágenes y modelo entrenado

Capítulo 5 - Modelo de Desarrollo Propuesto

45 3

3

Integración entre AR- Sandbox y

reconocimiento de imágenes

Integración entre el primer y segundo producto

Implementar algoritmo para adquirir imágenes del AR Sandbox

96 Alta Implementar llamado a script para realizar

captura de pantalla y predicción

4 4

Adquisición de registro de actividad cerebral

Implementación del community SDK el Emotiv Epoc, junto con Python para la adquisición del registro de la actividad cerebral

Implementación del SDK del Emotiv Epoc junto con herramienta de desarrollo

384 Alta Almacenar mediante el SDK los datos de las

emociones y de las bandas de poder en variables 5 5 Desarrollo aplicación para la visualización de actividad cerebral EmotivPRE

Se desarrolla una aplicación en el Python, que permita visualizar y grabar el registro de la actividad cerebral durante el desarrollo de la terapia.

Configuración y representación de la vista principal

384 Alta Representación visual del análisis emocional a

partir del registro de actividad cerebral Realización de grafica para la visualización emocional y de bandas de poder

Grabación de los datos de la actividad cerebral 6

6 Documentación

Se lleva a cabo la documentación del desarrollo

de software del proyecto. Realizar la documentación de cada sprint 96 Media Tabla 3 Product Backlog

5.2

Sprint 1: Construcción, implementación y modificación de AR-

Sandbox

Figura 17 Sprint Número Uno Fuentre: Propia

En este primer sprint se realiza la construcción del AR-Sandbox en su parte de hardware, el cual consta de una estructura metálica con un arenero de madera, un proyector de video, un Kinect y un computador; adicionalmente se realiza la modificación de ciertas características para adaptarlo al objetivo que tiene este proyecto, finalmente se realiza la implementación de scripts dentro del entorno del AR-Sandbox para mejorar la experiencia del usuario.

Capítulo 5 - Modelo de Desarrollo Propuesto

47

Historia de Usuario

Historia de Usuario

Número: 1 Fecha:

Nombre historia: Construcción, implementación y modificación de AR-Sandbox Prioridad en negocio:

Alta

Riesgo en desarrollo: Media

Puntos estimados: 5 Iteración asignada: 1

Programador responsable: Andrés Ovidio Restrepo Rodríguez, Daniel Esteban Casas Mateus

Descripción:

Se realiza la instalación de hardware y software de cada uno de los módulos, en donde se realizan pruebas que comprueban el correcto funcionamiento de los mismos, posteriormente se revisa el código fuente para conocer detalladamente lo desarrollado por la Universidad de California, finalmente se realizan modificaciones para mejorar la experiencia visual del usuario e implementaciones para facilitar el uso del ambiente. Observaciones:

1. El software fue desarrollado por la Universidad de California

Tabla 4 Historia de Usuario Sprint 1 Fuente: Propia

Sprint Backlog

ID Nombre Descripción Estimación

(horas) Prioridad

1 Instalación de módulos Configurar e instalar los

módulos del AR Sandbox 74 Alta

2 Revisión de código fuente Analizar y entender el

48 3 Modificación de líneas de

contorno

Eliminar las líneas de contorno de la interfaz gráfica

25 Baja

4 Modificación de colores

Asignar nuevos valores al archivo de colores base del AR Sandbox

35 Alta

5 Implementación de

comandos mediante teclado

Asignar funcionalidades al teclado para la ejecución de scripts

54 Media

Tabla 5 Sprint Backlog Sprint 1 Fuente: Propia

Tareas Sprint 1

Tarea

Número tarea: 1 Número historia: 1

Nombre tarea: Instalación de módulos Tipo de tarea:

Diseño

Puntos estimados: 1

Fecha inicio: 03/09/2018 Fecha fin: 07/09/2018

Responsable: Andrés Ovidio Restrepo Rodríguez, Daniel Esteban Casas Mateus Descripción:

Se localizan los archivos base del software del AR Sandbox de la Universidad de California y se realiza la instalación de cada uno de los módulos en sistema operativo Linux con distribución Ubuntu

Tabla 6 Tarea 1 Sprint 1 Fuente: Propia

Capítulo 5 - Modelo de Desarrollo Propuesto

49

Tarea

Número tarea: 2 Número historia: 1

Nombre tarea: Revisión de código fuente Tipo de tarea:

Diseño

Puntos estimados: 1

Fecha inicio: 08/09/2018 Fecha fin: 14/09/2018

Responsable: Andrés Ovidio Restrepo Rodríguez, Daniel Esteban Casas Mateus Descripción:

Se realiza la revisión y análisis del código fuente de la aplicación la cual viene desarrollada en C++ y con implementaciones adicionales de Shell scripts en Linux.

Tabla 7 Tarea 2 Sprint 1 Fuente: Propia

Tarea

Número tarea: 3 Número historia: 1

Nombre tarea: Modificación de líneas de contorno Tipo de tarea:

Diseño

Puntos estimados: 1

Fecha inicio: 15/09/2018 Fecha fin: 17/09/2018

Responsable: Andrés Ovidio Restrepo Rodríguez, Daniel Esteban Casas Mateus Descripción:

Se realiza la modificación para desaparecer las líneas de contorno que aparecen en el ambiente original para una mejor visualización

Tabla 8 Tarea 3 Sprint 1 Fuente: Propia

50

Tarea

Número tarea: 4 Número historia: 1

Nombre tarea: Modificación de colores Tipo de tarea:

Diseño

Puntos estimados: 1

Fecha inicio: 18/09/2018 Fecha fin: 19/09/2018

Responsable: Andrés Ovidio Restrepo Rodríguez, Daniel Esteban Casas Mateus Descripción:

Se realiza la modificación de los colores a proyectar, adicionalmente se reduce la cantidad de colores para que las formas a realizar se vean mejor

Tabla 9 Tarea 4 Sprint 1 Fuente: Propia

Tarea

Número tarea: 5 Número historia: 1

Nombre tarea: Implementación de comandos mediante teclado Tipo de tarea:

Desarrollo

Puntos estimados: 1

Fecha inicio: 20/09/2018 Fecha fin: 22/09/2018

Responsable: Andrés Ovidio Restrepo Rodríguez, Daniel Esteban Casas Mateus Descripción:

Se realiza la implementación de Shell scripting para el envío de comandos al AR Sandbox por medio del teclado, estas funcionalidades pueden ser internas o externas

Tabla 10 Tarea 5 Sprint 1 Fuente: Propia

Capítulo 5 - Modelo de Desarrollo Propuesto

51

Desarrollo Tareas Sprint 1

5.2.4.1

Desarrollo Tarea 1 : Instalación de módulos

En la primera tarea de este sprint es necesario hacer la correcta instalación de módulos, con el fin de ejecutar satisfactoriamente el software, para ello se comienza por la instalación del Vrui VR Development Toolkit, el cual protege a un desarrollador de aplicaciones de la configuración particular de un entorno VR (Realidad Virtual), de modo que las aplicaciones se puedan desarrollar de manera rápida y escalable. Tres partes importantes de este objetivo general son, la encapsulación del entorno de visualización, la encapsulación del entorno de distribución y la encapsulación del entorno del dispositivo de entrada; para descargar e instalar este módulo se ejecuta:

cd ~

wget http://idav.ucdavis.edu/~okreylos/ResDev/Vrui/Build-Ubuntu.sh bash Build-Ubuntu.sh

Código 1 Instalación de módulos

Fuente: Propia

Luego de su instalación, para quitar los archivos que no utilizarán de nuevo, se ejecuta: rm ~/Build-Ubuntu.sh

Código 2 Limpieza de módulos Fuente: Propia

Como segundo paso se instala el Kinect 3D Video Package, el cual convierte el Kinect en una cámara 3D mediante la combinación de las secuencias de imágenes en color y en profundidad recibidas del dispositivo, y las proyecta de nuevo en el espacio 3D de tal manera que objetos reales en 3D dentro del campo de visión de las cámaras se recrean virtualmente, en sus tamaños adecuados; para esto se ejecuta la siguiente serie de comandos: cd ~/src wget http://idav.ucdavis.edu/~okreylos/ResDev/Kinect/Kinect- 3.6.tar.gz tar xfz Kinect-3.6.tar.gz cd Kinect-3.6 make

sudo make install

sudo make install udevrules ls /usr/local/bin

Código 3 Instalación Kinect 3D Video Package Fuente: Propia

52

Como último paso de la instalación, queda el componente principal, el AR Sandbox, el cual se instala con la siguiente serie de comandos:

cd ~/src wget http://idav.ucdavis.edu/~okreylos/ResDev/SARndbox/SARndbox- 2.5.tar.gz tar xfz SARndbox-2.5.tar.gz cd SARndbox-2.5 make ls ./bin

Código 4 Instalación SARndbox Fuente: Propia

Para comprobar que haya quedado bien instalado, en esta carpeta mostrada al final, deben aparecer los archivos CalibrateProjector y SARndbox.

Ahora se procede a calibrar el proyector y la cámara, en donde se debe alinear la cámara usando una herramienta del Kinect, por medio de los siguientes comandos:

cd ~/src/SARndbox-2.5 RawKinectViewer -compress 0

Código 5 Calibración del Kinect Fuente: Propia

Luego se realiza la calibración de cada uno de los sectores del AR Sandbox por medio de: cd ~/src/SARndbox-2.5

./bin/CalibrateProjector -s 1024 768

Código 6 Calibración Kinect por Sectores Fuente: Propia

Aquí se toman 12 puntos de calibración, en donde por medio de objetos externos, se colocan distintas alturas con el objetivo de calibrar la altitud con la que se realizan los cambios de colores. La Figura 18, presenta como se realiza dicha calibración:

Capítulo 5 - Modelo de Desarrollo Propuesto

53

Figura 18 Calibración Kinect Fuente: (system76, s.f.)

5.2.4.2

Desarrollo Tarea 2 : Revisión de código fuente

En esta tarea se realiza la revisión detallada del código fuente en donde se encuentran los archivos de configuración, de ejecución y los archivos programados en C++, en cada uno de estos archivos se encuentra la forma como se realiza la generación de la imagen, los componentes usados y las herramientas necesarias para que la ejecución del ambiente sea satisfactoria.

Dentro de la revisión se encuentra que la interfaz gráfica está desarrollada en OpenGL (Open Graphics Library) que es una especificación estándar que define una API multilenguaje y multiplataforma para escribir aplicaciones que produzcan gráficos 2D y 3D (OpenGL Headline News, 2019).

5.2.4.3

Desarrollo Tarea 3: Modificación de líneas de contorno

En esta tercera tarea se busca la eliminación de las líneas de contorno con el objetivo de hacer la interfaz más amigable para el usuario, para realizar esto es necesaria la modificación del script SurfaceAddContourLines.fs que se encuentra accediendo con el siguiente comando:

cd ~/src/SARndbox-2.5

54

Código 7 Modificación líneas de contorno Fuente: Propia

5.2.4.4

Desarrollo Tarea 4: Modificación de Colores

Para brindarle una mejor experiencia al usuario es necesario realizar la modificación del archivo de colores, el cual se llama HeightColorMap.cpt, que se compone por 15 líneas y 4 columnas, cada línea corresponde a una altura determinada, que se encuentra en la primera columna, las otras 3 columnas corresponden al modelo de color RGB, por lo tanto, la combinación de estas darán el color de pigmentación en determinadas alturas, a continuación, se muestra la configuración original de dicho archivo.

-40.0 0 0 80 -30.0 0 30 100 -20.0 0 50 102 -12.5 19 108 160 -0.75 24 140 205 -0.25 135 206 250 -0.05 176 226 255 0.0 0 97 71 0.25 16 122 47 2.5 232 215 125 6.0 161 67 0 9.0 130 30 30 14.0 161 161 161 20.0 206 206 206 25.0 255 255 255 Código 8 Mapa de color de alturas original

Fuente: Propia

El archivo de colores final con las modificaciones mencionadas anteriormente, queda con la misma estructura, pero con los siguientes datos:

Capítulo 5 - Modelo de Desarrollo Propuesto 55 -40.0 0 0 80 -30.0 0 30 100 -20.0 0 50 102 -12.5 19 108 160 -0.75 24 140 205 -0.25 24 140 205 -0.05 24 140 205 0.0 24 140 205 0.25 24 140 205 2.5 176 226 255 3.0 16 122 47 9.0 16 122 47 14.0 16 122 47 20.0 16 122 47 25.0 16 122 47

Código 9 Mapa de color de alturas modificado Fuente: Propia

5.2.4.5

Desarrollo Tarea 5 : Implementación de comandos mediante teclado

Ahora como quinta tarea se tiene la implementación de comandos, los primeros a implementar son la inundación y el secado, existen ciertas características que vienen predeterminadas como estas, por lo cual se realiza el llamado y se le asignan las teclas con las cuales se van a ejecutar, en este caso, la tecla 1 queda para la inundación y la tecla 2 para el secado.

section WaterTool

toolClass GlobalWaterTool bindings ((Mouse, 1, 2)) endsection

Código 10 Sección de inundación Fuente: Propia

Adicionalmente, se realizan scripts para pasar de agua a lava y viceversa, para ello se realiza un llamado a un script que modifique la línea de código que se necesita para realizar el efecto, a continuación, se muestra el llamado para cambiar de agua a lava con la tecla L.

toolClassNames += (ScriptExecutorTool) section ToLavaTool toolClass ScriptExecutorTool bindings ((Mouse, l)) executablePathName ~/src/SARndbox-2.5/ToLava.sh endsection

Código 11 Sección de Lava Fuente: Propia

56

5.3

Sprint 2: Desarrollo e Implementación de Reconocimiento de

Imágenes

Figura 19 Sprint Número Dos Fuente: Propia

El ambiente inmersivo, debe estar en la capacidad de capturar lo realizado en la arena, determinar qué tipo de objeto se realizó y comunicar mediante audio la predicción realizada, es por esto, que este sprint está enfocado a implementar el reconocimiento de imágenes directamente capturadas del AR-Sandbox. Con el fin de lograr esta tarea, se debe establecer un método de clasificación de imágenes, junto con una técnica de procesamiento de imágenes para limpiar el ruido almacenado en la captura dada la naturaleza de

Capítulo 5 - Modelo de Desarrollo Propuesto

57

multipigmentación del AR-Sandbox, con el fin de aumentar la precisión del modelo para la clasificación de imágenes. Adicionalmente, se debe tomar la predicción final y realizar una retroalimentación mediante comunicación auditiva.

Historia de Usuario

Historia de Usuario Número: 2 Fecha: 21 noviembre 2016

Nombre historia: Reconocimiento de imágenes Prioridad en negocio:

Alta

Riesgo en desarrollo: Media

Puntos estimados: 6 Iteración asignada: 2

Programador responsable: Daniel Esteban Casas Mateus, Andrés Ovidio Restrepo Rodríguez Descripción:

Una vez el niño haya terminado de realizar la actividad en el AR-Sandbox, se requiere poder realizar el reconocimiento, clasificación y predicción de lo plasmado por el niño en la arena, con el fin de determinar el desempeño que tuvo el paciente en esta actividad. Para llevar a cabo el reconocimiento de la imagen adquirida desde el AR-Sandbox, es necesario definir el método de clasificación de imágenes a implementar. Además de esto, se definirá un método de procesamiento de imágenes, con el fin de aumentar la efectividad del método seleccionado para la clasificación de imágenes. Por otro lado, se establecerá un conjunto de entrenamiento y prueba conformado por imágenes de figuras geométricas y vocales, con el fin de entrenar el modelo definido.

Tabla 11 Historia de Usuario Sprint 2 Fuente: Propia

Sprint Backlog

Id Nombre Descripción Estimación Prioridad

1 Definir método de clasificación de Imágenes Realizar la selección del método de clasificación de imágenes

mediante revisión bibliográfica. 50 Alta 2 Definir modelo del método de clasificación de

imágenes. Llevar a cabo la definición del modelo y sus hiperaparámetros. 90 Alta 3 Definir técnica de procesamiento de imágenes Realizar la definición de la técnica de procesamiento de

imágenes mediante revisión bibliográfica 50 Alta 4 Implementar técnica de procesamiento de

imágenes

Llevar a cabo la implementación del algoritmo de procesamiento

de imágenes en el lenguaje de desarrollo Python. 70 Alta

5 Generar conjunto de imágenes de entrenamiento y prueba

Realizar la generación de los conjuntos de datos de entrenamiento y prueba, mediante imágenes realizadas manualmente y adquiridas del AR-Sandbox.

80 Alta

6 Implementar, entrenar el modelo de clasificación de imágenes

Realizar la implementación y entrenamiento del modelo definido, haciendo uso de el conjunto de datos generado anteriormente.

100 Alta

7 7

Integrar algoritmo de procesamiento de imágenes y modelo entrenado

Realizar la integración entre el algoritmo de procesamiento de imágenes y el modelo ya entrenado, con el fin de hacer la integración en fase de predicción.

40 Alta

Tabla 12 Sprint Backlog Sprint 2 Fuente: Propia

Tareas Sprint 2

Tarea

Número tarea: 1 Número historia: 2

Nombre tarea: Definir el método de clasificación de imágenes Tipo de tarea:

Diseño

Puntos estimados: 0.5

Fecha inicio: 24/09/2018 Fecha fin: 26/09/2018

Responsable: Daniel Esteban Casas Mateus, Andrés Ovidio Restrepo Rodríguez Descripción:

Determinar a partir de documentación científica, el método de clasificación de imágenes, el cual de acuerdo a sus características y rendimiento satisfaga la necesidad de reconocimiento de imágenes con un número de clases mayor a 2.

Tabla 13 Tarea 1 Sprint 2 Fuente: Propia

Tarea Número tarea: 2 Número historia: 2

Nombre tarea: Definir modelo base del método de clasificación de imágenes. Tipo de tarea:

Diseño

Puntos estimados: 0.5

Fecha inicio: 27/09/2018 Fecha fin: 03/10/2018 Responsable: Daniel Esteban Casas Mateus, Andrés Ovidio Restrepo Rodríguez Descripción:

A partir de la selección del método de clasificación de imágenes, se procede a definir la estructura base del modelo junto con sus hiperparametros. Con el fin de determinar los valores que tomarán los hiperparametros, se hará uso del algoritmo de optimización Random Search.

Tabla 14 Tarea 2 Sprint 2 Fuente: Propia

60

Tarea

Número tarea: 3 Número historia: 2

Nombre tarea: Definir técnica de procesamiento de imágenes Tipo de tarea:

Diseño

Puntos estimados: 0.5

Fecha inicio: 04/10/2018 Fecha fin: 06/10/2018

Responsable: Daniel Esteban Casas Mateus, Andrés Ovidio Restrepo Rodríguez Descripción:

Determinar a partir de documentación científica, la técnica de procesamiento de imágenes, la cual incremente el valor de efectivad del modelo de clasificación de imágenes, a partir de su aplicación al conjunto de entrenamiento y en fase de predicción.

Tabla 15 Tarea 3 Sprint 2 Fuente: Propia

Tarea

Número tarea: 4 Número historia: 2

Nombre tarea: Implementar técnica de procesamiento de imágenes Tipo de tarea:

Diseño

Puntos estimados: 0.5

Fecha inicio: 08/10/2018 Fecha fin: 11/10/2018

Responsable: Daniel Esteban Casas Mateus, Andrés Ovidio Restrepo Rodríguez Descripción:

Llevar a cabo el desarrollo e implementación del algoritmo de procesamiento de imágenes seleccionado anteriormente, de acuerdo a documentación científica y estudios realizados. El desarrollo se llevará a cabo en el lenguaje de desarrollo Python.

Tabla 16 Tarea 4 Sprint 2 Fuente: Propia

Capítulo 5 - Modelo de Desarrollo Propuesto

61

Tarea

Número tarea: 5 Número historia: 2

Nombre tarea: Generar conjunto de imágenes de entrenamiento y prueba Tipo de tarea:

Desarrollo

Puntos estimados: 0.5

Fecha inicio: 12/10/2018 Fecha fin: 17/10/2018

Responsable: Daniel Esteban Casas Mateus, Andrés Ovidio Restrepo Rodríguez Descripción:

Generar el conjunto de datos de entrenamiento y prueba para el modelo de reconocimiento de imágenes. Este conjunto de datos estará conformado por imágenes tomadas directamente del AR-Sandbox y realizadas manualmente mediante algún programa de dibujo.

Tabla 17 Tarea 5 Sprint 2 Fuente: Propia

Tarea

Número tarea: 6 Número historia: 2

Nombre tarea: Implementar y entrenar el modelo de clasificación de imágenes Tipo de tarea:

Desarrollo

Puntos estimados: 0.5

Fecha inicio: 18/10/2018 Fecha fin: 24/10/2018

Responsable: Daniel Esteban Casas Mateus, Andrés Ovidio Restrepo Rodríguez Descripción:

Desarrollar, implementar y entrenar el método de clasificación de imágenes determinado anteriormente, haciendo uso de Python como lenguaje principal de programación y librerías de redes neuronales.

Tabla 18 Tarea 6 Sprint 2 Fuente: Propia

62

Tarea

Número tarea: 7 Número historia: 2

Nombre tarea: Integrar algoritmo de procesamiento de imágenes y modelo entrenado Tipo de tarea:

Desarrollo

Puntos estimados: 0.5

Fecha inicio: 25/10/2018 Fecha fin: 27/10/2018

Responsable: Daniel Esteban Casas Mateus, Andrés Ovidio Restrepo Rodríguez Descripción:

Realizar la integración del algoritmo implementado para el procesamiento de imágenes, en la etapa de predicción del algoritmo para la clasificación de imágenes, haciendo uso del lenguaje de programación Python.

Tabla 19 Tarea 7 Sprint 2 Fuente: Propia

Desarrollo Tareas Sprint 2

5.3.4.1

Desarrollo Tarea 1 : Definir método de clasificación de imágenes

Con el fin de seleccionar el método de clasificación de imágenes, se realizó una búsqueda de bibliografía enfocada en la comparación y ventajas de distintas técnicas comúnmente utilizadas para el reconocimiento y clasificación de objetos. En un estudio realizado por (Lin, Li, Chen, & He, 2018), se propuso un sistema de visión artificial basado en una arquitectura de una red neuronal profunda, para mejorar la clasificación de tres grupos distintos de imágenes de granos de arroz, este método se comparó con enfoques tradicionales como PHOG-KNN, PHOG-SVM, GIST-KNN, GIST-SVM, obteniendo como resultado que, el método con más alto porcentaje de precisión fue el propuesto con un

In document Essays on financial intermediation (Page 56-59)