基于改进粒子群算法的单目相机标定算法∗

2021-11-11 14:22田少兵范加利段金升
舰船电子工程 2021年10期
关键词:内参适应度标定

田少兵 范加利 王 正 段金升

(1.海军航空大学(青岛校区)舰面航空保障与场站管理系 青岛 266041)(2.92941部队 葫芦岛 125000)

1 引言

机器视觉作为实现智能制造的重要技术,近些年来获得了快速的发展及广泛应用,单目视觉测量技术是机器视觉的一个重要分支,是指将单目相机中获取到目标图像转化为实际世界坐标系中的信息,常用于距离测量、目标定位等方面。相机标定是进行单目视觉测量和定位的先前步骤,是指利用优化方法获取从图像像素坐标系到三维世界坐标系的映射关系,相机标定精度往往影响视觉测量的准确度,因此研究如何准确地标定相机具有重要的意义。

文献[1]提出了一种基于全参数自适应调节和变异机制的粒子群单目相机内参优化算法,分别给出了基于粒距的自适应学习因子调节策略和设计了基于粒子群平均粒距的自适应变异率,实验结果表明,该方法具有较好的标定精度和收敛速度。文献[2]提出了一种利用遗传算法对相机内外参数进行优化求解的相机标定算法,将张正友标定法得到的参数作为初始值,通过遗传算法对初始化参数迭代优化求解,实验结果表明,改进后的标定算法提高了相机的标定精度。

本文提出了一种基于改进粒子群算法的相机标定算法,首先采用张正友相机标定法得到相机内参的初始值,再结合基于动态惯性权重系数的粒子群算法对得到的初始值进行迭代优化,得到最终的相机内参,实验表明,本文算法优化后的相机内参准确性更高,算法收敛速度更快。

2 相机成像模型

相机模型成像始于三维世界,止于图像像素点。相机成像模型是由像素坐标系、图像坐标系、相机坐标系、世界坐标系等四个坐标系之间相互转换建立的,具体是指图像像素坐标点与三维世界空间点的一种映射关系[3~8]。

图1 相机成像模型

其中,(u0,v0)是像素坐标系中的原点,γ为倾斜因子,一般可取值为0。dx、dy分别表示像素在图像坐标系x轴和 y轴方向上的物理尺寸,α=f/dx、β=f/dy分别表示像素坐标系中的u轴和v轴上的尺度因子,R和t分别表示相机外参的旋转矩阵和平移矩阵。

上述的相机成像模型是在没有受到外界干扰情况下的理想状态的成像模型,实际当中,相机制造、安装等过程中会造成各种各样的误差,导致相机通常会存在多种非线性畸变,为了使相机能够获得更加准确的标定结果,在相机标定时应该考虑加入相机的非线性畸变因素,以修正理想的相机成像模型。相机镜头畸变主要分为径向畸变和切向畸变,则考虑加入径向畸变和切向畸变的影响后的相机成像表达式为

其中,(x,y)表示图像畸变点的位置,(xcorrected,ycorrected)表示矫正后的新位置,式中r=x2+y2。k1、k2、k3为径向畸变系数,p1、p2为切向畸变系数。

3 张正友相机标定法

由于H中含有八个未知数,因此需要八个方程联合对H矩阵进行求解[9]。棋盘标定板上面每个角点能提供两个等式方程,则需要四个角点就可以计算图像像素坐标系到世界坐标系的单应映射关系H。

由于式(3)中的单应性矩阵H是一个齐次矩阵,因此与真实的H之间相差一个比例因子λ,则有

其中r1、r2为单位正交向量,则有以下约束:

式6可进一步转换为

可利用最小二乘算法求解矩阵b,进而求解相机内参矩阵A的初始值。

4 改进粒子群算法的相机内参优化算法

粒子群算法(Particle Swarm Optimization,PSO)模拟鸟群随机搜索食物的社会行为,其本质是一种全局搜索算法,对非线性、多目标等优化问题具有较强的全局搜索能力。PSO初始化为一群随机粒子(随机解),然后通过迭代找到最优解,在每次迭代期间,粒子通过跟踪两个“极值”来更新自身。一种称为粒子个体极值,是自身找到的最优解,另一种称为粒子全局极值,是全局粒子群的最优解[10~12]。

