Contents — find the section you need

Imagine que você está andando por aí com uma câmera na mão e, na sequência de imagens, o canto de uma parede ou uma placa se desloca um pouco de cada vez. Enquanto isso, um acelerômetro e um giroscópio medem em alta frequência o quanto o dispositivo acelerou e girou nesse mesmo intervalo. A Odometria Visual (VO) estima a pose, a velocidade e a posição relativas até o momento a partir das primeiras; a Odometria Visual-Inercial (VIO) as estima a partir de ambas. É uma tecnologia fundamental para drones voando em ambientes internos, headsets de realidade aumentada/virtual, scanners 3D portáteis e robôs móveis.

VO/VIO às vezes é tratado como sinônimo de SLAM, mas seus papéis diferem um pouco. A odometria é um estágio inicial que produz uma trajetória relativa suave e de curto prazo, e seu erro se acumula em princípio. O SLAM usa um mapa, reconhecimento de localização e fechamento de loop para corrigir globalmente esse erro acumulado. Este artigo foca-se menos na visão geral do mapeamento e mais em como o movimento é integrado quadro a quadro, como a IMU é incorporada e quando se deve suspeitar da estimativa.

Câmera Mobileye montada no para-brisa de um veículoExemplo de câmera veicular
IMU integrada GNSS/INS Xsens MTi-GExemplo de IMU GNSS/INS

Imagens: Car câmera de janela do sistema Mobileye (Ranbar, CC BY-SA 4.0) / Xsens MTi-G (Kallap85, CC BY-SA 4.0), Wikimedia Commons. Sensores representativos, não uma combinação de produtos VO/VIO obrigatória.

0. Resumo de 30 segundos

  • O VO estima sequencialmente o movimento da câmera a partir de correspondências de imagem ou de mudanças na aparência dos pixels. O VO monocular não consegue observar a escala absoluta da translação, e o erro se acumula ao longo do tempo. Estéreo, RGB-D, tamanho conhecido do objeto, sensores inerciais e rodas fornecem a escala.

  • O VIO funde as observações de baixa frequência e resistentes à deriva da câmera com as observações de alta frequência da IMU, que são precisas em intervalos curtos, mas sofrem deriva devido ao viés. O giroscópio fornece a rotação; o acelerômetro complementa a informação que separa a gravidade da aceleração.

  • A pré-integração da IMU comprime as muitas amostras da IMU entre os quadros-chave da imagem em uma única restrição relinearizável por viés. É isso que torna a otimização por janela deslizante computacionalmente viável.

  • A inicialização é a parte difícil. Sem paralaxe suficiente, excitação que inclua rotação, estimativa de viés enquanto estacionário e sincronização de tempo câmera-IMU e calibração extrínseca, escala, gravidade, velocidade e viés não podem ser separados.

  • A avaliação deve relatar não apenas o erro médio, mas também ATE/RPE, deriva por intervalo, taxa de falha, latência, uso de CPU/GPU e se a trajetória usou alguma relocalização. Texturas de baixa qualidade, objetos dinâmicos, desfoque de movimento, obturador rolante, choques e deslocamento de sincronização são as condições clássicas de falha.

1. O que o VO estima e o que não estima

Escreva a pose do quadro da câmera ou IMU B em relação ao quadro do mundo W no instante k como posição \mathbf{p}_{WB,k} e rotação R_{WB,k}. A principal saída do VO é a transformação relativa entre quadros ou quadros-chave adjacentes.

T_{C_kC_{k+1}}= \begin{bmatrix}R_{C_kC_{k+1}}&\mathbf{t}_{C_kC_{k+1}}\\\mathbf{0}^\mathsf{T}&1\end{bmatrix}\in SE(3)

Em métodos de rastreamento de características, a Matriz Essencial é estimada a partir de pontos correspondentes via RANSAC, e a direção de rotação e translação são recuperadas a partir dela. Em métodos baseados em estéreo/RGB-D/mapa que já possuem pontos 3D, o PnP é usado nas correspondências 2D-3D. No VO Direto, em vez de corresponder descritores explícitos, a pose é otimizada para que os valores de pixel corrigidos pela exposição coincidam em sua localização projetada.

