来源:新机器视觉
作者 | 高毅鹏
编辑 | 自动驾驶之心
原文链接:https://zhuanlan.zhihu.com/p/2024469168322265851
本文只做学术分享,如有侵权,联系删文
一、引言
二、技术演进历程
2.1 离线高精地图时代(2022年以前)
在2022年之前,自动驾驶行业高度依赖预采集的离线高精地图。这一时期的技术特点包括:
采集方式:组建专业的数据采集车队,搭载高线数激光雷达、高精度定位系统(RTK)等昂贵设备,对目标区域进行系统性扫描。
建图流程:采集得到的点云数据通过SLAM(同步定位与地图构建)技术进行配准融合,随后由人工标注员在融合后的全局点云上进行地图元素的精确标绘。
精度追求:追求厘米级的几何精度,满足车道级定位的需求。
核心缺陷:建图成本高昂、更新频率低(月级甚至季度级更新)、覆盖范围有限、无法应对道路临时变化。
2.2 无图智驾与轻量化地图时代(2023-2024年)
2023年开始,行业逐步转向“无图智驾”方案,利用在线生成的矢量地图结合轻量化地图(LD Map)实现自动驾驶。这一阶段的技术特征为:
在线建图成为主流:通过车载传感器实时生成局部矢量地图,不再依赖预采集数据。
轻量化地图辅助:保留拓扑关系和语义属性等核心信息,大幅减少数据量,实现快速更新。
算法端到端化:从传统的分割+后处理范式转向端到端深度学习框架。
2.3 实时生成与智能感知时代(2025年后)
面向2025年及未来,技术发展呈现以下趋势:
生成式地图:利用3D高斯(3DGS)、神经辐射场(NeRF)等技术实现动态环境建模。
世界模型融合:将世界模型(World Models)引入地图构建,实现从“记录过去”到“预测未来”的跨越。
端到端一体化:感知、建图、预测、规划逐渐融合为统一的大模型。
三、核心感知技术框架
3.1 HDMapNet:开山之作
HDMapNet是静态道路结构感知领域的开创性工作,首次提出了局部在线地图构建的完整框架。其技术架构包含以下核心模块:
多模态特征提取:HDMapNet同时处理环视摄像头图像和激光雷达点云两种数据源。图像分支通过卷积神经网络提取透视视图特征,随后通过神经视角转换模块将特征映射到鸟瞰图(Bird's Eye View,BEV)空间;点云分支则通过体素化(Voxelization)和PointPillars编码器提取特征,同样转换到BEV空间。
BEV解码与融合:来自相机和激光雷达的BEV特征在解码器中进行融合,输出统一的BEV特征表示。
三大预测分支:语义分割分支识别每个像素属于哪种道路元素类别;实例嵌入分支为每个像素生成高维向量以区分不同实例(如不同的车道线);朝向预测分支预测道路元素的延伸方向。
后处理与矢量化:通过实例聚类算法将同一实例的像素聚合,结合预测的朝向信息,生成最终的矢量化地图元素。
HDMapNet的主要贡献在于首次验证了在线建图的可行性,但其采用的后处理流程较为复杂,推理速度受限。
3.2 VectorMapNet:端到端矢量化先驱
核心解读
VectorMapNet 让自动驾驶车通过摄像头和激光雷达,直接输出矢量格式的局部高精地图,而不是像素图片。
系统架构
VectorMapNet── 问题定义│ ├── 输入:多摄像头图像 + 激光雷达点云│ ├── 输出:矢量格式局部 HD 地图│ └── 优势:端到端、无需后处理├── 核心创新│ ├── 点集表示 polyline│ ├── 两阶段检测(粗→细)│ └── 自回归生成点序列├── 架构组成│ ├── BEV 特征提取器│ │ ├── CNNs(图像)│ │ ├── PointPillars(点云)│ │ └── IPM + Voxelization│ ││ ├── Map Element Detector│ │ ├── Element Query 设计│ │ ├── Transformer Decoder│ │ ── Deformable Attention│ ││ └── Polyline Generator│ ├── 细化几何特征│ ├── 自回归点序列生成│ └── EOS 结束标记├── 训练目标│ ├── L_det(检测损失)│ │ ├── 关键点位置│ │ └── 元素分类│ ││ ── L_gen(生成损失)│ └── 点序列概率分布└── 输出格式├── Drivable Area(可行驶区域)├── Boundary(边界)├── Ped Crossing(人行横道)└── Divider(车道分隔线)什么是矢量地图? | 用点序列表示道路元素(车道线、路沿等),而不是像素网格。
例:
一条车道线 = [(x1,y1), (x2,y2), (x3,y3)...] | ✅ 矢量 = 数学坐标
✅ 紧凑、精确
✅ 适合规划系统使用
为什么用 polyline? | polyline(折线)由点构成,点的顺序天然表示方向。
Planner(规划系统)接口方便。 | ✅ 点集表达灵活
✅ 方向信息内置
✅ 接口友好
整体流程是什么? | 传感器数据 → BEV 特征 → Map Element Detector → Polyline Generator → 矢量地图 | ✅ 两阶段检测✅ 先框架后细化
怎么训练的? | Loss = 检测损失 + 生成损失检测:关键点位置 + 分类生成:点序列概率分布 | ✅ 多任务联合优化✅ 自回归生成
3.2.1 技术拆解
(a) BEV 特征提取器
多摄像头图像 + 激光雷达点云转换到鸟瞰视角(BEV)统一特征表示为什么是BEV视角?因为地图是俯视的,这样最直观。
(b) Map Element Detector(地图元素检测器)
输入:BEV 特征 + Element Query(查询向量)Transformer Decoder输出:关键点位置 + 元素类型Element Query 是什么?
相当于"探针",主动去图里找道路元素
每个 Query = k 个关键点的向量表示
每帧最多 N_max 个 Query(防止过多)
关键点表示方式:
(c) Polyline Generator(折线生成器)
输入:检测到的元素框架自回归生成点序列输出:精细的矢量坐标自回归是什么意思?
像写字一样,一笔一划生成
生成第 n 个点时,已经知道前 n-1 个点
公式:p(整条线) = p(点1) × p(点2|点1) × p(点3|点1,点2) × ...
3️⃣ Loss 函数设计
总 Loss = 检测 Loss + 生成 Loss检测 Loss = 关键点位置误差 + 分类误差生成 Loss = 生成点序列的概率对数似然直观理解:
检测 Loss:惩罚"找错位置"或"认错类型"
生成 Loss:惩罚"画得不像"
3.3 MapTR:实时SOTA方案
MapTR V1系统架构图
┌─────────────────────────────────────────────────────────┐│ MapTR v1 架构 │├─────────────────────────────────────────────────────────┤│ ││ 传感器数据 (摄像头 + 激光雷达) ││ ↓ ││ ┌─────────────────┐ ││ │ Map Encoder │ 2D 图像 → BEV 特征 ││ │ (Backbone) │ 点云 → BEV 特征 ││ └────────┬────────┘ ││ ↓ ││ ┌─────────────────┐ ││ │ BEV Features │ 256×256×256 鸟瞰特征图 ││ └────────┬────────┘ ││ ↓ ││ ┌─────────────────────────────────────────────────┐ ││ │ Map Decoder (Transformer) │ ││ │ ┌─────────────┐ ┌─────────────┐ │ ││ │ │ Instance │ │ Point │ │ ││ │ │ Query │────▶│ Query │ │ ││ │ │ (元素级) │ │ (点级) │ │ ││ │ └─────────────┘ └─────────────┘ │ ││ └─────────────────────────────────────────────────┘ ││ ↓ ││ ┌─────────────────────────────────────────────────┐ ││ │ Hierarchical Bipartite Matching │ ││ │ Layer1: 实例级匹配 (分类 + 位置) │ ││ │ Layer2: 点级匹配 (点序列对齐) │ ││ └─────────────────────────────────────────────────┘ ││ ↓ ││ 输出:矢量地图 (ped crossing, divider, boundary) ││ │└─────────────────────────────────────────────────────────┘核心创新点
用 点集 (Point Set) 统一表示所有地图元素(车道线、边界、人行横道)
Polyline(开放形状)= 点序列
Polygon(封闭形状)= 点序列首尾相连 | ✅ 点集表示统一
✅ 方向灵活性,位置关系之间的不变性
✅ 端到端输出
Instance Query: 检测元素
Point Query: 精细坐标
✅ 两层次 Query
✅ 分层匹配策略
预测:Ŷ = {ŷ₁, ŷ₂, ..., ŷₙ} (每个ŷ = 点集 + 类型)真值:Y = {y₁, y₂, ..., yₘ}Step 1: 实例级匹配┌────────────────────────────────────────────┐│ 找哪个预测对应哪个真值元素 ││ min Σ [L_Focal(分类) + L_position(位置)] ││ 类似"这是车道线还是边界" + "大概在哪" │└────────────────────────────────────────────┘Step 2: 点级匹配┌────────────────────────────────────────────┐│ 在实例匹配基础上,对齐点序列 ││ min Σ D_Manhattan(点坐标) ││ 类似"这条线的每个点精确位置" │└────────────────────────────────────────────┘Loss 函数设计? | L = λL_cls + αL_p2p + βL_dir
L_cls: 元素分类
L_p2p: 点间距离(Manhattan)
L_dir: 方向一致性(cosine similarity)
✅ 多任务联合
✅ 几何 + 语义
MapTR V2
v2 相比 v1 改进什么?
┌─────────────────────────────────────────────────────────┐│ MapTR v2 vs v1 改进对比 │├─────────────────────────────────────────────────────────┤│ ││ 1️⃣ 增加 centerline 元素类型 ││ ┌──────────────────────────────────────┐ ││ │ v1: ped crossing, divider, boundary │ ││ │ v2: + centerline (车道中心线) │ ││ │ → 更丰富的地图语义 │ ││ └──────────────────────────────────────┘ ││ ││ 2️⃣ Decoupled Self-Attention (解耦自注意力) ││ ┌──────────────────────────────────────┐ ││ │ v1: 全局自注意力,计算量大 │ ││ │ v2: 实例内计算,实例间分离 │ ││ │ → 计算量↓ 效率↑ │ ││ └──────────────────────────────────────┘ ││ ││ 3️⃣ 辅助头监督 ││ ┌──────────────────────────────────────┐ ││ │ 在 Decoder 中间层加监督信号 │ ││ │ → 梯度传播更好,收敛更快 │ ││ └──────────────────────────────────────┘ ││ ││ 4️⃣ 分层级 Query Embedding ││ ┌──────────────────────────────────────┐ ││ │ qᵢʰᵉ = qⁱⁿˢ + qⱼᵖᵗ │ ││ │ 实例 Query + 点 Query 融合 │ ││ │ → 更好的层次表示 │ ││ └──────────────────────────────────────┘ ││ ││ 5️⃣ 固定方向编码 ││ ┌──────────────────────────────────────┐ ││ │ 线性元素使用固定方向 │ ││ │ → 减少学习难度,更稳定 │ ││ └──────────────────────────────────────┘ ││ │└─────────────────────────────────────────────────────────┘#### Decoupled Self-Attention 详解v1 的 Self-Attention:┌────────────────────────────────────────┐│ 所有 Query 互相计算注意力 ││ 计算量:O((N×nᵥ)²) ││ N=实例数,nᵥ=每实例点数 ││ → 计算爆炸! │└────────────────────────────────────────┘v2 的 Decoupled Self-Attention:┌────────────────────────────────────────┐│ 1) 实例内自注意力 ││ 每个元素的点之间计算 ││ 计算量:O(N × nᵥ²) ││ ││ 2) 实例间自注意力 ││ 不同元素之间计算 ││ 计算量:O(N²) ││ ││ 总计算量:O(N × nᵥ² + N²) << O((N×nᵥ)²)││ → 效率提升显著! │└────────────────────────────────────────┘增加 centerline 元素类型
Decoupled Self-Attention(减少计算)
辅助头监督
分层 Query Embedding
固定方向编码
✅ 效率提升
✅ 精度提升
✅ 元素更丰富
四、地图元素表示方法
地图元素的表示方法直接决定了建模精度和学习难度。当前主流方法分为三大流派:
4.1 点集表示方法
代表模型:MapTR、MapTRv2
核心思想:将地图元素离散化为一组有序点集 ,通过“排列等价”的概念消除点序定义的歧义。
技术特点:采用层级查询(实例级查询 × 点级查询),并行回归所有点的坐标;能统一建模折线和多边形;均匀采样可能导致复杂弯道细节丢失。
4.2 曲线表示方法
代表模型:BeMapNet、PivotNet
核心思想:使用数学曲线显式建模道路几何形状。
技术细节:BeMapNet使用分段贝塞尔曲线头,通过控制点显式建模平滑曲线;PivotNet基于关键点驱动,将点级表示转换为实例级掩码。
优缺点:能精细建模复杂曲线形状,但需要额外的几何先验知识。
4.3 混合表示方法
代表模型:HiMap、MapVR
核心思想:结合点级和实例级的优势。
技术特点:HiMap采用点级与实例级双向交互学习,利用双向注意力机制;MapVR输出矢量化结果的同时,结合可微光栅化添加分割监督信号。
发展趋势:混合表示正在成为2024年的主流趋势。
4.4 2024年表示方法创新
MGMap(CVPR 2024):掩码引导学习,通过学习到的掩码在多尺度BEV特征中精确定位。
GeMap(ECCV 2024):几何约束学习,端到端学习欧式几何形状及其关系(平行、垂直、矩形),首次在Argoverse2数据集上突破70% mAP。
MapQR(ECCV 2024):增强查询集设计,采用“散发与聚集”策略深度挖掘实例级查询的信息。
ADMap(ECCV 2024):抗干扰框架,专门针对遮挡、恶劣天气等干扰场景。
五、时序建模与增量建图
5.1 时序融合的必要性
单帧推理在遮挡和远距离场景下表现受限。通过融合历史帧信息,时序建模可实现:
更稳定的在线建图,减少单帧噪声影响
更好的遮挡恢复能力
更长的感知距离
地图元素ID的跨帧一致性
5.2 StreamMapNet:流式融合方案
StreamMapNet引入了时序融合机制,通过记忆缓存利用历史帧信息。
核心组件:多点注意力(Multi-Point Attention)突破标准可变形注意力的局部感受野限制,有效捕捉长条形地图元素;记忆缓存(Memory Buffer)存储历史帧的BEV特征和传播查询。
姿态对齐:通过自车位姿变换对历史特征进行对齐融合。
5.3 MapTracker:跟踪范式
MapTracker将地图构建表述为跟踪问题,通过跟踪确保地图元素ID的跨帧一致性。
长时记忆:维护跨越20帧的历史记忆,利用跨步记忆融合(Strided Memory Fusion)。
跟踪真值:引入额外的跟踪标注,确保时序稳定性。
性能提升:在nuScenes数据集上,mAP提升8%,一致性mAP(C-mAP)提升19%。
5.4 其他时序方法
SQD-MapNet:流式查询去噪,通过在传播查询中加入噪声并进行去噪训练,增强对累积误差的鲁棒性。
MemFusionMap:工作记忆融合,仅使用4帧历史信息即实现显著性能提升。
HisTrackMap(2025):综合方案,结合全局矢量化地图构建与历史跟踪融合。
六、拓扑推理技术
6.1 从几何感知到拓扑推理
仅仅感知车道的几何形状是不够的,系统必须理解车道间的连接关系、语义属性以及与交通控制元素的交互。拓扑推理是规划模块的核心,直接关系到驾驶的安全性和系统泛化能力。
6.2 拓扑关系分类
车道-车道拓扑(Lane-Lane Topology):关注车道之间的连通逻辑。
前继/后继(Successor):如 Lane_A -> Lane_B
左右相邻(Adjacent):如 Lane_A <-> Lane_C
分叉/汇合(Fork/Merge):如 Lane_A -> Lane_D, Lane_E
车道-交通拓扑(Lane-Traffic Topology):建立交通元素与车道之间的关联。
控制关系:信号灯控制特定车道
影响关系:停止标志影响特定车道
引导关系:转向箭头引导车辆变道
6.3 技术发展脉络
STSU(ICCV 2021):早期方法,利用DETR编码车道查询进行拓扑预测。
TopoNet(Arxiv 2023):引入Deformable DETR和图神经网络聚合车道连通特征。
TopoMLP(ICLR 2024):结合PETR车道检测和MLP进行拓扑推理。
TopoLogic(NeurIPS 2024):侧重构建可解释的车道拓扑推理管线。
T2SG/TopoFormer(CVPR 2025):提出交通拓扑场景图,实现车道、信号和拓扑关系的统一建模。
6.4 性能指标
在OpenLane-V2数据集上:
DET_l(车道检测):从12.7提升至34.7
TOP_ll(拓扑推理):从2.9提升至24.1
OLS(综合分数):从29.3提升至46.3
七、传感器与特征融合
7.1 环视相机系统
多摄像头是静态道路结构感知的主要传感器。典型配置包括:
前视摄像头:感知前方道路结构
后视摄像头:补充后方视野
左侧视摄像头:覆盖左侧区域
右侧视摄像头:覆盖右侧区域
视图转换技术:将透视视图(Perspective View)转换到鸟瞰图(BEV)是核心步骤。
7.2 激光雷达点云
激光雷达提供精确的深度信息和三维结构:
体素化(Voxelization):将三维点云划分为规则的体素网格
PointPillars:将点云编码为伪图像形式
点云配准:多帧点云融合构建全局地图
7.3 多传感器融合
早期融合:在特征提取阶段融合不同传感器的原始数据。
晚期融合:各传感器独立处理后在决策层融合。
BEV空间融合:在统一的BEV表示空间中进行特征融合,是当前主流方案。
八、数据集与评测基准
8.1 主流数据集
nuScenes:由法雷奥(Valio)和安波福(Aptiv)联合发布,包含1000个场景,40万个关键帧。
Argoverse 2:Argo AI发布,专注于3D追踪和地图构建任务。
OpenLane-V2:专门用于评估拓扑推理能力的数据集。
8.2 评测指标
mAP(mean Average Precision):地图元素重构的平均精度均值。
C-mAP(Consistency mAP):时序一致性指标,衡量跨帧结果的稳定性。
G-mAP(Global mAP):全局一致性指标。
DET_l、TOP_ll、OLS:拓扑推理专项指标。
热门跟贴