论文解读【无人机建图系列】 - 无人机实时重建DEM TerrainFusion:基于单目SLAM的实时数字表面模型重建
文章目录
摘要
摘要-本文旨在基于同步定位与测绘(SLAM)算法生成飞行过程中的实时数字表面模型(DSM)。我们对单目SLAM系统输出的关键帧进行处理,生成局部DSM,并增量地将局部DSM融合到全局平铺DSM。在局部DSM生成过程中,通过将过滤后的2D Delaunay网格投影到3D网格来估计局部数字高程模型(DEM),并通过将三角形图像块投影到2D网格来获得局部正交马赛克。在DSM融合过程中,将局部DEM和正射马赛克分块,分别用多波段算法融合到全局平铺DEM和正射马赛克。高效的DSM生成和融合算法都有助于实现实时重建。在不同场景下的公共航空影像数据集上进行了定性和定量的实验,验证了该方法的有效性。与传统的基于运动结构(SfM)的方法相比,该系统能够以较低的计算代价实时输出大范围高质量的DEM和正射马赛克。
介绍
数字表面模型(DSM)[1]、[2]、[3]是一种基于栅格的地形描述,包括地形和位于地球表面的所有自然或人造地物,在航空、城市规划和电信的3D建模中起着重要作用。近年来,DSM在多个领域得到了越来越广泛的应用[4]、[5],对实时DSM重建技术的需求也在迅速增加,如火灾监测[6]、城市监控[7]、[8]等。此外,随着无人机的快速发展,以低成本和高机动性采集航空图像成为可能。考虑到以上两个方面,我们设想了一种由无人机飞行时的航拍图像重建实时DSM的想法
DSM重建的常用实现基于运动结构(SfM)[9]、[10]、[11]、[12],例如项目OpenMVG[13]、openDroneMap和商业软件Pix4DMapper[14]或Photoscan[15]。它们共享类似的管道[16],[17],[18],[19]:特征检测、匹配、图像对齐、使用束算法生成稀疏点云、生成密集点云、网格和纹理。然而,传统的SfM方法总是需要在计算前准备好所有图像,然后需要数小时才能生成最终结果,因此这些基于SfM[13]、[15]、[14]、[20]、[18]的重建方法不适合实时和增量使用。
实时重建的另一个有利选择是同时定位和映射(SLAM)[21],[22],[23],[24],由于其设计良好的处理管道,它能够实时输出环境地图和相机位置。因此,一些研究人员利用SLAM进行实时无人机图像拼接[25]和高度场重建[26]。然而,[25]中提出的方法仅生成没有高度信息的正交马赛克,并且[26]仅限于使用高度图和GPU来实现实时速度。
在本文中,我们探索逐步获得由生成数字高程模型(DEM)[27]和正交镶嵌[28]组成的DSM,这两个模型同时执行,然后实时融合。为了实现这一点,我们使用视觉SLAM实时获取相机姿态和具有深度信息的关键点,并计算每个关键帧的稀疏点云。然后,我们将捕获图像的表面特性和稀疏点云的三维结构相结合,同时生成局部DEM和正交镶嵌图。最后,我们将它们分别融合到全局拼接的DEM和正交镶嵌图中。由于先进的处理管道,我们称为TerrainFusion的方法能够实时重建场景的高质量DSM,如图所示1。与之前的工作相比,我们的方法做出了以下贡献:
一种基于单眼SLAM的新型实时DSM重建框架,能够处理连续的航空图像以增量重建DSM。
•一种噪声滤波算法,它消除了点云中的异常值和凹坑,并有效地使生成的曲面成为2D流形。
•一种稳健的DSM生成算法,可从SLAM输出的每个关键帧快速同时生成DEM和正交镶嵌图。
•用于管理DSM的平铺格式,使我们的系统能够处理大规模场景。
•DSM融合算法,不仅能实时有效地更新全局DSM,还能确保高质量的重建。
相关工作
从采集的图像重建三维表面是近几十年来的一个热门研究课题,传统方法的描述和比较可以在[29],[27]中找到。在本文中,我们重点研究了基于SfM和SLAM的方法,总结如下。
A. 基于SfM的方法
SfM作为计算机视觉社区中从图像采集估计3D结构的中心问题[30],[31],[32]通常用作DSM重建的基础[13],[15],[14],[20],[18]。到目前为止,已经提出了各种SfM策略,包括增量[9]、[10]、全局[11]、[12]和层次方法[33]。流形曲面的增量重建[20]利用3D Delaunay三角测量从通过增量SfM计算的稀疏3D点云重建曲面。然而,[20]旨在重建闭合表面,这使得DSM重建的有限性。泊松曲面重建[18]是最著名的三维重建方法之一,它将曲面重建表示为泊松方程的解。尽管泊松重建方法显示出对技术技巧和细节的精通,但它不能实时重建表面。
B.基于SLAM的方法
与传统的SfM不进行实时计算不同,SLAM强调实时计算每个关键帧的相机姿态和点云。SLAM技术发展迅速,已经提出了各种SLAM系统,包括单目SLAM系统(基于关键点的[34]、[35]、[21]、直接[36]、[22]、[37]和半直接方法[23]、[38])、多传感器SLAM系统,和基于学习的SLAM系统(有监督[46],[47],[48]和无监督[49],[50])。
近年来,一些研究[25]、[26]、[51]试图采用SLAM进行摄影测量,以获得正射图像或高度场。Map2DFusion[25]逐步对航空图像进行镶嵌,以生成2D地图。尽管使用多频带算法的Map2DFusion在大多数情况下都能输出高质量的马赛克,但平面拟合使其在非平面环境中表现不佳,并且它只生成没有高度信息的数字正射影像图(DOM)。在正交镶嵌生成的情况下,我们的方法通过更多地考虑三维结构来有效地处理非平面环境。特别地,我们的方法能够实时重建正交镶嵌图和高度场。Zienkiewicz等人[26]通过直接将深度图和颜色融合到多分辨率三角形网格中来重建表面。然而,该方法是在GPU上实现的,以实现实时速度,并且只重建高度场而不重建纹理。此外,这种方法要求摄像机尽可能靠近地面,因此当摄像机远离地面时,它不适合大规模场景的DSM重建。Hinzmann等人[51]实现了一个映射框架,该框架增量生成密集的地理参考点云、数字表面模型和正交镶嵌图。他们的目标是从可能无法处理复杂场景的密集点云生成DSM,而我们的方法侧重于使用稀疏点云实时重建大规模DSM。
框架
我们的管道概述如图所示。2,它由三个不同的阶段组成:视觉SLAM、本地DSM生成和DSM融合。从航空图像开始,我们首先使用视觉SLAM来估计相机姿态和稀疏结构(第III-a节)。然后,我们对关键点执行2D Delaunay三角测量以生成2D网格,并基于关键点和点云之间的投影关系将2D网格投影到3D网格。由于原始点云中存在许多冲突,干扰了DEM的生成,因此采用迭代滤波的方法来去除噪声。在对噪声进行滤波后,我们从滤波后的3D网格中计算局部DEM,并从网格和图像中生成局部正交镶嵌图(第III-B节)。在最后阶段,将局部DEM和正交镶嵌分别缝合到相应的全局地图上,并在缝合的DEM和正交马赛克上应用多频带算法进行平滑过渡(第III-C节)。
A.单眼SLAM
在我们的系统中使用了基于关键点的单目SLAM来估计实时姿态和稀疏深度。该框架的实现类似于[25]中执行的视觉SLAM和地理参考,但采用了一些改进,使其能够稳健地处理高频视频和低频照片。由于它不是本文的主要关注点,我们只做一个简单的介绍。
对于每个捕获的图像,使用GPU加速的SIFT提取器来实时检测关键点和提取特征。通过从基本矩阵或单应矩阵分解相对姿态来初始化映射。当GPS可用时,地图将转换为以地球为中心、固定地球(ECEF)的坐标,否则将初始平面拟合为地平面。在地图初始化后,跟踪线程处理每一帧,并试图通过跟踪最后一帧来估计当前姿势。通过从3D地图点和2D关键点对求解透视n点(PnP)问题来计算姿态。然后将局部子图投影到当前帧以获得更多的PnP观测,并且可以实现更好的姿态估计。当当前帧和最后一个关键帧之间的相对距离超过某个阈值时,会将关键帧插入到映射线程中。通过极线搜索对新的地图点进行三角测量,并进行一些数据关联运算,然后执行局部束,以在GPS约束下优化局部地图点和关键帧姿态。将发布具有稀疏深度信息的最后一个关键帧,以便稍后进行重建。
B.本地DSM
与大多数基于SfM的方法一次生成整个DSM不同,我们的目标是为每个关键帧生成局部DSM,然后以增量方式将其融合到全局DSM。视觉SLAM系统已经实时输出每个关键帧的姿态和关键点以及深度信息,从中计算关键帧的点云。出乎意料的是,破坏DSM属性的异常值和凹坑(统称为噪声)存在于关键点和点云中。为了保证生成的曲面是二维流形,设计了一种滤波算法来滤除噪声。本节首先介绍了滤波算法,然后介绍了DEM和正交镶嵌生成的实现细节。
a) 网格生成:为了快速生成每个关键帧的3D网格,我们提出了一种2D到3D的方法,这是局部DSM生成的核心部分。根据当前关键帧中关键点Pi的像素坐标,进行二维Delaunay三角剖分,得到图像平面上的二维三角网格Mi。根据三维点云与关键点之间的投影关系,将Mi的拓扑投影到三维点云上,得到三维三角形网格Mw。在世界坐标系中,使用点云作为网格点的三维三角形网格Mw包含地理信息。由于Mw暴露了异常值和凹坑,因此执行过滤操作以消除它们。为了稍后生成正交马赛克,Mw的高程信息被丢弃,以获得世界坐标系中水平面上的2D三角形网格Mh。
b) 边缘检测:我们的滤波算法基于几何约束,Mh的边缘点和非边缘点具有不同的几何结构,因此分别采用不同的滤波策略来滤除噪声。判断Ee旨在将边点集Pe和非边点集Pn与Mh的网格点区分开来:对于Mh中的每个网格点p,只有当相邻三角形中与p相反的边形成简单的闭合多边形时,该点才是非边点。相邻三角形是指在Mh中包含p的三角形。图3中的红线是由边点Pe连接的Mh的边。
c) 噪声滤波器:由于Pe中同时存在异常值和凹坑,因此对每个边缘点进行两次判断,以估计其是否为噪声。第一判断Ee1主要估计边缘点是否为凹坑,而第二判断Ee2主要估计其是否为异常值。在第一次判断中,相邻三角形中的边点p的相对侧形成多段线(当p只有一个相邻三角形时,多段线是线段)。然后通过将p分别与多段线的两个端点连接来获得两条线。如果这两条线与任何不包含p的相邻点作为顶点的三角形相交,我们将p视为边缘噪声。p的相邻点指的是Mh中包含p的每个三角形的所有其他两个顶点。在图3中,P1是边缘噪声。在第二次判断中,通过连接第一次判断中给出的多段线的两个端点来生成线段。然后我们得到一个同心圆,其半径是使用线段作为直径的圆的k倍。如果边缘点位于k半径同心圆之外,我们判断边缘点与网格不相关,并将其视为噪声。k是一个参数,我们根据经验将其设置为1.4。如图3所示,P2是一种噪声。当谈到Pn中噪声的判断En时。对于Pn中的每个点p,如果p位于由相邻三角形中p的相对边形成的闭合多边形之外,则它是噪声。如图3所示,P3是一种噪声。
图3 使用噪声滤波器处理两个高频结果图3。此图展示了过滤噪声的不同策略。2D网格Mh(蓝色和红色)是通过丢弃3D网格Mw中的高程而生成的。红线是Mh的边缘。P1是边缘噪声,因为使用P1作为端点的边缘线段P1a、P1b与△cdh。P2是边缘噪声,因为P2位于半径是使用线段fg作为直径的圆(薄绿色)的k倍的同心圆(厚绿色)的外侧。P3是非边缘噪声,因为它在由相邻三角形中P3的相对边形成的闭合多边形cde之外。
图4。使用mavic工厂的数据对DSM(顶部)和正交马赛克(底部)在有和没有噪声滤波器的情况下的比较。
算法2中所示的迭代方法用于滤除边缘噪声和非边缘噪声。在生成网格并过滤掉一次噪声之后,使用更新的关键点集Pi和点云Pc来生成网格并重复过滤噪声,直到检测不到噪声为止。此外,在非边缘噪声滤波器的迭代中嵌入了边缘噪声滤波器,以避免在一次非边缘(边缘)噪声滤波器已经改变了网格结构后,边缘(非边缘)噪声没有被滤除。图4显示了我们的滤波算法能够有效地去除噪声。
d) 正交镶嵌生成:与包裹图像的方法不同,我们将三角形图像块投影到Wh上以生成正交镶嵌。由于图像平面上的Mi已经将当前关键帧的图像划分为一组三角形面片,因此可以通过将三角形面片投影到Mh上来获得局部正镶嵌。
e)DEM生成:为了使后期的融合更加高效,我们将不规则的三维三角形网格Mw转换为局部拼接DEM。局部DEM的高度是通过插值网格点的Mw高度来计算的。如图5所示,在我们的实现中,由于线性插值的快速性和稳定性,选择了线性插值。
图5。该图显示了从使用点云作为网格点的3D三角形网格Mw(红线)到局部平铺DEM(黑线)的转换过程的俯视图。不同的背景颜色表示局部DEM被分割并存储在不同的瓦片中(这是一个示意图,为了清晰起见,在瓦片中只绘制了4×4)。a、 b、c、d、e、f是Mw的顶点,P1、P1是局部DEM的三个顶点。P1的高度值等于a的高度值。P2的高度值通过对线段bc的两个端点的高度值进行插值而获得。P3的高度值是通过对△de f的高进行插值。
C.DSM融合
当生成本地DSM时,需要更新全局DSM。为了实现高质量的拼接,考虑DEM中稀疏点云的分布和当前关键帧的视角,自适应地计算权重图像。具有较大权重值的局部DSM以瓦片为单位缝合到全局DSM。最后,在拼接的DSM瓦片中执行多频带算法以实现平滑过渡。
a) 融合权重:在我们的实现中,用于DSM缝合的权重也存储为映射,这是一个单通道无符号字符图像。权重图像的每个像素值计算如下:计算当前关键帧Mh中所有网格点坐标的算术平均值,以获得中心坐标o。o的权重设置为255,而距离o最远的位置o的权重则设置为0。当我们计算o和o′之间的像素距离ζ时,该值和像素距离之间的梯度ρ可以计算为ρ=255.0/ζ。最后,根据梯度ρ和{pi}和o之间的像素间距{disi},可以使用公式wi=ρ×(ζ−disi)计算权重图像中所有像素{pi}的值{wi}。
b) 拼接:大多数在线地图都是由服务提供商以平铺的形式提供的,平铺的DSM有利于稍后的混合,因此我们以平铺的格式管理DSM。在我们的系统中,局部DEM被分割成矩形面片,每个面片都存储在一个单独的瓦片中。局部正交马赛克和权重图像也以相同的方式被分割,并且补丁也被存储在相应的瓦片中。因此,DSM瓦片包含若干层,包括DEM面片、正交镶嵌面片和权重图像面片。我们通过将局部平铺权重图像与全局平铺权重图像进行比较来计算局部掩码。根据这个掩模,我们将局部拼接的DEM和正交镶嵌分别缝合到全局拼接。
c) 混合:尽管上述步骤能够实现实时DSM重建,但缝合的DSM中存在可见接缝,如图所示。第6(a)和(c)段。事实上,这是由两个原因引起的:1)缝合由不同曝光的图像生成的正交马赛克会导致缝合线周围的轻微颜色偏差;2) 缝合的DEM在缝合线上也有较小的偏移。
为了平滑颜色偏差和偏移,我们在拼接DEM和正交镶嵌上都应用了多频带算法。为了实现多频带算法,我们的系统增加了以下步骤。两个拉普拉斯金字塔是通过扩展运算[52]从局部DEM和正交镶嵌扩展而来的,我们称之为局部DEM金字塔和局部正交镶嵌金字塔。相应地,通过下采样从权重图像中扩展权重金字塔。三个金字塔也被分割成矩形的子金字塔,并且子金字塔被存储在相应的瓦片中。通过将局部平铺权重金字塔与全局权重金字塔进行比较来计算局部掩码金字塔。我们没有缝合局部拼接的DEM,而是根据掩模金字塔将其金字塔缝合到全局DEM,拼接的正交镶嵌金字塔缝合也是如此。最后,通过从低到高对其全局拼接拉普拉斯金字塔的水平求和,恢复原始DEM和正镶嵌图。
实验
我们用C语言实现了所提出的实时DSM重建系统,并从计算效率和准确性方面评估了其性能。我们首先在公共数据集上测试了我们的系统,并展示了从不同环境中重建的三个DSM。更多结果显示在网站上https://shaxikai.github.io/TerrainFusion.然后,我们比较了TerrainFusion和Map2DFusion生成的山区正交镶嵌图。为了进行有效的比较,据我们所知,这是第一个开源的在线DSM重建系统,它别无选择,只能将我们的系统与两个离线存在的软件Photoscan和Pix4DMapper进行比较。由于没有同时包含地面实况高度和环境航空图像的数据集,我们最终对我们的方法Photoscan和Pix4DMapper分别生成的三个表面进行了交叉比较,以分析我们方法的准确性。结果表明,我们的系统实现了高鲁棒性、相对质量和更有效的实时DSM重建。
所有实验都是在台式电脑上进行的,该电脑配有Intel i7-7700 CPU、16GB RAM和GTX 1060 GPU。我们在64位Linux系统中运行我们的方法和Photoscan,而Pix4DMapper在64位Windows10上执行。
A.TerrainFusion数据集的结果
为了评估我们的系统,我们创建了一个TerrainFusion数据集,其中包含几个场景,包括城市、山脉、沙漠和平原。航空图像的分辨率为4000×3000。它们可以从网站上公开下载,演示视频也可以在网站上获得。
在第一个实验中,我们比较了TerrainFusion和Map2DFusion[25]生成的地形镶嵌图的质量。对于平面环境,两种方法输出几乎相同的正交马赛克,并且可以在[25]中找到与Photoscan或Pix4DMapper的进一步比较。然而,当涉及到非平面环境,特别是坡度较大的山区时,在Map2DFusion中进行的平面拟合可能会产生重影,如图7所示。而我们的方法考虑了更多来自点云的3D构造来生成正交马赛克,这可以避免重影。
为了说明我们的方法的实用性,一些实验进行了各种情况下。为了对比,我们在图中给出了用我们的方法和Photoscan重建的结果。8.比较结果表明,我们的方法是能够实现类似的可接受的DSM重建的Photoscan。更多的重建结果可以在网站上访问,他们都表明,我们的方法不仅表现出良好的自然特征重建,但也达到了可接受的重建城市和农村地区。
B.效率比较
我们使用TerrainFusion数据集比较了不同方法(我们的方法,Photoscan和Pix4DMapper)的执行效率。表I中列出了时间使用统计数据。为了进行公平的比较,我们在三种方法的每个关键帧中检测到几乎相同数量的关键点(约1000个),并对其他参数使用默认值。与Photoscan和Pix4DMapper离线重建不同,我们的方法以增量的方式处理重建。因此,我们方法的表I中所示的时间是为所有关键帧生成和融合DSM所花费的时间的总和。毕竟,我们实现的是在线重建,但Photoscan或Pix4DMapper都可以进行离线和批量优化重建。因此,我们的方法比Photoscan或Pix4DMapper花费的时间要少得多。
C.定量比较
在定量比较中,计算了不同方法(TerrainFusion、Photoscan和Pix4DMapper)之间的表面误差,以分析我们方法的准确性。我们对模型上的点{pi}进行采样,并获得由一种方法生成的表面上{pi}的高度值{h′i}。类似地,我们获得了由另一种方法生成的表面上{pi}的高度值{hi}。然后,我们使用|hi−h′i|来计算由不同方法生成的两个曲面之间的{pi}上的误差。TerrainFusion和两个软件对mavic-fengniao数据的误差分布和统计分别如图所示。第9(a)和(b)段。我们发现,在我们的方法和Photoscan之间,90.13%的样本点的误差小于2.0m,62.92%的样本点误差小于1.0m。在将我们的方法与Pix4DMapper进行比较时,88.96%的样本点的误差小于2.0m,62.32%的样本点误差小于1.0m。很容易看出,图9(a)和(b)之间的误差分布相似。
为了评估精度,我们还计算了Photoscan和Pix4DMapper生成的表面的误差,如图所示。第9(c)段。其中92.35%的样本点误差小于2.0m,81.56%的样本点的误差小于1.0m。很明显,这两个软件之间的误差小于我们的方法与它们中的任何一个之间的误差。图9右侧的红条表示误差大于或等于8.0 m的样本点。在提取图像关键点时,一种方法可以提取图像边缘的关键点,因此可以重建边缘的表面。而在另一种方法中,由于没有提取图像边缘的关键点,因此无法重建表面。因此,通过不同方法重建的表面在边缘处具有较大的误差。如图9中的误差分布所示,几乎所有这些大误差都发生在边缘。
总之,我们实现的是从稀疏点云进行在线DSM重建。因此,通过损失较小的精度来换取速度来实时重建DSM是可以接受的。
结论
我们提出了一种从单目SLAM生成的稀疏点云进行实时DSM重建的新方法。尽管所提出的方法的准确性并不优于商业软件,但对于在线应用程序实时重建DSM来说,速度足够快。未来,我们将致力于对稀疏点云进行加密,并从密集点云实时重建高保真度DSM。