Está en la página 1de 8

SLAM visual

Ir a la navegaciónIr a la búsqueda

Estimación del movimiento de la cámara analizando las imágenes


El mapeo y localización simultáneos o SLAM es un problema general que permite a un
robot móvil generar un mapa del entorno por medio de sensores, y ubicarse en él; y
a un celular ubicarse en su entorno y producir imágenes de realidad aumentada. SLAM
visual es una variante especializada de SLAM, en la que el sensor es una cámara o
un conjunto de cámaras, y la comprensión del entorno requiere técnicas de visión
artificial.

SLAM visual indirecto, ORB-SLAM2.1 A la izquierda dos versiones de la misma imagen:


la esquina de un laboratorio. A la derecha se observa una vista superior de la nube
de puntos del mapa. Se reconoce claramente la esquina del laboratorio y las dos
paredes. La pirámide lila representa la localización de la cámara en el mapa.

Índice
1 Término
1.1 Otros términos
2 Historia
2.1 2007
2.2 2010
2.3 2014 a 2017
2.4 Estado del arte en 2021
3 Sensores
4 Aplicaciones
4.1 Características y limitantes de la tecnología
5 Categorías
5.1 SLAM visual indirecto
5.2 SLAM visual directo
5.3 SLAM visual e inercial
5.4 SLAM visual semántico
5.5 Inteligencia artificial espacial
6 Partes de un sistema de SLAM visual
6.1 Tecnologías involucradas
6.2 Tecnologías emparentadas
7 Sistemas de SLAM visual
8 Enlaces externos
9 Referencias
Término
SLAM visual es una traducción aproximada del inglés visual SLAM donde el acrónimo
SLAM (Simultaneous Localization And Mapping) ha cobrado significancia universal
convirtiéndose en un nombre propio, de manera que se lo adopta como anglicismo y se
lo prefiere frente a su versión traducida MYLS (Mapeo Y Localización Simultáneos)
que nadie utiliza.

El término visual es una metonimia que se refiere al análisis de imágenes. Es una


metonimia relativamente nueva, en las últimas dos décadas del siglo XX se usaba el
término óptico (como en reconocimiento óptico de caracteres) para el mismo fin.

El acrónimo SLAM es un préstamo de la tecnología de la que deriva (Mapeo Y


Localización Simultáneos), aunque en rigor en SLAM visual el mapeo y la
localización no son simultáneos: son paralelos, no están sincronizados y sus
cadencias son muy dispares. Desde los inicios en 2007 hubo intentos por imponer un
acrónimo alternativo más preciso: PTAM,2 que significa mapeo y rastreo en paralelo,
pero no logró imponerse. Se concluye que SLAM visual es un nombre propio apartado
de su significado literal.
Otros términos
En la literatura, especialmente en papers, se encuentran denominaciones
alternativas en inglés, algunas ya en desuso:

visual SLAM
vSLAM
monocular SLAM
PTAM
Historia
2007
El proyecto iniciador de SLAM visual fue el publicado en el paper MonoSLAM3 en 2007
de Andrew Davison, que describió el primer algoritmo capaz de realizar SLAM en
tiempo real con las imágenes de una cámara. MonoSLAM es un acrónimo de monocular
SLAM, que hace hincapié en el uso de una cámara única (monocular, contrario a
estereoscopía) como único sensor. La PC requería GPU , la aplicación funcionaba
como prueba de concepto pero era muy limitada para usos prácticos, pues rápidamente
se quedaba sin memoria por lo que sólo podía mapear pequeñas habitaciones. Con
posterioridad a la publicación y debido al creciente interés, Davidson compartió el
código que se podía descargar desde su página.

En paralelo a MonoSLAM se desarrolló PTAM,2 publicado el mismo año apenas unos


meses más tarde que MonoSLAM. Notablemente las implementaciones modernas de SLAM
visual adoptan una estructura similar a la introducida por PTAM, y no emplean casi
nada de MonoSLAM. Y aun así, MonoSLAM se hizo más famoso por el solo hecho de haber
publicado primero. Esta forma de encarar el problema de SLAM visual recibió años
más tarde el nombre de SLAM visual indirecto.

