Keyframe
- Também chamado: key frame, KF
- Categoria: State estimation & navigation › Localisation
- Tags: slam, visual-odometry, mapping, state-estimation, bundle-adjustment
Um quadro selecionado que um sistema de SLAM ou de mapeamento mantém, com sua pose e suas observações, para otimização posterior, enquanto a maioria dos outros quadros é usada brevemente e descartada.
Definição
Quadro-chave (keyframe) é um entre um pequeno conjunto de imagens de câmera ou varreduras de sensor que um sistema de SLAM, odometria ou mapeamento decide manter. Todo quadro que chega é usado para rastrear o movimento do sensor, mas apenas os quadros-chave são armazenados com sua pose estimada e suas observações, como features de imagem, profundidade ou pontos de lidar. O mapa e a trajetória são então refinados usando esses quadros-chave em vez de todos os quadros. A abordagem foi estabelecida para SLAM visual em tempo real pelo PTAM, de Georg Klein e David Murray em 2007, que separou rastreamento e mapeamento em threads distintas, e foi desenvolvida depois em sistemas como o ORB-SLAM.
A regra para criar um novo quadro-chave é uma decisão de projeto central. Critérios comuns incluem o tempo ou a distância desde o último quadro-chave, paralaxe suficiente para triangular novos pontos e uma queda na sobreposição da vista atual com o último quadro-chave, medida por exemplo por features compartilhadas ou por voxels do mapa compartilhados. Os sistemas também descartam (cull) quadros-chave que se tornaram redundantes. Com poucos quadros-chave o rastreamento se perde ou o mapa fica esparso; com quadros-chave demais a otimização fica mais lenta sem acrescentar informação.
Os quadros-chave são o que torna o SLAM baseado em otimização viável em custo. O ajuste de feixes (bundle adjustment) e a otimização do grafo de poses rodam sobre os quadros-chave, muitas vezes só os de uma janela local, e a busca de fechamento de loop compara novos quadros com os quadros-chave armazenados. Em sistemas de mapeamento implícito neural e denso, um conjunto de quadros-chave é reproduzido durante o treinamento do mapa para que regiões observadas antes não sejam esquecidas à medida que a rede ou a grade de features é atualizada com novos quadros.
Por que importa
Os sensores produzem muito mais quadros do que um robô consegue otimizar em tempo real. A seleção de quadros-chave decide qual informação é mantida, por isso afeta diretamente a qualidade do mapa, a robustez do rastreamento, o uso de memória e o orçamento computacional de todo sistema de SLAM construído sobre ela.
Principais aplicações
- Ajuste de feixes local em SLAM visual e visual-inercial
- Detecção de fechamento de loop contra uma base de quadros-chave armazenados
- Reprodução de observações passadas em mapeamento implícito neural e denso
- Relocalização após perda de rastreamento
- Construção de mapas leves para localização de longo prazo
Na prática
Uma equipe que roda um sistema de SLAM visual-inercial em um suporte de mão a 30 quadros por segundo percebe que apenas alguns quadros-chave por segundo são criados ao caminhar e quase nenhum quando parada. Ao entrar em um corredor pobre em features, o rastreamento fica frágil; baixar o limiar de sobreposição para que os quadros-chave sejam inseridos mais cedo ajuda a manter pontos triangulados suficientes. Para um sistema neural de mapeamento com lidar, eles definem a regra de quadros-chave para que uma nova varredura seja mantida quando sua sobreposição com o último quadro-chave cai abaixo de um limiar, e cada passo de otimização amostra raios do quadro atual e de uma seleção de quadros-chave armazenados. Eles acompanham a contagem de quadros-chave em execuções longas, já que um conjunto sem limite acabará deixando a otimização mais lenta.
Equívocos comuns
- Todo quadro passa a fazer parte do mapa — a maioria dos quadros é usada apenas para rastreamento; somente os quadros-chave selecionados são armazenados e otimizados
- Mais quadros-chave sempre dão um mapa melhor — quadros-chave redundantes acrescentam computação com pouca informação nova, e é por isso que os sistemas os descartam
- Um quadro-chave em SLAM é o mesmo que um quadro-chave em animação — em SLAM é uma observação de sensor armazenada com uma pose, não uma pose definida à mão usada para interpolação
Quem deve saber
- Engenheiros de SLAM e de odometria visual
- Desenvolvedores de sistemas de mapeamento 3D neural e denso
- Equipes de navegação de drones e robôs móveis
- Estudantes de visão computacional que estudam structure from motion
Tecnologias relacionadas
- ORB-SLAM
- PTAM
- Ajuste de feixes (Bundle Adjustment)
- Odometria visual-inercial (Visual-Inertial Odometry)
- Saco de palavras visuais (Bag of Visual Words)
Termos relacionados
- SLAM
- Visual Odometry
- Pose Graph Optimization
- Neural Implicit Representation
- Neural Radiance Field
- Loop Closure
Projetos 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