desarrollo de un sistema de seguimiento de la navegaciÓn …

103
DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN DE PECES CEBRA EN 3 DIMENSIONES USANDO APRENDIZAJE PROFUNDO CARLOS FERNANDO GUIO RODRIGUEZ UNIVERSIDAD SANTO TOMÁS INGENIERIA ELECTRÓNICA BOGOTÁ D.C 2021

Upload: others

Post on 24-Jul-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LANAVEGACIÓN DE PECES CEBRA EN 3 DIMENSIONES

USANDO APRENDIZAJE PROFUNDO

CARLOS FERNANDO GUIO RODRIGUEZ

UNIVERSIDAD SANTO TOMÁSINGENIERIA ELECTRÓNICA

BOGOTÁ D.C2021

Page 2: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LANAVEGACIÓN DE PECES CEBRA EN 3 DIMENSIONES

USANDO APRENDIZAJE PROFUNDO

CARLOS FERNANDO GUIO RODRIGUEZ

Proyecto de grado presentado como requisito para optar al título deINGENIERO ELECTRÓNICO

UNIVERSIDAD SANTO TOMÁSINGENIERIA ELECTRÓNICA

BOGOTÁ D.C2021

Page 3: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

UNIVERSIDAD SANTO TOMÁSIngeniería ElectrónicaEste proyecto de grado fue aceptado para la carrera de Ingeniero(a)Electrónico(a).

Director: Juan Manuel CalderónIng. Juan Manuel Calderón. Ph.D

Bogotá, Colombia

Co-director: Edgar Camilo Camacho PovedaMagíster en Ingeniería Electrónica

Universidad Nacional

Bogotá, Colombia

Jurados: José Guillermo Guarnizo MarínDoctor en Automática, Robótica e Informática Industrial

Universidad Politécnica de Valencia

Valencia, España

Jhon Erick Navarrete GómenzIngeniero Electrónico

Universidad Santo Tómas

Bogotá, Colombia

Sustentación proyecto de grado: 13 Septiembre 2021, BOGOTÁ D.C

Carlos Fernando Guio Rodriguez

Page 4: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

NOTA DE ACEPTACIÓN

El trabajo de grado titulado Desarrollo de un sistema deseguimiento de la navegación de peces cebra en 3dimensiones usando aprendizaje profundo, realizado por elestudiante Carlos Fernando Guio Rodriguez, cumple con losrequisitos exigidos por la UNIVERSIDAD SANTO TOMÁSpara optar al título de INGENIERO ELECTRÓNICO.

Juan Manuel Calderón

Edgar Camilo Camacho

José Guillermo Guarnizo

Jhon Erick Navarrete

iv

Page 5: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Declaración

Me permito afirmar que he realizado la presente tesis de maneraautónoma y con la única ayuda de los medios permitidos y no diferentes alos mencionados en la propia tesis. Todos los pasajes que se han tomadode manera textual o figurativa de textos publicados y no publicados, loshe reconocido en el presente trabajo. Ninguna parte del presente trabajose ha empleado en ningún otro tipo de tesis.

Bogotá, D.C., 19.08.2021

Carlos Fernando Guio Rodriguez

Page 6: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Agradecimientos

Agradezco principalmente a mi familia que me acompañó en este procesotan importante para mi vida, brindándome su confianza y apoyo.Agradezco también a todos los docentes que me acompañaron en estecamino, a quienes debo todos los conocimientos que tengo, yespecialmente por mostrarme lo que puedo llegar a ser.

Page 7: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Resumen

Palabras clave: Alzheimer, Peces Cebra, Trayectoria y Aprendizaje

profundo.El Alzheimer es una enfermedad degenerativa la cual se presentaprincipalmente en personas de avanzada edad y se esta presentando cadavez mas en población de mediana edad. Esta enfermedad se presenta entodo el mundo, sin distinguir clima o estrato por lo que muchas personasque lo padecen sufren de condiciones de vida lamentable o abandono.Actualmente no se cuenta con un tratamiento definitivo para curar estaenfermedad.

En la investigación para la búsqueda de un tratamiento o una cura, losinvestigadores están usando a los peces cebra como modelo animal ya quecuentan con una gran similitud neurobiológica con los seres humanos almomento de padecer el Alzheimer. Por ello, se propone un sistema dereconocimiento visual basado en aprendizaje profundo para entregar latrayectoria recorrida por los peces cebra la cual ayudara a losinvestigadores en sus diferentes estudios.

vii

Page 8: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Abstract

Keywords: Alzheimer, Zebrafish, Trajectory and Deep Learning.

Alzheimer is a degenerative disease which occurs mainly in elderly peopleand is increasingly occurring in the middle-aged population. This diseaseoccurs all over the world, without distinguishing climate or stratum, somany people who suffer it suffer from unfortunate living conditions orabandonment. Currently there is no definitive treatment to cure thisdisease or a cure.

Researchers are using zebrafish as an animal model as they have a strongneurobiological similarity to humans when suffering Alzheimer. Therefore,a visual recognition system based on deep learning is proposed to deliverthe trajectory traveled by zebrafish, which will help researchers in theirdifferent studies.

viii

Page 9: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Contenido

Agradecimientos vi

Resumen vii

Abstract viii

1. Introducción 2

2. Planteamiento Del Problema 3

3. Antecedentes 5

4. Justificación 11

5. Impacto Social 16

6. Objetivos 176.1. Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . 176.2. Objetivos específicos . . . . . . . . . . . . . . . . . . . . . . 17

7. Marco Teórico 187.1. Fotograma por segundo . . . . . . . . . . . . . . . . . . . . 187.2. Píxel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187.3. Datos de investigación . . . . . . . . . . . . . . . . . . . . . 197.4. Corrección de perspectiva . . . . . . . . . . . . . . . . . . . 197.5. Red Neuronal . . . . . . . . . . . . . . . . . . . . . . . . . . 19

7.5.1. Red Neuronal Convolucional . . . . . . . . . . . . . . 21

ix

Page 10: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

7.5.2. Redes Neuronales Recurrentes . . . . . . . . . . . . . 237.6. Yolo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257.7. Tarjetas Gráficas (GPU) . . . . . . . . . . . . . . . . . . . . 27

7.7.1. GOOGLE COLAB . . . . . . . . . . . . . . . . . . . 27

8. Metodología 288.1. Primer Etapa: Investigación . . . . . . . . . . . . . . . . . . 28

8.1.1. Revisión Bibliográfica . . . . . . . . . . . . . . . . . 298.1.2. Análisis herramientas de trabajo . . . . . . . . . . . 29

8.2. Segunda Etapa: Dataset . . . . . . . . . . . . . . . . . . . . 308.2.1. Grabación de los peces . . . . . . . . . . . . . . . . . 308.2.2. Creación del Dataset . . . . . . . . . . . . . . . . . . 31

8.3. Tercera Etapa: Desarrollo Práctico . . . . . . . . . . . . . . 328.3.1. Diseño del Algoritmo . . . . . . . . . . . . . . . . . . 338.3.2. Pruebas y Correcciones . . . . . . . . . . . . . . . . 38

8.4. Cuarta Etapa: Análisis de resultados . . . . . . . . . . . . . 398.4.1. Primer etapa de experimentación . . . . . . . . . . . 398.4.2. Segunda etapa de experimentación . . . . . . . . . . 468.4.3. Tercer etapa de experimentación . . . . . . . . . . . 528.4.4. Cuarta etapa de experimentación . . . . . . . . . . . 568.4.5. Quinta etapa de experimentación . . . . . . . . . . . 618.4.6. Sexta etapa de experimentación . . . . . . . . . . . . 72

9. Conclusiones 76

Bibliografía 78

A. Instalación de Yolo en Google Colab 86

B. Tabla de datos 89

x

Page 11: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Lista de Figuras

3.1. Modelo esquemático del montaje. [1] . . . . . . . . . . . . . 73.2. Resultados obtenidos en el análisis de los datos. [2] . . . . . 9

4.1. Larva de Pez Cebra después de 6 días de la fertilización. [3] 12

7.1. Ejemplo de corrección de perspectiva. En la parte izquierdaestá la imagen original, y en la parte derecha está la imagendespués de pasar por un proceso de corrección de perspectiva.[4] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

7.2. Estructura básica de una red neuronal.[5] . . . . . . . . . . 207.3. Red Convolucional. [6] . . . . . . . . . . . . . . . . . . . . . 217.4. Aplicación de un filtro para encontrar bordes en una imagen.[7] 227.5. Ejemplo de Max Pooling con un filtro de 2x2. [8] . . . . . . 237.6. RNN básica [9]. . . . . . . . . . . . . . . . . . . . . . . . . . 247.7. RNN extendida [9] . . . . . . . . . . . . . . . . . . . . . . . 247.8. LSTM. [10] . . . . . . . . . . . . . . . . . . . . . . . . . . . 257.9. Red LSTM.[10] . . . . . . . . . . . . . . . . . . . . . . . . . 257.10. Algoritmo Yolo. [11] . . . . . . . . . . . . . . . . . . . . . . 267.11. Proceso de identificación.[11] . . . . . . . . . . . . . . . . . 267.12. Resultado obtenido en porcentajes.[11] . . . . . . . . . . . . 27

8.1. Flujo de trabajo del proyecto. Fuente Autor. . . . . . . . . . 288.3. Frame que hace parte de uno de los vídeos de la segunda

etapa. Fuente Autor. . . . . . . . . . . . . . . . . . . . . . . 308.2. Frame que hace parte de uno de los vídeos de la primer etapa.

Fuente Autor. . . . . . . . . . . . . . . . . . . . . . . . . . . 31

xi

Page 12: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

8.4. Imagen que hace parte de un dataset obtenido del videomostrado en la Figura 8.2. Fuente Autor. . . . . . . . . . . 31

8.5. Ejemplo de funcionamiento del programa. Fuente Autor. . . 328.6. Imagen que hace parte del dataset. En el dataset la imagen no

tiene el recuadro negro, este se agregó a modo de ilustración.Fuente Autor. . . . . . . . . . . . . . . . . . . . . . . . . . . 34

8.7. Codificación del archivo en en el que se describe la ubicacióndel pez en la figura 8.6. Fuente Autor. . . . . . . . . . . . . 34

8.8. Archivo de configuración. Fuente Autor. . . . . . . . . . . . 358.9. Archivo que contiene la ubicación de las imágenes con las

que se entrenará la red (en este caso indica la ubicación de9721 imágenes). Fuente Autor. . . . . . . . . . . . . . . . . 36

8.10. Archivo que contiene los nombres que se mostrarán alidentificar cada una de las clases entrenadas. Fuente Autor. 37

8.11. Ejemplo de identificación errónea. Fuente Autor. . . . . . . 388.12. Rectángulos que indican qué área se ha seleccionado. Fuente

Autor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408.13. Imagen entregada por el programa después de las

modificaciones. Los rectángulos verdes se adicionaron amodo de ilustración, por lo que no hacen parte de laimagen. Fuente Autor. . . . . . . . . . . . . . . . . . . . . . 41

8.14. Al lado izquierdo está una muestra del pez visto desde arriba,y al lado derecho está el pez visto de frente. Fuente Autor. . 41

8.15. Archivo de texto que describe la ubicación del pez en laimagen. (Fuente Autor). . . . . . . . . . . . . . . . . . . . . 42

8.16. Identificaciones hechas gracias al primer entrenamiento.Fuente Autor. . . . . . . . . . . . . . . . . . . . . . . . . . . 43

8.17. Diferencia de posición y movimiento de un pez en un lapsode 0,2 segundos. Fuente Autor. . . . . . . . . . . . . . . . . 43

8.18. Los reflejos mostrados en (A) y (B) se presentan en la vistasuperior y el reflejo mostrado en (C) se presenta en la vistafrontal. Fuente Autor. . . . . . . . . . . . . . . . . . . . . . 44

8.19. Pérdida de visibilidad del pez. Fuente Autor. . . . . . . . . 448.20. Comportamiento del programa. Fuente Autor. . . . . . . . . 45

xii

Page 13: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

8.21. Escenarios planteados en la segunda toma de vídeos. FuenteAutor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

8.22. Funcionamiento del segundo programa. Fuente Autor. . . . 478.23. Imágenes entregadas por el programa en su segunda versión.

Estas imágenes ya tienen una corrección de perspectiva y sondel mismo tamaño (en este caso de 222 x 222 píxeles). FuenteAutor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

8.24. Pesos guardados por el sistema en diferentes instantes delentrenamiento. Fuente Autor. . . . . . . . . . . . . . . . . . 49

8.25. Resultado del experimento. Fuente Autor. . . . . . . . . . . 508.26. Comportamiento del programa hasta este punto del proyecto.

Fuente Autor. . . . . . . . . . . . . . . . . . . . . . . . . . . 518.27. Fotograma del video después de ser editado para que muestre

la región de interés. Fuente Autor. . . . . . . . . . . . . . . 528.28. Reconocimiento de la red neuronal en la tercer etapa de

experimentación. Fuente Autor. . . . . . . . . . . . . . . . . 538.29. Reconocimiento de las redes neuronales en la tercer etapa de

experimentación. Fuente Autor. . . . . . . . . . . . . . . . . 548.30. Comportamiento del programa hasta este punto del proyecto.

Fuente Autor. . . . . . . . . . . . . . . . . . . . . . . . . . . 558.31. Funcionamiento del programa para la toma del dataset en la

cuarta etapa de experimentación. Fuente Autor. . . . . . . . 578.32. Fotograma del video en el que, por perspectiva, no se ve la

cabeza del pez. Fuente Autor. . . . . . . . . . . . . . . . . . 588.33. Archivo de texto con las coordenadas de cada parte del pez.

El “0” indica que es la cabeza, el “1” indica el cuerpo, y el “2”indica la cola. Fuente Autor. . . . . . . . . . . . . . . . . . . 58

8.34. Archivo que configura los nombres a mostrar en laidentificación de cada objeto. Fuente Autor. . . . . . . . . . 58

8.35. Identificación hecha por el sistema sobre dos videosdiferentes. Fuente Autor . . . . . . . . . . . . . . . . . . . . 59

8.36. Comportamiento del programa. Fuente Autor. . . . . . . . . 608.37. Arquitectura de los tres modelos entrenados. Fuente Autor. 678.38. Resultados del entrenamiento. Fuente Autor. . . . . . . . . 67

xiii

Page 14: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

8.39. Ejemplos de datos en los que faltan coordenadas poridentificar. Fuente Autor. . . . . . . . . . . . . . . . . . . . 68

8.40. Ejemplo de predicción hecha por los modelos entrenados.Fuente Autor. . . . . . . . . . . . . . . . . . . . . . . . . . . 69

8.41. Identificaciones de rutas de navegación hechas por el sistema.Fuente Autor. . . . . . . . . . . . . . . . . . . . . . . . . . . 70

8.42. Comportamiento del programa. Fuente Autor. . . . . . . . . 718.43. Dataset LSTM para dos peces. Fuente Autor. . . . . . . . . 728.44. Coordenadas LSTM para dos peces. Fuente Autor. . . . . . 738.45. Comportamiento del programa. Fuente Autor. . . . . . . . . 75

A.1. Configuración del cuaderno. Fuente Autor. . . . . . . . . . . 87A.2. Código de instalación. Fuente Autor. . . . . . . . . . . . . . 88

B.1. Tabla generada al finalizar el entrenamiento. En ella se puedever el error que se presenta al momento de entrenar la redcontra el paso del tiempo. Fuente Autor. . . . . . . . . . . . 90

1

Page 15: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Capítulo 1

Introducción

