;)
从 g2o 文档/源码角度来看:initializeOptimization(level)的功能是准备优化:构建海森矩阵结构,设置活跃边/顶点,可能包括某些变量的固定等。参数level通常是 0,表示使用所有级别的边。边的默认level都是0,并且只有edge_level=level=0时,这个边才会参与优化,否则不参与优化。但在 ORB-SLAM3 中,外点会被设置setLevel(1),当调用initializeOptimization(0)时,level=1 的边将被排除在外,不会构建到海森矩阵中。这就是剔除离群点的机制。所以我们要解释:initializeOptimization的基本作用:重置优化器内部状态,根据当前活跃的顶点和边构建新的增量方程结构。参数 level:边的级别,用于控制哪些边参与优化。在 PoseOptimization 中的具体用法:每次外点剔除后,重新初始化优化,使外点边不参与下一轮优化。为什么用 0:因为外点边 level 设为 1,而我们要的是 level = 0 的边参与,即 level 为 0 的边(内点)。在nb