【鱼眼镜头10】等距Equidistant模型的Kannala-Brandt模型【opencv的鱼眼标定使用的模型、kalibr中的 pinhole + equidistant 】

一、源头论文

论文:A Generic Camera Model and Calibration Method for Conventional, Wide-Angle, and Fish-Eye Lenses
在这里插入图片描述

二、工程化

Kannala Brandt 模型、 opencv中的fisheye::calibrate、kalibr中的 pinhole + equidistant 都是指该模型。

  • opencv
    • https://docs.opencv.org/4.x/db/d58/group__calib3d__fisheye.html
  • kalibr
    • https://github.com/ethz-asl/kalibr/wiki/supported-models

三、介绍

本论文介绍了一种可以建模传统相机和鱼眼相机的通用的内参模型(radially symmetric projection model)
在这里插入图片描述

在这里插入图片描述

  • 由于镜头的制造工艺等,并不是所有的鱼眼相机都是Radially Symmetric,因此作者又额外建模了径向畸变和切向畸变(14个参数),p9 + 14 = p23
  • 但在各大开源工具对该模型的复现中,一般只用p9模型,并不用p23,可能是因为如今的镜头工艺比较成熟了。

四、先说:鱼眼镜头的四种投影模型

在之前的博客【鱼眼镜头1】鱼眼镜头的四种投影模型(指导镜头的设计),中央镜头综述,说明了投影模型的重要性:为了从全向相机捕获的图像中提取有用的信息,我们需要知道光线如何从三维空间映射到二维图像平面。这就是投影模型的作用。一个准确的投影模型可以帮助我们更准确地估计场景中物体的位置、姿态和其他属性。

常见的鱼眼相机基本成像模型主要有四种,它们分别是等距投影(最广泛)、等立体角投影、体视投影、正交投影。镜头的设计基本是按照上述四种投影模型而制作的。

在这里插入图片描述
Equidistant模型(等距投影模型)是一种常用的鱼眼相机投影模型。在这个模型中,图像半径rd与入射角Θ(光线与相机光轴的夹角)之间的关系是线性的,即rd = f * Θ,其中f是相机的焦距。这个模型假设在图像平面上,沿各个方向上的距离都是等比例缩放的。

对于实际的鱼眼镜头来说,由于制造和设计的限制,它们不可能完全精确地按照某个特定的投影模型来设计。因此,为了更准确地描述鱼眼相机的成像过程,需要使用更复杂的模型或近似方法。为了提高提高标定的准确性:Kannala提出了一种鱼眼相机的一般多项式近似模型。这个模型使用多项式来近似描述图像半径rd与入射角Θ之间的关系。这种方法的优点是可以更灵活地适应不同鱼眼相机的成像特性,提高标定的准确性。

总结:使用Equidistant模型可以简化鱼眼相机的成像过程,但实际的鱼眼镜头可能无法完全遵循这个模型。为了更准确地描述鱼眼相机的成像过程,可以使用更复杂的模型或近似方法,如Kannala的多项式近似模型。

五、投影过程:3D到2D投影

Kannala 的多项式近似模型

  • Kannala 提出了一种更灵活的模型,用多项式来近似描述 r d rd rd Θ \Theta Θ 的关系。

  • 公式可以写成: r d = f ⋅ ( Θ + k 1 Θ 3 + k 2 Θ 5 + ⋯   ) rd = f \cdot (\Theta + k_1 \Theta^3 + k_2 \Theta^5 + \cdots) rd=f(Θ+k1Θ3+k2Θ5+),其中 k 1 , k 2 k_1, k_2 k1,k2 是多项式系数。

  • 奇函数和泰勒级数展开

    • Θ d \Theta_d Θd Θ \Theta Θ 的奇函数,也就是说 Θ d ( − Θ ) = − Θ d ( Θ ) \Theta_d(-\Theta) = -\Theta_d(\Theta) Θd(Θ)=Θd(Θ)。这是因为鱼眼相机的成像过程在光轴的两侧是对称的。
    • 在这里插入图片描述
    • 在这里插入图片描述
    • 通过泰勒级数展开, Θ d \Theta_d Θd 可以表示成 Θ \Theta Θ 的奇次多项式: Θ d = Θ + k 1 Θ 3 + k 2 Θ 5 + ⋯ \Theta_d = \Theta + k_1 \Theta^3 + k_2 \Theta^5 + \cdots Θd=Θ+k1Θ3+k2Θ5+奇次多项式在原点附近是对称的,这与鱼眼相机的成像特性相符。

Kannala-Brandt(KB)模型是一种通用的鱼眼相机标定模型,适用于大视场角(FOV)镜头的几何畸变建模。其核心思想是将3D空间点通过非线性的角度-半径映射投影到2D图像平面。以下是一个具体的3D到2D投影过程示例及步骤说明:


1. 3D点定义

假设有一个世界坐标系下的3D点 P w = [ X w , Y w , Z w ] T \mathbf{P}_w = [X_w, Y_w, Z_w]^T Pw=[Xw,Yw,Zw]T,需通过以下步骤投影到图像平面:

  1. 转换到相机坐标系
    通过相机外参(旋转矩阵 R \mathbf{R} R 和平移向量 t \mathbf{t} t)将 P w \mathbf{P}_w P

SLAM(Simultaneous Localization and Mapping)是一种同时进行定位和地图构建的技术,常用于机器人、自动驾驶等领域。相机标定是SLAM中的一个重要步骤,用于确定相机的内部参数和外部参数,以便准确地进行图像处理和三维重建。 常用的相机标定模型有以下几种: 1. Pinhole模型:也称为针孔相机模型,是最简单的相机模型。它假设光线通过针孔投射到成像平面上,忽略了透镜的复杂光学效应。该模型使用焦距、主点和畸变系数来描述相机的内部参数。 2. 等距模型Equidistant Model):该模型考虑了径向畸变,适用于具有较大畸变的相机。它使用四个径向畸变系数来描述相机的畸变情况。 3. 等角模型(Equisolid Model):该模型也考虑了径向畸变,适用于具有较小畸变的相机。它使用四个径向畸变系数来描述相机的畸变情况。 4. Brown模型:该模型是一种更通用的相机模型,可以同时考虑径向和切向畸变。它使用五个径向畸变系数和两个切向畸变系数来描述相机的畸变情况。 5. Fisheye模型:该模型适用于鱼眼镜头等具有大视场角的相机。它使用多项式函数来描述相机的畸变情况。 以上是常用的几种相机标定模型,不同模型适用于不同类型的相机和畸变情况。在SLAM中,选择适合相机的标定模型非常重要,以确保定位和地图构建的准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hali_Botebie

文中错误请不吝指正!!!!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值