【视觉知识】相机标定的理解及原理

【视觉知识】相机标定的理解及原理

编码文章call10242025-02-01 3:59:1612A+A-

相机标定的理解及原理


一、什么是相机标定?


相机标定,是一个估计相机模型参数的过程:一组描述图像捕获过程内部几何形状的参数。精确的相机校准对于各种应用都是必不可少的,例如多相机的图像相互关联,消除由于镜头不完美引起的几何畸变,或精确测量真实世界的几何特性(位置、距离、面积、直线度等)。


二、为什么要相机标定?


本质上是根据标定后得到的相机参数建立相机成像几何模型,由获得的图像重构出三维场景。具体来说:当我们用相机获取照片时,从图像里得到一些空间信息(比如距离,尺寸等),是要利用二维图像得到三维信息。拍照的时候把空间物体信息通过相机变成了二维图像,这个过程本来是不可逆的。但如果我们可以找到一个相机的数学模型,就可以从二维图像和数学模型反推得到原来的三维信息。



三、相机标定的方法有哪些


相机标定方法有:传统相机标定法、主动视觉相机标定方法、相机自标定法。


  • 传统相机标定法需要使用尺寸已知的标定物,通过建立标定物上坐标已知的点与其图像点之间的对应,利用一定的算法获得相机模型的内外参数。根据标定物的不同可分为三维标定物和平面型标定物。三维标定物可由单幅图像进行标定,标定精度较高,但高精密三维标定物的加工和维护较困难。平面型标定物比三维标定物制作简单,精度易保证,但标定时必须采用两幅或两幅以上的图像。传统相机标定法在标定过程中始终需要标定物,且标定物的制作精度会影响标定结果。同时有些场合不适合放置标定物也限制了传统相机标定法的应用。


  • 基于主动视觉的相机标定法是指已知相机的某些运动信息对相机进行标定。该方法不需要标定物,但需要控制相机做某些特殊运动,利用这种运动的特殊性可以计算出相机内部参数。基于主动视觉的相机标定法的优点是算法简单,往往能够获得线性解,故鲁棒性较高,缺点是系统的成本高、实验设备昂贵、实验条件要求高,而且不适合于运动参数未知或无法控制的场合。


  • 自标定算法中主要是利用相机运动的约束。相机的运动约束条件太强,因此使得其在实际中并不实用。利用场景约束主要是利用场景中的一些平行或者正交的信息。其中空间平行线在相机图像平面上的交点被称为消失点,它是射影几何中一个非常重要的特征,所以很多学者研究了基于消失点的相机自标定方法。自标定方法灵活性强,可对相机进行在线定标。但由于它是基于绝对二次曲线或曲面的方法,其算法鲁棒性差。


四、世界平面检测与校正


与观察和检查平面(平坦)表面或放置在此类表面(例如传送带)上的物体有关的视觉系统可以利用Adaptive Vision Studio的图像到世界平面转换机制,该机制可以:


从原始图像上的位置计算现实世界的坐标。例如,这对于与外部设备(例如工业机器人)的互操作性至关重要。假设在图像上检测到对象,并且需要将其位置传输到机器人。检测到的对象位置以图像坐标给出,但是机器人在现实世界中使用不同的坐标系进行操作,需要一个由世界平面定义的通用坐标系。


将图像校正到世界平面上。当使用原始图像进行图像分析不可行时(由于高度的镜头和/或透视失真),这是必需的。对校正图像执行的分析结果也可以转换为由世界平面坐标系定义的真实坐标。另一个用例是将所有摄像机的图像校正到公共世界平面上的多摄像机系统校正,从而在这些校正后的图像之间提供简单且定义明确的关系,从而可以轻松叠加或拼接。


下图显示了图像坐标系。图像坐标以像素表示,原点(0,0)对应于图像的左上角。X轴从图像的左边缘开始,并向右边缘。Y轴从图像的顶部开始向图像的底部开始。所有图像像素都具有非负坐标。



图像坐标中的方向和像素位置


这个世界平面是一个特殊的平面,在真实的三维世界中定义。它可以任意放置在相机上,有一个定义的原点和XY轴。