Para nadie debe ser desconocido el término de Alzheimer, nombre quese le da a una enfermedad que ocasiona pérdida de memoria a corto ylargo plazo. Aunque su aparición esta fuertemente ligada al avance de laedad, también se presentan casos en población cada vez mas joven. A pesarde ser una enfermedad que azota a la humanidad sin una fecha específicade aparición, es hasta los años 70 que la comunidad médica y científicacomienza a estudiar las posibles causas y los posibles tratamientos para surehabilitación y cura.

Se estima que en el 2019 hubo más de 50 millones de personas quevivieron con demencia en todo el mundo, cifra que se estima crezcaenormemente para el 2050, con 152 millones de casos. Este promedioindica que una persona desarrolla demencia cada tres segundos, costandodicha enfermedad anualmente un estimado de $ 1 Billón de dólares, cifraque se duplicará para el 2030 [12].

Por estas razones es necesario enfocar un mayor esfuerzo en los estudiospara prevenir, tratar y/o curar esta enfermedad. Es por eso que desarrollarnuevas tecnologías que apoyen a los investigadores en su constante lucha esde gran apoyo, por lo que el proyecto “DESARROLLO DE UN SISTEMADE SEGUIMIENTO DE LA NAVEGACIÓN DE PECES CEBRA EN 3DIMENSIONES USANDO APRENDIZAJE PROFUNDO” busca ser degran ayuda para aquellos investigadores que buscan dar con una cura paraesta enfermedad.

2

Page 16: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Capítulo 2

Planteamiento Del Problema

En el campo de la medicina se han utilizado constantemente animalesque comparten muchas similitudes con los humanos para el estudio dediversas enfermedades. Estas similitudes pueden ser dadas por órganoscon funciones iguales o similares, capacidades de aprendizaje o dereconocimiento, similitudes genéticas u otras características que puedancompartir [13]. La razón de usar un modelo animal para estos estudios esdebido a que presentan consecuencias similares cuando padecen lasmismas enfermedades. Ejemplo de esto es que muchos animales sufren decáncer como los humanos, presentando los mismos síntomas y respuestasfrente a los tratamientos [14].

En el estudio de las enfermedades se busca un modelo animal quetenga la mayor similitud con los humanos para que los resultados seanmás confiables. Para el Alzheimer (AD-Alzheimer Disease) se tiene comomodelo a los peces cebra [15], pues comparten características específicascon los humanos que los hace un excelente modelo para el estudio de estaenfermedad.

Así, los peces cebra, como modelo de estudio, ofrecen una granoportunidad para encontrar tratamientos para mitigar las consecuenciasdel AD o encontrar una cura total para este. Sin embargo, para poderlograr tal cometido es necesario realizar muchos experimentos en donde seanalicen todas las variables posibles. Entre estas variables que se necesitananalizar, y seguramente cuantificar, están: el movimiento de los peces

3

Page 17: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

cebra, el análisis de la trayectoria, la velocidad y otros factoresrelacionados con el movimiento del pez que son claves para el estudio delAD.

Esta información puede ser procesada para identificar cuándo un pezcebra cambia su comportamiento habitual según su movimiento, por lo quees necesario un sistema que sea capaz de identificar el movimiento de unoo varios peces cebra para su posterior análisis. Así, luego de presentar laposibilidad que se presenta con los peces cebra, se formula la siguientepregunta de investigación.

Pregunta de Investigación:¿Cómo realizar el seguimiento a la trayectoria de navegación de peces

cebra usando información visual?

4

Page 18: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Capítulo 3

Antecedentes

Uno de los principales objetivos que se busca alcanzar en este proyectoes la identificación de uno o varios peces en un fotograma, usando redesconvolucionales. En [16] se pueden evidenciar las ventajas de realizar laidentificación con redes convolucionales respecto a otras técnicas dereconocimiento. En este mismo informe ([16]) se documentan algunos delos parámetros a tener en cuenta para obtener mejores resultados almomento de realizar el reconocimiento.

La idea que prosigue a la identificación de los peces como objetos enun fotograma es la de poder realizar el seguimiento de este pez en unasecuencia de fotogramas, lo que en esencia es un video. En [17] se muestrauna metodología usada para lograr el seguimiento o tracking de variosobjetos en un video. Este proceso de tracking consiste en identificarobjetos con una red neuronal (denoising autoencoder(DAE)) que seentrenó con 80 millones de imágenes de 32 x 32 píxeles en blanco y negro.

En resumen, la primer imagen que se procesa con la red neuronalentrega las características de cada objeto que se quiere identificar. Estascaracterísticas se comparan con las características de cada objetoobtenidas al procesar la segunda imagen, y se determina si son losuficientemente compatibles como para asumir que el objeto es el mismo yque se puede actualizar la posición de este. Este proceso lo repitensucesivamente con imágenes consecutivas para poder generar el tracking.

Las redes neuronales que se encargan de realizar las predicciones no

5

Page 19: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

son perfectas, pues existirán instantes en los que no se identifique elobjeto en el medio que se esté aplicando. Para estos casos se investigarondocumentos en los que se utilizan redes de memoria a corto plazo - LSTM(Long Short-Term Memory) como medio para realizar predicciones encasos que fuera necesario. Las redes LSTM se desempeñan bien al predecirsecuencias aisladas como lo puede ser la escritura [18], señales biológicas[19], o los discursos [20].

En [21] utilizan las redes LSTM como un posible medio para enseñara automóviles autónomos a predecir el comportamiento de los vehículoscercanos. En este documento se introduce una red LSTM que es capazde predecir con precisión las trayectorias longitudinales y laterales de losvehículos en una autopista. Al final, se concluye que la precisión de laspredicciones hechas con la red LSTM es mayor que con otros métodos quese han usado. Sin embargo, es una primer aproximación a una tecnologíatotalmente desarrollada.

En [22] se usan de las redes LSTM para predecir la trayectoria de lospeatones en función de sus posiciones pasadas. En este documento sepropone la interconexión de varias redes LSTM por medio de una capa depooling, la cual llaman Social pooling (S-pooling). Finalmente, se concluyeque el uso de las redes LSTM sí representa una solución, ya que proveeuna precisión mayor a otros métodos que se utilizan para el mismo fin. Sinembargo, aseguran que se debe ampliar la investigación ya que lapredicción de la trayectoria generada aún tiene muchos aspectos pormejorar.

Dado que lo que se busca en este proyecto es ofrecer un método parapoder obtener el seguimiento del nado de los peces cebra, se revisarondiferentes proyectos en los que se buscaba el mismo objetivo, pero contécnicas diferentes.

Por ejemplo, en [23] crearon una Red Neuronal Convolucional (CNN).En este documento explican que lo primero que hacen es asignar la identidada cada uno de los peces basándose en un mapa que obtienen extrayendocaracterísticas de la cabeza de cada pez, ya que es la parte de su cuerpoque presenta más constancia a lo largo del nado. Gracias a la CNN sepueden identificar características y diferencias que son imperceptibles al

6

Page 20: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

ojo humano y que, por lo tanto, permiten la identificación única de cadapez.

Después de obtener un punto que está asociado con cada pez,comparan la posición de dicho punto en fotogramas continuos para poderdibujar la trayectoria de este, que a su vez pasa por varias verificacionespara que sea más confiable el resultado. Ellos obtienen muy buenosresultados, sin embargo, explican que el éxito depende de ciertos factores.Ya que la identificación se da gracias al mapa que obtienen extrayendo lascaracterísticas de la cabeza de cada pez, es posible que se generen nuevasidentificaciones por la alteración de la imagen por factores como lasuperposición de dos pescados, por el reflejo de la luz en el agua o por larefracción de la misma.

Uno de los principales detalles que se resaltan de este documento es queobtienen las características basándose en imágenes de dos dimensiones, porlo que el resultado del seguimiento del pez también es en dos dimensiones.En este documento también se descarta información importante del pez (delresto del cuerpo), ya que se centran completamente en la cabeza y dejan delado información importante que puede darse por el movimiento de la cola.

Figura 3.1: Modelo esquemático del montaje. [1]

En [1] diseñan un método para obtener información del nado del pez en3 dimensiones con una sola cámara. Esto se logra al ubicar un espejo en laparte superior del acuario, en un ángulo de 45° respecto al eje de la cámara

7

Page 21: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

para obtener el reflejo de la parte superior del pez, tal como se ilustra enla figura 1.

En este documento no proponen ningún algoritmo para realizar elrastreo de los peces, más bien utilizan un software llamado idTracker quees de uso libre y se puede descargar de internet. En este proyecto obtienenmuy buenos resultados cuando se rastrean pocos peces, sin embargo,cuando son muchos peces (más de 20) se presentan problemas deidentificación porque se presentan superposiciones y oclusiones, lo quehace que las identidades de los peces se confundan. La característica másimportante que resalta en sus resultados es que el nado se encuentrasincronizado perfectamente en los planos XY y YZ, ya que se obtienen altiempo. Esto en contraste con experimentos en los cuales se obtienen losdatos con dos cámaras diferentes, y en donde es necesario sincronizar losvideos para que los datos sean más confiables.

En [2] se demuestra la importancia de la grabación del nado de lospeces en 3D. La mayoría de los datos de las trayectorias de los peces seobtienen en 2D, puesto que se supone que no hay mayor relevancia conrespecto a su trayectoria espacial. Sin embargo, en este documento sedemuestra que se presentan variaciones importantes (figura 2) en factorescomo la velocidad promedio (a), velocidad pico promedio (b), velocidadangular promedio (c), velocidad angular pico promedio (d), distanciapromedio hacia los estímulos (e), y tiempo promedio que gastabansiguiendo las paredes (f). Estas comparaciones se dan en 3 escenarios: elprimero es la vista desde arriba (X, Y en el plano cartesiano), el segundoes la vista de frente (Y, Z en el plano cartesiano), y el tercero es unareconstrucción 3D de la unión de la vista de frente y desde arriba.

8

Page 22: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 3.2: Resultados obtenidos en el análisis de los datos. [2]

En este documento se concluye que, a pesar de que los estudios hechoscon el análisis del comportamiento de los peces cebra en 2D ha arrojadoavances y repuestas para pruebas futuras y más complejas, el análisis delcomportamiento de uno o varios peces en 3D arrojará mejores resultados,más precisos y confiables. La gran desventaja del análisis en 3D es queaumenta la carga para su análisis en el computador.

Finalmente, en [24] dan una guía completa de las características yrazones que se deben tener en cuenta a la hora de realizar el rastreo de unpez cebra. Explican cómo es el comportamiento normal de un pez cebradando a conocer sus periodos activos o de nado y sus periodos inmóviles,además de describir el comportamiento de su nado en diferentessituaciones como el inicio, nado de rutina, respuesta al estímulo, etc.

En este documento también se describe la forma de obtener lascaracterísticas del pez teniendo en cuenta muchos factores como lospuntos importantes de los peces en general, y cómo obtener un punto deacuerdo a estos. Este punto se puede obtener como el centroidegeométrico, centroide binario, centroide ponderado o como el centro delcontorno de una caja que encierra la totalidad de la figura. En general, esuna descripción completa de todas las características que se deben teneren cuenta a la hora de obtener información del nado de los peces cebra.

Este proyecto de grado se realizó gracias a la dirección y patrocinio del

9

Page 23: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Grupo de investigación y Desarrollo en Robótica de la Universidad SantoTomás (G.E.D.). El grupo G.E.D. trabaja en áreas de desarrollo,investigación y enseñanza de la Robótica. Dicho trabajo se enfoca en treslíneas de investigación enfocadas en Sistemas Inteligentes, Visión Artificialy Robótica. El grupo ha participado activamente de la iniciativa deeducación e investigación en robótica a nivel global denominada“RoboCup” en donde se desarrolló un equipo de fútbol de robots para laliga “Small Size” y actualmente se enfoca su participación en la liga“@Home” tal como se muestra en los trabajos [25], [26]. El área derobótica humanoide también se ha trabajado con un enfoque en lareducción de la fuerza de impacto en robots humanoides cuando estoscaen o saltan [27], [28], [29], [30]. Además han trabajado en el uso de larobótica para incentivar a estudiantes de colegio a optar por carrerasafines al área STEM [31], [32], [33]. Actualmente se desarrollan proyectosde investigación enfocados en la robótica de enjambre [34], [35], [36], [37],[38] y sistemas de aprendizaje automático tales como [39], [40], [41], [42].

10

Page 24: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Capítulo 4

Justificación

Entre todas las enfermedades que puedan aquejar al cerebro, una delas más frecuentes e importantes es el Alzheimer: enfermedadneurodegenerativa progresiva que conlleva a la pérdida progresiva de lamemoria, déficit en la motricidad, perdida de la capacidad de hablar,depresión, delirios, alucinaciones, comportamiento agresivo y reduccióntotal en la calidad de vida [43]. Sin embargo, a pesar de estascaracterísticas, es muy difícil identificar esta enfermedad en las primerasetapas. Es una enfermedad que no solo afecta la calidad de vida de laspersonas y sus familiares, sino también representa un alto costoeconómico. Según la asociación del Alzheimer, en Estados Unidos, el costoque se genera por esta enfermedad es de aproximadamente $1,1 billones dedólares por año, costo que aumenta gracias a que más y más personassufren de esta enfermedad [44].

El AD también es una problemática presente en Colombia, pues segúnun estudio realizado por los especialistas de la Facultad de Ciencias de laSalud de la Universidad ICESI, para el 2020 se estimó que 260.000 personasmayores de 60 años padecieron AD en el país [45]. Para el 2010 se estimabancerca de 36 millones de personas en el mundo con AD, y se proyecta quepara el 2030 existan cerca de 66 millones de personas con dicha enfermedad[46].

Esta enfermedad se puede clasificar como familiar (FAD) cuando suaparición se presenta antes de los 65 años, o como esporádica (SAD) cuando

11

Page 25: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

su aparición se presenta después de los 65 años [47]. FAD es atribuido a lamutación en tres genes: PRESENILIN 1(PSEN1), PRESENILIN 2(PSEN2)y AMYLOID BETA A4 PRECURSOR PROTEIN (APP). Por otro lado,SAD, siendo la más frecuente de las dos clasificaciones con más del 90% delos casos [48], tiene una etiología más compleja y se asocia con diferentesfactores de riesgo como la edad avanzada, un problema genético o teniendoel alelo N° 4 del gen APOLIPOPROTEIN E (APOE). Sin embargo, losdesencadenantes moleculares o celulares del AD no se han resuelto porcompleto.

Muchas de las investigaciones han tenido a los roedores como modelo,y aunque muchas de estas investigaciones han aclarado muchas dudas, nose ha llegado a uno de los puntos cruciales: identificar el desencadenantede esta enfermedad. En paralelo a las investigaciones en roedores comenzóa surgir un nuevo modelo animal para el estudio de esta y muchas otrasenfermedades: el pez cebra.

Los peces cebra, que son animales que comúnmente se tienen comomascotas, han tomado fuerza como uno de los principales modelos para elestudio de enfermedades, pues tienen muchas características y similitudescon los mamíferos. Sus embriones se desarrollan por fuera de la madre y sontransparentes, por lo que facilita la visualización de órganos y tejidos [3].Estos peces tienen un desarrollo muy rápido, cuya organogénesis permite lavisualización de la mayoría de los órganos en la larva después de 5 o 6 díasde la fertilización (Figura 4.1).

Figura 4.1: Larva de Pez Cebra después de 6 días de la fertilización. [3]

A parte de estas similitudes, los peces cebra presentan genes ortólogos alos genes de los seres humanos, lo que es una variable crucial en el estudio delAD. El psen1 [49] y el psen2 [50] presentes en los peces cebra son ortólogos

12

Page 26: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

al PSEN1 y PSEN2 en los humanos. Así mismo, el gen appa y appb es co-ortólogo al gen APP en los humanos, características que los convierten enun modelo ventajoso para estudios genéticos y moleculares. Los embrionesde los peces cebra son genéticamente maleables por inyección de antisenseoligonucleótidos, mRNA y sistemas de ingeniería para genomas [51].

