当前位置 :  首页 > 快讯

自动驾驶中如何将稀疏地图与视觉SLAM相结合?

来源 : 智驾最前沿
陈云培
发表 :  2025-10-28 13:47:19

在自动驾驶场景中,稀疏地图通常是由一系列关键帧和若干三维稀疏特征点构成的地图,每个特征点包含三维坐标和描述外观的描述子;而视觉SLAM是运行在车辆上的实时算法,它一边通过相机估计自身位置,一边在未知环境中构建或更新地图。将两者结合的目的其实非常明确,利用预先构建好的稀疏地图作为先验信息,让在线运行的视觉SLAM实现更稳定、更精准的定位,同时使地图能够重复使用和持续维护,避免每次都从头开始建图。

图片

为什么要把稀疏地图和视觉SLAM结合

视觉SLAM在短时跟踪和闭环检测方面表现出色,但在长期运行中容易受到漂移、光照变化、遮挡和动态物体等问题的干扰。稀疏地图恰好能弥补这些短板,它支持离线优化,可通过全局光束法平差(bundle adjustment)大幅提升几何精度;能够存储稳定的语义或标志性地物(如路灯、交通标志、建筑角点),从而支持长期可靠的定位。此外,它还可以跨不同任务重复使用,有效节约在线计算资源。


将稀疏地图与视觉SLAM结合,相当于将离线生成的高质量地图信息引入在线定位过程,车辆在进入新场景时能够快速“重定位”到地图坐标系中,可有效抑制长期漂移;当遇到回环时,地图也能辅助系统快速识别并纠正位姿误差。对于自动驾驶来说,这意味着更稳定的车道级或米级定位能力,降低对GNSS的单一依赖,并提升在隧道、城市峡谷等复杂场景下的系统鲁棒性。

具体结合方法和技术细节

将稀疏地图与视觉SLAM结合,本质上是一个“准备-使用-维护”的循环系统工程。为了清晰地理解其全貌,我们可以将其工作流程梳理为“离线地图构建”、“在线定位与视觉里程计”和“全局一致性与更新”等三条相互关联但又职责分明的主线。这三条主线并非孤立存在,而是构成了一个完整的生态闭环。

图片

1)离线构建

多数团队会先利用高质量的SLAM系统或多传感器组合(如视觉+IMU+RTK-GNSS)对待测道路进行采集,进而对相机位姿、关键帧和三维特征点执行离线优化。

这一阶段的重点包括,选取稳定特征(如ORB、SIFT、Super Point等),保持关键帧之间的覆盖范围和视角多样性,执行全局光束法平差以剔除弱约束点,并过滤掉动态或易变特征(如树叶、移动车辆)。

此外,为支持在线快速匹配,通常还会为每个关键帧提取并存储特征描述子(可以是传统ORB描述子,也可以是基于深度学习的描述子),并建立词袋模型或全局描述子(如NetVLAD)以加速检索。

离线地图的存储也需要结构化,关键帧的位姿、相机内参、稀疏点坐标及其可见关键帧、特征描述子等信息都应妥善保存,如果条件允许,还可加入语义标签(如“交通标志”“路灯”)和可靠性评分。

2)在线定位

在有稀疏地图的前提下,视觉SLAM的重心从“同时建图”转向“局部跟踪+离线地图匹配”。当相机捕获新图像后,首先通过视觉里程计或视觉惯性里程计进行短时跟踪,保持低延迟、平滑的位姿估计;同时,系统并行尝试基于图像检索的重定位,利用词袋模型或全局描述子找到可能的离线关键帧候选;接着,对候选关键帧执行2D-3D匹配(将当前帧中的特征点与稀疏地图中的三维点进行关联),并通过PnP结合RANSAC求解相机在地图坐标系中的绝对位姿。

图片

这一过程中2D-3D匹配需要有效的关联策略(以描述子匹配为主,辅以尺度、位置先验和几何验证),并利用鲁棒估计方法(如RANSAC)剔除异常点。若匹配点数量充足且内外点比例理想,则可以直接将PnP解作为定位结果;否则系统将回退到里程计估计或等待更多观测。

一般情况下,定位结果会作为约束加入一个短时滑动窗口优化器,进行仅位姿优化或局部光束法平差,以进一步优化结果;大规模的全局优化不适合实时运行,但可在后台低频执行。

3)坐标系与变换处理

离线地图通常位于全局或局部地图坐标系中,而在线视觉里程计输出的是相对的车体坐标系位姿。要将两者结合,就需要估计从车体坐标系到地图坐标系的变换矩阵,这一变换可通过一次成功的PnP重定位或借助GNSS/RTK信息配准得到。

在实际工程中,常将该变换作为一个状态量,当重定位成功时,设定一个固定的“地图-车体”变换并持续优化;如果后续发现变换出现漂移(例如因离线地图更新引起),则需要有相应的机制进行平滑调整或触发重新定位。

4)全局一致性与地图更新

车辆在运行过程中会不断产生新的观测,这些数据可能揭示地图中存在缺陷或环境发生变化。因此,系统需需要具备两种能力,一是将在线观测结果回传至离线端进行融合,实现地图维护;二是在线端能够处理地图版本的变化(例如接收云端推送的新版地图)。

