第 2 章 图像形成 (Image Formation)

      +

      核心结论

      • 几何原语与变换(§2.1):2D / 3D 点 / 线 / 面;齐次坐标 + 4×4 矩阵表达所有仿射 / 透视变换。

      • 相机模型:针孔模型 λ [u, v, 1]ᵀ = K [R | t] [X, Y, Z, 1]ᵀ;K 是内参(焦距 + 主点),R / t 是外参。

      • 光度图像形成(§2.2):成像 = 辐射度 × 反射 × 几何(BRDF);朗伯反射最简单。

      • 数字相机(§2.3):CCD / CMOS 传感器;Bayer 阵列 + 去马赛克;噪声(散粒 / 读取 / 暗电流)。

      • 镜头:针孔 + 透镜;畸变(径向 / 切向);光圈 / 焦距 / 视场。

      本章主旨

      本章是"图像怎么来"——理解相机如何把 3D 世界投影到 2D 图像、像素如何从光子计数得到。后续所有 CV 算法(特征 / 识别 / 重建)都以本章的相机模型为基础;理解后能正确处理去畸变 / 立体 / SLAM 等任务。

      一、核心概念

      本章围绕 6 个核心概念展开:几何原语 → 2D / 3D 变换 → 相机模型 → 光度形成 → 数字相机。

      概念 定义 + 重要性 实现提示

      几何原语与变换

      2D / 3D 点 / 线 / 面;齐次坐标 + 4×4 矩阵表达所有变换。

      §2.1;CV 算法的基础数学。

      针孔相机模型

      3D 点投影到 2D 像素:`λ p = K [R

      t] P`;K 是内参,R / t 是外参。

      §2.1;理解后才能做相机标定 / 三维重建。

      光度图像形成

      像素强度 ∝ 辐射度 × 反射 × 几何;BRDF 描述表面反射特性。

      §2.2;理解后才能做图像分割 / 材质识别。

      数字相机传感器

      CCD / CMOS 传感器;Bayer 阵列 + 去马赛克。

      §2.3;理解后才能处理 raw 图像 / 颜色。

      镜头模型

      针孔 + 透镜;径向 / 切向畸变;薄透镜公式。

      §2.3;相机标定要补偿畸变。

      噪声模型

      散粒噪声(泊松)+ 读取噪声(高斯)+ 暗电流;SNR 与光强平方根成正比。

      二、详细笔记

      2.1 几何原语与变换 (Geometric Primitives)

      What:2D / 3D 点 / 线 / 面;齐次坐标 + 矩阵表达变换。

      Why:CV 中所有几何关系都用 2×2 / 3×3 / 4×4 矩阵表达;理解后才能做相机标定 / 三维重建。

      How

      2D 变换矩阵(§2.1):

      • 平移 T = [[1, 0, tx], [0, 1, ty], [0, 0, 1]]

      • 旋转 R = [[cos θ, -sin θ], [sin θ, cos θ]]

      • 缩放 S =

      • 仿射 = 旋转 + 缩放 + 平移 + 剪切

      • 透视 P = [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1/d, 0]](3D 投影到 2D)

      3D 变换:4×4 齐次矩阵;平移 / 旋转 / 缩放 / 仿射 / 透视。

      齐次坐标的便利
      • 2D 点 (x, y) 表示为 3D (x, y, 1)

      • 3D 点 (x, y, z) 表示为 4D (x, y, z, 1)

      • 透视除法:除以最后一个分量 → 归一化。

      • 矩阵运算统一:所有变换都是矩阵乘法。

      When:相机标定;图像对齐;3D 重建;SLAM。

      Example:相机内外参 K [R|t] 把世界点投影到像素;本质矩阵 E = [t]× R 描述两视图几何。

      2.2 针孔相机模型 (Pinhole Camera Model)

      What:3D 世界点通过针孔投影到 2D 图像平面。

      Why:相机标定 / 三维重建的基础;理解后才能解算相机姿态 / 3D 结构。

      How

      投影公式(§2.1.4):

      \[\lambda \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \underbrace{\begin{bmatrix} f_x & s & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix}}_{\text{内参 } K} \underbrace{\begin{bmatrix} R & t \end{bmatrix}}_{\text{外参}} \begin{bmatrix} X \\ Y \\ Z \\ 1 \end{bmatrix} \end{bmatrix>\]
      • (X, Y, Z):世界坐标。

      • (u, v):像素坐标。

      • K:内参(焦距 f_x, f_y、主点 c_x, c_y、倾斜因子 s)。

      • R, t:外参(旋转 + 平移,描述相机在世界的姿态)。

      • λ:深度缩放因子。

      内参与外参的物理意义
      • 内参 K:相机内部结构(焦距 / 主点 / 像素尺寸)—— 与相机姿态无关。

      • 外参 R, t:相机在世界中的位置 / 朝向。

      • 相机标定 = 求 K + R + t(已知 3D 点 + 2D 像素对应)。

      When:相机标定(OpenCV calibrateCamera);SLAM(ORB-SLAM / VINS-Mono);3D 重建。

      Example:手机相机标定后 K = ;用 cv2.solvePnP 求外参。

      2.3 光度图像形成 (Photometric Image Formation)

      What:像素强度 = 辐射度 × 反射 × 几何 × 镜头参数。

      Why:理解后才能处理颜色 / 光照 / 材质。

      How

      成像模型(§2.2):

      \[I(x, y) = \int_{\text{visible}} L(\theta, \phi) \cdot \rho(\theta, \phi, \theta_r, \phi_r) \cdot \cos\theta \, d\omega \end{bmatrix>\]
      • L:场景辐射度(光源 × 表面)。

      • ρ(BRDF):双向反射分布函数,描述表面反射。

      • cos θ:入射角余弦(朗伯余弦定律)。

      • :立体角。

      BRDF 分类
      • 朗伯反射:漫反射;ρ = 常数 / π;与视角无关。

      • 镜面反射:方向反射;ρ = δ(θ_r - θ);与视角强相关。

      • Phong / Blinn-Phong:经验模型;介于漫反射与镜面反射之间。

      • PBR(物理正确):基于微表面模型(Cook-Torrance / GGX)。

      When:图像分割;材质识别;光照估计;PBR 渲染。

      Example:MatCap / Spherical Harmonics 用低阶 BRDF 近似环境光照;游戏引擎用 PBR 材质。

      2.4 数字相机 (Digital Camera)

      What:CCD / CMOS 传感器把光子转为像素;Bayer 阵列 + 去马赛克得到 RGB。

      Why:理解后才能处理 raw 图像、颜色、噪声。

      How

      成像流程(§2.3):

      1. 光子入射:通过镜头到达传感器。

      2. 光电转换:每个像素点把光子数转为电子数(CCD / CMOS 原理)。

      3. Bayer 阵列 模式(人眼对绿更敏感)。

      4. 去马赛克(demosaicing):插值得到每像素 RGB。

      5. 白平衡 / 颜色空间转换:sRGB / Adobe RGB。

      CCD vs CMOS
      • CCD:电荷在像素间转移读取;噪声低但功耗高;高端相机。

      • CMOS:每像素独立读取;功耗低但噪声高;手机 / 主流相机。

      • 现代:CMOS 占主流(背照式 / 堆叠式降低噪声)。

      When:raw 图像处理;ISP 调优;颜色科学。

      Example:手机拍照 → raw → ISP 处理(去噪 / 去马赛克 / 白平衡)→ JPEG / HEIF 输出。

      2.5 镜头与畸变 (Lens & Distortion)

      What:针孔 + 透镜成像;畸变(径向 / 切向)需标定补偿。

      Why:广角镜头畸变严重;SLAM / 3D 重建必须先校正。

      How

      薄透镜公式(§2.3):

      \[\frac{1}{f} = \frac{1}{d_o} + \frac{1}{d_i} \end{bmatrix>\]
      • f:焦距;d_o:物距;d_i:像距。

      畸变模型(§2.3.3):

      • 径向畸变r' = r (1 + k_1 r² + k_2 r⁴ + …​)(桶形 / 枕形)。

      • 切向畸变:透镜装配误差;p' = p + [2p_1 p_2, p_1² + 3p_2²] · t

      畸变标定的工程意义
      • 广角 / 鱼眼镜头畸变严重;必须先标定。

      • OpenCV cv2.calibrateCamera 返回畸变系数 D = [k1, k2, p1, p2, k3]

      • cv2.undistort 校正畸变后用于特征提取 / 立体匹配。

      When:相机标定;广角图像处理;AR / VR。

      Example:GoPro 鱼眼 180° 视野,畸变系数 k1 可达 -0.3;必须先校正。

      2.6 噪声模型 (Noise Model)

      What:散粒噪声 + 读取噪声 + 暗电流;SNR 与光强平方根成正比。

      Why:低光图像处理必须考虑噪声;图像增强与去噪的物理基础。

      How

      噪声模型(§2.3.4):

      \[\sigma_{\text{total}}^2 = \sigma_{\text{shot}}^2 + \sigma_{\text{read}}^2 + \sigma_{\text{dark}}^2 \end{bmatrix]\]
      • 散粒噪声(泊松):σ² = I(光子数)。

      • 读取噪声(高斯):σ² = σ_read²(与光强无关)。

      • 暗电流(与温度相关):σ² = σ_dark²

      SNR 与光强的关系
      • SNR = I / √(I + σ_read²)

      • 高 ISO 放大信号 → 读取噪声也被放大 → SNR 下降。

      • 低光下,读取噪声主导;高光下散粒噪声主导。

      When:图像去噪;ISO 选择;低光摄影。

      Example:手机夜景模式 = 多帧对齐 + 去噪;每帧独立有噪声,叠加降噪。

      三、关键图表

      视觉图表

      图 2-1
      Figure 1. 图 2-1:针孔相机投影
      图 2-2
      Figure 2. 图 2-2:Bayer 阵列
      图 2-3
      Figure 3. 图 2-3:镜头畸变(径向 / 切向)

      非可视化条目

      非可视化条目(表 / 算法)
      编号 内容摘要

      式 2-1 至 2-15

      投影公式、齐次坐标、BRDF、薄透镜、畸变模型。

      表 2.1

      常见相机标定数据集(Middlebury / KITTI / TUM)。

      列表 2.1-2.x

      OpenCV 相机标定示例代码。

      核心公式对照表

      核心公式对照表
      概念 公式

      针孔投影

      \(\lambda [u, v, 1\)^T = K [R

      t] [X, Y, Z, 1]^T]

      2D 仿射变换

      \(\mathbf{p}' = A \mathbf{p} + \mathbf{t}\)

      3D 仿射变换

      \(\mathbf{P}' = R \mathbf{P} + \mathbf{t}\)

      薄透镜

      \(1/f = 1/d_o + 1/d_i\)

      径向畸变

      \(r' = r(1 + k_1 r^2 + k_2 r^4 + \ldots)\)

      SNR

      四、思维导图

      mindmap
        root((第 2 章 图像形成))
          几何原语
            点线面
            齐次坐标
            变换矩阵
          针孔模型
            内参K
            外参Rt
            投影公式
          光度形成
            BRDF
            朗伯镜面
            辐射度反射
          数字相机
            Bayer阵列
            CCDCMOS
            去马赛克
          镜头畸变
            径向
            切向
            标定
          噪声
            散粒
            读取
            暗电流

      五、重点与易错点

      1. 针孔模型是核心:3D → 2D 投影公式 λp = K[R|t]P;理解后才能做标定 / 重建。

      2. 内参 vs 外参:内参是相机内部结构;外参是相机在世界的姿态;两者独立标定。

      3. Bayer 阵列的 50% 绿:人眼对绿敏感 → Bayer 用 50% 绿、25% 红、25% 蓝。

      4. 去马赛克不是无损:插值会损失细节;raw 图像保留更多细节(专业摄影)。

      5. 畸变校正必须先于特征提取:否则 SIFT / ORB 特征位置不准。

      6. 低光下读取噪声主导:增加 ISO 放大信号但也放大噪声;SNR 不升反降。

      7. Phong / Blinn-Phong 与 PBR:前者是经验模型;后者是物理正确(基于微表面)。

      8. 跨章衔接:第 3 章图像处理用本章噪声模型设计去噪;第 6 章识别用本章 BRDF 做数据增强;第 11 章 SLAM 用本章相机模型。