2010
El mismo laboratorio creador de MonoSLAM presentó DTAM: Dense Tracking and Mapping
in Real-Time, el primer sistema directo que no se concentra en puntos sino que
utiliza la imagen completa, denominando por oposición SLAM visual indirecto al
resto de los sistemas.

2014 a 2017
En 2014 la Universidad Técnica de Munich (TUM) publicó LSD-SLAM,4 Large Scale
Direct SLAM,5 iniciando la categoría SLAM visual semidirecto y marcando un hito
histórico: fue el primer sistema capaz de ejecutarse en tiempo real en una PC sin
GPU y de los primeros en publicar su código fuente como código abierto, lo que
facilitó la instalación y prueba a miles de aficionados que popularizaron las
posibilidades de SLAM visual. A partir de LSD-SLAM los sistemas de SLAM visual se
abocarían al uso en tiempo real sin GPU en una PC y a publicar su código fuente
abierto para conseguir el apoyo de la comunidad en su depuración y mejora.

ORB-SLAM6 (2015) y ORB-SLAM27 (2017) publicados como código abierto y en sendos


papers de Raúl Mur de la Universidad de Zaragoza marcaron el estado del arte. Con
posterioridad muchos sistemas de SLAM visual se basarían en ORB-SLAM2.

En 2017 el mismo autor publicó Visual-inertial SLAM,8 extendiendo ORB-SLAM2, para


combinar cámara con IMU, uno de los primeros sistemas de la nueva categoría SLAM
visual e inercial, y sin duda el más influyente.

Estado del arte en 2021


En 2017, a 10 años del proyecto iniciador MonoSLAM, el problema de SLAM visual se
consideró resuelto. La cantidad de publicaciones y sistemas continúa en aumento, y
se dedican refinamientos y mejoras incrementales por un lado, y a la exploración de
un campo nuevo con el uso de deep learning.

ORB-SLAM2 y LSD-SLAM representan el estado del arte y son los grandes pilares de
las categorías de sistemas indirecto y semidirecto . ORB-SLAM2 parece haber
presentado mejor base para refinamientos y desarrollo de características
superiores, y se usa como base para mejoras paulatinas, como lo demuestran ORB-
SLAM3 (2021), SVDL (2019) y OpenVSLAM (2019), tres proyectos destacados entre
muchos otros.

Sensores
Hay esencialmente 3 tipos de cámaras usadas en SLAM visual:

monocular: una sola cámara, tal como fue formulado el problema original
cámara estéreo: dos cámaras de pose conocida, típicamente paralelas y alineadas
cámara RGB-D: cámaras de profundidad, relevan un modelo 3D pero con baja resolución
Algunos sistemas complementan la cámara con un acelerómetro 3D, entrando en la
categoría SLAM visual e inercial.

Además se usan 3 tipos de lente:

modelo de cámara estenopeica, colineal (normal)


gran angular
omnidireccional
Los sistemas actuales suelen ser compatibles con todos los sensores y lentes y con
el acelerómetro si está presente.

Aplicaciones
Si bien esta tecnología ha madurado en laboratorio, todavía tiene un largo camino
para llegar a productos. Las principales aplicaciones son:

Navegación visual para drones9 y pequeños vehículos autónomos


Realidad aumentada sin marcadores10
Características y limitantes de la tecnología
SLAM visual se originó con el objetivo de aplicarse en realidad aumentada, y las
capacidades de los sistemas se demostraban sobre datasets de videos de ambientes
pequeños y cerrados. En la medida que la tecnología fue madurando, sistemas más
potentes que los originales comenzaron a demostrar sus capacidades sobre datasets
de videos diseñados para odometría visual, con videos de recorridos largos en
ámbitos abiertos, tales como caminatas por campus y circuitos urbanos en automóvil,
lo que inició la exploración del uso de estos sistemas en navegación autónoma.

