复杂环境下基于深度神经网络的摄像机标定 下载: 1485次
1 引言
标定是将仪器或系统与测量标准进行比较进而确定其性能参数的过程。摄像机标定是计算机视觉中的重要步骤,从二维图像信息中获取真实世界的度量信息[1],在三维重建、姿态估计和虚拟现实等领域具有广泛的应用。
摄像机通过透镜将三维场景投影到像平面上,获得二维图像,图像上每一点与空间物体表面相应点的位置关系可由摄像机模型算得。以针孔模型为基础,学者们对摄像机标定方法进行了大量研究[2-6]。这些标定方法的主要原理为:将成像过程视为线性变化和非线性变化的叠加,即真实世界物体经镜头投影到摄像机成像平面以及实际成像与理想成像间存在光学畸变两个因素的叠加,引入内参、外参和畸变系数等参数进行量化并求解。此类方法需要首先利用线性模型求取部分参数初值,然后计算其他参数,再对初值进行优化。然而,当摄像机镜头畸变较大时,初值求解会产生较大误差,同时对镜头畸变项与噪声等因素考虑不完全,易导致最终标定结果并不精确;且对于应用于自主导航、医学和监视等领域的摄相机(如反射折射摄像机或鱼眼摄像机),针孔模型已不再适用[7]。
含有至少一个隐藏层的前馈神经网络具有通用逼近性质[8],可用于摄像机标定,实现从真实世界到图像的非线性映射过程。隐藏层数较少的浅层神经网络(SNN)可应用于摄像机标定中。Wen等[9]提出的混合标定方法将SNN用于针孔模型标定结果的优化,提高了标定精度,但SNN并未直接用于映射全过程;Jun等[10]提出了一种训练数据集预分类法,并将SNN用于二维平面标定的全过程,取得了比两步法更精确的标定结果,但其仅对较小标定范围进行了验证;Memon等[11]使用双目摄像机验证了SNN用于三维区域标定的可行性;吕朝辉等[12]分析了SNN与摄像机标定结合的3种不同方法,并进行了实验验证;田震等[13]提出采用特殊的归一化方法对数据集进行预处理,再使用双SNN并行方法进行标定,提高了标定精度,但手动进行特征提取和同时训练两个SNN使标定过程更复杂,降低了机器学习类方法进行标定的灵活性;刘小娟等[14]采用单角点棋盘格构造的虚拟标定靶替代常规标定靶,并结合SNN实现了大视场区域的标定,但单角点逐个拍摄大幅增加了标定时间。
虽然SNN标定法能克服传统标定法中模型复杂的问题,在较简单标定环境下标定精度有所提升,但以上研究大多未验证所采用方法的应用范围,标定结果多为简单环境,如小范围、摄像机像平面与标定平面接近平行、摄像机镜头无畸变或畸变较小等。当标定范围较大,拍摄角度变化或镜头存在高畸变时,反映成像过程的非线性映射函数更复杂,而SNN训练过程并不稳定,非线性映射能力较低,且需要对输入数据进行归一化,进而使标定流程更复杂。深度学习是机器学习中一种对大量数据进行表示学习的方法,允许由多个处理层组成的计算模型学习具有多个抽象级别的数据表示[15]。深度神经网络(DNN)是隐藏层数大于1的前馈型神经网络[16],其每一层能对前一层的抽象表示进行深入学习,无需手工进行数据特征提取,能比SNN学习到更复杂的函数,为深度学习网络模型之一。近年来,随着计算硬件、网络结构与训练算法的优化,已经能实现对DNN的有效训练,但目前将深度学习技术应用于摄像机标定的研究较少。
受SNN标定法与深度学习技术启发,本文提出一种基于DNN的摄像机标定方法。该方法结合物理成像过程特点和DNN更强的通用逼近性质,构建适用于摄像机标定的DNN后,对训练算法进行优化,使其能够有效训练,无需手动进行数据集特征提取,直接输入原始图像数据,可以实现从真实世界到图像的非线性映射,在大范围、多拍摄角度和高畸变情况下均具有较高的标定精度,可用于不同的相机模型。
本项研究的意义有:1)将深度学习技术应用于摄像机标定,对适用于摄像机标定的DNN结构、超参数选取与优化训练过程进行了详细分析与说明,使其能够得到快速有效的训练;2)在网络输入和输出层引入齐次项,使网络模型更接近射影几何物理模型,直接输入原始图像数据而不对其进行任何手工特征提取或分类,简化了标定流程;3)针对SNN标定法仅用于简单标定环境的问题,将机器学习类方法应用于大范围、多拍摄角度和高畸变等复杂标定环境中,并验证其可行性,结果表明,标定精度提高。
2 理论基础
2.1 针孔相机模型
空间中任意一点
式中:d
然而,实际的镜头并非理想的透视成像,而是带有不同程度的畸变,因此,实际成像位置不是针孔模型所描述的图像物理坐标位置(
式中:
联立(1)式、(2)式和(3)式,可得畸变情况下摄像机实际拍得图像上的点(
2.2 SNN模型
由于计算机硬件和算法的原因,早期只有隐藏层数较少的SNN能够有效训练。典型的SNN模型如
SNN模型中输出
式中:
为使SNN的输出尽可能逼近目标值,需要采用有监督学习的方法。输入网络带有标签的数据,损失函数
2.3 DNN模型
DNN隐藏层数较SNN更多,拥有比SNN更复杂的网络结构。随着隐藏层数增加,网络容量增加,神经元之间更多的协作可以学习到更复杂的函数,也能容纳更多的数据量。但网络层数的增加会导致梯度反向传播过程易发生梯度弥散或梯度爆炸,从而使网络难以得到有效训练,同时,层数增加导致参数急剧增多,计算成本也极大增加。目前,训练DNN的方法主要有:
1) 无监督逐层贪婪预训练方法[17]。逐层无监督预训练为DNN提供较好的初始参数,每次训练一层隐藏节点,训练时上一层隐节点的输出为输入,本次隐节点的输出为下一层隐节点的输入;完成各层预训练后,结合GD的反向传播算法对整个网络进行微调。
2) 改进的训练算法。对网络结构及训练算法进行改进与优化,并使用图形处理单元(GPU)对训练过程进行加速。
相较于随机或利用各种算法初始化权值矩阵,方法1进行分层预训练具有一定的优势,但每层贪婪学习权值矩阵易导致训练时间过长。随着GPU等硬件的使用和网络结构、算法的优化,改进的训练算法的训练效果已经优于预训练方法[18]。本文使用方法2对DNN进行训练,具体过程如下:
1) 定义网络框架,随机初始化网络所有神经元的参数值,定义损失函数
2) 输入训练数据集,使用前向传播算法计算网络
3) 使用改进算法逐层更新神经元权重和偏置值。
4) 重复步骤2)~3),直至输出
对于(7)式所示的非线性转换,可利用DNN强大的通用逼近能力,直接实现从世界坐标系到图像像素坐标系的非线性映射。
3 超参数选取与算法改进
3.1 DNN框架
3.1.1 数据集
当给予学习模型更多的数据时,能获得更好的结果,DNN拥有比SNN更强的大数据处理能力,在描述大数据内在逻辑方面具有优势。选取平面内90×110个共9900个点作为数据集,其中随机选取9000个点为训练数据集,剩余900个点为测试数据集。
3.1.2 网络框架
所用DNN框架包括输入层、输出层和4个隐藏层,如
3.1.3 参数初始化
参数的初始化值会严重影响DNN的学习过程。由链式法则可知,权重初始化值过小或过大均会导致梯度弥散或梯度爆炸,从而使DNN无法收敛或收敛速度过慢;因网络为全连接结构,每层单个神经元受上一层所有神经元的影响,若参数初始化值都相同,将会使每个神经元输出相同值,无法打破对称性。为克服以上问题,随机初始化每层神经元权重值并使其满足标准高斯分布,由于输入为图像像素坐标值,数量级为103,因此对权重值进行一定比例的缩小(缩小因子
3.1.4 损失函数
假设网络第
式中:
3.1.5 激活函数
由于DNN隐藏层数较多,利用标准反向传播算法对每层权重、偏置进行更新时,使用sigmoid或tanh函数存在以下缺点:sigmoid或tanh函数的导数总是小于1,且随输入值的绝对值增大而减小,经多层反向传播后,梯度更新信息接近于0,进而导致梯度弥散,参数停止更新;sigmoid或tanh函数正向和反向传播过程中均涉及指数运算,当网络层数与神经元个数较多时,计算成本大幅增加。而修正线性单元(ReLU)
3.2 参数更新算法优化
如
为了使训练过程能跳出鞍点并尽快收敛至理想范围,本文采用自适应矩估计(Adam)法对参数进行更新,某一神经元的权重在第
式中:
由(8)~(10)式可知,Adam法在每次迭代过程中充分考虑前次迭代梯度信息,使更新参数拥有动量因素
图 3. 不同参数更新算法下的损失函数收敛曲线
Fig. 3. Loss function convergence curves under different parameter update algorithms
3.3 超参数选取
一些超参数值的选取对
3.3.1 学习速率
参数每次迭代更新过程均受到学习速率
由
式中:
图 4. 不同学习速率下损失函数收敛曲线
Fig. 4. Loss function convergence curves under different learning rates
3.3.2 隐藏层数及神经元数
隐藏层越多,网络具有越深入的特征表示能力,同时神经元数的增多也会增加网络**数量,整体上均能够增强网络的容量,使其能学习到更复杂的函数。但隐藏层数与神经元数的增多会导致计算成本增加,甚至出现过拟合情况。将这两个超参数置于二维网格内,对最优取值进行试探性搜索,随机搜索法具有比网格搜索法更高的效率[19],故使用随机搜索法确定超参数值。如
使用每个试验点所代表的隐藏层和神经元数值构建DNN,其他参数及结构如前文所示。经15000次迭代后,25个试验点的
4 实验与结果分析
实验所用标定靶为90×110平面角点阵列,如
固定摄像机及标定靶位置,采集单张图像,利用Matlab角点检测函数得到所有角点的图像像素坐标(以图像左上角为原点)。为满足输入数据的正负均匀性,将坐标系原点平移至角点阵列中心位置,得到所有角点图像像素坐标与真实世界坐标的一一对应关系,将坐标转换为齐次坐标后即可得到数据集及其标签。
使用Google公司深度学习开源软件库Tensorflow构建和训练DNN。Tensorflow采用数据流图进行数值计算,具有高度的灵活性与可移植性,支持多种编程语言,能够自动计算微分,可以充分应用计算设备的GPU等硬件的性能,相较于传统方式,Tenserflow能使DNN的构建过程更简洁,训练速度更快。一旦DNN训练完毕,将待测平面内任意点图像像素坐标经齐次转换后输入DNN,即可得到真实世界下的位置坐标。
为验证DNN标定法在不同应用场景下的性能,在相同实验条件下,比较张正友标定法、SNN标定法和DNN标定法的标定结果,其中SNN为刘小娟[11]所用的2×13×2网络结构,激活函数为tanh,为适应激活函数性质,对所有输入数据及其对应标签数据进行归一化预处理。实验结果均为10次随机选取测试数据集点标定结果的平均值。以标定误差
式中:(
4.1 拍摄角度
受一些特殊的应用场景的限制,摄像机成像平面与待测平面间的角度只能固定在一定范围内。假设两平面平行时,
由
表 1. 不同方法在不同拍摄角度下的标定误差
Table 1. Calibration errors of different methods under different shooting angles
|
4.2 镜头高畸变
摄像机镜头畸变对标定结果具有很大影响,对于某些特殊应用的摄像机甚至针孔模型也无法对其成像过程进行准确描述。鱼眼镜头具有很大的视角范围,广泛应用于场景监视、卫星定位、机器人导航、微小智能系统及工程测量等领域,但视角的增大会引入较大的畸变,主要表现为桶形畸变。本文使用装有鱼眼镜头的摄像机,在
表 2. 不同方法在镜头高畸变下的标定误差
Table 2. Calibration errors of different methods with highly distorted lensmm
|
由
比较
4.3 齐次坐标
在
表 3. 不同结构的DNN标定误差
Table 3. Calibration errors of DNN with different structuresmm
|
由
需要强调的是,所使用的深度神经网络框架相较于SNN模型,其之所以能得到较高的精度,本质上不仅是因为网络层数和神经元数的增加,而且还有激活函数的改进、参数更新算法的优化以及GPU的使用。这些原因可使更复杂的网络得到快速有效的训练,进而收敛至理想范围内,这也是深度学习技术和传统神经网络的区别之一。若保持隐藏层数与神经元个数不变,忽略输入输出层齐次项,使用传统神经网络sigmoid或tanh激活函数,并用GD法进行参数迭代更新,因存在数据预处理步骤,不仅会使标定流程复杂化,而且还会使网络训练时间与标定误差急剧增大。经实验验证,在
5 结论
提出了一种基于DNN的大范围摄像机标定方法,通过构建特定的DNN框架,确定超参数并对训练算法进行优化,使网络得到有效训练,实现大范围平面区域的高精度标定。该方法利用DNN更强的通用逼近能力,直接输入原始图像坐标数据而无需进行任何特征提取或分类,使用GPU实现对网络训练过程的加速,实现从真实世界到图像的非线性映射过程,适用于不同的相机模型。实验结果表明,在大范围、不同拍摄角度和镜头存在高畸变的复杂标定环境下,所提方法能取得比张友标定法与SNN标定法更高的标定精度,具有较高的灵活性与稳定性,特别适用于无需摄像机内外参信息,仅需通过图像获取真实世界大范围内度量信息的应用场景。同时,实验结果对双目视觉立体标定具有一定的理论借鉴意义。
[1] Zhang ZY. Camera calibration[M] ∥Ikeuchi K, Computer Vision: A Reference Guide. Boston: Springer, 2014: 76- 77
Zhang ZY. Camera calibration[M] ∥Ikeuchi K, Computer Vision: A Reference Guide. Boston: Springer, 2014: 76- 77
[4] 邹朋朋, 张滋黎, 王平, 等. 基于共线向量与平面单应性的双目相机标定方法[J]. 光学学报, 2017, 37(11): 1115006.
邹朋朋, 张滋黎, 王平, 等. 基于共线向量与平面单应性的双目相机标定方法[J]. 光学学报, 2017, 37(11): 1115006.
[5] 吴庆华, 陈慧, 朱思斯, 等. 一种多相机阵列大尺寸测量系统快速标定方法[J]. 光学学报, 2018, 38(12): 1215002.
吴庆华, 陈慧, 朱思斯, 等. 一种多相机阵列大尺寸测量系统快速标定方法[J]. 光学学报, 2018, 38(12): 1215002.
[6] 朱帆, 于芳苏, 吴易明, 等. P4P法相机姿态标定精度分析[J]. 光学学报, 2018, 38(11): 1115005.
朱帆, 于芳苏, 吴易明, 等. P4P法相机姿态标定精度分析[J]. 光学学报, 2018, 38(11): 1115005.
[9] WenJ, SchweitzerG. Hybrid calibration of CCD cameras using artificial neural nets[C]∥1991 IEEE International Joint Conference on Neural Networks, November 18-21, 1991, Singapore. New York: IEEE, 1991: 337- 342.
WenJ, SchweitzerG. Hybrid calibration of CCD cameras using artificial neural nets[C]∥1991 IEEE International Joint Conference on Neural Networks, November 18-21, 1991, Singapore. New York: IEEE, 1991: 337- 342.
[10] JunJ, KimC. Robust camera calibration using neural network[C]∥Proceedings of IEEE. IEEE Region 10 Conference. TENCON 99. 'Multimedia Technology for Asia-Pacific Information Infrastructure'( Cat. No.99CH37030), September 15-17, 1999, Cheju Island, Korea. New York: IEEE, 1999: 694- 697.
JunJ, KimC. Robust camera calibration using neural network[C]∥Proceedings of IEEE. IEEE Region 10 Conference. TENCON 99. 'Multimedia Technology for Asia-Pacific Information Infrastructure'( Cat. No.99CH37030), September 15-17, 1999, Cheju Island, Korea. New York: IEEE, 1999: 694- 697.
[12] 吕朝辉, 张兆杨, 安平. 基于神经网络的立体视觉摄像机标定[J]. 机械工程学报, 2003, 39(9): 93-96.
吕朝辉, 张兆杨, 安平. 基于神经网络的立体视觉摄像机标定[J]. 机械工程学报, 2003, 39(9): 93-96.
[13] 田震, 张玘, 熊九龙, 等. 基于神经网络的大范围空间标定技术[J]. 光学学报, 2011, 31(4): 0415001.
田震, 张玘, 熊九龙, 等. 基于神经网络的大范围空间标定技术[J]. 光学学报, 2011, 31(4): 0415001.
[14] 刘小娟, 李学军, 王文韫, 等. 基于神经网络的虚拟靶标大视场双目相机标定技术[J]. 光学技术, 2017, 43(4): 314-318.
刘小娟, 李学军, 王文韫, 等. 基于神经网络的虚拟靶标大视场双目相机标定技术[J]. 光学技术, 2017, 43(4): 314-318.
[15] LeCun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015, 521(7553): 436-444.
LeCun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015, 521(7553): 436-444.
[18] GlorotX, BordesA, BengioY. Deep sparse rectifier neural networks[C]∥ Proceedings of the Fourteenth International Conference on Artificial Intelligence and Statistics, April 11-13, 2011, Fort Lauderdale, FL, USA. Cambridge: PMLR, 2011, 15: 315- 323.
GlorotX, BordesA, BengioY. Deep sparse rectifier neural networks[C]∥ Proceedings of the Fourteenth International Conference on Artificial Intelligence and Statistics, April 11-13, 2011, Fort Lauderdale, FL, USA. Cambridge: PMLR, 2011, 15: 315- 323.
Article Outline
向鹏, 周宾, 祝仰坤, 贺文凯, 岳晓庚, 陶依贝. 复杂环境下基于深度神经网络的摄像机标定[J]. 激光与光电子学进展, 2019, 56(11): 111505. Peng Xiang, Bin Zhou, Yangkun Zhu, Wenkai He, Xiaogeng Yue, Yibei Tao. Camera Calibration Based on Deep Neural Network in Complex Environments[J]. Laser & Optoelectronics Progress, 2019, 56(11): 111505.