Independentemente do método utilizado, o VO é uma forma de navegação inercial que integra "o quanto me movi desde o último quadro". Sem um mapa externo ou fechamento de loop, mesmo um pequeno erro na pose relativa nunca desaparece. O erro de posição geralmente aumenta com o tempo e a distância percorrida, e mesmo que você caminhe para frente e para trás em um longo corredor e retorne ao ponto de partida, a trajetória não se fechará. Isso não é apenas uma falha de implementação — é uma propriedade de um problema que acumula observações locais sequencialmente.

Diagram 1 · Use the button to switch views
Fusing camera and IMU in VIOThe camera supplies low-frequency visual constraints, the IMU supplies high-frequency motion constraints, and sliding-window optimization estimates the state trajectory. CameraImages, features, direct method IMUAngular velocity, acceleration (high-frequency) Preintegration + visual residualSliding windowoptimization / filter State estimatePose, position, velocityGravity, bias, scale Calibration, time sync, extrinsics

O Problema da Escala Monocular

Uma visão monocular calibrada de dois pontos A correspondência restringe E=[\mathbf{t}]_\times R, mas não determina o comprimento de \mathbf{t}. Isso ocorre porque o escalonamento de cada ponto 3D e a translação por s>0 deixam as projeções da imagem inalteradas. Uma pose VO monocular pode parecer precisa enquanto a unidade de posição é arbitrária — e se a escala oscilar de quadro para quadro, até mesmo a forma da trajetória se deteriora.

Com um sistema estéreo de linha de base conhecida B, a profundidade pode ser recuperada da disparidade d como Z=fB/d. O RGB-D atribui uma escala fixa à profundidade do próprio sensor. Em VIO, como a aceleração é medida em unidades de m/s² e a magnitude da gravidade é quase conhecida, uma excitação de movimento suficiente permite alinhar a escala arbitrária do sistema visual à escala física. Mas simplesmente conectar uma IMU não produz automaticamente Escala — quando estacionário, em movimento a velocidade constante, em um intervalo muito curto ou com um deslocamento de tempo incorreto, a escala e o viés se confundem.

2. Observações da Câmera: Métodos Baseados em Características e Métodos Diretos

A VO baseada em características utiliza correspondências rastreadas com ORB, SIFT, FAST+KLT e métodos similares. Para uma nova observação 2D de um quadro \mathbf{z}_{ij} e um ponto de referência \mathbf{P}_j, o resíduo de projeção é

\mathbf{r}_{C,ij}=\mathbf{z}_{ij}-\pi\left(K\,T_{CW,i}\mathbf{P}_j\right)

onde \pi([X,Y,Z]^\mathsf{T})=(X/Z,Y/Z)^\mathsf{T} é a divisão de perspectiva. O RANSAC remove as discrepâncias e uma perda de Huber ou similar impede que os outliers restantes sejam superestimados. Os métodos baseados em características são relativamente robustos a mudanças de exposição e são mais fáceis de visualizar e depurar geometricamente.

Os métodos diretos minimizam o resíduo de brilho de pixels correspondentes ou pequenos patches. Com os parâmetros de exposição a_i,b_i, o resíduo em um ponto \mathbf{u} pode ser escrito aproximadamente como

r_I=I_j\left(\pi(T_{C_jW}T_{WC_i}\pi^{-1}(\mathbf{u},d))\right)-e^{a_j-a_i}I_i(\mathbf{u})-(b_j-e^{a_j-a_i}b_i)

Isso pode explorar muitos pixels texturizados, mas é sensível à suposição de constância de brilho, obturador rolante, desfoque, autoexposição e reflexos. Os métodos semidiretos adotam uma abordagem intermediária — pixels para rastreamento inicial e características para o estágio posterior.

