汇总!视觉定位中的十三种常用地图形式,一文就懂!(稀疏点云、Mesh、语义地图、神经网络隐式表征地图)
本文围绕视觉定位中的多种地图表达展开系统梳理,从稀疏/稠密点云、Mesh、CAD,到线地图、压缩点云、平面图、神经隐式地图、高精地图、矢量图与语义地图,讲解其定义原理、数学基础、生成链路、核心算法、应用场景与优缺点。
文章目录
- 前言
- 一、稀疏点云地图
- 二、稠密点云地图
- 三、Mesh地图
- 四、CAD地图
- 五、线地图
- 六、压缩后的点云地图
- 七、平面图
- 八、神经网络隐式表征的地图
- 九、高精地图
- 十、矢量图
- 十一、语义地图
- 总结
- 深度学习链接
-
- 一、总览 / 综述 / 通用参考
- 二、稀疏点云地图 / SfM / 特征地图
- 三、稠密点云地图 / Dense Mapping
- 四、Mesh 地图 / 网格地图 / 表面重建
- 五、CAD 地图 / 工程几何 / B-rep / 逆向工程
- 六、线地图 / 线特征地图 / 结构化线地图
- 七、压缩后的点云地图 / Point Cloud Compression
- 八、平面图 / Floor Plan / 室内布局地图
- 九、神经网络隐式表征的地图 / Neural Implicit Maps / NeRF-SLAM
- 十、高精地图 / HD Map / 自动驾驶地图
- 十一、二维导航地图 / Occupancy Grid / 2D Navigation Map
- 十二、矢量图 / Vector Map / GIS Vector Representation
- 十三、语义地图 / Semantic Map / Semantic Localization
- 十四、神经渲染 / 3DGS / 新型地图表达
- 十五、 工程参考
前言
【视觉定位】 指估计拍摄一幅图像时相机的 位姿.
这可以是六自由度、三自由度或者两自由度的位姿,要想获得准确的位姿估计结果,一般都需要一个地图先验。发展研究至今,出现了许许多多的地图形式,这包括传统的点云地图(稀疏/稠密)、压缩后的点云地图、Mesh地图、CAD地图、线地图、神经网络隐式表征的地图、平面图、无地图等等各种形式地图。
如果把三维地图看成对真实世界的“数字化表达”,那么不同地图类型,本质上是在回答同一个问题:
我们究竟想用什么形式,去描述这个三维世界?
有的表达追求轻量、实时、便于定位;
有的表达追求细节完整、便于感知与重建;
有的表达追求表面连续、便于渲染与仿真;
还有的表达追求工程精确、便于设计、制造与长期维护。
本文汇总视觉定位常见几种地图并附带 原理、优缺点、应用场景与当前发展。
提示:以下是本篇文章正文内容,下面案例可供参考
一、稀疏点云地图
首先是点云地图,这是目前视觉定位中最常见的一种地图形式,一般由SFM或者SLAM生成构造。
1.1 定义与原理
什么是稀疏点云地图?
稀疏点云地图是一种用少量、具有代表性的三维特征点来表达环境结构的地图。
这些点通常来自图像中的角点、纹理显著点或重复可匹配的局部特征,例如建筑边角、路标、纹理丰富区域等。
它的核心思想不是“把场景所有地方都采样出来”,而是:
只保留那些最有利于定位、匹配和几何恢复的关键点。
因此,稀疏点云地图常见于:
- Structure from Motion(SfM)
- Visual SLAM
- Visual Odometry(VO)
- 基于特征点的重定位系统
可以把它想象成这样:
- 你面对一个房间,不需要把墙面上每一平方厘米都记住;
- 你只要记住门把手、桌角、窗框、海报边缘这些“有辨识度”的地方;
- 下次再看到这些特征,就能快速判断自己在房间中的位置。
这就是稀疏点云地图的思路。
如何通过视觉传感器(如单目或双目相机)生成稀疏点云?
- 视觉传感器数据采集: 使用单目或双目相机捕捉图像,通过图像处理技术提取特征点。
- 特征点提取: 利用算法(如SIFT、SURF、ORB等)从图像中提取关键点和描述符。
- 三维坐标计算: 通过三角测量法,结合多视角的图像数据,计算出特征点在三维空间中的坐标。
- 地图构建: 将计算出的三维坐标点云组合起来,形成稀疏点云地图。
数学表达与基本公式
稀疏点云地图最经典的数学基础来自多视图几何。
1)三维点集合表达
一张稀疏点云地图通常可以表示为:
P = { X i ∈ R 3 ∣ i = 1 , 2 , … , N } \mathcal{P}=\{\mathbf{X}_i \in \mathbb{R}^3 \mid i=1,2,\dots,N\} P={Xi∈R3∣i=1,2,…,N}
其中:
- X i = ( x i , y i , z i ) T \mathbf{X}_i=(x_i,y_i,z_i)^T Xi=(xi,yi,zi)T 表示第 i i i 个三维点;
- N N N 是地图中的关键三维点数量。
2)相机投影模型
图像中的像素点和三维空间点之间通过相机成像模型联系起来:
x i j ∼ K [ R j ∣ t j ] X i \mathbf{x}_{ij} \sim \mathbf{K}[\mathbf{R}_j \mid \mathbf{t}_j]\mathbf{X}_i xij∼K[Rj∣tj]Xi
其中:
- X i \mathbf{X}_i Xi:第 i i i 个三维点;
- R j , t j \mathbf{R}_j, \mathbf{t}_j Rj,tj:第 j j j 帧相机位姿;
- K \mathbf{K} K:相机内参矩阵;
- x i j \mathbf{x}_{ij} xij:三维点在第 j j j 张图像中的投影像素。
这条公式本质上说明:
三维地图点和图像观测之间,是通过相机模型绑定在一起的。
3)三角化
如果一个特征点在多张图像中被观测到,就可以通过三角化恢复它的三维位置。
理想情况下,三维点 X \mathbf{X} X 应满足多视角射线尽量相交。实际中常通过最小化重投影误差求解:
min X ∑ j ∥ x j − π ( T j , X ) ∥ 2 \min_{\mathbf{X}} \sum_j \left\| \mathbf{x}_j - \pi(\mathbf{T}_j,\mathbf{X}) \right\|^2 Xminj∑∥xj−π(Tj,X)∥2
其中 π ( ⋅ ) \pi(\cdot) π(⋅) 表示投影函数。
4)Bundle Adjustment(BA)
BA 是稀疏点云地图最核心的优化步骤之一,它同时优化相机位姿和三维点位置:
min { T j } , { X i } ∑ i , j ∥ x i j − π ( T j , X i ) ∥ 2 \min_{\{\mathbf{T}_j\},\{\mathbf{X}_i\}} \sum_{i,j} \left\| \mathbf{x}_{ij} - \pi(\mathbf{T}_j,\mathbf{X}_i) \right\|^2 {Tj},{Xi}mini,j∑∥xij−π(Tj,Xi)∥2
可以把 BA 理解为:
不断调整“相机轨迹”和“地图点位置”,让所有图像观测尽可能解释得通。
主要生成方式与系统链路
| 阶段 | 输入 | 输出 | 典型方法 |
|---|---|---|---|
| 图像采集 | 单目/双目/RGB 相机图像 | 图像序列 | 相机、移动平台、机器人 |
| 特征提取 | 图像 | 关键点+描述子 | SIFT、SURF、ORB、FAST+BRIEF |
| 特征匹配 | 相邻帧/多帧图像 | 匹配对 | 暴力匹配、FLANN、Hamming 匹配 |
| 几何验证 | 匹配点 | 内点匹配 | RANSAC、基础矩阵/本质矩阵估计 |
| 位姿恢复 | 匹配观测 | 相机位姿 | 五点法、PnP、EPnP |
| 三角化 | 多视图匹配+位姿 | 三维点 | Linear Triangulation、Optimal Triangulation |
| 全局优化 | 位姿+地图点 | 稳定稀疏地图 | Bundle Adjustment、Pose Graph |
1.2 应用场景
相关核心与经典算法:
| 算法类别 | 代表算法 | 作用 | 备注 |
|---|---|---|---|
| 特征检测 | Harris、FAST、DoG | 找到图像中稳定关键点 | 是前端起点 |
| 特征描述 | SIFT、SURF、BRIEF、ORB | 构造可匹配描述子 | 决定匹配稳定性 |
| 几何约束 | Eight-point、Five-point | 求基础矩阵/本质矩阵 | 多视图几何核心 |
| 位姿求解 | PnP、EPnP、UPnP | 已知 3D-2D 对应求位姿 | 重定位常用 |
| 三角化 | DLT、Midpoint、Optimal Triangulation | 恢复三维点坐标 | 地图点生成核心 |
| 后端优化 | BA、Pose Graph Optimization | 全局一致性优化 | 精度关键来源 |
| 系统代表 | PTAM、ORB-SLAM、COLMAP | 经典稀疏视觉地图系统 | 工程影响力很大 |
| 场景 | 为什么适合 |
|---|---|
| 视觉 SLAM | 稀疏特征足够支撑定位和闭环检测 |
| 视觉里程计 | 通过连续帧特征跟踪估计位姿变化 |
| AR/VR 初始定位 | 稀疏地图轻量、适合实时识别环境特征 |
| 机器人导航中的重定位 | 能快速做 2D-3D/3D-3D 匹配 |
| SfM 建图 | 适合作为多视图重建的第一阶段结果 |
-
SLAM(同步定位与地图构建)中的应用:
稀疏点云地图在SLAM中用于 实时定位 和 地图更新。通过与已知地图的匹配,机器人或自动驾驶车辆可以确定其在环境中的位置。 -
在视觉里程计中的作用:
视觉里程计依赖于稀疏点云地图来估计相机的位姿变化。通过比较连续帧之间的点云差异,可以计算出相机的移动。
1.3 信息量
【含有】
-
空间几何结构信息:
- 【物体轮廓与位置】:了解物体大致形状和方位、帮助确定自身的大致相对位置
- 【空间布局】:展现不同物体之间的相对距离和分布情况,有助于规划路径,避免碰撞
-
特征信息:
- 【显著特征点】:如角点、边缘点等。这些特征点具有独特的几何属性,能够被快速识别和匹配。
- 【颜色特征】:部分稀疏点云地图可能会携带颜色信息
-
动态变化信息:
- 【移动迹象】:不同时间点的对比可以反映出物体的移动迹象
- 【地图更新依据】:动态变化信息可以作为地图更新的依据
【缺乏】
- 细节信息:
- 【物体表面纹理缺失】:稀疏点云地图难以呈现物体表面的纹理细节。无法从稀疏点云地图地图中分辨出物体表面是光滑的、粗糙的,还是具有特定图案的
- 【小尺寸物体模糊】:由于采集的点云较为稀疏,小物体可能只被几个点或者根本没有点表示出来。
- 几何不精确
- 【曲面表达失真】:稀疏点云地图很难准确地描述其曲面形状。它只能给出大致的轮廓,无法精确地反映曲面的曲率变化等细节。
- 【尺寸失真】:由于采集的点云较为稀疏,通过稀疏点云地图确定物体的尺寸可能存在较大误差。
- 语义信息缺乏
- 【物体类别确定困难】:稀疏点云地图本身通常不包含物体的语义信息
- 【场景理解困难】:缺乏语义信息使得对整个场景的理解变得困难。难以从稀疏点云地图中判断出当前所处的场景是城市街道、公园还是室内空间
1.4 优缺点
【优点】:发展起步很早,各种相关算法都比较成熟,比如点的特征提取、匹配、对极几何、三角化、BA、PNP等等;所以以此为基础的视觉定位算法精度、鲁棒性都很高。
- 高效性: 稀疏点云地图只包含关键特征点,减少了数据量,提高了处理速度。
- 低计算资源需求: 由于数据量小,对计算资源的需求较低,适合资源有限的设备。
- 实时性: 适合实时应用,如自动驾驶和机器人导航。
【缺点】:由于点云地图中三维点数量庞大,其实相对于视觉定位任务来说是冗余的,所以其地图的存储消耗比较大,计算效率往往不高,这限制了在移动端的应用部署。
- 细节表现上的局限性: 稀疏点云地图可能无法捕捉到环境中的所有细节,特别是在纹理较少的区域。
- 环境变化敏感: 如果环境发生变化,如物体移动,稀疏点云地图可能无法准确反映新的环境状态。
- 光照条件限制: 在光照条件不佳的情况下,特征点提取的效果可能会受到影响,从而影响地图的准确性。
二、稠密点云地图
2.1 定义与原理
什么是稠密点云地图?
稠密点云地图是一种使用 大量三维采样点 来表达场景几何结构的地图。
与稀疏点云相比,它不仅保留关键位置,还会尽量覆盖物体表面的大部分区域,因此能提供 更丰富、更细致的几何信息 。
生成方法:
- 深度相机: 使用深度相机(如Kinect或RealSense)直接获取物体表面的三维坐标。
- 激光雷达(LiDAR): 通过发射激光脉冲并测量反射回来的时间,计算出物体的距离,从而生成点云。
- 多视角立体视觉: 结合多个相机从不同角度拍摄的图像,通过立体匹配算法计算出每个像素点的三维坐标。
数学表达与基本公式
1)点云集合表达
稠密点云地图一般表示为:
P = { p i ∈ R 3 } i = 1 N \mathcal{P}=\{\mathbf{p}_i \in \mathbb{R}^3\}_{i=1}^{N} P={pi∈R3}i=1N
其中:
- p i = ( x i , y i , z i ) T \mathbf{p}_i=(x_i,y_i,z_i)^T pi=(xi,yi,zi)T 为第 i i i 个三维点;
- N N N 一般远大于稀疏点云中的点数。
在很多系统中,一个点还会附带额外属性:
p i = ( x i , y i , z i , n i , c i ) \mathbf{p}_i=(x_i,y_i,z_i,\mathbf{n}_i,\mathbf{c}_i) pi=(xi,yi,zi,ni,ci)
其中:
- n i \mathbf{n}_i ni:法向量;
- c i \mathbf{c}_i ci:颜色或反射强度。
2)深度反投影模型
如果点云来自深度图,那么每个像素都可以反投影到三维空间:
X ( u , v ) = D ( u , v ) K − 1 [ u v 1 ] \mathbf{X}(u,v)=D(u,v)\mathbf{K}^{-1} \begin{bmatrix} u\\ v\\ 1 \end{bmatrix} X(u,v)=D(u,v)K−1 uv1
其中:
- D ( u , v ) D(u,v) D(u,v):像素 ( u , v ) (u,v) (u,v) 处的深度值;
- K \mathbf{K} K:相机内参矩阵。
这条公式说明:
深度图本质上是“每个像素对应一个三维距离”,经过相机模型反投影后就能得到三维点。
3)点云配准
多帧点云通常位于不同坐标系中,因此需要进行对齐。最经典的方法之一是 ICP,其基本形式为:
min R , t ∑ i ∥ q i − ( R p i + t ) ∥ 2 \min_{\mathbf{R},\mathbf{t}} \sum_i \left\| \mathbf{q}_i-(\mathbf{R}\mathbf{p}_i+\mathbf{t}) \right\|^2 R,tmini∑∥qi−(Rpi+t)∥2
其中:
- p i \mathbf{p}_i pi:源点云中的点;
- q i \mathbf{q}_i qi:目标点云中的对应点;
- R , t \mathbf{R},\mathbf{t} R,t:待求的刚体变换。
如果使用点到平面形式,则常写为:
min R , t ∑ i ( n i T ( R p i + t − q i ) ) 2 \min_{\mathbf{R},\mathbf{t}} \sum_i \left( \mathbf{n}_i^T(\mathbf{R}\mathbf{p}_i+\mathbf{t}-\mathbf{q}_i) \right)^2 R,tmini∑(niT(Rpi+t−qi))2
这类方法的目标是:
把不同时间、不同视角采到的点云拼接到同一个统一坐标系里。
4)多帧融合
在多帧建图中,系统会不断把新点云融合到已有地图:
P t + 1 = P t ∪ P new \mathcal{P}_{t+1} = \mathcal{P}_t \cup \mathcal{P}_{\text{new}} Pt+1=Pt∪Pnew
实际系统中往往还会配合:
- 去噪
- 体素下采样
- 法向估计
- TSDF 融合
- 八叉树或哈希体素管理
主要生成方式与系统链路
| 阶段 | 输入 | 输出 | 典型方法 |
|---|---|---|---|
| 数据采集 | LiDAR / 深度相机 / 多视图图像 | 原始观测 | 传感器采样 |
| 深度恢复 | 图像或扫描数据 | 深度图/原始点云 | Stereo Matching、MVS、ToF |
| 点云生成 | 深度图/激光回波 | 三维点集 | 反投影、极坐标转笛卡尔坐标 |
| 多帧配准 | 多帧点云 | 对齐点云 | ICP、Point-to-Plane ICP、GICP、NDT |
| 融合优化 | 对齐点云 | 稠密点云地图 | TSDF、体素融合、滤波 |
| 后处理 | 原始地图 | 更干净的点云 | 去噪、重采样、法向估计 |
2.2 应用场景
| 算法类别 | 核心算法 | 主要作用 |
|---|---|---|
| 立体匹配 | SGM、PatchMatch Stereo | 从图像恢复稠密深度 |
| 点云配准 | ICP、Point-to-Plane ICP、GICP、NDT | 对齐不同帧点云 |
| 激光建图 | LOAM、LeGO-LOAM、FAST-LIO 系列 | 实时激光 SLAM |
| 深度融合 | KinectFusion、Voxel Hashing、TSDF Fusion | 多帧深度融合 |
| 点云后处理 | Statistical Outlier Removal、Voxel Grid、MLS | 去噪与重采样 |
| 场景 | 作用 |
|---|---|
| 自动驾驶 | 高精定位、障碍感知、环境建模 |
| 建筑测绘 | 快速获取高精度三维现场数据 |
| 文保与三维扫描 | 记录真实对象几何外形 |
| 机器人导航 | 建立丰富的环境几何地图 |
| 三维重建 | 作为 Mesh 和表面重建的重要输入 |
-
自动驾驶中的高精度定位:
稠密点云地图可以提供丰富的环境细节,有助于自动驾驶车辆进行 精确的定位 和 路径规划。 -
建筑、3D重建中的使用:
在建筑领域,稠密点云可以用于创建建筑物的精确三维模型,有助于设计、施工和维护。
在3D重建中,稠密点云是构建真实世界物体三维模型的基础。
2.3 信息量
【含有】
-
空间几何结构信息:
- 【物体轮廓与位置】:了解物体大致形状和方位、帮助确定自身的大致相对位置
- 【空间布局】:展现不同物体之间的相对距离和分布情况,有助于规划路径,避免碰撞
-
特征信息:
- 【显著特征点】:如角点、边缘点等。这些特征点具有独特的几何属性,能够被快速识别和匹配。
- 【颜色特征】:部分稀疏点云地图可能会携带颜色信息
-
动态变化信息:
- 【移动迹象】:不同时间点的对比可以反映出物体的移动迹象
- 【地图更新依据】:动态变化信息可以作为地图更新的依据
【缺乏】
- 内部结构信息:
- 【遮挡部分信息】:对于被遮挡的部分,点云地图无法提供准确信息。比如被建筑物遮挡的道路情况
- 【内部构造信息】:只能展示物体的外部形状,对于物体的内部结构一无所知。
- 动态行为信息:
- 【运动状态】:不能直接反映物体的运动状态,比如车辆的行驶速度、行人的行走方向等。即使是动态采集的点云地图,也只是在不同时间点的静态记录,难以捕捉物体的连续运动行为。
- 【交互关系】:对于物体之间的动态交互关系无法体现,比如车辆之间的碰撞风险、人与物体的交互动作等。
- 语义信息
2.4 优缺点
【优点】:稠密点云地图在提供丰富细节的同时,也带来了对计算和存储资源的高需求。
- 高细节度: 稠密点云地图可以提供丰富的细节信息,非常适合需要精确环境描述的应用。
- 高精度: 通过高精度传感器如激光雷达生成的点云,可以非常精确地反映物体的形状和位置。
- 全面性: 能够覆盖整个场景,提供全面的三维信息。
- 适用于复杂场景: 在复杂或动态变化的环境中,稠密点云地图可以提供更可靠的数据。
- 可用于多种应用: 可以用于自动驾驶、机器人导航、3D建模、城市规划、考古、环境监测等多种领域。
- 数据丰富性: 可以用于机器学习和计算机视觉算法的训练,提供丰富的训练样本。
【缺点】:
- 计算密集: 生成和处理稠密点云需要大量的计算资源,尤其是在实时应用中。
- 存储需求大: 稠密点云数据量巨大,需要大量的存储空间。
- 数据冗余: 在某些情况下,稠密点云可能包含大量不必要的数据,导致数据冗余。
- 处理时间长: 由于数据量大,稠密点云的生成和处理通常需要较长时间。
- 对硬件要求高: 需要高性能的硬件来处理稠密点云,这可能增加了成本。
- 易受噪声影响: 传感器噪声和环境变化可能导致点云数据中的误差。
- 数据融合挑战: 当从多个传感器或视角获取数据时,融合这些数据以生成一致的点云地图可能是一个挑战。
- 后处理需求: 通常需要后处理步骤来滤除异常值、去噪和优化点云。
2.5 技术挑战
| 高计算和存储要求 | 应对策略 | - |
|---|---|---|
| 计算资源 | 硬件优化 | 高性能的处理器和图形处理单元(GPU)来加速计算 |
| 存储需求 | 数据压缩 | 采用数据压缩技术减少存储需求,同时保证数据质量 |
| 实时处理 | 云计算 | 利用云计算资源进行数据处理和存储,减轻本地设备的负担 |
高计算和存储要求:
- 计算资源: 稠密点云的生成和处理需要大量的计算资源,因为涉及到大量的数据点和复杂的算法。
- 存储需求: 稠密点云数据量大,需要较大的存储空间来保存。
- 实时处理: 在某些应用中,如自动驾驶,需要实时生成和更新稠密点云,这对计算速度提出了更高的要求。
应对策略:
- 硬件优化: 使用高性能的处理器和图形处理单元(GPU)来加速计算。
- 算法优化: 开发更高效的算法来减少计算量,例如使用多分辨率表示或视点简化技术。
- 数据压缩: 采用数据压缩技术减少存储需求,同时保证数据质量。
- 云计算: 利用云计算资源进行数据处理和存储,减轻本地设备的负担。
三、Mesh地图
3.1 定义与原理