Los sistemas SLAM visuales tienen fuertes limitantes: requieren una escena
visualmente estática, lo que implica que no tenga partes móviles ni cambios de
iluminación. Las partes móviles interfieren con el proceso de mapeo. Los cambios de
iluminación hacen irreconocibles los elementos mapeados. Los sistemas más modernos
son robustos, diseñados para tolerar una porción de elementos visuales en
movimiento siempre que no dominen la vista, y algún cambio de iluminación. Como
consecuencia estos sistemas no son compatibles con estos tipos de escena:

escenas naturales, con pasto que crece y cambia su aspecto a lo largo de los días,
y árboles cuyas ramas se mueven por el viento
ambientes con muebles que cambiarán de posición
no reconoce la misma escena de día y de noche
Por lo expuesto, estos sistemas funcionan mejor en ambientes artificiales
(construidos por el hombre), usualmente en lugares cerrados con iluminación
artificial. En cuanto a navegación autónoma se distingue su uso en ámbitos privados
y en la vía pública. En ámbitos privados pequeños (casas y oficinas) o grandes
(countries y establecimientos industriales) SLAM visual se tiene una aplicación
experimental exitosa con drones y para robots móviles (AGV). En vía pública, más
específicamente en automotores autónomos, SLAM visual puede incorporarse como un
sistema accesorio, pero no se lo considera como sistema de navegación principal.
Estos vehículos tienden a emplear otros sistemas de SLAM más confiables, pero que
emplean sensores muchos más caros que las cámaras.

Categorías
A medida que se avanza en la investigación y desarrollo de SLAM visual, el problema
se va especializando paulatinamente y surgen categorías no excluyentes que agrupan
los diferentes abordajes.

SLAM
SLAM visual
SLAM visual directo
SLAM visual semidirecto
SLAM visual indirecto
SLAM visual e inercial
SLAM visual semántico
Spatial AI: Inteligencia artificial espacial

La taxonomía de SLAM visual está en permanente evolución y sus denominaciones


cambiarán con el tiempo. Acrónimos y categorías suele ser sugeridos por los propios
desarrolladores de estos sistemas, con distinto grado de adopción de parte de la
comunidad involucrada. El uso de inteligencia artificial en SLAM visual abrió un
campo de intensa investigación. El creador de SLAM visual Andrew Davison bautizó
este campo como Spatial AI, pero la comunidad no ha adoptado esta denominación,
aunque tampoco hay alternativas sugeridas. Con el tiempo se irán decantando ésta y
otras categorías.

SLAM visual indirecto


A esta categoría pertenecen los proyectos fundacionales de SLAM visual, y continúa
vigente. Los sistemas indirectos se denominan así porque entre la obtención de la
imagen de la cámara y su integración con el mapa intercalan una etapa de detección
de puntos singulares (también llamados keypoints o características). Estos puntos
son luego incorporados al mapa. Un mapa de un sistema indirecto es una nube de
puntos.

Por operar sobre puntos, esta categoría también recibe el nombre de SLAM visual de
partículas., o también basado en características.

SLAM visual directo


Esta categoría corresponde a una tecnología más reciente que compite con la
anterior. Emplea la imagen completa para producir un mapa de profundidad que se
integra al mapa total del sistema. Su nombre proviene del hecho de evitar la
detección de puntos singulares e incorporar al mapa directamente los píxeles de la
imagen. Su principal ventaja reside en el hecho de aprovechar toda la información
de la imagen. Su mayor desventaja es su lentitud, pues debe operar con cada uno de
los píxeles.

LSD-SLAM introdujo con éxito el abordaje semidirecto, que reduce enormemente la


cantidad de píxeles a considerar, convirtiéndose en el primer sistema SLAM visual
directo que se ejecuta en tiempo real. Los sistemas semidirectos se concentran
solamente en las zonas con alto gradiente de intensidad, que corresponden a los
bordes de los elementos visuales presentes en la imagen. El argumento en favor de
esta técnica sostiene que la mayor parte de la información de la imagen se
encuentra en estos bordes, mientras que áreas lisas y sin texturas no contienen
información relevante.

