欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

照相机校准 - 数学原理和公式推导

最编程 2024-04-07 20:01:32
...

相机标定——数学原理及公式推导篇

 

一、相机标定的目的

我们首先要明白两个问题:1、相机是如何成像的?2、相机标定的目的是什么?

1、相机是如何成像的呢?

相机成像系统中,共包含四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系。

                                         

 

 这四个坐标系之间的转化关系为:

                                          

 

 

其中, [公式] 为在世界坐标系下一点的物理坐标, [公式] 为该点对应的在像素坐标系下的像素坐标, [公式] 为尺度因子。

我们将矩阵:

                                        

 

 

        称为相机的内参矩阵,内参矩阵取决于相机的内部参数。其中, [公式] 为像距, [公式] 分别表示 [公式] 方向上的一个像素在相机感光板上的物理长度(即一个像素在感光板上是多少毫米),

 [公式] 分别表示相机感光板中心在像素坐标系下的坐标, [公式] 表示感光板的横边和纵边之间的角度( [公式] 表示无误差)。

我们将矩阵: [公式] 称为相机的外参矩阵,外参矩阵取决于相机坐标系和世界坐标系的相对位置, [公式] 表示旋转矩阵, [公式] 表示平移矢量。

即单点无畸变的相机成像模型如下:

                            

 

 

2、相机标定的目的是什么?

为什么要进行相机标定呢?比如,当我们拿到一张图片,进行识别之后,得到的两部分之间的距离为多少多少像素,但是这多少多少像素究竟对应实际世界中的多少米呢?

这就需要利用相机标定的结果来将像素坐标转换到物理坐标来计算距离(当然这里值得说明,仅仅利用单目相机标定的结果,是无法直接从像素坐标转化到物理坐标的,

因为透视投影丢失了一个维度的坐标,所以测距其实需要双目相机)。

相机标定的目的其实很简单,我们要想对一个成像系统建模,进而进行相应的计算,所必须的参数就是相机的内参矩阵:

                                                                          [公式]

 和相机的外参矩阵:

                                                                                     [公式] 

因此相机标定的第一个目的就是获得相机的内参矩阵和外参矩阵。

3、畸变与畸变矫正

        另外,相机拍摄的图片还存在一定的畸变,畸变包括桶形畸变和枕形畸变。对于畸变原理还不太明白的同学需要先查一查学习一下。

畸变模型包括径向畸变和切向畸变。

径向畸变公式(3阶)如下:

[公式]

切向畸变公式如下:

[公式]

其中,[公式]分别为理想的无畸变的归一化的图像坐标、畸变后的归一化图像坐标, 为图像像素点到图像中心点的距离,即 [公式] 。

相机标定的第二个目的就是获得相机的畸变参数,如上式中的 [公式]等,进而对拍摄的图片进行去畸变处理。

二、张正友标定法简介

张正友标定法利用如下图所示的棋盘格标定板,在得到一张标定板的图像之后,可以利用相应的图像检测算法得到每一个角点的像素坐标 [公式] 。

张正友标定法将世界坐标系固定于棋盘格上,则棋盘格上任一点的物理坐标 [公式],由于标定板的世界坐标系是人为事先定义好的,

标定板上每一个格子的大小是已知的,我们可以计算得到每一个角点在世界坐标系下的物理坐标[公式]

我们将利用这些信息:每一个角点的像素坐标 [公式] 、每一个角点在世界坐标系下的物理坐标[公式],来进行相机的标定,获得相机的内外参矩阵、畸变参数。

                                                                 

 

 

 

三、标定相机的内参矩阵和外参矩阵

 

张正友标定法标定相机的内外参数的思路如下:

 

1)、求解内参矩阵与外参矩阵的积;

 

2)、求解内参矩阵;

 

3)、求解外参矩阵。

 

1、求解内参矩阵与外参矩阵的积

 

将世界坐标系固定于棋盘格上,则棋盘格上任一点的物理坐标 [公式] ,因此,原单点无畸变的成像模型可以化为下式。其中, [公式] 为旋转矩阵 [公式] 的前两列。为了简便,将内参矩阵记为 [公式] 。

 

                                    [公式]

 

我们对于上式做一定的说明。对于不同的图片,内参矩阵[公式] 为定值;对于同一张图片,内参矩阵[公式],外参矩阵 [公式] 为定值;

对于同一张图片上的单点,内参矩阵[公式],外参矩阵 [公式],尺度因子 [公式] 为定值。

 

我们将 [公式] 记为矩阵 [公式] , [公式] 即为内参矩阵和外参矩阵的积,记矩阵 [公式] 的三列为 [公式] ,则有:

 

                   [公式]

 

利用上式,消去尺度因子 [公式],可得:

 

[公式]

 

此时,尺度因子 [公式]已经被消去,因此上式对于同一张图片上所有的角点均成立。[公式] 是像素坐标系下的标定板角点的坐标, [公式] 是世界坐标系下的标定板角点的坐标。

通过图像识别算法,我们可以得到标定板角点的像素坐标[公式],又由于标定板的世界坐标系是人为定义好的,标定板上每一个格子的大小是已知的,

我们可以计算得到世界坐标系下的[公式]由这里的 [公式] 是齐次矩阵,有8个独立未知元素。