下面的图像显示了世界平面。第一幅图像呈现原始图像,这是由一个尚未安装在感兴趣物体上方的相机拍摄的。第二个图像显示的是世界平面,它已与物体所在的表面对齐。这允许从原始图像上的像素位置计算世界坐标,或者进行图像校正,如下一幅图像所示。


不完全定位的相机捕获的感兴趣对象


世界平面坐标系叠加在原始图像上


图像到世界平面坐标的计算


图像校正,在世界坐标下,将从点(0,0)到(5,5)的区域裁剪


五、如何实现相机标定


  • 使用针孔相机模型


滤波器通过有效地最小化RMS重投影误差(图像上观察到的网格点之间的平均平方距离的平方根),从一组平面校准网格中估计摄像机的固有参数-焦距,主点位置和畸变系数,使用估计的参数(即网格姿态和相机参数)将关联的网格坐标投影到图像平面上。



如果至少一个校准网格不垂直于相机的光轴,则可以通过滤镜计算焦距。或者,可以通过inFocalLength将焦距设置为固定值。inFocalLength以像素为单位测量,可以通过传感器和镜头参数计算得出:



其中f_pix焦距测量为像素,f_镜头焦距测量为毫米,pp-传感器像素间距测量为每像素毫米,d-摄像机结合或/和图像缩小因子。


InFocalLength也可以从视角获得,对于水平情况,适用以下公式:




其中f_pix焦距以像素为单位,w-图像宽度,α-水平视角


支持一些失真模型类型。最简单的部门支持大多数用例,即使校准数据稀疏也具有可预测的行为。高阶模型可能更准确,但是它们需要更大的高质量校准点数据集,通常需要在低于0.1 pix的整个图像量级上实现高水平的位置精度。当然,这只是经验法则,因为每个镜头都不同,并且有例外。


失真模型类型与OpenCV兼容,并使用标准化图像坐标用方程表示:


分部失真模型


多项式失真模型


多项式--薄棱镜畸变模型


其中,x’和y’不失真,x”和y”是失真的归一化图像坐标。


相机模型可直接用于获取未失真的图像(该图像将由具有相同基本参数的相机拍摄,但不存在镜头失真),但是在大多数情况下,相机校准只是某些条件的先决条件其他操作。例如,当使用照相机检查平面(或放置在该表面上的物体)时,需要照相机模型来执行世界平面校准


一组用于基本校准的栅格图像


使用OUT ReprojectionErrorSegments用于识别图像点及其网格坐标的不良关联。

InImageGrids-两分交换


  • 校准网格的提取


相机校准和图像到世界平面的转换计算均使用具有网格索引的图像点阵列形式的提取的校准网格,即带注释的点。


网格的实际坐标是2D,因为平面网格上任何点的相对坐标都是0。


Adaptive Vision Studio为几种标准网格格式提供了提取过滤器(例如DetectCalibrationGrid_Chessboard和DetectCalibrationGrid Circles)。


获得高精度结果的重要因素是提取的校准点的精度和准确性。校准网格应尽可能平坦且坚硬(纸板不是合适的支撑材料,厚玻璃是很好的选择)。拍摄校准图像时,请注意适当的条件:通过适当的相机和栅格安装座减少运动模糊,防止来自校准表面的反射(使用漫射照明)。使用自定义校准网格时,请确保点提取器可以达到亚像素精度。验证真实网格坐标的测量结果是否准确。另外,使用棋盘格校准格时,请确保整个校准格在图像中可见。否则,将不会检测到它,因为检测算法需要在棋盘周围有几个像素宽的空白区域。请注意列数和行数,因为提供误导性数据可能会使算法无法正常工作或根本无法工作。


使用圆点标定板的图片示例:



使用棋盘标定版的图片示例,只需要拍摄标定板的图片,并通过ImageObjectsToWorldPlane:Points过滤器模块,输入棋盘格的尺寸以及棋盘格所对应的像素,即可实现相机标定以及畸变校正。



再输入棋盘格每个方形格的实际尺寸,即可实现世界坐标转换图像坐标。





【来源:樱田机器视觉检测】



点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4