new_games_101

第10章:成像系统

本章深入探讨计算机图形学中的成像系统,从物理相机模型到人类视觉感知。我们将学习如何准确模拟真实世界的成像过程,理解光场的数学表示,以及颜色科学的基础理论。这些知识对于创建真实感图像、设计高级渲染算法以及理解人类视觉系统至关重要。

10.1 相机与透镜模型

10.1.1 针孔相机模型

针孔相机是最简单的成像模型,虽然在现实中很少使用,但它是理解复杂相机系统的基础。

基本原理

几何光学基础: 针孔成像遵循直线传播原理。考虑一个位于原点的针孔,成像平面位于$z = -f$处:

解得像点坐标: \(x = -f\frac{X}{Z}, \quad y = -f\frac{Y}{Z}\)

负号表示成像是倒立的。为了方便,通常将成像平面放在$z = f$前方,得到: \(x = f\frac{X}{Z}, \quad y = f\frac{Y}{Z}\)

透视投影的数学描述: 世界坐标系中的点 $\mathbf{X}_w = [X_w, Y_w, Z_w]^T$ 需要先变换到相机坐标系: \(\mathbf{X}_c = \mathbf{R}\mathbf{X}_w + \mathbf{t}\)

然后投影到图像平面: \(\begin{aligned} x &= f\frac{X_c}{Z_c} \\ y &= f\frac{Y_c}{Z_c} \end{aligned}\)

其中 $(X_c, Y_c, Z_c)$ 是相机坐标系中的坐标。

归一化图像平面: 定义归一化图像平面在$z = 1$处,归一化坐标为: \(x_n = \frac{X_c}{Z_c}, \quad y_n = \frac{Y_c}{Z_c}\)

物理图像坐标与归一化坐标的关系: \(x = f \cdot x_n, \quad y = f \cdot y_n\)

像素坐标系: 实际数字图像使用离散的像素坐标$(u, v)$: \(\begin{aligned} u &= \frac{x}{p_x} + c_x = \frac{f}{p_x} \cdot \frac{X_c}{Z_c} + c_x \\ v &= \frac{y}{p_y} + c_y = \frac{f}{p_y} \cdot \frac{Y_c}{Z_c} + c_y \end{aligned}\)

其中:

齐次坐标表示: 使用齐次坐标,投影过程可以表示为线性变换: \(s\begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \mathbf{K}[\mathbf{R}|\mathbf{t}]\begin{bmatrix} X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix}\)

其中 $s = Z_c$ 是尺度因子。

投影矩阵分解: \(\mathbf{P} = \mathbf{K}[\mathbf{R}|\mathbf{t}] = \mathbf{K}\mathbf{R}[\mathbf{I}|\mathbf{R}^T\mathbf{t}]\)

其中内参矩阵: \(\mathbf{K} = \begin{bmatrix} f_x & s & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix}\)

外参矩阵

投影矩阵的性质

  1. 维度:$\mathbf{P}$是3×4矩阵,秩为3
  2. 零空间:维度为1,对应相机中心$\mathbf{C}$,满足$\mathbf{P}\mathbf{C} = \mathbf{0}$
  3. 相机中心:$\mathbf{C} = -\mathbf{R}^T\mathbf{t}$(世界坐标系)
  4. 主轴方向:相机的光轴方向为$\mathbf{R}^T[0, 0, 1]^T$
  5. 保持直线:3D直线投影后仍为2D直线(或点)
  6. 不保持平行:平行线投影后会相交于消失点(除非平行于成像平面)

逆投影(反投影): 给定图像点$(u, v)$,对应的3D射线方向(相机坐标系): \(\mathbf{d}_c = \mathbf{K}^{-1}\begin{bmatrix} u \\ v \\ 1 \end{bmatrix}\)

世界坐标系中的射线: \(\mathbf{X}_w(\lambda) = \mathbf{C} + \lambda \mathbf{R}^T\mathbf{d}_c\)

其中$\lambda > 0$是射线参数。

消失点与消失线

针孔相机的局限性

  1. 光通量:孔径极小,进光量不足,需要长时间曝光
  2. 衍射效应:孔径过小时衍射会降低图像质量
  3. 最优孔径:约为$d_{opt} = \sqrt{2.44\lambda L}$,其中$\lambda$是波长,$L$是物距
  4. 实用性:实际相机使用透镜系统增加进光量