SLAM visual e inercial


A esta categoría pertenecen los sistemas que agregan a la cámara un sensor inercial
(típicamente 6D: un acelerómetro 3D y un giróscopo 3D). Estos sensores son muy
baratos y proporcionan información muy relevante al sistema. Entre otras cosas
brindan métrica (los sistemas monoculares no tienen noción de la escala del mapa en
términos reales) y referencia vertical (los acelerómetros distinguen el vector
gravedad, que marca la vertical). Si además el sensor cuenta con magnetómetro,
usado como brújula completa la orientación del mapa en términos reales.

SLAM visual semántico


La semántica es una capa de nivel superior que brinda significado a los elementos
visuales. Un sistema de SLAM visual se beneficia de poder identificar objetos como
puertas, ventanas y muebles, que le permiten comprender aspectos complementarios de
la escena que observan y del mapa que están relevando.

La semántica usualmente se obtiene con redes neuronales convolucionales, lo que


suele enmarcar esta categoría dentro de Inteligencia artificial espacial,

Inteligencia artificial espacial


Andrew Davison bautizó Spatial AI11 a una nueva categoría que intenta resolver el
problema de SLAM visual con aprendizaje profundo. Mientras que en 2021 los
abordajes directo e indirecto se consideran maduros, el uso de aprendizaje profundo
está en pleno auge, y todavía no ha alcanzado la velocidad de procesamiento ni la
precisión de los otros. Sin embargo promete contribuir con características
avanzadas que los sistemas clásicos no pueden tener.

Esta categoría se encuentra en desarrollo intenso y se está dividiendo en varias


ramas especializadas.

En rigor, la naturaleza de las redes convolucionales utilizadas impiden categorizar


estos sistemas en directos o indirectos.

Partes de un sistema de SLAM visual


SLAM visual es un problema complejo, en el sentido que consta de varias partes de
tecnología diversa. Los sistemas vigentes incorporan muchas de estas partes, pero
no todas necesariamente:

Inicialización
Mapeo y localización en paralelo
Localización sin mapeo
Relocalización
Cierre de bucle
Fusión de mapas
Sacrificio de elementos redundantes (map culling)
Tecnologías involucradas
SLAM visual es un problema extremadamente complejo, que requiere el uso experto de
una larga serie de tecnologías diversas que combinan geometría, informática, visión
artificial y optimización numérica. Éste es un resumen no exhaustivo:

Homografía para inicialización


Coordenadas homogéneas
Geometría proyectiva
Triangulación de puntos para generar el mapa
Descomposición en valores singulares para minimizar el error cuadrático medio
Geometría epipolar para inicialización y reducir el dominio de macheo para
triangulación
Perspectiva desde N puntos (PnP) para localización
Bundle adjustment
Optimización de grafos, para organizar los elementos del mapa y cerrar bucles
Geometría en SE(3) y Sim(3)
Detección, descripción y macheo de puntos singulares
Pirámides
BoW (bags of words)
Modelo de distorsión de lente
Detección de bordes
Redes convolucionales
Segmentación semántica
Visión artificial
Tecnologías emparentadas
SLAM visual guarda estrecha relación con otras tecnologías similares pero con
propósito diverso, entre ellas:

Odometría visual
Structure from motion
Sistemas de SLAM visual
Alrededor de 2014 se hizo costumbre acompañar las publicaciones de papers de SLAM
visual, con código abierto disponible usualmente en GitHub y para Linux. Es
inviable confeccionar una lista exhaustiva de todos los sistemas de SLAM visual, a
continuación se listan los más destacados.

Sistema Año Sitio web Método Cámaras y sensores Código Video


MonoSLAM 2007 indirecto monocular doc.ic.ac.uk
MatLab

PTAM 2007 robots.ox.ac.uk indirecto monocular github.com youtube.com


PTAMM 2008 robots.ox.ac.uk indirecto monocular youtube.com
DTAM 2011 directo monocular
LSD-SLAM 2014 vision.in.tum.de semidirecto monocular github.com
Linux

