激光与光电子学进展, 2018, 55 (12): 121502, 网络出版: 2019-08-01   

基于量子粒子群优化算法的摄像机标定优化方法 下载: 832次

Optimization Method of Camera Calibration Based on Quantum-Behaved Particle Swarm Optimization Algorithm
作者单位
上海电力学院能源与机械工程学院, 上海 200090
摘要
提出一种基于量子粒子群算法的摄像机标定优化方法。通过MATLAB软件的标定程序快速获得摄像机的内外参数;利用量子粒子群优化算法,建立了目标函数,进一步优化摄像机参数。实验结果表明,所提优化算法收敛快,精度高,能在一定程度上提高摄像机的标定精度。
Abstract
A method based on quantum-behaved particle swarm algorithm is proposed to optimize camera parameters. The intrinsic and extrinsic parameters of the camera are quickly obtained by the self-calibration program in MATLAB software, and the camera parameters are optimized by using the quantum-behaved particle swarm optimization algorithm. The experimental results show that the optimization algorithm can converge quickly and with high precision, and it can improve the camera calibration accuracy to some extent.

1 引言

随着计算机技术和传感器的飞速发展,机器视觉在工业检测、自动导航、生物医疗、三维(3D)物体重建等方面的应用越来越广泛,而摄像机标定技术是机器视觉研究中非常关键的技术之一。摄像机标定利用物体表面某点在空间的3D坐标与其在图像中对应点的图像坐标之间确立的几何关系,通过实验和计算获取该几何关系的模型参数,从而得到摄像机的内外参数[1]。摄像机的标定参数主要包括内部参数和外部参数,内部参数主要与摄像机的光学特性和内部几何结构有关,外部参数反映的是摄像机摆放位置相对于世界坐标系的3D空间中的位置和方向。摄像机的标定精度直接影响着机器视觉中3D重建的精度,为了提高摄像机的标定精度,需要准确、合理、有效地求解摄像机的模型参数。

为此,很多学者提出了解决方法,应用较为广泛的标定方法有直接线性变换法、Tisa两步标定法[2]和张正友平面标定法[3]。直接线性变换法只需求解线性方程便可求得摄像机模型的参数,没有考虑镜头的畸变,标定精度有限。Tisa两步标定法和张正友平面标定法都是首先通过线性求解函数得到部分参数,再通过考虑镜头的畸变等因素来进行非线性优化,最后得到一个比较精确的结果。但是这两种方法都属于传统的优化算法,存在对初始值比较敏感、收敛性差且易于陷入局部最优值等缺陷。

为了克服传统摄像机标定算法的不足,本文将量子粒子群优化(QPSO)算法用于摄像机标定,对摄像机参数进行了优化,进一步提高了摄像机的标定精度。粒子群优化(PSO)算法具有稳健性高、精度高且易于实现等优点[4-9],QPSO在具有PSO算法优点的同时克服了PSO不能保证全局收敛的局限性,得到的误差比PSO优化算法的更小,结果更稳定可靠。

2 摄像机成像模型

摄像机成像模型由摄像机通过成像透镜将3D场景投影到摄像机二维(2D)平面上,而该投影可用成像变换进行描述[10]。目前,有多种摄像机成像模型,而针孔成像模型原理最简单,使用较为广泛。单目摄像机模型如图1所示。

图 1. 单目摄像机模型

Fig. 1. Model of monocular camera

下载图片 查看所有图片

1) 设空间中某一点P,它在世界坐标系下的坐标为P(Xw,Yw,Zw),在摄像机坐标系OcXcYcZc下的坐标为P(Xc,Yc,Zc),两个坐标系之间的转换关系为

XcYcZc1=RT01XwYwZw1,(1)

式中:R为3×3的正交旋转矩阵;T为3×1的平移向量。摄像机坐标系与世界坐标系之间可以用旋转矩阵R和平移向量T来进行空间刚体位置变换。

2) 摄像机针孔成像模型下的理想透视投影变换为

x=f'·Xc/Zc,y=f'·Yc/Zc,(2)

式中:(x,y)为P点的图像坐标;f'为焦距。

3) P点在以像素为单位的图像像素坐标系与图像物理坐标系之间的转换关系为

u=xdx+u0,v=ydy+v0,(3)

式中:dxdy分别为每一个像素在x轴与y轴上的物理尺寸;(u0,v0)为o点的坐标。

由(1)~(3)式可得

suv1=αγu000βv000010RT01XwYwZw1,(4)

式中:s为固定的比例系数;α,β分别为u轴和v轴方向上的归一化焦距,单位为pixel;γ为切变系数。

