Sie sind auf Seite 1von 99

Sistema de exploración en

ambientes forestales basado en


aprendizaje profundo
por
Ing. Dania Andrea Largo Jaimes
Tesis sometida como requisito parcial para
obtener el grado de
MAESTRO EN CIENCIAS EN LA
ESPECIALIDAD DE ELECTRÓNICA
en el
Instituto Nacional de Astrofı́sica, Óptica y
Electrónica
Agosto 2017
Tonantzintla, Puebla
Supervisada por:
Dr. Israel Cruz Vega
Docente Catedrático CONACYT-INAOE
Dr. José Martinez Carranza
Investigador Titular INAOE

c
INAOE 2017
El autor otorga al INAOE el permiso de
reproducir y distribuir copias en su totalidad o en
partes de esta tesis
Sistema de exploración en ambientes forestales
basado en aprendizaje profundo

Tesis de Maestrı́a

Por:

Ing. Dania Andrea Largo Jaimes

Asesores:
Dr. Israel Cruz Vega
Dr. José Martı́nez Carranza

Instituto Nacional de Astrofı́sica Óptica y Electrónica


Coordinación de Electrónica

Tonantzintla, Puebla. Agosto 2017


½A mi familia por su apoyo y amor constante!
Agradecimientos

Gracias a mis padres y hermanos por su amor y apoyo incondicional durante toda
mi vida.
Gracias a mi esposo Jose Julian y a mi hija Antonia por ser mi soporte y mi
inspiración, el esfuerzo es de los tres.
Gracias al pueblo de México que, mediante el CONACyT y el INAOE, me apoyó
para realizar los estudios de maestrı́a.
Gracias a mis asesores, el Dr. José y el Dr. Israel, por darme la oportunidad de
trabajar con ellos y por orientar este trabajo.
Gracias a mis sinodales, Dra. Pilar, Dr. Juan Manuel y Dr. Jorge, por evaluar mi
trabajo de tesis.
Gracias a mis nuevos amigos porque su cariño, su compañı́a y afecto fueron muy
importantes para nosotros.

[i]
Resumen

Entre los retos actuales relacionados con los vehı́culos aéreos no tripulados (VANT)
está la navegación autónoma en entornos sin acceso a GPS. Los bosques son un ejem-
plo de escenario en el que el acceso a un sistema de localización convencional no es
posible. Por otro lado, el rendimiento de los métodos clásicos de localización basa-
dos en la visión decae debido a la repetibilidad y ambigüedad del entorno. Motivado
por lo anterior, con este trabajo se diseña una versión inicial de un sistema de vue-
lo autónomo basado en visión. El procesamiento visual se realizó a través de una
red neuronal convolucional profunda, la cual funciona como clasificador de la escena
vista desde del vehı́culo aéreo no tripulado y la cual a través de la abstracción de
caracterı́sticas complejas mapea a la salida los comandos de control del VANT. El
sistema fue probado en tiempo real, donde el vehı́culo aéreo no tripulado navega de
forma autónoma a través de diferentes escenarios forestales y se consideró exitoso
cuando viaja sin colisionar con ningún árbol. Los resultados muestran la efectividad
del sistema ya que en el 97.36 % de los casos el vuelo tuvo éxito.

[iii]
iv Resumen

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


Abstract

Among the current challenges related to unmanned aerial vehicles is that of auto-
nomous navigation in GPS-denied environments. Forest is an example of a scenario
in which access to a conventional localisation system is not an option. On the other
hand, the performance of classic methods of location based on vision decays due to
the repeatability and ambiguity of the environment. Motivated by the above, in this
paper we propose an initial version of an autonomous flight system based on vision.
To deal with the problem of the extraction of the characteristics in ambiguous en-
vironments, a convolutional neural network was designed. The latter is capable of
generating the navigation commands of the drone from the visual information obtai-
ned with an on-board frontal monocular camera. The system was tested in real time,
where the drone navigates autonomously through different forest scenarios and it was
considered successful when it travels without colliding with a tree. The results show
the effectiveness of the system and that in the 97.36 % of the cases the flight was
successful.

[v]
vi Abstract

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


Tabla de Contenido

Agradecimientos I

Resumen III

Abstract V

Índice de Figuras XI

Índice de Tablas XV

1. Introducción 1
1.1. Descripción del problema . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.1. Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.2. Objetivos especı́ficos . . . . . . . . . . . . . . . . . . . . . . . 3
1.4. Organización del trabajo . . . . . . . . . . . . . . . . . . . . . . . . . 4

2. Estado del arte 7


2.1. Vuelo autónomo de VANT en ambientes sin acceso a GPS . . . . . . 7
2.2. Aplicación de redes neuronales convolucionales al vuelo autónomo de
VANT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3. Vehı́culos aéreos no tripulados (VANT) 11


3.1. Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2. Clasificación de los VANT . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3. Aplicaciones de los VANT . . . . . . . . . . . . . . . . . . . . . . . . 13

[vii]
viii TABLA DE CONTENIDO

3.4. Control de los VANT . . . . . . . . . . . . . . . . . . . . . . . . . . . 13


3.5. VANT Quadrotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4. Aprendizaje profundo en redes neuronales convolucionales 15


4.1. Redes neuronales convolucionales . . . . . . . . . . . . . . . . . . . . 15
4.1.1. Capa de Convolución . . . . . . . . . . . . . . . . . . . . . . . 16
4.1.2. Capa de Pooling . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1.3. Capa completamente conectada . . . . . . . . . . . . . . . . . 17
4.1.4. Entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2. Transferencia del aprendizaje . . . . . . . . . . . . . . . . . . . . . . 18
4.2.1. AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

5. Sistema operativo de robots (ROS) 21


5.1. Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.2. Conceptos básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.3. Bebop autonomy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

6. Sistema de exploración en ambientes forestales basado en aprendi-


zaje profundo 25
6.1. Estrategia del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.2. Polı́tica de vuelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.3. Arquitectura de la red basada en AlexNet . . . . . . . . . . . . . . . 27

7. Experimentos y resultados 29
7.1. Plataforma de vuelo: Parrot
R BEBOP 2.0 . . . . . . . . . . . . . . . 29
7.2. Base de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7.3. Entrenamiento y validación de la CNN . . . . . . . . . . . . . . . . . 30
7.3.1. Visualización de los mapas de caracterı́sticas . . . . . . . . . . 31
7.3.2. Visualización de las activaciones de la CNN . . . . . . . . . . 33
7.3.3. Validación de la CNN . . . . . . . . . . . . . . . . . . . . . . . 35
7.3.4. Validación del sistema . . . . . . . . . . . . . . . . . . . . . . 35
7.4. Modificación del enfoque original . . . . . . . . . . . . . . . . . . . . 37
7.4.1. Entrenamiento y validación de la CNN . . . . . . . . . . . . . 40
7.4.2. Visualización de las activaciones y de los mapas de caracterı́stica 40
7.4.3. Validación de la CNN . . . . . . . . . . . . . . . . . . . . . . . 42

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


TABLA DE CONTENIDO ix

7.4.4. Validación del sistema . . . . . . . . . . . . . . . . . . . . . . 42

8. Conclusiones 45
8.1. Publicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.2. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Apéndices 47

A. Apéndice A: Redes neuronales convolucionales en Matlab 49


A.1. Arquitectura de las redes neuronales convolucionales . . . . . . . . . . 49
A.1.1. Capa de imagen de entrada . . . . . . . . . . . . . . . . . . . 50
A.1.2. Capa convolucional . . . . . . . . . . . . . . . . . . . . . . . . 50
A.1.3. Capa ReLU . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
A.1.4. Capa de normalización de respuesta local . . . . . . . . . . . . 51
A.1.5. Capa de pooling . . . . . . . . . . . . . . . . . . . . . . . . . . 51
A.1.6. Capa de dropout . . . . . . . . . . . . . . . . . . . . . . . . . 51
A.1.7. Capa completamente conectada . . . . . . . . . . . . . . . . . 52
A.1.8. Capa softmax y de clasificación . . . . . . . . . . . . . . . . . 52

B. Apendice B: Visualización de las activaciones de las capas convolu-


cionales 53

Bibliografı́a 75

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


x TABLA DE CONTENIDO

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


Índice de Figuras

2.1. Ejemplo de sistema de vuelo autónomo basado en LIDAR. . . . . . . 8


2.2. Ejemplos de aplicación de cámaras Vicon. . . . . . . . . . . . . . . . 8
2.3. Efoque de vuelo propuesto por Giusti2016. . . . . . . . . . . . . . . . 10

3.1. Acciones de control de un VANT quadrotor. . . . . . . . . . . . . . . 14

4.1. Gráfica de la función de activación lineal rectificadora. . . . . . . . . 16


4.2. Esquema de la arquitectura original de la red neuronal convolucional
AlexNet. La implementación ilustrada corresponde a la implementa-
ción de la red en dos GPU. . . . . . . . . . . . . . . . . . . . . . . . . 20

5.1. Ejemplo de conexión a través de ROS. . . . . . . . . . . . . . . . . . 22

6.1. Vista superior de maniobra de evasión. . . . . . . . . . . . . . . . . . 26


6.2. Esquema del comportamiento esperado del quadrotor con la calse fren-
te. La primera columna muestra la representación de la vista de la
cámara cuando el quadrotor se acerca al árbol; la segunda columna
muestra el movimiento correspondidente que se genera al enviar el co-
mando de control de avanzar, finalmente en la tercera columna el dron
finaliza su movimiento en el momento en el que el sistema detecta que
se acaba el espacio para avanzar. . . . . . . . . . . . . . . . . . . . . 26
6.3. Esquema del comportamiento esperado del quadrotor al momento de
la detección del obstáculo. La primera columna muestra el momento a
partir del cual se inicia la maniobra de evasión, la segunda el desplaza-
miento hacia la derecha respondiendo a la polı́tica de vuelo y finalmente
el dron se detiene para luego continuar avanzando. . . . . . . . . . . . 27

[xi]
xii ÍNDICE DE FIGURAS

6.4. Esquema de la red neuronal convolucional basada en la arquitectura


AlexNet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

7.1. Parrot
R BEBOP 2.0. . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7.2. Esquema del proceso de toma de imágenes de las clases espacio libre y
obstáculo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
7.3. Ejemplos de imágenes de clase obstáculo. . . . . . . . . . . . . . . . . 31
7.4. Ejemplos de imágenes de clase espacio libre. . . . . . . . . . . . . . . 31
7.5. Activaciones de la primera capa convolucional para imagen de clase
espacio libre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7.6. Activaciones de la primera capa convolucional para imagen de clase
obstáculo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7.7. Evolución de las activaciones de las capas convolucionales. . . . . . . 34
7.8. Esquema de la implementación del sistema en tiempo real. . . . . . . 35
7.9. Secuencia de vuelo del quadrotor con árbol al frente. Vista exterior y
vista de la cámara a bordo del dron. . . . . . . . . . . . . . . . . . . 37
7.10. Ejemplos de imágenes de clase obstáculo cerca . . . . . . . . . . . . . 38
7.11. Esquema del proceso de toma de imágenes de las clases espacio libre,
obstáculo lejos y obstáculo cerca . . . . . . . . . . . . . . . . . . . . . 38
7.12. Ejemplos de imágenes de clase obstáculo cerca . . . . . . . . . . . . . 39
7.13. Ejemplos de imágenes de clase obstáculo lejos . . . . . . . . . . . . . 39
7.14. Ejemplos de imágenes de clase espacio libre . . . . . . . . . . . . . . 39
7.15. Evolución de las activaciones de las capas convolucionales. . . . . . . 40
7.16. Secuencia de vuelo del quadrotor con árbol al frente. Vista exterior y
vista de la cámara a bordo del dron. . . . . . . . . . . . . . . . . . . 44

A.1. Estructura de red neuronal convolucional. . . . . . . . . . . . . . . . 49

B.1. Activaciones de la primera capa convolucional para imagen de clase


espacio libre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
B.2. Activaciones de la primera capa convolucional para imagen de clase
obstáculo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
B.3. Activaciones de la segunda capa convolucional para imagen de clase
espacio libre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


ÍNDICE DE FIGURAS xiii

B.4. Activaciones de la segunda capa convolucional para imagen de clase