Mesh 地图是一种三维地图,它由多个多边形(通常是三角形)组成,这些多边形连接在一起形成一个网格,用以表示三维空间中的表面。
与点云只记录“这里有点”不同,Mesh 地图进一步记录:
这些点之间是如何连接成连续表面的。
因此,Mesh 地图更适合用于三维可视化、物理仿真、碰撞检测和纹理映射。
【原理】
- 表面重建: 从点云、深度图或隐式场恢复连续表面。
- 网格生成: 将表面离散为多个多边形面片,最常见的是三角形。
- 拓扑组织: 记录顶点、边和面之间的连接关系。
- 纹理映射: 将图像或颜色信息附着到表面,提高可视化效果。
数学表达与基本公式理论
1)Mesh 的基本表示
一个网格模型通常表示为:
M = ( V , E , F ) \mathcal{M}=(V,E,F) M=(V,E,F)
其中:
- V = { v i } V=\{\mathbf{v}_i\} V={vi}:顶点集合;
- E E E:边集合;
- F F F:面集合。
如果是三角网格,则一个面可以写成:
f k = ( i , j , m ) f_k=(i,j,m) fk=(i,j,m)
表示第 k k k 个三角形由第 i , j , m i,j,m i,j,m 个顶点构成。
2)三角面片插值
三角形内部任意一点都可以通过重心坐标表示为:
p = α v 1 + β v 2 + γ v 3 , α + β + γ = 1 \mathbf{p}=\alpha \mathbf{v}_1+\beta \mathbf{v}_2+\gamma \mathbf{v}_3, \quad \alpha+\beta+\gamma=1 p=αv1+βv2+γv3,α+β+γ=1
这说明:
三角网格虽然由很多离散面片构成,但每个面片内部仍然可以连续表达位置。
3)法向计算
三角面片法向常用叉乘计算:
n = ( v 2 − v 1 ) × ( v 3 − v 1 ) ∥ ( v 2 − v 1 ) × ( v 3 − v 1 ) ∥ \mathbf{n}= \frac{(\mathbf{v}_2-\mathbf{v}_1)\times(\mathbf{v}_3-\mathbf{v}_1)} {\|(\mathbf{v}_2-\mathbf{v}_1)\times(\mathbf{v}_3-\mathbf{v}_1)\|} n=∥(v2−v1)×(v3−v1)∥(v2−v1)×(v3−v1)
法向在以下任务中非常重要:
- 光照渲染
- 阴影计算
- 表面分析
- 碰撞检测
- 物理仿真
4)泊松表面重建
从带法向的点云恢复连续表面时,一个经典方法是 Poisson Surface Reconstruction,其核心思想常写为:
Δ χ = ∇ ⋅ V \Delta \chi = \nabla \cdot \mathbf{V} Δχ=∇⋅V
其中:
- χ \chi χ:待求的隐式函数;
- V \mathbf{V} V:由点云法向构成的向量场。
通俗理解就是:
算法试图寻找一个最符合点云法向分布的光滑表面。
主要生成方式与系统链路
| 阶段 | 输入 | 输出 | 典型方法 |
|---|---|---|---|
| 数据采集 | 点云 / 深度图 / 多视图图像 | 原始几何数据 | LiDAR、RGB-D、MVS |
| 预处理 | 原始数据 | 去噪点云、法向 | 滤波、法向估计、重采样 |
| 表面重建 | 点云或隐式体 | 连续表面 | Poisson、BPA、TSDF |
| 网格生成 | 表面函数 | Mesh | Marching Cubes、Delaunay |
| 纹理映射 | Mesh + 图像 | 纹理化 Mesh | UV 展开、贴图融合 |
| 优化简化 | 原始 Mesh | 轻量 Mesh | QEM、Remeshing、Edge Collapse |
3.2 应用场景
核心与经典算法
| 算法类别 | 核心算法 | 主要作用 |
|---|---|---|
| 表面重建 | Poisson Surface Reconstruction | 从点云恢复光滑表面 |
| 网格生成 | Delaunay Triangulation | 构造三角连接关系 |
| 表面滚动 | Ball Pivoting Algorithm | 逐步生成三角面片 |
| 等值面提取 | Marching Cubes | 从体素/隐式场提取网格 |
| 网格优化 | Laplacian Smoothing、Remeshing | 提升表面质量 |
| 网格简化 | QEM、Edge Collapse | 降低面数,优化渲染性能 |
应用场景
| 场景 | 作用 |
|---|---|
| 游戏与影视 | 构建高质量三维场景与角色表面 |
| 建筑可视化 | 直观展示建筑外观与空间结构 |
| VR/AR | 提供可交互的三维环境 |
| 科学可视化 | 展示分子、地形、医学结构等复杂对象 |
| 机器人仿真 | 用于碰撞检测与物理环境模拟 |
- 游戏和娱乐: Mesh地图常用于视频游戏和电影制作中,用于创建逼真的三维场景。
- 建筑可视化: 在建筑和城市规划中,Mesh地图可以用于创建详细的三维模型,帮助设计师和客户理解设计。
- 虚拟现实(VR)和增强现实(AR): Mesh地图为VR和AR应用提供了丰富的三维环境,增强用户体验。
- 科学可视化: 在科学研究中,Mesh地图可以用于展示复杂的三维数据,如分子结构或地质构造。
3.3 信息量
【含有】
-
几何形状信息
- 【精确的表面表示】:Mesh 地图以多边形网格的形式呈现物体或场景的表面形状。与点云地图相比,它能够更清晰地定义物体的边界和轮廓,提供更准确的几何形状描述。
- 【细节层次】:可以根据需要调整细节层次,从粗糙的近似表示到非常精细的模型。这使得在不同的应用场景中,可以根据计算资源和需求选择合适的细节程度。
-
纹理信息:
- 【材质属性】:Mesh 地图可以包含材质信息,如颜色、纹理、反射率等。
- 【光照效果】:结合材质信息和光照模型,可以模拟出光照在物体表面的效果,如阴影、高光等。
-
拓扑结构信息:
- 【连接关系】:Mesh 地图中的多边形网格定义了物体表面的连接关系,可以通过拓扑结构确定物体的相邻面、边缘和顶点,从而进行碰撞检测、物理模拟等操作。
- 【区域划分】:可以根据拓扑结构将物体或场景划分为不同的区域
-
空间关系信息:
- 【相对位置】:与点云地图类似,Mesh 地图也可以表示物体之间的相对位置关系。通过 Mesh 模型的坐标系统,可以确定不同物体在空间中的位置和方向,从而进行空间布局分析和规划。
- 【遮挡关系】:由于 Mesh 地图具有明确的表面形状,可以更准确地判断物体之间的遮挡关系。
-
元数据信息:
- 【名称和标签】:可以为 Mesh 地图中的物体或区域添加名称和标签,以便进行识别和分类。
- 【其它属性】:如创建时间、作者、版权信息等。
【缺乏】
-
内部结构信息:
- 【遮挡部分信息】:对于被遮挡的部分,点云地图无法提供准确信息。比如被建筑物遮挡的道路情况
- 【内部构造信息】:只能展示物体的外部形状,对于物体的内部结构一无所知。
-
动态行为信息:
- 【运动状态】:不能直接反映物体的运动状态,比如车辆的行驶速度、行人的行走方向等。即使是动态采集的点云地图,也只是在不同时间点的静态记录,难以捕捉物体的连续运动行为。
- 【交互关系】:对于物体之间的动态交互关系无法体现,比如车辆之间的碰撞风险、人与物体的交互动作等。
-
语义信息:
- 【物体功能】:无法直接表明物体的具体功能
- 【动态行为含义】:不能传达物体的动态行为相关信息,比如某个区域可能在特定时间会有大量人员流动
-
高精度测量信息:
- 【绝对精度】
- 【微小细节测量】
3.4 优缺点
【优点】:
- 直观性: Mesh地图提供了直观的三维表面表示,易于理解和可视化。
- 细节丰富: 可以包含丰富的表面细节和纹理信息。
- 灵活性: 可以根据需要调整网格的密度,平衡细节和性能。
- 兼容性: 许多三维建模和渲染软件都支持Mesh地图,易于集成和使用。
【缺点】:
- 数据量大: 高精度的Mesh地图可能包含大量的多边形,导致数据量很大。
- 计算密集: 渲染和处理大量的多边形需要较高的计算资源。
- 存储需求: 需要较大的存储空间来保存高精度的Mesh数据。
- 生成复杂: 高质量的Mesh地图生成过程可能很复杂,需要专业的软件和技能。
- 优化困难: 在不损失太多细节的情况下优化Mesh地图以减少多边形数量可能是一个挑战。
四、CAD地图