Método Observação primária Pontos fortes Condições de fraqueza Exemplos representativos
VO baseado em características Reprojeção de pontos-chave Fácil de explicar, relativamente robusto a mudanças de iluminação Baixa textura, características repetitivas Família ORB-SLAM, VINS-Mono
Direto / Semidireto Brilho de pixel/patch Informação densa, rastreamento subpixel Mudança de exposição, desfoque, reflexo DSO, SVO
VIO monocular Imagem + IMU Leve, a escala torna-se observável Sensível à inicialização/sincronização VINS-Mono, OpenVINS
VIO Estéreo Imagem esquerda/direita + IMU Escala imediata, inicialização estável Consumo de energia, sincronização/calibração esquerda-direita VINS-Fusion, Basalt

3. O que a IMU mede e por que você não pode simplesmente integrá-la diretamente

Uma IMU fornece a velocidade angular do giroscópio \tilde{\boldsymbol\omega} e a força específica do acelerômetro \tilde{\mathbf{a}}. Esses não são valores ideais — eles incluem viés \mathbf{b}_g,\mathbf{b}_a e ruído branco \mathbf{n}_g,\mathbf{n}_a.

\tilde{\boldsymbol\omega}=\boldsymbol\omega+\mathbf{b}_g+\mathbf{n}_g, \qquad \tilde{\mathbf{a}}=R_{BW}(\ddot{\mathbf{p}}_{WB}-\mathbf{g})+\mathbf{b}_a+\mathbf{n}_a

O ponto importante aqui é que o acelerômetro não mede a aceleração do mundo diretamente — ele mede a força específica, com a gravidade já subtraída. Sem saber a orientação, você não sabe em qual direção adicionar a gravidade de volta, e a dupla integração, mesmo de um pequeno valor, resultaria em um consumo excessivo de energia. O viés faz com que a posição se desvie rapidamente. As equações de movimento em tempo contínuo são:

\dot R_{WB}=R_{WB}[\tilde{\boldsymbol\omega}-\mathbf{b}_g-\mathbf{n}_g]_\times, \quad \dot{\mathbf{v}}_{WB}=\mathbf{g}+R_{WB}(\tilde{\mathbf{a}}-\mathbf{b}_a-\mathbf{n}_a), \quad \dot{\mathbf{p}}_{WB}=\mathbf{v}_{WB}

Observando apenas o erro após um segundo, uma IMU parece suave e excelente, mas ao longo de minutos de navegação sem auxílio, o viés e o erro de orientação corrompem seriamente a posição. A essência do VIO é que as imagens corrigem o desvio de longo prazo da IMU, enquanto a IMU preenche os curtos intervalos de movimento e rotação onde as imagens são escassas.

4. Pré-integração da IMU: Comprimindo o Movimento entre Quadros-Chave

Uma configuração típica opera a câmera a 20–60 Hz e a IMU a 100–1000 Hz. Entre os quadros-chave i e j, podem ocorrer dezenas a centenas de medições da IMU. Reintegrar cada amostra sempre que o otimizador ajusta a pose ou o viés seria dispendioso. A pré-integração da IMU de Forster et al. pré-calcula a rotação relativa e a velocidade. mudança e mudança de posição em torno de um determinado ponto de linearização, além de reter os jacobianos e a covariância.

Escrevendo as quantidades com a gravidade e a velocidade do mundo removidas como \Delta R_{ij},\Delta\mathbf{v}_{ij},\Delta\mathbf{p}_{ij}, a previsão é aproximadamente

R_j\simeq R_i\Delta R_{ij},\quad \mathbf{v}_j\simeq\mathbf{v}_i+\mathbf{g}\Delta t_{ij}+R_i\Delta\mathbf{v}_{ij},
\mathbf{p}_j\simeq\mathbf{p}_i+\mathbf{v}_i\Delta t_{ij}+\frac12\mathbf{g}\Delta t_{ij}^2+R_i\Delta\mathbf{p}_{ij}

Quando o viés é atualizado, uma correção de primeira ordem é aplicada usando o \partial\Delta/\partial\mathbf{b} armazenado, e a reintegração completa ocorre apenas quando a mudança é grande. A rotação não é somada como um vetor simples, mas composta na variedade SO(3) por meio do mapa exponencial ou com quatérnios. Carregar uma covariância \Sigma_{ij} permite que uma IMU ruidosa e um resíduo preciso da câmera sejam ponderados corretamente dentro da mesma função objetivo.