obstáculo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
B.5. Activaciones de la tercera capa convolucional para imagen de clase
espacio libre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
B.6. Activaciones de la tercera capa convolucional para imagen de clase
obstáculo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
B.7. Activaciones de la cuarta capa convolucional para imagen de clase es-
pacio libre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
B.8. Activaciones de la cuarta capa convolucional para imagen de clase
obstáculo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
B.9. Activaciones de la quinta capa convolucional para imagen de clase es-
pacio libre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
B.10.Activaciones de la quinta capa convolucional para imagen de clase
obstáculo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
B.11.Activaciones de la primera capa convolucional para imagen de clase
espacio libre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
B.12.Activaciones de la primera capa convolucional para imagen de clase
obstáculo lejos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
B.13.Activaciones de la primera capa convolucional para imagen de clase
obstáculo cerca. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
B.14.Activaciones de la segunda capa convolucional para imagen de clase
espacio libre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
B.15.Activaciones de la segunda capa convolucional para imagen de clase
obstáculo lejos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
B.16.Activaciones de la segunda capa convolucional para imagen de clase
obstáculo cerca. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
B.17.Activaciones de la tercera capa convolucional para imagen de clase
espacio libre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
B.18.Activaciones de la tercera capa convolucional para imagen de clase
obstáculo lejos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
B.19.Activaciones de la tercera capa convolucional para imagen de clase
obstáculo cerca. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
B.20.Activaciones de la cuarta capa convolucional para imagen de clase es-
pacio libre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


xiv ÍNDICE DE FIGURAS

B.21.Activaciones de la cuarta capa convolucional para imagen de clase


obstáculo lejos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
B.22.Activaciones de la cuarta capa convolucional para imagen de clase
obstáculo cerca. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
B.23.Activaciones de la tercera capa convolucional para imagen de clase
espacio libre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
B.24.Activaciones de la tercera capa convolucional para imagen de clase
obstáculo lejos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
B.25.Activaciones de la tercera capa convolucional para imagen de clase
obstáculo cerca. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


Índice de Tablas

3.1. Clasificación de diferentes VANT existentes. Fuente: Traducción de [1] 12

7.1. Principales propiedades de cada capa de la red implementada con base


a la arquitectura de la red AlexNet con dos clases y vista de los mapas
de caracterı́sticas de cada etapa de convolución. . . . . . . . . . . . . 32
7.2. 5-Fold Cross-Validation . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.3. Resultados de los vuelos de prueba. . . . . . . . . . . . . . . . . . . . 36
7.4. Resultados de detección. . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.5. Principales propiedades de cada capa de la red implementada con base
a la arquitectura de la red AlexNet con 3 clases y vista de los mapas
de caracterı́sticas de cada etapa de convolución. . . . . . . . . . . . . 41
7.6. 5-Fold Cross-Validation . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.7. Resultados de los vuelos de prueba. . . . . . . . . . . . . . . . . . . . 43

[xv]
xvi ÍNDICE DE TABLAS

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


Capı́tulo 1

Introducción

El mercado de los vehı́culos aéreos no tripulados y de los micro vehı́culos aéreos


(VANT / MVA) ha crecido sustancialmente en las últimas décadas. Los VANT abren
la posibilidad de nuevas tareas que antes eran imposibles con aviones tripulados, ya
que los VANT pueden ser operados desde cerca o lejos. Los MVA además son capaces
de volar en ambientes con área de vuelo reducida. Tradicionalmente, los VANT son
piloteados a distancia, sin embargo, hay un gran esfuerzo para desarrollar VANT
completamente autónomos.
El vuelo autónomo es una competencia que requiere conocimiento sobre la posición
del UAV y una representación del entorno en el que vuela. En esencia, los sensores
y las estrategias de detección proporcionan la información del medio ambiente y son
cruciales para el éxito de un sistema autónomo de VANT. Los principales sistemas
utilizados para los sistemas de navegación de VANT son los Sistemas Globales de
Navegación por Satélite (por sus siglas en inglés GNSS) (incluido el Sistema de Po-
sicionamiento Global - por sus siglas en inglés GPS) y los Sistemas de Navegación
Inercial (por sus siglas en inglés INS). Su naturaleza complementaria ha sido reconoci-
da, y como resultado, los sensores GPS e INS son la pareja de sensores preferida para
la mayorı́a de los sistemas de piloto automático [2]. Pero hay varios escenarios donde la
señal GNSS puede ser poco fiable o incluso inaccesible, por ejemplo, cañones urbanos,
ambientes interiores y entornos forestales, para esto se exploran otras alternativas.
Los sensores de ondas de radio (RADAR, por sus siglas en inglés radio detection
and ranging y LIDAR por sus siglas en iglés Laser Imaging Detection and Ranging)
son otra opción para la navegación, pero es necesario considerar el alto consumo de
energı́a y el hecho de que no se encuentran a menudo en drones [2].Por el contrario,
la mayorı́a de los VANT cuentan con algún tipo de sensor electro-óptico (EO). Los
sensores de EO tı́picamente encontrados en UAV son: cámaras de espectro visible,

[1]
2 1. Introducción

cámara infrarroja (IR) o sistemas de adquisición de imágenes hiperespectrales [2].


Gran parte de los VANT disponibles comercialmente en la actualidad cuentan con
una cámara incorporada (estéreo o monoculares); por tanto, un sistema de vuelo
autónomo basado en visión computacional resulta una opción viable ya que elimina
la dependencia del sistema de vuelo de la señal GPS, puede ser implementada en
diferentes plataformas con pocas variaciones y no afecta la resistencia de los VANT
con bajas capacidades de carga. Ası́, la solución que se desarrollará a lo largo de este
trabajo para la tarea de navegación autónoma en ambientes forestales se basa en el
uso de una cámara monocular a bordo del VANT.
Ya que el sistema a desarrollar se basa en el uso de un único sensor, la cámara
monocular (independiente de cualquier ayuda externa), es importante procesar de
manera adecuada la información visual ya que de esta depende el pilotaje del VANT.
Este procesamiento se implementó con una red neuronal convolucional profunda, la
cual funciona como clasificador de la escena actual vista desde el VANT, con ella se
logra la abstracción de caracterı́sticas complejas de las imágenes que son mapeadas a
la salida como los comandos de control del VANT. En general es un control reactivo
confiable, el cual funciona con una única entrada visual y puede manejar situaciones
donde mapas 3D o planeadores de trayectoria de alto nivel fallan.

1.1. Descripción del problema


Los ambientes forestales sobre los cuales se busca lograr que los VANT operen de
manera autónoma tienen limitación en cuanto al acceso a señal limpia de GPS o a un
mapa previo para la localización del VANT. Además son ambientes no estructurados
y saturados de árboles que exigen al sistema realizar maniobras evasivas. Por tanto, se
requiere un sistema de vuelo basado en visión capaz de extraer suficiente información
del ambiente como para permitir el control autónomo del vehı́culo sin chocar con
los árboles. En el caso de los entornos boscosos es importante tener en cuenta la
complejidad de las imágenes ya que presentan colores y texturas repetitivos tal como
lo resalta [3] en su trabajo.
Es necesario desarrollar un sistema de vuelo autónomo que funcione en tiempo
real y que sea suficientemente efectivo en el sensado y detección de obstáculos para
poder lograr el desplazamiento del VANT a través de un ambiente como el bosque.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


1.2 Justificación 3

1.2. Justificación
En los ambientes forestales sobre los cuales se busca lograr que el sistema opere
suele presentarse la necesidad de operaciones de búsqueda y rescate, de monitoreo o de
exploración. Para estas tareas los VANT generalmente se pilotean de manera remota,
lo que implica la intervención humana. Ası́, quien toma el control del VANT debe ser
experto en el pilotaje, además si se trata de áreas de difı́cil acceso o peligrosas, el piloto
se va a ubicar en una locación distante por lo que la tarea de percepción del entorno
a través de las imágenes captadas por la cámara a bordo será muy complicada. Con
este trabajo se busca diseñar una primera versión de un sistema que pueda suplir la
necesidad de un experto a la hora de volar un VANT en un entorno forestal.

1.3. Objetivos

1.3.1. Objetivo general


Desarrollar un sistema de vuelo autónomo en ambientes forestales para vehı́culos
aéreos no tripulados basado en visión computacional usando redes neuronales convo-
lucionales.

1.3.2. Objetivos especı́ficos


Implementar un sistema de comunicación para el vehı́culo aéreo no tripulado
que permita la adquisición de imágenes de la cámara a bordo y el envı́o de los
comandos de control de vuelo desde la estación en tierra.

Establecer una base de datos de ejemplos debidamente etiquetados para el en-


trenamiento y validación de la red neuronal convolucional.

Diseñar una arquitectura de red para el proceso de visión por computadora a


partir de la cual se pueda generar el control autónomo del vehı́culo aéreo no
tripulado.

Proponer una polı́tica de vuelo adecuada para el vuelo evasivo en ambientes


forestales.

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


4 1. Introducción

Integrar el módulo de comunicación, el módulo de visión computacional y el


módulo de control en un sólo sistema para el pilotaje autónomo del vehı́culo
aéreo no tripulado.

Evaluar en tiempo real el sistema propuesto.

1.4. Organización del trabajo


Este trabajo se encuentra organizado de la siguiente manera:
Capı́tulo 2. Estado del arte: en este capı́tulo se presenta una revisión del trabajo
relacionado centrada en dos aspectos: 1) vuelo autónomo de VANT en ambientes sin
acceso a GPS y 2) la aplicación de redes neuronales convolucionales al vuelo autónomo
de VANT.
Capı́tulo 3. Vehı́culos aéreos no tripulados (VANT): en este capı́tulo se presentan
los bases teóricas relacionadas a los VANT. Se presenta la definición de los vehı́culos
aéreos no tripulados junto con sus principales caracterı́sticas, clasificación y aplicacio-
nes. Finalmente se presentan con mayor profundidad las caracterı́sticas de los VANT
quadrotor.
Capı́tulo 4. Aprendizaje profundo en redes neuronales convolucionales: en este
capı́tulo se documentan los aspectos más relevantes acerca del aprendizaje profundo,
redes neuronales convoluciones, transferencia de aprendizaje y finalmente se presenta
la red neuronal convolucional conocida como AlexNet.
Capı́tulo 6. Sistema operativo de robots (ROS): en este capı́tulo se describen las
generalidades del sistema operativo de robots y se hace énfasis en la librerı́a bebop
autonomy que corresponde a un driver para el control de vuelo de los quadricópteros
Parrot Bebop 1.0 y 2.0.
Capı́tulo 7. Sistema de exploración en ambientes forestales basado en aprendizaje
profundo: en este capı́tulo se presenta el sistema de vuelo propuesto. En primer lugar,
se describe de manera general la estrategia, luego, se plantea la polı́tica de vuelo y la
arquitectura de la red neuronal convolucional.
Capı́tulo 8. Experimentos y resultados: en este capı́tulo se expone el proceso de
desarrollo del sistema y su validación. Inicialmente se describe la base de datos em-
pleada para el entrenamiento de la red. A continuación, se muestran las caracterı́sticas
de entrenamiento de la red y su correspondiente validación mediante 5-Fold Cross Va-

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


1.4 Organización del trabajo 5

lidation, luego se dan los detalles de la plataforma empleada para la validación del
sistema completo en tiempo real; para finalmente presentar los resultados y el análisis.
Capı́tulo 9. Conclusiones: es el capı́tulo final y abarca las principales conclusiones
del trabajo junto con la propuesta para el trabajo futuro.

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


6 1. Introducción

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


Capı́tulo 2

Estado del arte

El enfoque de esta investigación es el desarrollo de un sistema de vuelo autónomo


para VANT en ambientes forestales sin acceso a GPS, usando para el procesamiento
visual redes neuronales convolucionales profundas. Es por esto que la revisión del
trabajo relacionado se centró en dos aspectos: 1) vuelo autónomo de VANT en am-
bientes sin acceso a GPS y 2) la aplicación de redes neuronales convolucionales al
vuelo autónomo de VANT. A continuación se referencian los principales aspectos
encontrados en la literatura con respecto a estos dos enfoques.

2.1. Vuelo autónomo de VANT en ambientes sin


acceso a GPS
En la literatura se reportan diferentes enfoques para el control de posición, tanto
de sensado como de estrategias de control; los enfoques más comunes se basan en la
estimación de la posición a partir de GPS, el cual brinda una gran precisión siempre
y cuando se disponga de una señal limpia. Como se mencionó, el enfoque que se busca
con este trabajo es encontrar una estrategia aplicable en ambientes sin GPS, lo cual
lleva a la búsqueda de otras opciones, como en el caso de [4] que presentan resultados
exitosos usando laser range finder y [5] quienes emplean la misma tecnologı́a para
el vuelo en ambientes internos, en la figura 2.1 se observa la platafoma de vuelo que
usaron y el esquema del sistema implementado. El uso de esta tecnologı́a no es óptimo
ya que estos sensores tienen una restricción en la distancia de percepción y lı́mite en
el campo visual. El alto consumo de energı́a es también factor importantes a tener en
cuenta cuando se quiere implementar en un MAV [6].
Otra alternativa ampliamente explorada es la instalación de cámaras externas con

