• No results found

Reconocimiento Visual de Escenas en Entornos Multi-Robot

N/A
N/A
Protected

Academic year: 2022

Share "Reconocimiento Visual de Escenas en Entornos Multi-Robot"

Copied!
73
0
0

Laster.... (Se fulltekst nå)

Fulltekst

(1)

Reconocimiento Visual de Escenas en Entornos Multi-Robot

Miguel ´Angel Moll Llabr´es

Memoria del Trabajo de Fin de M´aster M´aster Universitario en Ingenier´ıa Industrial

de la

UNIVERSITAT DE LES ILLES BALEARS Curso Acad´emico 2018/2019

Fecha: 31/07/2019

Tutor 1: Dr. Emilio Garc´ıa Fidalgo Tutor 2: Dr. Alberto Ortiz Rodr´ıguez

(2)

Resumen

Dentro del ´ambito de la rob´otica m´ovil, la generaci´on de mapas del en- torno (mapping por sus traducci´on al ingl´es) se considera una tarea funda- mental, ya que sirve como base a otras tareas de m´as alto nivel tales como la localizaci´on, la planificaci´on de caminos o la evitaci´on de obst´aculos. El proceso de construcci´on de mapas se encarga de construir una representa- ci´on del entorno en el que opera el robot a partir de la informaci´on sensorial recibida. Sin embargo, todos los sensores presentan un inherente ruido que dificulta este proceso, produciendo incoherencias en los mapas resultantes.

Por esta raz´on, los algoritmos actuales de construcci´on de mapas se apoyan en t´ecnicas alternativas que permiten determinar cuando el robot se encuen- tra en una zona ya visitada previamente. La importancia de ser consciente de estas situaciones radica en que esta informaci´on permite minimizar el error que presentan los mapas resultantes, dando lugar a representaciones del entorno coherentes y mucho m´as fieles a la realidad.

La capacidad de determinar si el robot se encuentra en una zona ya vi- sitada previamente es lo que se conoce en rob´otica m´ovil como la detecci´on de bucles (en ingl´es, loop closure detection). Durante los ´ultimos a˜nos han proliferado soluciones para detectar bucles basadas en t´ecnicas de visi´on por computador, debido especialmente a la existencia, cada vez m´as, de ordena- dores m´as potentes y a la reducci´on del coste de las c´amaras convencionales.

Cuando el problema de detectar bucles se basa en im´agenes se dice que el proceso est´a basado en la apariencia (appearance-based loop closure detec- tion). En ocasiones, tambi´en se le conoce como reconocimiento visual de escenas (visual place recognition).

La mayor´ıa de las soluciones propuestas para el cierre visual de bucles est´an pensadas para funcionar sobre un ´unico agente. Sin embargo, en entor- nos grandes, el uso de diversos robots trabajando de una forma cooperativa provee diversos beneficios, como, por ejemplo, la reducci´on del tiempo uti-

(3)

que operen en escenarios multi-robot. Este tipo de escenarios, debido a que cada agente tiene una visi´on parcial del entorno, presentan una serie de di- ficultades que no se encuentran al detectar bucles con un ´unico robot y que deben ser tenidas en consideraci´on.

Dentro de este contexto, el objetivo de este trabajo de final de m´aster es adaptar una soluci´on existente de reconocimiento visual de escenas para trabajar en entornos multi-robot. De forma m´as precisa, los objetivos del trabajo son:

Estudiar y comprender el funcionamiento de un algoritmo reciente de detecci´on visual de bucles.

Adaptar dicho algoritmo para trabajar en un entorno distribuido, im- plementando diversas variantes de funcionamiento.

Comparar los algoritmos desarrollados con respecto a la versi´on para un ´unico robot y con algunas soluciones existentes.

Evaluar las ventajas y desventajas de cada variante de funcionamiento.

(4)

´ Indice general

1. Introducci´on 10

1.1. Rob´otica . . . 10

1.2. Navegaci´on . . . 12

1.3. Construcci´on de mapas, localizaci´on y SLAM . . . 12

1.4. Detecci´on de bucles . . . 14

1.5. Sistemas multi-robot . . . 15

1.6. Tipos de sistemas multi-robot . . . 16

1.7. Objetivos del proyecto . . . 16

1.8. Organizaci´on del documento . . . 16

2. Aspectos fundamentales de la descripci´on e indexaci´on de im´agenes 18 2.1. Descripci´on de im´agenes . . . 18

2.1.1. Descriptores locales . . . 18

2.1.2. Descriptores globales . . . 20

2.2. Indexaci´on de im´agenes . . . 21

2.2.1. Bolsa de palabras visuales (BoW) . . . 22

3. Breve revisi´on de trabajos relacionados 24 3.1. M´etodos basados en descriptores globales . . . 24

3.1.1. Histogramas . . . 24

3.1.2. Gist . . . 25

3.1.3. Soluciones inspiradas en la biolog´ıa . . . 26

3.2. M´etodos basados en descriptores locales . . . 26

3.3. M´etodos basados en el modelo BoW . . . 27

3.3.1. Sistemas basados en BoW offline . . . 27

3.3.2. Sistemas basados en BoW online . . . 28

3.3.3. Sistemas multi-robot . . . 28

(5)

4. OBIndex2 e iBoW-LCD 29

4.1. OBIndex2 . . . 29

4.2. iBoW-LCD . . . 32

4.3. Resultados . . . 34

5. Primer enfoque multi-robot: detecci´on de bucles centraliza- da 37 5.1. Arquitectura . . . 37

5.1.1. Modificaciones realizadas sobre la librer´ıaOBIndex2 . 39 5.1.2. Modificaciones realizadas sobre iBoW-LCD . . . 40

5.2. Resultados . . . 41

5.2.1. Resultados para Lip6In . . . 41

5.2.2. Resultados para Lip6Out . . . 42

5.2.3. Resultados para City Centre . . . 44

5.2.4. Resultados para KITTI00 . . . 46

5.2.5. Resultados para KITTI05 . . . 47

5.2.6. An´alisis de la independencia deldataset . . . 48

6. Segundo enfoque multi-robot: detecci´on de bucles distribui- da 51 6.1. Arquitectura . . . 51

6.2. Resultados . . . 53

6.2.1. Resultados para Lip6In . . . 53

6.2.2. Resultados para Lip6Out . . . 54

6.2.3. Resultados para City Centre . . . 55

6.2.4. Resultados para KITTI00 . . . 57

6.2.5. Resultados para KITTI05 . . . 57

6.2.6. An´alisis de la independencia deldataset . . . 59

6.3. Discusi´on . . . 60

7. Conclusiones y trabajo futuro 62 7.1. Conclusiones . . . 62

7.2. Trabajo futuro . . . 63

(6)

´ Indice de figuras

1.1. Ejemplo de dron a´ereo . . . 10 1.2. Ejemplo de industria automatizada . . . 11 1.3. Interfaz de robot aspirador . . . 13 1.4. Diferencia entre dos representaciones de un mismo mapa usan-

do y sin usar t´ecnicas de cierre de bucles . . . 15 2.1. Funcionamiento de un algoritmo BoW usado para clasificar

im´agenes . . . 23 3.1. Ejemplos de histogramas usados como descriptores globales . 25 4.1. Ejemplo de ´arbol creado con el algoritmo de Muja y Lowe . . 30 4.2. Representaci´on de 3 islas con dimensiones distintas . . . 33 4.3. Representaci´on de la precisi´on vs la sensibilidad obtenido al

procesar distintosdatasets usandoOBIndex2 e IBoWLCD . . 36 5.1. Esquema de la arquitectura usada para llevar a cabo el enfo-

que centralizado . . . 38 5.2. Resultados obtenidos al ejecutar la soluci´on centralizada so-

bre eldataset Lip6In . . . 42 5.3. Resultados obtenidos al ejecutar la soluci´on centralizada so-

bre eldataset Lip6Out . . . 44 5.4. Resultados obtenidos al ejecutar la soluci´on centralizada so-

bre eldataset City Centre . . . 45 5.5. Resultados obtenidos al ejecutar la soluci´on centralizada so-

bre eldataset KITTI00 . . . 47 5.6. Resultados obtenidos al ejecutar la soluci´on centralizada so-

bre eldataset KITTI05 . . . 48 5.7. Representaci´on del resultado obtenido al dividir cada data-

(7)

6.1. Esquema de la arquitectura usada para llevar a cabo el enfo- que no centralizado . . . 52 6.2. Resultados obtenidos al ejecutar la soluci´on no centralizada

sobre eldataset Lip6In . . . 53 6.3. Resultados obtenidos al ejecutar la soluci´on no centralizada

sobre eldataset Lip6Out . . . 55 6.4. Resultados obtenidos al ejecutar la soluci´on no centralizada

sobre eldataset City Centre . . . 56 6.5. Resultados obtenidos al ejecutar la soluci´on no centralizada

sobre eldataset KITTI00 . . . 58 6.6. Resultados obtenidos al ejecutar la soluci´on no centralizada

