【问题标题】:OpenCV Camera Calibration mathematical backgroundOpenCV相机标定数学背景
【发布时间】:2019-11-06 00:44:21
【问题描述】:

我刚开始使用 OpenCV 并校准了两个摄像头。 我正在使用棋盘校准 python 中的camares。我正在使用函数drawChessboardCornerscalibrateCamera。一切正常。

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

OpenCVdetecting the corners的棋盘怎么样?

这究竟是如何用于校准相机的?

【问题讨论】:

    标签: opencv camera-calibration calibration


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      相机基本上是一种将点从 3D 空间转换(称为投影)到 2D 空间(图像空间)的设备。在分析图像形成时,我们经常使用所谓的pinhole camera 模型,其中图像形成如下:

      更形象一点,我们可以看到这样的图像形成:

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

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

      ,我们可以把投影写成:

      ,其中 s 为实数比例因子,矩阵 pi 为投影矩阵。

      该模型近似于长焦镜头(长焦距)和浅物体到相机的距离。它仅适用于远心镜头。我们使用的相机更准确的模型是透视投影。直观地说,如果 3D 对象更靠近相机,则图像平面中的对象看起来更大。从数学上讲,由于三角形相似性,y1 与 x1 成正比。比例因子为 f/x3 或 f/z。暂且设 f 为 1,得到如下投影函数:

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

      现在,我们的点 P 变为:

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

      ,由于我们使用齐次坐标,最后一次划分“隐式”发生,波浪号表示齐次坐标中的向量。

      你有它!那就是透视投影矩阵。请注意,这是一个不可逆的变换。

      但是,相机不仅将 3D 点投射到 2D 图像平面上。投影后,他们对离散图像空间进行转换。这由一个称为 intrisinc 相机矩阵 K:

      的矩阵表示

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

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

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

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

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

      要查看实际的封闭式方程,请查看 W. Burger 撰写的非常不错的 paper(Burger,2016 年)。

      该领域的“圣经”是计算机视觉中的多视图几何,作者 A. Zisserman。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-10
        • 2012-03-28
        • 1970-01-01
        相关资源
        最近更新 更多