留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

利用双神经网络的相机标定方法

陈文艺 许洁 杨辉

陈文艺, 许洁, 杨辉. 利用双神经网络的相机标定方法[J]. 红外与激光工程, 2021, 50(11): 20210071. doi: 10.3788/IRLA20210071
引用本文: 陈文艺, 许洁, 杨辉. 利用双神经网络的相机标定方法[J]. 红外与激光工程, 2021, 50(11): 20210071. doi: 10.3788/IRLA20210071
Chen Wenyi, Xu Jie, Yang Hui. Camera calibration method based on double neural network[J]. Infrared and Laser Engineering, 2021, 50(11): 20210071. doi: 10.3788/IRLA20210071
Citation: Chen Wenyi, Xu Jie, Yang Hui. Camera calibration method based on double neural network[J]. Infrared and Laser Engineering, 2021, 50(11): 20210071. doi: 10.3788/IRLA20210071

利用双神经网络的相机标定方法

doi: 10.3788/IRLA20210071
详细信息
    作者简介:

    陈文艺,男,教授,博士,主要从事摄像机标定技术和数字图像处理方面的研究工作

    通讯作者: 许洁,女,硕士生,主要从事机器视觉,摄像机标定方面的研究工作。
  • 中图分类号: TH741

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}} $,验证了所提方法的可行性和有效性。
  • 图  1  各坐标系之间的关系

    Figure  1.  Relationship between coordinate systems

    图  2  双神经网络相机标定法

    Figure  2.  Camera calibration based on double neural networks

    图  3  BP网络模型示意图

    Figure  3.  Schematic diagram of BP network model

    图  4  PSO-BP算法流程图

    Figure  4.  Flow chart of PSO-BP algorithm

    图  5  光轴校正原理图

    Figure  5.  Schematic diagram of optical axis correction

    图  6  标定板校正原理图

    Figure  6.  Schematic diagram of calibration plate correction

    图  7  实验平台

    Figure  7.  Experimental platform

    图  8  PSO-BP双神经网络算法训练图

    Figure  8.  Training chart of PSO-BP double neural network algorithm

    图  9  传统BP神经网络训练曲线图

    Figure  9.  Training curve of traditional BP neural network

    图  10  Z轴的输出误差结果

    Figure  10.  Result of Z-axis output error

    图  11  三维重建图像

    Figure  11.  Image of 3D reconstruction

    图  12  畸变图像

    Figure  12.  Distorted image

    表  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}$
    60.1300.0987
    80.1640.148
    100.08220.0683
    120.07510.0797
    140.06470.0622
    160.0002100.000274
    180.0002420.000381
    200.0001950.00159
    220.0005690.000889
    下载: 导出CSV

    表  2  部分标定点误差

    Table  2.   Error of partial calibration point

    Expert outputProposed methodMethod 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}$
    30603.765030.013259.98263.517729.780359.76363.5139
    3012018.790030.0824120.10318.846430.1413119.84618.4452
    6030108.920059.981929.8937108.994059.657529.9067108.3465
    9090108.920089.903389.9493108.883690.088790.2409107.9858
    120240108.9200119.8934240.051108.8500119.7397240.082108.9832
    15030108.9200150.106029.8590108.9702149.739629.9120109.1905
    18060105.1450179.851259.9526105.0527179.762959.9960104.9458
    210180105.1450210.1164179.833105.0298210.2637179.878105.3433
    240210105.1450240.0994210.101105.0015240.2051210.132104.9842
    330240108.9200330.2025240.035108.9867330.0932240.1141108.6544
    $E$0.17860.4378
    下载: 导出CSV

    表  3  在镜头高畸变条件下不同方法的标定误差

    Table  3.   Calibration error of different methods under the condition of high lens distortion

    Proposed methodMethod in Ref. [13]BP method
    ${\rm Error/mm}$$X,Z$$Y,Z$$X,Y$$Z$$X,Y,Z$
    $best$0.0003430.0004140.0003700.0008350.031687
    $avg$0.31930.50161.2126
    下载: 导出CSV
  • [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
  • [1] 杨守瑞, 段婉莹, 艾文宇, 陈胜勇.  光场相机建模与畸变校正改进方法 . 红外与激光工程, 2023, 52(1): 20220326-1-20220326-9. doi: 10.3788/IRLA20220326
    [2] 王世强, 孟召宗, 高楠, 张宗华.  激光雷达与相机融合标定技术研究进展 . 红外与激光工程, 2023, 52(8): 20230427-1-20230427-14. doi: 10.3788/IRLA20230427
    [3] 李茂月, 肖桂风, 蔡东辰, 赵伟翔.  单目结构光测量中参数自适应标定方法 . 红外与激光工程, 2022, 51(8): 20210778-1-20210778-13. doi: 10.3788/IRLA20210778
    [4] 郭恩来, 师瑛杰, 朱硕, 程倩倩, 韦一, 苗金烨, 韩静.  深度学习下的散射成像:物理与数据联合建模优化(特邀) . 红外与激光工程, 2022, 51(8): 20220563-1-20220563-13. doi: 10.3788/IRLA20220563
    [5] 邓可望, 赵慧洁, 李娜, 蔡辉.  基于改进样本驱动的高光谱矿物识别模型压缩方法 . 红外与激光工程, 2022, 51(3): 20210252-1-20210252-9. doi: 10.3788/IRLA20210252
    [6] 李洋, 王国名, 王颖, 程智, 周维虎, 崔成君.  面向机器视觉测量的液体透镜调焦系统标定方法 . 红外与激光工程, 2022, 51(6): 20210472-1-20210472-10. doi: 10.3788/IRLA20210472
    [7] 尹红飞, 郭亮, 荆丹, 邢孟道, 曾晓东, 胡以华.  天基合成孔径激光雷达成像参数分析 . 红外与激光工程, 2021, 50(2): 20200144-1-20200144-12. doi: 10.3788/IRLA20200144
    [8] 王靖, 魏亮, 向文豪, 张贵阳, 霍炬.  考虑圆形特征边缘模糊和偏心误差修正的高精度相机标定方法 . 红外与激光工程, 2021, 50(12): 20210130-1-20210130-11. doi: 10.3788/IRLA20210130
    [9] 张贵阳, 霍炬, 杨明, 周婞, 魏亮, 薛牧遥.  基于双更新策略加权差分进化粒子群的双目相机标定 . 红外与激光工程, 2021, 50(4): 20200280-1-20200280-11. doi: 10.3788/IRLA20200280
    [10] 李云辉, 霍炬, 杨明.  基于图模型的小尺寸飞行器地面试验中位姿估计方法 . 红外与激光工程, 2020, 49(4): 0413003-0413003-8. doi: 10.3788/IRLA202049.0413003
    [11] 张慧娟, 熊芝, 劳达宝, 周维虎.  基于EPNP算法的单目视觉测量系统研究 . 红外与激光工程, 2019, 48(5): 517005-0517005(6). doi: 10.3788/IRLA201948.0517005
    [12] 程少园, 杨沐, 姜宏佳, 高凌雁, 付强强.  超敏捷动中成像高分辨率遥感卫星成像理论分析 . 红外与激光工程, 2019, 48(11): 1125002-1125002(7). doi: 10.3788/IRLA201948.1125002
    [13] 王天宇, 董文博, 王震宇.  基于单目视觉和固定靶标的位姿测量系统 . 红外与激光工程, 2017, 46(4): 427003-0427003(8). doi: 10.3788/IRLA201746.0427003
    [14] 刘宇航, 顾营迎, 李昂, 李大为, 徐振邦, 刘宏伟, 吴清文.  气浮实验台位姿视觉测量方法 . 红外与激光工程, 2017, 46(10): 1017005-1017005(8). doi: 10.3788/IRLA201773.1017005
    [15] 张涛, 薛永宏, 丁永和, 张磊.  背景在椭圆轨道红外监视平台的成像特性分析 . 红外与激光工程, 2016, 45(3): 326001-0326001(6). doi: 10.3788/IRLA201645.0326001
    [16] 刘巍, 李肖, 马鑫, 贾振元, 陈玲, 刘惟肖.  采用复合式靶标的近景大视场相机标定方法 . 红外与激光工程, 2016, 45(7): 717005-0717005(7). doi: 10.3788/IRLA201645.0717005
    [17] 王澜, 孙博, 隆昌宇, 邹剑, 邾继贵.  一种基于共线特征点的线阵相机内参标定方法 . 红外与激光工程, 2015, 44(6): 1878-1883.
    [18] 陈卫宁, 杨洪涛, 范哲源, 曹剑中, 刘广森, 张建, 武登山, 张志.  应用于校正扩展视场偏差的红外成像测量方法 . 红外与激光工程, 2013, 42(3): 584-589.
    [19] 赵春晖, 刘振龙.  改进的红外图像神经网络非均匀性校正算法 . 红外与激光工程, 2013, 42(4): 1079-1083.
    [20] 陈宝国, 张学峰, 牛英宇.  改进的基于神经网络的非均匀性校正算法 . 红外与激光工程, 2013, 42(3): 574-578.
  • 加载中
图(12) / 表(3)
计量
  • 文章访问数:  412
  • HTML全文浏览量:  190
  • PDF下载量:  51
  • 被引次数: 0
出版历程
  • 收稿日期:  2021-01-27
  • 修回日期:  2021-04-15
  • 网络出版日期:  2021-12-03
  • 刊出日期:  2021-11-30

利用双神经网络的相机标定方法

doi: 10.3788/IRLA20210071
    作者简介:

    陈文艺,男,教授,博士,主要从事摄像机标定技术和数字图像处理方面的研究工作

    通讯作者: 许洁,女,硕士生,主要从事机器视觉,摄像机标定方面的研究工作。
  • 中图分类号: TH741

摘要: 计算机视觉中,摄像机标定作为摄像测量技术的前提,是必不可少的一个环节。针对目前基于神经网络的相机标定方法训练精度不够高的问题,提出了一种基于双神经网络的相机标定方法。该方法从成像模型出发,推导出相机坐标${Z_{\text{c}}}$是世界坐标${Z_{\text{w}}}$和像素坐标$u, v$的函数,在考虑了${Z_{\text{c}}}$的变化的基础上,将成像模型简化成两个函数关系式,使用两个神经网络进行标定,分化了单个神经网络的任务量的同时又充分遵循了成像模型。实验结果表明,较其余基于神经网络的相机标定方法,该方法提高了相机标定的精度,在$400\;{\rm{mm}} \times 300\;{\rm{mm}} $标定范围内平均标定误差为$0.178\;6\;{\rm{mm}} $,验证了所提方法的可行性和有效性。

English Abstract

    • 计算机视觉系统的设计目标是从摄像机拍摄的图像中估算出物体在三维空间中的位置、形状等[1]。摄像机标定就是通过实验和计算获得摄像机参数,建立物点在相机中的像素坐标与该点在世界坐标系中的三维坐标之间的一种映射关系,摄像机标定结果的精度和方法的好坏直接影响摄像机工作结果的准确性。

      作为摄影测量技术的关键部分,标定技术在国内外的研究取得了一定的成就,也存在一定的局限。以针孔模型为基础,相机标定的方法总体上可以分为三种:一是利用精密几何标定物的传统标定方法[2-4],它需要使用专门的标定物,通过相应的算法得到相机内外参数,不利于一些标定物设置困难的环境,且算法复杂,标定过程繁琐;二是相机自标定方法,自标定方法灵活性强,可对相机进行在线定标[5-6]。但由于它是基于绝对二次曲线或曲面的方法,其算法鲁棒性差;三是基于主动视觉的标定方法[7-8],通过摄像机或是标定物在标定平台上做精准的相对运动实现相机标定,该方法精度较高,但实验条件要求苛刻,需要高精度的标定平台,成本高,不适合于运动参数未知或无法控制的场合。

      近年来,具有较强的自适应性、自学习性、和较强的非线性映射能力的神经网络已成功应用于摄像机标定。它不需要确定摄像机的内外参数,也不需要知道相关的先验知识模型,所有的非线性因素都包含在神经网络中,作为一种隐式校正方法,逐渐显示出其优越性。目前,很多学者对基于神经网络的摄像机标定方法进行了大量的研究。其中,参考文献[9]在网络的输入层引入了相机的旋转角$\theta $,提高了标定的精度。江祥奎等[10]用粒子群遗传算法优化BP神经网络,提高了摄像机标定的精度和速度。刘小娟等[11]将常规靶标用单角点虚拟靶标代替,通过与神经网络结合实现大视场的标定,解决了大视场相机标定中对大尺寸靶标的依赖问题。周宾等人[12]在神经网络的输入和输出层引入齐次项,使网络模型更接近射影几何物理模型,设计深度神经网络(DNN)将相机标定中机器学习类方法应用于大范围、多拍摄角度和高畸变等复杂标定环境中。

      但是,类似的方法中忽略了模型中存在的相机坐标的${Z_{\rm{c}}}$项,通过推导${Z_{\rm{c}}}$是世界坐标${Z_{\rm{w}}}$和像素坐标$u,v$的函数,使得矩阵左右两边均存在输入输出项,所以${Z_{\rm{c}}}$的存在加大了模型拟合的难度。且田震等人[13]证明了沿世界坐标系3个坐标轴方向存在不同的成像规律,提出沿3个方向分别进行标定的并行标定方法,提高了标定的精度,但是它忽略了相机成像模型之间的函数关系。因此,多数方法中利用单个训练集训练整个模型,既要拟合其中的非线性畸变关系,又要拟合基于小孔成像的线性关系,同时对于三个坐标轴不同的成像规律也需要拟合,增加了神经网络的负担。通过推导,文中在考虑了${Z_{\rm{c}}}$的变化的基础上,将成像模型简化成两个函数关系式,使用两个神经网络进行标定,分化了单个神经网络的任务量的同时又充分遵循了成像模型。

    • 在相机标定中,为了更好的阐述三维空间中物理点与二维图像中像素点之间的对应关系,构造了四个坐标系来描述摄像机的真实成像过程:图像像素坐标系,图像物理坐标系,摄像机坐标系,世界坐标系。图像坐标系主要的作用是用来表征二维图像中图像像素与物理尺寸之间的对应关系,分为图像像素坐标系和图像物理坐标系。以图像的左上角为坐标原点建立图像像素坐标系$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所示。

      图  1  各坐标系之间的关系

      Figure 1.  Relationship between coordinate systems

    • 摄像机标定就是确定摄像机的内参矩阵和外参矩阵的参数值,建立起像点像素坐标与物点世界坐标之间的映射关系[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所示。

      图  2  双神经网络相机标定法

      Figure 2.  Camera calibration based on double neural networks

    • 利用神经网络进行摄像机标定不同于传统摄像机标定,但它们都是通过已知数据得到相关参数,然后利用这些参数来计算未知数据。传统方法是利用标定得到的摄像机内外参数,畸变系数求解出二维图像坐标到三维世界坐标过程中的方程;神经网络校准是直接训练网络来预测未知数据。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$个节点的连接权值。文中后面部分将确定隐藏的神经元即隐藏层节点的个数。

      图  3  BP网络模型示意图

      Figure 3.  Schematic diagram of BP network model

      由于BP算法在网络训练的过程中收敛速度较慢,容易陷入局部极小值,而粒子群优化算法(particle swarm optimization,PSO)是基于群体进行优化的方法,将系统初始化为一组随机解,通过迭代搜索最优值,多用于寻找全局最优解问题[17]。故文中采用PSO优化BP算法实现利用神经网络进行相机校准的功能。

      PSO-BP 算法首先通过PSO算法在全局范围内进行大致搜索,将 PSO算法优化的权值和阈值作为BP神经网络的初始权值和阈值,然后使用细化能力更强的BP神经网络在此基础上进行细化搜索,直至达到要求误差或大于最大迭代次数,其基本流程如图4所示。

      图  4  PSO-BP算法流程图

      Figure 4.  Flow chart of PSO-BP algorithm

      定义粒子适应度函数为:

      $$ 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个像素内,则证明激光准直仪光轴与位移平台移动方向平行。

      图  5  光轴校正原理图

      Figure 5.  Schematic diagram of optical axis correction

      接着将棋盘格标定板固定在有机玻璃上,在标定板表面光斑照射位置用密封蜡粘贴一枚前表面反射镜将光斑图像反射回激光准直仪CCD面板上对标定板进行校正,如图6所示。反射光斑将由激光准直仪输出接口传输到PC机上。通过微整标定板的角度使其质心位置基本与图像中心位置相吻合。若二者的偏差小于0.5个像素,则证明位移台在滑轨上的运动方向与圆点实心标定平面垂直。

      图  6  标定板校正原理图

      Figure 6.  Schematic diagram of calibration plate correction

      在进行实际标定实验时,将激光准直仪替换成相机,由于棋盘格标定板固定在光学平台上不方便移动,因此利用步进电机移动摄像机对标定板进行拍照,利用光栅尺记录摄像机的移动位置。实验平台如图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个点为测试数据集。

      图  7  实验平台

      Figure 7.  Experimental platform

    • 运用训练好的神经网络模型对样本数据进行测试,将方法输出的世界坐标与实际世界坐标的均方根误差$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}$
      60.1300.0987
      80.1640.148
      100.08220.0683
      120.07510.0797
      140.06470.0622
      160.0002100.000274
      180.0002420.000381
      200.0001950.00159
      220.0005690.000889

      采用改进的PSO-BP双神经网络算法和传统的BP神经网络进行实验,所得到的神经网络训练的误差曲线如图8图9所示。可以看出,用基于双神经网络的PSO-BP算法训练时候,最好的误差精度分别为0.00018 mm和0.00023 mm,而基于传统BP神经网络算法训练时,最好的误差精度为0.0251 mm,文中算法较传统神经网络算法而言,明显提高了标定精度。

      图  8  PSO-BP双神经网络算法训练图

      Figure 8.  Training chart of PSO-BP double neural network algorithm

      图  9  传统BP神经网络训练曲线图

      Figure 9.  Training curve of traditional BP neural network

      由于文中采用双神经网络对世界坐标进行预测,输出的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}}'}$选取最小训练误差更小的神经网络输出。

      图  10  Z轴的输出误差结果

      Figure 10.  Result of Z-axis output error

      参考文献[13]中重点指出其方法的误差集中于Z轴,虽然其方法遵循了摄像机成像的基本原理,但是针对Z轴并没有考虑摄像机成像模型之间的函数关系,根据上文,文中Z轴的精度高于参考文献[13]。表2中给出了部分标定点的预测结果,同时在相同的条件下将其与参考文献[13]中的方法进行对比。对比结果表明,文中算法的的平均标定均方根误差为0.1786,较以往基于神经网络的相机标定算法具有更强的学习能力,能更有效地提高相机标定的精度。最后,从30个位置的2640个训练数据中任取一个平面位置进行恢复,结果如图11所示。

      表 2  部分标定点误差

      Table 2.  Error of partial calibration point

      Expert outputProposed methodMethod 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}$
      30603.765030.013259.98263.517729.780359.76363.5139
      3012018.790030.0824120.10318.846430.1413119.84618.4452
      6030108.920059.981929.8937108.994059.657529.9067108.3465
      9090108.920089.903389.9493108.883690.088790.2409107.9858
      120240108.9200119.8934240.051108.8500119.7397240.082108.9832
      15030108.9200150.106029.8590108.9702149.739629.9120109.1905
      18060105.1450179.851259.9526105.0527179.762959.9960104.9458
      210180105.1450210.1164179.833105.0298210.2637179.878105.3433
      240210105.1450240.0994210.101105.0015240.2051210.132104.9842
      330240108.9200330.2025240.035108.9867330.0932240.1141108.6544
      $E$0.17860.4378

      图  11  三维重建图像

      Figure 11.  Image of 3D reconstruction

      已知摄像机镜头畸变对标定结果具有很大影响,对于某些特殊应用的摄像机甚至针孔模型也无法对其成像过程进行准确描述,镜头畸变主要表现为桶形畸变。

      为了查看文中方法在高畸变情况下的标定结果,使用高畸变镜头,在相同条件下对待测平面进行标定。畸变图像如图12所示,表3给出了不同标定方法的标定误差。

      图  12  畸变图像

      Figure 12.  Distorted image

      表 3  在镜头高畸变条件下不同方法的标定误差

      Table 3.  Calibration error of different methods under the condition of high lens distortion

      Proposed methodMethod in Ref. [13]BP method
      ${\rm Error/mm}$$X,Z$$Y,Z$$X,Y$$Z$$X,Y,Z$
      $best$0.0003430.0004140.0003700.0008350.031687
      $avg$0.31930.50161.2126

      镜头存在高畸变时,成像模型引入非线性畸变,非线性映射函数的存在加大了模型拟合的难度。表3中,$best$表示单个神经网络模型的最小训练误差,$avg$表示该方法的平均标定误差,$X,Z$表示文中方法关于XZ轴方向训练的神经网络误差,其余同理。由表3可知,参考文献[13]的方法由于没有完全遵循成像模型之间的函数关系,在引入镜头畸变之后,精度降低;而传统的BP神经网络方法利用单个数据集训练整个神经网络,任务量较大,在高畸变条件下学习能力有限,误差较大;文中方法分散了单个神经网络的任务量的同时遵循成像模型间的函数关系,镜头畸变对于该方法的影响较小,此时的平均标定误差为0.2193。因此,畸变环境下,文中所提方法能够有效的对所采集图片进行标定,进一步说明了该方法的有效性。

    • 文中提出了一种基于双神经网络的相机标定方法,在传统的基于神经网络的相机标定的基础上,考虑了相机坐标${Z_{\rm c}}$的变化,将成像模型简化成两个函数关系式,构建了两个神经网络模型完成相机标定;同时,为了弥补传统BP算法易于收敛于局部最小值的不足,使用PSO算法对BP算法进行优化;最后,与已有算法进行对比,结果表明文中标定方法在低畸变环境中的平均校正误差为0.1786,在高畸变环境中的平均误差为0.3193,显示出比传统基于神经网络的相机标定法更高的标定精度。今后的研究将探索如何将文中所提方法扩展到更复杂的网络模型,同时与更多的方法进行比较。

参考文献 (17)

目录

    /

    返回文章
    返回