sobre eldataset KITTI05 . . . 59

(8)

´ Indice de tablas

2.1. Resumen de detectores locales . . . 19 2.2. Resumen de descriptores locales . . . 20 2.3. Resumen de detectores globales . . . 21 4.1. Resultados obtenidos al usarOBIndex2 eiBoW-LCD en dis-

tintosdatasets . . . 36 5.1. Resultados al ejecutar el algoritmo de detecci´on de bucles de

manera no distribuida sobre el dataset Lip6In . . . 43 5.2. Resultados al ejecutar el algoritmo de detecci´on de bucles de

manera no distribuida sobre el dataset Lip6Out . . . 44 5.3. Resultados al ejecutar el algoritmo de detecci´on de bucles de

manera no distribuida sobre el dataset City Centre . . . 46 5.4. Resultados al ejecutar el algoritmo de detecci´on de bucles de

manera no distribuida sobre el dataset KITTI00 . . . 47 5.5. Resultados al ejecutar el algoritmo de detecci´on de bucles de

manera no distribuida sobre el dataset KITTI05 . . . 49 5.6. Valores de sensibilidad obtenidos al ejecutar los distintosda-

tasets mediante el algoritmo centralizado usando 3 agentes a los que se les ha asignado un n´umero desigual de im´agenes . . 49 6.1. Resultados al ejecutar el algoritmo de detecci´on de bucles de

manera distribuida sobre eldataset Lip6In . . . 54 6.2. Resultados al ejecutar el algoritmo de detecci´on de bucles de

manera distribuida sobre eldataset Lip6Out . . . 56 6.3. Resultados al ejecutar el algoritmo de detecci´on de bucles de

manera distribuida sobre eldataset City Centre . . . 57 6.4. Resultados al ejecutar el algoritmo de detecci´on de bucles de

manera distribuida sobre eldataset KITTI00 . . . 58

(9)

6.5. Resultados al ejecutar el algoritmo de detecci´on de bucles de manera distribuida sobre eldataset KITTI05 . . . 60 6.6. Valores de sensibilidad obtenidos al ejecutar los distintosda-

tasets mediante el algoritmo no centralizado usando 3 agentes a los que se les ha asignado un n´umero desigual de im´agenes . 60

(10)

´ Indice de algoritmos

1. A˜nadir un nuevo descriptor como palabra visual nueva . . . . 31 2. Eliminar palabra visual . . . 31 3. Construir islas din´amicas . . . 34

(11)

Cap´ıtulo 1

Introducci´ on

1.1. Rob´ otica

La rob´otica es un campo de estudio cuya importancia ha ido crecien- do de forma constante a lo largo de las ´ultimas d´ecadas. Una prueba de ello es la vasta variedad de aplicaciones que han sido desarrolladas en este campo gracias a los avances tanto a nivel de hardware (mejores actuado- res, procesadores, etc.) como de software. Un ejemplo de estos avances se encuentra en los drones comerciales (figura 1.1) cuyos sensores y funcio- nes est´an mejorando con cada nuevo modelo manteniendo los precios en un rango relativamente asequible.

Figura 1.1: Dron fabricado por la marca DJI cuya relaci´on entre prestaciones y dimensiones era impensable hace varios a˜nos.

Uno de los campos que ha sido m´as revolucionado por la rob´otica es la industria. La inclusi´on de agentes aut´onomos en las f´abricas ha permitido un aumento de la producci´on industrial disminuyendo costes y manteniendo la calidad.

En la agricultura tambi´en se han propuesto soluciones mediante el uso

(12)

Figura 1.2: Ejemplo de industria automatizada mediante el uso de robots.

de la rob´otica. Un ejemplo de estas soluciones es el propuesto por la empresa onubense Soluciones Rob´oticas Agr´ıcolas -Agrobot- que ha desarrollado una cosechadora con brazos capaz de determinar qu´e fresas est´an listas para ser recolectadas. Lo que puede suponer una enorme mejora de la producci´on en plantaciones masivas como las que se encuentran en California o China1.

Otro campo en el que la rob´otica ha despertado un gran inter´es es el militar. El uso de UAV (Unmanned Aerial Vehicle), en zonas de guerra, ha sufrido un enorme incremento en los ´ultimos a˜nos debido a las enormes inversiones, por parte de los gobiernos, para el desarrollo de plataformas aut´onomas que permitan espiar o realizar ataques en territorio enemigo sin la necesidad de poner en riesgo operativos de sus propios cuerpos militares.

Un campo en el que se est´a empezando a plantear la introducci´on de soluciones mediante la rob´otica es la medicina. La cirug´ıa rob´otica, inicial- mente ideada para operaciones cardiovasculares, est´a presentando resultados prometedores especialmente en el campo de la urolog´ıa. Hoy en d´ıa el 85 % de las prostatectom´ıas radicales llevadas a cabo en EEUU se hacen mediante la asistencia de robots [1].

Otro claro ejemplo de lo comentado previamente se encuentra en el ´ambi- to de la educaci´on en el que la aparici´on de actuadores y controladores econ´omicos, capaces de realizar tareas relativamente complejas, as´ı como de sistemas sencillos para el desarrollo de aplicaciones permiten introducir estas disciplinas en los colegios e institutos. Esto se puede observar en la aparici´on de competiciones de rob´otica estudiantiles como laFirst Lego Leage2.

1http://bit.ly/roboticaAgricola

(13)

1.2. Navegaci´ on

Uno de los ´ambitos m´as relevantes en el campo de la rob´otica m´ovil con- siste en dotar a los veh´ıculos con la habilidad de moverse por su entorno de una manera segura, evitando colisiones que puedan causar da˜nos. A este proceso se le conoce como navegaci´on. Las arquitecturas de navegaci´on se pueden dividir en dos grandes categor´ıas: las reactivas, en las que el robot simplemente reacciona a la informaci´on que recibe de sus alrededores me- diante sus sensores y las deliberativas que permiten al robot planificar sus movimientos gracias a la disposici´on de un mapa del entorno en el que se encuentra. Para realizar una navegaci´on deliberativa eficiente es imprescin- dible la creaci´on de mapas que definan de una manera entendible para el robot el entorno y la disposici´on de los obst´aculos que se pueda encontrar durante el desarrollo de sus tareas.

La aparici´on de estos sistemas de navegaci´on (basados en mapas) ha per- mitido la creaci´on de robots cuya dependencia de un operario encargado de dirigirlos sea cada vez menor. Un claro ejemplo de ello son los aspiradores autom´aticos cuyos primeros modelos necesitaban balizas para delimitar el entorno en el que deb´ıan trabajar y cuya navegaci´on se basaba en la ma- yor´ıa de los casos en un sistema reactivo. Sin embargo, en la actualidad, ya est´an apareciendo propuestas que realizan mapas suficientemente preci- sos del entorno en el que van a trabajar (v´ease figura 1.3), lo que permite que el propietario simplemente deba asignarle el momento y la zona en la que quiere que trabaje mediante una interfaz gr´afica y el robot, usando el mapa creado la primera vez que se movi´o por el entorno, planificar´a sus movimientos de una manera eficiente.

1.3. Construcci´ on de mapas, localizaci´ on y SLAM

Como se ha comentado en el apartado anterior, la creaci´on de mapas que definan eficazmente el entorno de operaci´on es enormemente importante.

En rob´otica, el proceso de creaci´on de estos mapas se conoce com´unmente comomapping por su traducci´on al ingl´es. Las composiciones de los mapas creados var´ıan dependiendo de los datos usados para hacer el reconocimiento del entorno [2]. Por ello, los mapas normalmente se pueden clasificar en tres tipos: mapas m´etricos, topol´ogicos e h´ıbridos.

Mapas m´etricos: Estos mapas representan el entorno de la mane- ra m´as precisa. Almacenan informaci´on de detalles del entorno como distancias, medidas del entorno. Relacionando dicha informaci´on con

(14)

Figura 1.3: Interfaz gr´afica de un robot aspirador moderno en la que se puede ver el plano realizado de la casa en la que desempe˜na sus funciones.

la posici´on respecto a un sistema de coordenadas global. La principal desventaja de estos sistemas es el tiempo de c´omputo necesario y el almacenamiento requerido [3].

Mapas topol´ogicos: Este enfoque genera representaciones abstractas del mundo. Estos mapas son m´as simples y compactos que los ante- riormente citados, por lo que requieren de menos tiempo de proceso pero incluyen menos informaci´on del entorno [3].

(15)

citados anteriormente para maximizar las ventajas de estos, minimi- zando las desventajas [3].

La generaci´on de estos mapas carece de sentido si el robot no dispone de la capacidad de saber d´onde se encuentra en cada momento. Es necesario, por tanto, dotar al robot con la capacidad de reconocer donde est´a y situarse en el entorno. Esto es lo que se conoce en la rob´otica como localizaci´on. A pesar de que la construcci´on de mapas y la localizaci´on pueden realizarse de forma independiente, existen una serie de t´ecnicas que permiten llevar a cabo las dos de forma simult´anea, creando un mapa del entorno a la vez que se localiza el robot en dicho mapa. Estas t´ecnicas se conocen como SLAM (Simultaneous Localization and Mapping).

