OpenREALM :基于视觉SLAM和三维重建的无人机实时空中测绘

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

d643357482d92a22ce996f6ffdd045d3.png

作者丨泡泡机器人

来源丨泡泡机器人SLAM 

标题:OpenREALM: Real-time Mapping for Unmanned Aerial Vehicles

作者:Alexander Kern, Markus Bobbe, Yogesh Khedar, Ulf Bestmann

机构:Technische Universität Braunschweig

来源:ICUAS 2020

编译:龚坤

审核:  高翎

5b479a3e91f9b73c56cd92190d60d22e.png

摘要

ae16b2f09a550c7c93905703f9ed8cc4.png

大家好,今天为大家带来的文章是 OpenREALM: Real-time Mapping for Unmanned Aerial Vehicles

本文提出了一种基于无人机(UAV)的实时建图框架OpenREALM。利用无人机的机载计算机上的照机来获取目标感兴趣区域的高分辨率图像。不同的操作模式允许OpenREALM在近似平面地面下执行简单的拼接,或者完全恢复复杂的三维表面信息,以提取高程图和几何校正的正射影像。此外,还利用无人机的全局位置对数据进行地理推理。在所有模式下,地面操作员都可以现场查看结果地图的建图进度。获得的最新的表面信息将推动各种无人机应用。

Github:https://github.com/laxnpander/OpenREALM

文章:https://arxiv.org/abs/2009.10492v1

15ef67c1a81038cda94c0e9ee3747a8e.gif

b98638392c7e72f9b0fc2f0fd92e186e.png

主要工作与贡献

253e62724a7525431ca914bdbdacb0c8.png

目前大多数框架只在无人机飞行过后通过捕获的所有图像,进行建图和测绘,这是显然不是最优的。在任务期间根据所获得的数据进行干预是不可能的,尽管理论上所有的数据都是可用的。从任务开始到最终确定全地图的总时间可能需要长达几个小时,在搜索和救援场景的情况下,这是不可接受的。

因此,我们提出了一个框架,它能够读取无人机稳定摄像机获得的连续图像流,并且它提供了三种不同的操作模式:

    1)基于GNSS定位和实时图像拼接生成2D地图;

    2)基于GNSS定位和实时图像生成2D地图和视觉姿态估计;

    3)基于GNSS定位和GPU加速立体重建的视觉姿态估计生成2.5D数字高程模型。

模式(1)被设计用于现成的硬件,如大疆产品。计算出的地图仅依赖于GNSS和标题信息来将图像对齐成一个全局地图。然而,它也适合于创建一个无特征或高度动态的区域的全局地图。模式(2)和(3)需要一个具有高帧率的相机,适合于视觉姿态估计。模式(3)中的输出包括摄像机运动的估计,每个视图的深度图,高程图(正射影像)以及观测场景的密集三维点云图。

34c5c643e50caa00a31eec67e242b92c.png

(a)结果是一个实时更新的经过几何校正的正射影像图

d635d82b4285864f99350128a31de86e.png

(b)地面表示为由三维点云数据生成的高程图。利用概率方法识别具有高噪声的数据区域并删除。

67fb97e7ea3e5c9b964ffd7db16d05c2.png

算法流程

102a6591372e178acd016f03676dfa49.png

1.相关工作

算法ROS框架

873afc8cb6f9a1fc3800eff95d1101eb.png

图2.显示了三个不同层的总体设计。

第一层是通过机器人操作系统(ROS)实现的“传输层”。在航空映射场景中,至少有两种不同的处理设备,无人机的相机和地面站组成,所捕获的数据由带GNSS信息的图像组成。

第二层是“阶段层”,其中包含过程控制算法。每个阶段都被封装起来,交换只通过其相应的ROS节点在一个方向上产生。这样,一个阶段的输出就会成为以下阶段的输入。

姿态估计

fdf9be47a99424bcceb101b35aaf6957.png

姿态估计阶段的工作流程如图3所示。开始时,它为支持的框架创建一个可视化SLAM接口。这目前可以是ORBSLAM2、DSO或SVO,这取决于传递的初始参数,输入帧由接口到实际的SLAM实现从而估计摄像机姿态矩阵M。M被定义为从照相机到世界帧的转换。如果跟踪成功,该模块试图利用视觉和GNSS位置来识别从局部、视觉到全局、地理坐标系统的转换。由于一组初始测量是必要的,传入帧可能会等待,直到估计误差低于一定的阈值。在求解任意尺度并对齐视觉和GNSS轨迹后,所有的帧都被发布。

如果视觉SLAM框架由于水或平面场而无法跟踪当前帧,状态切换为“丢失”,不设置视觉姿势。为了避免在此场景中映射过程完全失败,可以使用计算备用解决方案:

a93a7fd09ab90b346881fd5a9af1cff3.png