Los peces cebra, como modelo, exhiben muchos de los síntomas que seven en los humanos, por lo que para su entendimiento es necesarioexaminar las estructuras neurales de esta especie. Los peces cebra tienenuna estructura cerebral comparable con la de los humanos y la de otrosmamíferos [43], sin embargo, se presentan ciertas diferencias. Gracias aque se presentan estas similitudes, los investigadores pueden observar unasintomatología comparable cuando se les induce AD a los peces cebra.Estos no solo presentan pérdidas de memoria, sino que también presentanpérdidas locomotoras [43].

Para sustentar esta idea se realizaron tres experimentos en los que seanalizaba la respuesta a estímulos, evasión de obstáculos y se realizaba unrastreo de movimiento [15]. Para la respuesta al estímulo los peces cebrafueron expuestos a un estímulo musical varias veces en el transcurso de undía. Los peces se adaptaron rápidamente al ruido y presentaron unmovimiento más lento en respuesta al sonido, probándose su capacidad dememoria y aprendizaje. Entendiendo la habilidad de los peces cebra parareaccionar a los estímulos, es posible hacer una comparación en elcomportamiento cuando estos están sanos y cuando se les induce unestado de AD. Con este experimento se asegura la capacidad de los pecespara aprender y memorizar.

Para probar la capacidad de los peces cebra para evadir obstáculos, serealizó un test en el que se buscaba entender la capacidad locomotora de losmismos. En este experimento se creó una pecera en donde la mitad estabapintada de color negro y la otra mitad de color blanco, mostrando estospreferencia por el lado oscuro en condiciones normales. En la siguiente fasese ubicó un dispositivo que daba un pequeño choque eléctrico a los peces quenadaran hacia el lado oscuro, y el resultado fue que los peces aprendierona no entrar en este espacio y se mantuvieron en el espacio claro. Con esto,los investigadores midieron la distancia explorada y la velocidad promedio

13

Page 27: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

de reacción.

Posteriormente se les administró aluminio para generarles un estadode AD con el fin de mirar su comportamiento. En este caso se observóuna reducción notable de movimiento con una distancia y una velocidadmenor, comparados con los peces sanos. Los peces expuestos al aluminiotambién mostraron una reducción en su capacidad de evadir obstáculos, yaque no aprendieron a evadir el área oscura del tanque a pesar de recibirlas descargas eléctricas. Por lo tanto, se evidencia una reducción en lashabilidades cognitivas.

El siguiente experimento constó en inyectar β 1-42 a una parte de lospeces de una pecera con el fin de inducirles AD. En esta pecera se tenía unabola de color rojo la cual pasaba de un lado al otro de la pecera. En estecaso, los investigadores midieron la velocidad promedio, distancia de nadoy capacidad de evadir obstáculos tanto en los peces inyectados, como en lospeces sanos. Los peces inyectados mostraron una capacidad muy reducidapara evadir la bola en comparación con los peces sanos. En resumen, losefectos en la locomoción fueron mínimos, lo que puede deberse a que elamiloide β 1-42 está más relacionado con la parte cognitiva que con lalocomotora [15].

A través de estos tres experimentos se pudo corroborar la capacidad delos peces cebra para ejemplificar algunos de los mayores síntomaspresentados en el AD: déficit de aprendizaje, problemas de memoria yproblemas locomotores. A través de una mayor comprensión de lascapacidades cognitivas de la especie, la viabilidad de utilizar el modelocomparativo de pez cebra para investigar AD toma cada vez más fuerza.Gracias a estos experimentos también se concluyó que el movimiento delos peces es de suma importancia, por esto, desarrollar un software queentregue un seguimiento de la trayectoria que siguen los peces puedeayudar a la investigación sobre el AD, para en un futuro aplicarlo en sereshumanos.

Todos estos hechos hacen necesario incrementar el estudio de los pecescebra, por lo cual se necesitarán más y mejores métodos y herramientasde estudio y análisis. Por esta razón es que el desarrollo de un softwarecapaz de realizar el seguimiento a la trayectoria de navegación de uno o

14

Page 28: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

varios peces, usando información visual, dará más información para que losinvestigadores que trabajan en la búsqueda de una explicación y cura delAD puedan fortalecer sus investigaciones utilizando los resultados obtenidosen este proyecto.

15

Page 29: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Capítulo 5

Impacto Social

El ser humano sufre constantemente de padecimientos en su salud, porlo que se destinan constantemente recursos económicos en la investigaciónde causas y posibles curas a dichos padecimientos.

La aplicación de aprendizaje profundo (Deep Learning) en estosestudios ayudará a obtener información con la cual se pueden realizaranálisis más profundos como en el caso de los peces cebra. Así, esteestudio tiene una aplicación social bastante importante ya que se estimaque el porcentaje de población que sufre de Alzheimer va en aumento [44],además de los altos costos que conlleva el tratamiento de esta enfermedad.

Al desarrollar un software que entregue datos del comportamiento de lospeces cebra ayudará a agilizar los estudios relacionados con estos peces sobreel Alzheimer y podrían ayudar en el descubrimiento de un tratamiento, oen esclarecer las causas de por qué se da esta enfermedad, o dar diferentesenfoques de estudio. Es decir, la aplicación de este proyecto ayudará, sinduda, a aquellos que sufren de esta enfermedad.

16

Page 30: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Capítulo 6

Objetivos

6.1. Objetivo general

Diseñar un sistema de seguimiento de la navegación de peces cebra en3 dimensiones mediante el uso de información visual.

6.2. Objetivos específicos

Revisar los diferentes tipos de arquitecturas de redes neuronales quepuedan ser utilizadas en la generación de posibles soluciones a esteproblema.

Construir una base de datos de trayectorias.

Desarrollar un algoritmo base para hacer seguimiento en 2dimensiones a un solo pez.

Realizar los cambios necesarios al sistema para poder expandir elsistema de seguimiento a 3 dimensiones.

Expandir el sistema desarrollado para poder realizar el seguimientoen 3 dimensiones a más de un pez a la vez.

Validar la precisión de detección y seguimiento del sistema, a partirde la comparación de los resultados obtenidos con las trayectoriasextraídas en la base de datos.

17

Page 31: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Capítulo 7

Marco Teórico

Este proyecto se basa en el análisis de datos obtenidos a partir de unacámara que graba el nado de los peces cebra. Dichos datos son necesariospara poder entrenar varias redes neuronales para que aprendan adiferenciar los peces de un entorno. Acto seguido, es necesario queaprendan a diferenciar las diversas partes del cuerpo de los peces yfinalmente aprendan a diferenciar entre peces. La segmentación de estosaprendizajes es fundamental, así como entender su proceso, por lo que esimperativo hacer aclaración y explicación de varios términos relevantes.

7.1. Fotograma por segundo

Fotograma por segundo o frame per second, o fps [52], es el conceptocon el cual se dimensiona cuántos fotogramas o imágenes se muestran porsegundo en una pantalla al reproducir un video. Esta medida también seaplica para la grabación de videos. Así, por ejemplo, un video de 60 fpsindica que en cada segundo se están mostrando 60 imágenes.

7.2. Píxel

Un píxel o pixel es la unidad más pequeña de color que forma parte deuna imagen digital [53]. Una imagen digital está formada por una matrizde píxeles X, Y y Z, en los que X y Y representan el ancho y el alto, y Z

18

Page 32: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

representa el color que tiene ese píxel, también conocido como profundidadde color.

7.3. Datos de investigación

Los datos de investigación, o dataset, son el conjunto de datos obtenidossobre los cuales se va a realizar un procedimiento de investigación.

7.4. Corrección de perspectiva

La corrección de la perspectiva es un proceso en el que se edita unafotografía o imagen para corregir la distorsión producida por el ángulo enel que se toma la imagen. Este efecto genera que los elementos en unaimagen se vean ladeados como se muestra en la Figura 7.1.

Figura 7.1: Ejemplo de corrección de perspectiva. En la parte izquierdaestá la imagen original, y en la parte derecha está la imagen después depasar por un proceso de corrección de perspectiva. [4]

7.5. Red Neuronal

El concepto de red neuronal en computación tiene sus orígenes muyligados al concepto médico de red neuronal, que es un conjunto en el quevarias neuronas interactúan entre sí compartiendo información [54].Básicamente en computación se trata de emular el comportamiento de las

19

Page 33: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

redes biológicas. Las definiciones de redes neuronales en computaciónvarían entre definiciones genéricas y cortas, hasta definiciones sumamentedetalladas, así [55]:

Una nueva forma de computación, inspirada en modelos biológicos.

Un modelo matemático compuesto por un gran número de elementosprocesales organizados en niveles.

Una red neuronal es un sistema de computación compuesto por ungran número de elementos simples, elementos de procesos muyinterconectados, los cuales procesan información por medio de suestado dinámico como respuesta a entradas externas.

Son redes interconectadas masivamente, en paralelo, de elementossimples (usualmente adaptativos) y con organización jerárquica, lascuales intentan interactuar con los objetos del mundo real, delmismo modo que lo hace el sistema nervioso biológico.

Figura 7.2: Estructura básica de una red neuronal.[5]

En la figura 7.2 se representa una estructura básica de una red neuronal.En resumen, una red neuronal recibe como entrada información ordenadaque es analizada por cada una de las neuronas, las cuales entregan un

20

Page 34: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

resultado a una entrada dependiendo de los parámetros establecidos. Porejemplo, suponga que tiene una red neuronal entrenada para determinar siuna imagen contiene un perro o no, en este caso, al “mostrarle” una imagena la red, esta determinara si la imagen contiene o no un perro.

Entonces surge la pregunta: ¿cómo sabe la red si es o no un perro?. Eneste caso a la red se le ha mostrado un dataset que no es más que unagran cantidad de imágenes que contienen perros, y otra cantidad deimágenes que no contienen perros. Este proceso se conoce comoentrenamiento, y en este se le enseña a la red características especiales quecatalogan una imagen como perro o como otro objeto. En este caso la redentregará un porcentaje de probabilidad así “la imagen es un x% perro” y,según parámetros establecidos, se clasificará como perro o no.

La red neuronal descrita en el ejemplo anterior se conoce como redconvolucional, y aunque no es la única que puede cumplir con esta labor,es una de las más usadas para este fin. Existen muchos tipos de redesneuronales y diversos métodos de entrenamiento, que se pueden consultaren [56].

7.5.1. Red Neuronal Convolucional

Las redes neuronales convolucionales, o CNN por sus siglas en inglés(Convolutional Neural Network), son un tipo de arquitectura de redes en laque que se le hace un procesamiento a las imágenes antes de pasarlas por lared neuronal. En este procesamiento se tienen dos capas muy importantes:la capa de convolución y la capa de pooling o reducción [57].

Figura 7.3: Red Convolucional. [6]

En la figura 7.3 se describe una red convolucional básica, en la que el

21

Page 35: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

procesamiento de la imagen se da en las capas de convolución y depooling. Estas capas van emparejadas y se pueden colocar cuantas seconsideren necesarias. Después de las capas viene la interacción con la redneuronal (FC en la figura 7.3). La última capa es lo que se conoce comocomo la capa de salida y, dependiendo de la necesidad, puede serdeterminista o probabilística [8]. En el caso de la figura 7.3, la redconvolucional determinará si es un carro o no dependiendo de suentrenamiento, y con algunas modificaciones es posible entregar laubicación del objeto.

En [58] se puede visualizar un ejemplo de lo que es una red convolucionalen la que se aplica la convolución y el pooling. En este ejemplo buscanidentificar cuál número se está dibujando.

Capa Convolucional

En esta capa se extraen características de la imagen al procesarlas condiferentes filtros. Estas características son independientes a pesar de quepuedan estar relacionadas, por ejemplo, se puede procesar una imagen paraextraer los componentes verticales, horizontales, diagonales, entre muchosotros como se puede ver en la figura 7.4.

Figura 7.4: Aplicación de un filtro para encontrar bordes en una imagen.[7]

En este proceso se genera una nueva imagen en la que se destacan lascaracterísticas que resalta cada filtro, es decir, se generan tantas imágenescomo filtros se apliquen en esta capa. Estas imágenes resultantes puedenser del mismo tamaño, aunque también se usa para reducir un poco lasdimensiones de ancho x alto.

22

Page 36: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Capa Pooling o Reducción

En esta capa se le aplica un filtro a las imágenes que permite reducir eltamaño de estas, agrupando varios píxeles en uno. Este proceso se realizacon el fin de reducir la carga computacional y resaltar las característicasde las imágenes. Así, se agrupan N x N píxeles. Dependiendo del tipo depooling, se puede seleccionar el píxel con mayor valor (Max Pooling), elpíxel con menor valor (Min Pooling), un promedio de los píxelesseleccionados (Average Pooling) o un filtro diferente. En la figura 8 seejemplifica el proceso de Max Pooling.

Figura 7.5: Ejemplo de Max Pooling con un filtro de 2x2. [8]

En [58] se puede visualizar un ejemplo de lo que es una red convolucionalen donde se aplica la convolución y el pooling.

7.5.2. Redes Neuronales Recurrentes

Las redes neuronales recurrentes, o RNN (recurrent neural networks)por sus siglas en inglés, son redes capaces de reconocer y predecir secuenciasde datos a lo largo del tiempo [9], tales como discursos, series de datos, entreotros. En este tipo de redes se incluye el concepto de tiempo, ya que el fin espronosticar valores en el futuro. Este tipo de redes se fundamenta en buclesque “reutilizan” la salida de la red, o parte de ella, en instantes posteriores,como entrada de la misma red.

23

Page 37: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 7.6: RNN básica [9].

En la figura 7.6, A es una red neuronal, Xt es la entrada en un instantede tiempo t, y ht es la salida de la red. Como se puede evidenciar, el hechode que la red esté conectada consigo misma es lo que permite que tengamemoria. Este concepto se puede expandir en una red más compleja comolo muestra la figura 7.7.

Figura 7.7: RNN extendida [9]

Un problema o inconveniente de las RNN es que pierden la “calidad”de los datos de entrada, ya que en cada instante van pasando pordiferentes redes neuronales. Este problema es conocido como problemadel desvanecimiento del gradiente [59].

Redes LSTM

Las redes LSTM (Long Short Term Memory), o redes de memoria acorto/largo plazo, son un tipo de RNN que tienen la habilidad deaprender características a largo plazo. Esta capacidad la adquiere alagregar compuertas lógicas, un flujo de datos entre las redes llamado CellState, como se puede ver en la figura 7.8.

24

Page 38: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 7.8: LSTM. [10]

El éxito de las LSTM en evitar el problema de desvanecimiento degradiente reside en lo que se conoce como Cell State, que es la lineasuperior horizontal que recorre las redes en la figura 7.9, o la lineaenmarcada en la figura 7.8.

Figura 7.9: Red LSTM.[10]

Para mayor entendimiento del tema, se recomiendan estos informativosartículos: [60] y [10].

7.6. Yolo

Yolo «You Only Look Once», o “solo se mira una vez”, es un sofisticadoalgoritmo que realiza el procesamiento de imágenes de forma eficaz ysencilla. Este algoritmo procesa las imágenes en tiempo real por medio deuna red neuronal convolucional, tal como se ve en la figura 13.

25

Page 39: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 7.10: Algoritmo Yolo. [11]

Este algoritmo es gratuito y se ha usado durante mucho tiempo.Cuenta con diferentes versiones y aplicaciones, teniendo a Yolo V4 comola versión mas reciente [61]. En el proceso de reconocimiento, el algoritmorealiza una serie de pasos para identificar los objetos extrayendo diferentescaracterísticas, el cual se explica en su pagina web [11].