1.4. Detecci´ on de bucles

Para describir el entorno se usan sensores que permiten a los robots navegar y mapear los escenarios por los que se mueven. Las medidas de estos sensores, independientemente del tipo, siempre incluyen algo de ruido, lo que puede conducir a mapas poco coherentes con la realidad. Es por ello que son necesarios m´etodos para detectar estas situaciones y ayudar a su correcci´on.

Uno de esos m´etodos es la detecci´on de bucles (Loop Closure detection en ingl´es), los cuales se refieren a determinar que no es la primera vez que se pasa por un determinado lugar. Estos algoritmos se usan para corregir la distorsi´on presente en los mapas generados mediante datos adicionales obtenidos de sensores complementarios (v´ease figura 1.4).

Cuando el sensor utilizado para navegar es una c´amara, se habla entonces deAppearance-based Loop Closure Detection. Este es uno de los principales temas de este proyecto.

La detecci´on de bucles presenta una serie de dificultades que deben ser tenidas en cuenta. Uno de ellos es el perceptual aliasing que consiste en diferentes escenarios que presentan las mismas caracter´ısticas; estos casos pueden representar problemas a la hora de detectar correctamente cierres de bucles [2]. Otro problema es la escalabilidad: la carga computacional que requiere comparar im´agenes para determinar si el escenario que representan es el mismo. Esta carga ir´a creciendo a medida que se expanda la zona cono- cida por el robot. El ruido presente en las im´agenes obtenidas por los agentes tambi´en puede presentar problemas a la hora de reconocer los entornos en los que estos se mueven. La variabilidad de los entornos es una eventualidad que debe ser tomada en consideraci´on, esta consiste en el caso en el que una zona conocida por el robot ha sufrido cambios desde la ´ultima vez que este

(16)

Figura 1.4: Diferencia entre un mapa representado ´unicamente con los datos de los sensores del robot (a) y otro representado mediante los sensores del robot e informaci´on de cierre de bucles (b) [4].

la visit´o por lo que el agente puede ser inducido a error a la hora de cerrar bucles.

1.5. Sistemas multi-robot

En la actualidad, la mayor´ıa de soluciones planteadas se centran el la de- tecci´on de bucles mediante un solo robot [5–8]. A pesar de ser funcionales, pueden presentar problemas a la hora de mapear escenarios grandes, pudien- do llegar a tardar demasiado ya que ese ´unico robot va a tener que recorrer todo el entorno para obtener un mapa completo de la zona. Es en estas si- tuaciones donde el uso de un sistema multi-robot permite que varios agentes recorran el entorno de manera simult´anea para as´ı abarcar m´as distancia en menos tiempo. Aunque con menos frecuencia en la literatura se pueden encontrar soluciones para la detecci´on de bucles con varios robots [9, 10].

Este tipo de soluciones podr´ıan ser ´utiles en escenarios con muchas zonas aisladas entre ellas ya que cada robot puede ser programado para que va- ya en direcciones distintas pudiendo as´ı realizar mapas m´as velozmente y disminuyendo el riesgo de dejar zonas sin inspeccionar.

A pesar de aportar grandes ventajas, estos sistemas multi-robot pre- sentan problemas para su ejecuci´on: al usar varios robots para procesar el mismo escenario, la informaci´on que estos obtienen debe ser compartida con

(17)

podr´ıa llegar a ser insostenible. Tambi´en, se podr´ıa dar el caso de que uno de los robots pierda la se˜nal y no sea capaz de enviar su informaci´on al resto de agentes.

1.6. Tipos de sistemas multi-robot

Al implementar un sistema de detecci´on de bucles multi-robot, se pueden considerar, entre otras, las dos alternativas siguientes. La primera de ellas es centralizada, es decir, un servidor central procesa la informaci´on que los agentes le env´ıan a medida que avanzan por el escenario y este se encarga de procesarla, almacenarla y determinar si se ha cerrado bucle. Esta soluci´on presenta la desventaja de que en caso de fallo en el servidor, el sistema deja de funcionar por completo.

Otra soluci´on obedece a un paradigma descentralizado en el que cada robot almacena ´unicamente la informaci´on que ´el mismo ha ido recopilando y para cada nueva observaci´on se lleva a cabo una consulta con el resto de agentes para determinar si se ha cerrado alg´un bucle. A pesar de ser la soluci´on aparentemente m´as eficaz, este tipo de arquitecturas pueden hacer que el algoritmo pierda efectividad ya que cada robot ´unicamente cuenta con una visi´on parcial del entorno y esto, como se ver´a en apartados posteriores, puede llegar a suponer un problema.

1.7. Objetivos del proyecto

El objetivo principal de este proyecto es adaptar una soluci´on de detec- ci´on de bucles ya existente, desarrollada para funcionar mediante un ´unico robot, para que pueda llevar a cabo su funci´on usando varios agentes a la vez. Dentro de este contexto, se presentan dos soluciones diferentes: una centralizada y otra no centralizada y se eval´ua el rendimiento de cada una de ellas en diversosdatasets p´ublicos.

1.8. Organizaci´ on del documento

El presente documento se organiza de la siguiente forma:

En el cap´ıtulo 2 se presentan los fundamentos te´oricos sobre los que funciona la soluci´on planteada.

En el cap´ıtulo 3 se comenta el estado del arte de este ´ambito de inves- tigaci´on.

(18)

El cap´ıtulo 4 detalla el funcionamiento de la soluci´on sobre la que parte este proyecto.

Los cap´ıtulos 5 y 6 presentan las dos soluciones desarrolladas en es- te proyecto (centralizada y no centralizada respectivamente) con sus resultados.

Finalmente, en el cap´ıtulo 7 se detallan las conclusiones a las que se han llegado una vez terminado el proyecto.

(19)

Cap´ıtulo 2

Aspectos fundamentales de la descripci´ on e indexaci´ on de im´ agenes

El rendimiento de un sistema de detecci´on de cierre de bucles visual est´a fuertemente influenciado por la forma de describir im´agenes y la forma de indexarlas. En este cap´ıtulo se van a comentar los fundamentos te´oricos sobre los que se basan estos.

2.1. Descripci´ on de im´ agenes

Existen fundamentalmente dos paradigmas de descripci´on de im´agenes:

descriptores locales y descriptores globales. A continuaci´on se detallan los principios de funcionamiento de estos y se muestran algunas soluciones pro- puestas para cada uno de ellos.

2.1.1. Descriptores locales

Estos m´etodos requieren un proceso de detecci´on de puntos de inter´es (keypoints) antes de proceder a describirlos. Tras haber identificado dichos puntos de inter´es se obtiene un vector por cada uno de ellos que describe el entorno alrededor del punto. A este vector se le conoce como descriptor [2].

Para ser capaces de identificar los mismos puntos de inter´es en distintas im´agenes, ´estos deben ser independientes de caracter´ısticas como rotaciones de c´amara o transformaciones afines. Es por ello que es de suma importancia

(20)

Nombre Referencias Tipo de detector

Harris [16] Esquinas

Shi and Tomasi [17] Esquinas

SUSAN [18] Esquinas

FAST [13] Esquinas

FAST-ER [19] Esquinas

ORB [15] Esquinas

AGAST [20] Esquinas

BRISK [21] Esquinas

SIFT [22] Blobs

SURF [12] Blobs

CenSure [23] Blobs

Star [24] Blobs

SUSurE [25] Blobs

KAZE [26] Blobs

AKAZE [27] Blobs

ASIFT [28] Blobs

MSER [29] Regi´on

Tabla 2.1: Resumen de detectores locales [3].

que los descriptores de puntos de inter´es sean capaces de sobrellevar defor- maciones de los puntos de inter´es debidas a cambios de puntos de vista [3].

El ejemplo m´as conocido de estos m´etodos es SIFT [11], que detecta y describe puntos de inter´es. Estos puntos de inter´es son independientes de cambios de posici´on de la c´amara o iluminaci´on de la escena. Otro ejem- plo podr´ıa ser SURF [12] que, inspirado por SIFT, mejora los tiempos de ejecuci´on de este ´ultimo. FAST (detector) [13], BRIEF (descriptor) [14] y ORB (detector y descriptor) [15] son otros casos de algoritmos de detecci´on y descripci´on de puntos de inter´es usados en la actualidad. Tradicionalmen- te se han propuesto algoritmos de descripci´on basados en vectores de punto flotante (como SIFT y SURF) con su consiguiente consumo de recursos. En los ´ultimos tiempos, descriptores binarios como BRIEF u ORB est´an siendo muy utilizados debido a su eficiencia computacional [3].

En las tablas 2.1 y 2.2, se detallan algunos de los detectores y descriptores locales respectivamente usados en la actualidad.

(21)