[7]
8 2. Estado del arte

(a) Plataforma de vuelo (b) Esquema de control

Figura 2.1: Ejemplo de sistema de vuelo autónomo basado en LIDAR.


Esquema del sistema de detección jerárquica, control y planificación. En el nivel de
base, la IMU y el controlador (Verde) crean un lazo de retroalimentación ajustado
para estabilizar el vehı́culo en roll y pitch. Los módulos amarillos constituyen la
detección en tiempo real y el bucle de control que estabiliza la posición del vehı́culo a
nivel local y evita los obstáculos. Por último, los módulos rojos proporcionan mapeo
y planificación de funcionalidades. Fuente: [5]

una posición conocida y a través de estas rastrear al vehı́culo. En los últimos años,
excelentes resultados han sido logrados usando motion capture system de Vicon R

(ver figura 2.2). Un sistema de alta resolución basado en cámaras externas que ras-
trean las posturas de uno o más VANT con alta precisión. Estos sistemas son muy
eficientes y robustos para propósitos de prueba y pueden ser usados como referen-
cia para la evaluación de algoritmos de control en posicionamiento. Sin embargo, no
son opción para ambientes grandes y para misiones en las cuales la instalación de la
infraestructura externa no es factible [6].

Figura 2.2: Ejemplos de aplicación de cámaras Vicon.


Fuente: [7]

Weiss, et. al [6], presenta un método basado en simultaneous localization and

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


2.2 Aplicación de redes neuronales convolucionales al vuelo autónomo de VANT 9

mapping (SLAM), emplean las señales entregadas por una cámara y un sensor inercial
a bordo del vehı́culo. El enfoque que proponen es contruir un mapa (3D) del ambiente,
localizarse con respecto al mapa y finalmente navegar a través de él. Para estimar la
posición emplean el algoritmo visual SLAM y a partir de ella alimentan un contralor
óptimo lineal con el cual logran las maniobras básicas del vehı́culo. Usualmente la
construcción del mapa requiere de cierto tiempo de procesamiento y quizá no funcione
de manera inmediata en tiempo real.

2.2. Aplicación de redes neuronales convoluciona-


les al vuelo autónomo de VANT
Los algoritmos de control inteligente tienen diferentes enfoques como lógica difusa,
redes neuronales, aprendizaje de máquina, algoritmos evolutivos, entre otros [8]. De
estos los más usados son las redes neuronales y la lógica difusa. [9] y [10], presen-
tan dos metodologı́as de control difuso para la evasión de obstáculos. En [9] emplean
teorı́a de entropı́a cruzada para optimizar las ganancias de los controladores mientras
que el procesamiento visual se logra a partir del algoritmo CamShift que realiza las
tareas de detección y seguimiento del objeto en escena. En [10] aplican igualmente
una estrategia basada en controlador lógico difuso con optimización mediante entropı́a
cruzada, pero en este caso la optimización se centra en los factores de escalamiento
y la función de membresı́a. Además, usan Monocular Visual Inercial (SLAM) para
la detección visual de los obstáculos. Un método de aprendizaje reforzado para ex-
ploración de robots móviles en ambientes interiores con información de profundidad
a partir de un único sensor RGB-D es propuesto en [11].
S. Ross, et al [12] presentan un sistema de navegación autónoma para un quadrotor
en ambientes forestales basado en el mapeo de caracterı́sticas de la imágenes RGB de
la cámara a los comandos de control. Usan técnica de aprendizaje por imitación para
transferir las demostraciones humanas a la navegación autónoma. Sin embargo, este
método no generaliza a trayectorias fuera de las demostraciones entrenadas a partir
de los vuelos controlados por personas [13].
Por otro lado, [14] describen un sistema de evasión de obstáculos basado en vi-
sión para robots móviles fuera de carretera. El enfoque que abordan es resolver el
problema entero de mapear imágenes estéreo de entrada a un posible ángulo de direc-

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


10 2. Estado del arte

ción para el robot mediante aprendizaje end-to-end. El sistema de aprendizaje es una


red convolucional de 6 capas cuya entrada son dos imágenes (izq/der) sin procesar,
y la salida es la predicción del ángulo de dirección del robot proporcionado por un
conductor humano durante el entrenamiento en diferentes escenarios.
[15] logran que un dron realice el seguimiento autónomo de un camino rural a
partir del procesamiento de una sola imagen monocular proveniente de la cámara a
bordo del robot. Emplean un enfoque basado en redes neuronales profundas, el cual,
a partir de la clasificación de la vista actual de un dron genera la dirección principal
del camino comparada con la dirección de vista. Este sistema aplica cuando existe un
único sendero guı́a para el desplazamiento del vehı́culo. En la figura 2.3 se muestra
la metodologı́a propuesta en su artı́culo.

Figura 2.3: Efoque de vuelo propuesto por Giusti2016.


El quadrotor adquiere las imágenes del camino a través de una cámara que mira
hacia el frente; una red neural profunda clasifica las imágenes para determinar qué
acción mantendrá al robot en el camino. Fuente: [15]

Un enfoque muy cercano al que se pretende desarrollar en este trabajo es el presen-


tado por [13], aplican el aprendizaje autosupervisado al vuelo de drones en interiores.
Hacen la recopilación de datos de vuelos a partir de accidentes llamados vuelos ne-
gativos además de datos de vuelos positivos para generar una gran base de datos.
Este conjunto de datos es usado para entrenar una red neuronal convolucional que
funciona como clasificador y cuya salida determina el control del dron mediante la
polı́tica de evasión de obstáculos.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


Capı́tulo 3

Vehı́culos aéreos no tripulados


(VANT)

3.1. Definición
En la literatura se encuentran diferentes términos que hacen referencia a los vehı́cu-
los aéreos no tripulados.
La Administración Federal de Aviación (Federal Aviation Administration) define
el término aeronave no tripulada como la aeronave que es operada sin la posibilidad
de intervención humana directa desde dentro o sobre la aeronave. También define
el término sistema de aeronave no tripulada como el conjunto de la aeronave no
tripulada y los elementos necesarios para que el mando funcione de manera segura y
eficiente en el sistema de espacio aéreo nacional asociados (incluyendo los enlaces de
comunicación y los componentes que controlan la aeronave no tripulada) [16].
El Instituto Americano de Astronáutica y Aeronáutica (American Institute of Ae-
ronautics and Astronautics (AIAA)) citado en [17] define vehı́culo aéreo no tripulado
como aquella aeronave diseñada o modificada, para no llevar un piloto humano y
operada a través de entrada electrónica, iniciada por el controlador de vuelo o por
un sistema de control de vuelo autónomo a bordo que no requiere intervención del
controlador de vuelo.

3.2. Clasificación de los VANT


Los VANT abarcan muchos tipos diferentes de aeronaves con una gran variedad
de tipos de fuselaje y tecnologı́as de elevación, con pesos máximos de despegue que

[11]
12 3. Vehı́culos aéreos no tripulados (VANT)

Masa (kg) Rango (Km) Altura de Vuelo (m) Resistencia


Micro <5 < 10 250 1
Mini < 20/25/30/150 < 10 150/250/300 <2
Táctico
Alcance cercano 25-150 10-30 3,000 2-4
Corto alcance 50-250 30-70 3,000 3-6
Alcance medio 150-500 70-200 5,000 6-10
Resistencia y alcance medio 500-1500 > 500 8,000 10-18
Baja altitud y penetración profunda 250-2,500 >250 50-9,000 0.5-1
Baja altitud y larga resistencia 15-25 >500 3,000 >24
Altitud media y larga resistencia 1,000-1,500 >500 3,000 24-48
Estratégico
Alta altitud y larga resistencia 2,500-5,000 >2000 20,000 24-48
Estratosférico >2,500 >2,000 >20,000 >48
Exo-estratosférico TBD TDB >30,500 TDB
Misiones especiales
Vehı́culo aéreo no tripulado de combate >1,000 1,500 12,000 2
Letal TDB 300 4,000 3-4
Señuelo 150-250 0-500 50-5,000 <4

Tabla 3.1: Clasificación de diferentes VANT existentes. Fuente: Traducción de [1]

van desde varios gramos hasta más de 10000 kg, las opciones de velocidad varı́an
desde el vuelo suspendido hasta más de 1000 km/h, y con duraciones de vuelo que
van de minutos a dı́as [18]. Este amplio y diverso conjunto de posibilidades representa
un amplio espectro de aplicaciones. Se han propuesto diferentes esquemas de clasifi-
cación de UAV basados en sus caracterı́sticas operativas y sus capacidades. Dichas
clasificaciones incluyen el peso medio de despegue (mean takeoff weigth, MTOW), ta-
maño, condiciones de operación, capacidades o combinaciones de estas. La tabla 3.1
muestra una clasificación comprensible donde se aprecia la gran variedad de sistemas
disponibles [18].
Los VANT pueden ser clasificados según su plataforma, [17] propone 4 clases:

1.- VANT de ala fija: se refieren a aviones no tripulados (con alas) que requieren
una pista para despegar y aterrizar, o lanzamiento de catapulta. Generalmente
tienen resistencia y puede volar a altas velocidades de crucero.

2.- VANT de ala rotatoria: también llamados VANT helicóptero o VANT de des-
pegue y aterrizaje verticales (VTOL, por sus siglas en inglés), que tienen las
ventajas de capacidad para flotar y una gran maniobrabilidad. Estas capaci-
dades son útiles para cualquier misión robótica, especialmente en aplicaciones
civiles. Un VANT helicóptero puede tener diferentes configuraciones, con roto-
res principales y de cola (helicóptero convencional), rotores coaxiales, rotores
en tándem, rotores múltiples, etc.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


3.3 Aplicaciones de los VANT 13

3.- Dirigibles: son más ligeros que el aire y tienen larga resistencia, vuelan a velo-
cidades lentas, y generalmente son de gran tamaño. Ejemplo de estos son los
globos y los dirigibles.

4.- VANT de alas móviles: tienen alas flexibles inspiradas en pájaros e insectos
voladores.

Por otra parte, los VANT pueden clasificarse en función de su propiedad como
público o estatal cuando son propiedad y son operados por entidades públicas como
agencias federales o la policı́a local y civil cuando son propiedad de la industria o de
partes privadas [18].

3.3. Aplicaciones de los VANT


Los VANT tienen múltiples aplicaciones en contextos militares y civiles. En el
ámbito militar se utilizan para inteligencia, vigilancia y reconocimiento, además apli-
caciones más complejas enfocadas al ataque y defensa se encuentran en desarrollo.
En cuanto a las aplicaciones civiles el mercado continúa en desarrollo y ofreciendo
nuevos sistemas de vuelo no tripulado con potenciales aplicaciones en áreas como:
inspección de terreno, tuberı́as, servicios públicos, edificios, etc., aplicación de la ley y
aplicaciones de seguridad, gestión de desastres y crisis, búsqueda y rescate, monitoreo
ambiental, agricultura y bosques, lucha contra incendios, mapeo aéreo y meteorologı́a,
producción visual, investigación entre otras [17].

3.4. Control de los VANT


En cuanto a las metodologı́as de control de lo VANT en la literatura aparecen dos
categorı́as, las basadas en modelo matemático y los algoritmos de control inteligente.
Los más destacados en la primera modalidad son el control proporcional, integral y
derivativo o PID, el regulador lineal cuadrático, el control en modo deslizante, el con-
trol backstepping, los algoritmos de control adaptivo, algoritmos de control robusto,
algoritmos de control óptimo, feedback linerization [8], estos métodos requieren fun-
cionamiento en tiempo real e información de estado precisa entregada por un sistema
de captura de movimiento [12]. Por otra parte, los algoritmos de control inteligente

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


14 3. Vehı́culos aéreos no tripulados (VANT)

tienen diferentes enfoques de inteligencia artificial como lógica difusa, redes neurona-
les, aprendizaje de máquina, algoritmos evolutivos, entre otros [8]. De estos los más
usados son las redes neuronales y la lógica difusa.

3.5. VANT Quadrotor

Figura 3.1: Acciones de control de un VANT quadrotor.

En particular los VANT quadricópteros son helicópteros de cuatro rotores di-


