来源:新机器视觉

作者 | 高毅鹏

编辑 | 自动驾驶之心

原文链接: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ᵥ)²)││ → 效率提升显著!                       │└────────────────────────────────────────┘
  1. 增加 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:拓扑推理专项指标。