Nombre Referencias Tipo de descripto N´umero de componentes

SIFT [22] Punto flotante 128

SURF [12] Punto flotante 32, 64, 128

U-SURF [12] Punto flotante 32, 64, 128

GLOH [30] Punto flotante 64, 128

PCA-SIFT [31] Punto flotante 36

M-SIFT [32] Punto flotante 128

DAISY [33] Punto flotante 200

LESH [34] Punto flotante 128

ASIFT [28] Punto flotante 128

KAZE [26] Punto flotante 64

BRIEF [35] Bit 128, 256, 512

ORB [15] Bit 256

BRISK [21] Bit 512

FREAK [36] Bit 512

AKAZE [27] Bit 488

D-BRIEF [37] Bit 32

LDAHash [38] Bit 128

BinBoost [39] Bit 64

LDB [40] Bit 256, 512

CBDF [41] Bit 256

Tabla 2.2: Resumen de descriptores locales [3].

2.1.2. Descriptores globales

Algunos ejemplos de este tipo de algoritmos son Gist [42], BRIEF-Gist [43]

´

o FACT [44]. Estos descriptores no requieren de una fase de detecci´on de puntos de inter´es sino que siempre procesan y describen toda la imagen como un todo. Por lo general, son menos susceptibles a los cambios de condiciones del entorno, pero son poco robustos a los cambios de posici´on desde los que se ve la escena [2].

En la tabla 2.3 se resumen algunos de los descriptores globales que se usan en la actualidad.

(22)

Nombre Referencias Principal Components [45, 46]

Colour Histograms [47]

Gradient Orientation Histograms [48]

WGOH [49]

WGII [50]

OACH [51]

Receptive Field Histograms [52]

Gist [53]

Omni-Gist [54]

BRIEF-Gist [43]

Spherical Harmonics [55]

Fingerprints [56]

FACT [44]

DP-FACT [57]

Fourier Signatures [58, 59]

Colour Segmented Images [60]

Scanline Intensity Profile [61]

Normalized Patches [62]

2D Haar Wavelet Decomposition [63, 64]

WI-SURF [65]

WI-SIFT [65]

DIRD [66]

OFM [67]

OFSC [67]

Tabla 2.3: Resumen de descriptores globales [3].

2.2. Indexaci´ on de im´ agenes

Otro factor que afecta al rendimiento de un sistema de detecci´on de bu- cles basado en apariencia es su habilidad para obtener e indexar im´agenes previas. En general, una b´usqueda por fuerza bruta es inabordable cuando el n´umero de im´agenes a indexar es elevado. Este problema ha sido solven- tado en la literatura mediante esquemas de indexaci´on (como los kd-trees) y mediante cuantificaci´on de descriptores (t´ıpicamente el esquema Bag-of Words). En este trabajo nos centraremos en el uso de ´este ´ultimo.

(23)

2.2.1. Bolsa de palabras visuales (BoW)

En lugar de almacenar ´unicamente los descriptores que se reciben e inde- xarlos por medio de alguna estructura eficiente de datos, se puede tratar de agregarlos en funci´on de las caracter´ısticas especiales que estos presentan. Un ejemplo de estos algoritmos es el esquemaBag of Words (BoW en adelante).

Consiste en agrupar, en una fase de entrenamiento, cada descriptor extra´ıdo de las im´agenes que se van procesando a los m´as parecidos, formando as´ı grupos de descriptores que comparten unas caracter´ısticas determinadas. A estos grupos se les suele llamarwords (palabras), por ello el algoritmo es lla- madoBag of Words. Al conjunto de palabras se le conoce como diccionario.

Posteriormente, durante la fase de consulta, cada uno de los descriptores de la imagen actual se asocia con la palabra m´as cercana del diccionario. Con ello, la imagen se representa por un histograma de ocurrencias de cada pa- labra del diccionario en la imagen, reduciendo la representaci´on a un vector de enteros. Dado que algunas palabras pueden ser m´as representativas que otras, a veces se a˜naden mecanismos para dar m´as peso a estas palabras a la hora de construir el vector BoW, como por ejemplo elTerm frequency – In- verse document frequency(TF-IDF). En la actualidad, se est´an proponiendo esquemas que crean su diccionario a medida que desempe˜nan sus funciones, sin necesidad de un entrenamiento previo [6, 68, 69].

En sistemas de reconocimiento de escenas, t´ıpicamente los algoritmos BoW se combinan con ´ındices inversos. Estas estructuras almacenan el con- junto de im´agenes en los que cada palabra del diccionario ha aparecido.

Combinando este ´ındice con el vector BoW comentado en el p´arrafo ante- rior, se puede obtener de una forma r´apida una lista de im´agenes similares previas [3].

En la figura 2.1 se aprecia el funcionamiento de un algoritmo de estas caracter´ısticas. El diccionario est´a dividido en cuatro palabras que definen un sill´ın, un p´omulo, la barbada de un viol´ın y un ojo. Al procesar las im´age- nes de entrada (primera fila de im´agenes) se obtienen los puntos de inter´es que mejor podr´ıan definir esas im´agenes (segunda fila de im´agenes) y estos son comparados con los descriptores ya presentes en el diccionario. Cada coincidencia encontrada en el BoW implica que el grupo (o bolsa) al que pertenece el descriptor incrementa la puntuaci´on y con ello se construyen los histogramas de ocurrencias (tercera fila de im´agenes). Con estos histogra- mas se puede determinar qu´e caracter´ısticas presenta m´as frecuentemente una imagen y con ello, conjuntamente con un ´ındice inverso, se puede hacer una estimaci´on bastante precisa de si ya se ha visto esa imagen previamente o no.

(24)

Figura 2.1: Funcionamiento de un algoritmo BoW usado para clasificar im´agenes. En la primera serie de figuras se aprecian las im´agenes de en- trada, en la segunda serie de figuras se observa c´omo se han dividido las im´agenes en puntos de inter´es y en la tercera se pueden ver los histogramas creados [70].

(25)

Cap´ıtulo 3

Breve revisi´ on de trabajos relacionados

En este apartado se van a revisar las principales soluciones que existen en la actualidad para detectar bucles. En funci´on de la tecnolog´ıa que se use para describir im´agenes, se clasifican en tres tipos: m´etodos basados en descriptores globales, m´etodos basados en descriptores locales y m´etodos basados en el modelo BoW.

3.1. M´ etodos basados en descriptores globales

La tarea de crear mapas y localizar robots en ellos mediante descriptores globales ha sido un tema ampliamente tratado. Por ello, existen un n´umero considerable de soluciones que se basan en este tipo de m´etodos. Algunas de

´estas se basan en histogramas, en el descriptor Gist o est´an inspiradas en la biolog´ıa.

3.1.1. Histogramas

En procesamiento de im´agenes, los histogramas proveen una manera efi- caz de representar c´omo se distribuyen los colores en el escenario. Por ejem- plo, en una imagen en escala de grises de 8 bits (como los que se pueden ver en la figura 3.1) se representar´an los 256 niveles de intensidad que el color gris toma en la imagen. En el caso de im´agenes en color, estos histogramas se deben hacer individualmente para cada canal de color. Por ejemplo, en caso de usar un sistema RGB, se representar´an los histogramas para las intensidades de las capas Red, Green y Blue por separado. Estos sistemas

(26)

presentan ventajas considerables a la hora de procesar im´agenes como el decremento de tiempo necesario a la hora de comparar dos histogramas res- pecto al tiempo necesario para comparar dos im´agenes directamente. Un ejemplo del uso de estos sistemas en tareas de construcci´on de mapas es la soluci´on planteada por Iwan Ulrich y Illah Nourbaksh [47].

Figura 3.1: Ejemplos de histogramas de la misma imagen (en escala de grises de 8 bits) a la que se le han dado distintos procesados.

3.1.2. Gist

El uso del descriptor global Gist [71] tambi´en ha sido investigado por un n´umero considerable de art´ıculos. Estas soluciones se basan en la idea de que los humanos somos capaces de captar la esencia de un escenario con un solo vistazo, siendo capaces de clasificar diferentes escenas en muy poco tiempo. Este descriptor ha dado lugar a varios trabajos con buenos resul- tados. Entre ellos, destaca el trabajo realizado por Singh y Kosecka [72] y la uni´on entre el concepto de descriptor global Gist y el descriptor bina- rio BRIEF por parte de Sunderhauf y Protzel [43]. Su m´etodo se basa en reducir el tama˜no de la imagen y calcular el descriptor BRIEF en la zona central de la imagen resultante de dicha reducci´on. En el mismo trabajo, se presenta otra soluci´on consistente en dividir una imagen en una secuencia de fragmentos de la imagen original y aplicar el descriptor BRIEF para cada

(27)

imagen total.

3.1.3. Soluciones inspiradas en la biolog´ıa