4.1 定义与原理
什么是CAD地图?
CAD 地图是一种以计算机辅助设计(Computer-Aided Design, CAD)模型为核心表达的三维地图。
它不是简单地把场景表面离散成三角形,而是通过点、线、圆弧、样条曲线、曲面、实体、尺寸约束、装配关系等几何与工程元素,对对象进行结构化、参数化、可编辑的表达。
在工程领域,CAD地图更强调“可设计、可修改、可计算、可制造、可复用”的表达能力,常用于建筑、机械、基础设施、工业设备和数字化工程资产管理等场景。
【原理】
- 参数化几何建模: 以点、直线、圆弧、样条曲线、平面、旋转面、扫描面、布尔实体等几何元为基础,通过参数定义对象形状,而不是单纯记录离散表面。
- 拓扑与约束表达: CAD 地图不仅描述几何外形,还记录顶点、边、面、体之间的拓扑关系,以及平行、垂直、同心、相切、等距等工程约束。
- 精确实体表达: 常通过 B-rep(边界表示)、CSG(构造实体几何)或参数特征树来定义实体,使模型具备高精度、可求交、可测量、可编辑的能力。
- 语义化组织: 不同于普通三维表面模型,CAD 地图往往能够附带构件名称、规格、材料、工艺、装配层级、编号等工程语义信息。
- 工程计算驱动: 基于几何参数与拓扑结构,可进一步支持尺寸分析、公差分析、干涉检查、路径规划、加工制造、仿真分析与资产管理。
数学表达与基本公式理论
1)参数曲线

而CAD 中的曲线通常写为:
c ( t ) : [ 0 , 1 ] → R 3 \mathbf{c}(t):[0,1]\rightarrow \mathbb{R}^3 c(t):[0,1]→R3
其中:
- t t t 是曲线参数;
- c ( t ) \mathbf{c}(t) c(t) 表示三维空间中的曲线点。
这类表达可用于直线、圆弧、Bezier 曲线、B 样条曲线等。
2)参数曲面
CAD 中的曲面通常写为:
S ( u , v ) : Ω ⊂ R 2 → R 3 \mathbf{S}(u,v):\Omega\subset\mathbb{R}^2\rightarrow\mathbb{R}^3 S(u,v):Ω⊂R2→R3
其中:
- ( u , v ) (u,v) (u,v) 是参数域中的二维坐标;
- S ( u , v ) \mathbf{S}(u,v) S(u,v) 表示三维空间中的曲面点。
平面、圆柱面、球面、旋转面和 NURBS 曲面都可以用这种方式表达。
3)NURBS 曲线表达

CAD 中非常经典的一类表达是 NURBS:
C ( u ) = ∑ i = 0 n N i , p ( u ) w i P i ∑ i = 0 n N i , p ( u ) w i \mathbf{C}(u)= \frac{\sum_{i=0}^{n}N_{i,p}(u)w_i\mathbf{P}_i} {\sum_{i=0}^{n}N_{i,p}(u)w_i} C(u)=∑i=0nNi,p(u)wi∑i=0nNi,p(u)wiPi
其中:
- P i \mathbf{P}_i Pi:控制点;
- w i w_i wi:权重;
- N i , p ( u ) N_{i,p}(u) Ni,p(u):B 样条基函数。
它的核心意义在于:
用少量控制参数稳定地表达复杂而光滑的工程曲线。
4)B-rep 表达