En resumen, el algoritmo divide la imagen en (n) rectángulos pararealizar la comparación de características entre los diferentes objetos queha aprendido a identificar. Después agrupa estas predicciones para podermostrar los recuadros finales y descartar predicciones erróneas como se veen las figuras 7.11 y 7.12.

Figura 7.11: Proceso de identificación.[11]

26

Page 40: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 7.12: Resultado obtenido en porcentajes.[11]

7.7. Tarjetas Gráficas (GPU)

El proceso que realiza la mayoría de redes neuronales es sencillo peroextenso. Como se explicó anteriormente, se realizan múltiples procesos auna imagen (Redes Convolucionales), se tienen secuencias (LSTM) y sehace procesamiento de imágenes en tiempo real (YOLO). En resumen, serealizan innumerables cálculos matemáticos que no son complejos, pero síson muchos. Al tener esta necesidad, se requiere de un hardware que cumplacon las expectativas.

En la actualidad las tarjetas gráficas, o GPU (Graphics ProcessingUnit), se encargan de realizar todos los cálculos matemáticos necesarios ala hora de realizar trabajos con redes neuronales complejas. Uno de losmas grandes y principales exponentes de tarjetas gráficas compatibles conlos programas que se utilizan en todo lo referente a redes neuronales(Machine Learning), es NVIDIA. Se recomienda [62] para profundizar enel tema.

7.7.1. GOOGLE COLAB

Servidor en la nube que permite el uso de tarjetas gráficas, o GPU, demanera gratuita [63].

27

Page 41: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Capítulo 8

Metodología

Para cumplir con los objetivos planteados en este proyecto se siguió unflujo de trabajo de cuatro etapas, el cual se describe en la Figura 8.1.

Figura 8.1: Flujo de trabajo del proyecto. Fuente Autor.

8.1. Primer Etapa: Investigación

Esta primera etapa está dedicada a la investigación, pues es importantesaber con qué herramientas se van a trabajar, qué metodologías existenpara utilizar en el desarrollo del proyecto, y cuál de estas metodologías se

28

Page 42: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

adapta mejor a las necesidades.

8.1.1. Revisión Bibliográfica

El concepto de redes neuronales es relativamente reciente pues sus iniciosdatan desde la creación del perceptron en 1958 [64]. Desde ese momento hatenido grandes avances, por lo que en la actualidad existen diferentes tiposde redes neuronales que varían en su arquitectura y aplicación. Con estoen mente, se realiza una investigación sobre cuál red se ajusta mejor a lanecesidad del proyecto, arrojando como resultado que las Redes NeuronalesConvolucionales ofrecen una solución para el reconocimiento de los peces, ylas Redes LSTM ayudarán con las predicciones en la ubicación de los pecescuando exista una oclusión o superposición en el nado de varios peces.

Después de determinar que las Redes Convolucionales aportarían a laidentificación y ubicación de los peces, y con conocimiento de la existenciade estas, se profundizó en la herramienta YOLO [11] para evitar “reinventarla rueda”.

8.1.2. Análisis herramientas de trabajo

Las redes neuronales son una arquitectura matemática [56]. Entérminos de programación se puede implementar en diferentes lenguajescomo Python, C, Java, entre otros. En este caso se optó por utilizarPython como lenguaje de programación.

Una herramienta que ayuda con el entrenamiento de las redesneuronales es la tarjeta gráfica(GPU) de los equipos de computo, ya quereduce enormemente el tiempo de entrenamiento de estas. El principalproblema de las GPU es su elevado costo, además de esto es necesario queel resto del hardware del equipo de computo que se utilice sea compatiblecon esta GPU. Afortunadamente existe GOOGLE COLAB [63] que es unservidor en la nube en el que se pueden usar GPU’s de manera gratuita,además de tener una conexión directa con GOOGLE DRIVE, lo quefacilita su uso. En este servidor se puede realizar el entrenamiento de lasredes neuronales, por lo que fue el medio principal en el que se entrenaronlas redes usadas en este proyecto.

29

Page 43: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

8.2. Segunda Etapa: Dataset

Entre los factores que pueden afectar el éxito de una red neuronal seencuentran el dataset, ya que en este se especifican las características quedebe aprender las redes para poder cumplir con su función. En este caso eldataset va a ser una serie de imágenes que indican el nado de los peces ysus características.

Todos los dataset que se construyeron para el desarrollo del proyectoestán en posesión del autor del documento y pueden ser consultados si sedesea.

8.2.1. Grabación de los peces

Para poder generar uno o varios dataset es necesario contar con videosde los peces nadando. En este caso se usaron varios videos obtenidos endos etapas diferentes. En la primer etapa (figura 8.2) los videos seobtuvieron gracias al Dr Sidney Bolden Jr. del laboratorio delDepartamento de Ciencias Ambientales de la Universidad BethuneCookman de Daytona Beach en Florida, por medio del profesor JuanManuel Calderón Chávez (Director del proyecto). En la segunda etapa(figura 8.3) los videos se obtuvieron gracias al profesor Juan ManuelCalderón Chávez.

Figura 8.3: Frame que hace parte de uno de los vídeos de la segunda etapa.Fuente Autor.

30

Page 44: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 8.2: Frame que hace parte de uno de los vídeos de la primer etapa.Fuente Autor.

En el capítulo del desarrollo del proyecto se mencionarán las razonespor las que se hicieron videos en dos etapas.

8.2.2. Creación del Dataset

Se obtienen varios dataset a partir de los videos obtenidos. El procesoes bastante extenso ya que a cada video se le extraen varios frames. Porejemplo, en los primeros experimentos que se hicieron se utilizó un datasetcon 367 imágenes. La figura 8.4 hace parte del primer dataset.

Figura 8.4: Imagen que hace parte de un dataset obtenido del videomostrado en la Figura 8.2. Fuente Autor.

Sin embargo, la Figura 8.4 es diferente a uno de los frames obtenidos del

31

Page 45: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

video (Figura 8.2), ya que a cada frame se le realiza un procesamiento en elque se extrae la región de interés y se hace una corrección de perspectiva.Para realizar este proceso se creó un programa en Python que recibe comoparámetro la ubicación del vídeo original y permite seleccionar las regionesde interés como se ve en la figura 8.5. El programa sufrió varias mejorasque se abordarán más adelante.

Figura 8.5: Ejemplo de funcionamiento del programa. Fuente Autor.

Los dataset finales se obtuvieron a partir de los vídeos de la segundaetapa. Estos dataset están compuestos por imágenes de la pecera y porarchivos de texto (.txt) en los que se indica la ubicación del pez en píxeles.En este dataset se separó lo que sería la vista frontal de la pecera con lavista superior.

8.3. Tercera Etapa: Desarrollo Práctico

En esta tercera etapa se busca lograr los objetivos propuestos. Despuésde obtener un dataset es necesario comenzar a usarlo para ver qué tan eficazresulta su uso. Esto también está ligado al diseño de la red y la arquitecturaseleccionada.

32

Page 46: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

8.3.1. Diseño del Algoritmo

Gracias a la revisión bibliográfica que se hizo, se comenzó a desarrollarun algoritmo en el que se usaba una red convolucional para la identificacióndel pez en la imagen. Después de diversos experimentos e investigación,se determinó el uso de la herramienta Yolo [11] para la identificación yubicación del pez. El reto con esta herramienta es que, además del datasetde imágenes, se necesita entregar información adicional al sistema para elentrenamiento de la red (la ubicación del pez en la imagen).

Yolo

Para utilizar Yolo es necesario remitirse a [11] o [61], sitios en los quese hace una completa descripción de cómo usar dicha herramienta y susvariantes. Para el caso del proyecto en particular, el primer paso fuedeterminar cuántas clases de objetos se van a identificar. En este caso enespecifico sólo se van a identificar peces.

Lo primero que se necesita es seleccionar qué tipo configuración se vaa usar. Yolo ofrece diferentes arquitecturas de Redes Neuronales entre lasque está Yolov3, Yolo-tiny, Yolov2 y la mas reciente, YoloV4, entre otras.Todas estas son arquitecturas en las que se usan redes convolucionales comobase para la identificación, pero con modificaciones para diferentes tiposde aplicaciones. Para el proyecto se usaron las arquitecturas de Yolov3 yYoloV3-tiny.

Después de seleccionar qué arquitectura se va a usar, es necesarioagregar unos datos adicionales al dataset de imágenes que se generóanteriormente. En este caso es necesario agregar un archivo de texto porcada imagen que se tenga en el dataset en el cual se indica la ubicaciónrelativa del pez respecto al tamaño en píxeles de la imagen. Un ejemplo deeste archivo se puede ver en la figura 8.7, que describe la ubicación del pezen la figura 8.6.

Este archivo tiene 5 parámetros que se deben configurar por cadaelemento que se encuentre en la imagen, es decir, si en la figura 8.6existieran dos o mas peces, se debe configurar una linea por cada uno. Elprimer parámetro indica qué es lo que se está identificando, este es un

33

Page 47: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 8.6: Imagen que hace parte del dataset. En el dataset la imagen notiene el recuadro negro, este se agregó a modo de ilustración. Fuente Autor.

Figura 8.7: Codificación del archivo en en el que se describe la ubicacióndel pez en la figura 8.6. Fuente Autor.

entero entre cero y el número de clases que se pueden identificar (1 en estecaso). Es decir, si se pueden identificar 5 tipos de objetos diferentes, elrango del primer parámetro irá entre cero y cuatro. En este caso es ceroya que sólo se identificará una clase.

Los cuatros parámetros restantes describen un recuadro que encierra alobjeto a identificar. En este caso el recuadro encierra la ubicación del pezcomo se ve en la figura 8.6. Los cuatro parámetros son: centro relativo delrecuadro en X (Crx), centro relativo del recuadro en Y (Cry), ancho relativodel recuadro (Wr), y alto relativo del recuadro (Hr). Estos datos se calculande la siguiente forma:

Crx = Cx/width (8.1)

Cry = Cy/height (8.2)

Wr =W/width (8.3)

Hr = H/height (8.4)

34

Page 48: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Donde:

Cx es el componente X del centro del recuadro.

Cy es el componente Y del centro del recuadro.

W es el ancho del recuadro en píxeles.

H es el alto del recuadro en píxeles.

width es el ancho de la imagen en píxeles.

height es el alto de la imagen en píxeles.

El siguiente paso es adaptar la configuración de estas arquitecturas conlos datos del proyecto. El primer archivo a configurar es el que se muestraen la Figura 8.8. Este archivo es de tipo .data, y en el caso del proyecto sellama traffic-sign. En este archivo se deben dar 5 parámetros básicos parael funcionamiento, siendo el primero el número de clases u objetos que elsistema va a identificar, en este caso es 1 puesto que sólo identificará peces.

Figura 8.8: Archivo de configuración. Fuente Autor.

El segundo parámetro es el path o ubicación de un archivo en el que setienen las ubicaciones de cada una de las imágenes que se usa en el dataset(Figura 8.9).

El tercer parámetro es la ubicación de un archivo de texto en el que setienen las ubicaciones de las imágenes de validación. Estas imágenes son unbanco de datos en el que se tienen muestras positivas (imágenes con peces)y muestras negativas para que el sistema haga una validación con datos

35

Page 49: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 8.9: Archivo que contiene la ubicación de las imágenes con las quese entrenará la red (en este caso indica la ubicación de 9721 imágenes).Fuente Autor.

que no han sido parte del entrenamiento. Este tercer parámetro, aunquenecesario, no es indispensable. En términos de buenas prácticas, sí se debehacer la validación del entrenamiento, sin embargo, se puede entrenar elsistema sin necesidad de las imágenes de validación. Este archivo de textoes similar al mostrado en la Figura 8.9, solo que las imágenes no deberíanser las mismas.

El cuarto parámetro es un archivo que registra los nombres a mostrarcuando se hace la identificación. Por configuración, este archivo debe teneruna extinción “.names”. En el caso del proyecto se llama trafic-sign.namesy se muestra en la Figura 8.10. En este archivo se debe dar un título porcada una de las clases que se van a identificar en la red, en este caso es unasola clase y se llama “fish”.

El último parámetro a configurar es la ubicación en el que se guardaránlos backup o datos de respaldo. En esta carpeta se guardarán los datos quedeterminan el aprendizaje de la red o, como se conoce en terminología deredes neuronales, los pesos.

36

Page 50: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 8.10: Archivo que contiene los nombres que se mostrarán alidentificar cada una de las clases entrenadas. Fuente Autor.

En este punto ya se tienen configurados los archivos necesarios para elentrenamiento, por lo que ahora es necesario configurar la red que se vaa usar. Al momento de clonar el repositorio se descargan los archivos quecontienen las configuraciones de las redes. Como se mencionó anteriormente,se trabajó con la configuración de YoloV3 y YoloV3-tiny, por lo que esnecesario adaptar estas redes a las necesidades del proyecto.

Estos archivos se encuentran en una carpeta llamada cfg, que es dondeestán las configuraciones de todas las redes de las que dispone Yolo. Allí seencuentran dos archivos que se llaman yolov3.cfg y yolov3-tiny.cfg, los cualescontienen la configuración de la arquitectura de la red correspondiente.

Los archivos .cfg describen cuantas capas convolucionales, cuantas capasde pooling, el número de filtros y otras variables que se pueden ajustarsiguiendo ciertos parámetros. Estas configuraciones se explican en [61]. Otroelemento importante a tener en cuenta es que se mencionan las capas como[convolutional] o [yolo], entre otras. Las variables que se deben ajustar paraasegurar el correcto entrenamiento, con las condiciones propias del proyecto,son:

classes: Esta variable le indica a la red convolucional cuántas clasesse están tratando de enseñar. Para el proyecto este valor es de 1, y sedebe cambiar en las capas de [yolo].

filters: Esta variable indica el número de filtros que se utilizarán encada capa convolucional. Sin embargo, para tener mejores resultadosel autor indica que en la capa [convolutional], anterior a la capa [yolo],se modifique el valor de esta variable teniendo en cuenta la fórmula

37

Page 51: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

filters = (classes+ 5) · 3, por lo que en este caso filters = 18.

En este punto ya se tiene la configuración necesaria para comenzar aentrenar las redes convolucionales con Yolo.

8.3.2. Pruebas y Correcciones

Las pruebas de funcionamiento se hacen después de terminar losentrenamientos. En esta etapa se evalúa qué tan bien está haciendo elreconocimiento la red neuronal. Así mismo, esta etapa es crítica ya que alencontrar un resultado no tan favorable, implica que se debe realizar denuevo el entrenamiento de una red (este entrenamiento puede tardar de 5a 7 horas dependiendo de el dataset). En el peor de los casos es necesariogenerar un dataset nuevo (este proceso demora aproximadamente 3 días),por lo que el flujo del proyecto puede volver a la etapa dos o tres.

Figura 8.11: Ejemplo de identificación errónea. Fuente Autor.

En la Figura 8.11 se evidencia un entrenamiento equivocado. En estecaso el error puede darse por poco tiempo de entrenamiento, un datasetmal configurado entre otros posibles factores. Este análisis se hace en elcapítulo de resultados.

38

Page 52: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

8.4. Cuarta Etapa: Análisis de resultados

El análisis de resultados es una de las etapas mas criticas puesto queen esta se deben analizar los datos para plantear una solución según sea elcaso.

En las etapas que se describen a continuación se da una detalladaexplicación de las modificaciones que se van haciendo al software y demásherramientas que se usaron para el desarrollo del proyecto.

Al final de cada etapa se da un resumen de los cambios, modificacionese implementaciones hechas en la misma.

8.4.1. Primer etapa de experimentación

