-
相机标定是基于投影模型,根据已知特征点的三维物理坐标与图像像素坐标的对应关系建立方程组,并通过求解与优化得到相机模型的内外参数的过程。常用的针孔投影模型如图1所示。
图1中:
${O_w} - {X_w}{Y_w}{Z_w}$ 为世界坐标系;$o - xy$ 为二维图像物理坐标系;${O_c} - {X_c}{Y_c}{Z_c}$ 为相机坐标系;$o - uv$ 为二维图像像素坐标系。在理想小孔成像模型下,世界坐标系下一点$P\left( {{X_w},{Y_w},{Z_w}} \right)$ 可以通过下式转换到二维图像像素坐标系:$$s\left( {\begin{array}{*{20}{c}} \mu \\ \nu \\ 1 \end{array}} \right) = \left( {\begin{array}{*{20}{c}} \alpha &\gamma &{{\mu _0}}&0 \\ 0&\beta &{{\nu _0}}&0 \\ 0&0&1&0 \end{array}} \right)\left( {\begin{array}{*{20}{c}} {{R}}&{{t}} \\ 0&1 \end{array}} \right)\left( {\begin{array}{*{20}{c}} {{X_w}} \\ {{Y_w}} \\ {{Z_w}} \\ 1 \end{array}} \right)$$ (1) 式中:
${{R}}$ 与${{t}}$ 分别为${O_w} - {X_w}{Y_w}{Z_w}$ 坐标系与${O_c} - {X_c}{Y_c}{Z_c}$ 坐标系间的旋转矩阵和平移向量;$s$ 为尺度因子;$\;\mu $ 和$\nu $ 为点$P$ 的二维像平面像素坐标;$\alpha $ 与$\beta $ 分别为${X_c}$ 与${Y_c}$ 轴方向上的等效焦距;${\mu _0}$ 和${\nu _0}$ 为光轴与图像平面的交点(主点)坐标;参数$\gamma $ 为${X_c}$ 与${Y_c}$ 像素坐标轴之间夹角的扭曲系数。然而在实际成像中,由于镜头畸变的影响,空间点
$P$ 在像平面上的实际投影点$p$ 会偏离理想位置点$\hat p$ 。为了精确地描述视觉投影关系,在成像模型中需要考虑镜头畸变系数带来的影响。引入二阶径向畸变和切向畸变,则考虑畸变系数的目标成像实际物理坐标可以修正为:$$\left\{ \begin{array}{l} {x_d} = x + x\left( {{k_1}{r^2} + {k_2}{r^4}} \right) + 2{\rho _1}xy + {\rho _2}\left( {{r^2} + 2{x^2}} \right) \\ {y_d} = y + y\left( {{k_1}{r^2} + {k_2}{r^4}} \right) + 2{\rho _2}xy + {\rho _1}\left( {{r^2} + 2{y^2}} \right) \end{array} \right.$$ (2) 式中:
${r^2} = {x^2} + {y^2}$ ;$x$ 和$y$ 为成像点的实际物理坐标值;${x_d}$ 和${y_d}$ 为引入畸变矫正后的物理图像坐标;${k_1}$ 和${k_2}$ 为径向畸变系数;${\rho _1}$ 和${\rho _2}$ 为切向畸变系数。然而在空间目标位姿测量过程中,对于相机的标定存在很多干扰因素,如图2所示,首先采集的空间目标图像背景光强很容易陷入过饱和或光强不足状态,这样就会使原本有限数量的特征点进一步减少,而且剩余特征点的空间分布也具有随机性,容易致使标定参数达不到最优或陷入服从剩余特征点分布的局部最优。
此外,空间环境背景、光强变化以及载荷分辨率限制等因素的影响,使目标特征点融入不同水平的噪声,标定算法的抗噪性能也是一大考量指标。因此,研究一种稳定性强、能够全局收敛的相机参数标定方法成为空间目标位姿测量的重点。
-
为了优化相机标定参数,实现重复标定结果的稳定性,可以通过不同位姿下标定板上多个特征点来建立超定方程组。因此,可以根据相机非线性成像模型建立
$m$ 幅图像、$n$ 个特征点的重投影误差目标函数,对相机参数标定问题可以描述如下:$${\varXi _{\min }} = \sum\limits_{i = 1}^m {\sum\limits_{j = 1}^n {{{\left\| {{{{m}}_{ij}} - {\cal{T}}\left( {{{A}},{\cal{K}},{{{R}}_i},{{{t}}_i},{{{M}}_j}} \right)} \right\|}^2}} } $$ (3) 式中:
${{{m}}_{ij}}$ 为第$i$ 幅图像上第$j$ 个特征点的像方坐标;${\cal{T}}$ 为相机投影变换方程;${{A}}$ 为相机内参矩阵,矩阵元素包括等效焦距、主点坐标以及倾斜因子等参数;${{{R}}_i},{{{t}}_i}$ 为每幅图像对应的外参矩阵;${\cal{K}}$ 为畸变系数;${{{M}}_j}$ 为标定板上第$j$ 个特征点的物方三维坐标。对于图2中的双目相机标定,需要得到左相机坐标系
${O_l} - {X_l}{Y_l}{Z_l}$ 与右相机坐标系${O_r} - {X_r}{Y_r}{Z_r}$ 之间的关系矩阵${{{R}}_c}$ 和${{{t}}_c}$ ,可以通过公式(4)求得:$$\left\{ \begin{array}{l} {{{R}}_c} = {{{R}}_r}{{R}}_l^{ - 1}\\ {{{t}}_c} = {{{t}}_r} - {{{R}}_r}{{R}}_l^{ - 1}{{{t}}_l} \end{array} \right.$$ (4) 式中:
$\left( {{{{R}}_l},{{{t}}_l}} \right)$ 和$\left( {{{{R}}_r},{{{t}}_r}} \right)$ 分别为双目系统中左、右相机的外参矩阵。在标定图像的采集过程中,需要保证标定板位姿变化的多样性,即
$\left( {{{{R}}_{e1}},{{{t}}_{e1}}} \right), \cdots ,\left( {{{{R}}_{en}},{{{t}}_{en}}} \right)$ 是不同的。然后可以通过非线性迭代法对相机标定参数进行求解和优化,找到目标函数的全局最优解,即解空间中第$i$ 个元素的第$j$ 维分量$x_{ij}^* \in \left[ {x_{ij}^{\min },x_{ij}^{\max }} \right]$ ,且$f(x_i^*)$ 不劣于可行域内任意解${x_i}$ 对应的目标函数$f({x_i})$ ,可以表示为:$f(x_i^*) \leqslant f({x_i})$ 。 -
基于种群进化的PSO算法已被广泛应用于解决多维优化问题,种群中的每一个粒子由
$D$ 维向量构成,可以记为${{{x}}_i} = \left[ {{x_{i1}},{x_{i2}},\cdots,{x_{iD}}} \right]$ ,其中$i = 1,2,\cdots,{N_p}$ ,${N_p}$ 表示种群的规模,会直接影响PSO算法的搜索能力和搜索最优值的计算量;同时这些粒子的运动速度也是由D维向量构成,即${{{v}}_i} = \left[ {{v_{i1}},{v_{i2}},\cdots,{v_{iD}}} \right]$ 。在进化过程中,种群中的所有粒子均按照自身速度和适应度不断更新。令${{{P}}_i}(t)$ 为单个粒子在进化过程中得到的最优解,$t$ 表示更新次数;${{{P}}_g}(t)$ 为每次进化后解空间内种群的全局最优解。在每一次迭代过程中,粒子群通过跟踪个体极值和全局极值不断进行自我更新。在$D$ 维目标搜索空间中,PSO算法可以通过公式(5)、(6)进行迭代更新:$$ \begin{split} {{{v}}_i}(t + 1) = & w{{{v}}_i}(t) + {c_1}{r_1}\left( {{{{P}}_i}(t) - {x_i}(t)} \right) +\\ & {c_2}{r_2}\left( {{{{P}}_g}(t) - {x_i}(t)} \right) \\ \end{split} $$ (5) $${{{x}}_i}(t + 1) = {{{x}}_i}(t) + {{{v}}_i}(t + 1)$$ (6) 式中:
$w$ 为惯性权重系数,能够对PSO算法的全局搜索能力和局部搜索能力的平衡进行调整;${r_1}$ 与${r_2}$ 为介于0与1之间且服从均值分布的随机数;${c_1}$ 与${c_2}$ 为学习因子;$ {v_{i}} \in \left[ {{v_{\min }},{v_{\max }}} \right] $ ;迭代终止条件可以通过最大迭代次数或最小适应值阈值决定。 -
为了克服传统差分进化算法容易陷入局部最优解的弊端,采用WDE算法能够寻求局部搜索和全局搜索之间的平衡。
不失一般性,令种群个数
${i_0} = [1:2{N_p}]$ 与个体的维数${j_0} = [1:D]$ ,记$i = \left[ {1,\cdots,\tau ,{i^ * },\cdots,{N_p}} \right]$ ,其中$i,\;{i_0}, $ $ {j_0} \in {\mathbb{Z}^ + }$ ;则种群${{{P}}_{({i_0},{j_0})}}$ 初始化如下:$${{{P}}_{({i_0},{j_0})}} \sim {{U}}\left( {lo{w_{({j_0})}},\;u{p_{({i_0})}}} \right)\;\left| {\;\left( {\underbrace {\;\;2{N_p}\;\;}_{rows},\underbrace {\;\;\;D\;\;\;}_{colums}} \right)\; \leftarrow size({{P}})} \right.$$ (7) 式中:
${N_p}$ 为运行模式下的种群中变量个体的数量;$D$ 为个体的维数;${{U}}$ 为初始参数范围;$lo{w_{({j_0})}}$ 和$u{p_{({i_0})}}$ 分别为参数的下限值和上限值。种群
${{{P}}_{({i_0})}}$ 的最小适应度值可以通过公式(8)中最小目标函数${\cal{F}}$ 计算:$$fit{{{P}}_{({i_0})}} = {\cal{F}}({{{P}}_{({i_0})}})$$ (8) WDE算法要先从数量为
$2{N_p}$ 的个体中随机选择${N_p}$ 个组成子种群${{{P}}_{Sub}}$ ,子种群中个体数量与维度为$\left( {\underbrace {\;\;\;{N_p}\;\;\;}_{rows},\underbrace {\;\;\;D\;\;\;}_{colums}} \right)$ $ \leftarrow size({{{P}}_{Sub}})$ 。通过公式(9)进行子种群${{{P}}_{Sub}}$ 的随机选择与生成。$${{{P}}_{Sub}} = {{{P}}_{(k)}}\;|\;\left\{ {\xi = {j_{(1:{N_p})}}} \right\}\;|\;j = randperm\left( {1:2{N_p}} \right)$$ (9) 式中:
$randperm( \cdot )$ 表示对个体元素标号的重新随机排序。随机选取的子种群
${{{P}}_{Sub}}$ 的目标函数值可以通过公式(10)计算:$$fit{{{P}}_{Sub}} = fit{{{P}}_{(\xi )}}$$ (10) 种群的加权操作在每一代进化过程中产生临时种群
$Temp{{{P}}_{index = 1:N}} = \left[ \begin{array}{l} Temp{{{P}}_1} \\ ... \\ Temp{{{P}}_N} \\ \end{array} \right]$ :$$Temp{{{P}}_{(index)}} = \sum {\left( {w \odot {{{P}}_{(l)}}} \right)} $$ (11) 式中:
$l$ 为通过$randperm\;(1:2{N_p})$ 排序后索引号为$\left( {{N_p} + 1:2{N_p}} \right)$ 的个体标号;运算符$ \odot $ 表示矩阵间的Hadamard乘积;$index = 1:{N_p}$ ,$index \in {\mathbb{Z}^ + }$ 。此外,$w* = \xi _{(N)}^3\;{\rm{|}}\;[{N_p},1] = size(w*)$ ,接着通过公式$w*: = \dfrac{{w*}}{{ \displaystyle\sum {w*} }}$ 进行赋值$w*$ ,最后权重系数矩阵可以表示为${{w}} = $ $ w* \times {[1]_{(1,D)}} $ 。变异过程中,二值映射矩阵
${{M}}$ 初始化为${{{M}}_{(1:{N_p},1:D)}} = $ $ 0$ ;在每个迭代循环过程中通过公式(12)更新${{M}}$ 矩阵:$${{{M}}_{(index,\;J)}}: = 1$$ (12) 式中:
$J = V\left( {1:\left\lceil {H \times D} \right\rceil } \right)\;{\rm{|}}\;V = randperm({j_0})$ ,$\left\lceil {} \right\rceil $ 表示向上取整。令$\alpha ,\beta \sim U(0,1)$ ,${\tilde k_{( \cdot )}} \sim U(0,1)$ 且${\tilde k_{( \cdot )}} \ne 0$ ,则$H$ 通过公式(13)来进行选择:$$ {\rm{if}}\;\;\alpha < \beta\;\;{\rm{then}}\;\;H = \tilde k_{(1)}^3\;\;{\rm{else}}\;\;H = 1 - \tilde k_{(1)}^3 $$ (13) 其中,运算符
$( \cdot ) = si{\textit{z}}e\left( {{{\tilde k}_{( \cdot )}}} \right)$ ,保证维数一致。缩放因子是控制种群进化率的正实数,对算法的全局寻优能力起到调控作用。在WDE算法中,缩放因子
${{F}}$ 使用公式(14)产生:$$\left\{ {\begin{array}{*{20}{c}} {{\rm{if}}\;\alpha < \beta }&\!{{\rm{then}}}&\!\!\!{{{F}} \!= \!{{\left[ {\lambda _{(D)}^3} \right]}^\prime }}&\!\!{\left[ {\underbrace {\;\;1\;\;}_{rows},\underbrace {\;\;D\;\;}_{colums}} \right] \!= \!si{\textit{z}}e({{F}})} \\ \!{}&{{\rm{else}}}&\!\!\!{{{F}} \!=\! \left( {\lambda _{({N_p})}^3 \times \Delta } \right)}\!\!&{\left[ {\underbrace {\;\;{N_p}\;\;}_{rows},\underbrace {\;\;D\;\;}_{colums}} \right] \!= \!si{\textit{z}}e({{F}})} \end{array}} \right.$$ (14) 其中,
$\Delta {\rm{ = }}{\left[ 1 \right]_{(1,D)}}$ ;${\lambda _{( \cdot )}} \sim N(0,1)$ ,即服从标准正态分布。加权差分进化算法中,变异向量
${{\varPsi}} $ 通过公式(15)进行计算:$$ \begin{split} {{\varPsi }} = &{{{P}}_{Sub}} + {{F}} \odot {{M}} \odot \left( {Temp{{P}} - {{{P}}_{Sub(m)}}} \right)\;\\ &|\;m = randperm(i)\;|\;m \ne \left[ {1:{N_p}} \right] \end{split} $$ (15) 根据贪婪选择法则,
${{{P}}_{Sub}}$ 和$fit{{{P}}_{Sub}}$ 通过${{\varPsi}} $ 和$fit{{\varPsi}} $ 在上下界范围内进行更新。并通过使用公式(16)中的规则来完成更新:$$ \begin{split} &{\rm{if}}\;\left( {fit{{{\varPsi}} _{(i*)}} < fit{{{P}}_{Sub(i*)}}} \right)\;{\rm{then}}\;\left[ {{{{P}}_{Sub(i*)}},\;fit{{{P}}_{Sub(i*)}}} \right]: = \\ & \left[ {{{{\varPsi}} _{(i*)}},\;fit{{{\varPsi}} _{(i*)}}} \right]\;{\rm{|}}\;i* \in i \\ \end{split} $$ (16) 更新
${{{P}}_{Sub}}$ 和$fit{{{P}}_{Sub}}$ 是为了用来更新${{{P}}_{(l)}}$ 和$fit{{{P}}_{(l)}}$ ,更新法则如下:$$ \left[ {{{{P}}_{(l)}},fit{{{P}}_{(l)}}} \right]: = \left[ {{{{P}}_{Sub}},fit{{{P}}_{Sub}}} \right] $$ (17) 最后得到的全局最优解:
$$\left[ {gmin,gbest} \right] = \left[ {fit{{{P}}_{(\tau )}},{{{P}}_{(\tau )}}} \right]\;|\;fit{{{P}}_{(\tau )}}{\rm{ = }}\min (fit{{P}})$$ (18) 其中,
$ \tau \in i$ 。可以看出,WDE算法扩大了种群搜索空间的范围,避免了新种群进化过程中的逐渐单一性和陷入早熟等问题。
-
差分进化算法的进化准则是基于适应性信息的,不需要函数可导、连续等附加条件。此外,差分进化具有内在的并行性,适用于大规模并行分布处理。但是差分进化算法没有利用个体的先验知识,即没有机制来存储先前的过程并使用有关搜索空间的全局信息。而粒子群优化算法是基于自身及其他粒子的经验进行决策,所以能够有效弥补差分进化算法的不足。
此节将WDE算法和PSO算法进行融合,引入自适应判断因子来控制每一次迭代过程中粒子群优化和差分进化算法的使用比例,按概率规律考虑对个体使用PSO算法或WDE算法来进行更新,这样保证交叉概率越大,新个体从变异个体继承的信息越多,种群多样性越丰富。判断因子用来选择个体的更新方式,其计算方式为:
$${\eta _G}{\rm{ = }}{\eta _0}\frac{2}{\pi } {\rm{arccot}} \frac{{{G_{\max }} - G + 1}}{{{G^2}}}$$ (19) 式中:
${G_{\max }}$ 为总迭代次数;$G$ 为当前进化代数且$G \in \left[ {1,{G_{\max }}} \right]$ ;${\eta _0}$ 为常数。那么当第
$i$ 个个体产生新个体时,首先生成一个${S_i} \sim [0,1]$ 的随机数,如果${S_i}$ 小于${\eta _G}$ ,则使用WDE算法更新个体,否则采用粒子群优化算法进行更新。根据公式(19)可知,判断因子随着迭代次数的增加而逐渐增大,这样在前期搜索过程中,主要通过PSO算法寻找解空间,而在搜索后期,主要使用WDE算法进行精细搜索,以求得精确度高的非劣解集。另外,寻优前期的WDE算法可以对个体进行变异操作,防止粒子群优化算法搜索时陷入局部最优解。公式(19)结合随机数
${S_i}$ 的作用使得以概率的方式来进行个体更新,保证每一次迭代中两种算法的使用比例更好地符合统计规律,充分发挥判断因子对种群智能进化算法的调控作用。此外,通过特征点实际像素坐标与重投影模型得到的图像像素坐标之间的残差建立文中的最小目标函数:
$$F{\rm{ = }}\sum\limits_{i = 1}^N {\sum\limits_{j = 1}^M {\left\| {{m_{ij}} - m'\left( {\alpha ,\beta ,\gamma ,{\mu _0},{\upsilon _0},{\kappa _1},{\kappa _2},{\rho _1},{\rho _2},{{{R}}_i},{{{t}}_i},{P_j}} \right)} \right\|} } $$ (20) 式中:
$N$ 为采集的标定图像数量;$M$ 为标定板上特征点的个数;${m_{ij}}$ 为第$i$ 幅图像上第$j$ 个特征点像素坐标;${P_j}$ 为第$j$ 个特征点空间物理坐标;${{{R}}_i},{{{t}}_i}$ 分别为第$i$ 幅图像对应的旋转和平移矩阵。基于双变异加权差分进化粒子群优化标定(WDEPSO)算法的相机参数标定流程图如图3所示。
-
仿真实验中相机模型参数设置为:主点坐标
${c_x} = 530$ ,${c_y} = 480$ ;等效焦距${f_x} = 260$ ,${f_y} = 260$ ;倾斜因子$\gamma $ = 0;径向畸变系数${k_1} = {k_2} = 2.2 \times {10^{ - 3}}$ ;切向畸变系数$\;{\rho _1} = {\rho _2} = 1.6 \times {10^{ - 5}}$ 。通过Matlab 2017b在1.6 m ×1.6 m×1.6 m空间范围内随机生成合成数据,由690个标志点和10个控制点形成一个用于校准的球形空间,如图4所示。为了模拟实际情况,将5种不同的均方根(RMS)符合正态分布的随机噪声添加到控制点空间坐标中。对于仿真目标图像点坐标,添加RMS从0.0~1.4范围内递增的像素噪声。通过空间点的重构误差来验证文中方法的有效性和鲁棒性。分别使用传统方法和文中方法进行测试,空间点重构结果误差如图5所示。
图 5 空间点重构误差。(a) 传统方法;(b) 文中方法
Figure 5. Reconstruction error of spatial points. (a) By traditional method; (b) By the proposed method
从图5(a)和(b)可以看出,当添加的像素噪声水平很小时,两种算法都具有很高的重构精度。但随着图像噪声水平的增大,文中方法获得的重构误差明显小于传统方法的重构结果,由此可见文中算法对图像噪声敏感度较低,具有一定的噪声抵制能力,并且相机参数的标定精度在噪声水平相对较大的情况下仍可以保持相对较好的稳定性。
为了验证仿真标定结果的精度,分别计算图4中700个合成点在
$x$ 方向和$y$ 方向的重投影均方根误差,计算方式如下:$$ {\sigma _\mu }{\rm{ = }}\sqrt {\frac{{ \displaystyle\sum\limits_{i = 1}^N {{{\left( {{\mu _{{{p'}_i}}} - {\mu _{{p_i}}}} \right)}^2}} }}{{N - 1}}} ,\;\;\;{\sigma _\nu }{\rm{ = }}\sqrt {\frac{{\displaystyle\sum\limits_{i = 1}^N {{{\left( {{\nu _{{{p'}_i}}} - {\nu _{{p_i}}}} \right)}^2}} }}{{N - 1}}} $$ (21) 式中:
${p'_i}$ 为第$i$ 个合成点的重投影像素坐标,${p_i}$ 为对应的真实坐标;$N$ 为合成点的数量。重投影误差分布如图6所示,在
$\mu $ 方向和$\nu $ 方向上的重投影误差均能控制在±0.08 pixel范围内,加权双变异差分进化粒子群算法能够保证粒子变异的多样性,并最终实现了精度较高的全局收敛效果。 -
相机实际标定的精度会受到圆心提取误差、标定范围、外界光照条件、标定板精度、镜头畸变以及其他扰动因素的影响,因此需要通过实际标定来检测文中方法的效果。所采用的相机图像分辨率为1680×1710 pixels,像元尺寸大小为
${\rm{d}}u \times {\rm{d}}v$ =7.4 μm×7.4 μm,相机视场大小与焦距范围均具有可调范围,实验中标定空间范围约为2 m×2 m×1.5 m。采用附有99个圆形标志点的平面标定板完成文中标定方法的验证,如图7(a)所示。图 7 平面标定板。(a) 空间尺寸;(b) 圆形标志点提取及编码
Figure 7. Planar calibration plate. (a) Spatial size; (b) Extraction and coding of circular mark points
调整平面标定板不同位置和姿态,尽可能覆盖测量空间,采集的平面标定板图像分布如图7所示。通过椭圆拟合算法对圆心进行高精度坐标提取,将提取出的圆心坐标依次进行编码,如图7(b)所示。此次标定实验共采集24帧图像,位姿分布情况如图8所示。
根据非线性成像模型,设定标定内参的9维粒子
${{x}} = \left[ {\alpha ,\gamma ,{\mu _0},\beta ,{\nu _0},{k_1},{k_2},{\rho _1},{\rho _2}} \right]$ 范围为$\left[ {{{{x}}_{{\rm{up}}}},{{{x}}_{{\rm{down}}}}} \right]$ ,其中上限值${{{x}}_{{\rm{up}}}}{\rm{ = }}$ (5000, 1, 1000, 5000, 1000, 1, 1, 1, 1);下限值${{{x}}_{{\rm{down}}}}{\rm{ = }}$ (2000, 0, 600, 2000, 600, −1,−1, −1, −1)。PSO算法中令全局学习因子${c_{\max }}{\rm{ = }}2.0$ ,${c_{\min }}{\rm{ = }}1.4$ ,最大迭代次数${t_{\max }}$ 设置为10000。在WDE算法更新时,$9$ 维粒子${{X}}$ 矩阵中元素初值范围为[2 000, 5000],其中主点取值范围是对应元素$\tilde X/3$ ;畸变系数取值范围是对应元素$(\tilde X/2000{\rm{ - }}1.75) \times 1.34$ ;此外,${\eta _0}$ 取值为0.85。通过文中方法和张氏标定法得到的相机标定参数如表1所示。表 1 相机参数标定优化结果对比
Table 1. Comparison of camera parameter calibration optimization results
Parameters Zhang Zhengyou method WDEPSO method $\alpha $ 3060.45 3062.90 ${\mu _0}$ 845.42 845.38 $\gamma $ 0.0000 0.0000 $\beta $ 3060.61 3062.88 ${v_0}$ 900.43 900.14 ${k_1}$ −0.1749 −0.2170 ${k_2}$ 0.1745 0.3574 ${\rho _1}$ 0.0000 −0.0011 ${\rho _2}$ 0.0000 0.0006 ObjFnc 879.26 837.81 从表1中可以看出,张正友标定法与WDEPSO方法均获得了稳定的标定结果,但文中方法优化得到的误差目标函数值为837.81,小于张正友标定法得到的879.26,在数值上明显优于张正友标定法,结果显示WDEPSO算法可以获得更高的精度。
接着通过图9所示的标准杆进行双目相机标定结果的精度验证,将标准杆放置在测量视场内,在标准杆图像采集完成后,分别通过张正友标定法和文中方法得到的参数来重构标准杆两端标志点的坐标,然后计算标准杆的实际长度,并与标准值进行对比,多次测量的平均结果如表2所示。
表 2 标准杆长度测量误差(单位:mm)
Table 2. Error of standard gague measurement (Unit:mm)
Object Measuring distance Standard length Absolute error Zhang Zhengyou method Proposed method Zhang Zhengyou method Proposed method Standard gague 1002.047 1001.205 1001.595 0.452 0.390 表2中显示通过WDEPSO算法将测量误差值控制在0.40 mm以内,明显小于张正友标定法测量结果,可以看出文中算法在测量精度上取得了一定的优势。这是因为PSO算法在求解优化问题的初期收敛速度较快,但易陷入局部最优;而WDE算法具有维持种群多样性和探索局部搜索的能力,通过双更新策略将两者结合,利用WDE操作得到的个体去引导PSO操作中的个体的进化过程,提高了标定算法的全局优化能力。
-
为了进一步验证文中方法的标定效果,用标定出的相机内外参数依次对空间三自由度运动目标姿态角进行测量重构,双目视觉测量系统架构如图10所示。
图10中,空间目标模拟器俯仰、偏航和滚转角分别能够在[−90°, 90°]、[−180°, 180°]、[−180°, 180°]范围内运行,通过标定后的相机参数对飞行器模拟转台上五个合作目标点进行分轴运动的姿态重构。设定转台带动标尺的俯仰、偏航和滚转角分别从初始位置运动到70°,间隔为10°。为了清晰再现目标运动情况,选定一点的圆周轨迹与姿态角进行合成,重构出运动三个方向上的空间分布如图11所示。
图 11 空间目标姿态角重构。(a) 滚转角;(b) 俯仰角;(c) 偏航角
Figure 11. Reconstruction of space target attitude angle. (a) Roll angle; (b) Pitch angle; (c) Yaw angle
从图11中可以直观看出,重构出的姿态分布情况与飞行器模拟转台的实际运行情况是一致的,同时,即便在大幅度角度变化情况下,基于文中标定方法获取的标定参数进行的空间姿态角解算依然具有很高的稳定性,没有姿态异常与过估计的情况出现。测量的具体角度误差如图12所示。
图 12 姿态角测量误差与角度幅度的关系
Figure 12. The relationship between attitude angle measurement error and angle amplitude
由图12可知,通过对比计算姿态角的重构值与真实值,在[0°~70°]范围内,测量误差随着姿态角角度的增大而增大,但趋势不是特别明显。因为分别对三个方向上的运动角度进行测量,所以对滚转角测量时,目标面法线方向与相机光轴夹角几乎不变,旋转范围内不会影响特征点的提取精度,因此滚转角的测量误差不会随着滚转角变化而明显变化。总体来看,飞行器模拟转台的姿态角总体测量误差均被控制在0.30°以内,小角度范围运动精度在0.20°以内,能够满足实际项目的应用需求。
Binocular camera calibration based on dual update strategy weighted differential evolution particle swarm optimization
-
摘要: 针对空间目标位姿测量下的相机多参数标定问题,提出基于双更新策略加权差分进化粒子群优化的相机参数标定方法。通过引入自适应判断因子来控制每一次迭代过程中加权差分进化(WDE)算法和粒子群优化(PSO)算法的调用比例,根据概率规律考虑对个体使用PSO算法或WDE算法来进行更新,并通过信息交流机制利用WDE操作得到的个体去引导PSO操作中的个体进化过程,所提出的WDEPSO算法能够保证种群个体进化的多样性和有效性,并且与相机非线性标定模型参数进行耦合,同步实现相机内外参数的组合非线性、全局连续优化,克服目标空间背景饱和光强造成的有限特征点失效引发的局部收敛问题。实验表明,文中方法优化得到的目标函数值更小,获得了较高的标定精度;利用标定参数得到的标准杆测量精度优于0.40 mm,目标大幅度角运动状态下的重构姿态误差小于0.30°,可重复性测量结果稳定。Abstract: Aiming at the problem of camera calibration with multi-parameters in space target pose measurement, a novel calibration method based on dual update strategy weighted differential evolution particle swarm optimization was proposed . An adaptive judgment factor was constructed to control the usage proportion of weighted differential evolution (WDE) algorithm and particle swarm optimization (PSO) algorithm in each iteration process, which allowed the PSO or WDE algorithm to update individuals according to the probability laws. Moreover, through the information exchange mechanism, the individual obtained by the WDE operation was adopted to guide the individual evolution process operated by PSO algorithm. The proposed WDEPSO algorithm could ensure the diversity and effectiveness of the individual evolution of the population, and it was coupled with the camera nonlinear calibration model and parameters. Consequently, the proposed method could simultaneously realize the combined nonlinear and global continuous optimization, which overcomed the local convergence problem caused by the limited feature points arise from the saturated light intensity of the target space ambient. Experiments suggest that the objective function value optimized by the WDEPSO method is smaller, and the proposed method obtains the higher calibration accuracy. The standard gague measurement error obtained by the calibration parameters is less than 0.40 mm, the reconstruction attitude accuracy of the target under large angular motion is better than 0.30°, as well as the repeatability measurement results are stable.
-
表 1 相机参数标定优化结果对比
Table 1. Comparison of camera parameter calibration optimization results
Parameters Zhang Zhengyou method WDEPSO method $\alpha $ 3060.45 3062.90 ${\mu _0}$ 845.42 845.38 $\gamma $ 0.0000 0.0000 $\beta $ 3060.61 3062.88 ${v_0}$ 900.43 900.14 ${k_1}$ −0.1749 −0.2170 ${k_2}$ 0.1745 0.3574 ${\rho _1}$ 0.0000 −0.0011 ${\rho _2}$ 0.0000 0.0006 ObjFnc 879.26 837.81 表 2 标准杆长度测量误差(单位:mm)
Table 2. Error of standard gague measurement (Unit:mm)
Object Measuring distance Standard length Absolute error Zhang Zhengyou method Proposed method Zhang Zhengyou method Proposed method Standard gague 1002.047 1001.205 1001.595 0.452 0.390 -
[1] Singh A K, Baranwal N, Richter K F. An empirical review of calibration techniques for the pepper humanoid robot’s RGB and depth camera [J]. Advances in Intelligent Systems and Computing, 2020, 1038: 1026-1038. [2] Liu W, Li X, Ma X, et al. Camera calibration method for close range large field of view camera based on compound target [J]. Infrared and Laser Engineering, 2016, 45(7): 0717005. (in Chinese) doi: 10.3788/irla201645.0717005 [3] Huo J, Zhang G Y, Cui J S, et al. Corrected calibration algorithm with fixed constraint relationship and error compensation technique for binocular vision measurement system [J]. Applied Optics, 2018, 57(19): 5492-5504. doi: 10.1364/AO.57.005492 [4] Abdel Y I, Karara H M. Direct linear transformation from comparator coordinates into object space coordinates in close-range photogrammetry [C]//Proceedings of the Symposium on Close-Range Photogrammetry, 1971: 1-18. [5] Tsai R Y. An efficient and accurate camera calibration technique for 3D machine vision [C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition, 1986: 364-374. [6] Zhang Z Y. A flexible new technique for camera calibration[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(11): 1330-1334. [7] Zhang J, Yan B, Li L, et al. Automatic geometric calibration method based on high frequency energy for CT [J]. Infrared and Laser Engineering, 2013, 42(9): 2540-2546. (in Chinese) doi: 10.3969/j.issn.1007-2276.2013.09.044 [8] Merras M, El A N, Saaidi A, et al. A new method of camera self-calibration with varying intrinsicparameters using an improved genetic algorithm [C]//Proceedings of the International Conference on Intelligent Systems: Theories and Applications, 2013. [9] Gao Z Y, Gu Y Y, Liu Y H, et al. Self-calibration based on simplified brown non-linear camera model and modified BFGS algorithm [J]. Optics and Precision Engineering, 2017, 25(9): 2532-2540. (in Chinese) doi: 10.3788/OPE.20172509.2532 [10] Schmalz C, Forster F, Angelopoulou E. Camera calibration: Active versus passive targets [J]. Optical Engineering, 2011, 50(11): 113601. doi: 10.1117/1.3643726 [11] Chen T F, Ma Z, Wu X. Calibration of light plane in line structured light sensor based on active vision [J]. Optics and Precision Engineering, 2012, 20(2): 256-263. (in Chinese) doi: 10.3788/OPE.20122002.0256 [12] Raza S N, Raza U H, Lee S G, et al. Artificial intelligence based camera calibration [C]//Proceedings of the International Wireless Communications and Mobile Computing Conference, 2019: 1564-1569. [13] Yang L X, Tian C, Vaishampayan V A, et al. An automatic grid corner extraction technique for camera calibration [C]//Proceedings of the International Conference on Image Processing, 2012: 349-352. [14] Zou P P, Zhang Z L, Wang P, et al. Binocular camera calibration based on collinear vector and plane homography [J]. Acta Optica Sinica, 2017, 37(11): 1115006. (in Chinese) doi: 10.3788/AOS201737.1115006 [15] Cui Y, Zhou F Q, Wang Y X, et al. Precise calibration of binocular vision system used for vision measurement [J]. Optics Express, 2014, 22(8): 9134-9149. doi: 10.1364/OE.22.009134 [16] Xue J P, Su X Y, Xiao Y L, et al. A new algorithm for bundle adjustment based on stereo vision [J]. Journal of Optoelectronics·Laser, 2011, 22(6): 888-892. (in Chinese) [17] Liu X, Liu Z Y, Duan G F, et al. Precise and robust binocular camera calibration based on multiple constraints [J]. Applied Optics, 2018, 57(18): 5130-5140. doi: 10.1364/AO.57.005130 [18] Yang X L, Fang S P. Eccentricity error compensation for geometric camera calibration based on circular features [J]. Measurement Science and Technology, 2014, 25(2): 025007. doi: 10.1088/0957-0233/25/2/025007 [19] Zhou J, Zhang X B, Bai Y L. Mutation mechanism particle swarm optimization for camera internal parameter calibration [J]. Optics and Precision Engineering, 2019, 27(8): 1745-1753. (in Chinese) doi: 10.3788/OPE.20192708.1745 [20] 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. doi: 10.1016/j.neucom.2015.03.119 [21] Zhang Q, Wang X, Li H B. Calibration algorithm of underwater imaging system based on PSO [J]. Acta Photonica Sinica, 2014, 43(11): 0111004. (in Chinese) [22] Zhang W M, Zhong Y X. Camera calibration based on improved differential evolution algorithm [J]. Optical Technique, 2004, 30(6): 720-723. (in Chinese) doi: 10.3321/j.issn:1002-1582.2004.06.011 [23] De L F, Luis G, Schütze O. Direct calibration by fitting of cuboids to a single image using differential evolution [J]. International Journal of Computer Vision, 2009, 81(2): 119-127. doi: 10.1007/s11263-008-0183-z [24] Kang L, Wu L D, Chen X D, et al. Practical structure and motion recovery from two uncalibrated images using constrained adaptive differential evolution [J]. Pattern Recognition, 2013, 46(5): 1466-1484. doi: 10.1016/j.patcog.2012.10.028 [25] Song J Y, Chi Z X, Zhang X P, et al. Camera internal parameter optimization based on salp swarm algorithm and self-adaptive differential evolution [J]. Automation & Instrumentation, 2020, 35(4): 1-10. (in Chinese)