多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

ORB-SLAM3 Optimizer::PoseOptimization

ORB-SLAM3 Optimizer::PoseOptimization 以下对 ORB-SLAM3 中Optimizer::PoseOptimization函数的逐行注释,并补充数学模型与公式说明。函数功能该函数以当前帧的初始位姿为起点,通过仅优化相机位姿(地图点固定)来最小化所有匹配点的重投影误差,并迭代剔除离群点,最终得到更精确的帧位姿。int Optimizer::PoseOptimization(Frame *pFrame) { // 1. 构建 g2o 优化器,选择求解器 g2o::SparseOptimizer optimizer; // 块求解器:位姿维度 6,特征点维度 3 (但这里只优化位姿,所以其实3的维度未使用) g2o::BlockSolver_6_3::LinearSolverType * linearSolver; // 使用稠密线性求解器(因为只优化一个位姿顶点,规模很小) linearSolver = new g2o::LinearSolverDenseg2o::BlockSolver_6_3::PoseMatrixType(); // 创建块求解器 g2o::BlockSolver_6_3 * solver_ptr = new g2o::BlockSolver_6_3(linearSolver); // 使用列文伯格‑马夸尔特算法 (Levenberg‑Marquardt) g2o::Opt
返回列表