10.1.2 薄透镜模型

薄透镜模型更接近真实相机,引入了有限孔径和景深效果。

透镜制造者方程: 对于半径为$R_1$和$R_2$的两个球面,折射率为$n$的薄透镜: \(\frac{1}{f} = (n-1)\left(\frac{1}{R_1} - \frac{1}{R_2}\right)\)

约定:凸面半径为正,凹面半径为负。

高斯透镜方程: \(\frac{1}{f} = \frac{1}{d_o} + \frac{1}{d_i}\)

这个方程描述了物距、像距和焦距之间的基本关系。

特殊情况

牛顿形式: 以焦点为参考: \(x \cdot x' = f^2\)

其中$x = d_o - f$,$x’ = d_i - f$。

横向放大率: \(M = -\frac{d_i}{d_o} = \frac{f}{f - d_o} = \frac{d_i - f}{f}\)

负号表示像是倒立的。

角放大率: \(\gamma = \frac{\tan\theta'}{\tan\theta} = \frac{d_o}{d_i} = -\frac{1}{M}\)

其中$\theta$和$\theta’$是入射和出射光线与光轴的夹角。

光圈与f数

有效f数: 当对焦在有限距离时: \(N_{eff} = N(1 + M) = N\left(1 + \frac{d_i - f}{f}\right)\)

这在微距摄影中特别重要。

景深的精确计算: 景深是指在成像平面上产生可接受清晰图像的物体深度范围。

超焦距: \(H = \frac{f^2}{Nc} + f \approx \frac{f^2}{Nc}\)

对于大多数情况,$f \ll \frac{f^2}{Nc}$,所以可以简化。

近景深界限: \(D_n = \frac{d(H-f)}{H + d - 2f} \approx \frac{Hd}{H + d}\)

远景深界限: \(D_f = \frac{d(H-f)}{H - d} \approx \frac{Hd}{H - d}\)

景深总量: \(\text{DOF} = D_f - D_n = \frac{2Hd^2(H-f)}{H^2 - d^2} \approx \frac{2Hd^2}{H^2 - d^2}\)

特殊情况

  1. 当$d = H$时,$D_f \to \infty$,远景深无限远
  2. 当$d \ll H$时,$\text{DOF} \approx \frac{2d^2Nc}{f^2}$
  3. 当$d \gg H$时,$\text{DOF} \approx \frac{2HNc}{f}$

景深的实用规则

  1. 景深与光圈数成正比:$\text{DOF} \propto N$
  2. 景深与焦距平方成反比:$\text{DOF} \propto \frac{1}{f^2}$(远距离)
  3. 景深与对焦距离平方成正比:$\text{DOF} \propto d^2$(近距离)

弥散圆与模糊: 对于物距为$d_o’$的点,其在对焦平面上形成的弥散圆直径: \(b = \frac{D \cdot |d_i - d_i'|}{d_i'} = \frac{f}{N} \cdot \left|\frac{d_i}{d_i'} - 1\right|\)

使用透镜方程: \(b = \frac{f^2}{N} \cdot \left|\frac{1}{d_o} - \frac{1}{d_o'}\right|\)

弥散圆的角度大小: 从物体看,弥散圆的角度大小为: \(\theta_b = \frac{b \cdot d_o}{d_i \cdot d_o'} = \frac{D}{d_o'} \cdot \left|1 - \frac{d_o'}{d_o}\right|\)

点扩散函数(PSF): 理想薄透镜的PSF在焦外是均匀圆盘: \(\text{PSF}(x, y) = \begin{cases} \frac{1}{\pi (b/2)^2} & \text{if } x^2 + y^2 \leq (b/2)^2 \\ 0 & \text{otherwise} \end{cases}\)

实际应用考虑

  1. 弥散圆容许度:通常取传感器对角线的$1/1500$到$1/1000$
  2. 像素尺寸限制:弥散圆小于2倍像素尺寸时被认为清晰
  3. 衍射极限:当$N > \frac{f}{1.22\lambda}$时,衍射效应超过弥散圆

10.1.3 厚透镜与透镜组

实际相机镜头由多个透镜元件组成,需要考虑更复杂的光学系统。

基主点系统: 厚透镜的完整描述需要六个基主点:

主点和节点的物理意义

重要性质

  1. 当前后介质相同时(如空气),主点和节点重合
  2. 浸没透镜中,$HN = \frac{n_1 - n_3}{n_3}f$,$H’N’ = \frac{n_3 - n_1}{n_1}f’$

厚透镜的基本参数: 对于半径为$R_1$和$R_2$,厚度为$t$,折射率为$n$的厚透镜:

光焦度: \(P = P_1 + P_2 - \frac{t}{n}P_1 P_2\)

其中:

等效焦距: \(f = \frac{1}{P} = \frac{nR_1R_2}{(n-1)[n(R_2-R_1) + t(n-1)]}\)

主点位置

组合透镜系统的矩阵方法: 使用ABCD矩阵(光线传输矩阵): \(\begin{bmatrix} y_2 \\ \theta_2 \end{bmatrix} = \begin{bmatrix} A & B \\ C & D \end{bmatrix} \begin{bmatrix} y_1 \\ \theta_1 \end{bmatrix}\)

基本元件的ABCD矩阵

  1. 自由空间传播: \(\mathbf{M}_{\text{space}} = \begin{bmatrix} 1 & d \\ 0 & 1 \end{bmatrix}\)

  2. 薄透镜: \(\mathbf{M}_{\text{lens}} = \begin{bmatrix} 1 & 0 \\ -1/f & 1 \end{bmatrix}\)

  3. 球面折射: \(\mathbf{M}_{\text{refr}} = \begin{bmatrix} 1 & 0 \\ \frac{n_1-n_2}{R n_2} & \frac{n_1}{n_2} \end{bmatrix}\)

系统矩阵的级联: \(\mathbf{M}_{\text{total}} = \mathbf{M}_n \cdot \mathbf{M}_{n-1} \cdot ... \cdot \mathbf{M}_2 \cdot \mathbf{M}_1\)

从系统矩阵提取参数

两透镜系统的详细分析: 两个焦距为$f_1$和$f_2$,间距为$d$的薄透镜:

\[\mathbf{M} = \begin{bmatrix} 1 & 0 \\ -1/f_2 & 1 \end{bmatrix} \begin{bmatrix} 1 & d \\ 0 & 1 \end{bmatrix} \begin{bmatrix} 1 & 0 \\ -1/f_1 & 1 \end{bmatrix}\] \[= \begin{bmatrix} 1-d/f_1 & d \\ -1/f_1-1/f_2+d/(f_1f_2) & 1-d/f_2 \end{bmatrix}\]

有效焦距: \(\frac{1}{f} = \frac{1}{f_1} + \frac{1}{f_2} - \frac{d}{f_1 f_2}\)

主点位置

焦距位置

特殊配置

  1. 望远镜配置:$d = f_1 + f_2$
    • 系统焦距:$f \to \infty$(无焦系统)
    • 角放大率:$\gamma = -\frac{f_2}{f_1}$
  2. 显微镜配置:$d > f_1 + f_2$
    • 虚像放大
    • 总放大率:$M = M_1 \times M_2$
  3. 4f系统:$d = 2(f_1 + f_2)$,且$f_1 = f_2 = f$
    • 单位放大率($M = -1$)
    • 用于僅里叶变换和空间滤波

多元件系统的设计考虑

  1. 表面数量优化:每个空气-玻璃界面都会引入反射损失
  2. 玻璃选择:不同折射率和色散特性的组合
  3. 机械约束:总长度、重量、成本的平衡

像差类型与特征

  1. 球差(Spherical Aberration)
    • 不同入射高度的光线聚焦位置不同
    • 纵向球差:$\Delta s’ = s’{\text{marginal}} - s’{\text{paraxial}}$
    • 可通过非球面透镜或透镜组合校正
  2. 彗差(Coma)
    • 离轴点光源成像为彗星状
    • 与入射角的三次方成正比
    • 正弦条件:$n y \sin u = n’ y’ \sin u’$
  3. 像散(Astigmatism)
    • 子午面和弧矢面的聚焦位置不同
    • 像散差:$\Delta s’ = s’_T - s’_S$
    • 产生椭圆形的点扩散函数
  4. 场曲(Field Curvature)
    • 平面物体成像在曲面上
    • Petzval曲率:$\rho_P = \sum \frac{1}{n_i f_i}$
    • 可通过场镜校正
  5. 畸变(Distortion)
    • 影响几何形状但不影响清晰度
    • 桶形畸变:$r’ = r(1 - kr^2)$
    • 枕形畸变:$r’ = r(1 + kr^2)$
  6. 色差(Chromatic Aberration)
    • 纵向色差:不同波长焦距不同
    • 横向色差:不同波长放大率不同
    • 使用不同色散材料组合消除

Seidel像差系数: 对于三阶像差,可用五个Seidel系数描述:

10.1.4 径向畸变模型

实际镜头的畸变主要包括径向和切向畸变,这些畸变需要在图像处理中进行校正。

径向畸变: 由透镜的径向对称性引起,使得图像中心和边缘的放大率不同。

\[\begin{aligned} x_d &= x_u(1 + k_1r^2 + k_2r^4 + k_3r^6) \\ y_d &= y_u(1 + k_1r^2 + k_2r^4 + k_3r^6) \end{aligned}\]

切向畸变: 由透镜和成像平面不完全平行引起,也称为偏心畸变。

\[\begin{aligned} x_d &= x_u + [2p_1x_uy_u + p_2(r^2 + 2x_u^2)] \\ y_d &= y_u + [p_1(r^2 + 2y_u^2) + 2p_2x_uy_u] \end{aligned}\]

其中 $r^2 = x_u^2 + y_u^2$,$(x_u, y_u)$ 是归一化的未畸变坐标。

完整的畸变模型: 组合径向和切向畸变: \(\begin{aligned} x_d &= x_u(1 + k_1r^2 + k_2r^4 + k_3r^6) + [2p_1x_uy_u + p_2(r^2 + 2x_u^2)] \\ y_d &= y_u(1 + k_1r^2 + k_2r^4 + k_3r^6) + [p_1(r^2 + 2y_u^2) + 2p_2x_uy_u] \end{aligned}\)

畸变校正流程

  1. 将像素坐标转换为归一化坐标:$(x_u, y_u) = ((u-c_x)/f_x, (v-c_y)/f_y)$
  2. 计算径向距离:$r^2 = x_u^2 + y_u^2$
  3. 应用畸变模型得到$(x_d, y_d)$
  4. 转换回像素坐标:$(u_d, v_d) = (f_x x_d + c_x, f_y y_d + c_y)$

高级畸变模型

10.2 光场理论

10.2.1 光场的数学表示

光场(Light Field)描述空间中所有位置、所有方向的光线分布。这个概念最早由Faraday在1846年提出,现代计算机图形学中广泛应用于渲染和摄影。

5D全光函数: \(L(x, y, z, \theta, \phi)\)

表示空间位置 $(x, y, z)$ 处方向 $(\theta, \phi)$ 的光线辐射度。

其他表示方式

4D光场参数化(双平面参数化): 在自由空间中(无遮挡),光线可以用两个平面上的交点表示: \(L(u, v, s, t)\)

其中 $(u, v)$ 和 $(s, t)$ 分别是两个平行平面上的坐标。

光线方程: 从$(u, v, 0)$到$(s, t, 1)$的光线可以参数化为: \(\mathbf{r}(\tau) = (1-\tau)(u, v, 0) + \tau(s, t, 1)\)

其他参数化方式

  1. 球面参数化:使用球面坐标表示光线方向
  2. 平面+半球参数化:适合表示表面光场
  3. 相机内参数化:使用相机参数表示多视点图像

光场的性质

  1. 常数性:在自由空间中,沿光线辐射度不变
  2. 对称性:$L(u, v, s, t) = L(s, t, u, v)$
  3. 线性性:多个光源的光场可以叠加

10.2.2 光场采样与重建

奈奎斯特采样定理应用: 为了完整重建光场,需要满足空间和角度的采样要求。

其中 $\lambda$ 是波长,$D$ 是孔径,$z$ 是深度。

采样密度分析

光场相机原理

传统设计

光场采集的数学模型: 微透镜下的像素$(p, q)$记录的光场值: \(I(i, j, p, q) = \int\int L(i\Delta_u, j\Delta_v, p\Delta_s, q\Delta_t) \cdot A(p, q) \, ds \, dt\)

其中$(i, j)$是微透镜索引,$A(p, q)$是像素响应函数。

其他采集方法

  1. 相机阵列:使用多个相机从不同视点拍摄
  2. 移动相机:单相机在不同位置拍摄
  3. 编码孔径:使用特殊图案的孔径掩模
  4. 时间复用:使用可编程孔径或快门

光场重建算法

  1. 插值方法
    • 最近邻插值
    • 双线性插值
    • 高阶样条插值
  2. 基于深度的重建
    • 估计场景深度
    • 根据深度投影光线
    • 处理遮挡和边界
  3. 压缩感知重建
    • 利用光场的稀疏性
    • 使用字典学习或深度学习

10.2.3 光场渲染与应用

数字重聚焦: 光场最重要的应用之一是后期重聚焦。通过对光场进行剪切和积分操作:

\[I_\alpha(x', y') = \iint L\left(\frac{x'}{\alpha}, \frac{y'}{\alpha}, x' - u\frac{1-\alpha}{\alpha}, y' - v\frac{1-\alpha}{\alpha}\right) du dv\]

其中 $\alpha$ 是重聚焦参数:

剪切变换的几何解释: 重聚焦操作对应于光场的剪切变换: \(\begin{bmatrix} u' \\ v' \\ s' \\ t' \end{bmatrix} = \begin{bmatrix} 1 & 0 & \alpha & 0 \\ 0 & 1 & 0 & \alpha \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} u \\ v \\ s \\ t \end{bmatrix}\)

合成孔径: 通过组合不同视角的子图像,可以:

孔径函数设计

傅里叶切片定理: 光场的傅里叶变换中,不同深度的重聚焦图像对应于4D频域中的2D切片。

定理陈述: 重聚焦图像的频谱是光场频谱的一个2D切片: \(\hat{I}_\alpha(\Omega_x, \Omega_y) = \hat{L}(\Omega_x, \Omega_y, -\alpha\Omega_x, -\alpha\Omega_y)\)

应用意义

  1. 频域滤波可以实现特定深度的增强
  2. 快速重聚焦算法设计
  3. 深度估计的频域方法

其他光场应用

  1. 视点合成:生成新的视角图像
  2. 超分辨率:利用多视角信息提高分辨率
  3. 材质识别:利用BRDF信息
  4. 三维重建:从光场恢复几何

10.2.4 光场压缩与传输

光场数据量巨大,高效的压缩和传输方法至关重要。

数据量分析

维度降低策略

  1. 基于深度的分层表示
    • 将场景分解为多个深度层
    • 每层使用纹理+透明度表示
    • 层数远小于角度样本数
  2. 稀疏采样与插值
    • 利用光场的平滑性
    • 自适应采样:边缘密集,平滑区域稀疏
    • 使用高质量插值算法重建
  3. 基于字典的压缩
    • 学习光场块的字典表示
    • 稀疏编码:$\mathbf{l} = \mathbf{D}\mathbf{\alpha}$
    • 字典学习:K-SVD、MOD算法

光场编码技术

利用相关性

视差补偿预测: \(L(u+\Delta u, v+\Delta v, s, t) \approx L(u, v, s-d\Delta u, t-d\Delta v)\)

其中$d$是视差,与深度成反比。

多尺度表示

  1. 小波变换
    • 4D小波分解
    • 保留重要系数
    • 量化和编码
  2. 分层表示
    • 基础层:低分辨率全光场
    • 增强层:高频细节
    • 渐进式传输

实时传输优化

新兴压缩方法

  1. 深度学习方法
    • 自编码器网络
    • 生成对抗网络(GAN)
    • 神经辐射场(NeRF)
  2. 隐式表示
    • 将光场表示为神经网络
    • 极高的压缩率
    • 连续表示,可任意分辨率采样

10.3 颜色科学与感知

10.3.1 人类视觉系统

光感受器

光谱响应函数: \(\bar{x}(\lambda), \bar{y}(\lambda), \bar{z}(\lambda)\)

CIE 1931标准观察者匹配函数。

10.3.2 色彩空间与变换

CIE XYZ色彩空间: \(\begin{aligned} X &= \int_{380}^{780} S(\lambda)\bar{x}(\lambda)d\lambda \\ Y &= \int_{380}^{780} S(\lambda)\bar{y}(\lambda)d\lambda \\ Z &= \int_{380}^{780} S(\lambda)\bar{z}(\lambda)d\lambda \end{aligned}\)

色度坐标: \(x = \frac{X}{X+Y+Z}, \quad y = \frac{Y}{X+Y+Z}\)

RGB到XYZ变换(sRGB): \(\begin{bmatrix} X \\ Y \\ Z \end{bmatrix} = \begin{bmatrix} 0.4124 & 0.3576 & 0.1805 \\ 0.2126 & 0.7152 & 0.0722 \\ 0.0193 & 0.1192 & 0.9505 \end{bmatrix} \begin{bmatrix} R \\ G \\ B \end{bmatrix}\)

10.3.3 感知均匀色彩空间

CIELAB(Lab*): \(\begin{aligned} L^* &= 116f(Y/Y_n) - 16 \\ a^* &= 500[f(X/X_n) - f(Y/Y_n)] \\ b^* &= 200[f(Y/Y_n) - f(Z/Z_n)] \end{aligned}\)

其中: \(f(t) = \begin{cases} t^{1/3} & \text{if } t > \delta^3 \\ \frac{t}{3\delta^2} + \frac{4}{29} & \text{otherwise} \end{cases}\)

$\delta = 6/29$

色差计算: \(\Delta E_{ab}^* = \sqrt{(\Delta L^*)^2 + (\Delta a^*)^2 + (\Delta b^*)^2}\)

10.3.4 色彩管理与校准

ICC色彩配置文件

色域映射

  1. 感知渲染(Perceptual)
  2. 相对色度(Relative Colorimetric)
  3. 绝对色度(Absolute Colorimetric)
  4. 饱和度(Saturation)

显示器校准

10.3.5 高动态范围与色调映射

对数感知模型: 人眼对亮度的感知近似对数关系: \(L_{\text{perceived}} = k \log(L_{\text{physical}} + \epsilon)\)

色调映射算子

Reinhard算子: \(L_d = \frac{L_w(1 + L_w/L_{white}^2)}{1 + L_w}\)

其中 $L_w$ 是世界亮度,$L_{white}$ 是映射到白色的亮度值。

基于梯度域的方法: 通过压缩亮度梯度来保持局部对比度: \(\nabla L_d = \Phi(\nabla L_w)\)

其中 $\Phi$ 是梯度衰减函数。

本章小结

本章系统地介绍了计算机图形学中的成像系统,涵盖了从物理相机模型到人类视觉感知的完整知识体系。

关键概念回顾

相机模型

光场理论

颜色科学

重要公式汇总

  1. 超焦距:$H = \frac{f^2}{Nc} + f$
  2. 组合透镜焦距:$\frac{1}{f} = \frac{1}{f_1} + \frac{1}{f_2} - \frac{d}{f_1 f_2}$
  3. 色度坐标:$x = \frac{X}{X+Y+Z}$, $y = \frac{Y}{X+Y+Z}$
  4. Reinhard色调映射:$L_d = \frac{L_w(1 + L_w/L_{white}^2)}{1 + L_w}$

实际应用要点

  1. 相机标定时需要考虑内参和畸变参数
  2. 光场相机可实现后期重聚焦和视角调整
  3. 色彩管理需要完整的ICC工作流程
  4. HDR成像需要适当的色调映射算法

练习题

基础题

习题10.1:给定一个焦距为50mm的薄透镜,物距为2m,求像距和放大率。

提示 使用薄透镜方程 $\frac{1}{f} = \frac{1}{d_o} + \frac{1}{d_i}$
答案 由薄透镜方程: $$\frac{1}{50} = \frac{1}{2000} + \frac{1}{d_i}$$ $$\frac{1}{d_i} = \frac{1}{50} - \frac{1}{2000} = \frac{40-1}{2000} = \frac{39}{2000}$$ $$d_i = \frac{2000}{39} \approx 51.28 \text{mm}$$ 放大率:$M = -\frac{d_i}{d_o} = -\frac{51.28}{2000} \approx -0.0256$ 负号表示像是倒立的,放大率约为1:39。

习题10.2:已知相机的光圈为f/2.8,焦距为85mm,对焦在5m处,弥散圆直径为0.03mm。计算景深范围。

提示 先计算超焦距 $H = \frac{f^2}{Nc} + f$,然后计算近景深和远景深界限。
答案 超焦距: $$H = \frac{85^2}{2.8 \times 0.03} + 85 = \frac{7225}{0.084} + 85 \approx 86012 + 85 \approx 86.1 \text{m}$$ 近景深界限: $$D_n = \frac{Hd}{H + d - f} = \frac{86100 \times 5000}{86100 + 5000 - 85} \approx 4.74 \text{m}$$ 远景深界限: $$D_f = \frac{Hd}{H - d + f} = \frac{86100 \times 5000}{86100 - 5000 + 85} \approx 5.30 \text{m}$$ 景深范围:4.74m - 5.30m,总景深约0.56m。

习题10.3:将RGB颜色(0.8, 0.6, 0.2)转换为CIE XYZ色彩空间(假设sRGB)。

提示 使用sRGB到XYZ的转换矩阵。
答案 使用转换矩阵: $$\begin{bmatrix} X \\ Y \\ Z \end{bmatrix} = \begin{bmatrix} 0.4124 & 0.3576 & 0.1805 \\ 0.2126 & 0.7152 & 0.0722 \\ 0.0193 & 0.1192 & 0.9505 \end{bmatrix} \begin{bmatrix} 0.8 \\ 0.6 \\ 0.2 \end{bmatrix}$$ 计算得: - $X = 0.4124 \times 0.8 + 0.3576 \times 0.6 + 0.1805 \times 0.2 = 0.5801$ - $Y = 0.2126 \times 0.8 + 0.7152 \times 0.6 + 0.0722 \times 0.2 = 0.6136$ - $Z = 0.0193 \times 0.8 + 0.1192 \times 0.6 + 0.9505 \times 0.2 = 0.2769$

习题10.4:光场相机的微透镜阵列有100×100个微透镜,每个微透镜下有10×10个像素。计算光场的空间和角度分辨率。

提示 空间分辨率对应微透镜数量,角度分辨率对应每个微透镜下的像素数。
答案 - 空间分辨率:100×100 = 10,000个空间样本 - 角度分辨率:10×10 = 100个角度样本 - 总的光场分辨率:10,000 × 100 = 1,000,000个光线样本 - 如果用于2D成像,最大图像分辨率为100×100像素

挑战题

习题10.5:推导径向畸变的逆变换公式。已知畸变模型为 $r_d = r_u(1 + k_1r_u^2)$(仅考虑一阶项),求从畸变坐标到未畸变坐标的变换。

提示 这是一个三次方程,可以使用牛顿迭代法或解析解。
答案 给定 $r_d = r_u(1 + k_1r_u^2)$,需要从 $r_d$ 求 $r_u$。 令 $f(r_u) = r_u(1 + k_1r_u^2) - r_d = 0$ 牛顿迭代法: $$r_{u,n+1} = r_{u,n} - \frac{f(r_{u,n})}{f'(r_{u,n})}$$ 其中 $f'(r_u) = 1 + 3k_1r_u^2$ 迭代公式: $$r_{u,n+1} = r_{u,n} - \frac{r_{u,n}(1 + k_1r_{u,n}^2) - r_d}{1 + 3k_1r_{u,n}^2}$$ 初始值可选 $r_{u,0} = r_d$。 对于小畸变($|k_1r_u^2| \ll 1$),可以使用近似: $$r_u \approx r_d(1 - k_1r_d^2)$$

习题10.6:设计一个算法,从一组不同焦距的图像中恢复场景的深度图。假设相机内参已知,图像已配准。

提示 利用散焦模糊与深度的关系,可以通过分析不同焦距下的模糊程度来估计深度。
答案 深度从散焦(Depth from Defocus)算法: 1. **模糊圆直径与深度关系**: $$b = \frac{|d - d_f|}{d} \cdot \frac{f}{N} \cdot \frac{1}{d_f}$$ 其中 $d$ 是深度,$d_f$ 是对焦深度,$f$ 是焦距,$N$ 是光圈数。 2. **算法步骤**: - 对每个像素位置,测量不同焦距图像中的局部模糊程度 - 使用拉普拉斯算子或梯度幅值作为清晰度度量 - 找到最清晰的焦距设置,对应该点的深度 - 使用模糊程度变化率细化深度估计 3. **优化目标**: $$d^* = \arg\min_d \sum_{i} \|I_i - B(I_{\text{sharp}}, b_i(d))\|^2$$ 其中 $B$ 是模糊算子,$b_i(d)$ 是第 $i$ 张图像在深度 $d$ 处的模糊核大小。 4. **实际考虑**: - 使用多尺度方法提高鲁棒性 - 考虑边缘处的遮挡问题 - 使用正则化保持深度图平滑

习题10.7:推导4D光场的傅里叶切片定理,并解释其在光场处理中的应用。

提示 考虑光场的傅里叶变换和重聚焦操作在频域的表现。
答案 **傅里叶切片定理**: 1. **4D光场的傅里叶变换**: $$\hat{L}(\Omega_x, \Omega_y, \Omega_u, \Omega_v) = \mathcal{F}\{L(x, y, u, v)\}$$ 2. **重聚焦操作**(剪切变换): $$L_\alpha(x, y, u, v) = L(x + \alpha u, y + \alpha v, u, v)$$ 3. **频域表示**: 重聚焦在频域对应于: $$\hat{L}_\alpha(\Omega_x, \Omega_y, \Omega_u, \Omega_v) = \hat{L}(\Omega_x, \Omega_y, \Omega_u - \alpha\Omega_x, \Omega_v - \alpha\Omega_y)$$ 4. **2D切片**: 重聚焦图像的频谱是4D频谱的2D切片: $$\hat{I}_\alpha(\Omega_x, \Omega_y) = \hat{L}(\Omega_x, \Omega_y, -\alpha\Omega_x, -\alpha\Omega_y)$$ **应用**: - 快速重聚焦:在频域进行切片比空域积分更高效 - 深度估计:不同深度对应不同的频域切片角度 - 光场压缩:利用频域稀疏性进行压缩 - 光场滤波:在4D频域设计滤波器

习题10.8:设计一个感知均匀的HDR色调映射算法,要求保持局部对比度并避免光晕效应。

提示 结合人眼感知模型、多尺度分解和梯度域处理。
答案 **多尺度感知色调映射算法**: 1. **对数域转换**: $$L_{\log} = \log(L_w + \epsilon)$$ 2. **多尺度分解**(使用高斯金字塔): $$L_{\log} = B_0 + \sum_{i=1}^{N} D_i$$ 其中 $B_0$ 是基础层,$D_i$ 是细节层。 3. **基础层压缩**: $$B_0' = \frac{B_0 - B_{\min}}{B_{\max} - B_{\min}} \cdot (L_{\max} - L_{\min}) + L_{\min}$$ 4. **细节层增强**(保持局部对比度): $$D_i' = \sigma(|D_i|) \cdot \text{sign}(D_i) \cdot |D_i|^{\gamma_i}$$ 其中 $\sigma$ 是sigmoid函数,$\gamma_i$ 随尺度变化。 5. **重建**: $$L_{\log}' = B_0' + \sum_{i=1}^{N} w_i D_i'$$ 权重 $w_i$ 基于局部对比度自适应调整。 6. **避免光晕**: - 使用边缘停止函数限制跨边缘的平滑 - 梯度域约束:$\|\nabla L_{\log}' - \Phi(\nabla L_{\log})\| < \tau$ 7. **线性域转换**: $$L_d = \exp(L_{\log}') - \epsilon$$ 该算法通过多尺度处理分离全局亮度和局部细节,保持感知均匀性的同时避免光晕效应。

常见陷阱与错误

相机模型相关

陷阱1:混淆物理焦距和等效焦距

陷阱2:径向畸变校正顺序错误

陷阱3:忽略主点偏移

光场处理相关

陷阱4:光场采样不足

陷阱5:光场数据维度混淆

陷阱6:傅里叶域处理边界效应

颜色处理相关

陷阱7:忽略gamma校正

陷阱8:色彩空间转换精度损失

陷阱9:白平衡与色彩空间不匹配

HDR相关

陷阱10:HDR合成中的运动伪影

陷阱11:色调映射参数选择不当

陷阱12:忽略显示设备限制

最佳实践检查清单

相机系统设计

光场系统实现

色彩管理流程

HDR工作流程

性能优化