Epipolar a personal journal

最小二乘问题(八)

我们来考虑解空间限定在某个流形表面的最小二乘问题,它具有如下形式:

我们依旧采用迭代的方法对它进行优化。在每一步迭代,我们考虑一个微小的增量 $dx$ 。由于 $x$ 被约束在了 $h(x)=0$ 上,这个微元增量必须在 $h$ 在点 $x$ 处的切空间 $T_xh$ 内,也就是 $dx \in T_xh$ 。

从函数的微分角度来看的话,假设 $x$ 是关于 $t$ 的函数 $x(t)$ 。我们对 $h(x)=0$ 关于 $t$ 求导,就可以得到:

这里的 $\dot{x}$ 是 $x$ 随时间的变化量,也就对应了前面我们要考虑的微元增量 $dx$ 。因此我们可以看出切空间 $T_xh = \mathrm{ker}\left(\frac{df}{dx}\right)$,它的维度是 $s=\mathrm{dim}\ T_xh \leq n$ ($n$ 是 $x$ 所处的欧式空间的维度)。若设 $B = {b_1, b_2, \dots, b_s}$ 为 $T_xM$ 的一组基,那么对于任意的 $dx \in T_xh$ ,我们可以用一个 $s$ 维的坐标 $p$ 来表示 $dx$ ,即

或者用矩阵形式写为 $dx = Bp$ 。

这样一来,在 $x$ 点附近的优化就可以改写为如下的形式:

而后者是关于 $p$ 的无约束最小二乘子问题,可以套用我们前面的经验来求解。

这里的这种采用切空间内坐标表示局部小量的方法叫做局部参数化。从这个名字就可以知道,它只能在变量当前的一个小邻域内使用。真实情况中,$dx$ 永远不可能是个微分小量,因此在每一轮优化子问题后,需要加入必要的处理,让我们的变量在加入增量后仍然位于流形内。

从前面的介绍可以看出,得到 $p$ 的关键是需要对切空间选取一组基,而我们又知道这个切空间与 $h$ 在 $x$ 点处的导数有关,那么这组基也就与 $h$ 的导数有一定的联系。此外,同一个流形,根据它的参数化不同,可以有不同的方程表达。我们可以有完全不同的局部参数化方法,所以下面我们会介绍一种常用的参数化套路。