基于量子粒子群优化算法的摄像机标定优化方法 下载: 832次
1 引言
随着计算机技术和传感器的飞速发展,机器视觉在工业检测、自动导航、生物医疗、三维(3D)物体重建等方面的应用越来越广泛,而摄像机标定技术是机器视觉研究中非常关键的技术之一。摄像机标定利用物体表面某点在空间的3D坐标与其在图像中对应点的图像坐标之间确立的几何关系,通过实验和计算获取该几何关系的模型参数,从而得到摄像机的内外参数[1]。摄像机的标定参数主要包括内部参数和外部参数,内部参数主要与摄像机的光学特性和内部几何结构有关,外部参数反映的是摄像机摆放位置相对于世界坐标系的3D空间中的位置和方向。摄像机的标定精度直接影响着机器视觉中3D重建的精度,为了提高摄像机的标定精度,需要准确、合理、有效地求解摄像机的模型参数。
为此,很多学者提出了解决方法,应用较为广泛的标定方法有直接线性变换法、Tisa两步标定法[2]和张正友平面标定法[3]。直接线性变换法只需求解线性方程便可求得摄像机模型的参数,没有考虑镜头的畸变,标定精度有限。Tisa两步标定法和张正友平面标定法都是首先通过线性求解函数得到部分参数,再通过考虑镜头的畸变等因素来进行非线性优化,最后得到一个比较精确的结果。但是这两种方法都属于传统的优化算法,存在对初始值比较敏感、收敛性差且易于陷入局部最优值等缺陷。
为了克服传统摄像机标定算法的不足,本文将量子粒子群优化(QPSO)算法用于摄像机标定,对摄像机参数进行了优化,进一步提高了摄像机的标定精度。粒子群优化(PSO)算法具有稳健性高、精度高且易于实现等优点[4-9],QPSO在具有PSO算法优点的同时克服了PSO不能保证全局收敛的局限性,得到的误差比PSO优化算法的更小,结果更稳定可靠。
2 摄像机成像模型
摄像机成像模型由摄像机通过成像透镜将3D场景投影到摄像机二维(2D)平面上,而该投影可用成像变换进行描述[10]。目前,有多种摄像机成像模型,而针孔成像模型原理最简单,使用较为广泛。单目摄像机模型如
1) 设空间中某一点
式中:
2) 摄像机针孔成像模型下的理想透视投影变换为
式中:(
3)
式中:
由(1)~(3)式可得
式中:
实际的镜头并不是理想的透视成像,而是带有不同程度的畸变。主要考虑二阶径向畸变和切向畸变,即
式中:(
3 QPSO算法
PSO算法源于对鸟群觅食行为的观察研究,是由Kennedy等[11]提出的一种基于群体的智能演化算法。PSO算法将每个可行解称为一个“粒子”,这些粒子的体积和质量可忽略不计,每个粒子被看成是一个
基本PSO算法的速度和位置的更新公式为
式中:
在PSO算法中,随着时间的演化,粒子的运动轨迹是既定的,因此粒子的飞行速度受到一定的限制,粒子的搜索空间减小,搜索范围有限,不能覆盖整个可行解空间。van den Bergh等[12-13]证明了PSO算法并不能够保证全局收敛。在分析了PSO算法的优缺点之后,Sun等[14]提出了一种新的量子行为粒子群智能算法,即以量子力学作为理论基础,对粒子赋予量子行为特性。
在QPSO算法中,粒子在势阱中心
式中:
假定粒子
将(10)式代入(9)式得到粒子在
式中:
对(11)式求解可得
化简得到最初的QPSO进化方程为
式中:
Sun等[15]对(13)式进行了如下改动:
式中:
第
4 基于QPSO算法的摄像机参数优化
用MATLAB软件的标定程序对摄像机进行标定,得到摄像机内外参数,结合QPSO算法用C/C++计算机语言进行编程,通过反求投影对角点图像像素点与原始角点图像像素坐标进行残差计算,对摄像机内参数进行优化,具体步骤如下。
1) 利用openCV库中的cvFindCornerSubPix对标定模板进行亚像素角点检测,以获得图片上角点的实际图像像素坐标。
2) 利用MATLAB软件的标定程序得到摄像机的内部参数(
式中:
3) 对粒子群中每一个粒子的当前位置进行初始化。
4) 通过(15)式计算得到
5) 将
6) 若目标函数的适应度满足精度要求或迭代次数达到预设最大迭代次数,结束运行,否则返回步骤4)继续运行。
7) 最后得到的全局最优值
5 实验结果与讨论
实验采用的是德国Allied Vision Technologies(AVT)公司生产的一款高帧率的千兆网口工业数字摄像机Manta G-201B/C,采用Sony ICX274传感器。在全分辨率下,Manta G-201B/C工业数字摄像机的帧率可达30 frame/s。标定模板使用的是激光打印的棋盘格标定板(8行11列),以象棋盘的角点为标定点,每个格子的大小均为30 mm×30 mm,共13张图片,如
实验首先通过MATLAB软件的标定程序对摄像机进行标定,得到摄像机的外部参数和内部参数(
表 1. 基于QPSO算法求解摄像机的内参数结果
Table 1. Results of camera intrinsic parameter based on QPSO algorithm
|
为了证明基于QPSO算法的摄像机内参数优化方法的可靠性,比较了实际检测到的角点图像坐标(
表 2. 可靠性数据验证
Table 2. Reliability data verification
|
6 结论
通过MATLAB软件的标定程序获得了摄像机标定参数,将其作为优化算法的初始值,并结合QPSO算法对摄像机参数进行进一步优化,该算法是关于多个参数的复杂非线性函数优化求解问题,量子粒子群算法能够很好地克服传统优化算法对初始值敏感、收敛性差等缺点。研究结果表明,所提的QPSO算法能够有效地提高摄像机的标定精度,算法稳健性高且易与实际问题相结合,可以方便、快速、有效地应用于工程实践。
[1] 邱茂林, 马颂德, 李毅. 计算机视觉中摄像机定标综述[J]. 自动化学报, 2000, 26(1): 43-55.
[2] Tsai R Y. An efficient and accurate camera calibration technique for 3D machine vision[J]. Proceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 1986: 364-374.
[4] 廉小磊, 贺利乐, 张颖. 基于粒子群算法的双目立体视觉系统标定[J]. 计算机工程与应用, 2011, 47(24): 202-204.
[5] 陈义雄, 梁昔明, 黄亚飞, 等. 量子粒子群混合优化算法求解约束优化问题[J]. 小型微型计算机系统, 2015, 36(2): 296-300.
[7] GuanW, LiW, XiJ. Improved particle swarm optimization algorithm based nonlinear calibration of camera[C]. 29th Chinese Control and Decision Conference, 2017: 5217- 5221.
[8] 郭彤颖, 李宁宁, 刘雍. 基于粒子群算法的摄像机内参数优化方法[J]. 激光与光电子学进展, 2017, 54(11): 111504.
[9] 姚成乾, 陈伟. 基于改进粒子算法的红外弱小目标检测研究[J]. 激光与光电子学进展, 2017, 54(11): 111101.
[10] 汪禹, 刘焕海. 二维平面靶标的数码相机标定[J]. 软件导刊, 2011, 10(1): 177-179.
[11] Kennedy J, Eberhart R C. Particle swarm optimization[J]. Proceedings of IEEE, 1995: 1942-1948.
[12] van den BerghF, Engelbrecht AP. A new locally convergent particle swarm optimiser[C]. IEEE International Conference on Systems, Man and Cybernetics, 2002, 3: 96- 101.
[13] van den BerghF. An analysis of particle swarm optimizers[D]. Pretoria: University of Pretoria, 2006.
[14] SunJ, FengB, XuW. Particle swarm optimization with particles having quantum behavior[C]. Evolutionary Computation, 2004, 1: 325- 331.
[15] SunJ, XuW, FengB. A global search strategy of quantum-behaved particle swarm optimization[C]. Cybernetics and Intelligent Systems, 2004, 1: 111- 116.
王道累, 胡松. 基于量子粒子群优化算法的摄像机标定优化方法[J]. 激光与光电子学进展, 2018, 55(12): 121502. Daolei Wang, Song Hu. Optimization Method of Camera Calibration Based on Quantum-Behaved Particle Swarm Optimization Algorithm[J]. Laser & Optoelectronics Progress, 2018, 55(12): 121502.