每一个标定板角点可以提供两个约束方程( [公式] 的对应关系、 [公式] 的对应关系提供了两个约束方程),因此,当一张图片上的标定板角点数量等于4时,

即可求得该图片对应的矩阵 [公式] 。当一张图片上的标定板角点数量大于4时,利用最小二乘法回归最佳的矩阵 [公式]

2、求解内参矩阵

我们已知了矩阵 [公式] ,接下来需要求解相机的内参矩阵 [公式] 。

我们利用[公式]作为旋转矩阵 [公式] 的两列,存在单位正交的关系,即:

[公式]

则由 [公式] 和 [公式] 的关系,可知:

[公式]

代入可得:

[公式]

另外,我们发现,上述两个约束方程中均存在矩阵 [公式] 。因此,我们记[公式] ,则 [公式]为对称阵。

我们试图先求解出矩阵 [公式] ,通过矩阵 [公式] 再求解相机的内参矩阵 [公式] 。同时,为了简便,我们记相机内参矩阵 [公式] 为:

 

[公式]

则:

[公式]

则用矩阵 [公式]表示矩阵 [公式] 得:

                                               [公式]

注意:由于[公式]为对称阵,上式出现了两次 [公式] 。

这里,我们可以使用 [公式] 将前面通过 [公式] 单位正交得到的约束方程化为:

[公式]

因此,为了求解矩阵[公式] ,我们必须计算 [公式] 。则:

                                    [公式]

上述方程看起来有点复杂,但是其实不然,我们可以记:

                                                 [公式]

则上述方程化为:

                                                  [公式]

此时,通过 [公式] 单位正交得到的约束方程可化为:

[公式]

即:

[公式]

其中,矩阵 

                                                [公式]

由于矩阵 [公式] 已知,矩阵 [公式] 又全部由矩阵 [公式] 的元素构成,因此矩阵[公式]已知。此时,我们只要求解出向量 [公式] ,即可得到矩阵 [公式] 。

每张标定板图片可以提供一个 [公式] 的约束关系,该约束关系含有两个约束方程。但是,向量 [公式] 有6个未知元素。因此,单张图片提供的两个约束方程是不足以解出来向量 [公式]

因此,我们只要取3张标定板照片,得到3个[公式] 的约束关系,即6个方程,即可求解向量 [公式]。当标定板图片的个数大于3时(事实上一般需要15到20张标定板图片),

可采用最小二乘拟合最佳的向量 [公式] ,并得到矩阵 [公式]

                                                      [公式]

根据矩阵 [公式] 的元素和相机内参 [公式] 的对应关系(如上式),可得到:

[公式]

即可求得相机的内参矩阵:

                                            [公式] 

3、求解外参矩阵

这里再次强调一下,对于同一个相机,相机的内参矩阵取决于相机的内部参数,无论标定板和相机的位置关系是怎么样的,相机的内参矩阵不变。这也正是在第2部分“求解内参矩阵”中,

我们可以利用不同的图片(标定板和相机位置关系不同)获取的矩阵 [公式] ,共同求解相机内参矩阵 [公式] 的原因。但是,外参矩阵反映的是标定板和相机的位置关系。

对于不同的图片,标定板和相机的位置关系已经改变,此时每一张图片对应的外参矩阵都是不同的。

在关系: [公式] 中,我们已经求解得到了矩阵 [公式] (对于同一张图片相同,对于不同的图片不同)、矩阵 [公式] (对于不同的图片都相同)。

通过公式: [公式] ,即可求得每一张图片对应的外参矩阵 [公式] 。

注意,这里值得指出,完整的外参矩阵为 [公式] 。但是,由于张正友标定板将世界坐标系的原点选取在棋盘格上,则棋盘格上任一点的物理坐标 [公式],将旋转矩阵的 [公式] 的第三列 [公式] 消掉,

因此, [公式] 在坐标转化中并没有作用。但是 [公式] 要使得 [公式] 满足旋转矩阵的性质,即列与列之间单位正交,因此可以通过向量 [公式] 的叉乘,即 [公式] ,计算得到[公式]

此时,相机的内参矩阵和外参矩阵均已得到。

注:以上推导都是假设不存在畸变参数的情况下成立的。但是事实上,相机是存在畸变参数的,因此,张正友标定法还需要通过L-M算法对于参数进行迭代优化。

四、标定相机的畸变参数

张正友标定法仅仅考虑了畸变模型中影响较大的径向畸变。

径向畸变公式(2阶)如下:

[公式]

其中,[公式]分别为理想的无畸变的归一化的图像坐标、畸变后的归一化图像坐标, [公式] 为图像像素点到图像中心点的距离,即 [公式] 。

图像坐标和像素坐标的转化关系为:

[公式]

其中,[公式]为理想的无畸变的像素坐标。由于 [公式] 接近于 [公式] ,则上式近似为:

[公式]

同理可得畸变后的像素坐标[公式]的表达式为:

[公式]

代入径向畸变公式(2阶)则有:

[公式]

可化简得:

[公式]

即为:

[公式]

       每一个角点,只要知道畸变后的像素坐标 

上一篇: 双目摄像头基本矩阵基本和基本矩阵基本

下一篇: 相机视角与内部参考