youtube.com
LSD-SLAM stereo 2015 vision.in.tum.de semidirecto estéreo youtube.com
LSD-SLAM omnidireccional 2015 vision.in.tum.de semidirecto gran angular
omnidireccional

youtube.com
ORB-SLAM 2015 webdiis.unizar.es indirecto monocular github.com
Linux

ORB-SLAM2 2017 webdiis.unizar.es indirecto monocular


estéreo

RGB-D

github.com
Linux

youtube.com
Visual-Inertial Monocular SLAM With Map Reuse 2017 indirecto monocular
IMU

youtube.com
OpenVSLAM 2019 readthedocs.io Indirecto monocular
gran angular

omnidireccional

estéreo

RGB-D

IMU
github.com
Linux

Windows

Mac

youtube.com
SVDL 2019 indirecto
semidirecto

github.com youtube.com
Visual-Inertial Mapping with Non-Linear Factor Recovery 2020 vision.in.tum.de
indirecto monocular
IMU

github.com youtube.com
ORB-SLAM3 2021 Indirecto monocular
gran angular

omnidireccional

estéreo

RGB-D

IMU

github.com
Linux

youtube.com
Los primeros sistemas de SLAM visual se hicieron sobre MatLab. Al poco tiempo
buscando eficiencia computacional los sistemas se comenzaron a desarrollar en C++,
el lenguaje que domina la escena en la actualidad. La gran mayoría de los
desarrollos se realizan sobre Linux, el código abierto se comparte para ser
compilado. Con la permanente evolución de WSL nuevos sistemas de SLAM visual
comienzan a incluir instrucciones para instalación en Windows.

Muchos de estos sistemas funcionan en tiempo real en una PC sin necesidad de


acelerar con GPU, pero hasta 2021 ninguno se logró ejecutar en tiempo real en un
celular. Algunos, como el caso de LSD-SLAM, presentan una versión limitada para
celular, típicamente con capacidad de localización pero no de mapeo.

Enlaces externos
OpenSLAM, sitio web con código y herramientas de SLAM visual
Referencias
«Video de donde se obtuvo la imagen de ORB-SLAM2».
«Sitio web de PTAM».
«Paper de MonoSLAM».
«Sitio de LSD-SLAM del grupo de visión artificial de TUM».
«Video de LSD-SLAM».
«Sitio del proyecto ORB-SLAM».
«Video de ORB-SLAM2».
«Paper de Visual-Inertial Monocular SLAM with Map Reuse».
«Video de dron autónomo con LSD-SLAM».
«Video de realidad aumentada con ORB-SLAM2».
«FutureMapping: The Computational Structure of Spatial AI Systems».
Control de autoridades
Proyectos WikimediaWd Datos: Q104724151
Categorías: RobóticaVisión por computadoraVehículos autónomos
Menú de navegación
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
ArtículoDiscusión
LeerEditarVer historial
Buscar
Buscar en Wikipedia
Portada
Portal de la comunidad
Actualidad
Cambios recientes
Páginas nuevas
Página aleatoria
Ayuda
Donaciones
Notificar un error
Herramientas
Lo que enlaza aquí
Cambios en enlazadas
Subir archivo
Páginas especiales
Enlace permanente
Información de la página
Citar esta página
Elemento de Wikidata
Imprimir/exportar
Crear un libro
Descargar como PDF
Versión para imprimir

En otros idiomas
Añadir enlaces
Esta página se editó por última vez el 13 oct 2021 a las 02:34.
El texto está disponible bajo la Licencia Creative Commons Atribución Compartir
Igual 3.0; pueden aplicarse cláusulas adicionales. Al usar este sitio, usted acepta
nuestros términos de uso y nuestra política de privacidad.
Wikipedia® es una marca registrada de la Fundación Wikimedia, Inc., una
organización sin ánimo de lucro.
Política de privacidadAcerca de WikipediaLimitación de responsabilidadVersión para
móvilesDesarrolladoresEstadísticasDeclaración de cookiesWikimedia FoundationPowered
by MediaWiki

También podría gustarte