实际的镜头并不是理想的透视成像,而是带有不同程度的畸变。主要考虑二阶径向畸变和切向畸变,即

x'=x+δx(x,y)y'=y+δy(x,y),(5)δx(x,y)=x(1+k1r2+k2r4)+2p1xy+p2(r2+2x2)δy(x,y)=y(1+k1r2+k2r4)+2p2xy+p1(r2+2y2)r2=x2+y2,(6)

式中:(x',y')为由理想针孔模型计算得到的图像点坐标值;k1k2为透镜的径向畸变系数;p1p2为透镜的切向畸变系数;δx(x,y),δy(x,y)分别为x,y方向的畸变误差。

3 QPSO算法

PSO算法源于对鸟群觅食行为的观察研究,是由Kennedy等[11]提出的一种基于群体的智能演化算法。PSO算法将每个可行解称为一个“粒子”,这些粒子的体积和质量可忽略不计,每个粒子被看成是一个D维的向量xid=(xi1,xi2,…,xiD)(i=1,2,…,n),并以一定的速度在可行解空间中飞行,其中d为粒子的维数(d=1,2,…,D),n为粒子数。第i个粒子的飞行速度也是一个D维向量,记为vid=(vi1,vi2,…,viD)。在每次迭代过程中,粒子要调整自己的位置和飞行速度,通过个体最优值与群体的全局最优值来更新。第i个粒子的当前个体最优值记为pi=(pi1,pi2,…,piD),粒子群搜索到的当前最好位置称为全局最优值,记为pg=(pg1,pg2,…,pgD)(g=1,2,…,n)。

基本PSO算法的速度和位置的更新公式为

vid(t+1)=vid(t)+c1r1(t)[pid(t)-xid(t)]+c2r2(t)[pg(t)-xid(t)],(7)xid(t+1)=xid(t)+vid(t+1),(8)

式中:t为第t次迭代;c1c2为学习因子;r1(t)和r2(t)为(0,1)之间均匀分布的互相独立的随机数;粒子飞行速度满足vi∈(vmin,vmax),其中vmin为限定的速度最小值,vmax为最大值。

在PSO算法中,随着时间的演化,粒子的运动轨迹是既定的,因此粒子的飞行速度受到一定的限制,粒子的搜索空间减小,搜索范围有限,不能覆盖整个可行解空间。van den Bergh等[12-13]证明了PSO算法并不能够保证全局收敛。在分析了PSO算法的优缺点之后,Sun等[14]提出了一种新的量子行为粒子群智能算法,即以量子力学作为理论基础,对粒子赋予量子行为特性。

在QPSO算法中,粒子在势阱中心δ运动,满足薛定谔方程。在量子空间中,粒子的运动状态用波函数ψ(x,t)来描述。在量子力学中,粒子动力学方程为

ih-tψ(x,t)=-h-22m2ψ(x,t)+V(x)ψ(x,t),(9)

式中:m为粒子的质量; h-为普朗克常量;V(x)为粒子所在的势场。

假定粒子p只有一维,在p点建立一维δ势阱,则有

V(x)=-γδ(x-p)=-γδ(y),y=x-p(10)

将(10)式代入(9)式得到粒子在δ势阱中的定态薛定谔方程为

d2ψdy2+2mh-2[E+γδ(y)]ψ=0,(11)

式中:E为粒子的能量。

对(11)式求解可得

ψ(y)=1Lexp-|y|/L,(L=h-2/)(12)

化简得到最初的QPSO进化方程为

x=p±L2ln(1/u'),(13)

式中:u'为(0,1)区间的均匀分布的随机数。

Sun等[15]对(13)式进行了如下改动:

xij(t+1)=pi,j(t)±α×gBest-xi,jtln[1/ui,j(t)],(14)

式中:α为收缩-扩张系数,主要用来控制粒子进化的速度;xij(t+1)为t+1时刻粒子所在的位置;pi,j(t)为粒子在t时刻出现在p点位置;ui,j(t)为(0,1)区间的均匀分布的随机数;xi,j(t)为t时刻粒子所在的位置;gBest为所有粒子个体最优值的平均值。

i个粒子势阱的中心位置为

pi=r1(t)×pi+r2(t)×pgr1(t)+r2t(15)

gBest的表达式为

gBest=1ni=1npi(t)=1ni=1npi1(t),1ni=1npi2(t),,1ni=1npiDt(16)

4 基于QPSO算法的摄像机参数优化

用MATLAB软件的标定程序对摄像机进行标定,得到摄像机内外参数,结合QPSO算法用C/C++计算机语言进行编程,通过反求投影对角点图像像素点与原始角点图像像素坐标进行残差计算,对摄像机内参数进行优化,具体步骤如下。

1) 利用openCV库中的cvFindCornerSubPix对标定模板进行亚像素角点检测,以获得图片上角点的实际图像像素坐标。