A função objetivo representativa para VIO de janela deslizante é

\min_{\mathcal X}\sum_{(i,j)\in\mathcal{B}}\left\|\mathbf{r}_{I,ij}\right\|^2_{\Sigma_{ij}^{-1}} +\sum_{(i,l)\in\mathcal C}\rho\left(\left\|\mathbf{r}_{C,il}\right\|^2_{\Sigma_{C}^{-1}}\right) +\left\|\mathbf{r}_{\text{prior}}\right\|^2
O conjunto de estados \mathcal X inclui, para cada quadro-chave, a pose, a posição, a velocidade, os vieses do giroscópio/acelerômetro, a profundidade inversa dos pontos de referência e, quando necessário, o deslocamento temporal ou parâmetros extrínsecos. Os estados antigos são marginalizados em uma distribuição a priori, mantendo o custo computacional limitado. Como a marginalização depende do ponto de linearização, atualizar repetidamente o estado em grande quantidade tende a quebrar a consistência. Técnicas como o Jacobiano de Primeira Estimativa (FEJ) não são apenas uma otimização de velocidade — elas existem para impedir que o sistema "observe" falsamente graus de liberdade que são, na verdade, inobserváveis.

5. Baseado em Filtro vs. Baseado em Otimização

O VIO se divide amplamente em famílias de filtro de Kalman estendido (EKF) com estado de erro e famílias de otimização não linear de comprimento fixo. As primeiras atualizam sequencialmente o estado atual e a covariância, e tendem a manter a latência e o uso de memória baixos. O MSCKF não mantém características. pontos como estado de longa duração; em vez disso, marginaliza-os como restrições de múltiplas visualizações, o que mantém o algoritmo leve. O OpenVINS implementa essa família com ênfase em reprodutibilidade e extensibilidade.

Este último otimiza conjuntamente múltiplos quadros-chave e pontos de referência. O VINS-Mono é um exemplo representativo que inclui rastreamento de características, pré-integração da IMU, uma janela deslizante e fechamento de loop. Distribuir o erro de reprojeção por vários quadros geralmente proporciona uma vantagem em termos de precisão, mas a marginalização, o solucionador, a latência e a recuperação de falhas de inicialização precisam ser cuidadosamente projetados.

Aspecto Família EKF/MSCKF Família de otimização por janela deslizante
Forma de estimação Atualização sequencial de estado e covariância Minimização iterativa de um grafo de fatores em múltiplos passos de tempo
Computação/latência Previsível, fácil de manter com baixa latência Depende do número de quadros-chave e iterações
Tratamento de características Fácil de marginalizar como Restrições de observação Fácil manter a profundidade inversa etc. como estado explícito
Pontos fortes Bom para sistemas embarcados, fácil de lidar com covariância Mais fácil manter a reprojeção amplamente consistente
Ressalvas Linearização e consistência, observabilidade Erro de marginalização, carga da CPU, relinearização

Nenhum é universalmente melhor. Escolha com base na latência necessária, frequência do sensor, orçamento de CPU, campo de visão, ambiente operacional e capacidade de manutenção. Comparar apenas o erro de trajetória relatado em um artigo, ignorando o modelo da câmera, a calibração, o movimento do conjunto de dados e se a relocalização foi usada, é uma boa maneira de fazer a escolha errada de implementação.

6. Inicialização: O que precisa ser determinado nos primeiros segundos

No momento em que o VIO é iniciado, a orientação do mundo, a velocidade inicial, o viés do giroscópio, o viés do acelerômetro, a gravidade, a escala monocular e a pose relativa câmera-IMU estão todos indeterminados. O fluxo típico é construir uma estrutura relativa de duas vistas/múltiplas vistas apenas a partir de imagens e, em seguida, alinhá-la. Movimento visual com integração da IMU para calcular velocidade, direção da gravidade, escala e viés.