señados tı́picamente en configuración cruz con dos rotores girando en sentido de las
manecillas del reloj y los otros dos en sentido contrario para balancear el torque [19].
En la figura 3.1 se muestran las acciones roll, pitch,yaw y up thrust del dron, las
cuales son controladas cambiando el empuje de los rotores mediante modulación de
ancho de pulso (MAP) para obtener el comportamiento deseado en la figura se mues-
tran esquemas de la configuración de los rotores para generar el desplazamiento de
un quadricoptero. Los VANT no tienen tripulación a bordo, por esto son operados de
manera autónoma o remota y resultan ser una gran plataforma para la investigación
de sistemas de control por su naturaleza no lineal y su configuración sub-actuada [16].

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


Capı́tulo 4

Aprendizaje profundo en redes


neuronales convolucionales

El aprendizaje profundo es un sub-campo del aprendizaje de máquina que abar-


ca los algoritmos de aprendizaje de abstracciones de alto nivel en datos mediante
la utilización de arquitecturas jerárquicas. Los algoritmos de aprendizaje profundo
según el método básico se pueden dividir en cuatro categorı́as: redes neuronales con-
volucionales, máquinas de Boltzmann restringidas, autocodificadores y codificación
Sparce. Las aplicaciones de estos algoritmos en visión computacional abarcan tareas
como clasificación de imágenes, detección de objetos, restauración de imágenes, seg-
mentación semántica, entre otras. Las redes neuronales son uno de los enfoques más
notables y han sido encontradas altamente efectivas en diversas aplicaciones de visión
computacional y son abordadas con más detalle a continuación [20].

4.1. Redes neuronales convolucionales

Las redes neuronales convolucionales (CNN), son un tipo especializado de red


neuronal para el procesamiento de datos que tienen una topologı́a conocida de rejilla
(como series de datos o imágenes). La arquitectura de las redes neuronales convolucio-
nales se construyen a partir de capas que involucran al menos una capa de convolución.
Una red neuronal convolucional se forma mediante 3 capas neuronales principales: ca-
pas convolucionales, capas de pooling y capas completamente conectadas.
A continuación se describen las principales caracterı́sticas de las diferentes capas
de las CNN.

[15]
16 4. Aprendizaje profundo en redes neuronales convolucionales

4.1.1. Capa de Convolución


En esta primera capa se realizan las respectivas convoluciones para producir un
conjunto de activaciones lineales. Luego, cada resultado es pasado a través de una fun-
ción de activación no lineal, como una unidad de activación lineal rectificadora (Rec-
tified Linear Units (ReLU)). La función de activación es de la forma f (x) = máx(0, x)
(Ver figura 4.1). Las redes neuronales convolucionales profundas que emplean ReLU
son entrenadas varias veces más rápido que aquellas que emplean los modelos estándar
que utilizan para la función de salida de las neuronas la tangente hiperbólica o la sig-
moide [21]. Esta etapa es conocida como etapa de detección.

Figura 4.1: Gráfica de la función de activación lineal rectificadora.

En el contexto de las redes neuronales convolucionales, el primer argumento de la


convolución es referido como entrada y el segundo argumento como kernel. La salida
se conoce como mapa de caracterı́sticas. La entrada es un arreglo multidimensional
de datos y el kernel es un arreglo multidimensional de parámetros adaptados por
el algoritmo de aprendizaje [19]. Las convoluciones se usan sobre más de un eje al
tiempo. Por ejemplo, si se usan una imagen I, y un kernel K de dos dimensiones:

XX
s(i, j) = (I ∗ K)(i, j) = I(m, n)K(i − m, j − n) (4.1.1)
m n

La convolución es conmutativa. Además muchas librerı́as implementan una función


similar llamada correlación-cruzada, la cual es la misma convolución, pero sin reflejar

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


4.1 Redes neuronales convolucionales 17

el kernel, para el ejemplo anterior:

XX
s(i, j) = (I ∗ K)(i, j) = I(i + m, j + n)K(m, n) (4.1.2)
m n

En aprendizaje de máquina al implementar la correlación-cruzada también es lla-


mada convolución. Para el desarrollo de este trabajo se llamará convolución a las dos
operaciones.

4.1.2. Capa de Pooling


La función de pooling remplaza la salida de la red con una suma estadı́stica de las
salidas vecinas. Por ejemplo, la operación max pooling reporta la máxima salida entre
una vecindad rectangular. Otra función de pooling popular que incluye el promedio
de una vecindad rectangular, es la norma L2 , o un promedio ponderado basado en
la distancia desde el pixel central. En todos los casos, el pooling ayuda a hacer que
la representación sea aproximadamente invariante a pequeños desplazamientos de la
entrada. Como el pooling resume las respuestas sobre una vecindad completa, se
produce una reducción en el tamaño de la entrada a la siguiente capa mejorando
la eficiencia computacional de la red y reduciendo los requisitos de memoria para el
almacenamiento de parámetros [19].

4.1.3. Capa completamente conectada


Siguiendo a la última capa de pooling de la red, se conectan varias capas de tipo
completamente conectadas para convertir los mapas de caracterı́sticas de 2D a un
vector de caracterı́sticas de 1D.

4.1.4. Entrenamiento
Hay dos etapas para el entrenamiento de la red: una etapa hacia adelante (forward )
y otra hacia atrás (backward). La primera tiene el objetivo principal de representar
la imagen de entrada con los parámetros actuales en cada capa (pesos y bias). Luego
la predicción actual es usada para calcular la función de pérdida con los valores base
reales. Basada en la función de pérdida, en la etapa hacia atrás se computa el gradien-
te de cada parametro con las reglas directrices. Todos los parámetros son actualizados

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


18 4. Aprendizaje profundo en redes neuronales convolucionales

con base en el gradiente y preparados para el siguiente computo directo. Después de


suficientes iteraciones de etapas hacia adelante y hacia atrás o al alcanzar el rendi-
miento deseado, el parendizaje se puede detener [20]. Con el aprendizaje profundo
se logra abastraer más información que con el aprendizaje superficial. Sin embargo,
la gran cantidad de parámetros puede introducir un problema de sobrealimentación.
Para la prevención de este efecto existen técnicas de regularización que influyen en la
eficiencia del entrenamiento como las siguientes.

Dropout y dropconect

Consiste en omitir de manera aleatoria la mitad de los detectores de caracterı́sti-


cas. Las neuronas que son “dropped out” no contribuyen en la conexión hacia adelante
y no participan en la retro-propagación (back-propagation). Ası́ cada vez que una en-
trada es presentada, la red neuronal muestra una arquitectura diferente, pero todas
estas arquitecturas comparten estos pesos [21]. La prinicipal motivación detrás del
algoritmo es prevenir la coadaptación de los detectores de caracterı́sticas, o la sobre-
alimentación al forazar a las neuronas a ser robustas y confiar en el comportamiento
de la población, en lugar de en la actividad de otras unidades especı́ficas. [22]

Aumento de datos

Esta técnica es usada cuando las CNN son aplicadas al reconocimiento visual, el
aumento de datos se usa para generar datos adicionales sin introducir costo extra
de etiquetado. Ejempos de está técnica son la generación de imagenes a partir de la
traslación de la imagen original o la reflexión. Otra forma de aumentar los datos es
alterar las intensidades de los canales RGB de las imagenes [21].

4.2. Transferencia del aprendizaje


La transferencia del aprendizaje tiene como objetivo desarrollar un sistema ra-
zonablemente realizado para una nueva tarea, dominio o distribución, de manera
eficiente y eficaz, reteniendo y aprovechando el conocimiento adquirido de una o más
tareas, dominios o distribuciones similares. La transferencia de aprendizaje enfatiza el
desempeño de la tarea de destino mediante la transferencia de conocimiento a través
de tareas, dominios y distribuciones que son similares, pero no son iguales.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


4.2 Transferencia del aprendizaje 19

Debido a que las caracterı́sticas más abstractas e invariantes están representadas


por las capas ocultas, las redes neuronales profundas (Deep Neural Networks (DNN))
son adecuadas para la transferencia de aprendizaje. La transferencia de aprendiza-
je tiene grandes implicaciones prácticas. En muchas aplicaciones del mundo real,
debido al alto costo del etiquetado manual humano y/o a las restricciones ambienta-
les/sociales, no es raro que no se disponga de suficientes datos de entrenamiento. En
tales casos, la transferencia de aprendizaje entre los dominios de tareas es muy desea-
ble [23]. La transferencia de aprendizaje se ha aplicado con éxito a muchas tareas de
aprendizaje automático. En estas aplicaciones, la transferencia de caracterı́sticas, es
el enfoque principal para transferir conocimientos entre tareas.
En este caso particular se hará uso de la transferencia de aprendizaje a partir de
la red pre-entrenada AlexNet, con el fin de lograr un buen ı́ndice de clasificación y
superar la necesidad de una base de datos etiquetada más grande, además, mediente
su aplicación se reduce el tiempo de entrenamiento, a continuación se abordan las
caracterı́sticas principales de la arquitectura de la red AlexNet.

4.2.1. AlexNet

Es una red neuronal convolucional profunda entrenada para clasificar las 1.2 mi-
llones de imágenes en alta resolución de la competencia ILSVRC-2010 (ImageNet
Large Scale Visual Recognition Challenge) en 1000 clases diferentes, obteniendo los
mejores resultados en la historia de dicha competencia. La red completa tiene cinco
capas convolucionales y tres capas completamente conectadas [21].
La primera capa convolucional filtra las imágenes de entrada de 224 × 224 ×
3 con 96 kernels de tamaño 11 × 11 × 3 con un stride de 4 pixeles. La segunda
capa convolucional toma como entrada la salida de la primera capa convolucional
(respuesta normalizada y agrupada (pooled)) y la filtra con 256 kernels de tamaño
5×5×48. La tercera, cuarta y quinta capas están conectadas una a la otra sin ninguna
intervención de agrupación o normalización. La tercera capa convolucional tiene 384
kernels de tamaño 3 × 3 × 256 conectada a la salida de la segunda capa convolucional
(normalizada, agrupada). La cuarta capa convolucional tiene 384 kernels de tamaño
3×3×192, y la quinta capa convolucional tiene 256 kernels de tamaño 3×3×192. Las
capas conectadas completamente tienen 4096 neuronas cada una [21]. El éxito de la
red vino del uso eficiente de GPU, la aplicación de ReLU, una técnica de regularización

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


20 4. Aprendizaje profundo en redes neuronales convolucionales

Figura 4.2: Esquema de la arquitectura original de la red neuronal convolucional AlexNet. La imple-
mentación ilustrada corresponde a la implementación de la red en dos GPU.
Fuente: [21].

llamada dropout y el empleo de técnicas para generar más muestras de entrenamiento


a partir de la deformación de las existentes. Este hecho marcó un punto de revolución
en la visión por computadora, son ahora uno de los enfoques dominantes en casi todas
las tareas de reconocimiento y detección [24].

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


Capı́tulo 5

Sistema operativo de robots (ROS)

5.1. Definición
El sistema operativo de robots (Robot Operating System, (ROS)) proporciona bi-
bliotecas y herramientas para ayudar a los desarrolladores de software a crear aplica-
ciones de robots. Proporciona abstracción de hardware, controladores de dispositivos,
bibliotecas, visualizadores, paso de mensajes, administración de paquetes y mucho
más. ROS está licenciado bajo una licencia de código abierto, BSD [25]. ROS en
la actualidad sólo se ejecuta de forma totalmente funcional en plataformas basadas
en UNIX. el Software de ROS está principalmente probado en Ubuntu y Mac OSX,
aunque la comunidad ROS ha contribuido al apoyo a Fedora, Gentoo, Arch Linux y
además de otras plataformas Linux.

5.2. Conceptos básicos


ROS está basado en una arquitectura de grafos donde el procesamiento toma
lugar en los nodos que pueden recibir, mandar y multiplexar mensajes de sensores,
control, estados, planificaciones y actuadores, entre otros. A continuación se definen
los conceptos básicos de la estructura de ROS.
Nodo (nodes): Un nodo realmente no es mucho más que un archivo ejecutable
dentro de un paquete ROS. Los nodos ROS utilizan una biblioteca cliente ROS
para comunicarse con otros nodos. Los nodos pueden publicar o suscribirse a
un tópico. Los nodos también pueden proporcionar o utilizar un Servicio.

Mensajes (messages): Tipo de datos ROS utilizado al suscribir o publicar en un


tema.

[21]
22 5. Sistema operativo de robots (ROS)

Tópico o Tema (topics): es el sistema usado por los nodos para comunicarse
entre ellos. Los nodos pueden publicar mensajes en un tema ası́ como suscribirse
a un tema para recibir mensajes. Puede haber varios editores y suscriptores
concurrentes a un mismo tema, y un único nodo puede publicar y/o suscribirse
a múltiples temas. En general, los editores y suscriptores no son conscientes
de la existencia de los demás. Se puede pensar en un tema como un Bus de
mensajes. Cada Bus tiene un nombre, y cualquier persona puede conectarse al
bus para enviar o recibir mensajes, siempre y cuando sean del tipo correcto.