2) 利用MATLAB软件的标定程序得到摄像机的内部参数(α,β,γ,u0,v0)和外部参数(R,T),同时令透镜的切向畸变和径向畸变参数k1=0,k2=0,p1=0,p2=0,并以此结果为初始值,在适当的范围内随机生成n个粒子。生成的粒子有9维,设粒子x=(α,β,γ,u0,v0,k1,k2,p1,p2),用实际测量到的角点图像像素坐标(x,y)和结合QPSO算法的反投影模型得到的图像像素坐标(x',y')之间的残差来建立适应度目标函数:

f=i=1Nmi-m'(α,β,γ,u0,v0,k1,k2,p1,p2,R,T)2,(17)

式中:N为模板上角点的个数;mi为第i个角点的像素坐标值;m'为投影后的像素坐标值。

3) 对粒子群中每一个粒子的当前位置进行初始化。

4) 通过(15)式计算得到δ势阱的中心位置pi(t);利用(16)式计算粒子群的gBest。计算粒子当前位置xi(t)的适应度并由(14) 式更新粒子个体的最优位置。将位置xi(t+1)的适应度与前一次迭代pi(t+1)的适应度进行比较,使得pi(t+1)=min{f[xi(t+1)],f[pi(t)]}。

5) 将pi(t+1)的适应度与全局最优位置pg(t)的适应度进行比较,使得pg(t+1)=min{f[pi(t+1)],f[pg(t)]}。

6) 若目标函数的适应度满足精度要求或迭代次数达到预设最大迭代次数,结束运行,否则返回步骤4)继续运行。

7) 最后得到的全局最优值pg即为QPSO算法的最终标定结果。

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张图片,如图2所示。

实验首先通过MATLAB软件的标定程序对摄像机进行标定,得到摄像机的外部参数和内部参数(α,β,γ,u0,v0),并假定k1=0,k2=0,p1=0,p2=0,以此为初始值在一定范围内均匀分布随机生成50个粒子,同时设定粒子搜索范围。根据相应图片的外部参数和需要优化的内部参数和畸变系数,利用openCV中的反投影函数projectPoints通过对世界坐标点反投影求出图像像素坐标,将求得的图像像素坐标与实际检测得到的像素坐标进行求方差计算。实验中进行QPSO采用的是13张图像中的1张,88个角点全部参与优化计算,已获得更高的准确度,实验最高迭代次数为600。

图 2. 摄像机采集图片(部分图片)

Fig. 2. Pictures collected by camera

下载图片 查看所有图片

表1所示为基于QPSO算法的摄像机标定内部参数优化的各个参数的值,给出了每100次迭代后优化的结果。由表1可以看出,随着迭代次数增大,适应值减小;当迭代次数大于400时,适应值基本趋于稳定;当迭代次数为600时,适应值为0.629795。迭代500次后,基于QPSO算法求解的各个参数都趋于稳定,优化所求得的值即为摄像机的内部参数值。

表 1. 基于QPSO算法求解摄像机的内参数结果

Table 1. Results of camera intrinsic parameter based on QPSO algorithm

IntrinsicparameterNumber of iterations
0100200300400500600
α1892.2867541888.951890.531891.431891.601891.621891.62
β /pixel1891.7691891888.811889.861890.811890.811890.811890.81
γ /pixel00.0155930.0133580.0159910.0122300.0154220.014557
u0 /pixel814.852813.749813.752813.752813.761813.761813.761
v0 /pixel639.585638.468638.487638.509638.525638.526638.526
k10-0.042473-0.074003-0.090816-0.094464-0.0948001-0.094804
k20-0.1958080.0247530.1421050.1611310.1627340.162750
p1 /10-5065.9217.797.42616.74-18.87-18.89
p2 /10-5017.497.981-0.2476-5.251-5.639-5.641
f/2.2009500.9520220.6648510.6306210.6298360.629795

查看所有表