El avance en el desarrollo del proyecto se dio por pequeños objetivosque eran requerimiento para el siguiente. El primer objetivo que se quizocumplir fue identificar el pez en la grabación. Para poder lograr este objetivofue necesario contar con el video para poder sacar el dataset, sin embargo,obtener el video no fue tarea fácil ya que los peces requieren condicionesespeciales para poder asegurar un entorno de estudio. Afortunadamente,y gracias al profesor Juan Manuel Calderón Chavez, se lograron obtenervarios videos ya que contaba con la colaboración del Dr. Sidney Bolden Jr.del laboratorio del Departamento Ciencias Ambientales de la UniversidadBethune Cookman de Daytona Beach. Una muestra de los primeros videoscon los que se trabajó se muestra en la Figura 8.2.

El montaje del video se evidencia en la Figura 3.1. En este montaje sepuede tener una vista del plano X-Y y del plano Y-Z en una sola toma.Este efecto se logra al ubicar un espejo con un ángulo de 45° respecto aleje X-Y de la pecera. La importancia de poder visualizar los planos X-Y yY-Z al mismo tiempo es que permite una mejor visualización de los pecesen caso de cruce u oclusión, y permite emparejar datos para una futurareconstrucción del trayecto en 3D.

La distancia entre la cámara y la pecera es muy importante puesto quesi se deja muy lejos o muy cerca genera problemas de perspectiva. Para latoma del video se manejó una distancia de cinco metros aproximadamente.Para la primera etapa se tomaron 9 videos de aproximadamente 5 minutos

39

Page 53: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

cada uno, como el que se ve en la Figura 8.2.

En esta primera etapa se trata de enseñar a la red a identificar un pez,para lo cual se construyó el primer dataset de imágenes. El primer paso fuedesarrollar un programa en Python que permitiera obtener los fotogramasdel video. Este fue la primer dificultad que se identificó, ya que el videocon el que se trabajó tiene una velocidad de 50 fps y una duración de1:04 minutos, lo que se traduce en 3700 fotogramas en total. Esto es unacifra bastante grande con la cual desarrollar el primer testeo del programa.Por esta razón se le agregó la primer característica al programa para quepermitiera configurar a los cuántos fotogramas iba a obtener una muestra.

Para obtener el primer dataset se configuró el programa para queobtuviera una muestra cada 10 fotogramas, es decir, se tomaba cincomuestras por segundo, lo que equivale a 370 muestras. En este punto seafrontaron nuevas dificultades, siendo la primera que las imágenes eranmuy grandes ya que la resolución del video es de 1280 x 720 píxeles. Lasegunda dificultad fue que no se necesitaba todo el contenido delfotograma. Para solucionar estas dificultades se le agregaron nuevascaracterísticas al programa, al final, el programa permite seleccionar lasregiones de interés como se ve en la Figura 8.12 y entrega como resultadoimágenes como la que se ve en la Figura 8.13 las cuales son del mismotamaño.

Figura 8.12: Rectángulos que indican qué área se ha seleccionado. FuenteAutor.

40

Page 54: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 8.13: Imagen entregada por el programa después de lasmodificaciones. Los rectángulos verdes se adicionaron a modo de ilustración,por lo que no hacen parte de la imagen. Fuente Autor.

En resumen, la primer parte del dataset se compone de 370 imágenescon un tamaño de 692 x 346 píxeles. Sin embargo, el dataset aun no estalisto. El siguiente paso es recortar la sección que contiene al pez tanto enla parte superior como en la parte frontal. Este proceso generará un totalde 734 imágenes, de las cuales la mitad son del pez visto de frente y la otramitad son del pez visto desde arriba, tal como se ve en la Figura 8.14.

(a) (b)

Figura 8.14: Al lado izquierdo está una muestra del pez visto desde arriba,y al lado derecho está el pez visto de frente. Fuente Autor.

Por ultimo, hace falta agregarle el archivo de texto (.txt) en donde seindica el tipo de objeto que se va a identificar. Como en este caso el pezabarca toda la imagen, todos los archivos de texto quedan como se indicaen la Figura 8.15.

41

Page 55: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 8.15: Archivo de texto que describe la ubicación del pez en laimagen. (Fuente Autor).

En este punto se finalizó la construcción del primer dataset, el cualconsta de 734 imágenes y 734 archivos de texto, con cada archivo de textonombrado igual que la imagen al que corresponde. Ahora se procede arealizar el entrenamiento de la red convolucional Yolo usando Google Colab.

Al realizar una prueba de los pesos obtenidos gracias al primerentrenamiento, se obtuvieron resultados no tan buenos pero sumamenteprometedores. En la Figura 8.16 se pueden visualizar tres de las mejoresidentificaciones obtenidas en esta primera etapa. A pesar de no serperfectas, se puede evidenciar que sí se está identificando al pez enalgunos instantes, sin embargo, la mayor parte del vídeo se tienenidentificaciones erróneas como se ve en la Figura 8.16c.

De este primer experimento se plantearon las siguientes mejoras: laprimera es que la calidad del video no es la adecuada, no tanto por suresolución, sino por la interferencia que se presenta en este. Estainterferencia no es tan clara al ver los fotogramas uno por uno, sinembargo, al reproducir el video por completo se nota dicha interferencia.

La siguiente mejora propuesta es aumentar la cantidad de imágenesque componen el dataset puesto que 734 imágenes no ofrecen lossuficientes eventos para que la red tenga en cuenta al momento de serentrenada. De esta propuesta se desprende el reducir la “Distancia” entreimágenes. Actualmente las imágenes del dataset tienen una diferencia de10 fotogramas a una velocidad de 50 fps, lo que se traduce en unadiferencia de 0,2 segundos entre cada imagen que compone el dataset.

42

Page 56: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

(a) (b) (c)

Figura 8.16: Identificaciones hechas gracias al primer entrenamiento.Fuente Autor.

Aunque no lo parezca, este tiempo es lo suficientemente largo como paraque la posición del pez cambie considerablemente. En la Figura 8.17 sepuede ver cómo cambia la posición de un pez en 0,2 segundos.

(a) (b)

Figura 8.17: Diferencia de posición y movimiento de un pez en un lapsode 0,2 segundos. Fuente Autor.

La siguiente mejora que se propone es cambiar la forma como se tomanlas imágenes en el dataset, es decir, el primer dataset está compuesto porimágenes como las mostradas en la Figura 8.14. El hecho que se presentaes que en estas imágenes no se están mostrando datos que el sistema debeaprender a descartar en su identificación. Esta idea parte del hecho de queen ocasiones los peces van a estar rodeados de agua, en ocasiones van aestar cerca al vidrio de la pecera o al borde del agua en donde se genera unreflejo, tal como como evidencia en la Figura 8.18.

43

Page 57: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

(a) (b) (c)

Figura 8.18: Los reflejos mostrados en (A) y (B) se presentan en la vistasuperior y el reflejo mostrado en (C) se presenta en la vista frontal. FuenteAutor.

La última mejora que se propone es ubicar de una forma diferente lapecera. Como se puede ver en la Figura 8.19, se presenta pérdida de visióndel pez en determinados instantes. En la Figura 8.19a se presenta pérdidade la visión en el plano frontal, y en la Figura 8.19b se presenta pérdida dela visión en el plano superior. Adicional a esto, en el costado izquierdo de lapecera se puede ver parte de la estructura, lo que dificulta el entrenamientopuesto que genera una perspectiva de inclinación.

(a) (b)

Figura 8.19: Pérdida de visibilidad del pez. Fuente Autor.

El comportamiento del programa y las características del dataset semuestran en la Figura 8.20.

44

Page 58: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 8.20: Comportamiento del programa. Fuente Autor.

45

Page 59: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

8.4.2. Segunda etapa de experimentación

El primer paso para poder mejorar los resultados obtenidos en elentrenamiento de las redes convolucionales en Yolo fue volver a tomar losvideos. Esta vez se mejoró la ubicación, iluminación y esquema delmontaje. Estas modificaciones se lograron gracias al profesor Juan ManuelCalderón Chavez, ya que tenía a su disposición la pecera y los mediosnecesarios. Estos videos se grabaron en la Universidad Bethune Cookman,Estados Unidos.

Una dificultad que se presentó fue que los peces se quedaban quietoscuando se acercada una persona a su campo visual. Esto es un problemaporque la idea de los videos es captar la mayor cantidad de movimientosposibles, por lo que se tuvo que tener especial consideración en cuanto altránsito de personal durante la grabación de los videos.

(a) (b)

(c) (d) (e)

Figura 8.21: Escenarios planteados en la segunda toma de vídeos. FuenteAutor.

En esta nueva etapa se grabaron 9 videos en los que se trató de enfocardiferentes escenarios. En la Figura 8.21a se hace un enfoque al lado izquierdode la pecera, en la Figura 8.21b se enfoca el lado derecho, en la Figura 8.21c

46

Page 60: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

se enfoca la totalidad de la pecera teniendo en cuenta el fondo, en la Figura8.21d se hace un plano de toda la pecera adicionando una luz extra, yfinalmente en la Figura 8.21e se hace un enfoque a la pecera tratando dereducir el impacto del fondo del escenario.

En estos vídeos se nota una clara mejoría en cuanto a la iluminación ypercepción de los peces, pues ya no se observa la interferencia presente enlos videos anteriores. Además, la ubicación de la cámara en los diferentesescenarios respecto a la pecera ayuda a reducir, de manera significativa, ladistorsión presente en videos anteriores, y ayuda a disminuir los momentosen los que se pierde de vista al pez. Estos videos se grabaron a 30 fps conuna resolución de 1920 x 1080 píxeles.

Figura 8.22: Funcionamiento del segundo programa. Fuente Autor.

El segundo paso fue la construcción de un nuevo dataset. En este seaplicó la estrategia de ampliar las regiones que contienen las imágenes yevitar que sólo aparezca el pez. Para obtener este dataset se volvió a usarel programa que se creó, pero en este caso se le hicieron un par deadiciones. La primera fue permitir que el área o áreas que se seleccionaran

47

Page 61: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

no estuvieran ceñidas al rectángulo generado al arrastrar el ratón, el cualmantenía su paralelismo respecto a las márgenes del video original. Eneste caso se permite al usuario seleccionar con un click cada uno de loscuatro vértices de la figura que describiría el área a seleccionar, tal comose muestra en la Figura 8.22.

El sistema entrega dos imágenes por cada fotograma como se ve en lafigura 8.23.

(a) (b)

Figura 8.23: Imágenes entregadas por el programa en su segunda versión.Estas imágenes ya tienen una corrección de perspectiva y son del mismotamaño (en este caso de 222 x 222 píxeles). Fuente Autor.

El siguiente paso es construir los archivos de texto en los que se indica laposición del pez. Para realizar este proceso se diseñó un segundo programael cual recibe como parámetro la dirección o path de la carpeta que contienelas imágenes que se obtuvieron en el proceso anterior. El funcionamientodel programa es relativamente sencillo: el programa muestra cada una delas imágenes que contiene la carpeta y permite dibujar recuadros como losque se ven en la Figura 8.12. En este proceso se sabe que sólo hay un pezpor imagen, por lo que se genera una línea en el archivo de texto por cadaimagen, la cual indica la posición del pez.

En este punto se ha concluido la construcción del segundo dataset. Estese compone de 1200 imágenes, de las cuales la mitad son del pez visto defrente y la otra mitad son del pez visto desde arriba, como se ve en la Figura8.23. El dataset también se compone de 1200 archivos de texto, los cualesdescriben la ubicación del pez en su respectiva imagen.

El siguiente paso es entrenar la red convolucional (Yolo). El proceso

48

Page 62: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

comenzó correctamente, sin embargo, conforme pasaba el tiempo se notóque el entrenamiento se estaba demorando mucho más de lo que se esperaba,ya que por las referencias consultadas en [11] y [61] se tenía una expectativade tiempo. Después de una revisión del proceso, se evidenció que en lainstalación del programa en Google Colab hacía falta la configuración paraque usara la tarjeta gráfica disponible. Para corregir este error se volvió ainstalar Yolo en Google Colab, siguiendo los pasos descritos en elApéndiceA.

Después de finalizar la instalación se dio inicio al entrenamiento denuevo, en donde la diferencia se hizo evidente de inmediato. En la FiguraB.1 que se encuentra en el Apéndice B se evidencia el error del modelocuando se esta entrando respecto al numero de veces que se entrena (estehecho se conoce como épocas). Como es de esperarse entre mas veces seentrene se mejora la precisión del sistema y se reduce el error.

Figura 8.24: Pesos guardados por el sistema en diferentes instantes delentrenamiento. Fuente Autor.

Una ventaja que tiene Yolo es que genera una copia o respaldo de lospesos que se van obteniendo en el entrenamiento cada cierto tiempo, talcomo se muestra en la Figura 8.24. Estos pesos de respaldo son interesantesya que permiten hacer muchas experimentaciones teniendo en cuenta los

49

Page 63: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

datos que se ven en la Figura B.1. Una ventaja adicional es que se puederetomar el entrenamiento teniendo en cuenta un respaldo de datos, por loque para este caso es necesario contar con los archivos de configuracióndescritos en el apartado 8.4.1, el dataset y los pesos.

El resultado del entrenamiento del segundo dataset no fue muyalentador, pues identifica objetos fuera de la pecera como se puede ver enla Figura 8.25.

Figura 8.25: Resultado del experimento. Fuente Autor.

En este punto se hizo un análisis de los resultados obtenidos. Lo primeroque se determinó es que la calidad del video ya no era una posible razónpara que la red no funcionara. Lo segundo fue que sí se estaba identificandoal pez, pero no en la medida que se esperaba.

A raíz de estos hallazgos se plantearon las siguientes mejoras: la primerafue aumentar aún más el número de imágenes que componen el dataset, yla segunda fue crear una región de interés en el video.

El comportamiento del programa y las características del dataset semuestran en la Figura 8.26.

50

Page 64: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 8.26: Comportamiento del programa hasta este punto del proyecto.Fuente Autor.

51

Page 65: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

8.4.3. Tercer etapa de experimentación

El primer paso en esta nueva etapa de experimentación fue construirun programa que recibiera como entrada el video original, y entrega unvideo en en el que sólo se ve la región de interés, en este caso, la pecera.La Figura 8.27 muestra un fotograma del video después de la edición hechapor el programa.

Figura 8.27: Fotograma del video después de ser editado para que muestrela región de interés. Fuente Autor.

El segundo paso en esta tercer etapa de experimentación fue generarmás imágenes para el dataset. Al final este se compone de 19.442 archivosde los cuales 9.721 son imágenes, de estas imagenes, la mitad muestran alpez desde una vista superior y la otra mitad muestran al pez en unaperspectiva frontal; conservando todas las mismas características descritasen la segunda etapa de experimentación. Los 9.721 archivos restantes sonarchivos de texto que indican la posición del pez en la imagen respectiva.Estos archivos de texto conservan el formato necesario para elentrenamiento en Yolo.

A pesar del cuidado con el que se desarrolló el dataset hasta estemomento, se consideró prudente crear un programa que leyera los archivos

52

Page 66: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

del dataset y representara el recuadro que se estaba indicando en elarchivo de texto sobre la imagen correspondiente. Este proceso se realizócon el fin de asegurar que el dataset estuviera en óptimas condiciones.

Después de revisar las 9.721 imágenes que componen el dataset con elprograma, se procedió a realizar un nuevo entrenamiento.

Figura 8.28: Reconocimiento de la red neuronal en la tercer etapa deexperimentación. Fuente Autor.

En la Figura 8.28 se muestra un fotograma en en el que se evidencia elreconocimiento hecho por la red hasta el momento. Este fotograma haceparte de un video de 19 segundos en el que se muestra la identificaciónque hace el sistema. Aunque no es una identificación total y perfecta, sepuede asegurar que ha aumentado la cantidad de tiempo y de veces que elsistema identifica a los peces correctamente.