Maestro (master ): Servicio de nombres para ROS (es decir, ayuda a que los
nodos se encuentren). Sin el Maestro, los nodos no encontrarı́an mensajes en-
tre sı́, o intercambiarlos, o invocar servicios, lo que hace que sea totalmente
indispensable a la hora de ejecutar cualquier tipo de programa.

Rosout: ROS equivalente a stdout / stderr.

Roscore: Master + rosout + servidor de parámetros.

La comunicación sobre tópicos se produce enviando mensajes ROS entre nodos


(ver figura 5.1). Para que el nodo pubolicador y el nodo suscriptor se comuniquen, el
editor y el suscriptor deben enviar y recibir el mismo tipo de mensaje. Esto significa
que un tipo de tópico se define por el tipo de mensaje publicado en él.

Figura 5.1: Ejemplo de conexión a través de ROS.


Fuente: [26]

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


5.3 Bebop autonomy 23

5.3. Bebop autonomy


Bebop autonomy es un driver ROS para drones Parrot Bebop 1.0 y 2.0 (qua-
dricopteros), basado en el ARDroneSDK3 oficial de Parrot. Este controlador ha sido
desarrollado en Autonomy Lab de la Universidad Simon Fraser por Mani Monajjemi y
otros contribuyentes. Este software es mantenido por Sepehr MohaimenianPour (Au-
tonomyLab, Universidad Simon Fraser), Thomas Bamford (Laboratorio de Sistemas
Dinámicos, Universidad de Toronto) y Tobias Naegeli (Laboratorio de Tecnologı́as
Interactivas Avanzadas, ETH Zürich) [27].
Este driver funciona sobre ROS Indigo, Jade o Kinetic y solo ha sido probado en
Ubuntu. Por otra parte, el driver trae el paquetebebop tools que viene con un archivo
de lanzamiento para teleoperar el Bebop. A través de este paquete es posible enviar
al quadricoptero comandos de despegar, aterrizar, emergencia, pilotear y mover la
cámara virtual.

Despegar: Publicar un mensaje de tipo std msgs/Empty al tema takeoff.

Aterrizar: Publicar un mensaje de tipo std msgs/Empty al tema land.

Emergencia: Publicar un mensaje de tipo std msgs/Empty al tema reset.

Pilotear: Para mover el Bebop alrededor, se publican mensajes del tipo geo-
metry msgs/Twist al tema cmd vel mientras Bebop está volando. El efecto de
cada campo del mensaje en el movimiento de Bebop se muestra a continuación:

linear.x (+) Translate forward


(−) Translate backward
linear.y (+) Translate to left
(−) Translate to right
linear.z (+) Ascend
(−) Descend
angular.z (+) Rotate counter clockwise
(−) Rotate clockwise

El rango aceptable para todos los campos es [−1..1]. El drone ejecuta el último
comando recibido mientras el controlador está en ejecución. Este comando se resta-
blece a cero cuando se recibe el comando de despegue, aterrizaje o emergencia. Para

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


24 5. Sistema operativo de robots (ROS)

hacer que el Bebop flote y mantenga su posición actual, debe publicar un mensaje
con todos los campos establecidos en cero en cmd vel.
Las partes linear.x y lineal.y de este mensaje fijan los ángulos de pitch y de roll
del Bebop, respectivamente, controlando ası́ sus aceleraciones delantera y lateral. Los
ángulos de pitch/roll resultantes dependen del valor del parámetro P̃ilotingSettings-
MaxTiltCurrent, que se especifica en grados y es dinámicamente reconfigurable.
La parte linear.z de este mensaje controla la velocidad vertical del Bebop. La
velocidad resultante en m/s depende del valor del parámetro S̃peedSettingsMaxVerti-
calSpeedCurrent, que se especifica en metros por segundo y también es dinámicamente
reconfigurable. De forma similar, el componente angular.z de este mensaje controla
la velocidad de rotación del Bebop (alrededor del eje z). El parámetro de escala co-
rrespondiente es SpeedSettingsMaxRotationSpeedCurrent (en grados por segundo).

roll degree = linear.y * max tilt angle


pitch degree = linear.x * max tilt angle
ver vel m per s = linear.z * max vert speed
rot vel deg per s = angular.z * max rot speed

Con este driver es posible adaptar el archivo a un controlador propio.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


Capı́tulo 6

Sistema de exploración en
ambientes forestales basado en
aprendizaje profundo

6.1. Estrategia del sistema


El sistema de vuelo realiza la detección y evasión de obstáculos en ambientes
forestales de manera reactiva. El enfoque aplicado se basa en la utilización de una
red neuronal convolucional como clasificador de la escena captada por la cámara
monocular a bordo del quadrotor y a partir de ella mapear a la salida el comando de
control de vuelo. A continuación, se presentan la polı́tica de vuelo para el control del
dron y las caracterı́sticas de la red neuronal convolucional empleada.

6.2. Polı́tica de vuelo


La polı́tica de vuelo que se propone es simple, permitiendo evaluar el desempeño de
la CNN para ésta aplicacion. A partir de los resultados obtenidos es posible proponer
polı́ticas de vuelo más complejas y que mejoren el vuelo del VANT. El objetivo de
vuelo del vehı́culo es dirigirse de manera frontal siempre y cuando no se encuentre un
árbol en el área de vuelo normal, en caso de encontrarse con un árbol debe realizar la
maniobra de evasión hacia la derecha hasta que de nuevo encuentre un área de vuelo
libre.
La figura 6.1 representa un esquema general del comportamiento deseado cuando
el UAV vuela, detecta y evita un árbol mientras vuela hacia adelante. La CNN se

[25]
26 6. Sistema de exploración en ambientes forestales basado en aprendizaje profundo

Figura 6.1: Vista superior de maniobra de evasión.

ejecuta todo el tiempo mientras recibe las imágenes capturadas con la cámara a bordo
del VANT. Los resultados de la clasificación de cada imagen pueden ser de dos clases:
a. espacio libre, lo cual indica que el VANT debe continuar volando de frente (ver
figura 6.2), ya que no hay un obstaculo suficientemente cerca; b. obstáculo, la cual
indica que el VANT se encuentra frente a un árbol y se realiza la evasión (ver figura
6.3). Lo anterior se logra enviando el comando de velocidad al controlador roll que
genera el desplazamiento lateral hacia la derecha.

Figura 6.2: Esquema del comportamiento esperado del quadrotor con la calse frente. La primera
columna muestra la representación de la vista de la cámara cuando el quadrotor se acerca al árbol;
la segunda columna muestra el movimiento correspondidente que se genera al enviar el comando de
control de avanzar, finalmente en la tercera columna el dron finaliza su movimiento en el momento en
el que el sistema detecta que se acaba el espacio para avanzar.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


6.3 Arquitectura de la red basada en AlexNet 27

Figura 6.3: Esquema del comportamiento esperado del quadrotor al momento de la detección del
obstáculo. La primera columna muestra el momento a partir del cual se inicia la maniobra de evasión,
la segunda el desplazamiento hacia la derecha respondiendo a la polı́tica de vuelo y finalmente el dron
se detiene para luego continuar avanzando.

6.3. Arquitectura de la red basada en AlexNet


Como se mencionó, las redes neuronales convolucionales se construyen a partir de
capas que involucran al menos una capa de convolución; en este caso, se usó la red
pre-entrenada AlexNet, para crear una red de clasificación binaria a partir de la cual
determinar si el quadrotor deberı́a avanzar de frente o no, por lo cual las salidas de
la red son obstáculo o espacio libre. En la figura 6.4 se representa la arquitectura de
red.

Figura 6.4: Esquema de la red neuronal convolucional basada en la arquitectura AlexNet.

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


28 6. Sistema de exploración en ambientes forestales basado en aprendizaje profundo

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


Capı́tulo 7

Experimentos y resultados

7.1. Plataforma de vuelo: Parrot


R BEBOP 2.0

Tanto para la captura de las imágenes como para las pruebas en tiempo real se
empleó el vehı́culo BEBOP 2 de la compañı́a Parrot
R (ver figura 7.1). Esta platafor-

ma tiene 4 motores sin escobillas Outrunner, PA12 estructura reforzada de fibra de


vidrio (20 %) y Grilamid (casco) con un peso de 500 g y sus dimensiones 38 × 33 × 9
cm.
Es un quadrotor equipado con una cámara de 14 Megapı́xeles y un lente Sunny
“ojo de pez”, una resolución de video de 1920×1080 p (30 fps). Tiene conectidad Wifi
(802.11) con un alcance de 300 m. El vehı́culo ofrece una autonomı́a de 25 minutos
de vuelo con una baterı́a 2700mAh [28].

Figura 7.1: Parrot


R BEBOP 2.0.

Fuente: [28].

7.2. Base de datos


Los datos usados en redes neuronales convolucionales consisten en diferentes ca-
nales, donde cada uno es la observación de diferentes cantidades en algún punto en

[29]
30 7. Experimentos y resultados

Figura 7.2: Esquema del proceso de toma de imágenes de las clases espacio libre y obstáculo

el tiempo o el espacio [19]. En este caso se trabajó con muestras de entrenamiento y


validación con igual número de canales que corresponden a imágenes RGB obtenidas
con la cámara monocular frontal del VANT quadrotor. Se construyeron dos bases de
datos, para las cuales fueron adquiridas imagenes cargando manualmente el quadro-
tor y caminando a través de diferentes escenarios forestales. El tamaño de captura de
las imagenes fue de 720 × 840. Para el entrenamiento y ejecución de la red neuronal
convolucional la resolución es reducida a un tamaño final de 227 × 227 pixels.
La base de datos está formada por 12,000 ejemplos, 6,000 etiquetados de clase
espacio libre y los restantes 6,000 etiquetados de clase obstáculo. Los primeros fueron
obtenidos caminando alrededor de un árbol a más de 100 cm. Los ejemplos de la clase
obstáculo fueron obtenidos caminando alrededor del árbol pero a distancias menores
de 30 cm variando la altura del VANT de 30 cm a 160 cm del suelo. La figuras 7.3 y
7.4 son algunos ejemplos de las imagenes tomadas para cada una de las clases.

7.3. Entrenamiento y validación de la CNN


La base de datos inicialmente se dividió en dos grupos, uno para entrenamiento
y el otro para validación, cada uno con la mitad de las muestras de cada clase y
separados de forma aleatoria. El resultado de dicho entrenamiento fue el empleado
para para evaluación del sistema en ambiente real. El entrenamiento de la red neuronal
profunda se ejecutó en una computadora equipada con una tarjeta NVIDIA GeForce
GTX 970M GPU.
Para la sintonización fina de la red neuronal convolucional con la nueva base de

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


7.3 Entrenamiento y validación de la CNN 31

Figura 7.3: Ejemplos de imágenes de clase obstáculo.

Figura 7.4: Ejemplos de imágenes de clase espacio libre.

datos, se empleó gradiente descendiente, con un máximo de 20 iteraciones. Como lo


deseado con el proceso de transferencia de aprendizaje es mantener las caracterı́sticas
de las capas pre-entrenadas (los pesos de las capas transferidas), se seleccionó una
tasa de aprendizaje inicial baja, mientras que la taza de aprendizaje de las capas a
reentrenar (las últimas 3) se seleccionó de valor alto.
Una vez entrenada la red se generan en total 56’211,970 parámetros, de los cuales
1’669,632 corresponden a las capas convolucionales y 54’542,338 corresponden a las
capas completamente conectadas.

7.3.1. Visualización de los mapas de caracterı́sticas


La tabla 7.1 muestra la red neuronal profunda, se listan las principales propiedades
de cada capa y los mapas de caracterı́sticas de cada etapa de convolución.

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


32 7. Experimentos y resultados

Tabla 7.1: Principales propiedades de cada capa de la red implementada con base a la arquitectura de
la red AlexNet con dos clases y vista de los mapas de caracterı́sticas de cada etapa de convolución.