在线系统应具备一定的容错能力,能够处理地图中的不一致情况,通过鲁棒的数据关联策略,并为地图约束赋予适当权重,避免因单次错误匹配导致定位失败。

图片

离线端在收到多车或多轮采集数据后,应执行地图合并、剔除低置信度地标、添加新地标等操作,并通过全局光束法平差生成新版地图。在这一过程中,版本控制、时间戳管理以及按地理范围分块存储都是工程上必须考虑的要素。

5)感知与语义融合

纯几何特征在大范围、长期运行的环境中容易受限。将稀疏地图与语义信息结合(例如将交通标志、车道线、灯杆作为语义地标),能够显著提升系统在不同季节、不同光照条件下的重定位鲁棒性。

目前常见的做法是在离线地图中为三维点绑定语义标签,在线匹配时利用语义信息进行强验证。语义特征通常更加稳定(如交通标志的位置不易改变),并且对端到端系统来说也更具可解释性。

6)关键算法与工具链

为推动稀疏地图和视觉SLAM结合,常用的技术组件包括词袋检索(如DBoW2/3)、全局描述子(如NetVLAD)用于粗检索,特征匹配(如ORB、SuperPoint+SuperGlue)用于精匹配,PnP+RANSAC用于位姿估计,以及滑动窗口优化或位姿图优化(使用g2o、Ceres、GTSAM等工具)用于局部和全局优化。

为了提升效率,还会使用KD-tree/FLANN进行最近邻搜索,利用倒排索引加速检索,并采用地理分块机制限制搜索范围、减少内存占用。对于大规模地图,通常还会对关键帧进行抽稀、对地标进行下采样,确保在线系统仅加载当前位置附近的局部子图。

稀疏地图和视觉SLAM结合常见问题与对策

1)光照与季节变化

剧烈光照变化或季节更替会显著降低基于外观描述子的匹配成功率。为解决这个问题,可使用对光照变化更鲁棒的描述子(如基于深度学习的描述子);引入语义地标(如交通标志)作为补充;在预处理阶段采用颜色归一化或直方图匹配;如果可能,在构建离线地图时纳入不同时段采集的数据,生成多个版本的地图供在线系统按需选择。

2)动态物体与错误匹配

道路上的车辆、行人等动态物体会导致地图匹配产生异常点。因此需要在离线阶段就过滤掉动态特征(可通过多次观测的一致性进行判断),并在在线匹配中设置严格的RANSAC参数和几何验证机制,避免错误的2D-3D匹配影响定位结果。同时,可借助运动分割或语义分割技术屏蔽移动物体上的特征点。

3)重定位失败与地图覆盖不足

当车辆进入地图未覆盖的区域时,自然无法基于该地图进行定位。因此要提前规划地图覆盖范围;在系统中设置回退机制(如降级至VIO+GNSS定位);并将新采集的数据回传至离线端,用于扩展地图覆盖范围。

4)地图版本管理与多车协同

当多辆车使用同一张地图时,地图会频繁更新。此时需要建立版本控制和回滚机制,确保新版本地图在充分验证前不会影响在线服务。按地理分块加载地图可以显著降低内存占用和检索延迟。

图片

5)计算资源与延迟权衡

在线匹配和局部优化都会消耗计算资源。实际系统中通常将重定位和地图匹配任务放在独立线程中执行,并设置时间预算(例如整个检索匹配过程控制在几十到一百毫秒内)。当时间不足时,系统可降级至仅使用视觉里程计预测,或输出置信度较低的位姿。全局优化则放在云端或后台低频执行,避免影响实时控制回路。

6)精度评估与指标

为持续评估系统性能,通常使用绝对轨迹误差、相对位姿误差和重定位成功率等指标。进行评估时,需明确坐标系、对齐方法(例如使用Umeyama算法进行相似变换对齐)以及测试场景(如白天/夜晚、雨雪天气、城市/乡村等)。

7)隐私、安全与地图更新频率

稀疏地图中可能包含敏感信息(如住宅门牌)。在上传或共享地图数据时,需进行脱敏处理,或仅保留对定位真正必要的结构特征。此外,地图更新频率需要在“及时性”和“稳定性”之间取得平衡,更新过于频繁会导致在线端不断切换地图版本,过于滞后则可能导致地图过时。常见的折中做法是快速、小批量地上传本地观测的统计信息,由离线系统进行批量重建,并发布经过充分验证的新版地图。

最后的话

将稀疏地图与视觉SLAM结合,本质上是将“离线的全局精度”与“在线的实时性”两者的优势融为一体。一定要切忌将所有功能堆砌于单一模块,而应采用分层、容错的架构,离线端打造高质量地图(多视角、多时段),在线端设计包括短时视觉里程计、基于地图的重定位和后台地图更新在内的多层系统,并通过语义增强、鲁棒匹配和版本管理来保障长期稳定运行。

可以先部署稳定的VIO作为里程计,再加入词袋模型进行快速候选检索,利用PnP+RANSAC实现首次重定位,随后在滑动窗口中进行位姿优化以细化结果,同时周期性地将观测数据回传以维护离线地图。按照这样的分层设计,自动驾驶系统将在真实路况中表现更稳定、更易维护,也更容易扩展至大规模、多车辆的部署场景

责任编辑 : 宋姗姗

网友留言

登录  |   注册
无标题文档
TOP