φ为无人机的自带的姿态,t为GNSS提供的无人机坐标,

只有当相机面对地面时,才能假设这种替代姿势是稳定的。

稠密建图

在前一阶段,当前输入帧的摄像机姿态是在一个地理坐标系中计算的。这个姿态可以直观地估计,也只能基于GNSS和视觉信息。前者具有较高的精度,但在无特征区域内缺乏鲁棒性。另一方面,后者通常总是可计算的,但不确定性很。在致密化阶段,根据图3中的工作流程,只使用具有视觉估计姿态的帧来重建观测表面密集的三维点云。

2d7a384d29d5675c04db51b2da94a720.png

首先,检查输入帧的适用性。如果将姿态识别为视觉估计,则初始化深度地图创建。根据所选择的SLAM端口,将一组帧传递给重建接口。这反过来又提供了,类似于在姿态估计阶段的可视化SLAM界面,集成最先进的重建框架的可能性。目前只合并了PSL。在稠密重建后,将深度图投影到三维点云中,并覆盖任何先前存在的稀疏点。

纹理生成

在前面的阶段中,对所有处理过的帧估计了一个地理参考的姿态。这可以是基于使用视觉SLAM的图像数据,或基于先验的GNSS位置和姿态。然后,只对那些具有视觉估计的姿态深度图的帧生成并投影到稠密的点云中。因此,后续阶段必须处理可能发生的三种不同类型的帧:

1)GNSS位置帧、固定姿态、无点云(如果视觉姿态估计失败)帧;

2)视觉估计帧、精确姿态和稀疏点云(仅稠密失败);

3)视觉估计帧、精确姿态和密集点云帧(如果之前所有阶段都成功的话);

曲面生成阶段对当前输入帧的所有数据进行了评估,并提出了一种数字曲面模型。并用一个简单的平面或一个2.5D高程图来描述观察到的场景。但人们关注的不仅是海拔高度,表面法线和观测角度通常也可以在同一过程中重建。为此目的,一个有效的结构是有益的,因为它将一个特定的地理位置与收集到的所有信息紧密结合起来。欣兹曼等人提出了由范克豪瑟[18]开发的开源库“网格地图”。它是由一个感兴趣的区域和一个地面采样距离(GSD)来定义的。可以堆叠多层数据,使网格中的每个单元都由一个多维的信息向量组成。对于OpenREALM,我们采用了这个想法,但重新实现了一些模块。

b65cdfbd13776e26574c4ef363aa94e1.png

图2 纹理生成算法伪代码

正射校正

正射校正阶段的目标是利用先前估计的表面模型和相机姿态来修正由视角和表面结构引起的图像的视觉失真。在最好的情况下,由此产生的正射影是高分辨率的,所以感兴趣的点(例如人类,汽车,…)可以很容易地检测到。Hinzmann等人提出了两种不同的方法来实现这种校正:

1)基于点云的正投影(正投影)

2)基于网格的正投影(向后投影)

方法(1)的计算时间最低,对重建的稠密点云有很强的依赖性。特别是由于点云上的孔洞而造成的区域覆盖范围较小。方法(2)通过将观测场景的高程保存为2.5D网格图,可以将其视为具有浮点数据而不是强度值的常规单通道图像。因此,它也可以有效地调整大小到任何必要的分辨率,就像一个常规的图像一样。总之,空间分辨率和纹理分辨率可以作为两个独立的参数来处理。空间分辨率主要取决于致密化和表面生成阶段,纹理是独立的,可以设置为一个仅受原始图像分辨率限制的选择值。如果映射的输入图像明显大于多视图重建所能处理的图像,这就特别有用。因此,为了实现,选择了“基于网格的正射校正”技术。

bc80c05a678e32ba1ea72221b64ed2dc.png

图4.在“正射校正”期间,初始网格图被调整到最大期望的GSD。

图像与点云拼接

通过从正位校正阶段接收第一帧,全局映射被初始化。之后,新的帧被称为“地图更新”,可以被划分为没有先验信息的区域或重叠的区域。前者被直接写入到全局地图中。然而,后者的提取为两个子地图,都只描述各自数据的重叠(全局地图重叠区域或地图更新重叠区域)。在下一步中,将为子映射的每个网格元素计算一个最能描述每个层表面的混合值。这个混合区域最终被写成了全拼接。

对于网格单元的混合,可以应用各种策略。本文选择了一种概率方法。潜在的问题陈述可以总结为:“如果一个网格单元的高度存在两个不同的假设,那么选择哪一个?”。为了决定这个基本问题,在全局地图上又添加了三层,即“海拔方差”、“海拔假说”和“观测数”。一旦地图更新到达,对于重叠区域的每个单元,将计算新高程的临时浮动平均值。

a58687572c0758361ff5d03e5f859d77.png