Estos sistemas tratan de imitar ciertos aspectos de procesos biol´ogicos concretos. Un ejemplo de estos sistemas esRatSlam [73] que es un sistema SLAM basado en una sola c´amara que trata de imitar los sistemas cogni- tivos de los roedores. Seg´un los autores de este art´ıculo, RatSlam es una implementaci´on de un modelo del hipocampo de los roedores que puede rea- lizar SLAM en tiempo real en un robot real. Esta soluci´on se sirve de una attractor network (red din´amica recurrente que tiende a evolucionar a un patr´on constante) que combina informaci´on de sensores con detecci´on de puntos de inter´es para representar el entorno. Los resultados del art´ıculo referenciado muestran que el sistema es robusto otorgando resultados posi- tivos en ambientes complejos. Para demostrar la escalabilidad deRatSlam, Milford y Wyeth [61] generaron un mapa que cubr´ıa 66km siguiendo un su- burbio usandoRatSlam. Glover et al. [74] combinaRatSlam con otros tipos de soluciones para atajar el problema de generar mapas que se mantengan coherentes durante todo el d´ıa.

3.2. M´ etodos basados en descriptores locales

Los sistemas basados en descriptores locales son un campo altamente in- vestigado en la actualidad. Desde la creaci´on de SIFT han aparecido muchos trabajos que han aportado soluciones. Un ejemplo dentro de esta categor´ıa es el trabajo realizado por Kosecka y Yang [75] quienes usaron los descrip- tores SIFT para desarrollar sistemas de localizaci´on en entornos de interior.

En trabajos posteriores [76], presentaron sistemas para filtrar caracter´ısti- cas permitiendo as´ı limitar el n´umero de puntos de inter´es. Otro trabajo que tambi´en ha supuesto un avance es el realizado por Zhang [77], quien propone un sistema llamadoBag-Of-Raw-Features(BoRF para abreviar) en el que se seleccionan los puntos de inter´es encontrados en los escenarios en funci´on de la consistencia en la que se ven, es decir, los puntos de inter´es

´

unicamente son almacenados en los diccionarios si se han visto en distintas im´agenes. Esta soluci´on supone que a medida que se a˜naden nuevas im´age- nes el n´umero de puntos de inter´es a gestionar tambi´en aumenta, por lo que compararlas todas una a una puede llegar a ser inviable. Es por ello que en la actualidad, para limitar el n´umero de comparaciones se usan estructuras de indexaci´on, como por ejemplo, loskd-trees.

(28)

3.3. M´ etodos basados en el modelo BoW

La aplicaci´on del modelo BoW para detectar bucles se ha popularizado en los ´ultimos a˜nos debido a la capacidad que ´estos presentan a la hora de encontrar coincidencias entre descriptores en grandes secuencias de im´agenes en tiempos relativamente reducidos. Normalmente este tipo de soluciones requieren una fase de entrenamiento antes de poder funcionar por lo que generalmente se refiere a ellos como sistemas offline. No obstante, en la actualidad tambi´en se est´an proponiendo soluciones que crean su diccionario online, a medida que avanzan.

3.3.1. Sistemas basados en BoW offline

El algoritmo BoW originalmente fue dise˜nado para la categorizaci´on de documentos, ya que permite describir un texto sin importar el orden en el que se encuentran las palabras. No fue hasta el trabajo realizado por Sivic y Zisserman [78] que se us´o este modelo para tareas de visi´on por computador.

M´as adelante, Wang [79, 80] propuso otro modelo de localizaci´on basado en un sistema BoW que para construir un vocabulario y un ´ındice inverso re- quer´ıa de una fase de entrenamiento previa. En estos trabajos ya se incluy´o el uso de la geometr´ıa epipolar para comprobar que la imagen con la que era m´as probable cerrar bucle seg´un el sistema de puntuaciones aplicado en el algoritmo BoW era realmente el mismo sitio. Posteriormente, Cummins y Newman introdujeron una de las soluciones m´as conocidas en esta cate- gor´ıa: Fast Appearance-Based Mapping o FAB-MAP para abreviar [81, 82]

quienes asumen que el c´alculo de las probabilidades de que las palabras vi- suales aparezcan simult´aneamente en una imagen puede ayudar a la correcta detecci´on de bucles. Este enfoque presenta la desventaja del enorme coste computacional que supone tener que calcular las probabilidades para cada imagen observada.

Los sistemas basados en este tipo de algoritmos tienen grandes proble- mas en lo referente a la escalabilidad. Para solucionar este problema se han propuesto diccionarios jer´arquicos en los que en la fase de entrenamiento los descriptores son agrupados en una jerarqu´ıa para as´ı facilitar la b´usqueda de descriptores en diccionarios de gran tama˜no [83].

En los primeros trabajos basados en BoW los descriptores usados (como SIFT) consist´ıan en vectores de punto flotante, pero recientemente se est´an introduciendo trabajos que basan su funcionamiento en descriptores bina- rios. Un ejemplo de ello son las investigaciones llevadas a cabo por Galvez-

(29)

y el descriptor binario BRIEF.

3.3.2. Sistemas basados en BoW online

Los sistemas descritos en el apartado anterior tienen como problema la incapacidad del diccionario de adaptarse a las variaciones que pueda sufrir el entorno. Es por ello que se han introducido soluciones que permitan que el diccionario pueda ser actualizado a medida que el robot avanza por la zona de trabajo. Uno de los primeros trabajos fue el presentado por Filliat [85].

Este autor propone que a medida que se extraen descriptores de las nuevas im´agenes estos son emparejados con las palabras visuales ya existentes en el diccionario m´as parecidas a ellos. Si la distancia entre el vector ya existente y el nuevo en el diccionario supera un determinado umbral, este es a˜nadido como nueva palabra en el diccionario. Usando este diccionario, Angeli [86]

present´o un sistema de reconocimiento de escenas. M´as recientemente, se han presentado soluciones basadas en jerarqu´ıas de memoria [5, 87], clustering aglomerativo [88, 89] y descriptores binarios [6, 69].

3.3.3. Sistemas multi-robot

Aunque no de una manera muy generalizada, en los ´ultimos a˜nos est´an apareciendo soluciones para detectar bucles usando varios robots. Un ejem- plo de ellas es el trabajo llevado a cabo por Cieslewski y Scaramuzza [10]

quienes proponen un sistema en el que se divide el diccionario de palabras visuales entre todos los agentes que deben funcionar consecutivamente (de esta forma cada agente dispone de una parte del diccionario), se calcula el vector BoW de la imagen que se desea procesar, este vector es dividido en peque˜nos “subvectores” cada uno de los cuales es enviado a los distintos robots, cada robot realiza un proceso de comparaci´on, con su segmento del diccionario y el fragmento de vector que ha recibido, tras el cual se devuelve la imagen que tiene m´as posibilidades de ser la que cierre bucle con la ima- gen que se est´a procesando, se unen todos los resultados parciales de cada uno de los robots y se determina qu´e imagen es la que ha sido votada m´as consistentemente, por ´ultimo, se le solicita al robot que ha visto la nueva imagen que realice una verificaci´on geom´etrica para asegurar que se ha ce- rrado bucle. En otro trabajo de estos autores en este panorama [90], se usan descriptores globales para llevar a cabo la detecci´on de bucles distribuida.

(30)

Cap´ıtulo 4

OBIndex2 e iBoW-LCD

Para este proyecto se va a adaptar una soluci´on ya existente de cierre de bucles para trabajar en un entorno multi-robot. Esta soluci´on est´a compues- ta de dos librer´ıas que trabajan conjuntamente: OBIndex2 e iBoW-LCD, desarrolladas por Garc´ıa-Fidalgo y Ortiz [6].

4.1. OBIndex2

OBIndex2 es una librer´ıa para indexar im´agenes basada en un esquema BoW incremental y descriptores binarios. Para poder indexar un dicciona- rio de una manera escalable, es necesario el uso de estructuras de datos jer´arquicas, como por ejemplo kd-trees. Sin embargo, estas estructuras asu- men que las componentes de los descriptores son promediables (valores en punto flotante). Debido a que OBIndex2 utiliza descriptores binarios y, por tanto, son vectores no promediables, se basa en el esquema propuesto por por Muja y Lowe [91], que combinado con un ´ındice inverso, permite crear una estructura de datos capaz de determinar si el escenario en el que se encuentra un robot ya se ha visto con anterioridad.

La soluci´on de Muja y Lowe [91] para indexar descriptores binarios, consiste en una estructura jer´arquica de ´arbol cuyos nodos que no son hojas contienenclusters y los nodos hoja contienen los descriptores a buscar. Para construir estas estructuras se parte de una serie de descriptores iniciales de entre los cuales un n´umero K de ellos son elegidos como clusters. Una vez hecho esto, en base a la distancia de Hamming, se emparejan el resto de descriptores con sucluster m´as cercano. Este proceso es repetido hasta que el n´umero de nodos hoja asociado con un cluster es m´as peque˜no que un

(31)

Figura 4.1: Ejemplo de ´arbol creado con el algoritmo de Muja y Lowe [91]