C0-Capa de entrada
Tamaño de entrada: [227 227 3]
C1-Capa convolucional
Num. Canales: 3
Tamaño de filtros: [11 11] Num. Filtros: 96
Paso: [4 4] Padding: [0 0]
Capa ReLU
Capa de normalización
Capa max Pooling
Tamaño Pool: [3 3]
Paso: [2 2] Padding: [0 0]
C2-Capa convolucional
Num. Canales: [48 48]
Tamaño de filtros: [5 5] Num. Filtros: [128 128]
Paso: [1 1] Padding: [2 2]
Capa ReLU
Capa de normalización
Capa max Pooling
Tamaño Pool: [3 3]
Paso: [2 2] Padding: [0 0]
C3-Capa convolucional
Num. Canales: [48 48]
Tamaño de filtros: [5 5] Num. Filtros: [128 128]
Paso: [1 1] Padding: [2 2]
Capa ReLU
Capa de normalización
Capa max Pooling
Tamaño Pool: [3 3]
Paso: [2 2] Padding: [0 0]
C4-Capa convolucional
Num. Canales: [48 48]
Tamaño de filtros: [5 5] Num. Filtros: [128 128]
Paso: [1 1] Padding: [2 2]
Capa ReLU
Capa de normalización
Capa max Pooling
Tamaño Pool: [3 3]
Paso: [2 2] Padding: [0 0]
Tamaño de entrada: [227 227 3]
C5-Capa convolucional
Num. Canales: [48 48]
Tamaño de filtros: [5 5] Num. Filtros: [128 128]
Paso: [1 1] Padding: [2 2]
Capa ReLU
Capa de normalización
Capa max Pooling
Tamaño Pool: [3 3]
Paso: [2 2] Padding: [0 0]
C6-Capa completamente conectada 1

Tamaño de entrada: 9216


Tamaño de salida: 4096
C7-Capa completamente conectada
Tamaño de entrada: 4096
Tamaño de salida: 4096
C-Capa completamente conectada
Tamaño de entrada: 4096
Tamaño de salida: 2

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


7.3 Entrenamiento y validación de la CNN 33

7.3.2. Visualización de las activaciones de la CNN


La visualización de las activaciones de las capas convolucionales de la CNN, revela
el estı́mulo que produce la excitación de mapas de caracterı́sticas individuales con una
entrada particular. Este método permite observar la evolución de las caracterı́sticas
en las diferentes etapas de la red.
Las figuras a continuación corresponden a los mapas de caracterı́sticas generados
para la primera capa convolucional junto a un zoom del mapa que presentó lós máxi-
mos valores de activación de cada capa. Los valores de activación representados en las
imágenes no corresponden a los valores reales de activación sino a la normalización.
El valor de activación más alto corresponde al color blanco mientras que el valor de
activación más bajo corresponde al color negro. Las activaciones de todas las capas
convolucionales pueden ser vistas en el apéndice B.

(a) Activaciones (b) Máxima activación


(F-90)

Figura 7.5: Activaciones de la primera capa convolucional para imagen de clase espacio libre.

(a) Activaciones (b) Máxima activación


(F-85)

Figura 7.6: Activaciones de la primera capa convolucional para imagen de clase obstáculo.

En la figura 7.7 se puede ver la evolución de las activaciones máximas de cada capa
convolucional. La gama de las figuras corresponde a la normalización de los valores.

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


34 7. Experimentos y resultados

Se puede notar cómo a medida que se avanza en las capas de convolución son más los
valores de activación altos de las imágen de clase obstáculo mientras que en la imagen
de clase espacio libre son muchos más los valores de activación bajo.

(a) Espacio libre (b) Obstáculo

(c) Espacio libre (d) Obstáculo

(e) Espacio libre (f) Obstáculo

(g) Espacio libre (h) Obstáculo)

(i) Espacio libre (j) Obstáculo

Figura 7.7: Evolución de las activaciones de las capas convolucionales.

Este es un enfoque no paramétrico de ver la invarianza, muestra cuales patrones


del conjunto de entrenamiento activan los mapas de caracterı́sticas.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


7.3 Entrenamiento y validación de la CNN 35

7.3.3. Validación de la CNN


Para la validación la red neuronal profunda y garantizar la independencia de los
resultados a la partición de los datos en los conjuntos de entrenamiento y prueba, se
llevó a cabo un proceso de validación cruzada de 5 iteraciones.
En la tabla 7.2 se muestran los resultados, el promedio de clasificación de los datos
fue del 100

Tabla 7.2: 5-Fold Cross-Validation

Grupos de entrenamiento Grupo de validación Validación


g2, g3, g4, g5 g1 100 %
g1, g3, g4, g5 g2 100 %
g1, g2, g4, g5 g3 100 %
g1, g2, g3, g5 g4 100 %
g1, g2, g3, g5 g5 100 %

7.3.4. Validación del sistema


La implementación del sistema se muestra en la figura 7.8. consta de una cámara
frontal a bordo del dron y una estación en tierra que se enlazan usando una red
wifi. Una vez una imagen es enviada a la estación se hace el procesamiento visual, se
ejecuta el algoritmo de control y son devueltos al vehı́culo los comandos de vuelo.

Figura 7.8: Esquema de la implementación del sistema en tiempo real.

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


36 7. Experimentos y resultados

La validación del sistema completo fue desarrollada en tiempo real. Los experimen-
tos tuvieron lugar en diferentes escenarios con árboles. Cada experimento consistió
en el vuelo autónomo a través de una trayectoria donde el VANT se encontraba de
frente con: un árbol, dos árboles o tres árboles. Cada vuelo fue catalogado como éxi-
toso o fallido. Durante los vuelos exitosos el VANT mantuvo vuelo frontal y realizó
las maniobras para evitar el choque con los árboles. Los resultados se presentan en la
tabla 7.3.

Tabla 7.3: Resultados de los vuelos de prueba.

Árboles en la trayectoria Vuelos totales Vuelos exitosos Validación


1 25 24 96 %
2 10 20 100 %
3 3 9 100 %

En la figura 7.9 se muestra una secuencia de las tomas de la cámara a bordo VANT
quadrotor y de la vista exterior de su comportamiento. En cada toma se enuncian la
clase generada por la red neuronal convolucional profunda y la fase de vuelo.

(a) Clase: espacio libre. Vuelo frontal. (b) Clase: espacio libre. Vuelo frontal.

(c) Clase: obstáculo. Inicia maniobra eva- (d) Clase: obstáculo. Maniobra evasiva.
siva.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


7.4 Modificación del enfoque original 37

(e) Clase: obstáculo. Maniobra evasiva. (f) Clase: obstáculo. Fin de maniobra eva-
siva.

(g) Clase: espacio libre. Vuelo frontal. (h) Clase: espacio libre. Vuelo frontal.

Figura 7.9: Secuencia de vuelo del quadrotor con árbol al frente. Vista exterior y vista de la cámara
a bordo del dron.

La tabla 7.4 muestra los resultados de las pruebas en función de la evasión indi-
vidual de los árboles.

Tabla 7.4: Resultados de detección.

Árboles totales Árboles evadidos Impactos con árboles Balidación


54 53 1 97.36 %

7.4. Modificación del enfoque original


Con el fin de suavizar la transición de velocidades de la etapa de vuelo normal a la
etapa de evasión, se modifica el enfoque presentado anteriormente, estableciendo una
nueva clase en la red neuronal convolucional profunda. El nuevo enfoque considera las
clases espacio libre, obstáculo lejos y obstáculo cerca (ver figura ). Con esta nueva clase
se busca lograr la detección temprana del árbol e iniciar la reducción de la velocidad

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


38 7. Experimentos y resultados

hasta el momento en el que la red detecta la clase obstáculo cerca y entonces se ejecuta
la maniobra evasiva hacia la derecha.

Figura 7.10: Ejemplos de imágenes de clase obstáculo cerca

La nueva base de datos está formada por 45,000 ejemplos, 15,000 etiquetados de
clase espacio libre, 15,000 etiquetados de clase obstáculo lejos y los restantes 6,000 eti-
quetados de clase obstáculo cerca. Los primeros fueron obtenidos caminando alrededor
de 5 árboles a más de 200 cm.
Los ejemplos de la clase obstáculo lejos fueron obtenidos caminando alrededor del
árbol a distancias entre 50 cm y 150 cm mientras que los ejemplos de la clase obstáculo
cerca se tomaron a una distancia aproximada de 30 cm del árbol. En todos los casos
se varió la altura del VANT de 30 cm a 160 cm del suelo. En la figura 7.11 se muestra
un esquema del proceso de toma de de imágenes y en las figuras 7.12, 7.13 y 7.14 son
algunos ejemplos de las imagenes tomadas para cada una de las clases.

Figura 7.11: Esquema del proceso de toma de imágenes de las clases espacio libre, obstáculo lejos y
obstáculo cerca

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


7.4 Modificación del enfoque original 39

Figura 7.12: Ejemplos de imágenes de clase obstáculo cerca

Figura 7.13: Ejemplos de imágenes de clase obstáculo lejos

Figura 7.14: Ejemplos de imágenes de clase espacio libre

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


40 7. Experimentos y resultados

7.4.1. Entrenamiento y validación de la CNN


Los parámetros de entrenamiento y la estrategia de validación para la nueva red
neuronal convolucional son los empleados en el enfoque original.

7.4.2. Visualización de las activaciones y de los mapas de


caracterı́stica

(a) Espacio libre (b) Obstáculo lejos (c) Obstáculo cerca

(d) Espacio libre (e) Obstáculo lejos (f) Obstáculo cerca

(g) Espacio libre (h) Obstáculo lejos (i) Obstáculo cerca

(j) Espacio libre (k) Obstáculo lejos (l) Obstáculo cerca

(m) Espacio libre (n) Obstáculo lejos (ñ) Obstáculo cerca

Figura 7.15: Evolución de las activaciones de las capas convolucionales.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


7.4 Modificación del enfoque original 41

Tabla 7.5: Principales propiedades de cada capa de la red implementada con base a la arquitectura de
la red AlexNet con 3 clases y vista de los mapas de caracterı́sticas de cada etapa de convolución.

C0-Capa de entrada
Tamaño de entrada: [227 227 3]
C1-Capa convolucional
Num. Canales: 3
Tamaño de filtros: [11 11] Num. Filtros: 96
Paso: [4 4] Padding: [0 0]
Capa ReLU
Capa de normalización
Capa max Pooling
Tamaño Pool: [3 3]
Paso: [2 2] Padding: [0 0]
C2-Capa convolucional
Num. Canales: [48 48]
Tamaño de filtros: [5 5] Num. Filtros: [128 128]
Paso: [1 1] Padding: [2 2]
Capa ReLU
Capa de normalización
Capa max Pooling
Tamaño Pool: [3 3]
Paso: [2 2] Padding: [0 0]
C3-Capa convolucional
Num. Canales: [48 48]
Tamaño de filtros: [5 5] Num. Filtros: [128 128]
Paso: [1 1] Padding: [2 2]
Capa ReLU
Capa de normalización
Capa max Pooling
Tamaño Pool: [3 3]
Paso: [2 2] Padding: [0 0]
C4-Capa convolucional
Num. Canales: [48 48]
Tamaño de filtros: [5 5] Num. Filtros: [128 128]
Paso: [1 1] Padding: [2 2]
Capa ReLU
Capa de normalización
Capa max Pooling
Tamaño Pool: [3 3]
Paso: [2 2] Padding: [0 0]
Tamaño de entrada: [227 227 3]
C5-Capa convolucional
Num. Canales: [48 48]
Tamaño de filtros: [5 5] Num. Filtros: [128 128]
Paso: [1 1] Padding: [2 2]
Capa ReLU
Capa de normalización
Capa max Pooling
Tamaño Pool: [3 3]
Paso: [2 2] Padding: [0 0]
C6-Capa completamente conectada 2

Tamaño de entrada: 9216


Tamaño de salida: 4096
C7-Capa completamente conectada
Tamaño de entrada: 4096
Tamaño de salida: 4096
C-Capa completamente conectada
Tamaño de entrada: 4096
Tamaño de salida: 3

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


42 7. Experimentos y resultados

Una vez entrenada la red se generan en total 56’216,067 parámetros, de los cuales
1’669,632 corresponden a las capas convolucionales y 54’546435 corresponden a las
capas completamente conectadas.

7.4.3. Validación de la CNN

Para la validación la nueva red neuronal profunda igual se llevó a cabo el proceso
de validación cruzada de 5 iteraciones.
En la tabla 7.6 se muestran los resultados, el promedio de clasificación de los datos
fue del 100

Tabla 7.6: 5-Fold Cross-Validation

Grupos de entrenamiento Grupo de validación Validación


g2, g3, g4, g5 g1 100 %
g1, g3, g4, g5 g2 100 %
g1, g2, g4, g5 g3 100 %
g1, g2, g3, g5 g4 100 %
g1, g2, g3, g5 g5 100 %

7.4.4. Validación del sistema

La metodologı́a de validación del sistema completo fue desarrollada en tiempo real


