-
在相机标定中,为了更好的阐述三维空间中物理点与二维图像中像素点之间的对应关系,构造了四个坐标系来描述摄像机的真实成像过程:图像像素坐标系,图像物理坐标系,摄像机坐标系,世界坐标系。图像坐标系主要的作用是用来表征二维图像中图像像素与物理尺寸之间的对应关系,分为图像像素坐标系和图像物理坐标系。以图像的左上角为坐标原点建立图像像素坐标系
$u - v$ ,以摄像机主点$({u_{\rm{o}}},{v_{\rm{o}}})$ 为原点建立图像物理坐标系$x - y$ 。摄像机坐标系用来对相机成像过程中所对应的几何关系进行解析,是以光心为原点建立的坐标系${X_{\rm{c}}} - {Y_{\rm{c}}} - {Z_{\rm{c}}}$ 。世界坐标系${X_{\rm{w}}} - {Y_{\rm{w}}} - $ $ {Z_{\rm{w}}}$ 的主要作用是说明物体在三维空间中的位置,无固定的位置,可以根据设计需求将任意位置作为坐标原点。各坐标系之间的关系如图1所示。 -
摄像机标定就是确定摄像机的内参矩阵和外参矩阵的参数值,建立起像点像素坐标与物点世界坐标之间的映射关系[14]。如图1所示,假设P点假定位于世界坐标
${X_{\rm{w}}} - {Y_{\rm{w}}} - {Z_{\rm{w}}}$ 平面上,其在图像像素坐标系,图像物理坐标系和世界坐标系中的坐标分别为$(u,v)$ ,$(x,y)$ 和$({X_{\rm{w}}},{Y_{\rm{w}}},{Z_{\rm{w}}})$ ,不考虑非线性因素(镜头畸变)时,可以通过针孔成像模型来描述成像几何关系,三者之间的关系可由齐次坐标表示为[15]:$$ {Z_{\rm{c}}}\left[ {\begin{array}{*{20}{c}} u \\ v \\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {f/{\rm d}x} \\ 0 \\ 0 \end{array}}&{\begin{array}{*{20}{c}} 0 \\ {f/{\rm d}y} \\ 0 \end{array}}&{\begin{array}{*{20}{c}} {{u_{\rm{o}}}} \\ {{v_{\rm{o}}}} \\ 1 \end{array}}&{\begin{array}{*{20}{c}} 0 \\ 0 \\ 0 \end{array}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} \boldsymbol{R}&\boldsymbol{T} \\ {{\boldsymbol{O}^{\rm T}}}&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{X_{\rm{w}}}} \\ {{Y_{\rm{w}}}} \\ {{Z_{\rm{w}}}} \\ 1 \end{array}} \right] $$ (1) 式中:
${\rm d}x,{\rm d}y$ 分别代表任意图像点在$x,\;y$ 两个方向上所对应的物理长度;$({u_{\rm{o}}},{v_{\rm{o}}})$ 为图像物理坐标系的原点在像素坐标系下的坐标;$f$ 为摄像机焦距;$\boldsymbol{R}$ 表示3×3的旋转矩阵;$\boldsymbol{T}$ 表示3×1的平移矩阵。${\rm d}x,\;{\rm d}y$ ,$({u_{\rm{o}}},{v_{\rm{o}}})$ ,$f$ 只与摄像机的内部结构有关,称为摄像机内部参数;$\boldsymbol{R},\boldsymbol{T}$ 由世界坐标系的位置和摄像机的位置决定,称为摄像机外部参数。 -
因为世界坐标系下的坐标通过刚体变换转换到摄像机坐标系下,设在摄像机坐标系坐标为
$({X_{\rm c}},{Y_{\rm c}},{Z_{\rm c}})$ ,三维空间中的任意物点从世界坐标系变换到摄像机坐标系可由下式表示[15]:$$ \left[ \begin{gathered} {X_{\rm{c}}} \\ {Y_{\rm{c}}} \\ {Z_{\rm{c}}} \\ \end{gathered} \right] = \boldsymbol{R}\left[ \begin{gathered} {X_{\rm{w}}} \\ {Y_{\rm{w}}} \\ {Z_{\rm{w}}} \\ \end{gathered} \right] + \boldsymbol{T} $$ (2) 令
$\boldsymbol{K}$ 为$3 \times 3$ 的内参矩阵,成像模型(1)可变为:$$ {Z_{\rm{c}}}\left[ {\begin{array}{*{20}{c}} u \\ v \\ 1 \end{array}} \right] = \boldsymbol{K}\left(\boldsymbol{R}\left[ \begin{gathered} {X_{\rm{w}}} \\ {Y_{\rm{w}}} \\ {Z_{\rm{w}}} \\ \end{gathered} \right] + \boldsymbol{T}\right) $$ (3) 相机标定中使用神经网络的目的是无需求解内外参,直接建立反应像素坐标与世界坐标之间映射关系的网络。多数文献中,输入为像点像素坐标,输出为物点世界坐标,故通过换算成像模型(3)可得公式(4):
$$ \left[ \begin{gathered} {X_{\rm{w}}} \\ {Y_{\rm{w}}} \\ {Z_{\rm{w}}} \\ \end{gathered} \right] = {\boldsymbol{R}^{ - 1}}\left({\boldsymbol{K}^{ - 1}}{Z_{\rm{c}}}\left[ \begin{gathered} u \\ v \\ 1 \\ \end{gathered} \right] - \boldsymbol{T}\right) $$ (4) 令
$$ \boldsymbol{A} = {\boldsymbol{R}^{ - 1}}{\boldsymbol{K}^{ - 1}}\left[ \begin{gathered} u \\ v \\ 1 \\ \end{gathered} \right],\;\;B = {\boldsymbol{R}^{ - 1}}\boldsymbol T $$ (5) 观察公式(4)左右第三行构成公式(6):
$$ {Z_{\rm{w}}} = {Z_{\rm{c}}}\boldsymbol{A}(3,1) - \boldsymbol{B}(3,1) $$ (6) 式中:
$\boldsymbol{A},\boldsymbol{B}$ 均为$3 \times 1$ 的矩阵;$ \boldsymbol{A}(3,1),\boldsymbol{B}(3,1)$ 代表$\boldsymbol{A},\boldsymbol{B}$ 矩阵的第三行第一列。由公式(6)可得:$$ {Z_{\rm{c}}} = \frac{{{Z_{\rm{w}}} + \boldsymbol{B}(3,1)}}{{\boldsymbol{A}(3,1)}} $$ (7) 实验中,世界坐标系原点固定,相机固定,焦距固定,移动标定板进行图像采集。此时内参矩阵不改变,
$\boldsymbol{R},\boldsymbol{T}$ 矩阵不改变,所以根据公式(7),得${Z_{\rm{c}}}$ 是世界坐标${Z_{\rm{w}}}$ 和像素坐标$u,v$ 的函数,即:$$ {Z_{\rm{c}}} = f(u,v,{Z_{\rm{w}}}) $$ (8) 将公式(8)代入公式(4),可得:
$$ {X_{\rm{w}}} = {Z_{\rm{c}}}\boldsymbol{A}(1,1) - \boldsymbol{B}(1,1) = {f_1}(u,v,{Z_{\rm{w}}}) $$ (9) $$ {Y_{\rm{w}}} = {Z_{\rm{c}}}\boldsymbol{A}(2,1) - \boldsymbol{B}(2,1) = {f_2}(u,v,{Z_{\rm{w}}}) $$ (10) 由公式(9)和公式(10),得:
$$ {f_{{xz}}}(u,v) \to ({X_{\rm{w}}},{Z_{\rm{w}}}) $$ (11) $$ {f_{{yz}}}(u,v) \to ({Y_{\rm{w}}},{Z_{\rm{w}}}) $$ (12) 由公式(8)可知成像模型(4)右边包含输入项
$(u,v)$ 和输出项${Z_{\rm{w}}}$ ,因此,${Z_{\rm{c}}}$ 的存在增加了神经网络拟合像素坐标与世界坐标之间映射关系的难度。公式(11)和公式(12)可以看出,考虑了${Z_c}$ 本身的函数关系后,成像模型可以化简得到两个函数,函数${f_{{xz}}}$ 通过输入$(u,v)$ 得到世界坐标点中的$({X_{\rm{w}}},{Z_{\rm{w}}})$ ,函数${f_{yz}}$ 通过输入$(u,v)$ 得到世界坐标点中的$({Y_{\rm{w}}},{Z_{\rm{w}}})$ 。实际中,镜头畸变会在图像坐标系$x,y$ 两个方向上引入非线性误差,则像素坐标会产生偏移,但整体上述函数关系式仍然满足。 -
由2.1节分析可知,成像模型可以被分解为两个函数关系式,使用神经网络时,一个神经网络可看成一个函数,神经网络的输入值和预测值可分别看成函数的自变量和因变量。因此,文中采用两个神经网络去分别拟合这两个函数,进行相机标定,标定方法如图2所示。
-
利用神经网络进行摄像机标定不同于传统摄像机标定,但它们都是通过已知数据得到相关参数,然后利用这些参数来计算未知数据。传统方法是利用标定得到的摄像机内外参数,畸变系数求解出二维图像坐标到三维世界坐标过程中的方程;神经网络校准是直接训练网络来预测未知数据。BP神经网络作为应用最为广泛的一种神经网络,通过梯度下降法进行误差的反向传播对网络的权值和阈值进行修正,可以实现输入到输出的任意非线性映射。由参考文献[16]可知,三层网络模型与四层、五层和六层相比标定速度更快、工作精度更高,故文中应用三层BP网络对摄像机进行标定,网络结构如图3所示。其中,模型输入为图像像素坐标
$(u,v)$ ,输出为世界坐标$({X_{\rm{w}}},{Z_{\rm{w}}})$ ,$({Y_{\rm{w}}},{Z_{\rm{w}}})$ ,${I_{ij}}$ 为输入层第$i$ 个节点与隐藏层第$j$ 个节点的连接权值,${L_{jk}}$ 为隐藏层第$j$ 个节点与输出层第$k$ 个节点的连接权值。文中后面部分将确定隐藏的神经元即隐藏层节点的个数。由于BP算法在网络训练的过程中收敛速度较慢,容易陷入局部极小值,而粒子群优化算法(particle swarm optimization,PSO)是基于群体进行优化的方法,将系统初始化为一组随机解,通过迭代搜索最优值,多用于寻找全局最优解问题[17]。故文中采用PSO优化BP算法实现利用神经网络进行相机校准的功能。
PSO-BP 算法首先通过PSO算法在全局范围内进行大致搜索,将 PSO算法优化的权值和阈值作为BP神经网络的初始权值和阈值,然后使用细化能力更强的BP神经网络在此基础上进行细化搜索,直至达到要求误差或大于最大迭代次数,其基本流程如图4所示。
定义粒子适应度函数为:
$$ fitness = \sum\limits_{i = 1}^M {\sum\limits_{k = 1}^K {{{({d_{ik}} - {y_{ik}})}^2}} } $$ (13) 式中:M为样本个数;K为输出维度;
${d_{ik}}$ 为节点的期望输出;${y_{ik}}$ 为输入样本对应的预测输出。 -
为了实现基于双神经网络的摄像机标定,需要搭建一个高精度的摄像机标定实验平台来采集图像数据,作为后续的标定工作奠定基础。文中采用激光准直仪和反射镜,通过光学方法对标定平台进行校正。其校正过程分为两步:(1)激光准直仪光轴校准,其目的主要是实现激光准直仪光轴平行于水平位移平台平移的方向。(2)标定板校正,其目的主要是实现标定板平面与平台平移的方向垂直。
激光准直仪光轴校准原理如图5所示。首先通过采集靶面背景图像和不同位置处激光准直仪发射光束在靶面上的成像光斑,利用背景差分算法提取光斑图像,根据质心算法计算光斑质心,并以此作为判据,若相邻两幅图像的质心坐标差在0.5个像素内,则证明激光准直仪光轴与位移平台移动方向平行。
接着将棋盘格标定板固定在有机玻璃上,在标定板表面光斑照射位置用密封蜡粘贴一枚前表面反射镜将光斑图像反射回激光准直仪CCD面板上对标定板进行校正,如图6所示。反射光斑将由激光准直仪输出接口传输到PC机上。通过微整标定板的角度使其质心位置基本与图像中心位置相吻合。若二者的偏差小于0.5个像素,则证明位移台在滑轨上的运动方向与圆点实心标定平面垂直。
在进行实际标定实验时,将激光准直仪替换成相机,由于棋盘格标定板固定在光学平台上不方便移动,因此利用步进电机移动摄像机对标定板进行拍照,利用光栅尺记录摄像机的移动位置。实验平台如图7所示,实验所用标定靶为
$12 \times 9$ 的棋盘格,其中相邻角点间距均为30 mm,故标定区域范围为$400\;{\rm{mm}} \times $ $ 300\;{\rm{mm}} $ 。实验过程中,随机选择$400\;{\rm{mm}} \times 300\;{\rm{mm}} \times $ $ 108.920\;{\rm{mm}} $ 范围内30个位置的2500个点为训练数据集,剩余140个点为测试数据集。 -
运用训练好的神经网络模型对样本数据进行测试,将方法输出的世界坐标与实际世界坐标的均方根误差
$E$ 作为评价测量精度的指标,均方根误差$E$ 见公式(14):$$ E = \frac{{\sqrt {{{({X_{\rm{w}}} - {X_{\rm{w}}}')}^2} + {{({Y_{\rm{w}}} - {Y_{\rm{w}}}')}^2} + {{({Z_{\rm{w}}} - {Z_{\rm{w}}}')}^2}} }}{n} $$ (14) 式中:
$ {X}_{\rm{w}},{Y}_{\rm{w}},{Z}_{\rm{w}}$ 为真实世界坐标;${X}_{\rm{w}}',{Y}_{\rm{w}}', {Z}_{\rm{w}}'$ 为神经网络输出的世界坐标;$n$ 是标定的角点数。 -
在BP 神经网络中,隐层节点数对神经网络模型的性能影响很大,设置不合适时会导致训练时出现“过拟合”。因此,为确定对文中算法来说最合适的隐层节点数,文中选取隐层节点数为6,8,10,12,14,16,18,22的神经网络模型进行测试,其结果如表1所示。
$erro{r_{{xz}}}$ ,$erro{r_{{yz}}}$ 分别为双神经网络的最小训练误差。可以发现,在隐层节点数到达16之后,训练误差出现了明显的下降,最终确定两个神经网络的隐层节点数为20和16。表 1 隐层节点数对实验结果的影响
Table 1. Influence of hidden layer node number on experimental results
Number of hidden layer nodes $error_{xz} /{\rm mm}$ $error_{ {yz} } /{\rm mm}$ 6 0.130 0.0987 8 0.164 0.148 10 0.0822 0.0683 12 0.0751 0.0797 14 0.0647 0.0622 16 0.000210 0.000274 18 0.000242 0.000381 20 0.000195 0.00159 22 0.000569 0.000889 采用改进的PSO-BP双神经网络算法和传统的BP神经网络进行实验,所得到的神经网络训练的误差曲线如图8、图9所示。可以看出,用基于双神经网络的PSO-BP算法训练时候,最好的误差精度分别为0.00018 mm和0.00023 mm,而基于传统BP神经网络算法训练时,最好的误差精度为0.0251 mm,文中算法较传统神经网络算法而言,明显提高了标定精度。
由于文中采用双神经网络对世界坐标进行预测,输出的Z轴世界坐标分别是
$ {Z}_{\rm{w}1}',{Z}_{\rm{w}2}'$ ,故最终需要选取一个确定的Z轴输出${Z_{\rm{w}}'}$ 。通过用上面训练好的两个神经网络模型对数据集中的140个数据进行测试,Z轴输出误差结果如图10。图10中,最小训练误差更小的神经网络中Z轴的输出精度在0.1727,而另一个在0.2261。同时,可以发现,最小训练误差较小的神经网络中Z轴的输出误差大都在0.3以内,更加稳定;而右图虽然在误差接近0处存在点集更多,但是误差范围在0.8以内较为分散。综上,最小训练误差更小的神经网络输出的Z轴坐标具有更好的精度和稳定性,故Z轴输出${Z_{\rm{w}}'}$ 选取最小训练误差更小的神经网络输出。参考文献[13]中重点指出其方法的误差集中于Z轴,虽然其方法遵循了摄像机成像的基本原理,但是针对Z轴并没有考虑摄像机成像模型之间的函数关系,根据上文,文中Z轴的精度高于参考文献[13]。表2中给出了部分标定点的预测结果,同时在相同的条件下将其与参考文献[13]中的方法进行对比。对比结果表明,文中算法的的平均标定均方根误差为0.1786,较以往基于神经网络的相机标定算法具有更强的学习能力,能更有效地提高相机标定的精度。最后,从30个位置的2640个训练数据中任取一个平面位置进行恢复,结果如图11所示。
表 2 部分标定点误差
Table 2. Error of partial calibration point
Expert output Proposed method Method in Ref. [13] ${X_{\rm{w} } }/{\rm mm}$ ${Y_{\rm{w} } }/{\rm mm}$ ${Z_{\rm{w} } }/{\rm mm}$ ${X_{\rm{w} } }/{\rm mm}$ ${Y_{\rm{w} } }/{\rm mm}$ ${Z_{\rm{w} } }/{\rm mm}$ ${X_{\rm{w} } }/{\rm mm}$ ${Y_{\rm{w} } }/{\rm mm}$ ${Z_{\rm{w} } }/{\rm mm}$ 30 60 3.7650 30.0132 59.9826 3.5177 29.7803 59.7636 3.5139 30 120 18.7900 30.0824 120.103 18.8464 30.1413 119.846 18.4452 60 30 108.9200 59.9819 29.8937 108.9940 59.6575 29.9067 108.3465 90 90 108.9200 89.9033 89.9493 108.8836 90.0887 90.2409 107.9858 120 240 108.9200 119.8934 240.051 108.8500 119.7397 240.082 108.9832 150 30 108.9200 150.1060 29.8590 108.9702 149.7396 29.9120 109.1905 180 60 105.1450 179.8512 59.9526 105.0527 179.7629 59.9960 104.9458 210 180 105.1450 210.1164 179.833 105.0298 210.2637 179.878 105.3433 240 210 105.1450 240.0994 210.101 105.0015 240.2051 210.132 104.9842 330 240 108.9200 330.2025 240.035 108.9867 330.0932 240.1141 108.6544 $E$ 0.1786 0.4378 已知摄像机镜头畸变对标定结果具有很大影响,对于某些特殊应用的摄像机甚至针孔模型也无法对其成像过程进行准确描述,镜头畸变主要表现为桶形畸变。
为了查看文中方法在高畸变情况下的标定结果,使用高畸变镜头,在相同条件下对待测平面进行标定。畸变图像如图12所示,表3给出了不同标定方法的标定误差。
表 3 在镜头高畸变条件下不同方法的标定误差
Table 3. Calibration error of different methods under the condition of high lens distortion
Proposed method Method in Ref. [13] BP method ${\rm Error/mm}$ $X,Z$ $Y,Z$ $X,Y$ $Z$ $X,Y,Z$ $best$ 0.000343 0.000414 0.000370 0.000835 0.031687 $avg$ 0.3193 0.5016 1.2126 镜头存在高畸变时,成像模型引入非线性畸变,非线性映射函数的存在加大了模型拟合的难度。表3中,
$best$ 表示单个神经网络模型的最小训练误差,$avg$ 表示该方法的平均标定误差,$X,Z$ 表示文中方法关于X,Z轴方向训练的神经网络误差,其余同理。由表3可知,参考文献[13]的方法由于没有完全遵循成像模型之间的函数关系,在引入镜头畸变之后,精度降低;而传统的BP神经网络方法利用单个数据集训练整个神经网络,任务量较大,在高畸变条件下学习能力有限,误差较大;文中方法分散了单个神经网络的任务量的同时遵循成像模型间的函数关系,镜头畸变对于该方法的影响较小,此时的平均标定误差为0.2193。因此,畸变环境下,文中所提方法能够有效的对所采集图片进行标定,进一步说明了该方法的有效性。
Camera calibration method based on double neural network
-
摘要: 计算机视觉中,摄像机标定作为摄像测量技术的前提,是必不可少的一个环节。针对目前基于神经网络的相机标定方法训练精度不够高的问题,提出了一种基于双神经网络的相机标定方法。该方法从成像模型出发,推导出相机坐标
${Z_{\text{c}}}$ 是世界坐标${Z_{\text{w}}}$ 和像素坐标$u, v$ 的函数,在考虑了${Z_{\text{c}}}$ 的变化的基础上,将成像模型简化成两个函数关系式,使用两个神经网络进行标定,分化了单个神经网络的任务量的同时又充分遵循了成像模型。实验结果表明,较其余基于神经网络的相机标定方法,该方法提高了相机标定的精度,在$400\;{\rm{mm}} \times 300\;{\rm{mm}} $ 标定范围内平均标定误差为$0.178\;6\;{\rm{mm}} $ ,验证了所提方法的可行性和有效性。Abstract: In computer vision, camera calibration as the premise of camera measurement technology, is an essential part. Aiming at the problem that the training accuracy of camera calibration method based on neural network is not high enough, a camera calibration method based on double neural network was proposed. Starting from the imaging model, it was deduced that the camera coordinate${Z_{\text{c}}}$ was a function of the world coordinate and the pixel coordinate. On the basis of considering${Z_{\text{c}}}$ , the imaging model was simplified into two function relations, and two neural networks were used for calibration, which not only differentiated the task amount of single neural network, but also fully followed the imaging model. The experimental results show that compared with other calibration methods based on neural network, this method improves the accuracy of camera calibration. And the average calibration error is 0.1786${\rm{mm}}$ in the calibration range of$400\;{\rm{mm}} \times 300\;{\rm{mm}}$ , which verifies the feasibility and effectiveness of proposed method.-
Key words:
- computer vision /
- neural network /
- camera calibration /
- imaging model
-
表 1 隐层节点数对实验结果的影响
Table 1. Influence of hidden layer node number on experimental results
Number of hidden layer nodes $error_{xz} /{\rm mm}$ $error_{ {yz} } /{\rm mm}$ 6 0.130 0.0987 8 0.164 0.148 10 0.0822 0.0683 12 0.0751 0.0797 14 0.0647 0.0622 16 0.000210 0.000274 18 0.000242 0.000381 20 0.000195 0.00159 22 0.000569 0.000889 表 2 部分标定点误差
Table 2. Error of partial calibration point
Expert output Proposed method Method in Ref. [13] ${X_{\rm{w} } }/{\rm mm}$ ${Y_{\rm{w} } }/{\rm mm}$ ${Z_{\rm{w} } }/{\rm mm}$ ${X_{\rm{w} } }/{\rm mm}$ ${Y_{\rm{w} } }/{\rm mm}$ ${Z_{\rm{w} } }/{\rm mm}$ ${X_{\rm{w} } }/{\rm mm}$ ${Y_{\rm{w} } }/{\rm mm}$ ${Z_{\rm{w} } }/{\rm mm}$ 30 60 3.7650 30.0132 59.9826 3.5177 29.7803 59.7636 3.5139 30 120 18.7900 30.0824 120.103 18.8464 30.1413 119.846 18.4452 60 30 108.9200 59.9819 29.8937 108.9940 59.6575 29.9067 108.3465 90 90 108.9200 89.9033 89.9493 108.8836 90.0887 90.2409 107.9858 120 240 108.9200 119.8934 240.051 108.8500 119.7397 240.082 108.9832 150 30 108.9200 150.1060 29.8590 108.9702 149.7396 29.9120 109.1905 180 60 105.1450 179.8512 59.9526 105.0527 179.7629 59.9960 104.9458 210 180 105.1450 210.1164 179.833 105.0298 210.2637 179.878 105.3433 240 210 105.1450 240.0994 210.101 105.0015 240.2051 210.132 104.9842 330 240 108.9200 330.2025 240.035 108.9867 330.0932 240.1141 108.6544 $E$ 0.1786 0.4378 表 3 在镜头高畸变条件下不同方法的标定误差
Table 3. Calibration error of different methods under the condition of high lens distortion
Proposed method Method in Ref. [13] BP method ${\rm Error/mm}$ $X,Z$ $Y,Z$ $X,Y$ $Z$ $X,Y,Z$ $best$ 0.000343 0.000414 0.000370 0.000835 0.031687 $avg$ 0.3193 0.5016 1.2126 -
[1] Raza S N, Rehman H R U, Lee S G, et al. Artificial intelligence based camera calibration[C]//2019 15th International Wireless Communications and Mobile Computing Conference (IWCMC), 2019: 1564-1569. [2] Abdel-Aziz Y I, Karara H M. Direct linear transformation from comparator coordinates into object space coordinates in close-range photogrammetry [J]. Photogrammetric Engineering and Remote Sensing, 2015, 81(2): 103-107. doi: 10.14358/PERS.81.2.103 [3] Tsai R Y. A versatile camera calibration technique for high accuracy 3D machine vision metrology using off-the-shelf TV cameras and lenses [J]. IEEE Journal of Robotics Automation, 1987, 3(4): 323-344. doi: 10.1109/JRA.1987.1087109 [4] Wang T, Wang L L, Zhang W G, et al. Design of infrared target system with Zhang Zhengyou calibration method [J]. Optics and Precision Engineering, 2019, 27(8): 1828-1835. (in Chinese) doi: 10.3788/OPE.20192708.1828 [5] Wang L, Sun B, Long C Y, et al. A novel method for calibrating intrinsic parameters oflinear array cameras based on collinear feature points [J]. Infrared and Laser Engineering, 2015, 44(6): 1878-1883. (in Chinese) [6] Pan X J, Wu J Y, Li Z L, et al. Self-calibration for linear structured light 3D measurement system based on quantum genetic algorithm and feature matching [J]. Optik, 2020, 225: 165749. doi: 10.1016/j.ijleo.2020.165749 [7] Ma S D. A self-calibration technique for active vision system [J]. IEEE Transaction on Robot and Automation, 1996, 12(1): 114-120. doi: 10.1109/70.481755 [8] Shuang Y C, Wang Z Z. Active stereovision three-dimensional reconstruction by RGB dot pattern projection and ray intersection [J]. Measurement, 2020, 167: 108195. [9] Jin L G, Rui L G. Camera calibration for monocular vision system based on Harris corner extraction and neural network[C]//2011 International Conference on Consumer Electronics, Communications and Networks (CECNet), 2011: 1-4. [10] Jiang X K, Fan Y Q, Wang W. BP neural network camera calibration based on particle swarm optimization genetic algorithm [J]. Journal of Frontiers of Computer Science & Technology, 2014, 8(10): 1254-1262. (in Chinese) doi: 10.3778/j.issn.1673-9418.1405048 [11] Liu X J, Li X J, Wang W Y, et al. Large-scale binocular camera calibration combining neural network with virtual target [J]. Optical Technique, 2017, 43(4): 314-318. (in Chinese) [12] Xiang P, Zhou B, Zhu Y K, et al. Camera calibration based on deep neural network in complex environments [J]. Laser & Optoelectronics Progress, 2019, 56(11): 214-222. (in Chinese) [13] Tian Z, Zhang S, Xiong J L, et al. Large-scale camera calibration with neural network [J]. Acta Optica Sinica, 2011, 31(4): 0415001. (in Chinese) doi: 10.3788/AOS201131.0415001 [14] Li Q W, Ni S J, Wang Z Q, et al. Calibration of binocular camera with non-common field of view [J]. Optics and Precision Engineering, 2020, 28(12): 2737-2744. (in Chinese) doi: 10.37188/OPE.20202812.2737 [15] Pan X. Camera calibration based on neural network[D]. Xi'an: Xi'an University of Science and Technology, 2011. (in Chinese) [16] Jin W L, Zhou M Y. Study on calibration of binocular stereo vision based on BP neural network with different layers [J]. Optical Technique, 2015, 41(1): 72-76. doi: 10.3788/GXJS20154101.0072 [17] Zhang G Y, Huo J, Yang M, et al. Binocular camera calibration based on dual update strategy weighted differential evolution particle swarm optimization [J]. Infrared and Laser Engineering, 2021, 50(4): 20200280. (in Chinese) doi: 10.3788/IRLA20200280