Hasta el momento se ha mejorado enormemente el reconocimiento delpez, ya que se está mostrando una región de interés a una red neuronalque aprendió cómo es el pez visto desde el plano frontal y visto desde elplano superior. Sin embargo, puede que este sea un problema, ya que lared debe entender cuándo el pez está de frente y cuándo se está viendo

53

Page 67: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

desde arriba.

El éxito obtenido hasta el momento se debe a las diferentes pruebas ehipótesis que se han planteado. Pero, ¿que pasaría si se entrenan dos redes,una que aprenda cómo se ve el pez de frente y otra que aprenda cómo seve el pez desde arriba?. Con esta premisa en mente se procedió a entrenardos redes neuronales, de las cuales a una se le entrena para identificar alpez en el plano X-Y, y la otra red se entrena para que identifique al pez enel plano Y-Z. Este entrenamiento se hace con el mismo dataset, solo quese organiza en dos carpetas diferentes en las que se separan las imágenesdonde se ve el pez en el plano X-Y de las imágenes en donde se ve al pezen el plano Y-Z.

El resultado de este último entrenamiento se ve en la Figura 8.29 en laque por breves instantes se pueden identificar todos los peces.

Figura 8.29: Reconocimiento de las redes neuronales en la tercer etapa deexperimentación. Fuente Autor.

El comportamiento del programa y las características del dataset semuestran en la Figura 8.30.

54

Page 68: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 8.30: Comportamiento del programa hasta este punto del proyecto.Fuente Autor.

55

Page 69: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

8.4.4. Cuarta etapa de experimentación

El objetivo de esta cuarta etapa de experimentación es identificar lacabeza, el cuerpo y la cola del pez con el fin de obtener las coordenadasde estas partes para poder entrenar una red LSTM que pueda predecir laubicación del pez en caso de no ser identificado por la red convolucional.

Para poder lograr este cometido, lo primero que se debe hacer esvolver a generar un dataset. Este varía respecto a los anteriores en queahora se identificarán tres clases de objetos (cabeza, cuerpo y cola), en vezde una única clase (pez) que era el objetivo de la red entrenada en latercera etapa de experimentación. Afortunadamente las imágenes deldataset anterior sirven para este dataset, sin embargo, los archivos detexto no.

La idea de este dataset es que por cada imagen que lo compone, sedeben obtener tres líneas de datos que indiquen la ubicación de la cabeza,cuerpo y cola del pez respectivamente. Estas líneas deben seguir laestructura especificada en el apartado 8.3.1.

En la Figura 8.31 se evidencia el funcionamiento para la toma deldataset.

Existen momentos en que al pez no se le ve alguna de sus partes comoen la Figura 8.32. Para estos casos es posible seleccionar sólo las partesvisibles del pez, y el sistema generará las coordenadas de dichas partes.

En la Figura 8.33 se ve un ejemplo del archivo de texto (.txt) que indicala ubicación de la cabeza, cuerpo y cola del pez.

Este es el nuevo procedimiento para la toma del dataset. Para estaetapa se trabajó con un dataset que contiene 2509 imágenes con susrespectivos archivos de texto. Este se examinó con un sistema que graficalas coordenadas sobre cada una de las imágenes.

El siguiente paso en esta etapa de experimentación es modificar elarchivo de configuración (.cfg) de Yolo, que se mencionó en el apartado8.3.1, ya que ahora se van a identificar 3 objetos en vez de 1. Lasmodificaciones que se deben hacer son:

classes: Esta variable indica cuántas clases se van a identificar. En lasetapas de experimentación pasadas se tenía configurada con un valor

56

Page 70: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

(a) Sistema sin seleccionarninguna parte del pez.

(b) Sistema después deseleccionar la cabeza del pez.

(c) Sistema después deseleccionar la cabeza y cuerpo

del pez.

(d) Sistema después deseleccionar la cabeza, cuerpo

y cola del pez.

Figura 8.31: Funcionamiento del programa para la toma del dataset en lacuarta etapa de experimentación. Fuente Autor.

de 1, por lo que ahora debe modificarse a 3. Esta variable se modificaen cada capa [yolo].

filters: Esta variable indica el número de filtros que se utilizarán encada capa convolucional. Siguiendo la fórmula filters = (classes +

5) · 3, modificamos su valor de filters = 18 a filters = 24.

Por último, es necesario modificar el archivo traffic-sign.names paraagregar los nombres de los nuevos objetos a identificar. Este archivo sepuede ver en la Figura 8.34.

57

Page 71: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 8.32: Fotograma del video en el que, por perspectiva, no se ve lacabeza del pez. Fuente Autor.

Figura 8.33: Archivo de texto con las coordenadas de cada parte del pez.El “0” indica que es la cabeza, el “1” indica el cuerpo, y el “2” indica la cola.Fuente Autor.

Figura 8.34: Archivo que configura los nombres a mostrar en laidentificación de cada objeto. Fuente Autor.

Al terminar las modificaciones descritas anteriormente, se puedeasegurar que se cumplen todos los requisitos para comenzar el nuevoentrenamiento. Se aclara que para cada entrenamiento se subió una nuevacarpeta que contenía su respectivo dataset y se modificó el archivotrafic-sign.data, indicando las nuevas rutas de las carpetas que contienenlos dataset. En esta etapa se esta trabajando con el archivo deconfiguración yolov3-tiny.cfg.

58

Page 72: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Después de que terminara este proceso se procedió a hacer la pruebaen diferentes entornos, por lo que se editaron diferentes videos para hacermúltiples pruebas. Los resultados se muestran en la Figura 8.35.

(a) (b)

(c)

Figura 8.35: Identificación hecha por el sistema sobre dos videos diferentes.Fuente Autor

En todos los entornos usados que se ven en la Figura 8.35 se usaronlos mismos pesos y la misma configuración de la red convolucional. Comose puede evidenciar, se obtienen mejores resultados en 8.35c, ya que sólose les está mostrando el plano X-Y que es para lo que se entrenó a la red.Este es un dato muy importante a tener en cuenta para la construcción delprograma final.

El comportamiento del programa y las características del dataset semuestran en la Figura 8.36.

59

Page 73: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 8.36: Comportamiento del programa. Fuente Autor.

60

Page 74: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

8.4.5. Quinta etapa de experimentación

Como resultado de los entrenamientos realizados, se tiene un sistemacapaz de identificar al pez visto en el plano Y-Z, o visto de frente (Figura8.29), y un sistema capaz de identificar la cabeza, cuerpo y cola del pez en elplano X-Y, o plano superior (Figura 8.35). Dicho de otra forma, se tiene unsistema capaz de identificar las coordenadas X-Y-Z del pez, sin embargo, noes un sistema exacto ya que no realiza esta identificación en todo momento.Para poder superar este problema se usaron redes neuronales LSTM.

El planteamiento para el uso de las redes LSTM es sencillo: se esperaque la red aprenda cómo se mueve el pez para poder predecir su ubicaciónen un instante t, basándose en su ubicación en instantes anteriores. Es decir,entrenar una red que entregue las coordenadas X, Y y Z del pez teniendocomo entrada alguna información.

La información disponible para que la red aprenda cómo se mueve elpez es la ubicación de este en el plano X-Y y Y-Z. Por esta razón se planteóel siguiente conjunto de datos:

Coordenadas (Y, Z) de la ubicación del cuerpo pez en la vista frontalde la pecera, o el plano Y-Z.

Coordenadas (Y, X) de la ubicación de la cabeza del pez en la vistasuperior de la pecera.

Coordenadas (Y, X) de la ubicación del cuerpo del pez en la vistasuperior de la pecera.

Coordenadas (Y, X) de la ubicación de la cola del pez en la vistasuperior de la pecera.

En resumen, el dataset para el entrenamiento de la red LSTM estácompuesto por las coordenadas del pez ordenadas de la siguiente manera:[Hy, Hx, By, Bx, Ty, Tx, Fy, Fz], en donde H es el indicativo de la cabeza,B es el indicativo del cuerpo en la vista superior, T es el indicativo de lacola, y F es el indicativo del cuerpo en la vista frontal de la pecera, y lossubíndices indican la coordenada respectiva. Estas coordenadas indican losdatos que se ingresan a la red y de los cuales se espera obtener un resultado.

61

Page 75: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

También es necesario tener las coordenadas con las cuales el sistema va acomparar sus resultados y a los que aspira llegar. Estas son las coordenadasX, Y y Z del cuerpo del pez.

Una muy buena práctica al momento de realizar entrenamientos que sesugiere en [60], es la normalización de los datos. En este caso, como losdatos los obtenemos de una imagen que tiene a los píxeles como unidad demedida, y las coordenadas de las diferentes partes del cuerpo del pez enlos diferentes planos están en píxeles, la unidad del dataset será píxeles. Elproceso de normalización para este dataset es la división del dato obtenidorespecto al ancho o alto de la imagen, según sea el caso.

Por ejemplo, en la Figura 8.35c tenemos la ubicación de la cabeza,cuerpo y cola del pez. Esta imagen tiene una resolución de 200x200x3píxeles, en la que el primer número indica el ancho del fotograma, elsegundo indica el alto del fotograma y el tercero la profundidad de color(escala usada para indicar las capas de colores como la RGB). En estaidentificación se tiene que las coordenadas de la cabeza son 129x105píxeles, en donde el primer número indica el píxel en el eje del ancho (EjeY en la pecera), y el segundo número indica el píxel en el eje de la altura(Eje Z en la pecera). En este caso, la normalización de estas coordenadassería de la siguiente manera:

Cy = Py/W

Cz = Pz/H

En este, Cy y Cz indican las coordenadas normalizadas. Py y Pz

indican las coordenadas que se quieren normalizar, en este caso 129 y 105respectivamente, y finalmente W y H indican el ancho y el alto de laimagen respectivamente, en este caso 200 y 200. El resultado normalizadosería: Cy = 0, 645 y Cz = 0, 525. Los datos normalizados en este procesono pueden ser menores a cero, o mayores que uno, ya que los píxeles en lasimágenes son positivos.

El siguiente paso es organizar una secuencia de imágenes tomadas delmismo video para obtener las coordenadas de la cabeza, cuerpo y cola del

62

Page 76: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

pez en la vista superior de la pecera, y las coordenadas del cuerpo en lavista frontal de la pecera en el mismo instante. Para obtener estas imágenesse copió el programa con el que se obtuvo el dataset en la cuarta etapa deexperimentación, haciéndose algunas modificaciones.

La primer modificación que se realizó al programa fue que permitieraseleccionar dos regiones de interés para que se obtuviera un recorte de cadaregión, y guardara una imagen de cada una en carpetas separadas al mismoinstante por cada frame. Este proceso resultó en dos carpetas, las cualescada una contenía 2.960 imágenes. Una carpeta contiene las imágenes de lavista superior, como la Figura 8.23a, y la otra carpeta contiene imágenesde la vista frontal, como en la Figura 8.23b.

La segunda modificación que se hizo al programa fue que leyera lasimágenes de una carpeta y las mostrara de una en una. A las imágenes dela vista superior se les indica la ubicación de la cabeza, cuerpo y cola, ya las imágenes de la vista frontal se les indica la ubicación del cuerpo delpez. Como resultado se obtendrán 4 archivos de texto, los cuales cada unocontiene las coordenadas normalizadas de la ubicación de una de las partesdel pez.

El primer archivo head.txt contiene las coordenadas (y, x) de la cabezadel pez en cada una de las imágenes. Acá se aclara que la nomenclatura delas coordenadas se basa en el esquemático de la pecera que se puede veren la Figura 3.1. El segundo archivo body.txt contiene las coordenadas (y,x) del cuerpo del pez en la vista superior de la pecera en cada una de lasimágenes, el archivo tail.txt contiene las coordenadas (y, x) de la cola delpez en cada una de las imágenes, y por último el archivo front.txt contienelas coordenadas (y, z) del cuerpo del pez en la vista frontal de la pecera encada una de las imágenes.

Finalmente se debe obtener un archivo de texto que contenga lascoordenadas X, Y y Z del cuerpo del pez en cada instante del video. Eneste caso se obtiene el archivo out.txt que consta de 2.960 líneas, las cualescada una contiene las coordenadas X, Y y Z del cuerpo del pez.

En resumen, el dataset para el entrenamiento de la red LSTM secompone de cinco archivos de texto, donde los cuatro primeros contienenlas coordenadas normalizadas de una parte del pez, y el quinto contiene

63

Page 77: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

las coordenadas normalizadas del cuerpo del pez. Cada archivo almacenalas coordenadas de 2.960 imágenes.

El siguiente paso es construir el programa para el entrenamiento de lared LSTM, pues en este caso Yolo no es útil. Este proceso se basó en [65], elcual describe algunas de las diferentes arquitecturas que se pueden plantearpara el uso de una red LSTM, por lo que en este caso se usó la arquitecturapara una serie de entrada múltiple ó Multiple Input Series. Este programase realizó sobre Google Colab ya que también es necesario el uso de GPUpara acelerar el proceso.

El primer paso es definir la arquitectura de la red. Para este caso seplantearon dos capas ocultas donde cada una contiene una red LSTM yuna capa de salida de tres dimensiones, cada capa LSTM tiene la funciónde activación RELU. El segundo paso es definir qué tan larga es la secuenciade datos de entrada para que el sistema haga la predicción. Por ejemplo,para predecir la ubicación del cuerpo del pez en el instante t, el sistema sedebe basar en los datos de entrada de los instantes t − 1, t − 2, t − 3, ...,t− n. Para este caso se definió que se usará una longitud de 10 instantes.

El tercer paso es dividir el dataset en dos: el 90% del dataset se usó paraentrenamiento y el 10% se usó para probar el modelo después de entrenado.

El cuarto paso es organizar el dataset. Como ya se había mencionado,el dataset tiene dos tipos de datos: los datos de entrada y los datos desalida, en donde los datos de entrada son las coordenadas[Hy, Hx, By, Bx, Ty, Tx, Fy, Fz], y los datos de salida son las coordenadasX, Y y Z del cuerpo del pez. De cada coordenada se tienen 2.960muestras, en donde la muestra en la línea 1 es el instante 0 y la muestraen la línea 2.960 es el instante 2.959, ya que cada línea se obtuvo de unaserie de imágenes secuenciales que representan un video.

La organización consiste en dividir el dataset en grupos de datos paraque vayan acorde con la arquitectura establecida. En este caso, como sedefinió que se usará una longitud de 10 instantes, el dataset se dividirá engrupos de 10 instantes con una salida. Es decir, de la línea 1 a la línea 10,que representan los instantes 0 a 9, serán los datos de entrada para predecirla ubicación de salida en la linea 11, que es el instante 10.

Por ejemplo, imagine que cada línea en el dataset representa las

64

Page 78: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

coordenadas del pez con un intervalo de segundo. En este caso el datasetcontendría los datos de 2.960 segundos. Para poder predecir la ubicacióndel pez en el segundo 11, se necesita conocer las coordenadas de las partesdel pez en los segundos 1 al 10. En caso de querer predecir la ubicación enel segundo 100, se necesitará conocer las coordenadas de las partes del pezen los segundos 90 a 99 y así sucesivamente.

En este punto tenemos un dataset del que el sistema puede aprender elnado del pez en cuestión. Como los datos fueron tomados manualmente, nose espera que haya errores y el sistema siempre contará con las coordenadasde las partes del cuerpo del pez. Sin embargo, se espera que el sistema sea losuficientemente capaz de predecir la ubicación del pez a pesar de no contarcon todas las coordenadas.

