1. svo 的深度滤波和 msckf 的后端的点的优化的差异是什么?delayinit和depthfilter之间的差异是什么?
1.1 SVO的深度滤波与MSCKF后端优化的差异是什么?
SVO的深度滤波
• 核心思想:基于概率模型递推更新特征的深度估计。每个特征点独立维护一个深度滤波器(如高斯分布或Beta分布),每次新帧到来时,通过极线搜索找到匹配点并计算候选深度,将其作为观测值对先验分布进行贝叶斯更新。
• 实现方式:
• 使用直接法跟踪关键点,不依赖描述子匹配。
• 深度估计是递增更新的,融合多帧观测逐步收敛。
• 计算轻量,无需全局优化,实时性高。
• 优势与局限:
• 轻量高效,适合高帧率场景,但依赖运动视差来收敛深度。
• 假设各特征点的深度估计独立,可能忽略多视图几何中的联合约束。
MSCKF的后端点优化
• 核心思想:在多状态约束卡尔曼滤波框架中,维护滑动窗口内的相机状态(位姿、速度、IMU偏差等),利用多帧观测构建几何约束,直接优化系统状态。
• 实现方式:
• 通过重投影误差定义视觉约束,与IMU预积分结果共同构成目标函数。
• 使用非线性优化(如LM算法)批量调整滑窗内的所有状态和特征点位置,类似局域Bundle Adjustment。