-
摘要: 提高稀少甚至无地面控制点的区域网平差精度,是实现境外和外业测控困难区域高精度测图的核心问题之一,也是主要的技术难点。为了充分利用高分七号激光测高数据与立体影像同步获取、相对精度较高、高程精度极高的特点,充分发挥足印影像作用,提出了一种激光测高数据辅助的高分七号卫星立体影像区域网平差方法。通过足印影像实现了激光高程控制点在立体影像上的自动量测,利用其极高的高程精度对区域网立体影像进行高程控制,经过联合区域网平差实现区域网影像高程精度提升。通过覆盖不同地形类型的山东测区激光测高数据与立体影像联合平差实验表明,仅使用激光测高数据作为高程控制,实验区高程中误差可由原始7.97 m提高到0.79 m,高程最大误差优于1.5 m,高程精度改善明显。Abstract:Objectives Improving the accuracy of block adjustment with few or even no ground control points (GCP) is one of the core issues for high-precision mapping of areas difficult to get GCP, and it is also a major technical difficulty. In order to make full use of the footprint image and the excellent high accuracy of elevation, and the high relative accuracy between the laser altimetry data and stereo images, we propose a combined adjustment method of Gaofen-7 (GF-7) satellite stereo images aided with laser altimetry data.Methods In this method, the elevation control points are automatically extracted by registering the laser footprint images and stereo images, and then they are used as the vertical control in the combined adjustment to improve the elevation accuracy.Results The combined block adjustment experiments performed in Shandong with different terrains show that using only laser altimetry data as elevation control, the root mean square errors of elevation can be significantly improved from the original 7.97 m to 0.79 m, and the maximum elevation error is better than 1.5 m.Conclusions The experimental results reveal that the proposed method can substantially improve the elevation accuracy of satellite imagery. Additionally, with integration of few horizontal control points, the plane accuracy and elevation accuracy can be simultaneously improved. The proposed method is of great significance to reduce the field survey and improve the efficiency of block adjustment.
-
应用成本相对低廉的传感器获取场景的精细三维模型是机器人、增强现实等领域的研究热点。在机器人领域中, 为了实现机器人在未知场景的自主移动, 研究者们希望通过构建“地图”来指导机器人的行动, 其中代表性研究方向是同时定位与地图构建(simultaneous localization and mapping, SLAM)。在最初的研究中, 因计算资源的限制以及实时性要求, 经典SLAM算法基于中央处理器(central processing unit, CPU)实现传感器定位定姿, 应用稀疏特征点法[1]或直接法[2-3]实现地图构建, 仅能实时重建非常稀疏的三维点云或是半稠密的三维点云, 难以表达场景的细节信息。2010年底, 微软公司发布了一种可实时获取彩色RGB图像以及深度图像的RGB-D深度摄像头Kinect, 采集速度快、精度较高且成本低廉, 迅速应用于机器人与增强现实等领域。应用深度图像不仅能辅助相机跟踪, 还可以提供稠密的场景三维信息。Newcombe等[4]于2011年率先提出基于RGB-D传感器的室内实时三维重建算法KinectFusion, 引领了后续关于基于深度摄像头的三维重建工作以及稠密视觉SLAM的研究。以KinectFusion为基础, 相继涌现了Kintinuous[5]、ElasticFusion[6]、Voxel Hashing[7]、BundleFusion[8]等优秀的室内场景三维重建算法。
在满足刚性变换以及室内静态场景的前提下, KinectFusion算法使用深度信息进行位姿估计实现定位, 设计高效并行的算法在图形处理器(graphics processing unit, GPU)上运行。不同于传统SLAM算法, KinectFusion算法基于截断符号距离函数(truncated signed-distance function, TSDF)表达三维模型, 使用迭代最近点算法(iterative closest point algorithm, ICP)估计位姿并融合点云, 应用光线投影算法进行三维渲染。利用GPU首次实现了室内场景的实时稠密三维重建, 在小范围场景中重建效果较好, 但其局限性为:①基于TSDF预设的三维网格限制了重建场景的尺度, 仅能重建小范围场景; ②仅使用ICP算法进行位姿估计严重依赖于场景中几何特征的丰富程度, 当场景中出现光强度变化时会引起定位失效; ③没有回环检测模块, 无法实现闭环优化; ④定位失效时无法进行重定位, 累积误差大等。为了解决上述问题, 研究者们开展了一系列研究工作:①为了突破场景尺度的限制, 提出让三维网格随相机运动, 移出三维网格的部分不参与计算[7], 或是使用八叉树数据结构减弱对显存的依赖[9]; ②为了减小对于场景几何信息的依赖, 融合ICP、视觉快速里程计(fast odometry from vision, FOVIS)、RGB-D 3种位姿跟踪方法, 减小误差累积[5]; ③为了实现回环检测, 提出了使用词袋法(distributed bag of words, DBoW)检测闭环回路, 构建位姿图进行优化[5]; ④为了改进定位失效并提升模型显示效果, 利用边线特征中的点对点关系辅助原始ICP算法提高鲁棒性, 以及通过预设地面点云模型或添加极线及共面约束改进模型显示效果[10-11]; ⑤为了表达更大规模场景并提升模型的表达效果, 舍弃了基于预设网格表达场景的方式, 使用面元(surfels)表达场景, 面元包含了三维点的位置、法向量等信息, 将传感器获取的信息直接作用到面元上而非通过位姿图间接作用于三维模型[6, 12-13]。
在上述改进工作中, 2015年提出的ElasticFusion算法使用面元表达场景可以更好地重建大规模场景, 摆脱了以往基于TSDF对于场景尺度的限制; 随机蕨算法的引入也有效地减少了模型中的“重影”现象, 提升了模型的重建效果。但随机蕨算法在闭环检测模块上的应用效果仍不及DBoW, 限制了ElasticFusion算法的重定位能力, 并且该方法在初始点云配准阶段选用了经典ICP算法中基于投影法选取匹配点对的方式, 易导致误差造成位姿参数解算不准确, 在应用于小规模、很少存在回环的场景时, 会出现模型局部重建效果差的情况, 甚至应用在大规模场景重建时重建效果错乱等。
本文针对室内小规模场景局部模型重建效果差的问题, 在保证算法实时性的基础上, 通过改进原始ICP算法中匹配点的选取策略, 提升模型重建效果, 提高位姿参数解算精度。
1 ElasticFusion算法介绍
ElasticFusion算法借鉴了以KinectFusion为代表的实时稠密视觉SLAM算法的经典框架, 在充分使用GPU的情况下选用OpenGL完成点云的更新、融合与显示。ElasticFusion算法使用面元模型表达场景而非其他算法使用的TSDF模型融合点云, 应用几何及光度一致性进行位姿估计并加以优化, 同时将已重建好的模型根据预设的时间阈值δt划分为当前视角下的活动区域以及不在当前视角下的非活动区域。引入了随机蕨算法实现回环检测与重定位, 提高了系统的鲁棒性[14]。
ElasticFusion算法主要分为4个模块:①数据采集与处理, 通过深度传感器获取深度图像与RGB图像, 并将其转化为三维点云, 得到其三维坐标与法向量; ②位姿估计, 将当前帧的三维点云与已有重建模型进行配准, 几何上通过ICP算法计算位姿, 同时利用RGB图像在光度以及颜色的一致性加以约束优化位姿估计结果; ③当前帧图像编码与回环检测, 利用随机蕨算法中的编码机制对当前帧图像进行编码, 其编码值与当前存储关键帧编码值的数据库进行比对, 判断当前帧能否作为关键帧以及当前帧与已有模型是否存在回环(若存在回环, 应用形变图[12]对已重建模型以及位姿参数进行优化); ④点云融合, 将当前帧获取的点云与已有模型进行融合、更新及显示, 为下一帧配准提供依据。算法流程如图 1所示。
2 改进的ElasticFusion算法
2.1 影响模型重建效果的因素分析
影响三维模型重建效果的原因主要有两点, 一是初始点云配准精度, 二是闭环检测准确程度。在点云配准阶段, ElasticFusion算法使用几何及颜色光度一致性约束实现配准。在闭环检测中应用随机蕨算法, 其主要原因是算法的核心工作在于场景重建, 若在闭环检测模块中改用词袋法, 会消耗较多计算资源。因此, 考虑通过减小点云初始配准阶段产生的累积误差来提高位姿参数解算精度, 进而提升模型重建效果。
2.2 ElasticFusion中的ICP算法应用
ICP算法广泛应用于点云配准中, 在稠密SLAM中位姿估计的常用方法就是通过投影法确定点对的匹配关系, 应用最小二乘法使点到平面的距离最小, 进而完成位姿参数解算。利用ICP算法解算出的位姿参数是点云融合的重要参数。尽可能减小位姿参数解算的误差能够极大程度地帮助三维重建算法进行点云融合与更新显示。而相邻帧间点云对匹配点的选取直接影响着ICP算法进行点云配准的精度。本文在经典ICP算法匹配点对选取策略的基础上, 改进匹配点选取方法, 减小初始误差对于点云配准的影响。
2.2.1 匹配点选取方法
考虑到相邻两帧间位姿变化相对较小, 通常采用投影法选取ICP算法所需要的匹配点对。图 2为相邻两帧间点对选取示意图(以二维表示)。相机连续两帧采集的环境信息抽象表示为曲线K、K+1, 当前帧坐标系原点为Qk+1。在选取匹配点对时, 以Qk+1为基准, 利用投影法近似选取qk与pk作为匹配点对进行位姿解算。
2.2.2 位姿参数解算
在两帧间点云进行配准时, 为了减小误差造成的影响, 利用最小化点到平面距离的方式进行位姿参数的解算。相较于最小化点对点的距离进行优化, 最小化点到平面距离在二三维点云配准上有着显著优势[15]。最小化点到平面距离示意图如图 3所示。
使目标函数E取得最小值求解位姿参数:
$$ E = \mathop \sum \limits_{l = 1}^k {\left( {{{(\mathit{\boldsymbol{R}}{\mathit{\boldsymbol{p}}_l} + \mathit{\boldsymbol{t}} - {\mathit{\boldsymbol{q}}_l})}^{\rm{T}}}\cdot{\mathit{\boldsymbol{n}}_l}} \right)^2} $$ (1) 式中, R为旋转矩阵; t为平移参数; 将R表示为绕X、Y、Z轴的旋转分量:
$$\mathit{\boldsymbol{R}} = {\mathit{\boldsymbol{R}}_Z}{\mathit{\boldsymbol{R}}_Y}{\mathit{\boldsymbol{R}}_X}$$ (2) 设R绕X、Y、Z轴的旋转角度分别为α、β、γ, 则:
$$\left\{ {\begin{array}{*{20}{l}} {{\mathit{\boldsymbol{R}}_Z} = \left[ {\begin{array}{*{20}{c}} {{\rm{cos}}\gamma }&{{\rm{sin}}\gamma }&0\\ { - {\rm{sin}}\gamma }&{{\rm{cos}}\gamma }&0\\ 0&0&1 \end{array}} \right]}\\ {{\mathit{\boldsymbol{R}}_X} = \left[ {\begin{array}{*{20}{c}} 1&0&0\\ 0&{{\rm{cos}}\alpha }&{{\rm{sin}}\alpha }\\ 0&{ - {\rm{sin}}\alpha }&{{\rm{cos}}\alpha } \end{array}} \right]}\\ {{\mathit{\boldsymbol{R}}_Y} = \left[ {\begin{array}{*{20}{c}} {{\rm{cos}}\beta }&0&{ - {\rm{sin}}\beta }\\ 0&1&0\\ {{\rm{sin}}\beta }&0&{{\rm{cos}}\beta } \end{array}} \right]}\\ {\mathit{\boldsymbol{t}} = {{\left[ {\begin{array}{*{20}{c}} {{t_x}}&{{t_y}}&{{t_z}} \end{array}} \right]}^{\rm{T}}}} \end{array}} \right.$$ (3) 根据算法中采用的小角近似处理方式, 即:
$${\rm{sin}}\theta \approx \theta {\rm{}}, {\rm{cos}}\theta \approx 1$$ (4) 将[R|t]表示为:
$$\left[ {\mathit{\boldsymbol{R}}|\mathit{\boldsymbol{t}}} \right] = \left[ {\begin{array}{*{20}{c}} 1&\gamma &{ - \beta }\\ { - \gamma }&1&\alpha \\ \beta &{ - \alpha }&1 \end{array}\left| {\begin{array}{*{20}{c}} {{t_x}}\\ {{t_y}}\\ {{t_z}} \end{array}} \right.} \right]{\rm{}}$$ (5) 改写为如下形式:
$$\mathit{\boldsymbol{x}} = {\left[ {\begin{array}{*{20}{c}} \alpha &\beta &\gamma &{{t_x}}&{{t_y}}&{{t_z}} \end{array}} \right]^{\rm{T}}}{\rm{}}$$ (6) 根据
$$\begin{array}{l} \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\mathit{\boldsymbol{R}}{\mathit{\boldsymbol{p}}_l} + \mathit{\boldsymbol{t}} = \\ \left[ {\begin{array}{*{20}{c}} 0&\gamma &{ - \beta }\\ { - \gamma }&0&\alpha \\ \beta &{ - \alpha }&0 \end{array}} \right]{\mathit{\boldsymbol{p}}_l} + {\mathit{\boldsymbol{I}}_{3 \times 3}}\left[ {\begin{array}{*{20}{c}} {{t_x}}\\ {{t_y}}\\ {{t_z}} \end{array}} \right] + {\mathit{\boldsymbol{I}}_{3 \times 3}}{\mathit{\boldsymbol{p}}_l} = \\ \left[ {\begin{array}{*{20}{c}} 0&{ - {p_{lz}}}&{{p_{ly}}}&1&0&0\\ {{p_{lz}}}&0&{ - {p_{lx}}}&0&1&0\\ { - {p_{ly}}}&{{p_{lx}}}&0&0&0&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} \alpha \\ \beta \\ \gamma \\ {{t_x}}\\ {{t_y}}\\ {{t_z}} \end{array}} \right] + {\mathit{\boldsymbol{p}}_l} = \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\mathit{\boldsymbol{A}}{({\mathit{\boldsymbol{p}}_l})_{3 \times 6}}{\mathit{\boldsymbol{x}}_{6 \times 1}} + {\mathit{\boldsymbol{p}}_l}_{3 \times 1} \end{array}$$ (7) 其中I3×3为三阶单位矩阵, 由式(1)可得:
$$\begin{array}{l} E = \sum\limits_{l = 1}^k {{{\left( {{{\left( {\mathit{\boldsymbol{R}}{\mathit{\boldsymbol{p}}_l} + \mathit{\boldsymbol{t}} - {\mathit{\boldsymbol{q}}_l}} \right)}^{\rm{T}}} \cdot {\mathit{\boldsymbol{n}}_l}} \right)}^2}} = \sum\limits_{l = 1}^k {\left( {\left( {\mathit{\boldsymbol{A}}\left( {{\mathit{\boldsymbol{p}}_l}} \right)\mathit{\boldsymbol{x}} + } \right.} \right.} \\ {\left. {{{\left. {\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\mathit{\boldsymbol{p}}_l} - {\mathit{\boldsymbol{q}}_\iota }} \right)}\;^{\rm{T}}} \cdot {\mathit{\boldsymbol{n}}_l}} \right)\;^2}\mathop = \limits^{{\rm{def}}} \\ \;\;\;\;\;\;\sum\limits_{l = 1}^k {\left( {\mathit{\boldsymbol{x}}_{1 \times 6}^{\rm{T}}{\mathit{\boldsymbol{B}}_{6 \times 6}}{\mathit{\boldsymbol{x}}_{6 \times 1}} + 2{\mathit{\boldsymbol{A}}_{1 \times 6}}{\mathit{\boldsymbol{x}}_{6 \times 1}} + C} \right)} \end{array}$$ 对$f\left( \mathit{\boldsymbol{x}} \right) = \mathit{\boldsymbol{x}}_{1 \times 6}^{\rm{T}}{\mathit{\boldsymbol{B}}_{6 \times 6}}{\mathit{\boldsymbol{x}}_{6 \times 1}} + 2{\mathit{\boldsymbol{A}}_{1 \times 6}}{\mathit{\boldsymbol{x}}_{6 \times 1}} + C$中的x求导数, 令导数为0可求解x, 即:
$$\left\{ {\begin{array}{*{20}{l}} {f'\left( \mathit{\boldsymbol{x}} \right) = 2\mathit{\boldsymbol{x}}_{1 \times 6}^{\rm{T}}{\mathit{\boldsymbol{B}}_{6 \times 6}} + 2{\mathit{\boldsymbol{A}}_{1 \times 6}} = 0}\\ {{\mathit{\boldsymbol{x}}^{\rm{T}}} = - {\mathit{\boldsymbol{A}}_{1 \times 6}}{\mathit{\boldsymbol{B}}^{ - 1}}_{6 \times 6}} \end{array}} \right.$$ (8) 其中:
$$\begin{array}{l} {\mathit{\boldsymbol{A}}_{1 \times 6}} = {\left( {{\mathit{\boldsymbol{p}}_l} - {\mathit{\boldsymbol{q}}_l}} \right)^{\rm{T}}}_{1 \times 3}{\mathit{\boldsymbol{n}}_l}_{3 \times 1}{\mathit{\boldsymbol{n}}_l}{^{\rm{T}}_{1 \times 3}}\mathit{\boldsymbol{A}}{\left( {{\mathit{\boldsymbol{p}}_l}} \right)_{3 \times 6}}\\ {\rm{}}{\mathit{\boldsymbol{B}}_{6 \times 6}} = \mathit{\boldsymbol{A}}{\left( {{\mathit{\boldsymbol{p}}_l}} \right)^{\rm{T}}}_{6 \times 3}{\mathit{\boldsymbol{n}}_l}_{3 \times 1}{\mathit{\boldsymbol{n}}_l}{^{\rm{T}}_{1 \times 3}}\mathit{\boldsymbol{A}}{\left( {{\mathit{\boldsymbol{p}}_l}} \right)_{3 \times 6}}\\ {\rm{}}C = {\mathit{\boldsymbol{n}}_l}{^{\rm{T}}_{1 \times 3}}{\left( {{\mathit{\boldsymbol{p}}_l} - {\mathit{\boldsymbol{q}}_l}} \right)_{3 \times 1}}{\left( {{\mathit{\boldsymbol{p}}_l} - {\mathit{\boldsymbol{q}}_l}} \right)^{\rm{T}}}_{1 \times 3}{\mathit{\boldsymbol{n}}_l}_{3 \times 1} \end{array}$$ 多次迭代计算后, 可解算出位姿估计参数。
2.3 ICP算法中匹配点选取策略的改进
ICP算法迭代求解过程中点对的对应关系并不改变, 因此, 匹配点对选取的恰当与否直接影响位姿参数的解算精度。在原始算法中, 通过投影法选取匹配点对时, 虽粗略考虑法向量夹角以及点对间欧氏距离等因素, 但仍存在匹配点选取不恰当等问题。因相邻两帧间位姿变化通常相对较小(正常情况下, 相机平移及旋转比较平滑), 在尽量保证算法实时性, 避免占用较大计算资源的基础上, 借鉴文献[16]的思想, 考虑将法向量作为选取匹配点的重要参考指标。
在投影法选取出匹配点的基础上, 以一定半径确定圆形搜索区域, 遍历区域内包含该帧点云的所有候选点来寻找最佳匹配点, 如图 4所示。
以图 4选取p4的匹配点为例, 在已有匹配点q4的基础上, 分别选取p4以及q4中点m4为圆心, 以半径$r=\frac{3}{2}\left|p_{4} q_{4}\right|$确定圆形搜索区域Q(参数$\frac{3}{2}$的选定使得圆形搜索区域包含更多的候选点), 当前帧点云包含在圆形搜索区域内的所有点即作为候选点${q_i}\left( {{q_i} \in Q} \right)$, 求解公式如下:
$$f\left( {{q_i}} \right) = \lambda \cdot \mathit{\boldsymbol{N}}\left( {{q_i}} \right) \cdot \mathit{\boldsymbol{N}}\left( {{p_4}} \right)$$ (9) 式中, λ为可调节权重值; N(*)为*点法向量。采用向量点乘的方式选取两帧间法向量最为接近的两点作为匹配点。根据f(qi)所得数值, 所选匹配点q*可表示为:
$${\rm{}}{q^*} \leftarrow {\rm{max}}f\left( {{q_i}} \right)$$ (10) 根据各圆心确定的搜索区域内候选匹配点的情况, 经过实验结果对比, 确定选取线段中点作为圆心, 1.5倍线段长度作为半径, 如图 4黑色圆心及黑色圆形搜索区域所示。由起始点pn及根据投影法确定的匹配点qn, 选取线段pnqn中点mn为圆心, 确定半径$r=\frac{3}{2}\left|p_{n} q_{n}\right|$的圆形区域Qn, 在Qn内的所有点作为候选点qi, 通过计算选取pn的最佳匹配点${q^*} \leftarrow \max \left( {\lambda \cdot \mathit{\boldsymbol{N}}\left( {{\mathit{\boldsymbol{q}}_\mathit{\boldsymbol{i}}}} \right) \cdot \mathit{\boldsymbol{N}}\left( {{\mathit{\boldsymbol{p}}_\mathit{\boldsymbol{n}}}} \right)} \right)$。
当根据投影法无法选出合适的初始匹配点时, 选取该帧点云中起始点q0或终止点q任一点确定半径$r=\frac{3}{4}\left|p_{n} q\right|$或$r=\frac{3}{4}\left|p_{n} q_{0}\right|$圆形搜索区域, 如图 5所示。
当相邻两帧出现大量点云平行的情况时(如图 6所示), 减小ICP算法所占权重, 借鉴文献[10]提出的提取深度数据中的边线特征并结合颜色光度一致性进行位姿估计。
2.4 利用径向基函数实现点云孔洞修补
ElasticFusion算法应用于室内场景时, 由于深度摄像头在采集数据时会出现物体遮挡、物体表面出现反射以及光强度变化等, 引起采集数据缺失, 造成重建模型中出现孔洞, 容易影响机器人对于场景的理解。为了更好地表达场景, 在已有重建模型的基础上, 可利用径向基函数来修补重建点云模型中孔洞, 以提升模型重建效果。
对于孔洞中丢失的点, 无法获得其实测数据。孔洞修补最主要的是利用孔洞区域附近的邻域几何信息, 采用某种算法在保证几何特征的前提下最大程度地恢复原有模型[17]。利用径向基函数重建隐式曲面的工作已是点云孔洞修补的主流方法[18]。另一主流方法是基于体素进行孔洞修补。由于基于体素的孔洞修复算法需要将点云模型进行体素离散化处理, 计算复杂、耗时长, 且在数据量较大时效率低, 因此本文采用利用径向基函数建立隐式曲面的方法。
孔洞修补工作主要分为两步, 一是提取并确定点云数据的边界与孔洞区域的边界, 二是对已有孔洞区域利用径向基函数进行修补。在提取并确定点云数据与孔洞区域边界后, 借鉴文献[19]的思想, 利用法向量的特性, 将最外层点云数据中法向量相近的数据提取出来, 该部分数据有极大概率是墙壁、地板或是天花板等。再以点云数据中散乱点云点为基础, 借鉴文献[20]的思想, 对无法建立三角网格的散乱点进行标注, 并根据其空间拓扑关系确定孔洞边界点。
在孔洞边界确定后, 利用径向基函数实现孔洞修补。该方法对于较平坦区域效果显著, 但在曲率变化较大的地方难以满足复杂形状要求[21]。因此, 针对地面、墙壁及天花板等区域构建基于径向基函数的隐式曲面, 利用最小二乘平滑函数对孔洞多边形进行拟合。基于径向基函数的隐式曲面方程可表示为:
$$F\left( n \right) = \mathop \sum \limits_{l = 1}^k {\omega _i}\varphi \left( {n - {q_i}} \right) + P\left( n \right)$$ (11) 式中, n表示隐式曲面上的任一点; qi为建立曲面所需的采样点; ωi是采样点一一对应的权值; P(n)为根据n点坐标(nx, ny, nz)构建的平面; φ(n-qi)为径向基函数[22]。然后根据梯度约束调整拟合的孔洞多边形向隐式曲面, 完成孔洞修补。
3 实验
本文采用公开数据集ICL-NUIM(https://www.doc.ic.ac.uk/~ahanda/VaFRIC/iclnuim.html)以及算法的样例数据dyson_lab.klg(https://wp.doc.ic.ac.uk/robotvision/, 由英国帝国理工学院戴森实验室提供), 对改进后的算法进行实验验证, 分别从模型重建效果和轨迹对比两方面进行评价。实验使用的笔记本电脑配置为CPU Intel Core i7-7820HK 2.9 GHz、16 GB内存以及Nvidia GeForce GTX1070 GPU(8 GB显存), 操作系统为Ubuntu16.04。
3.1 三维重建算法改进实验
对各组数据进行实验, 分别从模型重建效果与相机轨迹进行分析。首先使用dyson_lab.klg样例数据进行三维重建实验(该数据没有提供轨迹的真值数据, 仅能从重建模型的显示效果上评价)。从图 7可以看出, 在场景中心位置的办公桌附近, 原始算法重建模型出现杂乱不一致现象, 改进后算法重建模型一致性更强, 显示效果更逼真。与原始算法存在一定概率闭环失败的现象相比, 改进后算法能减少最后闭环检测的时间, 降低闭环失败的概率。
ICL-NUIM数据集由英国帝国理工学院与爱尔兰国立梅努斯大学联合提供, 主要用于评价视觉里程计、室内三维重建以及SLAM算法等相关研究工作[23]。选用该数据集能在避免使用算法闭环优化模块的前提下, 验证对算法的改进效果。且ElasticFusion算法及ICL-NUIM数据集均是由英国帝国理工学院提供, 使用相同数据集比对算法改进效果更佳。相比于TUM-RGBD数据集, ICL-NUIM数据集的每组数据均为室内部分场景, 很少存在回环, 可以更好地满足实验需求。并且该数据集具备室内场景的共性特点, 实验结果可以推广应用于其他数据集上。利用ICL-NUIM数据集提供的RGB图像、深度图像以及相机轨迹的真值文件(ground truth)进行实验对比。该数据集有8组数据, 分为卧室场景(livingroom, lr_kt)以及办公室场景(officeroom, or_kt), 每个场景对应4组数据。
图 8为使用lr_kt0数据的实验效果对比, 图 9为相机轨迹对比图(为更好地对比相机轨迹恢复情况, 将相机轨迹映射至二维x-y平面进行比对, 红色为相机轨迹真值, 绿色为原始算法轨迹估计值, 蓝色为改进后算法轨迹估计值)。图 8中, 立式台灯的模型重建显示效果有明显的提升; 图 9中, 矩形方框内原始算法的轨迹估计出现跳跃, 该偏差范围对应的图像帧为多帧立式台灯图像, 其轨迹恢复的偏差对台灯的重建产生重影等影响。虽然原始算法与改进后的算法轨迹大致相似, 但对比原始算法在矩形区域的偏差可以看出, 改进后算法的相机轨迹与轨迹真值更加吻合。
图 10所示为使用lr_kt1数据的实验效果对比图, 图 11为使用lr_kt1数据的相机轨迹对比图。在对于场景几何结构的重建中, 原始算法没能有效恢复平面及立体上场景的矩形及长方体结构, 改进后算法则可以较好地对场景进行表达。图 11中, 改进后算法的轨迹与真实轨迹更加吻合。
图 12为使用lr_kt3数据的实验效果对比, 图 13为使用lr_kt3数据的相机轨迹对比图。原始算法在壁画及门的重建效果上有重影, 改进后的算法可很好地对场景进行表达。在相机轨迹对比上, 随着模型重建的推进, 原始算法的轨迹估计有明显偏差。在模型重建后期, 由于原始算法对于位姿估计的累积误差, 造成了对同一场景的表达上出现重影。而改进算法的位姿估计则更接近于真值轨迹, 使得重建模型表达效果更逼真。
在对ICL-NUIM数据集8组数据进行的实验中, 有3组数据三维重建结果有明显的提升, 避免了如同一物体重建过程中出现重影、闭合区域无法闭合等不一致现象; 有2组数据重建效果提升不明显, 仅是极小范围或是单一物体的重建效果改进; 另3组数据重建效果基本没有提升。但在相机轨迹估计方面, , 8组数据中改进后算法所估计的相机轨迹均与轨迹真值更加相近或吻合。
上述实验表明, 改进算法在模型显示效果以及相机轨迹估计方面较原有算法都有提升。3组重建效果基本没有提升的实验中, 其重建的场景均是小范围、几何特征信息不丰富、较空旷的场景且不存在闭环约束。可见在重建该类场景时, 原始算法及改进后算法的重建效果都有待提升。
3.2 点云模型孔洞修补实验
使用改进算法生成的点云模型作为实验数据, 对平坦区域的孔洞进行修补。选用dyson_lab.klg数据生成的三维模型作为实验数据, 实验对比如图 14所示, 图 14(a)为原始点云模型, 图 14(b)为孔洞修补后较为完整的点云模型。对于因物体遮挡产生的孔洞, 选用由数据lr_kt0所生成的点云模型作为实验数据, 实验对比如图 15所示。
由上述两个实验可以看出, 利用径向基函数生成隐式曲面的方法可以较好地修补三维重建模型中存在的孔洞。该方法对于较为平坦的孔洞修补鲁棒性高, 但对修补曲率较大或是不规则弯曲的物体等产生的点云孔洞有一定局限性。
4 结语
本文主要针对ElasticFusion算法在三维重建过程中出现的局部模型重建出现错乱的情况进行改进, 并对三维模型中因物体遮挡、物体反射率、光强度变化等原因造成的点云孔洞进行修补, 以提升室内场景三维模型的重建效果。从原始算法中相机位姿估计的ICP算法入手, 对匹配点对选取策略进行了改进。在利用投影法选取匹配点对的基础上, 确定搜索区域, 通过遍历计算区域内所有候选点与待匹配点的法向量乘积得到匹配点对。在ICP算法的初始阶段, 通过引入简单的数学计算选取出更为准确的匹配点进行位姿解算, 在不过多消耗计算资源的前提下保证了算法的实时性。
对比实验表明, 在几何特征信息丰富的场景中, 改进算法无论在模型显示效果还是在相机轨迹估计方面, 都有较为明显的提升。改进算法在保证算法实时性的基础上, 可以得到更加准确恰当的匹配点, 提高了位姿解算的精度。但在场景中出现线面特征不明显(例如场景中存在大量边界平行于墙面、地面的物体)或是场景几何特征信息不丰富的情况下, 仍无法达到理想效果。同时, 使用改进后算法重建的模型, 利用径向基函数构建隐式曲面的方法实现点云模型的孔洞修补, 进一步提升了重建模型的显示效果。
-
表 1 高分七号卫星激光测高系统主要设计参数
Table 1 Main Parameters of GF-7 Laser Altimeter System
参数 设计值 激光波束个数 2 激光波长/nm 1 064 激光发射频率/Hz 3 激光光斑大小/m 15 足印影像像元分辨率/m 3.2 足印影像幅宽/km 1.6 表 2 山东测区激光测高点对不同地形的平差结果统计表
Table 2 Statistics of Block Adjustment Assisted with Laser Altimetry Data with Different Terrains in Shandong
平差方案 地形类别 检查点个数 平面精度/m 高程精度/m X中误差 X最大误差 Y中误差 Y最大误差 平面中误差 平面最大误差 中误差 平均差 最大误差 自由网平差 全区 105 4.00 8.47 1.46 3.92 4.26 8.51 7.97 -2.16 30.67 平地 57 4.51 8.47 1.11 2.72 4.65 8.51 6.42 -3.94 18.93 丘陵 32 3.69 5.46 1.69 3.92 4.06 6.22 9.37 -2.37 30.67 山地 16 2.30 5.89 1.98 3.51 3.03 5.92 9.71 4.61 24.28 激光测高点作高程控制 全区 105 3.14 6.41 1.70 4.15 3.57 6.75 0.79 0.48 1.48 平地 57 3.39 6.41 1.67 4.15 3.78 6.75 0.85 0.53 1.48 丘陵 32 2.87 4.99 1.61 -3.08 3.29 5.49 0.80 0.54 1.40 山地 16 2.70 6.04 2.00 3.49 3.36 6.42 0.51 0.15 1.02 表 3 山东测区不同控制条件下区域网平差结果统计表
Table 3 Statistics of Block Adjustment with Different Control Conditions in Shandong
激光测高点控制作用 外业控制点个数 均值/m 中误差/m 最大误差/m X Y H X Y XY H X Y XY H 激光测高点不参与平差 1 -0.06 1.14 -1.98 1.96 2.02 2.81 7.82 -5.69 5.27 6.05 30.52 4 -0.08 -0.99 -2.59 1.24 1.72 2.12 5.60 -4.84 -4.94 5.11 15.55 9 -0.66 0.12 -1.69 1.63 1.32 2.10 3.92 -6.66 -3.44 6.68 10.98 15 -0.43 -0.11 0.01 1.38 1.29 1.89 0.69 -5.30 -3.55 5.34 -1.90 41 -0.05 0.04 0.08 1.17 1.28 1.73 0.49 -4.11 -3.31 4.18 1.16 激光测高点作高程控制,外业控制点作平面控制 1 0.13 1.55 0.48 1.27 2.10 2.46 0.79 -4.64 4.84 5.07 1.48 4 0.39 -0.88 0.48 1.29 1.65 2.09 0.79 4.30 -4.42 4.70 1.48 9 -0.54 0.31 0.48 1.56 1.36 2.07 0.79 -6.34 3.57 6.37 1.48 15 -0.42 -0.12 0.48 1.38 1.30 1.89 0.79 -5.23 -3.55 5.28 1.48 41 -0.05 0.03 0.48 1.18 1.28 1.74 0.79 -4.13 -3.21 4.21 1.48 -
[1] Grodecki J, Dial G. Block Adjustment of High-Resolution Satellite Images Described by Rational Functions[J]. Photogrammetric Engineering and Remote Sensing, 2003, 69 (1): 59-68 doi: 10.14358/PERS.69.1.59
[2] 李德仁, 张过, 江万寿, 等. 缺少控制点的SPOT-5 HRS影像RPC模型区域网平差[J]. 武汉大学学报·信息科学版, 2006, 31(5): 377-381 http://ch.whu.edu.cn/article/id/2451 Li Deren, Zhang Guo, Jiang Wanshou, et al. SPOT-5 HRS Satellite Imagery Block Adjustment Without GCPs or With Single GCP[J]. Geomatics and Information Science of Wuhan University, 2006, 31(5): 377-381 http://ch.whu.edu.cn/article/id/2451
[3] Schutz B E, Zwally H J, Shuman C A, et al. Overview of the ICESat Mission[J]. Geophysical Research Letters, 2005, 32 (21): L21S01
[4] Shuman C A, Zwally H J, Schutz B E, et al. ICESat Antarctic Elevation Data: Preliminary Precision and Accuracy Assessment[J]. Geophysical Research Letters, 2006, 33 (7): L07501
[5] Gonzalez J H, Bcchmann M, Scheiber R, et al. Definition of ICESat Selection Criteria for Their Use as Height Reference for TanDEM-X[J]. IEEE Transactions on Geoscience and Remote Sensing, 2010, 48 (6): 2 750-2 757 doi: 10.1109/TGRS.2010.2041355
[6] Li Guoyuan, Tang Xinming, Gao Xiaoming, et al. ZY-3 Block Adjustment Supported by GLAS Laser Altimetry Data[J]. The Photogrammetric Record, 2016, 31 (153): 88-107 doi: 10.1111/phor.12138
[7] 王建宇, 舒嵘, 陈卫标, 等. 嫦娥一号卫星载激光高度计[J]. 中国科学: 物理学力学天文学, 2010, 40 (8): 1 063-1 070 https://www.cnki.com.cn/Article/CJFDTOTAL-JGXK201008016.htm Wang Jianyu, Shu Rong, Chen Weibiao, et al. Spaceborne Laser Altimeter of Chang' E-1[J]. Scientia Sinica Physica, Mechanica and Astronomica, 2010, 40(8): 1 063-1 070 https://www.cnki.com.cn/Article/CJFDTOTAL-JGXK201008016.htm
[8] 胡文敏, 邸凯昌, 岳宗玉, 等. 嫦娥一号激光高度计数据交叉点分析与平差处理[J]. 测绘学报, 2013, 42(2): 218-224 Hu Wenming, Di Kaichang, Yue Zongyu, et al. Corssover Analysis and Adjustment for Chang' E-1 Laser Altimeter Data[J]. Acta Geodaetica et Cartographica Sinica, 2013, 42(2): 218-224
[9] Wu Bo, Guo Jian, Hu Han, et al. Integration of Chang'E-1 Imagery and Laser Altimeter Data for Precision Lunar Topographic Modeling[J]. IEEE Transactions on Geoscience and Remote Sensing, 2011, 49 (12): 4 889-4 903 doi: 10.1109/TGRS.2011.2153206
[10] 唐新明, 谢俊峰, 付兴科, 等. 资源三号02星激光测高仪在轨几何检校与试验验证[J]. 测绘学报, 2017, 46(6): 714-723 https://www.cnki.com.cn/Article/CJFDTOTAL-CHXB201706008.htm Tang Xinming, Xie Junfeng, Fu Xingke, et al. ZY3-02 Laser Altimeter On-orbit Geometrical Calibration and Test[J]. Acta Geodaetica et Cartographica Sinica, 2017, 46(6): 714-723 https://www.cnki.com.cn/Article/CJFDTOTAL-CHXB201706008.htm
[11] 唐新明, 陈继溢, 李国元, 等. 资源三号02星激光测高误差分析与指向角粗标定[J]. 武汉大学学报·信息科学版, 2018, 43 (11): 1 611-1 619 doi: 10.13203/j.whugis20170058 Tang Xinming, Chen Jiyi, Li Guoyuan, et al. Error Analysis and Preliminary Pointing Angle Calibration of Laser Altimeter on Ziyuan-3 02 Satellite[J]. Geomatics and Information Science of Wuhan University, 2018, 43(11): 1 611-1 619 doi: 10.13203/j.whugis20170058
[12] 李国元, 唐新明. 资源三号02星激光测高精度分析与验证[J]. 测绘学报, 2017, 46 (12): 1 939-1 949 https://www.cnki.com.cn/Article/CJFDTOTAL-CHXB201712004.htm Li Guoyuan, Tang Xinming. Analysis and Validation of ZY-3 02 Satellite Laser Altimetry Data[J]. Acta Geodaetica et Cartographica Sinica, 2017, 46(12): 1 939-1 949 https://www.cnki.com.cn/Article/CJFDTOTAL-CHXB201712004.htm
[13] Li Guoyuan, Tang Xinming, Gao Xiaoming, et al. Integration of ZY3-02 Satellite Laser Altimetry Data and Stereo Images for High-Accuracy Mapping[J]. Photogrammetric Engineering and Remote Sensing, 2018, 84 (9): 569-578 doi: 10.14358/PERS.84.9.569
[14] 曹宁, 周平, 王霞, 等. 激光测高数据辅助卫星成像几何模型精化处理[J]. 遥感学报, 2018, 22 (4): 599-610 https://www.cnki.com.cn/Article/CJFDTOTAL-YGXB201804007.htm Cao Ning, Zhou Ping, Wang Xia, et al. Refined Processing of Laser Altimeter Data-Aided Satellite Geometry Model[J]. Journal of Remote Sensing, 2018, 22(4): 599-610 https://www.cnki.com.cn/Article/CJFDTOTAL-YGXB201804007.htm
[15] Tang Xinming, Xie Junfeng, Liu Ren, et al. Overview of the GF-7 Laser Altimeter System Mission [J]. Earth and Space Science, 2020, 7 (2) : e2019EA000777
[16] 唐新明, 谢俊峰, 莫凡, 等. 高分七号卫星双波束激光测高仪在轨几何检校与试验验证[J]. 测绘学报, 2021, 50 (3): 384-395 https://www.cnki.com.cn/Article/CJFDTOTAL-CHXB202103011.htm Tang Xinming, Xie Junfeng, Mo Fan, et al. GF-7 Dual-beam Laser Altimeter On-orbit Geometric Calibration and Test Verification[J]. Acta Geodaetica et Cartographica Sinica, 2021, 50(3): 384-395 https://www.cnki.com.cn/Article/CJFDTOTAL-CHXB202103011.htm
[17] Tao C V, Hu Yong. A Comprehensive Study of the Rational Function Model for Photogrammetric Processing[J]. Photogrammetric Engineering and Remote Sensing, 2001, 67 (12): 1 347-1 357
[18] Tang Xinming, Liu Changru, Zhou Ping, et al. Satellite-Imagery Geometric Accuracy Improvement Based on Direct Correction of Dominant Coefficients [J]. Photogrammetric Engineering and Remote Sensing, 2020, 86 (4): 215-224 doi: 10.14358/PERS.86.4.215
[19] 王密, 杨博, 李德仁, 等. 资源三号全国无控制整体区域网平差关键技术及应用[J]. 武汉大学学报·信息科学版, 2017, 42(4): 427-433 doi: 10.13203/j.whugis20160534 Wang Mi, Yang Bo, Li Deren, et al. Technologies and Applications of Block Adjustment Without Control for ZY-3 Images Covering China[J]. Geomatics and Information Science of Wuhan University, 2017, 42(4): 427-433 doi: 10.13203/j.whugis20160534
-
期刊类型引用(2)
1. 李婉秋,郭秋英,章传银,王伟,钟玉龙,李伟,徐鹏飞. 利用独立成分分析法研究新疆地区陆地水储量及其地壳垂向变化. 武汉大学学报(信息科学版). 2024(05): 794-804 . 百度学术
2. 曹杰,肖云,龙笛,崔英杰,刘淼,张锦柏,王宇康,洪晓东,陈垲宁. 联合重力卫星和水井资料监测华北平原地下水储量变化. 武汉大学学报(信息科学版). 2024(05): 805-818 . 百度学术
其他类型引用(4)