1. 引言
相机标定是视觉测量应用中不可避免的预处理,它可以避免光学成像系统本身所产生的几何和辐射形变的影响[1]-[3]。由于几何变形破坏了像素的空间位置,因此从相关图像合成准确的基于空间的信息的能力受到限制。为了获得精确的测量信息,准确估计相机参数至关重要。摄像机标定参数主要包括内部参数和外部参数。内部参数涉及主点坐标、有效焦距和畸变参数,它们代表了相机的特性;外部参数则包括平移矢量和旋转矩阵,表征了世界坐标系与摄像机坐标系之间的相对位置关系。
相机标定描述了三维场景坐标到二维图像的映射。为了求解相关的相机内外参数,需要定义解析相机模型。相机参数的数量取决于分析相机模型的复杂程度。因此,在计算相对复杂的解析相机模型的相机参数值时,已采用线性方法获得初始解[4]。虽然线性方法具有较高的计算速度,但它们没有考虑透镜畸变[5]。
由于线性摄像机标定方法的解析模型不包括模拟几何畸变的参数,即镜头畸变,因此其计算内在相机参数的精度受到限制。非线性相机标定方法的解析模型一般分为两个步骤。第一步是利用无几何畸变的线性方法获得初始解。第二步,利用线性方法得到的初始值,采用非线性优化方法确定透镜畸变。在第一阶段获得的相机参数的初始值在最终解中起重要作用。
传统的非线性相机标定方法使用基于梯度的优化技术来计算相应的相机参数值。基于梯度的优化方法在求解相机标定问题等多模态问题时容易陷入局部解。Zhang [6]的棋盘格标定方法被广泛认为是最具代表性的标定方法之一。他使用Levenberg-Marquardt算法来求解相关的相机参数。然而,基于梯度的优化技术对相关相机参数的初始值过于敏感。由于相机标定问题是一个多模态问题,基于梯度的优化方法可能会被困在一个局部解中。
为了弥补传统标定方法的不足,近年来,许多研究者提出了基于不同优化算法的相机标定新方法,这些方法在提高标定精度方面取得了显著成果。例如,林立财[7]提出了一种将改进的遗传算法和Levenberg-Marquardt (L-M)算法相混合优化的摄像机自标定方法。刘屹东[8]等人提出一种基于非线性优化的改进相机内参数标定方法,通过定义个体搜索能力来动态调整群体的惯性权重,避免了因惯性权重设置不合理对算法搜索能力的影响。李春明[9]等人则提出一种基于改进灰狼遗传算法的相机标定优化方法,对灰狼算法进行改进,并融入了基于维度学习的搜索策略,以优化相机标定参数。王道累[10]等人则提出了一种基于天牛须搜索算法的单目相机标定方法。这些方法均在估算出初始标定参数的基础上,用天牛须搜索算法,以平均重投影误差为目标建立目标函数,对相机参数进一步优化。尽管这些方法在实现上简单易行且成本较低,但在标定精度、可重复性和鲁棒性方面仍有待提高。
为此,本文提出了一种基于鲸鱼优化算法[11]的相机标定优化算法。该方法将传统的L-M算法替换为鲸鱼优化算法,通过对相机的初始内参和畸变系数进行优化,进一步提高了标定精度和鲁棒性。
2. 相机标定原理
图1中,Ow-xw yw zw表示世界坐标系,Pw的世界坐标为(xw, yw, zw, 1)T。Oc-xc yc zc为相机坐标系,O-uv是图像的像素坐标系。相机成像模型如图1:
Figure 1. Camera imaging model
图1. 相机成像模型
在理想针孔成像模型下,Pu = (u, v, 1)T。关系可以表示为:
(1)
式中,s是比例因子,fu和fv分别是u轴和v轴的有效焦距。(u0, v0)是主点坐标。
(2)
(3)
R和T分别表示摄像机坐标系与世界坐标系的旋转和平移关系。
对于标定目标上的标记点zw = 0,(1)可简化为
(4)
投影矩阵
为
(5)
在实际成像过程中,由于镜头畸变的影响,理想成像点和实际成像点位置不同。考虑畸变系数的实际坐标可以修改为
(6)
当ri2 = xi2 +yi2时,(xi, yi)是理想物理坐标,(xd, yd)是实际物理坐标,k1和k2为径向畸变系数。
将式3带入式1,建立重投影误差函数。为使重投影误差最小,得到相机参数
(7)
式中,m为特征点个数;n为图像数量;Puij为第i幅图像中第j个特征点的图像坐标;K为相机的本征参数矩阵;D为透镜畸变参数;Ri和Ti分别表示第i个图像的旋转矩阵和平移向量;Pwij为第i张图像中第j个特征点的世界坐标。
3. 鲸鱼优化算法原理
Mirjalili和Lewis提出了鲸鱼优化算法(Whale Optimization Algorithm, WOA),旨在模拟座头鲸的捕猎行为。该算法通过两种主要的攻击机制实现其捕猎策略:首先,利用随机或最佳搜索代理追捕猎物;其次,模拟气泡网狩猎策略。座头鲸通常在靠近水面的地方捕食一群小鱼,它们围绕着猎物在细圈内游动,形成蜿蜒的路径,沿着圆圈或“9”形的轨迹产生不同的气泡。这种独特的捕猎方法被称为气泡网捕食法,觅食时座头鲸通过沿着圆形或“9”形路径释放独特的气泡来围捕猎物。
鲸鱼优化算法主要分为两个阶段。第一阶段是开发阶段,在这一阶段,算法实施包围猎物和螺旋更新位置的策略;而第二阶段则是探索阶段,在这一阶段,寻找猎物的过程是随机进行的。当座头鲸成功发现猎物的位置后,会将其团团围住。在这一过程中,最优设计在搜索空间中的位置是未知的。因此,WOA算法假设当前最优的候选解是目标猎物或接近最优解。其他搜索代理将尝试将其位置调整为最佳搜索代理的状态。
(8)
(9)
(10)
(11)
其中,𝑡代表当前迭代,
和
是系数向量,
代表个体目前的位置,
代表当前最优解的位置,
是鲸鱼和猎物之间的距离。在每轮迭代结束后,
会更新自己来记录最优解的位置,r为[0, 1]中的随机数,
是一个衰减变量。
WOA设计了收缩环绕机制和螺旋更新位置的方法对座头鲸的气泡网行为进行建模。收缩环绕机制通过减少
的值,
的波动范围为[0, 2]。在[−a, a]中设置A随机值,使得搜索代理的新位置能够位于原始位置和当前最佳代理位置之间的任何位置。螺旋更新位置首先计算了鲸鱼和猎物之间的距离,然后建立一个螺旋方程以模拟座头鲸的螺旋运动。最后,为了模拟座头鲸一边进行收缩环绕来包围猎物,一边按照螺旋线来改变位置,WOA随机化了这两种行为。
(12)
(13)
式中,b为识别对数螺旋形状的定值,k为[−1, 1]范围内的随机数,
为当前个体与当前最优觅食位置的距离。收缩环绕机构和螺旋模型之间有50%的选择机会,公式如下:
(14)
其中p是(0, 1)中的随机数。
在猎物的搜索阶段,即探索阶段,可以使用类似的方法,该方法取决于
向量的方差。鲸鱼实际上是根据彼此的位置随机搜索猎物的。因此,为了迫使搜索代理远离本地鲸鱼,WOA使用随机值大于或小于1的
向量。在整个探索阶段,根据随机选择的搜索代理而不是最佳搜索代理来重新组织搜索代理的位置。该过程有助于WOA算法进行全局搜索,克服局部最优问题。数学模型表示为:
(15)
(16)
其中
是从当前种群中选择的随机位置向量(随机鲸鱼)。
4. 基于鲸鱼优化算法的相机标定方法
在张正友标定法中,使用的是L-M算法,然而,L-M算法对初始参数值敏感,若初始值选择不当,可能导致收敛到局部最优解,影响最终结果的准确性。所以,本文使用鲸鱼优化算法替换L-M算法,进行相机标定参数的计算。
设置目标函数为:
(17)
式中,n为拍摄的标定图像数目,m为每张图像中的角点数目,qij为第i幅图像中第j个角点的实际坐标,q'ij为重投影坐标,E为相机内参矩阵,Ri为第i幅图像的旋转矩阵,ti为第i幅图像的平移向量,Wij为棋盘格角点对应的世界坐标。目标函数通过计算每幅图像中所有角点的重投影误差的平方和,进而求取所有图像的平均重投影误差。
将相机内参和畸变系数的优化过程视为一个搜索问题。设置鲸鱼优化算法中的种群大小和迭代次数。算法通过在参数的定义域内随机初始化一组鲸鱼,每个鲸鱼的位置对应着一组相机参数。这些参数包括焦距、主点坐标、以及镜头畸变系数等,共同构成了一个9维的参数空间。
在算法的每一次迭代中,首先计算每个鲸鱼位置对应的适应度值,即重投影误差。鲸鱼优化算法采用了一种模拟鲸鱼捕猎行为的搜索策略,主要包括随机游动、局部搜索和群体协作。鲸鱼通过观察周围的优秀个体即重投影误差值更低的鲸鱼来更新自己的位置,以更好地逼近全局最优解。
优化过程中的关键步骤是使用更新公式调整鲸鱼的位置信息。在计算每只鲸鱼的新位置时,会引入一个衰减因子,该因子会随着迭代次数的增加而逐渐减小,从而实现搜索范围的动态调整。这一策略不仅能够保证在初始阶段的广泛探索,还能够在后期聚焦于局部最优解的精细搜索。
在每轮迭代结束后,鲸鱼优化算法会评估当前群体的重投影误差最低的个体,并记录适应度值的最优解。该过程持续进行,直至满足预设的迭代次数或适应度值的收敛条件。
经过上述优化后,最终得到的鲸鱼位置即为相机的最优内参和畸变系数,这些参数将用于进一步的相机模型构建和图像处理任务。通过使用鲸鱼优化算法,本文有效提高了相机标定的精度,克服了L-M算法的局部最优问题,为高精度的计算机视觉应用奠定了坚实的基础。
5. 实验
本文使用MATLAB中的toolbox_calib工具箱进行实验。使用toolbox_calib工具箱中的棋盘格标定板图像进行角点提取并获得初始参数。标定板图像如图2。
Figure 2. Picture of the calibration plate
图2. 标定板图片
使用toolbox_calib工具箱,使用8幅图像进行标定,采用Harris的方法提取角点,角点提取图像如图3。
Figure 3. Corner extraction plot
图3. 角点提取图
Figure 4. Methods in this paper
图4. 本文方法
使用提取到的角点进行初步标定,得到相机的内参矩阵和外参矩阵以及畸变系数,并以此确定寻优的范围使用鲸鱼优化算法进行优化。得到的重投c影误差如图4。
与传统的张正友标定法中的L-M算法对比,张正友标定法得到的重投影误差图如图5。
Figure 5. Zhang Zhengyou calibration method
图5. 张正友标定法
图中横轴为X方向的误差,纵轴为是Y轴的误差。可以看出,基于鲸鱼优化算法的方法标定精度更精准。
Figure 6. Three-dimensional schematic diagram of the overall system
图6. 整体系统三维示意图
图6表示相机的空间相对位置关系以及标定板角度。
表1表示相机标定的结果,重投影误差的标准差是(0.1292, 0.1027)像素,最大重投影误差值是0.4717像素。从图5和图4的对比,可以看出,本文大大提升了相机标定的精度。
Table 1. Camera calibration results
表1. 相机标定的结果
方法 |
参数 |
fc |
[657.79380 658.46930] +/− [0.57516 0.76969] |
cc |
[301.85573 244.50472] +/− [1.31471 1.08951] |
kc |
[−0.25955 0.14924 −0.00009 −0.00027 0.00000] +/− [0.00578 0.02853 0.00027 0.00027 0.00000] |
Error |
[0.1292 0.1027] |
6. 结论
本文为解决张正友标定法中优化相机参数时坎宁陷入局部最优以及精度不高的问题,使用鲸鱼优化算法对相机参数。实验中,标准差从(0.3825, 0.3675)像素,最大重投影误差值0.8621像素降低到标准差是(0.1292, 0.1027)像素,最大重投影误差值是0.4717像素。所提方法明显可提高对相机内参数标定的精度和稳定性。
NOTES
*通讯作者。