CAD 实体常常使用边界表示(Boundary Representation):
B = ( V , E , F , I , A ) \mathcal{B}=(V,E,F,\mathcal{I},\mathcal{A}) B=(V,E,F,I,A)
其中:
- V V V:顶点集合;
- E E E:边集合;
- F F F:面集合;
- I \mathcal{I} I:关联关系;
- A \mathcal{A} A:邻接关系。
这意味着 CAD 地图不仅保存几何,还保存:
- 哪些边属于哪个面;
- 哪些面相互相邻;
- 每个面由什么解析曲面定义;
- 哪些边界对面进行修剪。
5)约束建模
CAD 模型往往还带有参数约束:
g k ( θ ) = 0 g_k(\theta)=0 gk(θ)=0
或者更一般地写成优化问题:
min θ ∑ k ∥ g k ( θ ) ∥ 2 \min_{\theta}\sum_k \|g_k(\theta)\|^2 θmink∑∥gk(θ)∥2
其中:
- θ \theta θ:模型参数;
- g k ( θ ) g_k(\theta) gk(θ):第 k k k 个几何或工程约束。
例如:
- 两条边平行;
- 两个孔同心;
- 某个尺寸固定为 20 mm;
- 某个面与基准面垂直。
这说明:
CAD 地图的关键价值,不只是“几何外观”,而是“可编辑的设计逻辑”。
主要生成方式与系统链路
| 阶段 | 输入 | 输出 | 典型方法 |
|---|---|---|---|
| 数据采集 | 点云 / 图像 / Mesh | 原始几何观测 | LiDAR、摄影测量、结构光 |
| 几何分割 | 原始数据 | 区域/构件分块 | RANSAC 分割、区域生长、学习分割 |
| 几何元拟合 | 分割结果 | 曲线/曲面/基元 | Plane/Cylinder/Cone/Sphere fitting |
| 拓扑恢复 | 几何元集合 | 邻接与连接关系 | B-rep 构造、布尔关系恢复 |
| 约束推断 | 初始模型 | 参数与约束 | 平行、垂直、同心、尺寸推断 |
| 参数优化 | 几何+约束 | 可编辑 CAD 模型 | 非线性最小二乘、约束求解 |
| 工程组织 | 几何实体 | 构件级 CAD 地图 | 装配树、属性绑定、版本管理 |
4.2 应用场景
相关的核心与经典算法
| 算法类别 | 核心算法/方法 | 主要作用 |
|---|---|---|
| 几何拟合 | RANSAC、Least Squares Fitting | 拟合平面、圆柱、球等基元 |
| 曲线曲面表达 | Bezier、B-spline、NURBS | 表达复杂曲线曲面 |
| 实体表达 | CSG、B-rep | 组织工程实体 |
| 约束求解 | Constraint Solving、Nonlinear Least Squares | 满足参数与装配约束 |
| CAD 逆向 | Primitive Recognition、Surface Segmentation | 从扫描数据恢复 CAD 结构 |
| 前沿方向 | Point2CAD、BrepGaussian 等 | 从感知数据走向工程语义表达 |
- 建筑与基础设施设计: 在建筑、桥梁、隧道、道路、市政管网等领域,CAD 地图可用于工程建模、施工图设计、结构拆分与方案推演。
- 机械与装备制造: 在机械零件、工业设备、机器人机构、夹具治具等场景中,CAD 地图可直接作为设计、加工、装配和维护的基础数据。
- 数字孪生与工业资产管理: 对工厂、园区、机房、产线等环境进行 CAD 化建模后,可形成可检索、可分析、可追踪的工程资产底座。
- BIM / GIS / 三维引擎协同: CAD 地图可以作为 BIM 模型、GIS 空间底图和三维可视化平台之间的重要桥梁,支撑多系统数据融合。
- 仿真与机器人应用: 在路径规划、碰撞检测、抓取分析、运动学仿真、工艺仿真中,CAD 地图由于具有精确几何和拓扑信息,更适合作为环境模型。
- 逆向工程与工业重建: 通过点云、图像、Mesh 等数据重建出的场景,若进一步转化为 CAD 地图,就能进入设计、编辑、制造和长期维护链路。
- 工程测绘与竣工归档: 在工程交付、资产归档、设施维护阶段,CAD 地图能够提供标准化、长期可用的工程表达形式,便于版本管理和后续改造。
4.3 优缺点
【优点】:
- 精度高: CAD 地图通常基于参数曲线、曲面和精确实体表达,适合高精度建模、尺寸标注和工程测量。
- 可编辑性强: 通过参数与约束驱动,可以方便地对结构尺寸、形状和装配关系进行修改,而不必整体重建。
- 工程语义丰富: 相比点云和 Mesh,CAD 地图更容易承载构件属性、材料、规格、功能分区、装配层级等工程信息。
- 适合分析与制造: 可直接支持碰撞检测、有限元分析、数控加工、装配仿真、路径规划等下游任务。
- 表达规范: CAD 地图具备较强的标准化能力,便于在设计、施工、制造、维护和归档等多个环节中传递。
- 长期复用价值高: 一旦形成高质量 CAD 地图,其作为工程资产的生命周期往往远长于纯视觉模型,便于迭代维护和多项目复用。
【缺点】:
- 建模成本高: 高质量 CAD 地图的建立往往依赖专业人员和专业软件,人工建模或高精度逆向重建成本较高。
- 对复杂自由形态不友好: 对自然场景、不规则物体、破损表面、植被、非标准结构等,CAD 表达通常不如点云或 Mesh 直接、高效。
- 生成流程复杂: 从实景采集数据自动恢复到可用 CAD 地图,需要经过分割、拟合、拓扑恢复、约束推断、合法性检查等复杂流程。
- 真实细节保真度受限: CAD 地图倾向于结构化、规则化表达,对于微小纹理、表面噪声、随机细节和真实材质外观的保留能力较弱。
- 软件生态门槛较高: CAD 数据常涉及专有格式、行业标准和专业工作流,跨平台共享与轻量化展示相对不如 Mesh 灵活。
- 自动化难度大: 从点云、影像或高斯表示自动生成“工程可用”的 CAD 地图,本质上是几何、拓扑、语义与约束联合恢复问题,技术门槛很高。
| 层级 | 地图类型 | 更关注什么 |
|---|---|---|
| 第 1 层 | 稀疏点云地图 | 定位与几何锚点 |
| 第 2 层 | 稠密点云地图 | 尽可能完整的几何采样 |
| 第 3 层 | Mesh 地图 | 连续表面与可视化表达 |
| 第 4 层 | CAD 地图 | 参数化工程结构与语义组织 |
通俗理解就是:
- 稀疏点云地图: 知道“关键点在哪”
- 稠密点云地图: 知道“哪里几乎都有点”
- Mesh 地图: 知道“这些点怎么连成表面”
- CAD 地图: 知道“这个结构是怎么被设计出来的”
五、线地图
5.1 定义与原理
什么是线地图?
线地图(Line Map)是一种以 线段、边缘、几何轮廓或结构线 作为核心表达单元的地图。
与点云地图强调“点的位置”不同,线地图更强调:
环境中哪些地方具有稳定的方向性、边界性和结构性。
这类地图特别适合以下场景:
- 人工结构明显的室内外环境
- 建筑、走廊、道路边界等“线性结构”丰富的场景
- 纹理较弱、但几何边缘清晰的环境
- 需要轻量表达且又希望保留结构轮廓的系统
为什么线可以成为地图?
因为在大量真实场景中,很多关键结构天然以“线”的形式存在,例如:
- 墙与墙的交线
- 地面与墙面的边界
- 门框、窗框、桌边、柜边
- 道路边缘、车道线、建筑轮廓线
相较于离散点,线具有两个天然优势:
- 更强的结构表达能力:一条线往往能概括一整段局部几何;
- 更高的几何稳定性:在弱纹理场景中,线往往比点更容易长期稳定跟踪。
5.2 数学表达与基本公式理论
1)二维图像中的直线表达
在图像中,一条直线常用齐次形式表示为:
l = ( a , b , c ) T l = (a,b,c)^T l=(a,b,c)T
满足线上任一点 x = ( u , v , 1 ) T \mathbf{x}=(u,v,1)^T x=(u,v,1)T 都有:
l T x = a u + b v + c = 0 l^T \mathbf{x} = au + bv + c = 0 lTx=au+bv+c=0
这说明:
图像中的线,可以通过一个线性方程来表达。
2)三维空间中的直线表达
在三维空间中,一条直线可以用点向式表示:
L ( t ) = p + t d , t ∈ R \mathbf{L}(t)=\mathbf{p}+t\mathbf{d}, \quad t\in\mathbb{R} L(t)=p+td,t∈R
其中:
- p \mathbf{p} p:直线上的一点;
- d \mathbf{d} d:方向向量。
这表示:
一条三维直线,就是一个起点加上某个方向上的无限延伸。
3)Plücker 坐标表示
在几何计算和多视图几何中,三维直线常用 Plücker 坐标表示:
L = ( d , m ) \mathcal{L}=(\mathbf{d},\mathbf{m}) L=(d,m)
其中:
- d \mathbf{d} d:直线方向向量;
- m = p × d \mathbf{m}=\mathbf{p}\times \mathbf{d} m=p×d:矩向量(moment)。
它满足约束:
d T m = 0 \mathbf{d}^T\mathbf{m}=0 dTm=0
Plücker 表示的优势在于:
- 便于直线与平面、射线之间的几何计算
- 适合多视图重建中的线特征建模
- 在 SLAM、PnL、线结构优化中常用
4)图像线与三维线的投影关系
三维直线投影到图像平面后仍然是二维直线。
若空间中一条线由两点 X 1 , X 2 \mathbf{X}_1,\mathbf{X}_2 X1,X2 张成,那么它投影到图像中的线可以由两投影点叉乘得到:
l = x 1 × x 2 l = \mathbf{x}_1 \times \mathbf{x}_2 l=x1×x2
其中:
- x 1 , x 2 \mathbf{x}_1,\mathbf{x}_2 x1,x2:两空间点在图像中的投影;
- l l l:图像平面中的线。
这说明:
空间中的线结构,经过相机成像后会转化为图像中的边缘或线段。
5)线特征重投影误差
在线 SLAM 中,常用点到线距离衡量投影误差。
若某个重投影点 x \mathbf{x} x 理应落在线 l = ( a , b , c ) T l=(a,b,c)^T l=(a,b,c)T 上,则误差可写为:
d ( x , l ) = ∣ a u + b v + c ∣ a 2 + b 2 d(\mathbf{x},l)=\frac{|a u+b v+c|}{\sqrt{a^2+b^2}} d(x,l)=a2+b2∣au+bv+c∣
这个误差项常被放入优化目标中,用于:
- 位姿优化
- 线结构地图优化
- 线特征约束融合
5.3 主要生成方式与系统链路
| 阶段 | 输入 | 输出 | 典型方法 |
|---|---|---|---|
| 图像/点云采集 | 相机、LiDAR、RGB-D | 原始观测数据 | 单目、双目、深度相机 |
| 线特征提取 | 图像/点云 | 线段、边界、轮廓 | LSD、EDLines、Hough、点云边缘检测 |
| 线匹配与跟踪 | 多帧观测 | 线对应关系 | 描述子匹配、方向约束、端点匹配 |
| 三维线恢复 | 多视图线观测 | 空间线段 | 三角化、PnL、结构恢复 |
| 地图优化 | 位姿+线特征 | 稳定线地图 | BA、图优化、点线联合优化 |
| 后处理 | 原始线图 | 结构化线地图 | 合并、简化、共线聚类 |
系统链路的直观理解
图像 / 点云采集
↓
线特征提取
↓
跨帧匹配与跟踪
↓
三维线恢复
↓
位姿与地图联合优化
↓
线地图
5.4 相关的核心与经典算法
| 算法类别 | 核心算法 | 主要作用 |
|---|---|---|
| 图像线检测 | Hough Transform、LSD、EDLines | 从图像中提取线段 |
| 线描述与匹配 | LBD、MLLD | 构造线特征描述子 |
| 位姿估计 | PnL(Perspective-n-Line) | 利用线特征求位姿 |
| 点线联合 SLAM | PL-SLAM、LineSLAM | 同时利用点和线建图定位 |
| 点云边缘提取 | 曲率阈值、区域生长、结构边界检测 | 从三维点云中恢复线性结构 |
| 地图优化 | BA、Pose Graph、点线联合优化 | 提升全局一致性 |
5.5 信息量
【含有】
| 信息类别 | 具体内容 | 通俗解释 |
|---|---|---|
| 结构轮廓信息 | 墙边、门框、道路边界、建筑外轮廓 | 能很好表达场景骨架 |
| 方向信息 | 线的方向与延伸关系 | 有利于几何约束和姿态估计 |
| 几何关系信息 | 平行、共线、垂直、交叉 | 适合结构化场景建模 |
| 轻量级拓扑信息 | 某些线的连接关系 | 能形成较强场景轮廓感 |
【缺乏】
| 缺失类别 | 具体表现 | 原因 |
|---|---|---|
| 表面信息 | 无法表达大面积连续表面 | 线只表示边界或骨架 |
| 纹理与材质信息 | 不包含表面外观细节 | 表达对象是几何线 |
| 完整三维几何 | 曲面、体积和内部结构表达不足 | 线地图本质上很抽象 |
| 密集感知能力 | 不适合直接做精细避障或渲染 | 表达过于稀疏 |
5.6 应用场景
| 场景 | 作用 |
|---|---|
| 室内 SLAM | 在弱纹理建筑环境中增强定位稳定性 |
| 建筑结构建模 | 表达墙线、边界、框架结构 |
| 道路场景理解 | 提取车道线、路沿线、建筑轮廓 |
| 轻量地图表达 | 在资源受限设备中提供结构化地图 |
| 点线联合定位 | 与点特征互补,提高鲁棒性 |
5.7 优缺点
【优点】
| 优点 | 说明 |
|---|---|
| 结构表达强 | 一条线往往比多个点更能概括局部结构 |
| 轻量 | 数据量相对较低 |
| 对弱纹理更友好 | 边界清晰的场景往往能稳定提线 |
| 几何约束丰富 | 平行、垂直、交线等关系可直接建模 |
【缺点】
| 缺点 | 说明 |
|---|---|
| 提取不稳定 | 光照变化、遮挡、断裂边缘会影响线检测 |
| 匹配较难 | 线段缺少像点那样精确的局部纹理描述 |
| 信息不完整 | 难以独立表达完整几何外形 |
| 在自然场景中效果受限 | 树木、草地等不规则场景线结构弱 |
六、压缩后的点云地图
6.1 定义与原理
什么是压缩后的点云地图?
压缩后的点云地图,是指在尽可能保留几何结构、定位能力或感知价值的前提下,
通过 降采样、编码、聚合、分层表达、特征压缩或学习式压缩 等手段,对原始点云地图进行体量缩减后的地图表示。
换句话说,它解决的核心问题是:
原始点云地图太大了,如何在“够用”的前提下把它压小。
这在以下场景尤为重要:
- 移动端与边缘设备部署
- 自动驾驶车端地图加载
- 大规模三维地图云端分发
- 机器人长期运行的地图维护
- 多机器人协同中的地图传输
6.2 数学表达与基本公式理论
1)原始点云表示
原始点云可写为:
P = { p i ∈ R 3 } i = 1 N \mathcal{P}=\{\mathbf{p}_i \in \mathbb{R}^3\}_{i=1}^{N} P={pi∈R3}i=1N
压缩的目标是得到一个更小的表示:
C = f ( P ) \mathcal{C}=f(\mathcal{P}) C=f(P)
并在解码时恢复近似点云:
P ^ = g ( C ) \hat{\mathcal{P}}=g(\mathcal{C}) P^=g(C)
其中:
- f f f:压缩编码函数;
- g g g:解码恢复函数。
2)压缩误差
压缩后通常希望恢复点云与原始点云尽可能接近。
经典误差度量之一是 Chamfer Distance:
d C D ( P , P ^ ) = ∑ p ∈ P min p ^ ∈ P ^ ∥ p − p ^ ∥ 2 + ∑ p ^ ∈ P ^ min p ∈ P ∥ p ^ − p ∥ 2 d_{CD}(\mathcal{P},\hat{\mathcal{P}})= \sum_{\mathbf{p}\in\mathcal{P}}\min_{\hat{\mathbf{p}}\in\hat{\mathcal{P}}}\|\mathbf{p}-\hat{\mathbf{p}}\|^2 + \sum_{\hat{\mathbf{p}}\in\hat{\mathcal{P}}}\min_{\mathbf{p}\in\mathcal{P}}\|\hat{\mathbf{p}}-\mathbf{p}\|^2 dCD(P,P^)=p∈P∑p^∈P^min∥p−p^∥2+p^∈P^∑p∈Pmin∥p^−p∥2
它衡量:
压缩恢复后的点云,和原始点云在空间位置上差多少。
3)体素化压缩
一种最经典的压缩思路是体素化。
将空间划分为边长为 Δ \Delta Δ 的体素格,每个点映射到某个体素中:
v i = ( ⌊ x i Δ ⌋ , ⌊ y i Δ ⌋ , ⌊ z i Δ ⌋ ) \mathbf{v}_i= \left( \left\lfloor \frac{x_i}{\Delta} \right\rfloor, \left\lfloor \frac{y_i}{\Delta} \right\rfloor, \left\lfloor \frac{z_i}{\Delta} \right\rfloor \right) vi=(⌊Δxi⌋,⌊Δyi⌋,⌊Δzi⌋)
然后每个体素仅保留一个代表点,如体素中心或均值点。
这本质上是在做:
“多个近邻点合并成一个代表点”的空间聚合。
4)率失真优化
压缩问题常写成率失真优化(Rate-Distortion Optimization):
min D + λ R \min \; D + \lambda R minD+λR
其中:
- D D D:失真,表示压缩后的精度损失;
- R R R:码率,表示压缩后所需存储/传输成本;
- λ \lambda λ:二者之间的权衡系数。
它表达了一个非常工程化的思想:
地图不可能既无限精确又无限小,压缩本质上是在精度和体积之间做权衡。
6.3 主要生成方式与系统链路
| 阶段 | 输入 | 输出 | 典型方法 |
|---|---|---|---|
| 原始点云获取 | LiDAR / RGB-D / 重建系统 | 原始点云地图 | SLAM、扫描、重建 |
| 预处理 | 原始点云 | 去噪点云 | 离群点去除、法向估计 |
| 压缩表示生成 | 去噪点云 | 紧凑编码 | 体素化、八叉树、关键帧子图、PCA、学习压缩 |
| 存储/传输 | 压缩结果 | 地图文件/网络流 | MPEG G-PCC、V-PCC、自定义编码 |
| 解码与恢复 | 压缩编码 | 近似点云地图 | 八叉树解码、神经解码、子图重建 |
| 下游应用 | 压缩地图 | 定位/感知/可视化 | 匹配、加载、渲染 |
系统链路的直观理解
原始点云地图
↓
去噪与规整
↓
空间聚合 / 编码压缩
↓
存储与传输
↓
解码恢复
↓
压缩后的点云地图应用
6.4 相关的核心与经典算法
| 算法类别 | 核心算法/方法 | 主要作用 |
|---|---|---|
| 几何降采样 | Voxel Grid、Farthest Point Sampling | 减少点数 |
| 层次表达 | Octree、KD-Tree、LOD | 分层管理与渐进加载 |
| 经典编码 | G-PCC、V-PCC | 点云标准化压缩 |
| 特征聚合 | Superpoint、局部块压缩 | 用更少的单元表达区域 |
| 学习式压缩 | AutoEncoder、Sparse Convolution Compression | 数据驱动压缩编码 |
| 地图子图压缩 | Keyframe Map、Submap Compression | 面向 SLAM 的结构压缩 |
6.5 信息量
【含有】
| 信息类别 | 具体内容 | 通俗解释 |
|---|---|---|
| 近似几何信息 | 原始点云的大部分主要结构 | 大轮廓通常还能保留 |
| 多尺度信息 | 不同精度层级下的场景结构 | 适合分级加载 |
| 局部感知能力 | 在适度压缩下仍能支撑定位或重建 | “压小但还能用” |
【缺乏】
| 缺失类别 | 具体表现 | 原因 |
|---|---|---|
| 极细微几何细节 | 小边缘、小裂缝、小目标丢失 | 压缩会牺牲高频信息 |
| 高保真表面表达 | 局部可能变粗糙 | 点聚合或量化造成损失 |
| 原始采样完整性 | 不再是一对一保留所有点 | 压缩本身就意味着舍弃 |
6.6 应用场景
| 场景 | 作用 |
|---|---|
| 自动驾驶地图分发 | 降低车端加载和通信压力 |
| 机器人长期建图 | 降低地图维护成本 |
| 云边协同感知 | 支持高效上传与下发 |
| 大规模数字孪生 | 控制海量三维资产体量 |
| 移动端可视化 | 提升加载速度和交互体验 |
6.7 优缺点
【优点】
| 优点 | 说明 |
|---|---|
| 节省存储 | 明显降低地图体积 |
| 提升传输效率 | 更适合网络分发与车端部署 |
| 支持多分辨率 | 可按需加载不同精度 |
| 工程实用性强 | 是大规模系统落地的重要手段 |
【缺点】
| 缺点 | 说明 |
|---|---|
| 精度损失不可避免 | 压缩越强,细节损失越大 |
| 压缩策略依赖任务 | 定位友好压缩不一定适合重建 |
| 编码解码复杂 | 高级压缩方法实现成本高 |
| 误差累积风险 | 若用于长期地图更新,误差管理更复杂 |
七、平面图
7.1 定义与原理
什么是平面图?
这里的平面图,主要指将三维空间中的环境信息 投影、切片或抽象到二维平面 后形成的地图表达。
常见形式包括:
- 室内建筑平面图
- 占据栅格地图(Occupancy Grid Map)
- 楼层图 / 户型图
- 二维导航图
- 俯视语义图
它的核心思想是:
对于很多导航和规划任务,并不需要完整三维,只要“地面这一层”的空间关系就够用了。
7.2 数学表达与基本公式理论
1)二维占据栅格表示
平面图中最经典的一种形式是二维占据栅格地图。
将平面离散成网格单元,每个网格有占据概率:
m i j ∈ [ 0 , 1 ] m_{ij}\in[0,1] mij∈[0,1]
其中:
- m i j = 1 m_{ij}=1 mij=1 表示该栅格被障碍物占据;
- m i j = 0 m_{ij}=0 mij=0 表示为空闲区域;
- 中间值表示不确定性。
2)贝叶斯更新
占据栅格常用贝叶斯方式融合多次观测:
p ( m ∣ z 1 : t , x 1 : t ) p(m|z_{1:t},x_{1:t}) p(m∣z1:t,x1:t)
为了便于更新,通常使用对数几率形式(log-odds):
l t = l t − 1 + log p ( m ∣ z t , x t ) 1 − p ( m ∣ z t , x t ) − l 0 l_t = l_{t-1} + \log \frac{p(m|z_t,x_t)}{1-p(m|z_t,x_t)} - l_0 lt=lt−1+log1−p(m∣zt,xt)p(m∣zt,xt)−l0
其中:
- z t z_t zt:第 t t t 次传感器观测;
- x t x_t xt:第 t t t 次位姿;
- l 0 l_0 l0:先验项。
它意味着:
一个格子是否被占据,不是一次就定死,而是随着不断观测逐渐“投票”出来。
3)三维到二维投影
若有三维点云 P \mathcal{P} P,可通过投影或高度切片得到二维平面表示:
π x y ( x , y , z ) = ( x , y ) \pi_{xy}(x,y,z)=(x,y) πxy(x,y,z)=(x,y)
或者只保留某一高度区间内的点:
z ∈ [ z min , z max ] z \in [z_{\min}, z_{\max}] z∈[zmin,zmax]
这在楼层图、机器人室内导航中非常常见。
4)距离变换
很多平面图还会进一步计算到最近障碍物的距离:
D ( x ) = min o ∈ O ∥ x − o ∥ D(\mathbf{x}) = \min_{\mathbf{o}\in\mathcal{O}} \|\mathbf{x}-\mathbf{o}\| D(x)=o∈Omin∥x−o∥
这可用于:
- 路径规划
- 代价地图
- 安全边界分析
7.3 主要生成方式与系统链路
| 阶段 | 输入 | 输出 | 典型方法 |
|---|---|---|---|
| 数据采集 | 激光雷达、深度相机、点云、建筑图纸 | 原始环境数据 | 2D LiDAR、3D LiDAR、RGB-D |
| 平面提取/投影 | 三维观测 | 俯视平面信息 | 投影、切片、地面估计 |
| 栅格化/矢量化 | 点/边界 | 二维地图单元 | Occupancy Grid、轮廓提取 |
| 多帧融合 | 连续观测 | 全局平面图 | SLAM、图优化 |
| 后处理 | 原始平面图 | 干净可用平面图 | 开闭运算、区域合并、墙线提取 |
系统链路的直观理解
三维/二维传感器观测
↓
投影或切片
↓
二维栅格化 / 墙线提取
↓
多帧融合
↓
平面图
7.4 相关的核心与经典算法
| 算法类别 | 核心算法 | 主要作用 |
|---|---|---|
| 占据建图 | Occupancy Grid Mapping | 建立二维障碍分布图 |
| 2D SLAM | GMapping、Cartographer、Hector SLAM | 构建全局二维地图 |
| 墙线提取 | Hough、RANSAC line fitting | 从栅格或点集中提取墙线 |
| 房间分割 | 区域生长、拓扑分割、语义分割 | 生成结构化平面图 |
| 代价地图 | Euclidean Distance Transform、Inflation Layer | 用于路径规划 |
7.5 信息量
【含有】
| 信息类别 | 具体内容 | 通俗解释 |
|---|---|---|
| 通行空间信息 | 哪些区域可走、哪些区域有障碍 | 非常适合导航 |
| 房间结构信息 | 墙体、门洞、走廊布局 | 室内场景尤其常用 |
| 平面拓扑信息 | 连通性、区域划分 | 有利于路径规划和任务调度 |
【缺乏】
| 缺失类别 | 具体表现 | 原因 |
|---|---|---|
| 三维高度信息 | 无法区分高低差和立体结构 | 被投影到二维平面了 |
| 表面细节 | 不表达纹理和立体外观 | 平面图只关注布局 |
| 上下层关系 | 多楼层耦合表达较弱 | 二维表达天然受限 |
7.6 应用场景
| 场景 | 作用 |
|---|---|
| 室内机器人导航 | 快速路径规划与避障 |
| 建筑管理 | 楼层图、房间组织、资产布置 |
| 安防巡检 | 平面区域规划与路线设计 |
| 清扫机器人 | 高效覆盖与区域分区 |
| 数字孪生的基础底图 | 作为上层业务的平面入口 |
7.7 优缺点
【优点】
| 优点 | 说明 |
|---|---|
| 简洁高效 | 二维表示便于存储与计算 |
| 规划友好 | 非常适合路径规划与区域管理 |
| 易于人理解 | 人类天然熟悉平面布局图 |
| 工程成熟 | 大量机器人系统都基于此工作 |
【缺点】
| 缺点 | 说明 |
|---|---|
| 三维信息损失明显 | 无法表达复杂立体空间 |
| 对多层空间不够自然 | 楼梯、夹层等表达困难 |
| 对复杂场景抽象较粗 | 某些场景需要更丰富的三维信息 |
八、神经网络隐式表征的地图

