原文链接:Map2DFusion: Real-time incremental UAV image mosaicing based on monocular SLAM | IEEE Conference Publication | IEEE Xplore
https://ieeexplore.ieee.org/document/7759672
综述:
本文提出了一种实时增量拼接大尺度航拍图像的方法。利用单目SLAM系统估计摄像机的位置和姿态,同时生成三维点云图。
在有GPS信息的情况下,经时间同步后自动将估计轨迹转换为WGS84坐标。因此,输出的正射影像保留了没有地面控制点的全局坐标。采用自适应加权多波段算法对最终图像进行融合和实时可视化。为了评估所提出方法的有效性,我们创建了一个包含不同环境的公开可用的航空图像数据集。实验结果表明,与现有的方法相比,我们的系统能够实现更高的效率和质量。
该文章的主要贡献:
1) GPS与视频自动同步:针对大多数视频流与GPS不同步的问题,提出了一种基于图的优化方法,实现视频时间与GPS时间由粗到精的同步。因此,我们的方法可以在不需要gcp的情况下将GPS信息融合到SLAM处理中,从而获得WGS84坐标并克服累积误差。
2)实时正射影像混合:提出了一种自适应加权多波段方法,实现图像的实时增量混合和可视化。与SfM方法相比,该方法获得了更高的效率和满意的结果,没有因视角限制而产生的孔和扭曲。
3)公共航空图像数据集:我们创建了一个具有多个不同序列的航空图像数据集,用于视觉SLAM、正射影像和3D重建评估。
本文提出了一种实时增量生成高质量正射影像的新方法。
与传统图像拼接方法仅计算同形变换不同,该方法通过设计良好的SLAM系统对相机位置和姿态进行估计,从而获得更合理的平面和精确的相机姿态。为了处理大尺度场景,我们的SLAM系统融合了GPS信息,获取WGS84坐标,减小跟踪漂移。环路闭合技术还用于进一步减小漂移,特别是当GPS信息缺失时。
大多数图像拼接方法是在所有图像都准备好之后才进行混合,这降低了整体效率。
为了提高实时速度,提出了一种增量自适应加权多频带混合SLAM关键帧的方法。
在混合算法中,将拉普拉斯金字塔存储在网格中,提高了算法的性能,减少了内存消耗。因此,所得到的正射影可以逐渐缝合并立即可视化。
系统概述::视频准备,跟踪,映射,地图优化和地图融合。
1)对图像进行不失真处理,得到理想的针孔模型,提取具有特征的关键点进行跟踪
2)当前帧的初始运动相对于最后一帧进行跟踪,然后与局部子地图精确对齐。
3)当当前帧与最后一个关键帧的距离超过一定阈值时,将新的关键帧添加到全局地图中,然后执行局部绑定优化局部地图点和关键帧姿态。
4)采用全局优化方法检测闭环,得到一致的映射。利用SIM(3)位姿图对视频和GPS时间戳进行从粗到精的在线标定,并将最终的相似度变换应用于估计的轨迹和地图点。然后,在映射线程的局部束优化中考虑GPS约束,对拼接平面进行采样地图点拟合。
5)地图融合单元将关键帧逐渐融合到马赛克平面中
视频帧准备和跟踪
为了减轻跟踪线程的繁重负担,图像不失真和特征提取等准备工作在单独的线程中执行。选择了定向FAST和旋转BRIEF (ORB)[31]探测器和描述子。
由几个关键帧K和地图点 P构成的映射,用前两个关键帧K1,K2自动初始化。在地图初始化后,从几对3D地图点P和2D关键点P中获得当前图像的位姿µ,这被称为透视点(PnP)问题。地图点和关键点之间的对应关系与ORB-SLAM的策略相似。在当前帧和最后一个关键帧Ki−1之间进行窗口搜索,收集10个匹配,然后进行粗姿态确定。
收集观察到这些地图点的所有关键帧来构建局部子地图,并通过粗糙姿态投影所有局部地图点来找到更多的匹配。
给定3D地图点P和当前关键点P之间的一组匹配,可以通过最小化加权平方残差函数来估计相机姿态µ:
权重wi由关键点的级别决定误差
ei定义为测量值pi = (xi,yi)T与地图点pi的预测值pi之间的差值:
权重wi通过鲁棒加权函数来减少大残差的影响,信息矩阵Σ−1i与pi的金字塔水平相关联。
两帧之间的相对距离通过LSD-SLAM中描述的平移和旋转的加权组合来测量
其中W是一个对角矩阵,每个参数的权重不同,单位为µji,平移权重根据平均逆深度进行缩放。一旦当前帧和最后一个关键帧Ki−1之间的距离超过固定阈值,将创建一个新的关键帧Ki,以确保关键帧之间有足够的重叠。
关键帧处理和局部优化
当插入关键帧Ki时,需要尽快向地图添加新的地图点,以便能够匹配足够的对应以进行跟踪。对于所有在跟踪中没有观察到的关键点,我们尝试在沿极线的相邻关键帧中找到它们的对应关系。计算并注册词袋向量以加快搜索速度,并根据匹配结果对新的地图点进行三角测量。在创建新的映射点之后,执行数据关联步骤来添加更多的观测值、合并冗余映射点和删除坏映射点。
执行局部束来细化由局部关键帧KL和KL看到的地图点PL组成的局部子地图。通过最小化所有局部观测的加权残差来优化关键帧的姿态µ和地图点的位置P:
环路检测与融合
为了生成高质量的地图,需要获得高质量的轨迹,但在视觉SLAM中,跟踪漂移是不可避免的,这会导致在长行程积累过程中产生不可容忍的不对中误差。虽然可以通过融合GPS信息来共同优化累积漂移,这将在下一小节中介绍,但为了在大尺度场景中获得更好的一致性,最好进行闭环和全局优化。
第一步是检测最接近当前位置的适当关键帧。由于估计的位置有较大的漂移,因此,不容易直接估计环路的交叉点。最近,基于外观的SLAM方法给出了基于视觉的解决方案。本工作采用DBoW2包进行环路检测。收集所有与当前关键帧共享视觉词的关键帧,并计算相似度分数。然后根据候选人的视觉相似性进行排序。为了获得鲁棒性,只有当它们的邻居也是候选环时,它们才被选为候选环。对于所有候选循环,我们找到它们与当前关键帧的对应关系,并通过RANSAC方法计算粗相似变换。将拟合效果最好的候选帧作为循环关键帧,然后通过最小化映射点投影误差的和来优化相对姿态。
检测到环路后,首先执行数据关联步骤,融合重复的映射点。由于直接束调整方法优化耗时太长,因此采用中描述的姿态图优化来减少关键帧的漂移并细化相应的地图点。该方法保持了精度,这得益于计算量小的局部优化。
GPS和飞行适配
在我们的实验中,UA v配备了GPS,并且大多数序列都可以使用带时间戳的轨迹。
然而,视频不能与GPS同步,需要为每个序列校准恒定的时差。在我们的系统中,我们使用时差tvg来建立全局位置与摄像机位置的对应关系,并使用相似变换Svg将整个地图转换为WGS84坐标。提出了一种鲁棒高效的差分tvg和相似度变换Svg由粗到细的联合优化算法。对于关键帧Kj,其在视频中的时间戳为t j,在地图中的平移为Pmap t j,则其对应的GPS时间戳应为tg = t j + tvg,变换后的WGS84坐标为SvgPmap t j。我们的目标是通过最小化所有关键帧K的残差的平方和来找到最佳的tvg和Svg:
其中Λ−1j控制全局坐标中每个组件的权重。为了更稳健地估计tvg和Svg,首先进行粗校准以缩小时移范围并获得初始Svg。一般情况下,时移不会太大,假设小于60秒。因此,将时移范围划分为若干片,每个tvg∈[−60,60]用于使用快速SIM(3)求解器计算Svg。选择最佳的t∗vg和S∗vg作为初始值,并使用G2O框架对精确结果进行优化。校准tvg后,将Svg应用于地图点和关键帧。
局部优化时考虑了式(8)中的GPS约束,消除了跟踪漂移。
由于地平面是二维地图拼接和可视化所必需的,因此使用RANSAC方法从采样的地图点拟合一个平面。
地图融合
为了获得更好的拼接效果,通常在混合之前进行一个裁剪步骤,然而,大多数裁剪方法[28]对于瞬时应用来说计算成本很高,而且它们也丢弃了权重,并且需要对所制备的所有图像进行蒙版处理。在我们的系统中,我们提出了一种加权多波段算法,将正交图像分割成矩形块,在混合过程中自然生成一条缝。对于每个补丁,存储一个拉普拉斯金字塔和一个权重金字塔。使用拉普拉斯金字塔,曝光差异和不对准被最小化,亮度混合连续,而所有细节都保留在金字塔的低水平。第1层的拉普拉斯金字塔l可以通过展开运算来计算[29]。为了加速操作,首先计算k级高斯金字塔,并从金字塔的较低级别Gl−1中减去每一级Gl:
这里2n−1是拉普拉斯核的大小权重wdx,dy的和应该是1。最高级别的Lk等于Gk,因为没有更高级别的Gk+1计算。默认波段数k是5,补丁分辨率是2k的倍数,在我们的系统中使用256 × 256分辨率。补丁不仅使混合增量化,而且保证了变形后的图像尺寸合适。
拼接帧的流程总结如下:
1)根据相对位姿获得矩形边距,当边距超过现有面积时,拼接面积增大。
2)考虑高度、视角和像素定位等因素,自适应计算加权图像,使拼接尽可能精确。计算单应性矩阵并应用于彩色图像和加权图像的变形。
3)从变形后的图像展开拉普拉斯金字塔,计算相应的权重金字塔。将结果融合到加权值最优的全局拼接块中,而不是进行加权求和。
实验
为了评估我们的系统,我们创建了包含多个序列的NPU DroneMap数据集,所有数据都可以在网站上获得。我们展示了所提出方法的结果,并将正射影像与两个最先进的商业软件Photoscan[8]和Pix4DMapper[7]进行了比较。结果表明,该系统以较少的计算量获得了较高的鲁棒性和相对质量。
A. NPU DroneMap Dataset使用自制的hexacopter和DJI Phantom3(高级版)进行序列记录。hexacopter配备了GoPro Hero3+相机和DJI Lightbridge用于实时视频传输。表1总结了所有序列的一些基本统计数据。数据集包含在不同地形和高度捕获的序列,并且新的捕获序列将被添加到数据集并在网站上发布。
对于每个序列,提供以下内容:1)原始数据包括视频、飞行日志、gcp位置和摄像机标定数据。相机使用三种不同的模型进行校准,包括ATAN(用于PTAM [15]), OpenCV(用于ROS)和OCamCalib[36]。由于使用了两种类型的无人机,飞行日志具有不同的格式。
2)我们将原始数据转换为统一的可读格式,供我们的系统在接下来的评估中使用。对于每个序列,视频被分割成未失真的图像和飞行日志转换成文本文件。
3)给出了SfM方法和Map2DFusion中使用的关键帧图像和轨迹
融合结果
我们在NPU DroneMap数据集上评估了我们的系统,结果的缩略图如图4所示,全分辨率图像可在网站上获得。结果表明,我们的方法不仅在普通序列上获得了令人满意的质量,而且在树木、建筑物和水中也获得了令人满意的性能。此外,该方法对序列phantom - 3-grass具有很高的鲁棒性,这对快速运动和重复视图的处理具有很大的挑战性。
在gopronpu和phantom3-npu上定量评价制图精度,平均误差分别为3.066 m和5.710 m。由于目前的实现没有进行全局优化,导致两个实验的参考点不同,导致误差的差异。通过引入设计良好的全局拟合和束平差,可以提高精度。
与最新方法的比较
我们将我们的方法生成的正射影像与两个著名的软件Photoscan[8]和Pix4DMapper[7]进行了比较。所有对比数据,包括原始图像和正形图,都可以在项目网站上公开获取。
对于软件Photoscan和Pix4DMapper,用于对齐图像的参数设置为“精确水平”。图5显示了幻影3- centralpark和幻影3-village序列的一些细节对比。我们注意到我们的方法在某些情况下获得了更好的结果:1)首先,我们的方法能够在树木和建筑物等垂直结构上获得更多的自然镶嵌。
如图5(A)的A部分和图5(A)的B部分所示。
5(b),房屋的边界在Photoscan中是扭曲的,在Pix4DMapper中是粗糙的。
2)其次,Photoscan生成的结果不仅包含图5的B部分,还包含其他一些序列,如phantom3npu。特别是对于具有挑战性的序列phantom3grass,我们的方法在Photoscan和Pix4DMapper都无法获得图像的情况下显示出很高的鲁棒性。Pix4DMapper在图5中获得了比Photoscan更好的对准效果,但其混合不够平滑,同时在水体上方存在一些明显的光点,如图5(b)中的A部分。
3)另一个重要的优点是我们的算法在很少重叠的区域上保持高质量。这样在图5(a)的C部分等边缘处效果更好。
值得注意的是,虽然花了几个小时来对齐关键帧,但Pix4DMapper和Photoscan都无法为序列phantom3-grass输出正确的结果,因为UA V速度快,海拔低。然而,由于我们的方法没有重建密集的3D地图,所以比较并不是完全中立的。此外,我们的方法使用GPS坐标来联合估计相机姿态。
计算性能所有的评估都是在一台配备Intel i7-4710 CPU、16gb RAM和GTX960 GPU的计算机上进行的。我们在64位Linux系统中运行我们的方法和Photoscan,而Pix4DMapper在64位Windows 10上执行。以分钟为单位的时间使用统计如表2所示。
计算性能
我们的方法跟踪所有帧,而Pix4DMapper和Photoscan只处理关键帧来生成最终图像。随着关键帧数的增加,Pix4DMapper和Photoscan的处理时间急剧增加
然而,我们的系统的计算复杂度是近似线性的,因此可以流畅地处理大规模场景。在所提出的系统中,对于完整的1080p视频,跟踪运行在约30 Hz,拼接运行在约10 Hz。实际上,由于基线跟踪能力大,不需要对每一帧都进行处理,通过对选定的帧进行处理可以进一步提高速度。
基于以上优点,在低成本的嵌入式设备上使用该系统是足够的