投影的本质:3D 光线到 2D 光点的降维映射

这个洞察触及了光学成像和计算机视觉最底层的物理约束。

现在把它精确化、数学化,并展开它的推论。

二维线到一维点的投影:

三维立体到二维平面的投影:


一、表述精确化

 "3 维空间的物理反射光信号到 2 维平面的投影",在光学中就是针孔相机模型(Pinhole Camera Model)

plaintext

3D空间中的物体点 P(X,Y,Z)
      │
      │ 反射出一条光线
      ▼
   透镜光心 O
      │
      │ 光线继续直线传播
      ▼
2D传感器平面上的像素 p(u,v)

每一条 3D 空间中的光线,经过投影后,被压缩成 2D 平面上的一个光点(像素)。

数学表达:

\(u = f \cdot \frac{X}{Z}, \quad v = f \cdot \frac{Y}{Z}\)

  • \((X,Y,Z)\) 是 3D 空间坐标;
  • \((u,v)\) 是 2D 像素坐标;
  • f 是焦距;
  • Z 是深度。

注意这个公式:Z 出现在分母上。Z 不同的点,只要 \(X/Z\) 和 \(Y/Z\) 相同,就投影到同一个像素。这就是深度丢失的数学根源。


二、为什么深度 "必然" 丢失:投影的多对一性

这是核心。投影不是一一映射,是多对一映射

plaintext

同一条光线上的所有点(不同深度Z)
    │
    │ 都经过同一个光心
    ▼
投影到同一个像素 p(u,v)

也就是说:

  • 一个近处的小物体,和一个远处的大物体,如果它们在同一条视线上,在 2D 图像上完全无法区分
  • 像素只记录了 "这个方向来了多少光、什么颜色",没有记录光走了多远
  • 从信息论角度:3D→2D 是降维,自由度从 3 降到 2,1 个自由度的信息不可逆地丢失了,这个丢失的自由度就是深度 Z。

这不是算法不够好,是物理约束 —— 只要是 "单视点 + 被动投影",深度就不可能从 2D 图像中唯一恢复。所有单目深度估计都是在 "猜",用先验知识把无穷多解中最可能的那个挑出来。


三、"光线" 与 "光点" 的本质关系

你说的 "光线到光点的投影",可以这样理解:

光线(Light Ray)

  • 是 3D 空间中的一条直线,有方向、有起点;
  • 携带的信息:光谱(颜色)、强度(亮度)、偏振;
  • 不携带距离信息—— 光本身不告诉你它走了多远。

光点(Pixel / 光点)

  • 是 2D 平面上的一个,是光线与传感器平面的交点;
  • 记录的信息:该方向上所有光线的累积光强和颜色
  • 深度信息在投影瞬间被 "压平" 了。

关键洞察:一条光线 = 3D 中的一条 1 维直线,投影后变成 2D 中的一个 0 维点。 这个过程把 "线" 压成了 "点",线上所有点的差异(主要是深度差异)全部消失。


四、"所有光线组成面上的所有点"

你说的 "面",就是图像平面(Image Plane),它是一个 2D 流形:

plaintext

所有从3D空间出发、经过光心、到达传感器的光线
    │
    │ 每条光线与传感器平面有一个交点
    ▼
所有交点的集合 = 2D图像平面(一个连续的面)
    │
    │ 离散化采样后
    ▼
像素阵列(有限个光点)
  • 理论上,图像平面是连续的 2D 面,每个点对应一条视线方向;
  • 实际传感器是离散的,把这个面采样成 \(H \times W\) 个像素;
  • 每个像素对应一个视线方向(锥角),而不是一个精确的点 —— 这也是为什么像素有 "视场角"。

所以图像本质上是:从光心出发的所有视线方向,在 2D 平面上的参数化表示。 每个像素 = 一个视线方向,像素值 = 这个方向上的光信号累积。


五、打破 "多对一":各种深度恢复方案的本质

既然单视点被动投影必然丢失深度,那么所有 "找回深度" 的方案,本质上都是打破投影的多对一性。我把之前讨论的所有方案统一到这个框架下:

方案 1:激光雷达 —— 主动发光,给光线 "打时间戳"

  • 投影的多对一性之所以成立,是因为光线不携带距离信息;
  • 激光雷达主动发射光,并测量光的往返时间,相当于给每条光线打上了时间戳
  • 时间戳 = 距离,于是 "同一条光线上不同距离的点" 可以被区分了;
  • 本质:给光线增加一个维度的信息(时间 / 距离),把多对一变回一对一。

方案 2:双目相机 —— 双视点,用三角约束打破多对一

  • 单视点时,一条光线对应一个像素,线上所有点不可区分;
  • 双视点时,同一个 3D 点在左右图像中各有一个投影,两个视点的两条光线的交点唯一确定了 3D 点的位置
  • 三角几何把 "无穷多解" 约束到 "唯一解";
  • 本质:增加一个视点,用几何约束消除深度歧义。

方案 3:单目深度估计 —— 用先验知识 "猜" 深度

  • 没有额外视点,也没有主动发光,物理上深度信息已经丢失;
  • 靠大量数据学习 "什么样的图像特征对应什么样的深度"(近处物体大、远处物体小、地面纹理渐变等);
  • 这是统计推断,不是物理测量,所以会出错、无绝对尺度;
  • 本质:用先验概率分布,从无穷多解中选最可能的那个。

方案 4:人眼 —— 双目视差 + 调节 + 辐辏 + 经验,多源融合

  • 人眼本质上也是被动投影,也面临同样的深度丢失问题;
  • 但人类进化出了多套机制弥补:双目视差(双视点)、晶状体调节(肌肉张力反馈)、眼球辐辏(转动角度)、单眼经验线索;
  • 本质:生物版的多传感器融合,用多种线索交叉验证深度。

六、一个深刻的推论:2D 图像是 3D 世界的 "有损压缩"

把你的观点再推进一步:

plaintext

3D世界(无限维度信息)
    │
    │ 经过单视点投影(有损压缩)
    ▼
2D图像(丢失了深度维度)
    │
    │ 人眼/算法试图解压(深度估计)
    ▼
恢复的3D感知(有误差、有歧义)
  • 投影是有损压缩,压缩比极高(3D→2D);
  • 解压(深度估计)永远无法 100% 恢复原始信息,因为压缩时已经不可逆地丢失了数据;
  • 这就是为什么 "从单张照片重建 3D 场景" 是一个病态问题(ill-posed problem)—— 理论上有无穷多解。

激光雷达的价值就在于:它不做这种有损压缩,而是直接测量 3D 坐标,保留了完整的深度信息。代价是丢失了颜色和纹理(另一种维度的信息)。


七、哲学层面的延伸

你这个观察其实触及了一个更深刻的问题:我们对世界的感知,本质上都是降维投影。

  • 人眼看到的是 2D 投影,大脑 "脑补" 出 3D;
  • 我们听到的声音是 1D 波形,大脑推断出声源位置和距离;
  • 我们触摸到的是接触面的压力,大脑推断出物体形状;
  • 所有感官都是 "高维世界→低维信号" 的投影,大脑用多感官融合 + 先验经验,重建出一个 "足够用" 的 3D 世界模型。

工程上的多传感器融合(激光 + 相机 + 毫米波 + IMU),本质上就是用多种不同维度的投影,交叉验证,尽可能恢复高维世界的完整信息。这和人类大脑的多感官融合是同一个逻辑。


八、一句话总结

3D→2D 投影的本质,是把 "每条光线(3D 中的 1 维直线)" 压成 "每个光点(2D 中的 0 维点)",所有光点组成图像平面。这个降维过程是多对一的映射,深度信息不可逆地丢失 —— 这不是算法问题,是物理约束。激光雷达通过主动发光给光线打时间戳、双目通过双视点三角约束、单目通过先验推断,都是在用不同方式打破这个多对一性,试图找回丢失的深度维度

Logo

立足具身智能前沿赛道,致力于搭建全球化、开源化、全栈式技术交流与实践共创平台。

更多推荐