8.1 定义与原理
什么是神经网络隐式表征的地图?
神经网络隐式表征地图,是指不用显式存储点、面或体素,而是用一个神经网络函数来表示场景几何、颜色、密度或语义信息的地图。
简单说,它不直接存“地图长什么样”,而是存一个函数:
给我一个空间位置,我告诉你这里是什么。
这类地图是近年三维视觉和神经渲染领域最重要的方向之一,典型代表包括:
- NeRF(Neural Radiance Field)
- SDF / Neural SDF
- Occupancy Network
- Instant-NGP
- Neural Map / Scene Representation Network
- 以及与 3DGS、隐式场耦合的各种地图方法
8.2 数学表达与基本公式理论
1)隐式场函数
最基本的形式,是用神经网络表示一个连续函数:
f θ : R 3 → R k f_\theta : \mathbb{R}^3 \rightarrow \mathbb{R}^k fθ:R3→Rk
其中:
- 输入是空间位置 x ∈ R 3 \mathbf{x}\in\mathbb{R}^3 x∈R3;
- 输出可以是密度、颜色、SDF 值、占据概率、语义类别等;
- θ \theta θ 是网络参数。
这说明:
地图不再是离散存储,而是被压进了网络参数里。
2)NeRF 形式
NeRF 常写成:
f θ ( x , d ) = ( σ , c ) f_\theta(\mathbf{x},\mathbf{d})=(\sigma,\mathbf{c}) fθ(x,d)=(σ,c)
其中:
- x \mathbf{x} x:空间位置;
- d \mathbf{d} d:观察方向;
- σ \sigma σ:体密度;
- c \mathbf{c} c:颜色。
然后沿一条光线做体渲染积分:
C ( r ) = ∫ t n t f T ( t ) σ ( r ( t ) ) c ( r ( t ) , d ) d t C(\mathbf{r})=\int_{t_n}^{t_f} T(t)\sigma(\mathbf{r}(t))\mathbf{c}(\mathbf{r}(t),\mathbf{d})dt C(r)=∫tntfT(t)σ(r(t))c(r(t),d)dt
其中透射率:
T ( t ) = exp ( − ∫ t n t σ ( r ( s ) ) d s ) T(t)=\exp\left(-\int_{t_n}^{t}\sigma(\mathbf{r}(s))ds\right) T(t)=exp(−∫tntσ(r(s))ds)
这表示:
一张图像中的像素颜色,是光线穿过场景体密度场后逐步累积出来的。
3)SDF 形式
若地图表达的是符号距离场,则常写为:
f θ ( x ) = s f_\theta(\mathbf{x}) = s fθ(x)=s
其中:
- s > 0 s>0 s>0 表示点在物体外部;
- s < 0 s<0 s<0 表示点在物体内部;
- s = 0 s=0 s=0 对应表面。
理想 SDF 满足 Eikonal 条件:
∥ ∇ f θ ( x ) ∥ = 1 \|\nabla f_\theta(\mathbf{x})\| = 1 ∥∇fθ(x)∥=1
这类表达特别适合:
- 表面重建
- 几何优化
- 法向恢复
- 碰撞与距离查询
4)占据概率形式
Occupancy Network 类方法则输出某点是否被占据:
o θ ( x ) ∈ [ 0 , 1 ] o_\theta(\mathbf{x}) \in [0,1] oθ(x)∈[0,1]
这等价于:
问网络:这个位置是在物体内部,还是在空空间中?
5)训练目标
隐式表征地图通常通过重建误差训练,例如颜色重建损失:
L r g b = ∑ r ∥ C ( r ) − C ^ ( r ) ∥ 2 \mathcal{L}_{rgb}=\sum_r \|C(r)-\hat{C}(r)\|^2 Lrgb=r∑∥C(r)−C^(r)∥2
也可能叠加:
- 深度损失
- Eikonal 正则
- 稀疏正则
- 语义交叉熵
- 几何一致性损失
8.3 主要生成方式与系统链路
| 阶段 | 输入 | 输出 | 典型方法 |
|---|---|---|---|
| 数据采集 | 多视图图像 / 深度 / 位姿 | 训练数据集 | 相机轨迹、深度观测 |
| 编码表示 | 原始观测 | 隐式网络输入 | 位置编码、哈希编码、特征网格 |
| 网络训练 | 多视图监督 | 隐式场函数 | NeRF、SDF、Occupancy |
| 场查询/渲染 | 空间点或光线 | 颜色/密度/距离/语义 | 光线采样、体渲染、Marching Cubes |
| 地图应用 | 隐式函数 | 重建/定位/新视角合成 | 渲染、表面提取、配准 |
系统链路的直观理解
多视图图像 / 深度 / 位姿
↓
网络编码与训练
↓
得到隐式场函数
↓
空间查询 / 光线渲染 / 表面提取
↓
神经隐式地图
8.4 相关的核心与经典算法
| 算法类别 | 核心算法/方法 | 主要作用 |
|---|---|---|
| 辐射场 | NeRF、Mip-NeRF、Instant-NGP | 新视角合成与隐式场表示 |
| 距离场 | DeepSDF、NeuS、VolSDF | 几何重建与表面恢复 |
| 占据场 | Occupancy Networks、Convolutional Occupancy Networks | 物体/场景占据建模 |
| 隐式 SLAM | NICE-SLAM、iMAP、ESLAM | 隐式地图与在线定位结合 |
| 神经编码 | Positional Encoding、Hash Grid Encoding | 提升高频表达能力 |
| 表面提取 | Marching Cubes、Dual Contouring | 从隐式场提取 Mesh |
8.5 信息量
【含有】
| 信息类别 | 具体内容 | 通俗解释 |
|---|---|---|
| 连续几何信息 | 连续空间中的密度/距离/占据 | 比离散点更“连续” |
| 高保真外观信息 | 颜色、视角相关外观 | 很适合神经渲染 |
| 可微分结构 | 对位置和参数可导 | 有利于优化与训练 |
| 紧凑函数表达 | 网络参数中压缩大量场景信息 | 一定程度具备紧凑性 |
【缺乏】
| 缺失类别 | 具体表现 | 原因 |
|---|---|---|
| 显式结构可解释性 | 不像点云和网格那样直观 | 信息被“藏”在网络参数中 |
| 工程可编辑性 | 修改局部结构往往不方便 | 神经隐式场缺少显式构件 |
| 实时部署便利性 | 训练和查询成本可能较高 | 需要较强算力支撑 |
| 标准化程度 | 工程链路尚未像 CAD/点云那样成熟 | 仍处于快速发展阶段 |
8.6 应用场景
| 场景 | 作用 |
|---|---|
| 新视角合成 | 从少量图像生成任意视角图像 |
| 高保真场景重建 | 学习连续几何与外观 |
| 隐式 SLAM | 将地图和渲染/几何联合起来 |
| 数字孪生展示 | 生成高质量视觉体验 |
| 几何重建 | 从神经场中提取表面或距离信息 |
8.7 优缺点
【优点】
| 优点 | 说明 |
|---|---|
| 表达连续 | 不再受限于离散采样分辨率 |
| 外观保真度高 | 尤其适合照片级渲染 |
| 函数表示紧凑 | 用网络参数编码复杂场景 |
| 可微性强 | 易于结合优化与学习框架 |
【缺点】
| 缺点 | 说明 |
|---|---|
| 训练成本高 | 传统 NeRF 训练较慢 |
| 解释性较弱 | 不如显式地图直观 |
| 交互编辑困难 | 局部修改不够自然 |
| 工程链路尚不完全成熟 | 在大规模、实时系统中仍有门槛 |
九、高精地图
9.1 定义与原理
什么是高精地图?
高精地图(HD Map, High Definition Map)是一种面向自动驾驶、智能交通和高等级辅助驾驶系统的高精度、结构化、语义化地图。
它不只是“把道路画出来”,而是尽可能精确地表达:
- 车道中心线
- 车道边界
- 路沿、护栏、交通标志
- 红绿灯、停止线、斑马线
- 路口拓扑关系
- 限速、车道属性、可通行规则
它的核心目标是:
让自动驾驶系统不只知道“自己在哪”,还知道“这个位置该怎么开”。
9.2 数学表达与基本公式理论
1)位姿定位误差模型
高精地图最常见的用途之一是车辆定位。
车辆位姿常记为:
T ∈ S E ( 3 ) \mathbf{T}\in SE(3) T∈SE(3)
系统通过传感器观测 Z \mathcal{Z} Z 与地图特征 M \mathcal{M} M 进行匹配,求:
T ^ = arg min T d ( Z , M ; T ) \hat{\mathbf{T}}= \arg\min_{\mathbf{T}} d(\mathcal{Z}, \mathcal{M}; \mathbf{T}) T^=argTmind(Z,M;T)
其中 d ( ⋅ ) d(\cdot) d(⋅) 可以是:
- 点到线距离
- 点到面距离
- 强度一致性误差
- 语义匹配误差
2)车道中心线参数化
车道中心线常表示为二维或三维参数曲线:
c ( s ) = ( x ( s ) , y ( s ) , z ( s ) ) \mathbf{c}(s)=(x(s),y(s),z(s)) c(s)=(x(s),y(s),z(s))
其中:
- s s s 是弧长参数;
- c ( s ) \mathbf{c}(s) c(s) 给出沿车道前进时的空间位置。
在工程中常用:
- 折线
- 样条曲线
- 三次多项式
- clothoid(渐开线/缓和曲线)
3)车道边界约束
若车辆横向偏移量为 e y e_y ey,航向误差为 e ψ e_\psi eψ,则横向控制中经常以车道中心线为参考建立误差模型。
这说明高精地图不仅用于定位,还直接参与:
- 轨迹规划
- 横向控制
- 场景规则推理
4)拓扑图表示
高精地图还常被抽象成有向图:
G = ( V , E ) G=(V,E) G=(V,E)
其中:
- V V V:车道段、路口节点、决策节点;
- E E E:可行驶连接关系。
这使得地图可以支撑:
- 全局路径规划
- 路网通行关系查询
- 规则级决策
9.3 主要生成方式与系统链路
| 阶段 | 输入 | 输出 | 典型方法 |
|---|---|---|---|
| 数据采集 | 测绘车、LiDAR、相机、GNSS/IMU | 多模态道路数据 | 高精测绘系统 |
| 几何建模 | 原始感知数据 | 道路几何特征 | 点云配准、车道线提取、路沿拟合 |
| 语义标注 | 几何特征 | 标志、信号、规则属性 | 人工标注、半自动标注、学习识别 |
| 拓扑构建 | 局部道路元素 | 路网级图结构 | 车道连接关系构建 |
| 地图发布 | HD Map 数据 | 可供车端加载的地图 | Lanelet2、OpenDRIVE、Apollo HD Map |
系统链路的直观理解
多传感器测绘
↓
道路几何恢复
↓
车道/路沿/标志提取
↓
语义与规则标注
↓
拓扑组织
↓
高精地图
9.4 相关的核心与经典算法
| 算法类别 | 核心算法/方法 | 主要作用 |
|---|---|---|
| 地图定位 | NDT Matching、ICP、语义匹配 | 将车辆定位到高精地图中 |
| 车道线检测 | 图像分割、曲线拟合、点云边界检测 | 恢复车道结构 |
| 多传感器融合 | EKF、图优化、LiDAR-camera fusion | 构建统一测绘结果 |
| 路网建模 | Lane Graph、Lanelet2、OpenDRIVE | 表达路网拓扑 |
| 自动更新 | Change Detection、Map Update Pipeline | 维护地图时效性 |
9.5 信息量
【含有】
| 信息类别 | 具体内容 | 通俗解释 |
|---|---|---|
| 几何精度信息 | 车道边界、路沿、标志位置 | 位置非常准 |
| 交通语义信息 | 信号灯、限速、标线规则 | 不只是“哪里”,还是“怎么走” |
| 路网拓扑信息 | 哪条车道能并到哪条车道 | 支撑规划和决策 |
| 局部高精地标信息 | 可匹配特征和定位基准 | 高精定位核心依赖 |
【缺乏】
| 缺失类别 | 具体表现 | 原因 |
|---|---|---|
| 实时动态信息 | 临时施工、事故、动态障碍不会天然包含 | 地图一般是静态底座 |
| 全场景通用性 | 室内、非道路环境不适用 | 高精地图主要服务道路交通 |
| 低成本更新能力 | 维护成本高 | 需要高质量测绘与标注流程 |
9.6 应用场景
| 场景 | 作用 |
|---|---|
| 自动驾驶 | 高精定位、路径规划、规则理解 |
| 高级辅助驾驶 | 车道级引导与风险预警 |
| 智慧交通 | 路网级交通管理与调度 |
| 无人配送/无人巴士 | 限定区域内高可靠导航 |
9.7 优缺点
【优点】
| 优点 | 说明 |
|---|---|
| 精度高 | 可实现车道级乃至厘米级定位支撑 |
| 语义强 | 含有丰富交通规则信息 |
| 拓扑完备 | 适合全局与局部规划 |
| 工程价值高 | 是高等级自动驾驶的重要基础设施 |
【缺点】
| 缺点 | 说明 |
|---|---|
| 采集与维护成本高 | 建图和更新都很昂贵 |
| 时效性压力大 | 道路变化会让地图过时 |
| 依赖区域覆盖 | 没有测过的区域就没有地图红利 |
| 系统复杂 | 几何、语义、规则、拓扑都要维护 |
十、矢量图