Um intervalo estacionário fornece uma estimativa inicial do viés do giroscópio a partir da leitura média do giroscópio e uma indicação da direção da gravidade a partir da direção média da aceleração. No entanto, um acelerômetro não consegue distinguir a aceleração linear do próprio veículo da gravidade. Incluir "excitação" durante a inicialização — rotação e translação em múltiplos eixos, e não apenas mover o dispositivo lentamente para frente e para trás — ajuda a desvendar a correlação entre escala e viés. Por outro lado, começar com o dispositivo quase estacionário sobre uma mesa, movendo-o a velocidade constante em uma direção ou visualizando apenas um plano, tende a deixar o sistema subobservado.

Avaliar o sucesso da inicialização não se resume apenas à convergência do otimizador. Verifique se a escala estimada é positiva e razoável, se a magnitude da gravidade está próxima de aproximadamente 9.81\,\mathrm{m/s^2}, se o viés não está muito fora da especificação do sensor e se os pontos triangulados iniciais têm paralaxe suficiente e uma alta fração de valores positivos. profundidade. Em vez de manter um estado antigo ruim após uma falha, redefinir as trilhas de imagem e o buffer da IMU e reinicializar tende a ser menos prejudicial posteriormente.

7. Calibração e Sincronização de Tempo

O que governa o desempenho do VIO não é tanto o nome do algoritmo, mas sim a correção do modelo do sensor. No mínimo, três calibrações são necessárias.

  • Calibração intrínseca da câmera: distância focal, ponto principal, modelo de distorção. Se a imagem for redimensionada ou cortada, K também precisa ser alterado.

  • Calibração extrínseca: a transformação rígida T_{BC} entre a câmera e a IMU. Um erro de rotação de alguns graus ou um erro de alavanca de alguns centímetros tem um grande efeito em movimentos rápidos.

  • Calibração de tempo: o deslocamento entre o tempo de exposição da imagem e o tempo da IMU e, se necessário, o tempo de leitura da câmera. Relógios separados, buffers e registros de data e hora do driver podem deixar um deslocamento residual de vários milissegundos.

O Kalibr é uma ferramenta amplamente utilizada para estimar o deslocamento temporal e os parâmetros extrínsecos entre a câmera e a IMU. No entanto, considerar um valor obtido uma única vez como permanente é arriscado — uma mudança de foco, a remontagem da carcaça, a temperatura ou o gerenciamento de tempo do firmware no sensor podem alterar essas condições. Em vez de simplesmente copiar valores típicos de uma folha de dados, verificar a densidade de ruído da IMU e o desvio aleatório do bias com algo como a variância de Allan ajuda a evitar confiar demais no filtro.

Uma câmera com obturador rolante não captura um único quadro em um instante. Sob rotação rápida, as linhas superior e inferior são observadas em poses diferentes, e um resíduo de reprojeção que assume um obturador global estará sistematicamente incorreto. Uma exposição curta com um obturador global é a solução mais confiável; caso contrário, considere um modelo de observação que inclua a temporização das linhas, juntamente com a compensação da IMU. Ao adicionar câmeras esquerda/direita ou um sensor de profundidade, a sincronização acionada por hardware é preferível.

8. Escolhendo uma Implementação: VINS-Mono, OpenVINS e Sistemas Relacionados

VINS-Mono é Uma implementação de VIO baseada em otimização, amplamente referenciada, para uma câmera monocular com IMU. Inclui calibração extrínseca e de deslocamento temporal online, rastreamento de características, pré-integração, janela deslizante e fechamento de loop. Seu valor não reside apenas na geração de uma pose — o fato de toda a configuração ser legível para fins de pesquisa. O VINS-Fusion é uma opção viável quando se deseja combinar estéreo ou GPS.

O OpenVINS é uma implementação aberta centrada na família MSCKF/EKF, projetada com FEJ e consistência explícitas. É adequada para situações em que se deseja verificar como um VIO baseado em filtro lida com estado, covariância e calibração. O Basalt fornece VIO estéreo com um backend de otimização de alto desempenho e é testado em conjuntos de dados como o EuRoC. Em smartphones e em RA, usar o VIO integrado da plataforma geralmente é mais realista para uma aplicação, pois ele tem acesso ao tempo da câmera, ao tempo da IMU e à calibração específica do dispositivo.