en el que se observa la clasificaci´on de 10 descriptores (d0−d9). Los nodos no hoja son representados en c´ırculos grises, el nodo ra´ız es R y los nodos hoja son el resto. En este casoK = 2 y S = 3 [6]

La soluci´on planteada por Muja y Lowe se dise˜n´o para indexar descrip- tores de forma est´atica. OBIndex2 adapta el esquema para ser usado como un diccionario incremental. Para ello los descriptores encontrados durante la navegaci´on son emparejados recorriendo el ´arbol desde la ra´ız a un nodo hoja, minimizando en cada paso la distancia de Hamming. Si se encuentra el descriptor, la palabra visual del diccionario se combina con el descriptor actual mediante una operaci´on binaria AND. En caso de no localizar el des- criptor encontrado durante la navegaci´on en el diccionario, ´este es a˜nadido al ´arbol como una nueva palabra visual. Si al a˜nadir este nuevo descrip- tor no se supera el n´umero m´aximo de descriptores por nodo S, este ser´a a˜nadido al diccionario directamente. Si se supera S, el nodo se reconstruye recursivamente para que no haya ning´un nodo no hoja con m´as deS hojas asociadas a ´el. El algoritmo 1 muestra como se a˜naden nuevos descriptores al ´arbol [6].

Otra novedad que incluyeOBIndex2 es un sistema de depuraci´on selecti- va de descriptores para as´ı tambi´en mantener el diccionario libre de palabras que est´en desfasadas. La idea es mantener como palabras visuales aquellos descriptores que al menos han sido vistos en un n´umero concreto de im´age-

(32)

Algoritmo 1 A˜nadir un nuevo descriptor como palabra visual nueva Require: T: ´Arbol jer´arquico,B: Descriptor binario

1: nodo← buscarDescriptor(T, B)

2: if numDescriptores(nodo) + 1 < S then

3: a˜nadirDescriptorANodo(nodo,B)

4: else

5: D←obtenerDescriptores(nodo)

6: D=D∪B

7: construirNodoRecursivamente(nodo, D)

nes consecutivas, para asegurar un m´ınimo de estabilidad de las palabras.

El algoritmo 2 muestra como funciona el proceso de eliminar descriptores del diccionario [6], que tambi´en puede implicar un reajuste del ´arbol.

Algoritmo 2 Eliminar palabra visual

Require: T: ´Arbol jer´arquico,B: Descriptor binario

1: nodo← buscarDescriptor(T, B)

2: eliminarDescriptor(nodo, B)

3: if numDescriptores(nodo) >0 then

4: if B == obtenerCluster(nodo) then

5: selecionarNuevoCluster(nodo)

6: else

7: nodor ←obtenerNodoRa´ız(nodo)

8: eliminarNodoHijo(nodor, nodo)

9: eliminarNodosRecursivamente(nodor)

Para facilitar la selecci´on de la imagen ya vista que cierra bucle con la actual se usa un ´ındice inverso en el que, para cada descriptor, se apunta a qu´e im´agenes lo han visto. Para determinar qu´e imagen es la que presenta m´as posibilidades de cerrar bucle, se parte del conjunto de descriptores zt

de la imagen actual en el instante t y se compara con las palabras que se encuentran en el diccionario. Una vez hecho esto, mediante el ´ındice inverso, se obtiene para cada uno de los descriptores, la lista de im´agenes que han visto esa palabra y se les asigna una puntuaci´on sque empieza en 0. Cada vez que una imagen vista anteriormente comparte un descriptor con la ima- gen actual, su s es incrementada. Este incremento se lleva a cabo usando

(33)

4.2. iBoW-LCD

En este trabajo se va a utilizar tambi´en iBow-LCD. Esta librer´ıa se utiliza para detectar bucles a partir de las im´agenes candidatas obtenidas medianteOBIndex2.

Este sistema empieza su funcionamiento buscando qu´e im´agenes son candidatas para cerrar bucle mediante OBIndex2. Para evitar cerrarlo con im´agenes muy pr´oximas a la actual, se guardan en un buffer las pim´agenes m´as recientes lo que permite retrasar la publicaci´on de las im´agenes recientes como candidatas a cerrar bucle. Al finalizar la b´usqueda, se obtiene una lista que almacena lasj im´agenes m´as parecidasCt={Is1, ..., Isj}, las cuales son ordenadas en funci´on de su puntuaci´on s. El rango de estas puntuaciones se normaliza mediante la ecuaci´on 4.1

˜

s(It, Ik) = s(It, Ik)−s(It, Is1)

s(It, Isj)−s(It, Is1), (4.1) en la ques(It, Is1) ys(It, Isj) son la puntuaci´on m´ınima y m´axima respecti- vamente. Este sistema de normalizaci´on permite que todos las puntuaciones se sit´uen en el rango [0,1]. Esto se hace porque los rangos de las puntua- ciones despu´es de usar un sistema TF-IDF pueden variar dr´asticamente, lo que complica aplicar un umbral para descartar im´agenes que no superen una determinada puntuaci´on. Al hacer la normalizaci´on siempre se puede usar el mismo umbral τim para descartar las im´agenes cuya puntuaci´on no supere dicho valor. Si se establece un valor deτim no muy elevado, se obtiene una lista de im´agenes candidatas ˜Ct para cerrar bucle [6].

Para evitar que im´agenes consecutivas compitan entre s´ı como candidatas a cerrar bucle,iBoW-LCD presenta el concepto de islas din´amicas, que son agrupaciones de im´agenes similares tomadas en tiempos consecutivos. La innovaci´on de las islas din´amicas es que estas no parten de todo el conjunto de im´agenes si no que parten del conjunto fijado ˜Ct de im´agenes similares y que las dimensiones de las islas no son fijas si no que pueden ser variadas en funci´on de par´ametros como la velocidad de la c´amara, lo que permite adaptar el tama˜no de la isla a la secuencia de im´agenes.

Sea Υmn una isla que contiene im´agenes cuyos instantes de tiempo se encuentran en el rango [m, n], para determinar qu´e imagen de esta isla ser´a candidata para cerrar bucle se elegir´a aquella que tiene una puntuaci´on ˜s m´as alta. A esta imagen se la conoce como el representante de la isla.

Para construir las islas se parte de la lista de im´agenes filtradas ˜Ct y se procesa cada una de ellas secuencialmente. Para cada imagen Ic ∈ C˜t (siendoc el instante de tiempo en el que se ha capturadoI), se comprueba

(34)

si su instante de tiempo se encuentra en el rango de alguna isla existente.

Si ese es el caso se asociaIc a esa isla. En caso contrario, se crea una nueva isla cuyos l´ımites se encuentran alrededor del instantec. Al haber procesado toda la secuencia ˜Ct, se ajustan los l´ımites de las islas para que no haya solapamiento (overlap en ingl´es) entre ellos. En la figura 4.2 se puede ver un ejemplo de c´omo quedan las islas una vez completados todos los pasos previamente mencionados.

Figura 4.2: Representaci´on de 3 islas con dimensiones distintas. N´otese que la imagen 7 (I7) no forma parte de ninguna isla y que los c´ırculos grises corresponden a los representantes de cada isla [6]

.

A continuaci´on se calcula una puntuaci´on global de isla mediante la ecuaci´on 4.2:

G(Υmn) =

n

X

i=m

˜ s(It, Ii)

m−n+ 1 , (4.2)

que se corresponde con la media de las puntuaciones normalizadas de todas las im´agenes asociadas a la isla

En el algoritmo 3 se observa el proceso descrito en los p´arrafos superiores en pseudoc´odigo.

Para determinar cu´al es la isla que m´as probablemente cierre bucle (Υ(t) ∈ Γt) se observa si de entre la secuencia de islas encontradas Γt

hay alguna que solape a nivel temporal con la isla que cerr´o bucle en el instante de tiempo anterior{t−1}Υ(t−1). En caso de existir alguna isla que cumple esas caracter´ısticas, ´estas se conocen comopriority islands. Esto nace de la observaci´on de que si se sigue en la zona en la que se ha cerrado bucle previamente (t−1), es m´as probable que las im´agenes consecutivas capturadas en t sean las que vuelvan a hacerlo. Si se han encontradoprio- rity islandsse elige como candidata para cerrar bucle la que m´as puntuaci´on tenga. En caso contrario, se escoge la que tenga lap m´as alta del conjunto de islas generado Γt.

(35)

Algoritmo 3 Construir islas din´amicas

Require: C: Lista ordenada de im´˜ agenes similares Ensure: Γt: Lista de islas ordenadas en el instantet.

1: Γt←[]

2: forcada imagenIc∈C˜ do

3: encontrada← false

4: forcada isla Υmn ∈Γt do

5: if m < c < ny no encontradothen

6: asociarAIsla(Icmn)

7: cambiarTama˜noIsla(Υmn, c, b)

8: encontrado← true

9: if no encontrado then

10: Υc−bc+b← crearNuevaIsla(Ic, b)

11: Γt= Γt∪Υc−bc+b

12: Γt←obtenerIslasSeparadas(Γt)