10.1 定义与原理
什么是矢量图?
矢量图(Vector Map)是以 点、线、面、多边形、曲线等几何元素 来表达空间对象的地图。
与栅格图按像素存储不同,矢量图按几何对象存储,因此非常适合表示:
- 道路中心线
- 建筑轮廓
- 区域边界
- 河流、管线、行政边界
- 车道线、拓扑节点
它的核心特点是:
地图由“几何对象”组成,而不是由像素格子堆出来。
10.2 数学表达与基本公式理论
1)点、线、面几何基元
矢量图的基础单元可表示为:
- 点: p = ( x , y ) \mathbf{p}=(x,y) p=(x,y)
- 线串: L = { p 1 , p 2 , … , p n } \mathcal{L}=\{\mathbf{p}_1,\mathbf{p}_2,\dots,\mathbf{p}_n\} L={p1,p2,…,pn}
- 面:由闭合折线或曲线围成区域
这说明矢量图本质上是一组几何对象集合。
2)多边形面积
若一个区域由顶点序列 ( x i , y i ) (x_i,y_i) (xi,yi) 围成,其面积可由鞋带公式计算:
A = 1 2 ∣ ∑ i = 1 n x i y i + 1 − y i x i + 1 ∣ A=\frac{1}{2}\left|\sum_{i=1}^{n}x_i y_{i+1}-y_i x_{i+1}\right| A=21 i=1∑nxiyi+1−yixi+1
这类公式在:
- 地块面积计算
- 区域分析
- GIS 空间运算
中很常见。
3)线段长度
折线总长度可写为:
L = ∑ i = 1 n − 1 ∥ p i + 1 − p i ∥ L=\sum_{i=1}^{n-1}\|\mathbf{p}_{i+1}-\mathbf{p}_i\| L=i=1∑n−1∥pi+1−pi∥
这适用于:
- 道路长度统计
- 路径代价评估
- 管线分析
4)拓扑图表示
矢量地图通常还会组织成图结构:
G = ( V , E ) G=(V,E) G=(V,E)
其中:
- V V V:交叉口、节点、关键点;
- E E E:道路段、连接线、流向边。
因此矢量图不仅能表示几何,还能表示拓扑关系。
10.3 主要生成方式与系统链路
| 阶段 | 输入 | 输出 | 典型方法 |
|---|---|---|---|
| 数据来源 | 图纸、遥感、点云、栅格地图、感知结果 | 原始空间信息 | GIS、SLAM、遥感、标注 |
| 几何提取 | 原始数据 | 点线面对象 | 边界提取、轮廓追踪、矢量化 |
| 拓扑组织 | 几何对象 | 图结构 | 邻接分析、连通构图 |
| 属性绑定 | 几何+业务字段 | 结构化矢量地图 | GIS 属性表、交通属性 |
| 发布应用 | 矢量数据 | 可查询地图 | GeoJSON、Shapefile、Lanelet2 |
系统链路的直观理解
原始空间数据
↓
边界/中心线/区域提取
↓
点线面矢量化
↓
拓扑与属性组织
↓
矢量图
10.4 相关的核心与经典算法
| 算法类别 | 核心算法/方法 | 主要作用 |
|---|---|---|
| 边界提取 | Canny、轮廓追踪、Marching Squares | 从图像或栅格中提取边界 |
| 矢量化 | Polygonization、Douglas-Peucker | 将离散边界转为几何对象 |
| 拓扑构图 | 邻接分析、图构建 | 建立点线面拓扑 |
| GIS 空间分析 | Buffer、Overlay、Intersection | 几何与区域运算 |
| 路网生成 | Centerline Extraction、Skeletonization | 恢复道路/通道中轴线 |
10.5 信息量
【含有】
| 信息类别 | 具体内容 | 通俗解释 |
|---|---|---|
| 几何轮廓信息 | 点线面对象 | 很适合表达结构边界 |
| 拓扑关系信息 | 连通、邻接、包含关系 | 适合图分析 |
| 属性信息 | 名称、类型、编号、规则字段 | 便于业务系统使用 |
| 可编辑性 | 几何对象可直接修改 | 比栅格图更灵活 |
【缺乏】
| 缺失类别 | 具体表现 | 原因 |
|---|---|---|
| 高密度细节 | 不适合表达复杂表面细节 | 矢量图偏抽象表达 |
| 真实纹理信息 | 不保存像素级外观 | 它不是影像图 |
| 三维立体信息 | 大多数矢量图主要是二维或 2.5D | 原生更适合平面空间表达 |
10.6 应用场景
| 场景 | 作用 |
|---|---|
| GIS | 行政边界、道路、水系等空间对象管理 |
| 自动驾驶 | 表达车道中心线、边界和路网拓扑 |
| 建筑平面组织 | 房间边界、墙线、功能区表达 |
| 资产管理 | 管线、设施、区域边界表达 |
| 轻量地图发布 | 适合网页和移动端加载 |
10.7 优缺点
【优点】
| 优点 | 说明 |
|---|---|
| 表达简洁 | 用少量几何对象表示较大空间结构 |
| 可编辑性强 | 便于人工修订和规则维护 |
| 拓扑友好 | 很适合图分析与规划 |
| 工程成熟 | GIS 与交通行业大量使用 |
【缺点】
| 缺点 | 说明 |
|---|---|
| 细节表达弱 | 不适合真实世界高保真外观表达 |
| 自动化提取有难度 | 从复杂感知数据到高质量矢量并不简单 |
| 对自由形态支持有限 | 复杂自然形态矢量化成本高 |
十一、语义地图

