前言
Ceres Solver 是一个开源 C++库,用于建模和解决大型、复杂的优化问题。它可用于解决具有边界约束和一般无约束优化问题的非线性最小二乘问题。它是一个成熟、功能丰富且性能卓越的库,自2010 年以来一直在 Google 的生产环境中使用。
一、基本概念
求解器选择根据大小、稀疏结构、时间和内存预算以及求解质量要求,不同的优化算法将满足不同的需求。为此,Ceres Solver自带了多种优化算法:Trust Region Solvers - Ceres 支持 Levenberg-Marquardt、Powell 的Dogleg 和 Subspace dogleg 方法。所有这些方法的关键计算成本是线性系统的解。为此,Ceres 提供了各种线性求解器 -用于密集问题的密集 QR 和密集 Cholesky 分解(使用 Eigen、LAPACK或CUDA)、用于大型稀疏问题的稀疏Cholesky 分解、自定义 Schur用于束调整问题的基于补码的密集、稀疏和迭代线性求解器。线搜索求解器-当问题规模如此之大以至于存储和分解雅可比行列不可行或需要廉价的低精度解决方案时,Ceres提供了许多基于线搜索的算法。这包括非线性共轭梯度、BFGS 和 LBFGS 的许多变体。速度- Ceres Solver已经过广泛优化,包括 C++ 模板、手写线性代数例程和基于 OpenMP 或现代 C++ 线程的 Jacobian评估和线性求解器的多线程。GPU 加速如果您的系统支持CUDA,那么 Ceres Solver 可以使用您系统上的 Nvidia GPU来加速求解器。
二、操作步骤
1.安装依赖
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev
2.下载
wget ceres-solver.org/ceres-solver-1.14.0.tar.gz
3.编译配置
ar -zxvf ceres-solver-1.14.0.tar.gz
cd ceres-solver-1.14.0
mkdir build
cd build
cmake ..
make -j8
sudo make install
总结
本文介绍了在Ubuntu安装Ceres的流程。