Por ejemplo, se requiere que el sistema describa la ubicación del pez entodo momento„ Hasta el momento el video debe pasar por el procesamientoque se diseñó con Yolo para obtener las coordenadas del pez, sin embargo,el sistema no es perfecto y tiene fallos en los que no ubica al pez. En estosinstantes de fallo es en los que se deben procesar las coordenadas parapredecir la ubicación faltante. En este caso, para predecir este instante, seingresarían las coordenadas de los diez instantes anteriores a la red LSTM,pero puede que el sistema no ubique al pez en 2 o 3 o 4 instantes seguidos,por lo que no se contaría con la totalidad de los datos y la red LSTM podríafallar o predecir un valor erróneo.

Para evitar, o por lo menos para tener en cuenta la situación expuestaen el ejemplo anterior, es necesario introducir valores de fallo al dataset.Estos valores de fallo representarán la ausencia de coordenadas identificadaspor el procesamiento hecho por Yolo. Como los valores del dataset estánnormalizados, significa que se encuentran entre cero y uno. Para representarestos valores de fallo se introdujeron aleatoriamente valores de -1 en eldataset.

En este punto se tuvo cuidado, ya que los valores de fallo deben ir enpareja, es decir, si el sistema falló en identificar la cabeza del pez, no setendrán las coordenadas Hx y Hy en ese instante; si el sistema no identificoel cuerpo del pez en la vista superior, entonces faltaran las coordenadas Bx

y By en ese instante, y así sucesivamente.

65

Page 79: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Después de todos estos pasos, la edición del dataset está completa. Enresumen, se le hicieron las siguientes modificaciones:

Se dividió el dataset en dos: uno para entrenar el modelo (2.663muestras, 90%) y otro para hacer pruebas (297 muestras, 10%).

Se introdujeron aleatoriamente valores de fallo al dataset deentrenamiento. En este caso, se editó el 50% de este dataset (1.331muestras). Al 10% de las 1.331 muestras se le editaron lascoordenadas Hx y Hy, a otro 10% se le editaron las coordenadas Bx

y By, a otro 10% se le editaron las coordenadas Tx y Ty, a otro 10%se le editaron las coordenadas Fy y Fz, a otro 10% se le editaron las8 coordenadas, y al porcentaje restante se le editaron combinacionesde parejas de coordenadas para simular el fallo al identificar dos otres partes del pez al mismo tiempo. Estos porcentajes se eligieronde manera aleatoria.

Se organizó el dataset para que tuviera el tamaño acorde a laarquitectura de la red LSTM.

El siguiente paso es comenzar con el entrenamiento. Para iniciarlo, esnecesario definir cuántas neuronas hay por cada capa LSTM. En este puntose realizaron tres experimentos, se entrenaron tres modelos diferentes endonde el primero tendría 64 neuronas por cada capa, el segundo tendría128 y el último tendría 256 como se muestra en la Figura 8.37.

Al entrenar estos tres modelos se obtuvieron los resultados mostradosen la Figura 8.38. La línea de color naranja indica los datos de prueba y lalinea de color azul indica los datos de entrenamiento:

66

Page 80: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 8.37: Arquitectura de los tres modelos entrenados. Fuente Autor.

(a) Precisión para modelocon 64 neuronas.

(b) Pérdidas para modelocon 64 neuronas.

(c) Precisión para modelocon 128 neuronas.

(d) Pérdidas para modelocon 128 neuronas.

(e) Precisión para modelocon 256 neuronas.

(f) Pérdidas para modelocon 256 neuronas.

Figura 8.38: Resultados del entrenamiento. Fuente Autor.

67

Page 81: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Como se puede evidenciar en la Figura 8.38, la diferencia de laprecisión y del error en los tres modelos no es significativa, sin embargo, seguardaron los pesos de cada modelo para hacer las respectivas pruebas.Como la precisión de los tres modelos y el margen de error es bastantebueno, se procedió a hacer una prueba con un caso real.

Para realizar este ejercicio fue necesario crear un nuevo programa enel que se realizaría todo el proceso. El sistema carga automáticamente lospesos de las redes convolucionales Yolo y los pesos de los tres modelosLSTM. El siguiente paso es seleccionar el video sobre el cual se va a hacerla identificación. En este video se debe poder ver el plano X-Y y el planoY-Z al mismo tiempo, ya que se deben seleccionar cada una de las regionesde interés. La primer región debe ser la del plano X-Y y la segunda regióndebe ser la del plano Y-Z.

Figura 8.39: Ejemplos de datos en los que faltan coordenadas poridentificar. Fuente Autor.

El sistema automáticamente obtendrá las coordenadas que identifiqueen cada uno de los fotogramas del video, y los guardará de la misma formacomo se guardó el dataset. Después de esto, analizará todos los instantesy evaluará en dónde hacen falta una o varias parejas de coordenadas parapoder entrar a hacer la predicción basados en los modelos LSTM. En laFigura 8.39 se pueden ver varios ejemplos en los que no se obtiene una

68

Page 82: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

coordenada por parte de la identificación que se hace en la red convolucionalYolo.

En la Figura 8.39 sólo se ven tres coordenadas ya que se estánorganizando los datos (Py, Px, Pz) de tal forma que Py indica el promediode las coordenadas del eje Y obtenidas del cuerpo en la vista frontal y enla vista superior. Px indica la coordenada del eje X obtenida en laidentificación del cuerpo en la vista superior, y Pz indica la coordenadadel eje Z obtenida en la identificación del cuerpo en la vista frontal.

En estos casos el sistema estima o predice las coordenadas que hacenfalta, teniendo en cuenta el conjunto de datos de los diez instantesanteriores. En la Figura 8.37 se puede evidenciar un ejemplo de lapredicción hecha por los tres modelos LSTM entrenados anteriormente.

La Figura 8.40a muestra los instantes t − 1, t y t + 1 respectivamenteen un instante t del video. En esta figura se puede ver que en el instante tno se tiene una identificación en la coordenada Px. En este caso se realizóuna predicción teniendo en cuenta los diez instantes anteriores a t por cadamodelo entrenado, como se muestran en la Figura 8.40b. En esta, la primerfila indica la predicción hecha por el modelo de 64 neuronas por capa LSTM,la segunda fila indica la predicción hecha por el modelo de 128 neuronaspor capa LSTM y la tercera fila indica la predicción hecha por el modelode 256 neuronas por capa LSTM.

Según la Figura 8.40a, el valor de la coordenada faltante que se debeestimar debería estar entre 0, 18 y 0, 17 aproximadamente. Teniendo encuenta un análisis de comparación entre los resultados estimados por lostres modelos en diferentes casos, como el que se muestra en la Figura 8.40,se decidió trabajar con el modelo que tiene 64 neuronas por cada capaLSTM.

(a) (b)

Figura 8.40: Ejemplo de predicción hecha por los modelos entrenados.Fuente Autor.

69

Page 83: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Con estas configuraciones establecidas, se procedió a hacer la pruebacompleta sobre un video del cual no se extrajeron datos para formar eldataset. Los resultados se pueden ver en la Figura 8.41.

(a) (b)

(c) (d)

Figura 8.41: Identificaciones de rutas de navegación hechas por el sistema.Fuente Autor.

En este caso se escalaron los datos de 0 a 350 en los tres ejes parafacilitar la visualización ya que la identificación hecha por el sistema seentrega normalizada. Como convención se uso un punto de color rojo paraindicar el instante cero y un punto de color verde para indicar el punto finalde la serie de datos.

Para facilitar el entendimiento de la gráfica se dibujaron 100 instantes,desde el instante 0 hasta el instante 99.

Para tener una mejor visualización, se hizo una animación con unarchivo .gif, el cual se encuentra disponible con el autor del documento.

El comportamiento del programa y las características del dataset semuestran en la Figura 8.42.

70

Page 84: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 8.42: Comportamiento del programa. Fuente Autor.

71

Page 85: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

8.4.6. Sexta etapa de experimentación

En esta etapa de experimentación se pretende resolver la identificacióncuando se presentan dos peces en la pecera, como se puede ver en la Figura8.35c.

Para lograr este objetivo fue necesario tomar un nuevo dataset deentrenamiento para la red LSTM. Esta toma es necesaria puesto que en laetapa anterior no se presentaba ningún caso de cruce u oclusión en el nadode los peces.

Este nuevo dataset consta de 9280 imágenes de la vista superior (Figura8.43a) y 9280 imágenes de la vista frontal (Figura 8.43b) de las cuales seextraen las coordenadas de la cabeza, cuerpo y cola del pez (vista superior)y las coordenadas del cuerpo (vista frontal) de cada uno de los peces.

(a) (b)

Figura 8.43: Dataset LSTM para dos peces. Fuente Autor.

En la Figura 8.44a se evidencia las coordenadas de cada una de laspartes del pez de cada pez, las primeras 3 lineas indican la ubicación dela cabeza, cuerpo y cola respectivamente de un pez y las 3 ultimas lineasindican la ubicación de la cabeza, cuerpo y cola del segundo pez.

En la Figura 8.44b se evidencia las coordenadas del cuerpo de cada unode los peces en la vista frontal, en este caso, la primer linea indica el cuerpodel pez 1 y que corresponde al mismo pez 1 en las coordenadas de la Figura

72

Page 86: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

8.44b, es decir, se mantiene la correlación de que las primeras lineas indicanla ubicación de un mismo pez y las ultimas lineas indican la ubicación delsegundo pez.

(a)

(b)

Figura 8.44: Coordenadas LSTM para dos peces. Fuente Autor.

Se tuvo especial cuidado en mantener la correlación de los peces entreimágenes para poder mantener un orden en el dataset. En resumen, lasprimeras tres lineas de todo el dataset indican las coordenadas del mismopez en diferentes instantes. Las ultimas lineas indican las coordenadas delsegundo pez en diferentes instantes.

En este punto se cuentan con 9280 archivos de texto que contienen lascoordenadas de los peces.

Como se menciono anteriormente, las redes LSTM basan sufuncionamiento en realizar una predicción teniendo en cuenta datosanteriores, en este caso, predicen la posición del pez teniendo en cuenta laubicación del mismo en instantes anteriores. Hasta el momento se contabacon las coordenadas de un solo pez, en este caso, se cuentan con lascoordenadas de dos peces.

Para continuar con el desarrollo del proyecto se decidió que semantendrían las mismas dimensiones de la red LSTM que se muestran enla Figura 8.37, por lo que es necesario reordenar los datos para podercomenzar con el entrenamiento. Esta organización es sencilla, se.apilaran"las coordenadas en donde las primeras 9280 lineas serán lascoordenadas del primer pez y las ultimas 9280 lineas serán lascoordenadas del segundo pez, por lo que se terminara con un archivo de

73

Page 87: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

texto con 18560 lineas.

La red LSTM que se diseño se basa en aprender los 10 instantesanteriores para predecir el siguiente instante. Por esta consideración esnecesario modificar el programa para que no tenga en cuenta las lineas9267 al 9293 del dataset, esta consideración se hace para que no sesolapen los datos que indicarían el fin de las coordenadas del pez 1 (lineas9267-9280) y los datos que indican el inicio del pez 2 (lineas 9281- 9293) yevitar que la red aprenda datos que no tendrían sentido.

Otra modificación adicional que se le hace al sistema es que se le debeindicar la ubicación inicial de cada pez, puesto que con esta información elsistema sera capaz de ordenar las identificaciones hechas con Yolo en dosgrupos de datos para poder procesarlas con la red LSTM.

En resumen, Yolo entregara 16 coordenadas de identificación en donde8 coordenadas pertenecen al pez X y 8 coordenadas pertenecen al pez Y.Estas coordenadas se comparan con las coordenadas iniciales de los pecespara poder ordenarlas en dos arreglos de datos los cuales constan de 4parejas de coordenadas cada uno (cabeza, cuerpo, cola y cuerpo frontal).

Finalmente estos arreglos se procesan con la red LSTM para encontrarlas coordenadas que Yolo no pudo identificar y para ayudar a diferenciarcada pez después de una oclusión.

El comportamiento del programa y las características del dataset semuestran en la Figura 8.45.

74

Page 88: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura 8.45: Comportamiento del programa. Fuente Autor.

75

Page 89: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Capítulo 9

Conclusiones

Las redes convolucionales ofrecen una buena solución para laidentificación de objetos en una imagen. En este proyecto enparticular se vio como mejoraba la identificación de los pecesconforme se modificaban los dataset, por lo que el éxito en laidentificación depende tanto de la arquitectura usada como de eldataset de entrenamiento.

En las redes convolucionales existen muchos metadatos (datos deparametrización) que no se variaron en ninguno de los casos. Paraobtener mejores resultados es necesario hacer experimentos variandoestos parámetros.

Realizar el análisis de la ubicación del pez a una región de interésde toda la imagen resulto ser una practica adecuada ya que con esteprocedimiento se obtuvieron mejores resultados en la identificación.

El uso de una red independiente para identificar la ubicación del pezen la vista superior y en la vista frontal permitió obtener mejoresresultados. En este caso, cada red se especializaba en característicasindependientes que permitían un mejore reconocimiento.

La combinación de las redes neuronales independientes y la divisiónde los fotogramas en dos regiones de interés permitió la identificaciónen tres dimensiones del pez.

76

Page 90: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

El uso de las redes LSTM para predecir la ubicación de los peces enlos instantes en que no se identificaba el pez fue una muy buenaaproximación. Sin embargo, hizo falta hacer mas experimentos endonde se cambiaba el número de capas, el número de neuronas, lasfunciones de activación, entre otros metadatos, con el fin de obtenermejores resultados.

La precisión obtenida en la identificación del nado de un solo pez esbastante buena, por lo que se puede inferir que la integración de Yolocon las redes LSTM provee una buena solución para el seguimientodel nado de un pez.

Los dataset usados en este proceso, aunque fueron mejorando, noson lo suficientemente consistentes o extensos para proveer toda lainformación que se debería tener a la hora de realizar losentrenamientos.

77

Page 91: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Bibliografía

[1] G. Audira, B. P. Sampurna, S. Juniardi, S.-T. Liang, Y.-H. Lai, andC.-D. Hsiao, “A simple setup to perform 3d locomotion tracking inzebrafish by using a single camera,” Inventions, Jan 2018.

[2] S. Macrì, D. Neri, T. Ruberto, V. Mwaffo, S. Butail, and M. Porfiri,“Three-dimensional scoring of zebrafish behavior unveils biologicalphenomena hidden by two-dimensional analyses,” Scientific Reports,May 2017.

[3] A. L. Ribinstein, “Zebrafish: from disease modeling to drugdiscovery,” Drug Discovery & Development, pp. 218–223, Mar 2003,pMID:12669457.

[4] “SKRWT: herramienta para la corrección trapezoidal.”[Online]. Available: https://www.androidsis.com/skrwt-es-una-poderosa-herramienta-de-correccion-trapezoidal-para-tu-android/.

[5] “REDES NEURONALES.” [Online]. Available: https://sites.google.com/site/mayinteligenciartificial/unidad-4-redes-neuronales.

[6] “Intro a las redes neuronales convolucionales.”[Online]. Available: https://bootcampai.medium.com/redes-neuronales-convolucionales-5e0ce960caf8

[7] “Redes neuronales convolucionales.” [Online]. Available:https://developer.ibm.com/es/technologies/artificial-intelligence/articles/cc-convolutional-neural-network-vision-recognition/

78

Page 92: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

[8] I. GOODFELLOW, Y. ANDBENGIO, and A. ANDCOURVILLE,“Deep learning,” MIT press, pp. 326–366, 2016.[Online]. Available: https://www.aprendemachinelearning.com/como-funcionan-las-convolutional-neural-networks-vision-por-ordenador/

[9] A. M. Mañas, “Notas sobre pronóstico del flujo detráfico en la ciudadde madrid,” Escuela Técnica Superior de Ingeniería Informática, pp.48–52, 2019. [Online]. Available: https://bookdown.org/amanas/traficomadrid/tff-madrid.pdf