de la misma manera que en el caso del enfoque incial y al igual que la implementación
del sistema (ver figura 7.8).
Los experimentos tuvieron lugar en diferentes escenarios con árboles. Cada expe-
rimento consistió en el vuelo autónomo a través de una trayectoria donde el VANT se
encontraba de frente con un árbol. Cada vuelo fue catalogado como éxitoso o fallido.
Durante los vuelos exitosos el VANT mantuvo vuelo frontal a una velocidad alta y
al momento de encontrarse con un árbol a una distancia prudente se disminuyó la
velocidad para finalmente realizar la maniobra evasiva. Los resultados se presentan
en la tabla 7.7.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


7.4 Modificación del enfoque original 43

Tabla 7.7: Resultados de los vuelos de prueba.

Árboles en la trayectoria Vuelos totales Vuelos exitosos Validación


1 10 10 100 %

En la figura 7.16 se muestra una secuencia de las tomas de la cámara a bordo


VANT quadrotor y de la vista exterior de su comportamiento. En cada toma se
enuncian la clase generada por la red neuronal convolucional profunda y la fase de
vuelo.

(a) Clase: espacio libre. Vuelo frontal rápido. (b) Clase: espacio libre. Vuelo frontal rápido.

(c) Clase: obstáculo lejos. Vuelo frontal lento. (d) Clase: obstáculo lejos. Vuelo frontal lento.

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


44 7. Experimentos y resultados

(e) Clase: obstáculo cerca. Vuelo evasivo. (f) Clase: obstáculo cerca. Vuelo evasivo.

(g) Clase: espacio libre. Fin de evasión. (h) Clase: espacio libre. Vuelo frontal rápido.

Figura 7.16: Secuencia de vuelo del quadrotor con árbol al frente. Vista exterior y vista de la cámara
a bordo del dron.

Con este enfoque se consiguió que el VANT lograra un mejor comportamiento en


cuanto a la velocidad a la que desplazó. Ya que durante el tiempo de vuelo frontal
en áreas de vuelo despejadas la velocidad de vuelo se incrementa y al detectar un
obstáculo a una distancia prudente se disminuye. Este proceso facilita el cambio de
la dirección de desplazamiento a la hora de hacer la evasión y se evita una posible
colisión debida a los retardos del sistema.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


Capı́tulo 8

Conclusiones

Con este primer intento por lograr un sistema de vuelo autónomo para VANT
en ambientes forestales sin acceso a GPS o a un mapa previo del lugar, se consiguió
probar la efectividad de las redes neuronales convolucionales profundas, ya que se
logró un enfoque de clasificación de la escena que permite ejecutar una polı́tica de
vuelo evasivo. El sistema es aplicable a VANT de pequeña escala que cuenten con
una cámara monocular y un sistema de control de orientación incorporado.
Se desarrollaron dos enfoques del sistema. El primero basado en una red que
clasifica la escena vista por el VANT en dos grupos, el primero correspondiente a
la clase espacio libre y el segundo a la clase obstáculo. Las clases implican dos tipos
de moviento para el VANT, el primero corresponde a un desplazamiento frontal a
una velocidad constante y el segundo a la maniobra evasiva que corresponde a un
desplazamiento lateral derecho a una velocidad constante. Con este primer sistema
se observó que apesar de que la clasificación de la escena se daba oportunamente, el
tiempo de procesamiento y de ejecución de la maniobra probocaban que la maniobra
se realizara muy cerca del árbol limitando la velocidad de vuelo del VANT.
El segundo enfoque es una variante del primero y con este se busca que la transición
de un moviento al otro sea más suave y que la maniobra de evasión se realice sin
riesgo de chocar. Consiste en clasificar las escenas vistas por el VANT en tres grupos,
el primero correspondiente a la clase espacio libre, el segundo a la clase obstáculo
lejos y el tercero a la clase obstáculo cerca. Las clases implican tres tipos de moviento
para el VANT, el primero corresponde a un desplazamiento frontal a una velocidad
constante, el segundo a un desplazamiento frontal pero con reducción de velocidad y
el tercero a la maniobra evasiva que corresponde a un desplazamiento lateral derecho
a una velocidad constante. Con este enfoque se consiguió que el VANT viajara a una
mayor velocidad y se demostró la capacidad de la red para clasificar distancia.

[45]
46 8. Conclusiones

Los sistemas fueron probados con un VANT de bajo costo en diferentes escenarios
forestales, donde el vehı́culo tuvo que evitar un árbol por vuelo, dos árboles por vuelo
y tres árboles por vuelo. Con la primer versión del sistema se hicieron un total de 38
vuelos, con 37 vuelos exitosos y solo 1 donde el vehı́culo se estrelló con el árbol. Cabe
destacar que en este caso se empleó un único árbol para construir la base de datos
del entrenamiento, pero los experimentos de vuelo se llevaron a cabo con 8 árboles
diferentes. Con la segunda versión del sistema se hicieron un total de 10 vuelos, con
10 vuelos exitosos. En este caso se tomaron imágenes de 5 árboles diferentes para
construir la base de datos del entrenamiento.
El sistema de vuelo autónomo desarrollado es un sistema no basado en modelo,
por tanto puede ser exportado a diferentes plataformas de vuelo sin mayores ajustes.

8.1. Publicaciones
Tı́tulo: Towards Autonomous Flight in Forest Environments
Autores: Dania Largo Jaimes, Jose Martinez Carranza e Israel Cruz Vega
Congreso: 4th RED-UAS 2017
Estado: Sometido

8.2. Trabajo futuro


El sistema diseñado puede ser incorporado a un sistema de navegación que incluya
módulos de planeación y de seguimiento de trayectorias que se base en la clasifición de
escena lograda con la red neuronal convolucional entrenada en este trabajo. Con ello se
puede lograr que el VANT siga mejores trayectorias, produciendo un desplazamiento
más rápido y contı́nuo.
Otro posible enfoque es el de desarrollar un sistema basado en aprendizaje por-
fundo que además de evitar colisiones con los árboles pueda evadir obstáculos en
movimiento como por ejemplo algún animal o una persona.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


Apéndices

[47]
Apéndice

Apéndice A: Redes neuronales


convolucionales en Matlab

A continuación se describen las generalidades de la aplicación de las redes neu-


ronales convolucionales en Matlab. La información fue tomada de la documentación
proporcionada por MathWorks R [29].

A.1. Arquitectura de las redes neuronales convo-


lucionales

Una red neuronal convolucional consta de múltiples capas, como capas convolu-
cionales, capas de agrupación máxima o capas de agrupación por promedio y capas
completamente conectadas conectadas. Matlab permite construir la arquitectura, en-
trenar y usar redes neuronales convolucionales. El primer paso para crear y entrenar
una nueva red neuronal convolucional (ConvNet) es definir las capas de red.

Figura A.1: Estructura de red neuronal convolucional.


Fuente: [29]

[49]
50 A. Apéndice A: Redes neuronales convolucionales en Matlab

A.1.1. Capa de imagen de entrada


define el tamaño de las imágenes de entrada de una red neuronal convolucional y
contiene los valores de pixel sin procesar de las imágenes. En esta capa, también se
puede especificar métodos de aumento de datos, como desplazamiento, recorte aleato-
rio de los datos. El propósito de las transformaciones de aumento y normalización es
reducir la sobrealimentación, lo que podrı́a ocurrir con redes especialmente mayores.

A.1.2. Capa convolucional


Una capa convolucional consta de neuronas que se conectan a pequeñas regiones de
la entrada o de la capa anterior. Estas regiones son llamadas filtros. Para cada región se
computa el producto punto de los pesos y la entrada y luego se suma el término bias. El
filtro se mueve a través de la entrada vertical y horizontalmente, repitiendo la misma
operación para cada región. Estas regiones locales que las neuronas conectan podrı́an
solaparse. El número de pesos usados por un filtro es h×w ×c, donde h es la altura, w
es el ancho del tamaño del filtro, y c es el número de canales en la entrada. Como un
filtro se mueve a través de la entrada, se usa el mismo conjunto de pesos y bias de la
convolución, formando un mapa de caracterı́sticas. La capa de convolución usualmente
tiene múltiples mapas de caracterı́sticas, cada uno con un conjunto diferente de pesos
y un bias. El número de mapas de caracterı́sticas es determinado por el número de
filtros. El número total de parámetros en una capa convolucinal es (h × w × c +
1) × número de filtros, donde 1 es por el bias. El alto y ancho de la salida de la capa
convolucional es (tamaño entrada−tamaño filtro+2×Padding)/Stride+1. Este valor
debe ser un entero para el cubrimiento total de la imagen. Si la combinación de estos
parámetros no cubre completamente la imagen, el software por defecto ignora la parte
comprendida a la derecha y abajo del borde en la convolución. El número total de
neuronas en un mapa de caracterı́sticas, se conoce como Map Size, es el producto del
alto por el ancho de la salida. El número total de neuronas en una capa convolucional,
entonces, es tamaño del mapa × número de filtros.

A.1.3. Capa ReLU


Una capa convolucional suele estar seguida por una función de activación no lineal.
En MATLAB, es una función de unidad rectificada lineal (ReLU), especificada por

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


A.1 Arquitectura de las redes neuronales convolucionales 51

una capa ReLU. Realiza una operación de umbral para cada elemento, donde cualquier
valor de entrada menor que cero se pone a cero.

A.1.4. Capa de normalización de respuesta local


Esta capa realiza una normalización de respuesta local en el canal. Normalmente
sigue a la capa de activación ReLU. Esta capa reemplaza cada elemento con un valor
normalizado que obtiene utilizando los elementos de un cierto número de canales
vecinos (elementos en la ventana de normalización). Es decir, para cada elemento x0
en la entrada, el calculo del valor normalizado,

x
x0 =  (A.1.1)
α ∗ ss β
K+
Tamaño de la ventana de canal

Donde K, α, y β son los hiperparámetros en la normalización, y ss es la suma de los


cuadrados de los elementos en la ventana de normalización.

A.1.5. Capa de pooling


Las capas de agrupación máxima y de agrupación promedio siguen a las capas
convolucionales para el muestreo descendente, por lo tanto, reducen el número de
conexiones a las capas siguientes (normalmente una capa completamente conecta-
da). No realizan ningún aprendizaje por sı́ mismos, sino que reducen el número de
parámetros a aprender en las capas siguientes. También ayudan a reducir la sobre
alimentación. La capa de agrupación máxima devuelve los valores máximos de las re-
giones rectangulares de su entrada. De manera similar, la capa de agrupación media
emite los valores medios de las regiones rectangulares de su entrada.

A.1.6. Capa de dropout


Una capa de dropout coloca aleatoriamente los elementos de entrada de la capa
en cero con una probabilidad dada. Aunque la salida de una capa de salida es igual
a su entrada, esta operación corresponde a la caı́da temporal de una unidad elegida
aleatoriamente y de todas sus conexiones de la red durante el entrenamiento. Ası́,
para cada nuevo elemento de entrada, se selecciona aleatoriamente un subconjunto
de neuronas, formando una arquitectura de capa diferente. Estas arquitecturas usan

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


52 A. Apéndice A: Redes neuronales convolucionales en Matlab

pesos comunes, pero debido a que el aprendizaje no depende de neuronas y conexiones


especı́ficas, la capa de dropout puede ayudar a prevenir el sobre alimentación. De
forma similar a las capas de agrupación máxima o media, no hay aprendizaje en esta
capa.

A.1.7. Capa completamente conectada


Las capas convolucionales (y de muestreo descendente) son seguidas por una o
más capas completamente conectadas. Como su nombre indica, todas las neuronas en
una capa completamente conectada se conectan a las neuronas de la capa anterior.
Esta capa combina todas las caracterı́sticas (información local) aprendidas por las
capas anteriores a través de la imagen para identificar los patrones más grandes. Para
problemas de clasificación, la última capa completamente conectada los combina para
clasificar las imágenes. Es por eso que la última capa completamente conectada tiene
igual número de neuronas que el número de clases en los datos de destino. Para
problemas de regresión, el tamaño de salida debe ser igual al número de variables
de respuesta. También puede ajustar la velocidad de aprendizaje y los parámetros
de regularización para esta capa utilizando. Si decide no ajustarlos, se utilizan los
parámetros de entrenamiento globales definidos.

A.1.8. Capa softmax y de clasificación


Para problemas de clasificación, una capa softmax y luego una capa de clasificación
deben seguir la capa final totalmente conectada. La función de activación de la unidad
de salida es la función softmax:

exp (ar (x))


yr (x) = Pk (A.1.2)
j=1 expaj (x)

