Análisis de la calidad de ORB-SLAM

De RoViT
Saltar a: navegación, buscar

Contenido

¿En qué consiste el sistema?

Se pretenden establecer algunas medidas de calidad para el rendimiento de ORB-SLAM 2, especialmente orientado a su versión monocular. Las dos principales medidas son errores en la trayectoria en base a un ground truth y el tiempo y frames que el algoritmo invierte en inicializarse y en relocalizarse en caso de perderse.


¿Cómo lo pongo en marcha?

Dado que para realizar las pruebas se utilizó un dataset TUM (Concretamente, el freiburg1_desk1) y que las trayectorias que produce ORB SLAM 2 siguen el mismo formato que los ground truths de dicho dataset, se ha hecho uso de las herramientas que se proporcionan en [1]. Concretamente, evaluate_ate.py y evaluate_rpe.py, que calculan el error absoluto de trayectoria (ATE) y el error relativo a las poses (RPE).

Estos scripts asocian las poses estimadas con el ground truth basándose en los timestamps. La ejecución básica de ambos scripts es la siguiente:

python evaluate_ate.py [ruta_groundtruth] [ruta_trayectoria]

También, tanto para ATE como para RPE tiene varios parámetros que permiten ajustar el cálculo. Los únicos que serán utilizados será --scale y --plot, que permiten escalar la trayectoria y guardar en png o PDF los resultados, respectivamente. Un ejemplo de ejecución real sería:

python evaluate_ate.py ../freiburg1_desk1/rgbd_dataset_freiburg1_desk-groundtruth.txt ../freiburg1_desk1/rgb/KeyFrameTrajectory1.txt --scale 1.5 --plot result1.png

La ejecución anterior compara el groundtruth y la trayectoria indicadas, escalando la trayectoria a 1.5 y almacenando el resultado gráficamente en result1.png.

Resultados y demos

Realicé cinco ejecuciones en condiciones similares de un mismo dataset, con los mismos ajustes y cargando al ordenador únicamente con la ejecución del dataset y del algoritmo de ORB SLAM 2 (directamente, con pequeñas variaciones causadas por daemons y procesos en segundo plano). Estas ejecuciones, en lo referente a errores, dieron los siguientes resultados:

Número de ejecución ATE (m) RPE (m)
1 0.313753 0.3809325640690
2 0.113226 0.1401817020970
3 0.014467 0.0272482118412
4 0.725814 0.8796634411210
5 0.049640 0.0633464424336


Visualmente, los resultados de las mismas pruebas son los siguientes:

  • 1ª prueba
  • 2ª prueba
  • 3ª prueba
  • 4ª prueba
  • 5ª prueba


Resulta evidente que hay un problema de escala, así que la ajusté, pasando a lograr los siguientes resultados:

Número de ejecución Escala ATE (m) RPE (m)
1 1.50 0.015066 0.0264102339822
2 1.13 0.036509 0.0411346435851
3 1.00 0.014467 0.0272482118412
4 4.75 0.146768 0.1257060126620
5 0.95 0.015256 0.0249721439052


  • 1ª prueba con escala 1.5
  • 2ª prueba con escala 1.13
  • 3ª prueba con escala 1
  • 4ª prueba con escala 4.75
  • 5ª prueba con escala 0.95

Documentación

Publicaciones relacionadas

Herramientas personales
Espacios de nombres

Variantes
Acciones
Navegación
Herramientas