13: forcada isla Υmn in Γt do

14: G(Υmn)← calcularPuntuacionDeIsla(Υmn)

15: ordenar(Γt)

fundamental mediante el algoritmo RANSAC [92]. Si el n´umero de inliers supera un umbral, se considera que se ha cerrado bucle. Al ser un proceso que requiere de mucho tiempo de c´omputo, para evitar calcularinlierspara todos los candidatos se mantiene un registro de las veces consecutivas que se est´a cerrando bucle y al superar un n´umero determinado de cierres consecutivos y haberpriority islands, se considera que se ha cerrado bucle sin tener que calcularinliers.

4.3. Resultados

En esta secci´on se muestran los resultados obtenidos por los autores en su art´ıculo original [6]. ´Estos servir´an como base para analizar las futuras modificaciones. Para obtenerlos, se us´o una m´aquina con un Intel Core i7- 6500U (2.5Ghz) con 12 GB de RAM. AOBIndex2 se le cedieron 4 cores y aiBoW-LCD 1.

La evaluaci´on de un sistema de detecci´on de bucles generalmente se lleva a cabo mediante m´etricas de precisi´on - sensibilidad (precision-recall). Para ello, se contrasta el resultado del algoritmo con los correspondientes valores

(36)

de referencia (ground truth), y se calculan los siguientes valores: verdadero positivo (TP por sus siglas en ingl´es), que es la cantidad de bucles correctos que se han detectado; verdadero negativo (TN por sus siglas en ingl´es), que corresponde con la cantidad de veces que se ha detectado que no se ha visto la escena en la que est´a el robot correctamente; falso negativo (FN por sus siglas en ingl´es), que es la cantidad de veces que no se ha detectado un bucle al pasar por una zona que ya se hab´ıa visitado y falso positivo (FP por sus siglas en ingl´es), que se corresponde con detectar un bucle cuando no se ha visto la escena en la que se encuentra el robot con anterioridad.

El objetivo fundamental es evitar obtener FPs, ya que al usar la informa- ci´on de cierre de bucle para corregir el mapa, si esa informaci´on es err´onea, la distorsi´on del mapa puede aumentar.

Una vez calculados los datos anteriores, la precisi´on se calcula como:

precisi´on= T P

T P +F P; (4.3)

mientras que la sensibilidad se calcula como:

sensibilidad= T P

T P +F N. (4.4)

Al observar las dos ecuaciones superiores se puede afirmar que es fun- damental mantener un valor de precisi´on del 100 % ya que se desea evitar falsos positivos. El objetivo es, por tanto, obtener la m´axima sensibilidad posible manteniendo siempre la precisi´on al 100 %

Para analizar el comportamiento general de una estrategia de detecci´on de bucles visuales, los valores bh puntuales de precisi´on - sensibilidad (P- R) se complementan con las denominadas curvas ROC (Receiver Operating Characteristic) de tipo P-R, las cuales se obtienen variando alg´un par´ame- tro cr´ıtico de la estrategia y calculando el par (P,R) para cada caso. De esta forma se dispone de informaci´on sobre su rendimiento global, independien- temente del valor asignado a su par´ametro principal.

En la figura 4.3 se muestra la representaci´on gr´afica del comportamiento de OBIndex2 e iBoWLCD al ser ejecutado en distintos datasets p´ublicos como son City Centre (CC) [7], New College (NC) [7], Lip6In (L6I) [93], Lip6Out(L6O) [93],KITTI00 (KOO) [94] yKITTI06 (K06) [94]. Se observa que en todos los casos se consigue una precisi´on del 100 % manteniendo una sensibilidad muy alta (76.50 % en el peor de los casos). En la tabla 4.1 se detallan los resultados obtenidos tras ejecutar el algoritmo sobre los

(37)

Figura 4.3: Representaci´on de la precisi´on vs la sensibilidad obtenida al procesar distintosdatasets usandoOBIndex2 e IBoWLCD. [6]

del algoritmo sobre los distintos datasets, la m´axima sensibilidad obtenida manteniendo una precisi´on del 100 % y el tiempo en ms que ha tardado en ser ejecutado el algoritmo.

VS R % T(ms) CC 95K 88.25 368.41 NC 98K 79.40 352.05 L6I 4K 83.18 19.17 L6O 121K 85.24 249.45 K00 958K 76.50 432.38 K06 212K 95.53 395.16

Tabla 4.1: Resultados obtenidos al usar OBIndex2 e iBoW-LCD en distin- tos datasets. VS se corresponde con la medida del diccionario, R % con la sensibilidad (recall) y T(ms) el tiempo de ejecuci´on [6].

(38)

Cap´ıtulo 5

Primer enfoque multi-robot:

detecci´ on de bucles centralizada

En esta secci´on se va a detallar la primera versi´on propuesta en este proyecto. Se trata de un sistema distribuido de detecci´on de bucles basado en OBIndex2 eiBoW-LCD, que se ejecutan en un servidor central. Al trabajar en un entorno multi-robot, se incrementa la dificultad para detectar bucles correctamente, ya que las im´agenes que forman el diccionario provienen de agentes distintos, lo que debe ser tenido en cuenta a la hora de almacenar y procesar las palabras visuales para buscar bucles, lo que no tiene porque ser tenido en cuenta al usar un ´unico robot.

5.1. Arquitectura

La arquitectura del primer enfoque se ilustra en la figura 5.1, en la que se puede ver que un servidor central se encarga de almacenar el dicciona- rio, compartido por todos los agentes, formado a partir de los descriptores extra´ıdos de las im´agenes vistas por cada agente. En el servidor central tam- bi´en se determina si alguna de esas im´agenes cierra bucle con las que se han visto con anterioridad. El servidor central se encarga de ejecutar las versio- nes modificadas deOBIndex2 e iBoW-LCD. Estas modificaciones han sido necesarias para acomodar las librer´ıas originales al nuevo paradigma multi- robot, ya que se debe tener en cuenta que las im´agenes recibidas no son

(39)

haber sido enviadas por robots operando en zonas muy distintas del entorno.

Teniendo esto ´ultimo en cuenta, se ha modificado el sistema de clasificaci´on y almacenamiento de las im´agenes para que estas no sigan una numeraci´on secuencial a medida que van llegando al servidor central (como se hac´ıa en la soluci´on de la que parte este proyecto) si no que se clasifican teniendo en cuenta el n´umero de im´agenes previas que ha visto el agente y el propio identificador del agente que la ha visto. Todos los m´etodos que necesitan la identificaci´on de la imagen han sido adaptados para que no solamente miren el n´umero de la misma sino que tambi´en tengan en cuenta qu´e agente las ha enviado. Un ejemplo de estos procesos es el de creaci´on de islas, ya que no solamente se debe tener en cuenta el instante de tiempo en el que han sido capturadas las im´agenes que las forman sino que agentes las han tomado.

OBIndex2 e iBoW-LCD (modificados)

Servidor central

Obtención, descripción, filtrado y envío de descriptores captados

por el agente

Agente 1

Agente 2

Agente N Descriptores

Obtención, descripción, filtrado y envío de descriptores captados

por el agente

Obtención, descripción, filtrado y envío de descriptores captados

por el agente

Figura 5.1: Esquema de la arquitectura usada para llevar a cabo el enfoque centralizado.

Tambi´en ha sido desarrollada una clase que va a gestionar el comporta- miento de los agentes cuando han observado una nueva imagen. Esta clase extrae los puntos de inter´es de las im´agenes recibidas, los describe usando ORB [15] y realiza un filtrado para “seleccionar” los descriptores m´as esta- bles. Para realizar este filtrado, se almacenan los descriptores vistos en la

´

ultima imagen vista; una vez obtenidos los de la nueva imagen, se busca para cada uno de ellos los 2 m´as parecidos presentes en la imagen anterior;

a continuaci´on, si la distancia de Hamming con el descriptor presente en la imagen previa m´as parecido es menor a la del segundo m´as parecido mul- tiplicada por 0,8, se considera que ese descriptor no se trata de ruido y se

(40)

procede a su env´ıo al servidor central para su procesado.

Este tipo de arquitecturas presentan una serie de ventajas:

Es la aplicaci´on distribuida m´as sencilla y parecida a la versi´on con un solo robot.

Una ´unica identidad tiene el conocimiento general de todo el entorno, por lo que no es necesario el intercambio de informaci´on entre agen- tes, evitando as´ı el riesgo de colapsos en el canal de comunicaci´on.

Adem´as, al tener concentrada la informaci´on en la misma identidad que determina si se ha encontrado un nuevo bucle, se evita el riesgo de perder sensibilidad debido a disponer informaci´on parcial del entorno inspeccionado.

A pesar de presentar importantes ventajas, estas arquitecturas dependen de un servidor central para funcionar, por lo que el fallo de ´este, deriva en el cese de funcionamiento total del sistema.

A continuaci´on se resumen las modificaciones llevadas a cabo sobreOBIn- dex2 e iBoW-LCD

