Multiple View Geometry(多视图几何)学习笔记(21)—计算摄像机矩阵P

              计算摄像机矩阵P

1.基本方程

( 0 T w i X i T y i X i T w i X i T 0 T x i X i T ) ( P 1 P 2 P 3 ) = 0

最小配置解

  矩阵 P 有12 个元素和(忽略缩放因子)11个自由度,所以解 P 需要11个方程。给定这个最小数目的对应时,解是精确的,即空间的点准确地投影到它们被测量的图像上。

超定解

  如果由于点坐标的噪声导致数据不精确并且给定 n 6 组点对应, 那么 A p = 0 将不存在精确解。 P 的解可以通过最小化一个代数或几何误差来获得。求 A p 的最小值,可能的约束是:

  1. p = 1
  2. p ^ 3 = 1 ,其中 p ^ 3 是由 P 最后一行的前三个元素组成的矢量 ( p 31 , p 32 , p 33 ) T

退化配置

  1. 摄像机中心和点都在一条三次绕线上。
  2. 这些点都在一张平面和包含摄像机中心的一条直线的并集上。

数据归一化

  当点到摄像机的深度变化相对比较小时,采用同样类型的归一化。 因此, 把点的形心平移到原点,并对它们的坐标进行缩放使它们到原点的RMS(均方根)距离等于 3 。适用于点紧致分布的情形。

直线对应

  3D 中的直线可以用它通过的两点 X 0 X 1 来表示。由图像直线 l 反向投影得到的平面为 P T l 。那么点 X j 在该平面上的条件是:

l T P X j = 0 , 0 , 1

2.几何误差

  图像中的几何误差是:

i d ( x i , x ^ i ) 2

  其中 x i 是被测量的点, x ^ i 是点 P X i ,即 X i P 作用下的精确的图像点.如果测盘误差满足高斯分布,那么
min P i d ( x i , P X i ) 2

  解是 P 的最大似然估计。

世界点有误差

   3 D 几何误差定义为:

i d ( X i , X ^ i ) 2

  如果世界和图像点的误差都考虑:

i = 1 d M a h ( x i , P X ^ i ) 2 + d M a h ( X i , X ^ i ) 2

   d M a h 表示误差协方差矩阵的Mahalanobis 距离。

代数误差的几何解释

  假定所有的点 X i D L T 算法中已经归一化, D L T 算法要最小化的量是:

i ( w ^ i d ( x i , x ^ i ) ) 2

  其中 w ^ i ( x ^ i , y ^ i , 1 ) T = P X i w ^ i 可以解将成点 X i 沿主轴方向到摄像机的深度,要最小化的代数误差等于 f i d ( X i , X i ) 2

变换不变性
  在约束 p ^ 3 = 1 ,下最小化 A p 可以解释成最小化 3 D 几何距离。这样既不受 3 D 空间也不受图像空间的相似变换的影响。

仿射摄像机的估计

  上面有关射影摄像机推导的方法可以直接用于仿射摄像机。仿射摄像机定义为射影矩阵的最后一行是 ( 0 0 0 1 ) 的摄像机。.仿射摄像机的 D L T 估计是在 P 的最后一行满足上述条件下最小化 A p

3.受限摄像机估计

  在关于摄像机参数的限制条件下寻求一个最适配的摄像机矩阵 P 。 通常的限制是:

  • 扭曲 s 为零
  • 像素是正方形: α x = α y
  • 主点 ( x 0 , y 0 ) 2 已知
  • 整个摄像机标定矩阵 K 已知

最小化几何误差

  假定我们强调约束 s = 0 α x = α y ,用余下的9 个参数来参数化摄像机矩阵。几何误差可以用迭代最小化方法相对于这组参数来最小化。

最小化代数误差

  考虑把参数集 q 映射到摄像机矩阵 P 的参数化映射 g ,最小化所有点匹配的代数误差等价于最小化 A g ( q )

简化的测量矩阵

  一般, 2 n × 12 的矩阵 A 可能有很多行。但可用一个 1 2 × 12 的矩阵 A ^ 代替A,使得对任何矢量 p A p = p T A T A p = A ^ p

初始化

  求摄像机初始参数的一种途径是:

  1. 用诸如 D L T 的线性算法求出一个初始的摄像机矩阵
  2. 把固定参数强制到所希望的取值范围
  3. 把摄像机矩阵分解所获得的初始值赋给参数变量

外部校准

  为了计算外部校准,需对世界坐标位置准确已知的一个配置进行影像。之后求摄像机的姿态。在机器人系统的手眼标定中求摄像机位置就是这样的情形;还有在采用配准技术的基于模型的识别中,需要知到物体相对摄像机的位置。

协方差估计

  假定所有的误差仅发生在图像测量中, ML 残差期望值等于:

ε r e s = δ ( 1 d / 2 n ) 1 / 2

  其中 d 主要拟合的摄像机参数数目(对完整的针孔摄像机模型是11) 。给定一个残差, 该公式也可以用来估计点测量的准确性。

4.径向失真

  用 x ~ , y ~ T 标记在理想(非失真)针孔投影下点以焦距为测量单位的坐标。对一点 X 有:

x ~ , y ~ , 1 T = [ I | 0 ] X c a m

  其中 X c a m 是摄像机坐标下的 3 D 点,实际的投影点通过一个径向位移与理想点关联。因此,径向(透镜)失真的模型是:

( x d y d ) = L ( r ~ ) ( x ~ y ~ )

  其中:

  • x ~ , y ~ T 是理想图像位置(遵循线性投影)
  • ( x d , y d ) 经径向失真后的实际图像的位置
  • r ~ 为到径向失真中心的径向距离 x ~ 2 + y ~ 2
  • L ( r ~ ) 是一个失真因子,它仅仅是半径 r ~ 的函数

失真矫正

  在像素坐标中,失真矫正记为:

x ^ = x c + L ( r ) ( x x c ) , y ^ = y c + L ( r ) ( y y c )

  • ( x , y ) T 是测量的坐标
  • ( x ^ , y ^ ) T 是矫正后的坐标
  • ( x c , y c ) T 是径向失真的中心且 r 2 = ( x x c ) 2 + ( y y c ) 2 注意如果长宽比不是1 ,那么在计算 r 时必须对它进行矫正。

失真函数和中心的选择

  函数 L ( r ) 仅当 r 为正值时有定义并且 L ( 0 ) = 1 。一个任意函数
L ( r ) 的逼近可以由泰勒展开式 L ( r ) = 1 + κ 1 r + κ 2 r 2 + κ 3 r 3 + . . . { κ 1 , κ 2 , κ 3 , . . , x c , y c } 是径向矫正的系数。主点经常被用作径向失真的中心,虽然它们未必完全重合。

计算失真函数

  函数 L ( r ) 可以通过最小化一个基于映射的线性偏差的代价函数来计算。失真函数可以作为影像过程的一部分, 把参数 κ i P 一起在几何误差的最小化迭代中计算。

猜你喜欢

转载自blog.csdn.net/hu_weichen/article/details/80742577