然而在上述过程中,如果某个粒子发现当前搜索区域的最优位置,则其他粒子会向这个位置快速靠拢,如果这个位置为局部最优解的位置,则迭代算法容易陷入早熟。在粒子群算法中,惯性权重是最重要的参数,增大其值可以提高算法的全局搜索能力,减小其值可以提高算法的局部搜索能力,因此设置合理的惯性权重,是避免陷入局部最优并高效的搜索的关键。

本文在原PSO算法的基础上,根据算法运行时粒子目标值的分散程度来调整惯性权重,设置的动态惯性权重系数如式(10)所示

其中,f表示当前粒子实时的目标函数值,favg和fmin分别表示当前所有粒子目标函数值的平均值和最小值,最小惯性权重wmin设置为0.4,最大惯性权重wmax设置为1.0。

设置适应度函数如下:

基于动态惯性权重系数的粒子群优化算法优化相机内参的总体步骤如下。

2)计算每个粒子的适应度值,并将每个粒子的当前位置作为个体最优位置,将其对应的适应度值作为当前粒子的个体最优值;对所有粒子的适应度值取最小值,作为全局最优值,并将其对应的粒子位置作为全局最优位置。

3)更新粒子的位置和速度:

4)计算各粒子更新后的适应度值,并计算所有粒子的平均适应度值 favg,按照式(10)所示方法更新惯性权重w。

5)将每个粒子当前的适应度值与其个体最优值进行比较,若小于个体最优值,则将当前适应度值和对应的粒子位置作为该粒子更新后的个体最优值;计算所有粒子个体最优值的最小值,并与全局最优值进行比较,若小于全局最优值,则更新全局最优值。

6)判断算法是否达到迭代完成条件,若未完成,返回执行步骤3),若完成,执行步骤7)。

7)算法执行结束,输出结果。

5 实验与分析

将棋盘标定板放置在平面上进行图像采集,对采集到的棋盘标定图像依次进行角点检测、相机内参初始值计算、误差分析等步骤。误差分析是指利用计算出来的相机内参将实际世界平面坐标系中的坐标映射为棋盘上的角点像素坐标,然后与角点检测算法检测出的真实角点像素坐标求误差。图2展示了棋盘方格角点检测的结果。

图2 角点检测结果

相机内参初始值确定之后,采用本文改进的粒子群算法对内参值进行优化,最终确定出准确的内参值。

表1 粒子取值范围

算法迭代500次之后,得到优化后的内参结果,分别与张正友相机标定法标定的投影误差、原粒子群算法优化后的投影误差进行比较。图3为张正友标定算法的投影误差,图4为原粒子群算法优化后的投影误差,图5为本文改进粒子群算法优化后的投影误差。

图3 张正友相机标定法投影误差

图4 原粒子群算法优化后投影误差

图5 本文改进粒子群算法优化后投影误差

结合图3、4、5可知,相比于张正友相机标定法的投影误差和原粒子群优化后的相机内参投影误差,本文算法的投影误差得到了很大的改善,表明本文算法的标定精度更高。

图6和图7分别反映了原粒子群算法迭代优化曲线和本文改进粒子群优化曲线,即适应度值随着迭代次数变化的趋势。

图6 原粒子群算法迭代优化

图7 本文改进粒子群算法迭代优化

结合图6、7可知,本文改进后的粒子群算法相对于原算法优化后的适应度值更低,比原算法的结果更优,同时,算法的收敛速度也更快。

6 结语

针对单目相机内参标定问题,本文在张正友相机标定算法计算出相机内参值的基础上,加入基于动态惯性权重系数的粒子群优化算法进行进一步优化。实验结果表明,本文提出的算法标定准确度更高,算法进行优化时收敛速度更快,有效地克服了陷入局部最优解的问题。

猜你喜欢
内参适应度标定
改进的自适应复制、交叉和突变遗传算法
猪骨骼肌内参基因的筛选及验证
山麦冬果实花青素生物合成中内参基因的筛选与验证
轻卡前视摄像头的售后标定
一种轻卡前视单目摄像头下线标定方法
使用朗仁H6 Pro标定北汽绅宝转向角传感器
嫁接西瓜在不同营养胁迫下最适内参miRNA的鉴定
CT系统参数标定及成像—2
CT系统参数标定及成像—2
启发式搜索算法进行乐曲编辑的基本原理分析