文章:RoadMap: A Light-Weight Semantic Map for Visual Localization towards Autonomous Driving
作者:Tong Qin, Yuxin Zheng, Tongqing Chen, Yilun Chen, and Qing Su
编译:点云PCL
本文仅做学术分享,如有侵权,请联系删除。内容如有错误欢迎评论留言,未经允许请勿转载!
文本是华为天才少年秦通CVPR2021的文章,这篇文章根据车载丰富的传感器实现轻量语义地图的生成和更新,就是一种低成本的众包地图,众包地图目前是没有完全的定义的,基本上可以理解为用户通过自动驾驶车辆自身的传感器,或其他低成本的传感器硬件,收集的道路数据传到云端进行数据融合,并通过数据聚合的方式提高数据精度,来完成高精地图的制作。那么众包地图模式将来会不会取代专业采集的模式呢?在技术层面基于相机的三维重建和语义分割技术是值得我们关注和学习的方向。废话不多说,我们先看看视频,一睹为快。
摘要
高精度的定位对于自动驾驶任务至关重要。如今,我们已经看到许多装配丰富传感器的车辆(如Robo-taxi)依靠高精度的传感器(如Lidar和RTK-GPS)和高精度的地图在街道上自主行驶。然而,低成本生产的汽车无法承受传感器和地图的如此高昂的费用。如何降低成本?丰富传感器的车辆如何能让低成本汽车受益?本文提出了一种基于低成本摄像机和压缩的视觉语义地图的轻量级定位方案。这是一种根据自动驾驶车辆配置的传感器生成和更新高精地图的众包模式。具体来说,该地图由若干语义元素组成,如车道线、人行横道、地面标志和路面停车线。
本文介绍了车载地图、云上维护和用户端定位的整体框架。在车辆上对地图数据进行采集和预处理。然后,众包数据被上传到云服务器。将多辆车的海量数据融合到云端,及时更新语义地图。最后,将语义图压缩后分发给生产车,生产车利用语义图进行定位。通过实验验证了该算法的性能,并与其他算法进行了比较。语义地图的平均大小为36kb/km。这个框架是一个可靠和实用的自主驾驶定位解决方案。
图1.上海南浦大桥样图。语义地图包含车道线(以白色绘制)和其他道路标记(以黄色和红色绘制)。绿线是车辆的轨迹,基于此语义图进行定位。左图为鸟瞰南浦大桥实景。
介绍
高精度定位依赖于高精度传感器和高精地图(HD-Map),目前,RTK-GPS和激光雷达是两种常用的传感器,广泛应用于厘米级定位。RTK-GPS通过接收卫星和地面站的信号,在开阔地区提供精确的全球姿态,激光雷达捕捉车辆周围环境的点云,通过点云匹配的方法可以在GPS环境下对车辆进行高精地图的定位。这些方法已经在许多城市的自动驾驶出租车应用中得到应用,就目前而言基于激光雷达和高精地图的解决方案是自动驾驶出租车应用的理想选择。然而,这种方案有几个缺点限制了它在一般汽车上的应用,首先,一般汽车不能负担高成本的激光雷达和高精地图,另外点云地图消耗大量内存,这对于大规模生产和更新地图来说也是负担不起的,高精地图制作耗费大量人力且很难保证及时更新。为了克服这些挑战,应该利用依赖低成本传感器和压缩地图的方法。
在这项工作中,作者提出了一个轻量级的定位解决方案,它仅依赖于摄像机和压缩的视觉语义地图。该地图包含道路上的若干语义元素,如车道线、人行横道、地面标志和停车线。这张地图是压缩稠密的语义地图,在具有丰富传感器的车辆上是很容易生产和更新的, 这是一种众包的方式。同时配备摄像头的低成本车辆可以使用这种语义地图进行定位,具体地说,基于深度学习的语义分割被用来提取有用的地标,将语义地标从二维像素恢复到三维环境下,并配准到局部地图中,然后将局部地图上传到云服务器,云服务器合并不同车辆捕获的数据,并压缩全局语义地图,最后,将压缩的语义地图分发给生产车,用来实现车辆的定位。
本文提出的语义建图和定位方法适用于大规模自主驾驶车辆的应用。本文的贡献总结如下:
- 提出了一个新的自主驾驶任务轻量化定位框架,包括车载地图、云地图维护和用户端定位方案。
- 提出了一个新的想法,即使用配备丰富传感器的车辆来帮助低成本的一般车辆,传感器丰富的车辆通过每天自动收集数据和更新地图。
- 通过实际的实验验证了该系统的实用性。
图2 本文方案的系统结构示意图。该系统由三部分组成,第一部分是车载端构建语义地图,第二部分是云上更新地图,最后一部分是最终用户车辆端的定位。
视觉建图和定位的研究在过去的几十年里变得越来越流行。传统的方法主要集中在小尺度室内环境下的同时建图与定位(SLAM)。在自主驾驶任务中,更注重大规模的室外环境。
A.传统的视觉SLAM
视觉里程计(VO)是视觉SLAM领域的一个典型课题,在机器人应用中有着广泛的应用。常用的方法包括仅摄像机方法和视觉惯性方法。提取自然环境中的稀疏点、稀疏线、稀疏面等几何特征。这里关于SLAM 的综述可以查看本公众号的历史文章综述
SLAM综述(1)-Lidar SLAM
SLAM综述(2)-视觉SLAM
SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM
SLAM综述(4)激光与视觉融合SLAM
总体来说,传统的基于图像SLAM的方法长期受到光线、视角和时间变化的影响比较大。
B 基于道路要素的定位方法
自动驾驶车辆的定位就是要充分利用场景中的道路特征。道路要素包含路面上的各种标记,例如车道线、路缘和地面标志,交通灯和交通标志等语义信息。与传统特征方法相比,这些标记在道路上丰富稳定,对时间和光照变化具有很强的鲁棒性。一般来说,一个精确的先验图(HD-map)是必要的。这种先验地图通常由高精度的传感器装置建立。通过将视觉检测与此地图相匹配来定位车辆。这里列举了一些相关论文,有兴趣的可以加入免费知识星球下载原文阅读。
主要内容
在本文中,我们重点研究了一个完整的系统,包括车载地图、云端地图合并/更新和最终用户车辆的定位,该系统是一种可靠、实用的大规模自主驾驶定位解决方案。本方案的系统由三部分组成:
第一部分是车载地图。使用配备的前视摄像头、RTK-GPS和基本导航传感器(IMU和车轮编码器)的车辆。这些车辆被广泛应用于自动驾驶出租车的应用中,每天都要采集大量的实时数据。通过语义分割网络从前视图像中提取语义特征。然后根据优化后的车辆姿态,将语义特征投影到世界坐标系中。在车辆上建立了一个局部语义地图。此局部地图将上传到云端地图服务器中。
第二部分是云端地图合并与更新。云服务器从多个车辆收集局部地图。局部地图合并为全局地图。然后通过轮廓提取对全局地图进行压缩。最后,将压缩后的语义图发布给最终用户。
最后一部分是最终用户车辆的定位。最终用户是常见的一般汽车,这些汽车配备了低成本的传感器,如摄像头、低精度GPS、IMU和车轮编码器。最终用户在从云服务器下载语义地图后对其进行解码。与车端创建地图部分一样,通过语义分割前视图像中提取语义特征,通过语义特征匹配对车辆进行地图定位。
车端建图
A.图像语义分割
这里使用基于CNN的语义分割的方法,将前视图像分割为地面、车道线、停车线、道路标志、路缘、车辆、自行车、人等多个类别。在这些类中,地面、车道线、停车线和道路标记用于语义建图,其他类可用于其他自动驾驶任务,不参与地图的构建。图像分割的一个例子如图3所示。图3(a)显示了由前视摄像机捕获的原始图像。图3(b)显示了相应的分割结果。
图3(a)是由前视相机拍摄的原始图像。红色框ROI区域。(b) 是分割结果,它将场景划分为多个类,车道线是用白色画的,人行横道是用蓝色画的,道路标志是用黄色画的,停车线是用棕色画的,路面是灰色的 (c)表示车辆坐标下的语义特征。
B 逆透视变换
在语义分割后,语义像素在车辆坐标系下从图像平面逆投影到地平面,这个过程也被称为逆透视映射(IPM),对摄像机的内参和摄像机到车辆中心的外参进行离线标定。由于存在透视噪声,距离场景越远,误差越大,这里只选择感兴趣区域(ROI)中的像素,该区域靠近相机中心,如图3(a)所示。该ROI表示车辆前方的12m×8m矩形区域。假设地面是平面,每个像素[u,v]在车辆坐标下投影到地面(z等于0),如下所示
其中πc(·)是相机的畸变和投影模型。πc(·)−1是逆投影变换,它将像素变换到空间中,[Rc tc]是相机相对于车辆中心的外参矩阵,[u v]是图像坐标中的像素位置,[xv yv]是特征在车辆中心坐标中的位置,λ是尺度标量,图3(c)示出了逆透视变换的示例结果,ROI中的每个标记像素都投影在车辆前方的地面上。
C 姿态图优化
构建地图对车辆的定位是必要的,虽然采用了RTK-GNSS,但不能保证姿态始终可靠,RTK-GNSS只能在开阔地区提供厘米级位置,在城市场景中,它的信号很容易被高楼挡住,导航传感器(IMU和车轮)可以在GNSS信号弱的区域提供里程计,然而,里程计长期受到累积漂移的影响,这一问题的示意图如图4所示。
蓝线是GNSS良好区域的轨迹,由于RTK GNSS的高精度,该轨迹是准确的,在GNSS信号若区,里程计轨迹以绿色绘制,漂移较大,为了消除漂移,进行了位姿图优化,优化后的轨迹以红色绘制,平滑无漂移。
位姿图优化的示意图如图所示,蓝色节点是车辆在特定时间的状态s,其中包含位置p和方向q,用四元数q来表示方向,R(q)表示将四元数转换为旋转矩阵,有两种边,蓝边表示GNSS约束,它只存在于GNSS信号好的情况,它只影响一个节点,绿色边是里程约束,它在任何时候都存在,它约束两个相邻节点,位姿图优化公式如下:
D 局部建图
位姿图优化提供了任意时刻的可靠的车辆姿态,在第一帧中捕捉到的语义特征基于这个优化的姿态从车辆坐标转换到全局坐标下:
通过图像的语义分割,每个点包含一个类标签(地面、车道线、路标和人行横道),每一点都代表了世界坐标系中的一小块区域,当车辆行驶时,一个区域可以被观察到多次,然而,由于分割噪声的影响,该区域可能被划分为不同的类别,为了克服这个问题,这里使用统计来过滤噪声,将地图分为小网格,分辨率为0.1×0.1×0.1m,每个网格的信息包含位置、语义标签和每个语义标签的计数,语义标签包括地面、车道线、停车线、地面标志和人行横道,开始时,每个标签的得分为零,当一个语义点被插入到一个网格中时,相应标签的得分增加一分,因此,得分最高的语义标签表示网格的类,通过该方法,语义图对分割噪声具有较强的鲁棒性和准确性。图6(a)中示出了全局建图结果的示例。
图6.语义地图压缩和解压示例 (a)显示原始语义图 (b)显示此语义建图的轮廓 (c)显示从语义轮廓恢复的语义地图。
云端合并和更新地图
A.地图合并/更新
云端地图服务器用于聚合多辆车捕获的海量数据,它能够及时地合并本地地图,使得全局语义地图是最新的,为了节省带宽,这里只将本地地图的占用网格地图上传到云端,与车载地图流程一样,云服务器上的语义地图也被划分为网格,分辨率为0.1×0.1×0.1m,局部地图的网格将根据其位置添加到全局地图,具体来说,本地地图网格中的分数被添加到全局地图上相应的网格中,这个过程是并行的,最后,得分最高的标签是网格的标签。图9中示出了地图更新的详细示例。
图9。当环境改变时语义地图更新的图示 (a)显示原始环境 (b)显示更改路标后重新绘制车道线 (c)显示原始语义图 (d)显示语义图正在更新,此时新的车道线正在替换旧的车道线 (e)显示了最终的语义图
近来很多3D的应用在兴起,3D传感器在进步,随着虚拟网络的发展转到物理实际中的应用,比如(ADAS,AR,MR)自动驾驶中需要理解 汽车行人交通标识,同时也需要理解三维物体的状态静止和移动。
B 地图压缩
云服务器生成的语义地图将用于大量一般车辆的定位,然而,传输带宽和车载存储在生产车上受到限制,为此,语义地图在云上进一步压缩,由于轮廓能够有效地表示语义地图,因此本文采用轮廓提取的方法对地图进行压缩,首先,生成语义地图的俯视图,每个像素表示一个网格,其次,提取每个语义组的轮廓,最后,保存轮廓点并将其分配给车辆。
用户端车辆的定位
最终用户是指配备低成本传感器,如摄像头、低精度GPS、IMU和车轮编码器的车辆。
A.地图解压
当最终用户收到压缩后的地图时,从等高线点解压语义地图,在俯视图图像平面中,使用相同的语义标签填充轮廓内的点,然后将每个标记的像素从图像平面恢复到世界坐标中,解码器方法能够有效地恢复语义信息。
B. ICP定位
这个语义图进一步用于定位,与建图过程类似,语义点由前视图图像分割生成并投影到车辆坐标系下,然后,通过将当前特征点与地图匹配来估计车辆的当前姿态,如图7所示。采用ICP方法估计位姿,最后采用EKF框架,将里程计与视觉定位结果相融合,该滤波器不仅提高了定位的鲁棒性,而且平滑了估计的轨迹
图7.语义地图定位说明。白色和黄色的点是地图上的车道线和道路标记,绿点是观察到的语义特征,通过将当前特征与地图匹配来定位车辆,橙色线是估计的轨迹。
实验结果
这里通过真实实验验证了所提出的语义建图与定位能力。
A.地图制作
车辆配备了RTK-GPS、前视摄像头、IMU和车轮编码器,多辆车同时在市区行驶,车载地图通过网络上传到云服务器上,最终的语义地图如图8所示。
图8.上海浦东新区语义地图与谷歌地图对齐的图示
上述地图覆盖了上海浦东新区的一个城市街区,将语义地图与Google地图对齐,这一地区的公路网全长22公里,原始语义地图的整体大小为16.7 MB,压缩后的语义图大小为0.786mb,压缩后的语义图平均大小为36kb/KM。(反正就是高效)
B.定位精度
在这一部分中,我们将度量定位精度与基于Lidar的方法进行了比较。该车配备了摄像头、激光雷达和RTK GPS,RTK-GPS被视为地面实况,使用第一个实验中产生的语义图,这辆车在市区行驶,对于自主驾驶任务,我们重点研究了x、y方向的定位精度和偏航(航向)角,与激光雷达比较的详细结果如图10和表1所示。可见,本文提出的基于视觉的定位方法优于基于激光雷达的定位方法。
图10.x、y和偏航(航向)方向定位误差的概率分布图。
总结
在本文中,我们提出了一个新的语义定位系统,整个框架包括车载地图、云上更新和用户端定位过程,实验证明一个可靠和实用的自主驾驶定位解决方案,该系统利用了路面上的标记物,事实上,3D空间中更多的交通元素可以用于定位,例如红绿灯、交通标志和标杆,在未来,我们将把更多的三维语义特征扩展到地图中。