Implementação/família Estilo de estimativa Exemplo de configuração do sensor Adequado para Pontos a verificar ao adotar
VINS-Mono Otimização, janela fixa Monocular + IMU Aprendendo a estrutura geral do VIO, prototipagem de pesquisa Geração de ROS, formato de calibração, condições de inicialização
VINS-Fusion Otimização, janela fixa Monocular/estéreo + IMU, GPS opcional Prototipagem multissensor Sistemas de coordenadas e ponderação de observações absolutas
OpenVINS EKF/MSCKF Monocular/estéreo + IMU Aprendizado embarcado, verificação de filtro Valores de ruído, FEJ, projeto de estado
Basalt Otimização Estéreo + IMU Backend VIO de alto desempenho Ambiente de construção, modelo de câmera
OpenCV personalizado + Ceres Arbitrário Arbitrário Trabalho específico para requisitos, aprendizado Verificação de reprojeção, pré-integração, marginalização

Ao comparar implementações existentes, não trate uma trajetória que aparece em uma demonstração como Sucesso. Verificar em hardware real: a resolução e a frequência real da imagem de entrada, as unidades e a convenção de eixos da IMU, a referência de tempo, a calibração extrínseca, o comportamento em caso de falha na inicialização, a relocalização após perda de rastreamento, o uso da CPU, a memória e a licença. Em particular, se o carimbo de data/hora de uma mensagem ROS for preenchido com "hora de recebimento", o estimador receberá uma ordem que parece correta, mas com intervalos de tempo fisicamente incorretos.

9. Um Fluxo de Processamento Mínimo

  1. Calibrar os parâmetros intrínsecos/extrínsecos da câmera e o tempo, e armazenar em buffer as imagens e os dados da IMU em uma base de tempo comum.

  2. A cada chegada da IMU, prever o estado usando a velocidade angular corrigida pelo viés e a força específica, e atualizar a covariância ou a pré-integração.

  3. A cada chegada da imagem, rastrear as características do quadro/quadro-chave anterior e remover outliers com verificações de avanço e retrocesso, RANSAC e máscaras.

  4. Antes da inicialização, avaliar a paralaxe e a excitação, e alinhar a estrutura visual com os dados inerciais. Atrasar o início se as condições são ruins.

  5. Após a inicialização, funda o resíduo de reprojeção visual com o resíduo da IMU, atualizando pose, posição, velocidade, viés e pontos.

  6. Marginalize os quadros-chave antigos e descarte as observações que não atenderem a um critério de qualidade. Transite para a relocalização ou uma reinicialização segura, se necessário.

Nesse fluxo, a distinção entre prever e corrigir é importante. Mesmo que as imagens sejam perdidas temporariamente, a previsão da IMU pode continuar produzindo resultados, mas sua incerteza aumenta. Em vez de um "pose disponível/não disponível" binário, o lado do aplicativo deve receber o estado de rastreamento, uma pontuação de covariância ou qualidade e o tempo desde a última atualização visual, e usá-los para alternar progressivamente a exibição de RA, controlar a velocidade e realizar paradas de segurança.

10. Métricas de Avaliação: O que medir para comparar de forma justa

O Erro Absoluto de Trajetória (ATE) é a diferença entre a sequência de posição estimada e a verdade fundamental após o alinhamento com uma transformação rígida ou Sim(3).

\mathrm{ATE}_{\mathrm{RMSE}}=\sqrt{\frac1N\sum_{k=1}^{N}\left\|\mathbf{p}^{\mathrm{gt}}_k-(R\hat{\mathbf{p}}_k+\mathbf{t})\right\|^2}

Como a VO monocular tem indeterminado Em relação à escala, sempre indique se o alinhamento Sim(3) também corresponde à escala. Se você realmente deseja visualizar o erro de escala em VIO ou estéreo, o alinhamento Sim(3) ocultará exatamente esse erro. A escolha entre usar um alinhamento SE(3), alinhar apenas a pose inicial ou comparar trajetórias desalinhadas deve ser feita de acordo com a finalidade.

