目录
2. 相机型号和参数
为了从图像中得到准确的世界坐标,首先必须校准相机。为了校准相机,需要一个模型,用于将空间上的3D点映射到由相机、镜头和帧抓取器生成的2D图像中。
HALCON支持两种不同类型的相机的校准:面扫描相机和线扫描相机。面阵扫描摄像机只需一步即可获取图像,而线扫描摄像机则逐行生成图像(参见解决方案指南II-A,第39页的第6.6节)。因此在采集过程中,线扫描相机必须相对于对象移动。
有两种不同类型的镜片。第一种类型的镜头将世界坐标透视投影到图像中,就像人眼一样。使用这种类型的镜头,物体离相机越远,图像中的物体就越小。这种相机和镜头的组合被称为针孔相机模型,因为如果在薄的平面对象上钻一个小孔,并且该平面与另一个平面(图像平面)平行,也可以实现透视投影;第二种镜头称为远心镜头。它的主要不同之处在于,它实现了世界坐标在图像平面上的平行投影(对象与相机之间的一定距离范围)。这意味着对象在图像中具有相同的大小,而与它们到相机的距离无关。这种相机和镜头的组合被称为远心相机模型。
2.1 将世界坐标到像素坐标的映射
像素坐标系就是以像素为单位,坐标原点在左上角的坐标系,各个坐标系关系如图:
将世界坐标系的点映射到像素坐标系的步骤:
第1步:世界坐标转换为相机坐标
第2步:相机坐标转换为图像坐标
第3步:图像坐标到像素坐标
2.2 面阵扫描相机
面阵相机与线阵相机的区别在于前者是以面为单位进行图像采集,可以直接获得完整的二维图像信息,后者的以“线”为单位,虽然也是二维图形,但长度较长,而宽度却只有几个像素。这是因为线阵相机的传感器只有一行感光元素。虽然面阵相机的像元总数较多,但分布到每一行的像素单元却少于线阵相机,因此面阵相机的分辨率和扫描频率一般低于线阵相机。
由于线阵相机的感光元素呈现“线”状,采集到的图像信息也是线状,为了采集完整的图像信息,往往需要配合扫描运动。如采集匀速直线运动金属、纤维等材料的图像。线阵图像传感器以CCD为主,市场上曾经也出现过一些线阵CMOS图像传感器,但是,线阵CCD仍是主流。目前,陷阵CCD加扫描运动获取图像的方案应用广泛,尤其在要求视场范围大、图像分辨率高的情况下。面阵相机可以用于面积、形状、位置测量或表面质量检测等,直接获取二维图形能一定程度上减少图像处理算法的复杂度。
2.2.1 世界坐标转换为相机坐标(相机外参)
从WCS到CCS的变换是一个刚性变换,可以用一个位姿来表示,或者等价地用齐次变换矩阵H来表示。因此,点P的相机坐标Pc=(xc,yc,zc)T可以简单地从其世界坐标Pw=(xw,yw,zw)T计算出来:
2.2.2 相机坐标映射到图像坐标
下一步是将CCS中给出的3D点投影到图像平面坐标系(IPCS)。对于针孔相机模型,投影是透视投影,由 公式得到:
对于带有超中心镜头的相机,以下公式成立:
对于远心相机模型,投影是平行投影,其中m=放大倍数。可以看出,物体到相机的距离z对图像坐标没有影响,它由:
2.2.3 镜头畸变
在投影到像平面后,镜头畸变会将qc的坐标(u,v)T变为为qc'=(u',v')T。效果如图所示,如果没有镜头畸变,投影点P'将位于从P通过光学中心的一条直线上。镜头畸变会导致点P'位于不同的位置。
镜头畸变校正可以用除法模型或多项式模型来建模。
除法模型使用一个参数(κ)来模拟径向扭曲。以下公式将扭曲的图像平面坐标转换为未扭曲的图像平面坐标:
参数κ对径向扭曲的大小进行建模。如果κ为负,则失真为桶形(右边),而对于正κ,则为枕形(左边)
多项式模型使用三个参数(K1,K2,K3)来模拟径向失真,并且使用两个参数(P1,P2)来模拟偏心失真。公式如下,其中r=
效果如图所示:
2.2.4 倾斜镜头
倾斜镜头,镜头相对于图像平面的倾斜由两个参数描述:描述倾斜轴方向的旋转角(Rot)ρ(0◦≤ρ<360◦)和传感器平面相对于光轴倾斜的倾斜角τ(0◦≤τ<90◦)(参见图2.17)。