《测绘学报》
复制链接,关注《测绘学报》抖音!
【测绘学报的个人主页】长按复制此条消息,长按复制打开抖音查看TA的更多作品##7NsBSynuc88##[抖音口令]
摘要:针对三维坐标求解精度受非线性误差影响的问题,提出了一种多像前方交会与单隐层BP神经网络相结合的方法。基本过程为:①在样本点真实世界坐标已知的条件下,构建关于世界坐标的拉格朗日方程,对相机外参进行优化,以得到更高精度的三维坐标初值。②利用计算得到的三维坐标和真实三维坐标分别作为输入和输出参数对单隐层BP神经网络进行训练。③将三维坐标初值带入网络模型对其进行改正。试验结果表明:①相较于前方交会、稀疏光束法平差及典型神经网络方法,在试验装置环境视场内,本文方法解算精度较高,最大偏差为0.492 7 mm。②相较于典型神经网络方法,本文网络结构为3-6-3,结构简单且计算效率高。
关键词:前方交会 外方位参数 BP神经网络 拉格朗日方程 稀疏光束法平差
本文提出一种联合多像前方交会与神经网络的方法,采用最小化世界坐标误差的方法代替最小化重投影误差对相机外参进行优化,求解更高精度的世界坐标,并简化神经网络模型,将前方交会数学模型不完善带来的非线性误差包含在网络结构中,学习计算得到的世界坐标与真实世界坐标间的映射关系,对前方交会进行改正,以兼顾解算精度与计算效率。
1.1 相机外参数求解
相机外参是影响前方交会解算精度的重要因素,其求解精度易受到像点坐标和空间坐标的精度[19-20]以及成像模型的影响。SBA算法[21-23]是优化相机参数的主要方法,该方法通过假设像素坐标误差服从正态分布,最小化重投影误差对相机参数与世界坐标进行最大似然估计。然而,由于相机分辨率、视场角及像素坐标提取精度等因素,较难保证像素坐标误差服从正态分布。
结合图 1所示试验装置,在样本点世界坐标已知条件下,根据共线方程最小化世界坐标误差,对外方位参数进行优化。试验装置具有以下特性:能够控制标定板按照距离准确移动,可精确获得多组角点的世界坐标;装置由一个水平轴和一个竖直轴构成,故以标定板左上角内角点为世界坐标原点,相机位姿固定时,理想情况下不同位置标定板对应的世界坐标系与相机坐标系间的旋转矩阵不变,图像序列1对应的平移向量中x和z值不变,图像序列2对应的平移向量中y和z值不变。
![]() |
图 1 试验装置示意 Fig. 1 Diagram of experimental device |
图选项 |
像点、摄影中心以及空间点坐标满足共线方程为
式中,
利用图像序列1,最小化世界坐标X和Z的误差方程为
式中,r1、r2、r3分别为(a1 a2 a3)、(b1 b2 b3)、(c1 c2 c3);M为(x y -f);n为图像数量。每张标定板选取4个点,由旋转矩阵性质可得约束条件gi。
式(2)应用拉格朗日乘子法,构建拉格朗日方程,得到
假定λ为常量,对r1求偏导可得
同理,对r3、Xs、Zs、λi求偏导,联立求解得到对应外方位参数,并更新λ,利用式(1)更新空间点坐标X,Z。上述方法迭代更新空间点坐标,直到误差值小于阈值,最终可由旋转矩阵的性质求解得到r2。
对图像序列2利用上述方法对式(1)中的Y和Z构建拉格朗日方程,将r2、r3、Zs、Z、Y、Ys作为初值进行迭代求解,直到误差值小于阈值,即可得到相机外参的最优解。
1.2 多像前方交会
如图 2所示,在多个摄站点对物体进行摄影,获取n张像片,任一空间点A在图像上的构像分别为a1,a2,…,an。设n张图像的内外方位元素已知,理想情况下恢复摄影瞬间相机姿态,同名射线S1a1、S2a2,…,Snan必交于空间点A。利用同名射线相交确定对应空间点坐标的方法称为多像空间前方交会。
![]() |
图 2 多像前方交会 Fig. 2 Diagram of space intersection for multi-image |
图选项 |
S-XcYcZc为以摄影中心S为原点的相机坐标系;o-uv为像素坐标系;O-xy为像平面坐标系;Ow-XwYwZw为世界坐标系;S-XcwYcwZcw为相机坐标系旋转得到的坐标系,其与世界坐标系各轴平行。S在Ow-XwYwZw下可表示为
式中,R为HPR(Heading-Pitch-Roll)转角系统下的旋转矩阵;(tx,ty,tz)为Ow在S-XcYcZc下的坐标。
设图像上一点a的像素坐标为(u,v),其在S-XcYcZc下可表示为
在S-XcwYcwZcw下可表示为
在Ow-XwYwZw下可表示为
已知摄影中心和像点在世界坐标系下的坐标分别为(txw,tyw,tzw)和(xw,yw,zw),两点即可确定射线方向。理想情况下同名射线交点即为空间点坐标A,实际情况下,由于像点坐标测量误差、相机光学系统的光学畸变、CCD面阵几何畸变和其他因素,同名射线可能不交于一点甚至不相交,此时问题转化为
式中,
1.3 单隐层BP神经网络坐标改正
利用优化后的外方位参数进行多像前方交会,计算得到的世界坐标仍具有一定误差,并未实现真正的高精度解算,需对误差进行进一步改正。由于误差源比较分散且一般情况下难以精确模型化,而通过单隐层BP神经网络的反向传播过程能够不断更新网络,建立输入输出之间有效的函数映射。因此,在上述基础上利用BP单隐层神经网络建立计算世界坐标与真实世界坐标的函数映射,对计算误差进行改正,以实现前方交会高精度解算。方法描述如下:
(1) 样本采集。如图 1所示,以标定板t11左上角内角点为世界坐标原点。由运动控制器控制标定板按照输入脉冲数精确移动,获取角点a的真实世界坐标。同时采集图像序列,并利用1.1节方法对外参进行优化,得到标定板t11对应相机外参。进而利用多像前方交会方法计算角点a的世界坐标,得到真实世界坐标序列(Xi,Yi,Zi,i=1,2,…,n)以及世界坐标序列(
(2) 模型构建。选择合适的网络结构对前方交会改正至关重要。神经元过少,网络不具有必要的学习能力以及处理能力;神经元过多,会造成过拟合,导致网络泛化性能差[24]。利用经验公式:
![]() |
图 3 隐藏层神经元数与模型性能关系 Fig. 3 Relationship between the number of hidden layer nodes and model performance |
图选项 |
![]() |
图 4 单隐层BP神经网络结构 Fig. 4 Diagram of single hidden layer BP neural network structure |
图选项 |
(3) 世界坐标求解。选取不同于上述过程中的采样点,首先利用优化后的相机外参采用多像前方交会方法求取世界坐标。再将其作为输入参数代入神经网络模型中,利用BP神经网络对前方交会结果进行改正,求取高精度的世界坐标。
试验使用4 mm焦距,200万像素工业相机,CCD大小为1/2.7 inch,图像大小为640×480像素,程序编译环境为VS2013,运行环境为i5(1.8 GHz) CPU和4GB RAM。如图 1所示搭建试验平台,由运动控制器控制标定板按输入脉冲数精确移动,获取采样点真实世界坐标,并采集图像序列。图 5为标定板运动到不同位置,以不同位姿放置的相机拍摄得到的像片。
![]() |
图 5 标定板示意 Fig. 5 Diagram of calibration target |
图选项 |
2.1 外参优化对比
首先,利用张正友标定法[26]对摄像机进行标定,求解得到相机内参和畸变系数为
其次,根据旋转矩阵以及平移向量在本试验装置中的特性,对多幅标定板图像所对应的外方位参数取均值,作为初始相机外方位参数。利用多像前方交会求取初始世界坐标,然后利用图像序列1构建关于X和Z的拉格朗日方程,迭代求取对应相机外参,再利用图像序列2构建关于Y和Z的拉格朗日方程,最终得到标定板t11对应的外方位参数。
最后,利用上述方法优化后的相机参数进行多像前方交会,求取标定板某一角点运动过程中的世界坐标序列。为验证外参优化性能,模拟像素误差服从不同分布的情况,以与真实世界坐标的误差平方和为指标,将本文方法与外参优化典型方法SBA进行对比,试验结果如图 6所示。
![]() |
图 6 外参优化性能 Fig. 6 Diagram of exterior elements optimization performance |
图选项 |
由图 6可知,像素误差服从正态分布时,SBA性能良好,其他情况下性能相对较差。本文方法基于真实世界坐标约束,相较于SBA性能较好。
模拟像素误差服从正态分布,本文方法与SBA性能见表 1。
表 1 SBA与本文方法性能Tab. 1 Performances of sparse bundle adjustment and method in this paper
方法 | 初始重投影误差/像素 | 最终重投影误差/像素 | 初始三维坐标误差/mm2 | 最终三维坐标误差/mm2 | 迭代次数 | 运行时间/s |
SBA | 2.147 1 | 0.306 4 | 9.521 8 | 3.791 3 | 27 | 35.71 |
本文方法 | 2.147 1 | 0.176 5 | 9.521 8 | 2.021 9 | 30 | 19.13 |
表选项
由表 1可知,像素坐标误差服从正态分布时,利用本文方法优化相机外参,迭代次数与SBA较为接近,但本文方法在真实世界坐标的约束下优化外参,精度优于SBA,且运行时间远小于SBA。
2.2 方法有效性验证
2.2.1 真实试验数据验证
采用单隐层BP神经网络对多像前方交会结果进行进一步改正,求取高精度世界坐标。具体过程为:构建网络结构为3-6-3的BP单隐层神经网络模型,采用截尾高斯分布初始化权值,以tansig函数作为隐藏层和输出层的激活函数,设置学习率初始值为0.01,以搜索然后收敛方案在训练过程中动态调整学习率。设置测距为2000 mm,以图 1中t11左上角内角点为世界坐标原点,采集50组数据点,将计算得到的世界坐标以及真实世界坐标分别作为输入输出数据,对模型进行训练,由此构建两组世界坐标之间的映射关系。最后,采集训练数据集之外的数据对模型精度进行验证,测试数据点均匀分布于有效视场范围内,试验结果如图 7所示。
![]() |
图 7 模型精度示意 Fig. 7 Diagram of model accuracy |
图选项 |
图 7(a)表示测试点的真实世界坐标与模型输出世界坐标,模型输出的世界坐标与真实世界坐标误差较小。图 7(b)表示真实世界坐标与模型输出坐标的误差平方和,由图可得最大误差平方和小于0.14 mm2,说明BP神经网络具有较强的改正能力,所构建模型能够较好地表征两组世界坐标之间的非线性关系。
2.2.2 BAL数据集验证
BAL数据集[27]是目前用于验证集束调整算法性能的代表性数据集,数据集中包含空间点三维坐标以及对应于不同位姿相机的像素坐标,同时给出基于针孔相机模型对相机参数的估计值,包括旋转矩阵R,平移矩阵t,焦距f,径向畸变参数K1、K2。为证明本文方法有效性,从数据集中选取两组数据进行测试,一组为Dubrovnik数据集,该组数据由16个相机以不同位姿对22 106个物方点进行观测,像点总数为83 718个;另一组为Trafalgar数据集,由21个相机以不同位姿对11 315个物方点进行观测,像点总数为36 455个。从两组数据集中分别随机选取100个物方点利用本文方法构建神经网络,并选取训练数据集以外的50个物方点进行测试,测试结果见表 2。
表 2 BAL数据集测试Tab. 2 The test of BAL dataset
数据集 | 初始平均重投影误差/像素 | SBA平均重投影误差/像素 | 本文平均重投影误差/像素 | 初始平均三维坐标误差/mm2 | SBA平均三维坐标误差/mm2 | 本文平均三维坐标误差/mm2 |
Dubrovnik数据集 | 7.070 9 | 0.464 1 | 0.315 4 | 15.341 8 | 5.297 3 | 3.504 3 |
Trafalgar数据集 | 10.002 7 | 0.912 9 | 0.543 2 | 20.021 9 | 7.416 8 | 4.023 8 |
表选项
试验结果表明,在数据量较大的公开数据集中本文方法同样适用,并且具有较高精度。
2.3 稳健性分析
像点坐标提取精度直接影响网络性能,为验证方法的稳健性,在提取亚像素角点坐标的基础上对像点坐标加入不同水平噪声,并求解三维坐标。加噪后的像点坐标表示为:(
表 3 像点坐标精度对求解三维坐标的影响Tab. 3 The effect of image coordinate precision on solving three-dimensional coordinates
N的取值 | 像点重投影误差/像素 | 最大偏差/mm | 最小偏差/mm | 均方差/mm |
N=0 | 0.175 0 | 0.101 7 | 0.034 3 | 0.018 6 |
N=1 | 0.724 5 | 0.136 9 | 0.071 8 | 0.020 7 |
N=2 | 1.854 4 | 0.234 1 | 0.102 1 | 0.040 5 |
N=3 | 3.064 8 | 0.381 2 | 0.172 2 | 0.062 2 |
N=4 | 5.782 1 | 0.573 9 | 0.294 7 | 0.082 1 |
表选项
试验结果表明,三维坐标求解精度与像点坐标精度成正比。噪声水平在一定范围内时,本文方法具有较高精度,说明本文方法具有较强的稳健性。
2.4 不同距离条件下的精度对比
由试验可知,三维坐标求解精度与距离有关,为验证距离与求解精度的关系,将相机分别置于距标定板平面1、2、3与4 m处,随机选取测试点作为测试集数据,三维坐标求解结果如图 8所示。
![]() |
图 8 不同距离下本文方法性能 Fig. 8 Diagram of performances at different distances |
图选项 |
试验结果表明,在近距离范围内,本文方法具有较高精度,距离越近,三维坐标求解精度越高,超出一定距离后,无法满足高精度要求。原因在于,训练样本质量对网络的泛化具有较大影响,训练样本数据反映近距离数据特性,因此,在近距离范围内,模型泛化性能较好,求解得到的三维坐标具有较高精度。且超出一定距离后,受相机分辨率影响像点坐标提取精度下降,具有较高噪声,三维坐标求解精度不具稳定性。
2.5 不同方法对比
将相机固定于距离被测点3190 mm处随机选取测试点与其他几种方法进行对比,在此距离下像点重投影平均误差为3.613 7像素。方法1[14]为利用神经网络调整像点误差,进而对三维坐标进行求解。方法2[15]为利用左右像片像素坐标以及世界坐标作为神经网络训练数据实现三维坐标解算。方法3[28]结合混沌粒子群优化算法(chaos particle swarm optimization,CPSO),构建CPSO-BP神经网络求解三维坐标。方法4[29]结合遗传算法(genetic algorithm,GA),构建GA-BP神经网络求解三维坐标。试验结果如图 9所示。
![]() |
图 9 不同方法试验结果 Fig. 9 Experimental results of different methods |
图选项 |
如图 9所示,由相机参数以及数学模型不完善带来的非线性误差导致前方交会、SBA以及利用神经网络调整像素误差进而求取三维坐标的方法较难达到高精度要求,其他方法直接构建输出为世界坐标的神经网络,精度相对于上述3种方法有大幅提高。方法3和方法4对初始权值进行优化,相对于方法2精度更高。本文方法基于优化后的外参,利用多像前方交会计算得到更为准确的世界坐标,并利用神经网络建立两组世界坐标间的映射关系,相对于其他方法性能进一步提高。试验表明本文方法性能较高,能够对世界坐标进行较好的调整实现高精度三维坐标求解。7种方法的性能指标见表 4。
表 4 不同方法对比结果Tab. 4 Results of different methods
性能指标 | 前方交会 | SBA | 方法1 | 方法2 | 方法3 | 方法4 | 本文方法 |
网络结构 | - | - | 4-16-3 | 4-10-3 | 4-17-3 | 4-8-3 | 3-6-3 |
最大偏差/mm | 3.102 1 | 1.317 2 | 2.791 86 | 0.625 3 | 0.553 1 | 0.548 7 | 0.492 7 |
下降比例/(%) | 84.12 | 62.59 | 82.35 | 21.20 | 10.92 | 10.21 | - |
最小偏差/mm | 1.573 5 | 0.421 6 | 1.082 1 | 0.392 7 | 0.257 9 | 0.261 2 | 0.198 3 |
下降比例/(%) | 87.40 | 52.96 | 81.67 | 49.50 | 23.11 | 24.08 | - |
均方差/mm | 0.655 4 | 0.243 1 | 0.408 7 | 0.079 7 | 0.092 1 | 0.083 2 | 0.077 5 |
下降比例/(%) | 88.16 | 68.09 | 81.02 | 2.67 | 15.78 | 6.77 | - |
运行时间/s | 1.19 | 33.70 | 57.428 | 20.14 | 15.81 | 15.01 | 12.718 |
下降比例/(%) | -90.64 | 62.25 | 77.85 | 36.84 | 19.54 | 15.26 | - |
表选项
由表 4可知,利用本文方法构建网络所需隐藏层神经元个数较少,网络结构简单,且求得的世界坐标在同等距离条件下精度最高。与此同时,算法运行时间有较为明显的下降。由此可得,本文方法在解算精度以及计算效率上均具有良好的表现。
本文方法的创新之处是,通过多像前方交会利用优化后的外参计算得到的世界坐标与真实世界坐标构建浅层神经网络,在保证改正精度的同时,收敛速度快,更加符合工程应用需要。在实际应用中,可通过将多个标定平面放置在有效视场内(或三维标定板)构建测试数据集。需要注意的是,在像片观测条件差的情况下需考虑粗差的剔除。本文方法潜在应用场景为近距离高精度三维测量任务,如变形监测、工件测量及获取高精度3D点云等。
第一作者简介:李佳田(1975—),男,博士,教授,研究方向:数值最优化方法与机器场景理解,Email:ljtwcx@163.com
联系客服