1 概述

镜头透镜由于制造精度以及组装工艺的偏差会引入畸变,导致原始图像的失真,即图像畸变。


在前一篇文章《机器视觉模型——投影矩阵》中描述了机器视觉系统成像模型,在这个模型里包含了相机内参(与像元尺寸、焦距、像素中心有关)以及相机外参(与相机在世界坐标系的位姿有关),这个模型是一个理想模型,或者说线性模型,没有考虑到镜头透镜产生的畸变所带来的影响。结合上文成像模型,可以把畸变理解成像点和物点之间的光线是弯曲的,如下图所示。

图中本来应该共线的三个点 OPcrt Q,现在由于透镜的某种偏差原因而不共线了,Pcrt被成像在了 P P P点,很明显,此时的关系不再是前文讨论的矩阵关系了,也就是说,在畸变存在的条件下,用前文的矩阵公式计算出来的结果是不正确的。

所以,在用这个视觉模型矩阵公式前,需要先把产生的畸变消除掉,与前文同样原理,如果透镜畸变能用一个数学模型或者数学公式来表达,我们就可以很方便地消除畸变,我们把这个模型称为“畸变模型”。

 

2 透镜的畸变

透镜的畸变主要包括:径向畸变、切向畸变、薄透镜畸变等等,但最显著的是径向畸变和切向畸变,所以我们这个模型里只考虑这两种畸变。同时,图像的畸变是两种畸变的组合,因此把整个畸变分解为径向畸变分量和切向畸变分量。

2.1 径向畸变

径向畸变:就是沿着透镜半径方向分布的畸变,如我们所熟知的鱼眼镜头产生的畸变、枕形畸变、桶形畸变等。

下图为径向畸变的分布,一般越远离中心越严重。

由于这种畸变是从中心沿径向方向向外分布的,我们用r=0处的泰勒级数展开的前几项来近似描述径向畸变,径向畸变前后的坐标关系为

式中:

xdistorted ,ydistorted ——原畸变图像坐标

x,y——正确坐标(无畸变图像坐标,或校正后坐标)

r——半径, r2 = x2 + y2
k1 , k2 , k3 ——引入的径向畸变参数

2.2 切向畸变

切向畸变:是由于透镜本身与相机传感器平面(像平面)或图像平面不平行而产生的,这种情况多是由于透镜被粘贴到镜头模组上的安装偏差导致,如下图所示。

随着相机制造工艺的大大提升,这种情况很少出现了,所以很多时候已经可以不考虑切向畸变。
下图为切向畸变的分布

切向畸变可以用两个额外的参数p1和p2来描述

式中:

xdistorted ,ydistorted ——原畸变图像坐标

x,y——正确坐标(无畸变图像坐标,或校正后坐标)

r——半径, r2 = x2 + y2

p1,p2——引入的切向畸变参数

 

3 机器视觉畸变模型

综上,可以得到机器视觉系统透镜畸变模型如下
畸变径向分量:

畸变切向分量:

 

其中包含了5个畸变参数: k1 , k2 , k3 , p1 , p2

对于一个给定的镜头成像系统,这5个畸变参数怎么获得?这就涉及到“相机标定”,即需要根据一系列已知的若干对原成像点与畸变成像点的坐标值,带入以上公式来解出,具体的限于篇幅这里不详细讨论。