11.1 定义与原理
什么是语义地图?
语义地图(Semantic Map)是在几何地图之上,进一步加入 “这是什么、有什么功能、彼此什么关系” 的地图。
如果说普通几何地图回答的是:
- 东西在哪里?
- 长什么样?
- 能不能走?
那么语义地图进一步回答:
- 这是墙、门、桌子还是车辆?
- 这是车道线、停止线还是人行道?
- 这个区域是厨房、客厅还是机房?
- 这个物体是可通行障碍物,还是需要重点关注的目标?
因此,语义地图的本质是:
把“几何世界”升级为“可理解世界”。
11.2 数学表达与基本公式理论
1)几何+语义联合表示
语义地图可抽象表示为:
M = { ( g i , y i , a i ) } i = 1 N \mathcal{M}=\{(\mathbf{g}_i, y_i, \mathbf{a}_i)\}_{i=1}^{N} M={(gi,yi,ai)}i=1N
其中:
- g i \mathbf{g}_i gi:几何单元(点、体素、面、对象等);
- y i y_i yi:语义类别标签;
- a i \mathbf{a}_i ai:附加属性,如置信度、功能、状态等。
这说明:
语义地图不是替代几何地图,而是在几何单元上附加“意义”。
2)语义概率分布
某个地图单元通常不是一次就被确定类别,而是具有概率分布:
p ( y i = c ∣ z 1 : t ) p(y_i=c \mid z_{1:t}) p(yi=c∣z1:t)
其中:
- c c c:类别;
- z 1 : t z_{1:t} z1:t:截至时刻 t t t 的全部观测。
这表示:
系统会随着越来越多的观测,不断更新自己对“这是什么”的判断。
3)贝叶斯语义融合
如果某个单元多次被识别,可以递推更新类别概率:
p ( y ∣ z 1 : t ) ∝ p ( z t ∣ y ) p ( y ∣ z 1 : t − 1 ) p(y|z_{1:t}) \propto p(z_t|y)\, p(y|z_{1:t-1}) p(y∣z1:t)∝p(zt∣y)p(y∣z1:t−1)
这是语义地图里非常基础的思想:
语义标签不是单帧判决,而是跨时间融合的结果。
4)图结构语义关系
语义地图还常用图来表达对象关系:
G = ( V , E ) G=(V,E) G=(V,E)
其中:
- V V V:语义对象,如桌子、门、车辆、车道段;
- E E E:关系,如“相邻”“包含”“可通行”“连接到”“属于”。
这就把地图从“分类”提升到了“关系理解”。
11.3 主要生成方式与系统链路
| 阶段 | 输入 | 输出 | 典型方法 |
|---|---|---|---|
| 几何地图构建 | 点云、栅格、Mesh、图像 | 基础几何地图 | SLAM、重建 |
| 感知识别 | 图像/点云/多模态数据 | 类别预测 | 2D/3D 分割、目标检测 |
| 投影与关联 | 识别结果+地图 | 地图单元语义标签 | 2D-3D 投影、体素融合 |
| 语义融合 | 多帧标签 | 稳定语义地图 | 贝叶斯更新、时序滤波 |
| 关系建模 | 语义对象 | 对象图/场景图 | Scene Graph、拓扑图 |
系统链路的直观理解
几何地图
↓
图像/点云语义识别
↓
语义投影到地图单元
↓
多帧语义融合
↓
关系建模
↓
语义地图
11.4 相关的核心与经典算法
| 算法类别 | 核心算法/方法 | 主要作用 |
|---|---|---|
| 图像语义分割 | FCN、DeepLab、SegFormer、Mask2Former | 获取像素级语义 |
| 点云语义分割 | PointNet++、KPConv、MinkowskiNet | 获取点云/体素语义 |
| 语义 SLAM | SemanticFusion、Panoptic Mapping、Kimera | 将语义融入建图 |
| 场景图构建 | Scene Graph、3D Scene Graph | 建模对象关系 |
| 时序融合 | Bayes fusion、CRF、Kalman-like fusion | 提升语义稳定性 |
11.5 信息量
【含有】
| 信息类别 | 具体内容 | 通俗解释 |
|---|---|---|
| 几何信息 | 位置、形状、结构 | 几何底座仍然存在 |
| 类别信息 | 物体是什么、区域是什么 | 地图开始“有意义” |
| 功能信息 | 可走、危险、可操作、关键设施等 | 可用于任务决策 |
| 关系信息 | 相邻、包含、连接、从属关系 | 能支持场景理解和推理 |
【缺乏】
| 缺失类别 | 具体表现 | 原因 |
|---|---|---|
| 绝对正确的语义 | 误检、漏检、类别混淆 | 感知算法本身存在误差 |
| 完整常识推理 | 不一定知道“为什么这么用” | 语义地图不等于通用知识系统 |
| 长期一致性 | 场景变化后标签可能过期 | 需要持续更新机制 |
11.6 应用场景
| 场景 | 作用 |
|---|---|
| 服务机器人 | 识别桌椅、门、可操作区域 |
| 自动驾驶 | 区分车道、行人区、交通设施 |
| 室内导航 | 按房间功能或物体类别导航 |
| 数字孪生 | 支持资产、空间和业务语义联动 |
| 智能巡检 | 将“设备类别”和“位置”结合起来 |
11.7 优缺点
【优点】
| 优点 | 说明 |
|---|---|
| 场景可理解性强 | 不再只是几何,而是带“意义”的地图 |
| 更利于决策 | 能支撑高层任务规划和人机交互 |
| 可与业务系统联动 | 易和资产管理、调度、运维结合 |
| 是高级智能系统的重要基础 | 几何理解迈向语义理解的关键一步 |
【缺点】
| 缺点 | 说明 |
|---|---|
| 强依赖感知模型质量 | 语义错误会直接传递到地图中 |
| 维护复杂 | 动态场景中的语义会变化 |
| 标注与训练成本高 | 高质量语义系统通常依赖大量数据 |
| 融合链路复杂 | 几何、时序、对象关系都要统一处理 |
总结
12.1 从“几何地图”到“理解地图”
如果把整篇内容串起来看,会发现各种地图并不是彼此孤立的,而是对应着不同层次的世界表达能力。
| 地图类型 | 更核心回答的问题 |
|---|---|
| 稀疏点云地图 | 我能否快速稳定地定位? |
| 稠密点云地图 | 我能否更完整地采样场景几何? |
| Mesh 地图 | 我能否得到连续表面? |
| CAD 地图 | 我能否得到工程可编辑结构? |
| 线地图 | 我能否抓住场景的骨架与结构边界? |
| 压缩后的点云地图 | 我能否在资源受限下仍然保留地图价值? |
| 平面图 | 我能否用二维抽象高效支持导航与布局? |
| 神经网络隐式表征地图 | 我能否用连续函数学习复杂几何与外观? |
| 高精地图 | 我能否支撑车道级定位与规则级驾驶? |
| 矢量图 | 我能否用点线面对象高效组织空间结构? |
| 语义地图 | 我能否让系统理解“这是什么、该怎么用”? |
12.2 一个更通俗但更本质的理解方式
可以把这些地图看成不同抽象层级下的“世界模型”:
- 点云地图 更像采样结果;
- 线地图 更像骨架提炼;
- Mesh 地图 更像连续外壳;
- 平面图/矢量图 更像规则化抽象;
- CAD 地图 更像工程设计模型;
- 高精地图 更像自动驾驶规则底座;
- 语义地图 更像“带意义”的几何世界;
- 神经隐式地图 更像“用函数记住整个场景”。
因此,没有一种地图能在所有维度都最好。
真正合理的问题应该是:
在我的任务目标、算力预算、部署环境和工程链路下,哪一种地图最合适?
12.3 从算法演进角度看地图发展趋势
从底层算法和数学理论的发展路径来看,地图表达大致经历了以下演进:
1)从离散采样到连续表达
- 早期更多是点、线、栅格、体素等离散表示;
- 后来逐渐发展到 Mesh、SDF、NeRF 等连续场表达。
这背后对应的是一个核心诉求:
我们希望地图不只是“有数据”,而是“更像真实空间”。
2)从几何到底层语义
- 早期地图更关注位置、边界、表面;
- 现代系统越来越关注物体类别、交通规则、区域功能、对象关系。
这说明地图正在从“空间表达”走向“空间理解”。
3)从静态地图到底座级世界模型
未来很多系统并不满足于把地图当作一次性产物,而是把地图当作长期运行的世界模型,需要具备:
- 持续更新
- 动态变化建模
- 多模态融合
- 云边协同
- 与业务系统深度联动
12.4 工程视角下如何选地图?
如果从工程落地角度粗略总结,可以这样理解:
| 任务目标 | 更适合的地图类型 |
|---|---|
| 轻量定位 / SLAM | 稀疏点云地图、线地图 |
| 高保真三维重建 | 稠密点云地图、Mesh 地图、神经隐式地图 |
| 室内导航 / 规划 | 平面图、矢量图、语义地图 |
| 自动驾驶 | 高精地图、矢量图、语义地图 |
| 工程设计 / 资产管理 | CAD 地图、矢量图、语义地图 |
| 大规模部署 / 车端加载 | 压缩点云地图、矢量图 |
| 高层智能与任务理解 | 语义地图、场景图、神经世界模型 |
12.5 结语
三维地图从来不只是“把世界存下来”这么简单。
它本质上是在回答一个越来越深的问题:
系统究竟要以什么方式理解世界?
是用点来理解?
是用线来理解?
是用表面来理解?
是用工程几何来理解?
还是用语义、规则、关系,乃至神经函数来理解?
从稀疏点云到语义地图,从二维平面图到神经隐式场,这条路线展示的不是单一技术分支,而是整个智能空间系统不断升级的认知层级:
- 从“看到”
- 到“建出来”
- 到“压缩与组织”
- 到“理解和推理”
- 再到“面向任务决策”
因此,真正先进的地图系统,往往不是只押注某一种表示,而是能够在多种表示之间建立稳定、可解释、可维护、可演进的转换链路。
地图的终点,不只是更精细的几何,而是更完整的世界模型。
深度学习链接
一、总览 / 综述 / 通用参考
COLMAP 官方文档
COLMAP Tutorial
COLMAP GitHub
ORB-SLAM3 GitHub
Open3D 官方文档
Point Cloud Library (PCL) 官方文档
Point Cloud Library (PCL) Tutorials
Point Cloud Library (PCL) GitHub
二、稀疏点云地图 / SfM / 特征地图
COLMAP 官方文档
COLMAP Tutorial
COLMAP GitHub
ORB-SLAM3 GitHub
Open3D Point Cloud Tutorial
Open3D ICP Registration Tutorial
三、稠密点云地图 / Dense Mapping
KinectFusion: Real-Time Dense Surface Mapping and Tracking
KinectFusion: Real-time 3D Reconstruction and Interaction
ElasticFusion: Dense SLAM Without A Pose Graph
Open3D Point Cloud Tutorial
Open3D ICP Registration Tutorial
PCL 官方文档
PCL Tutorials
MeshLab 官网
四、Mesh 地图 / 网格地图 / 表面重建
Poisson Surface Reconstruction
Poisson Surface Reconstruction PDF
Screened Poisson Surface Reconstruction PDF
CGAL Polygon Mesh Processing: User Manual
MeshLab 官网
MeshLab GitHub
PyMeshLab 文档
五、CAD 地图 / 工程几何 / B-rep / 逆向工程
Open CASCADE Technology Overview
Open CASCADE Modeling Algorithms
BRepBuilderAPI Class Reference
Point2CAD: Reverse Engineering CAD Models from 3D Point Clouds
Point2CAD CVPR 2024 PDF
Point2CAD Project Page
Point2CAD GitHub
BrepGaussian: CAD reconstruction from Multi-View Images with Gaussian Splatting
六、线地图 / 线特征地图 / 结构化线地图
LSD: a Line Segment Detector
3D Line Mapping Revisited
3D Line Mapping Revisited CVPR 2023 PDF
LIMAP Microsoft Research 页面
IDLL: Inverse Depth Line based Visual Localization in Challenging Indoor Environments
Towards Light-weight and Real-time Line Segment Detection (M-LSD)
七、压缩后的点云地图 / Point Cloud Compression
Draco 官网
Draco GitHub
Draco Bitstream Specification
Mapbox Vector Tile Specification
Geometry-based Point Cloud Compression Test Model (TMC13)
Video-based Point Cloud Compression Test Model (TMC2)
Point Cloud Compression (V-PCC, G-PCC & branches)
3D Point Cloud Compression: A Survey
Point Cloud Compression and Objective Quality Assessment
An Introduction to Point Cloud Compression Standards
八、平面图 / Floor Plan / 室内布局地图
LaLaLoc++: Global Floor Plan Comprehension for Layout-based Localization in Unseen Environments
PALMS+: Modular Image-Based Floor Plan Localization Leveraging Depth Foundation Model
Supercharging Floorplan Localization with Semantic Rays
FloorPlanActiveLocalization GitHub
九、神经网络隐式表征的地图 / Neural Implicit Maps / NeRF-SLAM
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
NeRF Project Page
iMAP: Implicit Mapping and Positioning in Real-Time
iMAP GitHub(复现版)
NICE-SLAM Project Page
NICE-SLAM GitHub
vMAP GitHub
NeuraLoc: Visual Localization in Neural Implicit Map with Dual Complementary Features
awesome-Implicit-NeRF-SLAM
十、高精地图 / HD Map / 自动驾驶地图
Lanelet2 GitHub
ASAM OpenDRIVE 标准页
ASAM OpenDRIVE 最新规范
Autoware Lanelet2 扩展文档
Autoware Lanelet2 Format Extension
Monocular Localization with Vector HD Map (MLVHM)
VectorMapNet: End-to-end Vectorized HD Map Learning
十一、二维导航地图 / Occupancy Grid / 2D Navigation Map
High Resolution Maps from Wide Angle Sonar
OctoMap 官网
OctoMap API Documentation
OctoMap GitHub
Cartographer ROS 文档
Cartographer ROS API 文档
Nav2 Map Server 文档
nav2_map_server ROS 文档
Nav2 with SLAM 教程
十二、矢量图 / Vector Map / GIS Vector Representation
OpenStreetMap Wiki
OpenStreetMap Elements
OpenStreetMap Node
OpenStreetMap Way
OpenStreetMap Relation
OpenStreetMap Map Features
OpenStreetMap Downloading Data
Mapbox Vector Tile Specification GitHub
Mapbox Vector Tile Specification 官网
Mapbox Vector Tiles Standards
十三、语义地图 / Semantic Map / Semantic Localization
Semantic Visual Localization CVPR 2018 PDF
A Light-Weight Semantic Map for Visual Localization towards Autonomous Driving
SemanticKITTI 官网
SemanticKITTI 论文
SemanticKITTI ICCV 2019 PDF
SemanticKITTI API
Vision-based Mapping of Lane Semantics and Topology for Autonomous Driving
十四、神经渲染 / 3DGS / 新型地图表达
3D Gaussian Splatting for Real-Time Radiance Field Rendering
3D Gaussian Splatting Official Project Page
3D Gaussian Splatting Official GitHub
A Survey on 3D Gaussian Splatting
awesome-3D-gaussian-splatting
gsplat: An Open-Source Library for Gaussian Splatting
gsplat GitHub
gsplat Documentation
Nerfstudio Documentation
Splatfacto (Nerfstudio)
Introduction to 3D Gaussian Splatting (Hugging Face Blog)
LearnOpenCV: 3D Gaussian Splatting Explained
SuGaR GitHub
十五、 工程参考
Open3D Point Cloud Tutorial
Open3D Tensor PointCloud Tutorial
PCL Walkthrough
MeshLab 官网
PyMeshLab 文档
Cartographer ROS 文档
Nav2 Map Server 文档
Open CASCADE Technology Overview
CGAL Polygon Mesh Processing: User Manual
更多推荐


所有评论(0)