O Erro de Pose Relativa (RPE) mede a deriva local em um intervalo fixo de tempo ou distância \Delta. A partir da diferença entre a transformação relativa estimada \hat T_{k,k+\Delta} e a verdade fundamental T^{\mathrm{gt}}_{k,k+\Delta},

E_k=(T^{\mathrm{gt}}_{k,k+\Delta})^{-1}\hat T_{k,k+\Delta}

são calculados o erro de translação (m/m ou %) e o erro de rotação (graus/m, graus/s). Mesmo que o ATE em longas distâncias seja pequeno, uma trajetória inadequada para RA ou controle de voo se apresentar grande oscilação em curto prazo. Por outro lado, uma trajetória suave, mas com deriva em longas distâncias, é desfavorável para Mapeamento.

Métrica O que ela indica principalmente Armadilha
RMSE/mediana do ATE Consistência posicional geral da trajetória O valor varia bastante dependendo do método de alinhamento
RPE (distância/intervalo de tempo) Desvio local, efeito no controle Não comparável a menos que o comprimento do intervalo seja especificado
Erro de rotação Qualidade da orientação visual/giroscópio Misturar guinada com rotação/inclinação oculta a causa
Erro de escala Escala física da VIO monocular/estéreo Não pode ser avaliado após o alinhamento Sim(3)
Taxa de rastreamento / taxa de falha Disponibilidade no mundo real Não oculte a reinicialização automática após falha
Latência / CPU / potência Praticidade de uma implementação embarcada Não pode ser avaliado apenas pelo processamento offline

EuRoC MAV, TUM VI, UZH-FPV e KITTI são conjuntos de dados públicos comumente usados para comparação. Mas câmeras portáteis em ambientes internos, configurações montadas em veículos e corridas... Os drones diferem em campo de visão, iluminação, velocidade, vibração e exposição. Em vez de importar um ranking de referência diretamente para o hardware real, avalie-o em uma rota, velocidade e condição de falha semelhantes aos seus próprios registros. Mesmo em campo, onde a verdade terrestre não pode ser capturada, você pode auditar em relação à lacuna inicial/final de um circuito fechado, distâncias conhecidas, reprojeção de parede ou uma seção parcial coberta por captura de movimento externa.

11. Condições de Falha Representativas e Contramedidas

Baixa textura, escuridão, desfoque

Uma parede branca, um corredor escuro, contraluz ou uma curva acentuada deixam um gradiente insuficiente no resíduo visual. Afrouxar o limite RANSAC quando há poucos pontos de referência apenas aumenta as discrepâncias. As contramedidas incluem o projeto de iluminação/sensor que reduz o tempo de exposição, o uso de grande angular ou estéreo, a re-detectão de recursos e a notificação ao usuário sobre o aumento da incerteza prevista.

Objetos dinâmicos e reflexos

O VIO assume que a maioria dos pontos da imagem pertence ao fundo estático. Multidões, um veículo à frente no trânsito, espelhos, vidro e superfícies de água quebram essa premissa. A perda robusta e o RANSAC sozinhos não conseguem resolver um caso em que o fundo acaba sendo uma minoria. O que é necessário é excluir a região semântica de objetos em movimento, separar múltiplos movimentos com profundidade ou fluxo e um projeto que priorize objetos fixos.

Saturação, vibração e deriva de temperatura da IMU

A vibração do motor em drones e pequenos robôs injeta um ruído forte e de banda limitada no acelerômetro, e choques podem saturar sua faixa de medição. Configurar o ruído do filtro muito baixo e confiar demais na IMU faz com que ela rejeite correções de imagem e apresente divergência. Use isolamento de vibração, limitação de banda apropriada, indicadores de saturação, um modelo de viés que inclua temperatura e parâmetros de ruído medidos. Além disso, tenha cuidado — suavizar demais os dados brutos da IMU resulta na perda de acelerações curtas.

Confusão entre deslocamento temporal e sistema de coordenadas

