map_tutorial

第 9 章:从 nadir 到三维——立体像对、倾斜与点云

本章核心: 地图不再仅仅是“铺在桌面上的一张纸”。现实世界是三维的,我们的地图也应当如此。 本章将揭示如何通过“计算几何”的力量,从二维的卫星或无人机照片中“无中生有”地恢复出三维世界。我们将从最基础的视差原理讲起,深入到现代计算机视觉的 SfM 算法,最终构建出能承载智慧城市应用的数字孪生底座。

1. 开篇段落

在前几章中,我们构建的地图世界观主要停留在二维平面(2D)。无论是矢量路网还是卫星底图,本质上都是对地球表面的正射(Nadir)投影。这种视角虽然适合测量水平距离和规导航,但它丢失了一个至关重要的维度——高度(Z)。在正射影像中,我们只能看到建筑的“帽子”(屋顶),却看不见它的“身体”(立面);我们能看到山的轮廓,却无法量化它的起伏。

随着吉林一号等高分卫星星座的成熟以及消费级无人机的普及,获取三维数据不再是国家测绘局的专利。本章将带你跨越维度的门槛,理解立体像对(Stereo Pair)如何利用双眼视觉原理测量地形,倾斜摄影(Oblique Photography)如何捕捉城市侧面纹理,以及运动恢复结构(SfM)算法是如何把成千上万张散乱的照片拼装成精细的城市三维模型(Mesh)的。


2. 核心原理与论述

2.1 视角的革命:从正射到倾斜

正射影像 (Nadir / Orthophoto)

正射影像是视线与地面垂直(90°)拍摄的。

倾斜影像 (Oblique Imagery)

倾斜影像通常由搭载多个镜头的相机系统获取,镜头分别指向垂直、前、后、左、右(通常倾角为 45°)。

ASCII 图解:正射盲区与倾斜互补

       [卫星/正射相机]                      [倾斜相机]
             |                                /   \
             | 视线 (90°)                   / 45° \
             v                            /       \
      +-------------+ (屋顶可见)         v         v
      |  高层建筑   |                  视线A       视线B
      |             |                    \         /
      | (墙面不可见)|                     \       /
------+-------------+------地面       -----+-------+-----
      ^             ^                      ^       ^
     盲区          盲区                  墙面A    墙面B
 (被屋顶遮挡)   (被屋顶遮挡)             (清晰可见)

2.2 立体摄影测量原理

计算机从影像恢复三维的原理,源于生物的双目立体视觉。核心在于捕捉视差(Parallax)

1. 视差与深度的关系

假设我们在两个不同位置拍摄同一个物体。物体在左图中出现在位置 $x_L$,在右图中出现在位置 $x_R$。这两个位置的差值 $d = x_L - x_R$ 就是视差。

基础公式(正摄立体情况): \(Z = \frac{f \cdot B}{d}\)

直观理解

2. 基高比 (B/H Ratio) 的权衡

在卫星或航空摄影中,基线 $B$ 与飞行高度 $H$ 的比值至关重要。

2.3 现代三维重建管线:SfM 与 MVS

传统的摄影测量需要严格的立体像对,而现代计算机视觉引入了自动化程度极高的 SfM-MVS 管线。这是目前主流软件(如 ContextCapture, Metashape, DJI Terra)的核心逻辑。

阶段一:运动恢复结构 (SfM - Structure from Motion)

SfM 的目标是解算每一张照片拍摄时的确切位置和角度,并生成稀疏点云

  1. 特征提取 (Feature Extraction):算法在每张照片中寻找“特征点”(如 SIFT 算子),这些点通常是角点、边缘或纹理丰富的地方。
  2. 特征匹配 (Matching):在不同照片中寻找同一个特征点(同名点)。
  3. 光束法平差 (Bundle Adjustment):这是一个巨大的优化问题。算法通过调整相机位姿和三维点坐标,使得这些三维点投影回照片时,与实际观测点的误差(重投影误差)最小化。
    • 输出:疏点云(Sparse Cloud)+ 相机参数(外参 R/T + 内参 f/cx/cy)。

阶段二:多视立体匹配 (MVS - Multi-View Stereo)

SfM 只有稀疏的点,MVS 的目标是对几乎每一个像素都计算深度,生成致密点云

  1. 极线搜索 (Epipolar Search):利用几何约束,将搜索同名点的范围从“全图”缩小到“一条线”上,极大提高效率。
  2. 深度图计算 (Depth Map):为每一张照片生成深度图。
  3. 点云融合:将所有深度图投影到三维空间,过滤噪点,生成海量的彩色点云。
    • 输出:致密点云(Dense Cloud),通常包含数亿个点。

2.4 数据产品的进阶:DSM, DTM 与 Mesh

从点云到最终的地图产品,还需要经过不同的处理步骤。

1. DSM vs. DTM

这是地形分析中最容易混淆的概念。

\(\text{CHM (冠层高度模型)} = \text{DSM} - \text{DTM}\) (注:CHM 常用于林业,计算树高)

2. 三维网格 (Mesh) 与纹理映射

点云虽然密集,但放大看还是离散的点。为了获得逼真的视觉效果,需要构建 Mesh。


3. 典型应用场景对比

场景 A:吉林一号“全球地形”

场景 B:无人机城市数字孪生


4. 本章小结

  1. 维度提升:立体像对和倾斜摄影利用视差原理,让我们从 2D 影像跨越到 3D 空间。
  2. 算法核心SfM 负责解算相机位置(稀疏重建),MVS 负责生成节(致密重建)。
  3. 数据重叠是关键:没有足够的重叠度(Overlap),就没有视差匹配的基础。
  4. 产品分级
    • 点云:原始测量数据。
    • DSM:地表最外层轮廓(含建筑/树)。
    • DTM:裸地轮廓(去除了地物)。
    • Mesh:可视化的终极形式,兼具几何结构与照片纹理。

5. 常见陷阱与错误 (Gotchas)

1. 弱纹理区域的“空洞”与“乱网”

2. 重叠度不足导致的“断层”

3. 高程基准的混淆(椭球高 vs. 海拔高)

4. 植被穿透的误解


下一章:从三维到街景——采集流程与 Street View API