5.1.1. Modificaciones realizadas sobre la librer´ıa OBIndex2 Como se ha comentado con anterioridad, la librer´ıa OBindex2 ha sido modificada para que pueda ser usada en entornos multi-robot. Para ello, se han llevado a cabo las siguientes modificaciones:

El ´ındice inverso ha sido modificado para permitir almacenar qu´e agen- te ha visto cada imagen.

La estructura de datos encargada de almacenar informaci´on de cierre de bucles tambi´en ha sido modificada para saber qu´e robot ha visto la imagen con la que se ha cerrado bucle.

Se han a˜nadido funciones que permiten la adici´on de entradas en el diccionario que incluyan informaci´on del robot que las ha enviado.

Se ha modificado la b´usqueda de im´agenes candidatas para cerrar bu- cles para tener en cuenta que no es necesario considerar la cercan´ıa entre im´agenes si ´estas han sido tomadas por agentes distintos. En caso de ser vistas por el mismo agente, se comprueba el par´ametro p el cu´al indica cuantas im´agenes de distancia debe haber para que sean

(41)

de la actual, se acepta la imagen como candidata de cierre de bucle. En caso contrario, la imagen no es considerada v´alida para cerrar bucle ya que se podr´ıa dar el caso de que el robot no haya abandonado la zona en la que se tom´o la imagenny por tanto no resulta posible que se haya encontrado un bucle aunque el algoritmo, al estar en la misma zona, muy probablemente lo considerar´ıa como uno.

Por ´ultimo, se ha modificado el m´etodo para llevar a cabo la depuraci´on selectiva de descriptores para que se tenga en cuenta que ahora se est´a en un entorno multi-robot.

5.1.2. Modificaciones realizadas sobre iBoW-LCD

Para esta nueva soluci´on distribuida, las islas tambi´en tienen que tener en cuenta que las im´agenes provienen de robots distintos, es por ello que las estructuras que almacenan la informaci´on de las distintas islas y las funciones encargadas de gestionar los contenidos y uso de dichas estructuras han sido modificadas para incluir y saber utilizar la informaci´on del n´umero de agente. A continuaci´on se detalla la lista de modificaciones llevadas a cabo.

Se ha incluido en la estructura en el que consisten las islas la informa- ci´on del agente que ha visto todas las im´agenes que forman parte de ellas.

La funci´on para determinar si una imagen puede ser incluida en una isla ha sido modificada para que al comprobar que una imagen puede formar parte de una isla tambi´en tenga en cuenta que el agente de dicha imagen y el de dicha isla coincidan.

Al m´etodo encargado de determinar si 2 islas se solapan tambi´en se le han realizado cambios para no solo comprobar que los l´ımites de dos islas distintas est´an unidos, tambi´en deben compartir el agente que las ha visto.

Para el correcto funcionamiento del sistema ha sido creada una clase que permita almacenar palabras visuales y determinar si se ha encontrado un bucle correctamente funcionando en un entorno multi-robot. Para ello se ha partido de las funciones que se usan en el trabajo original introduciendo las siguientes variaciones:

El proceso de construcci´on de islas ha sido redise˜nado para construir islas cuyas im´agenes siempre hayan sido vistas por un mismo agente.

(42)

La funci´on usada para obtener islas prioritarias mantiene su estructura original debido a que las modificaciones hechas en la clase encargada de la gesti´on de islas son suficientes para adaptar el funcionamiento del sistema a una plataforma multi-robot.

En determinados puntos del programa, la soluci´on original almacena informaci´on del ´ultimo bucle encontrado. Debido a que se ha adap- tado dicha soluci´on para trabajar en un entorno multi-robot, ha sido necesario adaptar tambi´en las estructuras necesarias para almacenar la informaci´on de cierre de bucle de cada uno de los agentes.

5.2. Resultados

Para comprobar el funcionamiento del algoritmo, ´este ha sido evaluado sobre 5 datasets p´ublicos: Lip6In [93],Lip6Out [93], City Centre [7],KIT- TI00 [94] y KITTI05 [94]. Todos los experimentos han sido ejecutados en una m´aquina equipada con una CPU Intel i7-5820K y 16 GB de RAM. La ejecuci´on del algoritmo para un n´umero concreto de agentes, guarda los re- sultados en ficheros de texto, que posteriormente se procesan con MATLAB.

Adem´as de las medidas de precisi´on - sensibilidad, tambi´en se han obtenido los tiempos de ejecuci´on y la cantidad de palabras que forman el diccionario al final de la ejecuci´on del algoritmo.

5.2.1. Resultados para Lip6In

En la figura 5.2, se observan las curvas de P-R (precision - recall en ingl´es) para este dataset y diversos n´umeros de agentes. Estas curvas han sido obtenidas variando el n´umero deinliers m´ınimo para aceptar la detec- ci´on de bucle. Se puede apreciar como la sensibilidad, en el caso de tener solamente un solo robot funcionando, disminuye levemente con respecto a los resultados del algoritmo original (figura 4.3). Esto es debido a que, al contrario que la soluci´on propuesta en el trabajo de los autores originales [6], en este proyecto se realiza un filtrado previo de las im´agenes que reciben los agentes lo que hace que en algunos casos im´agenes que se interpretan co- mo ruido no sean enviadas al diccionario. En el caso de este dataset, este fen´omeno es muy pronunciado ya que ha sido tomado en el interior de un edificio en el que se han girado muchas esquinas, cosa que produce im´agenes con ruido. Esto permite mantener diccionarios m´as ligeros pero en algunos

(43)

se observa que el comportamiento no tiene grandes variaciones ya que los valores de la sensibilidad se mantienen relativamente estables llegando a un m´aximo en el caso de usar 3 agentes tanto usando el sistema de depuraci´on selectiva de descriptores como no us´andolo.

0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

0.7 0.75 0.8 0.85 0.9 0.95 1

Sensibilidad

Precision

N = 1 N = 2 N = 3 N = 4 N = 5

0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

0.7 0.75 0.8 0.85 0.9 0.95 1

Sensibilidad

Precision

N = 1 N = 2 N = 3 N = 4 N = 5

Figura 5.2: Resultados obtenidos al ejecutar la soluci´on centralizada sobre eldataset Lip6In sin usar la depuraci´on selectiva en el diccionario (figura de la izquierda) y us´andola (figura de la derecha)

Al observar la tabla 5.1 se puede ver un resumen de los resultados obte- nidos al ejecutarLip6In. La sensibilidad representada es la m´axima obtenida manteniendo una precisi´on del 100 %, vi´endose que el peor de los casos es cuando se est´an usando 4 agentes, obteniendo un valor de 34.82 % en el caso de usar el sistema de depuraci´on selectiva de descriptores y 2 agen- tes (sensibilidad de 44.52 %) al no usar el sistema de depuraci´on selectiva de descriptores. N´otese tambi´en el decremento de palabras visuales en el diccionario al estar purg´andolo constantemente. Tambi´en se observa como los tiempos se mantienen aproximadamente constantes en ambos casos. A pesar de que en unos de los casos se est´a bajando hasta una sensibilidad de 34.82 %, estos resultados podr´ıan llegar a ser v´alidos para un sistema SLAM ya que en trabajos como ORB-SLAM 2 [8] se consiguen muy buenos resultados llegando a sensibilidades m´aximas muy parecidas a las m´ınimas obtenidas en este proyecto.

5.2.2. Resultados para Lip6Out

Si se observan los resultados representados en la figura 5.3, se aprecia que en el caso de estar trabajando ´unicamente con un solo robot, los datos llegan hasta el 90 % de sensibilidad lo que supera el valor obtenido por

Referanser

RELATERTE DOKUMENTER

Debe mencionarse que el aprendizaje cooperativo no se basa en que los alumnos realicen de forma esporádica un trabajo en grupo, sino de que se organicen, de forma más permanente

criterio ordenador de las distintas modalidades de ataque a la privacy. Así como el descubrimiento y revelación de secretos sería un delito de naturaleza compleja, integrado por

En el Derecho romano, sólo había derecho de acrecer cuando se producía una institución conjunta por parte del testador. Un modo de conjunción especial suponía que en una misma

Si solo existe un pago fijo, el agente no tiene riesgo, pero tampoco incentivo; si es solo variable, tiene muchos incentivos, pero también mucho riesgo; por tanto, un buen sistema

El análisis de los espectros indica que en el confórmero 50A la escuaramida está en conformación E,Z, de manera que se forma un enlace de hidrógeno intramolecular que

Por ejemplo, para un golfista: nivel 1- conseguir 50 puntos en bolos y 100 en dardos y así subiendo progresivamente (tareas y metas escalonadas) para poder ver si

mercancías en Baleares se encuentra infrasubvencionado, además de tener unos altos costes relativos que encarecen significativamente el coste efectivo para cada uno de los agentes

Este TFG tiene varias fortalezas, ya que ha permitido evaluar el estado de producción local balear, conocer los supermercados que casi exclusivamente primen el producto