三维重建中的很多算法都需要对点集进行归一化,例如基础矩阵的计算、八点法、DLT等。最近看论文的时候看到了Hartley normalization,看了下论文,现在总结下。

Hartley nomalization 是由Hartley提出来一种归一化方法,其主要思想有两个:

  • 对点集中的点进行平移,使得这些点的质心(centroids) 位于原点;
  • 对点进行缩放,使得这些点距离原点的平均距离为\(\sqrt 2\)

要达到这个目的,需要定义一个归一化变换矩阵: \[ T = \left[ \begin{matrix} s^{-1} & 0 & -s^{-1}\overline{x} \\ 0 & s^{-1} & -s^{-1}\overline{y} \\ 0 & 0 & 1 \end{matrix} \right] \] 其中, \(\bar x,\bar y\) 分别表示点的横坐标和纵坐标的质心: \[ \begin{split} & \bar x = \frac{1}{n}\sum_{i=1}^n x_i \\ & \bar y = \frac{1}{n}\sum_{i=1}^n y_i \end{split} \] s 代表缩放因子: \[ s = (\frac{1}{2n}\sum_{i=1}^n(x_i-\bar x)^2+(y_i - \bar y)^2)^\frac{1}{2} \] 那么对于一个用齐次坐标表示的二维图像点 \(p(x,y,1)\) ,它归一化后的的点$p(x,y,1) $: \[ \begin{split} &\tilde p = Tp \\ &\Downarrow \\ &\tilde x = \frac{x - \bar x}{s}\\ &\tilde y = \frac{y-\bar y}{s} \end{split} \]