基于改进粒子群算法的相机内参优化方法 下载: 1097次
1 引言
基于视觉伺服的机器人操作在很多行业中的应用越来越广泛,其中机器人末端定位作业是目前研究较多的功能[1-3],需要对目标物体进行识别和精确定位,这与相机内参密切相关。另外,机器人与相机组成的视觉系统在应用前首先需要确定相机坐标系与机器人基坐标系或末端坐标系之间的关系,即完成手眼标定,而相机内参精度是手眼标定精度的重要影响因素。综上所述,提高相机标定精度是提高机器人视觉作业精度的重要基础手段,而相机标定内参优化是提高相机标定精度的一种重要方法。
目前应用广泛的相机标定方法主要有张正友标定法[4]和Tisa两步标定法[5],Tisa两步标定法是先求出外部参数再求出内部参数,过程简单,但对设备要求高,成本高。张正友标定法所需的标定模板简单,只需获取多幅不同角度的标定模板图像,便可求解参数,但标定精度偏低。近年来很多学者提出各种改进算法,主要包括:利用线结构光完成相机标定的方法[6],此类方法操作简单,但设备成本高;将模拟退火算法与遗传算法相结合的方法[7],此类方法精度有所保证,但算法计算量大;相机标定线性法[8],此类方法计算过程简单,但标定精度有待提高。还有方法将粒子群算法融入传统相机标定中[9-11],得到的标定精度有所提高,但总体来说这些算法还是不能有效避免陷入局部最优,标定精度仍有待提高。
本文提出一种基于改进粒子群算法(IPSO)的相机标定内参优化方法,先确立粒子群优化算法的初始值,再对基本粒子群算法中的惯性参数和学习率进行优化调整,采用驱散机制扩大粒子群所在空间范围,以避免陷入局部最优,提高全局搜索能力,从而更好地提高算法的标定精度。
2 单目相机成像模型
相机模型可表征场景目标空间点与对应成像平面点的投影关系。本研究所使用的相机成像模型为针孔成像几何模型,成像关系呈线性变化。如
世界坐标系下的目标点Pw与其在像素坐标系下的投影点Ppix之间的关系可表示为
式中:fx、fy分别为相机在x、y方向的焦距,单位为pixel;M为内参矩阵,主要与相机内部结构有关;
在实际应用中,所有相机都会存在一定的畸变,而单目相机模型是理想的线性模型,并没有涉及相机的畸变。因此,必须将相机畸变考虑进去,则有[12]
式中:(xu,yu)为图像坐标系畸变点的位置;(x,y)为图像坐标系理想点的位置;l1、l2、p1和p2均为畸变系数。(2)式等号右边第一项描述径向畸变,第二项描述切向畸变。
3 相机内参优化算法初始值的确立
相机内参优化算法初始值确立的好坏直接影响优化算法的执行结果。相机内参的标定需要通过采集图像,根据物体在世界坐标系下的已知坐标矩阵[
式中:H=
将(3)式改写为
式中:h为H矩阵拉直的列向量。给定一个标定板的图像,得到
式中:λ为尺度系数;h1、h2和h3分别为矩阵H的第一列向量、第二列向量和第三列向量。
因为r1与r2具有正交关系:
通过上述两个基本约束关系可求解相机内参,即
矩阵B是对称矩阵,由6个参数确定:
取H的第i列为hi=
式中:qij为矩阵H的元素运算后组成的列向量。由正交约束关系(6)式可得:
对于(10)式,可以采用最小二乘来求解b,从而获得相机模型的内参:
4 基于改进的粒子群算法的相机内参优化
4.1 基本粒子群算法
基本粒子群算法(SPO)是一种智能进化算法,已在问题优化过程中广泛应用。其基本思路是先随机初始化一组粒子,之后在每次迭代周期中更新粒子[13]。如在一个n维的搜索空间中,第i个粒子当前位置为Xi=(Xi1,Xi2,…,Xin)T,它的广义速度为Vi=(Vi1,Vi2,…,Vin)T,则粒子更新方程可表示为
式中:pbest为该粒子的历史最优位置;gbest为整个粒子群的最优位置;k为当前迭代次数;w为惯性参数,用以调节收敛方向;c1和c2分别为自身和社会学习率,用于调节迭代的步距;e1和e2为(0,1)区间内互相独立的随机数。
相机标定的目标函数可表示为
式中:
4.2 惯性参数调整
惯性参数w是SPO算法的重要参数之一,它的大小决定了当前迭代粒子的飞行速度对上一次迭代粒子飞行影响的程度[14-15]。w取较大值时,全局搜索能力增强,但不易收敛,尤其在后期不易于寻找最优精度;w取较小值时,局部搜索能力增强,但容易陷入局部最优,算法过早收敛。国内外学者对此进行了大量研究,经典的线性递减权值 (LDW)方法可控制线性变化、计算过程简单,但对复杂或非线性问题的求解性能一般。经过分析研究,发现在不同迭代阶段利用e指数可实现对惯性参数的非线性自适应调整,以达到预期效果。具体关系式为
式中:wmax为惯性参数最大值;wmin为惯性参数最小值;kmax为最大迭代次数;k为当前迭代次数。
由(14)式可知,w的值与收敛程度有关,迭代初期,w的值相对较大,可充分扩大搜索空间范围,提高全局寻优能力。迭代后期,w的值相对较小,以精细的搜索达到快速收敛的目的。
4.3 学习率调整
由粒子群算法特性可知:迭代初期的个体粒子最优位置对粒子当前位置影响程度较大,大的c1和小的c2更有利于提高全局搜索能力;在迭代后期,粒子群的最优位置主要取决于粒子当前最优位置,小的c1和大的c2更有利于精确收敛于全局最优值。经过分析研究发现,对全局和局部学习率采用不同迭代阶段正余弦变化的动态自调整策略更符合算法进化规律,符合要求的关系式可表示为
式中:c1max和c1min分别表示自身学习率c1的最大值和最小值;c2max和c2min分别表示社会学习率c2的最大值和最小值。
4.4 驱散机制
根据前述对粒子群算法的惯性参数和学习率调整,可以在一定程度上避免陷入局部最优,但并不能完全避免算法过早收敛。因此,如果在粒子群算法趋于局部最优的过程中,引入驱散机制触发驱散动作来扩大当前粒子群搜索空间的范围,即跳出局部最优重新在一定范围内搜索,以保障全局最优搜索能力。
传统的驱散机制在整个迭代过程中一直存在,而这会导致收敛变慢[16]。只有在陷入局部最优时引入驱散机制,才能在收敛速度不受影响的情况下避免陷入局部最优。在迭代初期,相邻两次的全局最优位置相差比较大,随着迭代次数的增加,相邻几次的全局最优位置之差减小,这就很容易陷入局部最优值,可用最近的相邻两次迭代差值的平均值衡量随迭代次数而变化的收敛程度,具体关系式可表示为
式中:s(k)表示迭代k次的收敛程度;gbest(k-a)表示迭代(k-a)次的全局最优位置;z一般取3~4。由(17)式可知,通过判断s(k)是否小于某一值ε,就可判断是否需要触发驱散动作。触发驱散动作后粒子群被分配到新的空间范围,随着迭代次数的增加,每次驱散后的全局搜索空间范围越来越小,因此驱散动作程度也相应减小。驱散动作程度可表示为
式中:d表示驱散动作程度;k表示触发驱散动作时的迭代次数。粒子的新位置关系可表示为
式中:Xi(k)为第i个粒子当前位置;Xi(k+1)为粒子被驱散后的新位置。
4.5 相机内参优化流程
基于改进粒子群算法的内参优化标定流程如下:
1) 粒子初始化。随机生成N个包含位置与速度信息的粒子,初始化粒子群优化算法中使用的参数w、c1和c2等,确定最大迭代次数kmax,并初始化当前迭代次数,即k=0。
2) 相机内参初始化。根据前述相机内参初始值的确立,计算相机标定内参优化初始值fx、fy、u0、v0、l1、l2、p1和p2。
3) 选择适应度函数。优化目标函数是利用角点提取获得的实际像素坐标点(u'i,v'i)与世界坐标系中通过成像数学模型计算得到的像素坐标点(ui,vi)之间的距离,适应度函数的定义为
4) 更新惯性参数和学习率。对惯性参数采用非线性自适应调整策略,对全局和局部学习率采用正余弦变化的动态自调整策略。
5) 选择粒子。采用适应度函数计算每个粒子的得分,并与其之前历史最好状态pbest进行对比,如果更好,则更新pbest为当前状态;同时对每个粒子与所有全局粒子的最好状态gbest进行对比,如果更好,则更新gbest为当前状态。
6) 更新粒子。根据前述粒子更新公式[(12)式],在每次迭代中更新粒子。
7) 判断是否局部最优。判断当前位置是否可能陷入局部最优,若是则转入步骤8),若不是转入步骤9)。
8) 驱散动作。触发驱散动作,扩大当前粒子群的搜索空间范围,即跳出局部最优在一定范围内重新搜索。
9) 重复步骤4)~8),直到最大迭代次数或者达到预设的适应度值则结束。
5 实验结果与分析
基于前述相机标定原理与流程,用标准的棋盘格作为标定板。将单目相机固定在机械臂末端,控制机械臂末端的位姿使其带着待标定的相机从不同视角拍摄标定板,得到20幅采样图像。每幅采样图像中每个棋盘格角点在标定板平面上的坐标固定不变且已知,而棋盘格角点在图像平面上的像素坐标可以直接采用Harris角点提取计算。根据前述相机内参初始值的确定方法求得内参初始值,并将其附近区间设定为初始值优化范围,具体为
表 2. 可重复性实验的重投影误差
Table 2. Reprojection error of repeatable experiments
|
表 1. 相机内参标定结果
Table 1. Calibration results of camera intrinsic parameters
|
为了验证改进粒子群算法的可重复性,重新进行了多次采样实验。利用上述三种方法进行标定,记录重投影误差并计算平均值与标准差,各组数据结果如
6 结论
提出一种用于提高相机标定精度的优化方法,首先建立了存在畸变影响的相机模型,再利用张正友标定方法确定相机内参优化算法的初始值;然后对粒子群算法中的参数作了调整并增加了全局寻优的保障机制,即对惯性参数作了非线性动态调整,对学习率采用正余弦变化的自适应调整策略,这些都提高了全局寻优能力与后期搜索精度,并采用驱散机制根据驱散动作程度重新分配粒子群空间范围,使其跳出局部最优;最后将几种传统方法与所提改进方法进行对比实验,结果表明改进后的相机标定方法重投影误差减小,基本维持在0.1 pixel左右,标定精度得到一定的提高,并且具有较好的可重复性。在机器视觉应用系统中,所提方法具有较高的有效性和可靠性。
[1] 马庭田. 基于机器人视觉的多类型工件识别与定位问题研究[D]. 南京: 南京航空航天大学, 2018: 8- 18.
Ma TT. Research on identification and positioning problems for a variety of work pieces on binocular stereo vision[D]. Nanjing: Nanjing University of Aeronautics and Astronautics, 2018: 8- 18.
[2] 李双. 基于机器视觉的叶片夹取机器人研究[D]. 哈尔滨: 东北林业大学, 2018: 42- 47.
LiS. Research on blade recognition robot based on machine vision[D]. Harbin: Northeast Forestry University, 2018: 42- 47.
[3] 桑孟雷. 基于机器视觉的圆形工件位姿估计[D]. 杭州: 浙江大学, 2018: 11- 24.
Sang ML. Machine vision based location and attitude estimation for circular workpiece[D]. Hangzhou: Zhejiang University, 2018: 11- 24.
[4] Zhang Z. A flexible new technique for camera calibration[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(11): 1330-1334.
[5] Tsai R. A versatile camera calibration technique for high-accuracy 3D machine vision metrology using off-the-shelf TV cameras and lenses[J]. IEEE Journal on Robotics and Automation, 1987, 3(4): 323-344.
[6] 解则晓, 张安祺. 超大尺度线结构光传感器内外参数同时标定[J]. 光学学报, 2018, 38(3): 0315001.
[7] 游江, 唐力伟, 邓士杰. 基于改进遗传模拟退火的相机标定方法[J]. 计算机工程与设计, 2017, 38(3): 819-824.
You J, Tang L W, Deng S J. Camera calibration method based on genetic algorithm and simulated annealing[J]. Computer Engineering and Design, 2017, 38(3): 819-824.
[8] Zhang Z, Zhao R J, Liu E H, et al. A single-image linear calibration method for camera[J]. Measurement, 2018, 130: 298-305.
[9] 黄伟光, 董安国. 基于粒子群算法的摄像机自标定[J]. 计算机应用与软件, 2015, 32(5): 216-219, 233.
Huang W G, Dong A G. Camera self-calibration based on particle swarm optimisation[J]. Computer Applications and Software, 2015, 32(5): 216-219, 233.
[10] 郭彤颖, 李宁宁, 刘雍. 基于粒子群算法的摄像机内参数优化方法[J]. 激光与光电子学进展, 2017, 54(11): 111504.
[11] 王道累, 胡松. 基于量子粒子群优化算法的摄像机标定优化方法[J]. 激光与光电子学进展, 2018, 55(12): 121502.
[12] 秦瑞康, 杨月全, 李福东, 等. 基于全参数自适应变异粒子群算法的单目相机标定[J]. 东南大学学报(自然科学版), 2017, 47(z1): 193-198.
Qin R K, Yang Y Q, Li F D, et al. Monocular camera calibration based on particle swarm algorithm with all parameter adaptive mutation mechanism[J]. Journal of Southeast University(Natural Science Edition), 2017, 47(z1): 193-198.
[13] 李少波, 张成龙, 郑凯. 基于改进粒子群算法的制造车间WSN部署优化[J]. 仪表技术与传感器, 2017( 10): 101- 104.
Li SB, Zhang CL, ZhengK. Node deployments optimization in wireless sensor networks based on improved particle swarm algorithm[J]. Instrument Technique and Sensor, 2017( 10): 101- 104.
[14] 赵丰明, 樊艳芳, 钱福如, 等. 关于新能源并网供电无功性能优化设计研究[J]. 计算机仿真, 2018, 35(11): 118-122.
Zhao F M, Fan Y F, Qian F R, et al. Research on optimized design of reactive power performance of new energy grid connected power supply simplified particle swarm optimization[J]. Computer Simulation, 2018, 35(11): 118-122.
[15] 杜江, 袁中华, 王景芹. 动态改变惯性权重的新模式粒子群算法[J]. 安徽大学学报(自然科学版), 2018, 42(2): 60-66.
Du J, Yuan Z H, Wang J Q. New model of particle swarm optimization algorithm with dynamically changing inertia weight[J]. Journal of Anhui University(Natural Science Edition), 2018, 42(2): 60-66.
[16] 游佳丽, 周志勇, 章程, 等. 基于自适应驱散机制的粒子群优化算法[J]. 计算机工程与应用, 2017, 53(7): 41-48, 103.
You J L, Zhou Z Y, Zhang C, et al. Adaptive dispersion mechanism based particle swarm optimization algorithm[J]. Computer Engineering and Applications, 2017, 53(7): 41-48, 103.
Article Outline
徐呈艺, 刘英, 肖轶, 曹健. 基于改进粒子群算法的相机内参优化方法[J]. 激光与光电子学进展, 2020, 57(4): 041514. Chengyi Xu, Ying Liu, Yi Xiao, Jian Cao. Optimization Method for Camera Intrinsic Parameters Based on Improved Particle Swarm Algorithm[J]. Laser & Optoelectronics Progress, 2020, 57(4): 041514.