代码实践
文章目录
10.3实践:g2o
10.4实践:Ceres
程序的详细注释可关注robinhjwy和zkk9527的优快云博客。
10.3实践:g2o
用g2o求解BA问题。
程序的编译运行方法:
mkdir build
cd build
cmake ..
make
./g2o_customBundle -input ../data/problem-16-22106-pre.txt
以上是成功编译运行程序,会在build文件夹中生成initial.ply和final.ply文件。接下来,安装meshlab并用它把这两个文件打开:
sudo add-apt-repository ppa:zarquon42/meshlab
sudo apt-get update
sudo apt-get install meshlab
安装成功后,右键initial.ply或final.ply文件选择用meshlab打开:
在这里插入图片描述
10.4实践:Ceres
用Ceres求解BA问题。
程序的编译运行方法:
mkdir build
cd build
cmake ..
make
./ceres_customBundle -input ../data/problem-16-22106-pre.txt
后端2
一 滑动窗口优化
由于计算量的缘故,将BA控制在一个窗口内,离开这个窗口的被抛弃。从而达到控制BA规模的目的。当中涉及到关键帧的新增、删除。
二、位姿图优化
不关心路标点的位置,只关心所有的相机位姿之间的联系
推导过程略
得出目标函数
我们依然可以用Gauss-Newton、Levenberg-Marquardt 等方法求解此问题,除了用李代数表示优化位姿以外,别的都是相似的。根据先前的经验,这自然可以用Ceres 或g2o
进行求解