[10] C. Olah, “Understanding lstm networks,” Colah,2015. [Online]. Available: http://colah.github.io/posts/2015-08-Understanding-LSTMs/

[11] “Yolo webpage.” [Online]. Available: https://pjreddie.com/

[12] A. D. International, “Informe mundial sobre elalzheimer 2019.” [Online]. Available: https://www.alzint.org/u/WorldAlzheimerReport2019-Spanish-Summary.pdf

[13] M. C. Fishman, “Zebrafish–the canonical vertebrate,” Science, vol. 294,no. 5545, pp. 1290–1291, 2001.

[14] M. de Jong and T. Maina, “Of mice and humans: Are they thesame?—implications in cancer translational research,” Journal ofNuclear Medicine, vol. 51, no. 4, pp. 501–504, 2010.

[15] E. M. Caramillo and D. J. Echevarria, “Alzheimer’s disease in thezebrafish: where can we take it?” Behavioural pharmacology, 2017.

[16] H. Li, Y. Li, and F. Porikli, “Deeptrack: Learning discriminativefeature representations online for robust visual tracking,” IEEETransactions on Image Processing, vol. 25, no. 4, p. 1834–1848, Apr2016. [Online]. Available: http://dx.doi.org/10.1109/TIP.2015.2510583

[17] N. Wang and D.-Y. Yeung, “Learning a deep compact imagerepresentation for visual tracking,” in Advances in Neural InformationProcessing Systems, C. J. C. Burges, L. Bottou, M. Welling,

79

Page 93: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Z. Ghahramani, and K. Q. Weinberger, Eds., vol. 26. CurranAssociates, Inc., 2013. [Online]. Available: https://proceedings.neurips.cc/paper/2013/file/dc6a6489640ca02b0d42dabeb8e46bb7-Paper.pdf

[18] A. Graves, “Generating sequences with recurrent neural networks,”2014.

[19] A. F. Reyes, E. C. Camacho, M. Armando, and J. M. Calderón,“Lstm based brain-machine interface tool for text generation througheyes blinking detection,” in 2021 IEEE 18th Annual ConsumerCommunications & Networking Conference (CCNC). IEEE, 2021,pp. 1–6.

[20] Y. Zhang, M. Pezeshki, P. Brakel, S. Zhang, C. L. Y. Bengio,and A. Courville, “Towards end-to-end speech recognition with deepconvolutional neural networks,” 2017.

[21] F. Altché and A. de La Fortelle, “An lstm network for highwaytrajectory prediction,” in 2017 IEEE 20th International Conferenceon Intelligent Transportation Systems (ITSC), 2017, pp. 353–359.

[22] A. Alahi, K. Goel, V. Ramanathan, A. Robicquet, L. Fei-Fei,and S. Savarese, “Social lstm: Human trajectory prediction incrowded spaces,” in Proceedings of the IEEE Conference on ComputerVision and Pattern Recognition (CVPR), June 2016. [Online].Available: https://openaccess.thecvf.com/content_cvpr_2016/html/Alahi_Social_LSTM_Human_CVPR_2016_paper.html

[23] Z. XU and X. E. Cheng, “Zebrafish tracking using convolutional neuralnetworks,” Scientific Reports, vol. 7, 2017.

[24] P. R. Martineau and P. Mourrain, “Tracking zebrafish larvae in group– status and perspectives,” Methods, vol. 62, no. 3, pp. 292–303, 2013,zebrafish Methods.

[25] C. Quintero, S. Rodríguez, K. Pérez, J. López, E. Rojas, andJ. Calderón, “Learning soccer drills for the small size league ofrobocup,” in Robot Soccer World Cup. Springer, 2014, pp. 395–406.

80

Page 94: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

[26] S. Rodríguez, E. Rojas, K. Pérez, J. López, C. Quintero, andJ. Calderón, “Fast path planning algorithm for the robocup small sizeleague,” in Robot Soccer World Cup. Springer, 2014, pp. 407–418.

[27] G. A. Cardona, W. Moreno, A. Weitzenfeld, and J. M. Calderon,“Reduction of impact force in falling robots using variable stiffness,” inSoutheastCon 2016. IEEE, 2016, pp. 1–6.

[28] E. Elibol, J. Calderon, M. Llofriu, C. Quintero, W. Moreno, andA. Weitzenfeld, “Power usage reduction of humanoid standing processusing q-learning,” in Robot Soccer World Cup. Springer, 2015, pp.251–263.

[29] E. Elibol, J. Calderon, M. Llofriu, W. Moreno, and A. Weitzenfeld,“Analyzing and reducing energy usage in a humanoid robot duringstanding up and sitting down tasks,” International Journal ofHumanoid Robotics, vol. 13, no. 04, p. 1650014, 2016.

[30] J. Calderon, G. A. Cardona, M. Llofriu, M. Shamsi, F. Williams,W. Moreno, and A. Weitzenfeld, “Impact force reduction using variablestiffness with an optimal approach for falling robots,” in Robot WorldCup. Springer, 2016, pp. 404–415.

[31] J. M. Calderon, E. R. Rojas, S. Rodriguez, H. R. Baez, and J. A. Lopez,“A robot soccer team as a strategy to develop educational iniciatives,”in Latin American and Caribbean Conference for Engineering andTechnology, Panama City, Panama, 2012.

[32] J. G. G. Marin, G. C. O. Díaz, A. F. T. Rodríguez, and É. C. C. Poveda,“Entorno pedagógico para la enseñanza en básica primaria mediante eluso de sistema robótico comercial,” Ingeniería, vol. 26, no. 1, 2021.

[33] H. Báez, K. Perez, E. Rojas, S. Rodriguez, J. López, C. Quintero,and J. M. Calderón, “Application of an educational strategy based ona soccer robotic platform,” in 2013 16th International Conference onAdvanced Robotics (ICAR). IEEE, 2013, pp. 1–6.

81

Page 95: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

[34] C. Higuera, F. Lozano, E. C. Camacho, and C. H. Higuera, “Multiagentreinforcement learning applied to traffic light signal control,” inInternational Conference on Practical Applications of Agents andMulti-Agent Systems. Springer, 2019, pp. 115–126.

[35] G. A. Cardona and J. M. Calderon, “Robot swarm navigation andvictim detection using rendezvous consensus in search and rescueoperations,” Applied Sciences, vol. 9, no. 8, p. 1702, 2019.

[36] G. A. Cardona, J. Ramirez-Rugeles, E. Mojica-Nava, and J. M.Calderon, “Visual victim detection and quadrotor-swarm coordinationcontrol in search and rescue environment.” International Journal ofElectrical & Computer Engineering (2088-8708), vol. 11, no. 3, 2021.

[37] J. León, G. A. Cardona, A. Botello, and J. M. Calderón, “Robot swarmstheory applicable to seek and rescue operation,” in InternationalConference on Intelligent Systems Design and Applications. Springer,2016, pp. 1061–1070.

[38] W. O. Quesada, J. I. Rodriguez, J. C. Murillo, G. A. Cardona,D. Yanguas-Rojas, L. G. Jaimes, and J. M. Calderón, “Leader-followerformation for uav robot swarm based on fuzzy logic theory,” inInternational Conference on Artificial Intelligence and Soft Computing.Springer, 2018, pp. 740–751.

[39] J. Calderon, A. Obando, and D. Jaimes, “Road detection algorithmfor an autonomous ugv based on monocular vision,” in Electronics,Robotics and Automotive Mechanics Conference (CERMA 2007).IEEE, 2007, pp. 253–259.

[40] G. Cardona, C. Bravo, W. Quesada, D. Ruiz, M. Obeng, X. Wu,and J. Calderon, “Autonomous navigation for exploration ofunknown environments and collision avoidance in mobile robots usingreinforcement learning,” in 2019 SoutheastCon. IEEE, 2019, pp. 1–7.

[41] S. Amaya and A. Mateus, “Tasks allocation for rescue robotics:a replicator dynamics approach,” in International Conference on

82

Page 96: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Artificial Intelligence and Soft Computing. Springer, 2019, pp. 609–621.

[42] Y. Suarez, C. Higuera, and E. C. Camacho, “Inverse reinforcementlearning application for discrete and continuous environments,”in International Conference on Advanced Engineering Theory andApplications. Springer, 2019, pp. 345–355.

[43] M. Newman, E. Ebrahimie, and M. Lardelli, “Using the zebrafish modelfor alzheimer’s disease research,” Frontiers in Genetics, vol. 5, p. 189,2014.

[44] L. Bleiler and T. William, “2012 alzheimer’s disease facts and figures,”Alzheimer’s & Dementia, vol. 8, no. 2, pp. 131–168, 2012.

[45] “ALZHEIMER UN PROBLEMA DE SALUDPÚBLICA EN COLOMBIA.” [Online]. Available:https://www.icesi.edu.co/unicesi/todas-las-noticias/2241-alzheimer-un-problema-de-salud-publica-en-colombia.

[46] A. Daisy and W. Marc, “The Global Economic Impact ofDementia,” Alzheimer’s Association, Jun 2010. [Online]. Available:https://www.alzint.org/resource/world-alzheimer-report-2010/

[47] J. McCarthy, C. Twomey, and P. Wujek, “Presenilin-dependentregulated intramembrane proteolysis and γ-secretase activity,” Cellularand Molecular Life Sciences, vol. 66, pp. 1534–1555, 2009.

[48] K. Blennow, M. J. de Leon, and H. Zettenberg, “Alzheimer’s disease,”The Lancet, vol. 368, pp. 387–403, Jul 2006.

[49] U. Leimer, K. Lun, H. Romig, J. Walter, J. Grünberg, M. Brand, andC. Haass, “Zebrafish (danio rerio) presenilin promotes aberrant amyloidβ-peptide production and requires a critical aspartate residue for itsfunction in amyloidogenesis,” Biochemistry, vol. 38, no. 41, pp. 13 602–13 609, 1999, pMID: 10521267.

[50] C. Groth, S. Nornes, R. McCarty, R. Tamme, and M. Lardelli,“Identification of a second presenilin gene in zebrafish with similarity

83

Page 97: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

to the human alzheimer’s disease gene presenilin2,” Dev. Genes Evol,pp. 486–490, Nov 2002.

[51] W. Y. Hwang, Y. Fu, D. Reyon, M. L. Maeder, S. Q. Tsai, J. D. Sander,R. T. Peterson, J.-R. J. Yeh, and J. K. Joung, “Efficient genome editingin zebrafish using a crispr-cas system,” nature biotechnology, vol. 31,pp. 227—-229, Jan 2013.

[52] “Frame rate.” [Online]. Available: https://developer.mozilla.org/es/docs/Glossary/FPS

[53] “Pixel.” [Online]. Available: http://aulainformatica.eu/datos/dise~no_grafico/gimp/capitulo2/Teoria2.pdf

[54] Medlineplus, “Conducción nerviosa.” [Online]. Available: https://medlineplus.gov/spanish/ency/anatomyvideos/000089.htm

[55] D. J. Matich, “Redes neuronales: Conceptosbásicos y aplicaciones,” 2001, universidad TecnológicaNacional – Facultad Regional Rosario. [Online].Available: https://www.frro.utn.edu.ar/repositorio/catedras/quimica/5_anio/orientadora1/monograias/matich-redesneuronales.pdf

[56] E. C. A. Tepán, “Estudio de los principales tipos de redesneuronales y las herramientas para su aplicaciÓn,” UNIVERSIDADPOLITÉCNICA SALESIANA SEDE CUENCA, 2013. [Online].Available: https://dspace.ups.edu.ec/bitstream/123456789/4098/1/UPS-CT002584.pdf

[57] E. G. Sánchez, “Introducción a las redes neuronales de convolución.aplicación a la visión por ordenador,” Universidad de Zaragoza, 2019.[Online]. Available: https://core.ac.uk/download/pdf/290002463.pdf

[58] “Convolutional visualization.” [Online]. Available: https://www.cs.ryerson.ca/~aharley/vis/conv/flat.html

[59] I. S. LLABRÉS, “Research on a fully automated consultingprotocol with the help of machine learning techniquesg,”

84

Page 98: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

UNIVERSIDAD POLITÉCNICA DE MADRID, pp. 11–16, 2019.[Online]. Available: http://oa.upm.es/55375/1/TFG_IGNACIO_SERRANO_LLABRES.pdf

[60] S. Hochreiter and J. Schmidhuber, “Long short-term memory,” Neuralcomputation, vol. 9, pp. 1735–80, 12 1997.

[61] “Repositorio yolo.” [Online]. Available: https://github.com/AlexeyAB/darknet

[62] “Nvidia page.” [Online]. Available: https://www.nvidia.com/es-la/deep-learning-ai/solutions/

[63] “Google colab.” [Online]. Available: https://colab.research.google.com/notebooks/intro.ipynb

[64] “Breve historia de las redes neuronales.”[Online]. Available: https://www.aprendemachinelearning.com/breve-historia-de-las-redes-neuronales-artificiales/

[65] “How to develop lstm models for time seriesforecasting.” [Online]. Available: https://machinelearningmastery.com/how-to-develop-lstm-models-for-time-series-forecasting/

85

Page 99: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Apéndice A

Instalación de Yolo en GoogleColab

La instalación de Yolo en Google Colab es relativamente sencilla. Elprimer paso es ingresar a la página de Google Colab y crear un nuevocuaderno. Para este caso en particular se inició sesión con una cuenta deGmail, la cual tiene todos los archivos del proyecto guardados en el GoogleDrive asociado a la cuenta Gmail.

El siguiente paso es configurar el cuaderno. En la opción de Editary seleccionar Configuración del cuaderno, se selecciona GPU como semuestra en la Figura A.1. Esto le indica al sistema que necesita el uso detarjetas gráficas.

Para poder acceder a los archivos guardados en Google Drive, esnecesario crear una referencia del sistema desde Google Colab. Para eso seescriben y ejecutan las dos primeras lineas de la Figura A.2. Con estoscomandos se está creando una carpeta llamada “my”, la cual hace unareferencia al contenido del Google Drive asociado a la cuenta de Gmail. Elsistema solicitará un código de autenticación.

En la tercera línea de código, el sistema se está ubicando en unacarpeta llamada “carpeta_proyecto”, la cual va a contener los archivos deinstalación. La cuarta linea crea un clon o copia de los archivos que seencuentran en [61] y son de acceso público.

La quinta línea ubica al sistema en una carpeta que se creó al copiar los

86

Page 100: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura A.1: Configuración del cuaderno. Fuente Autor.

archivos de instalación. En la sexta línea se están configurando parámetrosde instalación para que Yolo utilice la tarjeta gráfica que Google Colab tienedisponible para el uso.

La última línea de código indica el inicio de la instalación. Si todo elproceso se hace como se describe en los pasos anteriores, Yolo quedará listopara ser usado en Google Colab usando la tarjeta gráfica.

87

Page 101: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura A.2: Código de instalación. Fuente Autor.

88

Page 102: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Apéndice B

Tabla de datos

NOTA: Cada vez que se finaliza un entrenamiento, el sistema genera unreporte como el que se ve en la Figura B.1. En este informe se puede ver elnúmero de épocas (numero de veces que la red ha visto los datos del dataseten el entrenamiento) transcurrido, el último error y otros datos relevantes.Sin embargo, se evitará mostrarlo en los siguientes reportes debido a sutamaño, pero se relacionarán los datos que se generen en cada entrenamientorespectivo.

89

Page 103: DESARROLLO DE UN SISTEMA DE SEGUIMIENTO DE LA NAVEGACIÓN …

Figura B.1: Tabla generada al finalizar el entrenamiento. En ella se puedever el error que se presenta al momento de entrenar la red contra el pasodel tiempo. Fuente Autor.

90