Um deslocamento temporal de 5 ms corresponde a uma grande diferença no campo de visão durante uma rotação rápida. Seja explícito sobre se os registros de data e hora da imagem se referem ao início da exposição, ao ponto médio da exposição ou ao tempo de recebimento, e se os registros de data e hora da IMU se referem ao tempo de amostragem ou ao tempo de chegada. Confundir convenções de mão direita/esquerda, o sinal da gravidade, T_{BC} versus T_{CB} ou a direção do eixo óptico da câmera pode fazer com que a otimização convirja numericamente, mas esteja fisicamente incorreta. Prepare testes unitários usando um teste estacionário, uma rotação conhecida de 90 graus e um pequeno movimento em linha reta.

Confundindo inicialização com relocalização

A inicialização consiste em começar uma estimativa a partir de um estado sem mapa ou escala; a relocalização consiste em retornar a um mapa conhecido ou a um quadro-chave anterior. O VO/VIO puro normalmente reinicia em um novo sistema de coordenadas local sempre que o rastreamento é perdido. Ao avaliar um produto, não confunda a capacidade de relocalização do SLAM com fechamento de loop com o desempenho bruto de deriva do VO. Em um produto, decida explicitamente se deve continuar usando o sistema de coordenadas antigo após a perda de rastreamento, parar com segurança ou invalidar a âncora.

12. Direções Recentes

Nos últimos anos, a estimativa de características e correspondências baseada em aprendizado, como SuperPoint, LightGlue e LoFTR, provou, em alguns casos, ser eficaz contra mudanças de aparência que são difíceis para descritores locais clássicos. Abordagens que combinam uma rede profunda com otimização geométrica iterativa, como o DROID-SLAM, também surgiram. Mas mesmo quando um modelo aprendido retorna muitas correspondências, a ambiguidade de escala, a degeneração planar, a sincronização de tempo e o viés da IMU continuam sendo problemas físicos. Um projeto que verifica a saída aprendida em relação à geometria robusta, erro de reprojeção e consistência inercial ainda é a abordagem fundamental.

Câmeras de eventos, com sua alta velocidade e alto alcance dinâmico, têm o potencial de cobrir condições em que uma câmera convencional tem dificuldades com desfoque ou escuridão. A estimativa multimodal que adiciona LiDAR, UWB, GNSS ou odometria de rodas à VIO também está se tornando viável como uma contramedida para deriva a longo prazo e ambientes hostis. Adicionar mais sensores não melhora automaticamente o desempenho — fatores extrínsecos, temporização, detecção de falhas e ajuste de pesos tornam-se novas superfícies de falha em potencial.

13. Resumo

A VO é uma técnica de odometria útil para recuperar o movimento relativo de curto prazo a partir de imagens, mas a VO monocular não possui escala e o erro local se acumula. A VIO combina a restrição de movimento de alta frequência da IMU com a correção de longo prazo da câmera, estimando simultaneamente escala, pose, velocidade e viés. Seu núcleo é um modelo de sensor correto, pré-integração da IMU, inicialização usando excitação de movimento suficiente e uma fusão robusta de resíduos visuais e inerciais.

Na prática, primeiro verifique a calibração, a temporização e os sistemas de coordenadas; em seguida, transforme paralaxe, distribuição de inliers, erro de reprojeção, viés, gravidade e estado de rastreamento em registros observáveis. VINS-Mono e OpenVINS são ótimos pontos de partida, mas precisam ser avaliados considerando suas condições de captura, latência, política de reinicialização e requisitos de segurança. O que deve ser levado em conta, em última análise, não é a qualidade da trajetória, mas sim um projeto que explique em quais condições a escala e a pose são observáveis e em quais condições a incerteza aumenta.

Verifique seu entendimento
Adicionar uma IMU sempre estabiliza a escala?

A observabilidade depende do movimento. Excitação insuficiente ou erro de calibração podem tornar a estimativa instável, apesar do sensor adicional.

Referências (Fontes Primárias e Documentação Oficial)

What to read next

Review the backgroundIntrodução à Estereoscopia Multivisual — Preenchendo uma Nuvem de Pontos Esparsa em uma Forma 3D DensaContinue the seriesGuia básico de fechamento de loop — Corrigindo a deriva de um sistema SLAM de uma só vez, em todo o loop.Explore another aspect of this fieldLab de brilho e luminância — exposição, gama e recorte