工业相机单目标定
纯应用开发的知识扫盲,记录自己不懂的知识误区。
工业相机单目标定
1. 简介
工业相机标定的方法根据工业相机的数目可分为单目标定、双目标定以及多目标定。单目工业相机标定是双目标定的基础,而多目工业相机的标定则是双目工业相机的扩展。
1.1 工业相机标定的目的
空间物体呈现的是三维几何位置,相机内的投影图像为二维位置,可将理想的成像模型简化为被测平面和像平面平行的小孔成像模型。
实际应用中并非如此。由于受到光学生产工艺的影响,我们常用的工业相机镜头在制造生产后,我们无法严格控制像平面和被测平面的位置,所用的镜头也不是严格的小孔模型,其成像总会呈现或多或少的畸变。
只有在消除畸变的情况下,才能获取准确的映射关系,进一步有利于进行高精度测量和定位,我们需要通过标定来实现坐标平面的转换以及图像的校正。
1.2 什么是工业相机标定
在实际应用中,被测平面的不确定性以及镜头的畸变使我们已经无法简单的使用理想的小孔成像模型计算出实际距离,但是我们可以将目前能够获得的数据进行转换,使这些数据符合理想的小孔成像模型的使用条件。
就是将任意坐标平面通过旋转和平移映射到理想坐标平面上,对有畸变的图像进行校正,让它成为符合小孔成像模型的像平面。有了这种方法,我们只要确定转换算法、校正算法以及参数就可以实现三维空间中任意平面上尺寸与位置的测量。我们将这种确定参数的过程称之为标定。
1.3 工业相机标定了什么
在平面测量中影响我们拍摄图像形变的因素有两个:镜头和工业相机的姿态。根据这两个因素我们将工业相机的参数分为两组,工业相机内参和工业相机外参。
- 内参是相机的工艺参数,包括焦距,主距,相邻像素距离等,以及畸变系数。
- 外参是相机的位置参数,包括旋转角度,平移距离等。
2. 工业相机的标定
2.1 坐标系转换
相机标定原理的核心就是坐标系转换:世界坐标系 → 相机坐标系 → 图像坐标系 → 像素坐标系。
| 坐标系 | 说明 |
|---|---|
| 世界坐标系 | 一般是产品所在平面所建立的世界绝对坐标系。 |
| 相机坐标系 | 以镜头中心为原点,所构建的坐标系。 |
| 图像坐标系 | 分为成像平面坐标系和图像像素坐标系 a) 成像平面坐标系:如图中成像原理所构成的成像坐标系 b) 最终呈现给用户的图像显示形式,以左上角为原点构建的坐标系。 |
转换步骤如下:
- 世界坐标系转相机坐标系;
通常在标定过程中,将标定板方至测量平面,以标定板为参考坐标系基准,建立世界坐标系。 - 相机坐标系转成像平面坐标系;
一般先将相机坐标系转换至理想成像平面坐标系,再进行相机镜头的畸变矫正,转换至真实的成像平面坐标系。
根据矩阵论,空间上一点乘以一个矩阵,相当于旋转至另一个位置,加上一个向量,相当于平移到另一个位置。 - 成像平面坐标系转图像像素坐标系;
2.2 相机内参 和 畸变参数
相机内参(Intrinsic Parameters)和畸变参数(Distortion Parameters)是在相机标定过程中确定的重要参数,用于描述相机成像过程中的特性和误差。这些参数对于计算机视觉和图像处理任务非常重要。
相机内参(f,Sx,Sy,k,Cx,Cy)
工业相机和镜头确定时,相机内参(Intrinsic Parameters)是唯一确定的。内参一般包括:镜头的焦距f、像元尺寸Sx,Sy、扭曲因子k、以及光轴中心坐标(Cx,Cy)。
-
焦距(Focal Length):焦距是指从相机光学中心到成像平面的距离,通常以像素为单位。焦距的大小直接影响到成像的大小和视场范围。根据镜头类型不同焦距的计算可分为针孔模型和远心模型,单位:mm或m。
-
光学中心(Principal Point):光学中心是成像平面上的点,它与光轴的交点,通常表示为像素坐标系中的一个点。主点在图像像素坐标系下的坐标,单位为像素;主点为过光心垂直于成像面的垂线,该垂线与成像面的交点。
-
像素尺度因子(Pixel Scale Factor):描述相机成像时像素的实际大小和相机内部尺度之间的关系。一个像素在水平和垂直方向上的物理尺寸,单位:mm或m。
-
图像畸变参数(Distortion Parameters):这些参数描述了相机镜头引起的畸变,主要包括径向畸变和切向畸变。
相机内参通常由相机矩阵(Camera Matrix)表示,通常记为 K,其一般形式如下:
| fx 0 cx |
| 0 fy cy |
| 0 0 1 |
其中:
- fx 和 fy 是焦距在图像坐标系中的水平和垂直分量。
- cx 和 cy 是光学中心在图像坐标系中的水平和垂直分量。
在OpenCV中,相机内参通常以cv::Mat对象的形式表示,例如:
cv::Mat cameraMatrix = (cv::Mat_<double>(3, 3) << fx, 0, cx, 0, fy, cy, 0, 0, 1);
畸变参数 [k1,k2,k3,…,p1,p2,…]
受到镜头的制作和安装精度的影响,我们所获得图像会产生非线性失真。我们称这种失真为镜头畸变,镜头畸变产生的误差使得理想针孔模型已不再适用。因此我们需要先将所得图像进行校正,再应用理想的针孔模型。
- 径向畸变 k1,k2,k3, …
径向畸变(Radial Distortion):径向畸变是由于镜头非理想形状引起的,使得直线在成像时产生弯曲的效应。主要分为正径向畸变和负径向畸变。
- 切向畸变 p1,p2,…
切向畸变(Tangential Distortion):切向畸变是由于相机镜头不完全平行于成像平面引起的,使得图像中的物体看起来有一定的倾斜效果。误差来源于透镜的安装精度。
在OpenCV中,畸变参数通常由一个向量表示,通常记为 distCoeffs,其形式如下:
| k1, k2, p1, p2, k3 |
在OpenCV中,畸变参数通常以cv::Mat对象的形式表示,例如:
cv::Mat distCoeffs = (cv::Mat_<double>(1, 5) << k1, k2, p1, p2, k3);
大多数工业工业相机的厂商薄棱镜安装存在些许误差导致薄棱镜畸变,主要因素的是透镜以及工业相机靶面的平行度,镜片与工业相机靶面夹角越大畸变就越严重;另外,还通过工业相机接口螺纹的机械精度来保证镜头透镜与靶面的平行性;这类畸变产生的误差较小,因此在一般的图像标定中不作考虑。
2.3 相机外参 [R|T]
工业相机的外参是指工业相机坐标系转换到世界坐标的旋转矩阵R和平移矩阵T组成。对于任意三维坐标系,我们都可以通过这两个矩阵将其转换到工业相机坐标系中。
-
旋转矩阵R

如图所示,通过沿坐标轴x、y、z分别旋转α、β、γ来实现坐标系的转换。因此,旋转矩阵R可分解为Rx(α)、Ry(β)、Rz(γ)三个矩阵相乘的形式。 -
平移矩阵T

3. 拍摄标定板图像
一般情况保存15幅不同位置的图像,具体位置如下:
参考文献
- 大恒图像:工业相机标定技术及其应用——单目工业相机:https://www.daheng-imaging.com/show-52-321-1.html
- 【相机标定篇】单目相机标定原理(1):http://www.skcircle.com/?id=1272
- 白学立体视觉(3): 单目相机标定:https://blog.csdn.net/qq_38906523/article/details/125321999
更多推荐


所有评论(0)