donde 0 ≤ yr ≤ 1 y kj=1 = 1.
P

Una capa de salida de clasificación debe seguir la capa softmax. En la capa de


salida de clasificación, se toman los valores de la función softmax y se asigna cada
entrada a una de las k clases mutuamente exclusivas usando la función de entropı́a
cruzada para un esquema de codificación 1 − k.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


Apéndice

Apendice B: Visualización de las


activaciones de las capas
convolucionales

Las figuras a continuación corresponden a los mapas de caracterı́sticas genera-


dos para todas las capas convolucionales junto a un zoom del mapa que presentó lós
máximos valores de activación de cada capa para los dos enfoques de red propuestos.
Los valores de activación representados en las imágenes no corresponden a los valores
reales de activación sino a la normalización. El valor de activación más alto corres-
ponde al color blanco mientras que el valor de activación más bajo corresponde al
color negro.

B-1 Visualización de las activaciones de las capas convolucionales de la red neuronal


convolucional de dos clases espacio libre y obstáculo.

(a) Activaciones (b) Máxima activación


(F-90)

Figura B.1: Activaciones de la primera capa convolucional para imagen de clase espacio libre.

[53]
54 B. Apendice B: Visualización de las activaciones de las capas convolucionales

(a) Activaciones (b) Máxima activación


(F-85)

Figura B.2: Activaciones de la primera capa convolucional para imagen de clase obstáculo.

(a) Activaciones (b) Máxima activación


(F-51)

Figura B.3: Activaciones de la segunda capa convolucional para imagen de clase espacio libre.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


55

(a) Activaciones (b) Máxima activación


(F-231)

Figura B.4: Activaciones de la segunda capa convolucional para imagen de clase obstáculo.

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


56 B. Apendice B: Visualización de las activaciones de las capas convolucionales

(a) Activaciones (b) Máxima activación


(F-86)

Figura B.5: Activaciones de la tercera capa convolucional para imagen de clase espacio libre.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


57

(a) Activaciones (b) Máxima activación


(F-54)

Figura B.6: Activaciones de la tercera capa convolucional para imagen de clase obstáculo.

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


58 B. Apendice B: Visualización de las activaciones de las capas convolucionales

(a) Activaciones (b) Máxima activación


(F-181)

Figura B.7: Activaciones de la cuarta capa convolucional para imagen de clase espacio libre.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


59

(a) Activaciones (b) Máxima activación


(F-341)

Figura B.8: Activaciones de la cuarta capa convolucional para imagen de clase obstáculo.

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


60 B. Apendice B: Visualización de las activaciones de las capas convolucionales

(a) Activaciones (b) Máxima activación


(F-5)

Figura B.9: Activaciones de la quinta capa convolucional para imagen de clase espacio libre.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


61

(a) Activaciones (b) Máxima activación


(F-21)

Figura B.10: Activaciones de la quinta capa convolucional para imagen de clase obstáculo.

B-2 Visualización de las activaciones de las capas convolucionales de la red neuronal


convolucional de tres clases espacio libre, obstáculo lejos y obstáculo cerca.

(a) Activaciones (b) Máxima activación


(F-85)

Figura B.11: Activaciones de la primera capa convolucional para imagen de clase espacio libre.

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


62 B. Apendice B: Visualización de las activaciones de las capas convolucionales

(a) Activaciones (b) Máxima activación


(F-85)

Figura B.12: Activaciones de la primera capa convolucional para imagen de clase obstáculo lejos.

(a) Activaciones (b) Máxima activación


(F-85)

Figura B.13: Activaciones de la primera capa convolucional para imagen de clase obstáculo cerca.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


63

(a) Activaciones (b) Máxima activación


(F-252)

Figura B.14: Activaciones de la segunda capa convolucional para imagen de clase espacio libre.

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


64 B. Apendice B: Visualización de las activaciones de las capas convolucionales

(a) Activaciones (b) Máxima activación


(F-252)

Figura B.15: Activaciones de la segunda capa convolucional para imagen de clase obstáculo lejos.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


65

(a) Activaciones (b) Máxima activación


(F-252)

Figura B.16: Activaciones de la segunda capa convolucional para imagen de clase obstáculo cerca.

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


66 B. Apendice B: Visualización de las activaciones de las capas convolucionales

(a) Activaciones (b) Máxima activación


(F-75)

Figura B.17: Activaciones de la tercera capa convolucional para imagen de clase espacio libre.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


67

(a) Activaciones (b) Máxima activación


(F-75)

Figura B.18: Activaciones de la tercera capa convolucional para imagen de clase obstáculo lejos.

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


68 B. Apendice B: Visualización de las activaciones de las capas convolucionales

(a) Activaciones (b) Máxima activación


(F-75)

Figura B.19: Activaciones de la tercera capa convolucional para imagen de clase obstáculo cerca.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


69

(a) Activaciones (b) Máxima activación


(F-341)

Figura B.20: Activaciones de la cuarta capa convolucional para imagen de clase espacio libre.

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


70 B. Apendice B: Visualización de las activaciones de las capas convolucionales

(a) Activaciones (b) Máxima activación


(F-70)

Figura B.21: Activaciones de la cuarta capa convolucional para imagen de clase obstáculo lejos.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


71

(a) Activaciones (b) Máxima activación


(F-287)

Figura B.22: Activaciones de la cuarta capa convolucional para imagen de clase obstáculo cerca.

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


72 B. Apendice B: Visualización de las activaciones de las capas convolucionales

(a) Activaciones (b) Máxima activación


(F-75)

Figura B.23: Activaciones de la tercera capa convolucional para imagen de clase espacio libre.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


73

(a) Activaciones (b) Máxima activación


(F-130)

Figura B.24: Activaciones de la tercera capa convolucional para imagen de clase obstáculo lejos.

Sistema de exploración en ambientes forestales basado en aprendizaje profundo


74 B. Apendice B: Visualización de las activaciones de las capas convolucionales

(a) Activaciones (b) Máxima activación


(F-160)

Figura B.25: Activaciones de la tercera capa convolucional para imagen de clase obstáculo cerca.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


Bibliografı́a

[1] K. P. Valavanis y G. J. Vachtsevanos, “Classification of UAVs,” en Handbook of


Unmanned Aerial Vehicles (K. P. Valavanis y G. J. Vachtsevanos, Eds.), cap. 5,
Springer Reference, 2015.

[2] L. Mejias, J. Lai, y T. Bruggemann, “20 Sensors for Missions,” en Handbook of


Unmanned Aerial Vehicles, cap. 20, pp. 386–398, 2015.

[3] S. B. Álvaro, ANÁLISIS DE MÉTODOS DE PROCESAMIENTO DE IMÁGE-


NES ESTEREOSCÓPICAS FORESTALES. PhD thesis, Universidad Complu-
tense de Madrid, 2008.

[4] M. Achtelik, A. Bachrach, R. He, S. Prentice, y N. Roy, “Stereo Vision and Laser
Odometry for Autonomous Helicopters in GPS-denied Indoor Environments,”

[5] A. Bachrach, R. He, y N. Roy, “Autonomous Flight in Unknown Indoor Environ-


ments,” International Journal of Micro Air Vehicles, vol. 1, no. 4, pp. 217–228,
2010.

[6] S. Weiss, D. Scaramuzza, y R. Siegwart, “Monocular-SLAM-based navigation for


autonomous micro helicopters in GPS-denied environments,” Journal of Field
Robotics, vol. 28, pp. 854–874, nov 2011.

[7] M. C. for Object Tracking y Robotics, “Vicon.” https://www.vicon.com/motion-


capture/engineering. Fecha de consulta: 2017-04-16.

[8] A. Zulu y S. John, “A Review of Control Algorithms for Autonomous Quadro-


tors,” Open Journal of Applied Sciences, vol. 4, no. 4, pp. 547–556, 2014.

[75]
76 BIBLIOGRAFÍA

[9] M. A. Olivares-Mendez Pascual Campoy, I. Mellado-Bataller, y L. Mejias, “See-


and-Avoid Quadcopter using Fuzzy Control Optimized by Cross-Entropy,” en
International Conference on Unmanned Aircraft Systems (ICUAS), 2012.

[10] C. Fu, M. A. Olivares-Mendez, R. Suarez-Fernandez, P. Campoy, C. Fu,


R. Suarez-Fernandez, P. Campoy, y M. A. Olivares-Mendez, “Monocular Visual-
Inertial SLAM-Based Collision Avoidance Strategy for Fail-Safe UAV Using
Fuzzy Logic Controllers Comparison of Two Cross-Entropy Optimization Ap-
proaches,” J Intell Robot Syst, vol. 73, pp. 513–533, 2014.

[11] L. Tai y M. Liu, “Towards cognitive exploration through deep reinforcement


learning for mobile robots,”

[12] S. Ross, N. Melik-Barkhudarov, K. S. Shankar, A. Wendel, D. Dey, J. A. Bagnell,


y M. Hebert, “Learning Monocular Reactive UAV Control in Cluttered Natural
Environments,” en 2013 IEEE International Conference on Robotics and Auto-
mation (ICRA),, pp. 1765–1772, IEEE, 2013.

[13] D. Gandhi, L. Pinto, y A. Gupta, “Learning to Fly by Crashing,” 2017.

[14] Y. Lecun, U. Muller, J. Ben, y E. Cosatto, “Off-Road Obstacle Avoidance th-


rough End-to-End Learning,”

[15] A. Giusti, J. Guzzi, D. C. Ciresan, F.-L. He, J. P. Rodriguez, F. Fontana,


M. Faessler, C. Forster, J. Schmidhuber, G. D. Caro, D. Scaramuzza, y L. M.
Gambardella, “A Machine Learning Approach to Visual Perception of Forest
Trails for Mobile Robots,” IEEE Robotics and Automation Letters, vol. 1,
pp. 661–667, jul 2016.

[16] A. F. A. (FAA), “112th Congress Public Law 95,” 2012.

[17] K. Nonami, F. Kendoul, W. Wang, S. Satoshi, y D. Nakazawa, Autonomous


Flying Robots Unmanned Aerial Vehicles and Micro Aerial Vehicles, vol. 1542.
2015.

[18] K. Valavanis y G. Vachtsevanos, Handbook of Unmanned Aerial Vehicles. Sprin-


ger Netherlands, 2015.

[19] I. Goodfellow, Y. Bengio, y A. Courville, Deep Learning. MIT Press, 2016.

Coordinación de Electrónica Instituto Nacional de Astrofı́sica, Óptica y Electrónica


BIBLIOGRAFÍA 77

[20] Y. Guo, Y. Liu, A. Oerlemans, S. Lao, S. Wu, y M. S. Lew, “Deep learning for
visual understanding: A review,” Neurocomputing, vol. 187, pp. 27–48, 2016.

[21] A. Krizhevsky, I. Sutskever, y G. E. Hinton, “ImageNet Classification with Deep


Convolutional Neural Networks,” en Advances in Neural Information Processing
Systems 25 (NIPS2012), pp. 1097–1105, 2012.

[22] P. Baldi y P. J. Sadowski, “Understanding Dropout,” Nips, no. 1, pp. 2814–2822,


2013.

[23] D. Yu y L. Deng, Automatic Speech Recognition A Deep Learning Approach.


Springer-Verlag London, 1 ed., 2015.

[24] Y. LeCun, Y. Bengio, y G. Hinton, “Deep learning,” Nature, vol. 521, pp. 436–
444, may 2015.

[25] ROS.org, “About ROS.” http://www.ros.org/about-ros/. Fecha de consulta:


2017-06-15.

[26] I. Baranov, “How to Guide: ROS 101 - Clearpath Robotics.”


https://www.clearpathrobotics.com/2014/01/how-to-guide-ros-101/. Fecha
de consulta: 2017-05-15.

[27] M. Monajjemi, “bebop autonomy - ROS Driver for Parrot Bebop Drone
(quadrocopter) 1.0 & 2.0 — bebop autonomy indigo-devel documentation.”
http://bebop-autonomy.readthedocs.io/en/latest/. Fecha de consulta: 2017-06-
15, 2015.

[28] Parrot, “Parrot BEBOP 2 FPV — Sitio Web Official de Parrot.”


https://www.parrot.com/es/drones/parrot-bebop-2-fpv. Fecha de consulta:
2017-03-04.

[29] MathWorks, “Convolutional Neural Networks - MATLAB & Simulink.”


https://www.mathworks.com/help/nnet/convolutional-neural-networks.html.
Fecha de consulta: 2017-04-24.

Sistema de exploración en ambientes forestales basado en aprendizaje profundo

Das könnte Ihnen auch gefallen