鱼眼相机成像模型

发布时间 2023-06-02 10:49:14作者: JJ_S

1.针孔模型

普通光学镜头采用的是最简单的针孔投影模型,根据相似成像原理,针孔模型透视投影函数为

f 表示为成像平面到投影中心的距离,θ 表示入射光线和光轴之间的夹角,ru 为投影点到图像中心的距离,如下图

2.鱼眼相机的成像过程

普通相机成像遵循的是针孔相机模型,在成像过程中实际场景中的直线仍被投影为图像平面上的直线。但是鱼眼相机如果按照针孔相机模型成像的话,投影图像会变得非常大,当相机视场角达到180°时,
图像甚至会变为无穷大。所以,鱼眼相机的投影模型为了将尽可能大的场景投影到有限的图像平面内,允许了相机畸变的存在。
并且由于鱼眼相机的径向畸变非常严重,所以鱼眼相机主要的是考虑径向畸变,而忽略其余类型的畸变。

3.鱼眼相机的投影函数

为了将尽可能大的场景投影到有限的图像平面内,鱼眼相机会按照一定的投影函数来设计。根据投影函数的不同,鱼眼相机的设计模型大致能被分为四种:

  • 等距投影模型
  • 等立体角投影模型
  • 正交投影模型
  • 立体投影模型
    如下表

    直线投影(Rectilinear)或者说透视投影(Perspective)相当于小孔成像,我们可以认为这种投影并没有产生畸变。然而,从其投影函数可以看出,当入射角趋近于90度时,其在图像平面上的落点将趋近于无穷远,
    所以不能作为超广角镜头的投影模型。

3.1 等距投影模型


投影函数为

3.2 等立体角投影模型


投影函数为

3.3 正交投影模型


投影函数为

3.4 立体投影模型


投影函数为

4.OpenCV中的鱼眼相机模型

OpenCV中使用的模型是由Kannala提出的一种鱼眼相机的一般近似模型。在等距投影模型的基础上提出来的。下面来详细分析其鱼眼相机模型的提出过程。
我们可以将鱼眼相机模型的形式统一以等距投影模型的形式来表示,即

对实际的鱼眼镜头来说,它们不可能精确地按照投影模型来设计,所以为了方便鱼眼相机的标定,Kannala提出了一种鱼眼相机的一般多项式近似模型。
通过前面的四个模型,可以发现 θd是θ的奇函数,而且将这些式子按泰勒级数展开,发现 θd可以用θ的奇次多项式表示,即

现在常用的是opencv的fisheye模型,参考opencv官方文档