为了证明基于QPSO算法的摄像机内参数优化方法的可靠性,比较了实际检测到的角点图像坐标(u,v)和迭代600次之后通过反投影得到的角点图像坐标(u',v'),给出了前7个角点的像素坐标和反投影误差。为了验证算法的有效性,列出了张正友标定算法得到的反投影坐标和与实际图像角点的误差值,如表2所示。可以看出,张正友标定算法所得到的x轴方向上的平均误差为1.113 pixel,y轴方向上的平均误差为0.971 pixel,整体平均误差为1.042 pixel。所提QPSO算法得到的最大误差为0.117 pixel,x轴方向上的平均误差为0.044 pixel,y 轴方向上的平均误差为0.054 pixel,整体平均误差为0.049 pixel。从实验数据可以看出,所采用的QPSO算法明显提高了标定精度。

表 2. 可靠性数据验证

Table 2. Reliability data verification

Original cornercoordinates (u, v)Projection coordinates and errorsobtained by proposal algorithmProjection coordinates and errors obtainedby Zhang's calibration method[3]
u /pixelv /pixelu' /pixelv' /pixelu-u'v-v'u' /pixelv' /pixelu-u'v-v'
348.550212.366348.659212.4340.1090.068349.685213.4001.1351.034
429.568213.514429.602213.3970.0340.117430.662214.3811.0950.867
510.629214.410510.656214.4190.0270.009511.730215.4061.1010.996
591.706215.491591.801215.5230.0950.032592.880216.5061.1741.015
672.971216.668672.994216.7270.0230.059674.078217.7041.1061.036
754.194218.135754.180218.0440.0140.091755.269219.0151.0750.880
835.281219.478835.290219.4790.0090.001836.388220.4471.1070.969

查看所有表

6 结论

通过MATLAB软件的标定程序获得了摄像机标定参数,将其作为优化算法的初始值,并结合QPSO算法对摄像机参数进行进一步优化,该算法是关于多个参数的复杂非线性函数优化求解问题,量子粒子群算法能够很好地克服传统优化算法对初始值敏感、收敛性差等缺点。研究结果表明,所提的QPSO算法能够有效地提高摄像机的标定精度,算法稳健性高且易与实际问题相结合,可以方便、快速、有效地应用于工程实践。

参考文献

[1] 邱茂林, 马颂德, 李毅. 计算机视觉中摄像机定标综述[J]. 自动化学报, 2000, 26(1): 43-55.

    Qiu M L, Ma S D, Li Y. Overview of camera calibration for computer vision[J]. Acta Automatica Sinica, 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.

[3] Zhang Z. A flexible new technique for camera calibration[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(11): 1330-1334.

[4] 廉小磊, 贺利乐, 张颖. 基于粒子群算法的双目立体视觉系统标定[J]. 计算机工程与应用, 2011, 47(24): 202-204.

    Lian X L, He L L, Zhang Y. Camera calibration of stereo vision system based on PSO[J]. Computer Engineering and Applications, 2011, 47(24): 202-204.

[5] 陈义雄, 梁昔明, 黄亚飞, 等. 量子粒子群混合优化算法求解约束优化问题[J]. 小型微型计算机系统, 2015, 36(2): 296-300.

    Chen Y X, Liang X M, Huang Y F, et al. Hybrid algorithm based on quantum particle swarm optimization for saving constrained optimization problems[J]. Journal of Chinese Computer Systems, 2015, 36(2): 296-300.

[6] Deng L, Lu G, Shao Y Y. et al. A novel camera calibration technique based on differential evolution particle swarm optimization algorithm[J]. Neurocomputing, 2016, 174: 456-465.

[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.

    Guo T Y, Li N N, Liu Y. Optimization of camera internal parameters based on particle swarm algorithm[J]. Laser & Optoelectronics Progress, 2017, 54(11): 111504.

[9] 姚成乾, 陈伟. 基于改进粒子算法的红外弱小目标检测研究[J]. 激光与光电子学进展, 2017, 54(11): 111101.

    Yao C Q, Chen W. Infrared dim target detection based on improved particle swarm optimization algorithm[J]. Laser & Optoelectronics Progress, 2017, 54(11): 111101.

[10] 汪禹, 刘焕海. 二维平面靶标的数码相机标定[J]. 软件导刊, 2011, 10(1): 177-179.

    Wang Y, Liu H H. Digital camera calibration of two-dimensional plane targets[J]. Software Guide, 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.

本文已被 3 篇论文引用
被引统计数据来源于中国光学期刊网
引用该论文: TXT   |   EndNote

相关论文

加载中...

关于本站 Cookie 的使用提示

中国光学期刊网使用基于 cookie 的技术来更好地为您提供各项服务,点击此处了解我们的隐私策略。 如您需继续使用本网站,请您授权我们使用本地 cookie 来保存部分信息。
全站搜索
您最值得信赖的光电行业旗舰网络服务平台!