OpenCV相机校准的数学背景

时间:2019-06-24 08:32:25

标签: opencv camera-calibration calibration

我刚刚开始使用OpenCV并校准了两个摄像机。 Iam使用棋盘用python校准camare。我使用函数drawChessboardCornerscalibrateCamera。一切正常。

这些功能的documentation描述了如何使用这些功能。但是我一直想知道这些背后的魔力是什么。我想知道OpenCV中相机校准的数学背景。

棋chess的OpenCV detecting the corners怎么样?

这是如何用来校准相机的?

2 个答案:

答案 0 :(得分:1)

请参阅Gary Bradski和Adrian Kaehler的“学习OpenCV” 。 关于相机校准的一章内容很大,并具有良好的针孔相机模型数学背景,各种失真以及减少失真的方法(通过校准)。

使用图像的2nd derivative来检测图像的角。

答案 1 :(得分:1)

为了了解实际的相机校准,让我们从形成图像的方式开始。

从根本上说,相机是一种将点从3D空间转换为2D空间(图像空间)的设备。在图像形成分析中,我们经常使用所谓的pinhole camera模型,其中图像是这样形成的:

enter image description here

更多图解,我们可以看到这样的图像形成:

enter image description here

,其中Y1是像平面,x3是从相机到物体的距离(我们将其称为深度z),x1是3D点P在X1轴上相对于光轴的位移。相机X3。 O是具有焦距f的相机,y1是图像中心与对应于点P的像素Q之间的距离。

最简单的投影模型被称为 orphography 。该模型只是删除3D点的深度坐标(并可能对其进行缩放)。因此,如果我们从3D世界中的P点开始

enter image description here

,我们可以将投影写为:

enter image description here

,其中s是实际比例因子,矩阵pi是投影矩阵。

此模型对于远摄镜头(长焦距)和浅物相对于它们到相机的距离近似。仅适用于远心镜头。 透视投影是我们使用的相机的更精确模型。为了获得直觉,如果3D对象距离相机更近,则图像平面中的对象看起来更大。从数学上讲,由于三角形相似,y1与x1成正比。比例因子为f / x3或f / z。暂时让f为1,这将导致以下投影函数:

enter image description here

如您所见,投影不再可以表示为矩阵乘法,因为它不再是线性变换。这不是理想的-矩阵乘法具有非常好的特性。因此,我们介绍了一种称为“均匀坐标”的技巧。对于每个点,我们添加另一个坐标(因此现在使用3个坐标表示2D点,而使用4个坐标表示3D点),并将第四个坐标归一化为1(考虑最后一个坐标的隐式除法)。 / p>

现在,我们的点P变为:

enter image description here

我们可以将透视投影矩阵写为:

enter image description here

,由于我们使用齐次坐标,最后一次除法是“隐式”发生的;代字号表示齐次坐标中的向量。

就在那里!那就是透视投影矩阵。请注意,这是不可逆的转换。

但是,相机不仅将3D点投影在2D图像平面上。投影之后,它们将转换为离散图像空间。这由称为 intrisinc相机矩阵 K的矩阵表示:

enter image description here

,其中fx和fy是x和y轴上的独立焦距(通常合理地假设是相等的),s是一个歪斜,说明图像轴不垂直于光轴(现代相机接近于0),而cx,cy代表图像的原点(通常是图像的中心)。

相机通常会给图像添加一些失真,并且它们具有不同的数学模型。

摄像机校准过程是指确定固有摄像机矩阵和失真模型的参数。

这可以通过以下粗略的过程来完成:

  • 从具有已知布局和大小的模型的不同角度的多幅图像开始
  • 对于每个图像,确定一些已知对应点。这些通常是角落,因为它们可以轻松,可靠地相互匹配。
  • 每个点都有一个相关的单应性矩阵H = l * K *(R | T),其中l是一个实数比例因子,K是本征相机矩阵,(R | T)是一个代表单应矩阵的矩阵摄影机在3D空间中的旋转和平移(这称为外部摄影机矩阵)。
  • 基于点对应关系并使用单应性,存在确定内部相机参数的封闭形式解决方案。没有失真,至少需要3张图像。假设偏斜为0,则至少需要2张图像。实际上,更多的图像会导致更准确的结果。
  • 一旦知道内在函数,就可以计算每个视图的外部参数(旋转和平移)
  • 失真也可以估计。
  • 某些过程对所有图像进行了优化,以进一步优化封闭式解决方案的结果。

要查看实际的闭合形式方程,请看W. Burger(Burger,2016年)的一个很好的paper

此字段的“圣经”是A. Zisserman撰写的《计算机视觉中的多视图几何》。