Keyframe
- También llamado: key frame, KF
- Categoría: State estimation & navigation › Localisation
- Etiquetas: slam, visual-odometry, mapping, state-estimation, bundle-adjustment
Un fotograma seleccionado que un sistema de SLAM o de mapeo conserva, con su pose y sus observaciones, para optimizarlo después, mientras que la mayoría de los demás fotogramas se usan brevemente y se descartan.
Definición
Fotograma clave (keyframe) es una de las pocas imágenes de cámara o barridos de sensor que un sistema de SLAM, odometría o mapeo decide conservar. Cada fotograma entrante se usa para seguir el movimiento del sensor, pero solo los fotogramas clave se almacenan con su pose estimada y sus observaciones, como características de imagen, profundidad o puntos lidar. El mapa y la trayectoria se refinan después usando estos fotogramas clave en lugar de todos los fotogramas. El enfoque se consolidó para el SLAM visual en tiempo real con PTAM, de Georg Klein y David Murray en 2007, que separó el seguimiento y el mapeo en hilos distintos, y se desarrolló después en sistemas como ORB-SLAM.
La regla para crear un nuevo fotograma clave es una decisión de diseño central. Los criterios habituales incluyen el tiempo o la distancia desde el último fotograma clave, un paralaje suficiente para triangular nuevos puntos y una caída en el solapamiento de la vista actual con el último fotograma clave, medido por ejemplo por características compartidas o por vóxeles del mapa compartidos. Los sistemas también descartan (cull) los fotogramas clave que se han vuelto redundantes. Con muy pocos fotogramas clave se pierde el seguimiento o el mapa queda disperso; con demasiados, la optimización se ralentiza sin aportar información.
Los fotogramas clave son lo que hace asumible el SLAM basado en optimización. El ajuste de haces (bundle adjustment) y la optimización del grafo de poses se ejecutan sobre los fotogramas clave, a menudo solo sobre los de una ventana local, y la búsqueda de cierres de bucle compara los nuevos fotogramas con los fotogramas clave almacenados. En los sistemas de mapeo implícito neuronal y denso, un conjunto de fotogramas clave se reproduce durante el entrenamiento del mapa para que las regiones observadas antes no se olviden a medida que la red o la rejilla de características se actualiza con nuevos fotogramas.
Por qué importa
Los sensores producen muchos más fotogramas de los que un robot puede optimizar en tiempo real. La selección de fotogramas clave decide qué información se conserva, así que afecta directamente a la calidad del mapa, la robustez del seguimiento, el uso de memoria y el presupuesto de cómputo de todo sistema de SLAM construido sobre ella.
Aplicaciones clave
- Ajuste de haces local en SLAM visual y visual-inercial
- Detección de cierres de bucle frente a una base de datos de fotogramas clave almacenados
- Reproducción de observaciones pasadas en el mapeo implícito neuronal y denso
- Relocalización tras la pérdida del seguimiento
- Construcción de mapas ligeros para la localización a largo plazo
En la práctica
Un equipo que ejecuta un sistema de SLAM visual-inercial en un soporte de mano a 30 fotogramas por segundo observa que solo se crean unos pocos fotogramas clave por segundo al caminar y casi ninguno al estar quieto. Cuando entran en un pasillo pobre en características, el seguimiento se vuelve frágil; bajar el umbral de solapamiento para que los fotogramas clave se inserten antes ayuda a mantener suficientes puntos triangulados. Para un sistema neuronal de mapeo con lidar, fijan la regla de fotogramas clave de modo que un nuevo barrido se conserve cuando su solapamiento con el último fotograma clave cae por debajo de un umbral, y cada paso de optimización muestrea rayos del fotograma actual y de una selección de fotogramas clave almacenados. Vigilan el número de fotogramas clave en ejecuciones largas, ya que un conjunto sin límite acabará ralentizando la optimización.
Ideas erróneas comunes
- Todos los fotogramas pasan a formar parte del mapa — la mayoría de los fotogramas solo se usan para el seguimiento; únicamente los fotogramas clave seleccionados se almacenan y optimizan
- Más fotogramas clave siempre dan un mapa mejor — los fotogramas clave redundantes añaden cómputo con poca información nueva, y por eso los sistemas los descartan
- Un fotograma clave en SLAM es lo mismo que un fotograma clave en animación — en SLAM es una observación de sensor almacenada con una pose, no una pose fijada a mano que se usa para interpolar
Quién debería saberlo
- Ingenieros de SLAM y de odometría visual
- Desarrolladores de sistemas de mapeo 3D neuronal y denso
- Equipos de navegación de drones y robots móviles
- Estudiantes de visión por computador que estudian estructura a partir del movimiento
Tecnologías relacionadas
- ORB-SLAM
- PTAM
- Ajuste de haces (Bundle Adjustment)
- Odometría visual-inercial (Visual-Inertial Odometry)
- Bolsa de palabras visuales (Bag of Visual Words)
Términos relacionados
- SLAM
- Visual Odometry
- Pose Graph Optimization
- Neural Implicit Representation
- Neural Radiance Field
- Loop Closure
Proyectos relacionados
- LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
- oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
- Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
- OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
- FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO
- DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required