Beruflich Dokumente
Kultur Dokumente
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:
Asesores:
Dr. Israel Cruz Vega
Dr. José Martı́nez Carranza
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
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
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
[vii]
viii TABLA DE CONTENIDO
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
8. Conclusiones 45
8.1. Publicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.2. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Apéndices 47
Bibliografı́a 75
[xi]
xii ÍNDICE DE FIGURAS
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
[xv]
xvi ÍNDICE DE TABLAS
Introducción
[1]
2 1. Introducción
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
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.
[7]
8 2. Estado del arte
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].
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.
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.
[11]
12 3. Vehı́culos aéreos no tripulados (VANT)
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.
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].
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.
[15]
16 4. Aprendizaje profundo en redes neuronales convolucionales
XX
s(i, j) = (I ∗ K)(i, j) = I(m, n)K(i − m, j − n) (4.1.1)
m n
XX
s(i, j) = (I ∗ K)(i, j) = I(i + m, j + n)K(m, n) (4.1.2)
m n
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
Dropout y dropconect
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.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
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].
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.
[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.
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:
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
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).
Sistema de exploración en
ambientes forestales basado en
aprendizaje profundo
[25]
26 6. Sistema de exploración en ambientes forestales basado en aprendizaje profundo
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.
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.
Experimentos y resultados
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-
Fuente: [28].
[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
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
Figura 7.5: Activaciones de la primera capa convolucional para imagen de clase espacio libre.
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.
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.
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.
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.
(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.
hasta el momento en el que la red detecta la clase obstáculo cerca y entonces se ejecuta
la maniobra evasiva hacia la derecha.
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
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
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.
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
(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.
(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.
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
[47]
Apéndice
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.
[49]
50 A. Apéndice A: Redes neuronales convolucionales en Matlab
una capa ReLU. Realiza una operación de umbral para cada elemento, donde cualquier
valor de entrada menor que cero se pone a cero.
x
x0 = (A.1.1)
α ∗ ss β
K+
Tamaño de la ventana de canal
donde 0 ≤ yr ≤ 1 y kj=1 = 1.
P
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
Figura B.2: Activaciones de la primera capa convolucional para imagen de clase obstáculo.
Figura B.3: Activaciones de la segunda capa convolucional para imagen de clase espacio libre.
Figura B.4: Activaciones de la segunda capa convolucional para imagen de clase obstáculo.
Figura B.5: Activaciones de la tercera capa convolucional para imagen de clase espacio libre.
Figura B.6: Activaciones de la tercera capa convolucional para imagen de clase obstáculo.
Figura B.7: Activaciones de la cuarta capa convolucional para imagen de clase espacio libre.
Figura B.8: Activaciones de la cuarta capa convolucional para imagen de clase obstáculo.
Figura B.9: Activaciones de la quinta capa convolucional para imagen de clase espacio libre.
Figura B.10: Activaciones de la quinta capa convolucional para imagen de clase obstáculo.
Figura B.11: Activaciones de la primera capa convolucional para imagen de clase espacio libre.
Figura B.12: Activaciones de la primera capa convolucional para imagen de clase obstáculo lejos.
Figura B.13: Activaciones de la primera capa convolucional para imagen de clase obstáculo cerca.
Figura B.14: Activaciones de la segunda capa convolucional para imagen de clase espacio libre.
Figura B.15: Activaciones de la segunda capa convolucional para imagen de clase obstáculo lejos.
Figura B.16: Activaciones de la segunda capa convolucional para imagen de clase obstáculo cerca.
Figura B.17: Activaciones de la tercera capa convolucional para imagen de clase espacio libre.
Figura B.18: Activaciones de la tercera capa convolucional para imagen de clase obstáculo lejos.
Figura B.19: Activaciones de la tercera capa convolucional para imagen de clase obstáculo cerca.
Figura B.20: Activaciones de la cuarta capa convolucional para imagen de clase espacio libre.
Figura B.21: Activaciones de la cuarta capa convolucional para imagen de clase obstáculo lejos.
Figura B.22: Activaciones de la cuarta capa convolucional para imagen de clase obstáculo cerca.
Figura B.23: Activaciones de la tercera capa convolucional para imagen de clase espacio libre.
Figura B.24: Activaciones de la tercera capa convolucional para imagen de clase obstáculo lejos.
Figura B.25: Activaciones de la tercera capa convolucional para imagen de clase obstáculo cerca.
[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,”
[75]
76 BIBLIOGRAFÍA
[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.
[24] Y. LeCun, Y. Bengio, y G. Hinton, “Deep learning,” Nature, vol. 521, pp. 436–
444, may 2015.
[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.