图5.所获取的自定义数据集的概述。在A、B和C中显示了无人机视角图像,由于缺乏或模糊,对视觉算法具有挑战性。

1496de6df66fd476442e0b716b84be47.png

实验结果

6327f0c010ce470acc43289cf12477f8.png

1.视觉SLAM测姿的准确度

2e9cbd484b065830c8b394809dafa074.png

(a)绘制了ORBSLAM2(蓝色)和

Agisoft Metashape(虚线)的轨迹。整体对齐效果很好,特别是在x轴和y轴上。差异最大的是za轴,它表示重建的深度。

49cd2d2571fe698a9826295a94229c07.png

(b)在整个数据集上,ORBSLAM2方法的相对和绝对姿态误差(RPE/APE)。

首先,应该对姿态估计进行评估。高姿态精度是很重要的,因为所有连续的处理阶段都将继承不确定性。作为地面事实,我们使用经典的离线摄影测量软件Agisoft Metashape计算了所有3276张图像的轨迹。作为可视化的SLAM框架,我们将分析限制在ORBSLAM2上。结果如图所示。在a)中,显示了每个轴的平移误差。特别是在xy对齐时,几乎没有可见的位移。另一方面,Z轴等于估计的场景深度,它是使用多个视图几何图形重建的。因此,这个轴应该是最不确定的轴,而且确实可以测量到对地面真相的轻微偏差。在60-100秒之间,无人机的第一个转折点发生,这也是图7中的视觉障碍B。该区域的特征数量较少,明显降低了整体精度。图8b)中的相对姿态误差(RPE)支持这一观点,因为它在转弯前有最高的峰值,并且在转弯之后迅速下降。绝对位姿误差(APE)为0.53m,整体性能良好。

2.纹理表面重构质量

8add5b990919bc975025b02f03aa700a.png

图6.通过OpenREALM重建的网格显示在左侧。为了评价地面真相,用Agisoft计算,并对得到的表面偏差进行颜色编码。边界区域中的红色区域是数据缺失的结果。

我们分析了三维表面重建问题,它被用来生成地面纹理。为此目的,数据集的前端重叠被减少到80%,因此计算时间保持合理(1:45h)。选择了各个阶段的设置,这样处理仍然在硬件上运行,但空间分辨率尽可能高。最终地图中产生的密集云被导出到开源软件“CloudCompare”中。在那里,使用迭代最近点算法(ICP)将其与地面真值对齐,以减少地理参考的影响。然后,将实时创建的密集云的每个点投影到参考网格上。生成的距离由颜色值编码,并显示在其在网格上的各自位置。如上图所示。

使用PSL对提出的实现进行稠密处理。获得的GSD为0.15m/cell。图5c所示的数据集中的混叠效应似乎对重建过程有严重影响。这所房子在3D图像中几乎无法被识别出来。这并不奇怪,因为PSL试图计算每个像素的深度值,尽管三角测量非常不确定。跑道与地面情况很吻合。在地图左上角的平面场,就在转折点之前,有最高的偏差(-1.5到0.5m)。这也是姿态估计显示出显著偏移的区域。因此,第一阶段的初始误差很可能已经传播到交叉处。总而言之,结果是可以改进的,但重要的是要记住,OpenREALM的处理时间是实时的,相比之下,就算快的软件也需要花几个小时。

2b9f9e9c7d054011615fc5fe44aca36d.png

图7.OpenREALM的不同操作模式与Agisoftmetashape提供的地面真值(左)相比。第一个左图使用ORBSLAM2进行对比视觉姿态估计。然而,没有进行三维重建。右图显示了本文方法,它提供了一个2.5D高程图以及真正的矫形影像。。最后一个图显示了纯粹基于无人机的GNSS位置和航向对齐获得的图像所生成的地图。

3.总结

我们提出了一种无人机的实时测绘框架。不同的操作模式使用户能够执行基于GNSS或视觉SLAM的图像拼接,或者完全重建三维表面并提取几何校正的正射影像。今后工程的表面质量有待进一步提高。目前,SLAM和三维重建的实现并没有为航空测绘场景而设计和优化。因此,在这一领域的进一步研究应大大提高研究结果。此外,为基准测试建图框架提供一个公共数据集可能会推动未来的进展。

本文仅做学术分享,如有侵权,请联系删文。

3D视觉工坊精品课程官网:3dcver.com

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

13.重磅!四旋翼飞行器:算法与实战

14.ROS2从入门到精通:理论与实战

15.国内首个3D缺陷检测教程:理论、源码与实战

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

4296384b80307801ae833d6d90a56307.png

▲长按加微信群或投稿

160a2dbaf5ac393af5c3ef4f24df037e.png

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列手眼标定相机标定激光/视觉SLAM自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

ed03d4e260f50c047da998db02dec073.png

 圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值