机器视觉模型——畸变模型

1 概述

镜头透镜由于制造精度以及组装工艺的偏差会引入畸变,导致成像的失真,即图像畸变。
在前一篇文章《机器视觉模型——投影矩阵》中描述了机器视觉系统成像模型,在这个模型里包含了相机内参(与像元尺寸、焦距、像素中心有关)以及相机外参(与相机在世界坐标系的位姿有关),这个模型是一个理想模型,或者说线性模型,没有考虑到镜头透镜产生的畸变所带来的影响。
结合上文成像模型,可以把畸变理解成像点和物点之间的光线是弯曲的,如下图所示。
在这里插入图片描述
图中本来应该共线的三个点 O O O P c r t P_{crt} Pcrt、Q,现在由于透镜的某种偏差原因而不共线了, P c r t P_{crt} Pcrt被成像在了 P P P点,很明显,此时的关系不再是前文讨论的矩阵关系了,也就是说,在畸变存在的条件下,用前文的矩阵公式计算出来的结果是不正确的。
所以,在用这个视觉模型矩阵公式前,需要先把产生的畸变消除掉,与前文同样原理,如果透镜畸变能用一个数学模型或者数学公式来表达,我们就可以很方便地消除畸变,我们把这个模型称为“畸变模型”。

2 透镜的畸变

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

2.1 径向畸变

径向畸变:就是沿着透镜半径方向分布的畸变,如我们所熟知的鱼眼镜头产生的畸变、枕形畸变、桶形畸变等。
在这里插入图片描述
在这里插入图片描述
下图为径向畸变的分布,一般越远离中心越严重。
在这里插入图片描述
由于这种畸变是从中心沿径向方向向外分布的,我们用r=0处的泰勒级数展开的前几项来近似描述径向畸变,径向畸变前后的坐标关系为
x d i s t o r t e d = x ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) y d i s t o r t e d = y ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) x_{distorted}=x(1+k_1r^2+k_2r^4+k_3r^6)\\ y_{distorted}=y(1+k_1r^2+k_2r^4+k_3r^6) xdistorted=x(1+k1r2+k2r4+k3r6)ydistorted=y(1+k1r2+k2r4+k3r6)
式中:
x d i s t o r t e d , y d i s t o r t e d x_{distorted},y_{distorted} xdistorted,ydistorted——原畸变图像坐标
x , y x,y x,y——正确坐标(无畸变图像坐标,或校正后坐标)
r r r——半径, r 2 = x 2 + y 2 r^2 =x^2 +y^2 r2=x2+y2
k 1 , k 2 , k 3 k_1,k_2,k_3 k1,k2,k3——引入的径向畸变参数

2.2 切向畸变

切向畸变:是由于透镜本身与相机传感器平面(像平面)或图像平面不平行而产生的,这种情况多是由于透镜被粘贴到镜头模组上的安装偏差导致,如下图所示。
在这里插入图片描述
在这里插入图片描述
随着相机制造工艺的大大提升,这种情况很少出现了,所以很多时候已经可以不考虑切向畸变。
下图为切向畸变的分布
在这里插入图片描述
切向畸变可以用两个额外的参数p1和p2来描述
x d i s t o r t e d = x + 2 p 1 x y + p 2 ( r 2 + 2 x 2 ) y d i s t o r t e d = y + 2 p 2 x y + p 1 ( r 2 + 2 y 2 ) x_{distorted}=x+2p_1xy+p_2(r^2+2x^2)\\ y_{distorted}=y+2p_2xy+p_1(r^2+2y^2) xdistorted=x+2p1xy+p2(r2+2x2)ydistorted=y+2p2xy+p1(r2+2y2)
式中:
x d i s t o r t e d , y d i s t o r t e d x_{distorted},y_{distorted} xdistorted,ydistorted——原畸变图像坐标
x , y x,y x,y——正确坐标(无畸变图像坐标,或校正后坐标)
r r r——半径, r 2 = x 2 + y 2 r^2 =x^2 +y^2 r2=x2+y2
p 1 , p 2 p_1,p_2 p1,p2——引入的切向畸变参数

3 机器视觉畸变模型

综上,可以得到机器视觉系统透镜畸变模型如下
畸变径向分量:
x d i s t o r t e d = x ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) y d i s t o r t e d = y ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) x_{distorted}=x(1+k_1r^2+k_2r^4+k_3r^6)\\ y_{distorted}=y(1+k_1r^2+k_2r^4+k_3r^6)\\ xdistorted=x(1+k1r2+k2r4+k3r6)ydistorted=y(1+k1r2+k2r4+k3r6)
畸变切向分量:
x d i s t o r t e d = x + 2 p 1 x y + p 2 ( r 2 + 2 x 2 ) y d i s t o r t e d = y + 2 p 2 x y + p 1 ( r 2 + 2 y 2 ) x_{distorted}=x+2p_1xy+p_2(r^2+2x^2)\\ y_{distorted}=y+2p_2xy+p_1(r^2+2y^2) xdistorted=x+2p1xy+p2(r2+2x2)ydistorted=y+2p2xy+p1(r2+2y2)
其中包含了5个畸变参数: k 1 , k 2 , k 3 , p 1 , p 2 k_1,k_2,k_3,p_1,p_2 k1,k2,k3,p1,p2
对于一个给定的镜头成像系统,这5个畸变参数怎么获得?这就涉及到“相机标定”,即需要根据一系列已知的若干对原成像点与畸变成像点的坐标值,带入以上公式来解出,具体见《机器视觉-相机标定》

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值