Ceres 求解器由两个不同的部分组成。一个是问题构建接口,它提供了一套丰富的工具来逐项构建优化问题;另一个是求解接口,它控制着优化算法的具体参数。本章主要介绍使用 Ceres 对优化问题进行建模的任务。Solving Non-linear Least Squares 讨论了使用 Ceres 解决优化问题的各种方法,也就是下一章讨论求解。
Ceres 可以鲁棒的解决以下形式的带有边界约束的非线性最小二乘问题
xmin21i∑τi(∥fi(xi1,...,xik)∥2)s.t. lj≤xj≤μj 表达式 τi(∥fi(xi1,…,xik)∥2) 在 Ceres 中是一个 ResidualBlock
,其中 fi(⋅) 在 Ceres 中是一个 CostFunction
,它的计算又需要 xij 这些参数的参与, [xi1,…,xik] 统称一个参数块。在大多数优化问题中,小组标量一起出现。例如,平移向量的三个分量和定义相机姿态的四元数的四个分量。我们将这样一组小标量称为 ParameterBlock
。当然 ParameterBlock
也可以只有一个分量。lj and uj 是参数块 xj 的上下界。 τi 是一个 Lossfunction
。它是一个标量函数,用于减小非线性优化问题中的异常值对优化的影响。
在特殊情况下,当 τi(x)=x,是一个恒等映射,并且 lj=−∞ and uj=∞ 我们就能得到常见的非线性优化问题形式如下:
21i∑∥fi(xi1,…,xik)∥2 Last updated