跳转至

L19 Cameras,Lenses and Light Fields

\[\text{Imaging}=\text{Synthesis}+\text{Capture}\]

小孔成像


Pasted image 20260128164913.png


Pasted image 20260128165140.png

如果没有透镜(lens)或小孔(pinhole)的话,传感器上每个像素收集的是各个方向的的光,即radiance。
在有透镜或小孔的情况下,传感器(Sensor)的每个像素收集到的是irradiance,只接受某个方向的光。
针孔相机得到的结果都是锐利的,没有景深的效果。

1 视场(Field of view, FOV)


Pasted image 20260128165912.png

\[\text{FOV}=2\arctan(\frac{h}{2f})\]

对于特定的传感器大小,减小焦距(focal length)能够增大视场(field of view)

出于历史原因,行业内通常用 35mm 胶片格式(36×24mm) 下的镜头焦距,来指代相机的视角大小
35mm 格式下的焦距示例:

  • 17mm 属于广角镜头,视角约 104°
  • 50mm 属于 “标准” 镜头,视角约 47°
  • 200mm 属于长焦镜头,视角约 12°
    注意!当我们说当前手机的焦距约为 28mm “等效焦距” 时,正是遵循了这一传统约定

2 曝光(Exposure)

\[H=T\times E\]
\[\text{Exposure}=\text{Time}\times\text{Irradiance}\]

曝光时间(Expoosute time,T)由快门(shutter)控制。
Irradiance,E与进入传感器一个感光单元的光线强度有关(Power of light falling on a unit area of sensor)。它由透镜光圈(lens aperture)和焦距(focal length)控制。

3 曝光三要素

光圈大小(Aperture size)

  • 通过打开或关闭光圈来改变f-stop;Change the f-stop by opening/closing the aperture(if camera has iris control)
    快门速度(shutter speed)

  • 改变传感器接受光的时间(change the duration the sensor pixels integrate light)
    感光度(ISO gain)

  • 改变传感器值到数码图片值之间的增益(Change the amplification(analog and/or digital)between sensor values and digital image values)


Pasted image 20260128214142.png

3.1 ISO(Gain)

曝光的第三个变量(ISO 感光度)

  • 胶片摄影:以颗粒感为代价提升感光度
  • 数码摄影:以噪点为代价提升感光度
    • 在模数转换(A/D 转换)前放大信号
    • 线性效果(ISO 200 所需的光线量仅为 ISO 100 的一半)

3.2 光圈(Aperture size)

通常表示为 FNF/N,其中 N 代表光圈值(f-number)
通俗理解:它是圆形光圈孔径的反比(即光圈值越大,实际孔径越小),即表示直径的倒数。

3.3 快门速度(shutter speed)

机械快门的打开和关闭是有一个过程的。开门过长会导致运动模糊(motion blur)。

  • 提示:运动模糊并非总是坏事!
  • 技巧:可以结合抗锯齿(Anti-aliasing)的思路来思考。
    快门速度通常以秒为单位,所以虽然称呼它为“速度”但实际上在日常使用中把它看作时间量,常见的快门速度有1秒、1/2秒、1/4秒等。快门速度越快,时间数字越小,进光量越少。

Side Effect of Shutter Speed
果冻效应(Rolling shutter): 图片中不同的部位是在不同时间获得的(different parts of photo taken at different times)

4 Thin Lens Approximation

实际的透镜并不是理想的(Real Lens Elements Are Not Ideal),这种现象被称为像差(Aberrations)。


Pasted image 20260128220640.png

真实的平凸透镜(球面形状)plano-convex lens (spherical surface shape)。这类透镜无法将光线汇聚到任何一点上。

我们希望摄像机中的透镜是理想的凸透镜,即需要满足下面几个性质


Pasted image 20260128220858.png

  • 所有平行入射到透镜的光线,都会通过其焦点(pass through its focal point)。
  • 所有通过焦点的光线,经过透镜后会变为平行光。
  • 焦距可以任意改变(现实中可以通过相机中的透镜组实现)

Pasted image 20260128221159.png

\[\frac{1}{f}+\frac{1}{z_i}+\frac{1}{z_0}\]

这个公式是高斯光线追踪定理,推导过程如下


Pasted image 20260128221329.png

\[ \begin{align} \frac{h_o}{z_o - f} = \frac{h_i}{f} &\quad \frac{h_o}{f} = \frac{h_i}{z_i - f} \\ \frac{h_o}{h_i} = \frac{z_o - f}{f} &\quad \frac{h_o}{h_i} = \frac{f}{z_i - f} \\ \frac{z_o - f}{f} &= \frac{f}{z_i - f} \\ (z_o - f)(z_i - f) &= f^2 \\ z_o z_i - (z_o + z_i)f + f^2 &= f^2 \\ z_o z_i &= (z_o + z_i)f \\ \frac{1}{f} &= \frac{1}{z_i} + \frac{1}{z_o} \\ \end{align} \]

4.1 弥散圆(Circle of Confusion, CoC)


Pasted image 20260129114455.png

弥散圆(Circle of confusion)的大小与光圈尺寸成正比(proportional to the size of the aperture)。

\[\frac{C}{A} = \frac{d'}{z_i} = \frac{|z_s - z_i|}{z_i}\]

以此光圈越大,CoC越大


Pasted image 20260129115011.png

4.2 Revisiting F-Number

正式定义:镜头的光圈值(f-number) 定义为焦距除以光圈孔径的直径。
真实镜头的常见光圈档位(f-stops):
1.4、2、2.8、4.0、5.6、8、11、16、22、32
档位为 2 的光圈有时写作 f/2,这一写法表明:光圈的绝对孔径直径(A)可通过 焦距(f)除以相对孔径(N) 计算得出(即 A=Nf​)。


Pasted image 20260129115425.png


Pasted image 20260129115523.png

CoC和光圈的F-Number成正比,因此光圈越大,CoC越大

\[C = A \frac{|z_s - z_i|}{z_i} = \frac{f}{N} \frac{|z_s - z_i|}{z_i}\]

4.3 Ray Tracing for Defocus Blur(Thin Lens)


Pasted image 20260129120246.png

(一种可行的)设置流程:

  • 选择传感器尺寸、镜头焦距与光圈大小
  • 选择目标主体的物距 \(z_0\),由这个物距所确定的平面上的物体是最清晰的
  • 通过薄透镜方程计算对应的像距 \(z_i\)​(即传感器到透镜的距离)
    渲染流程:

  • 遍历传感器(实际对应胶片)上的每个像素 \(x'\)

  • 在透镜平面上随机采样点 \(x''\)
  • 可以确定通过透镜的光线会命中聚焦点 \(x'''\)(因为 \(x'''\) 位于焦平面上,可通过像素 \(x'\) 与透镜中心的虚拟光线来确定)
  • 估计光线 \(x''' \to x''\) 上的辐射度(即亮度信息)

4.4 景深(Depth of Field)


Pasted image 20260129151043.png

在一定范围内的CoC足够小,比如小于一个像素的大小,我们就认为这段范围内的物体都是锐利的。这段范围就叫做景深(Depth of Field)

\[\frac{d_N - d_S}{d_N} = \frac{C}{A} \quad \frac{d_S - d_F}{d_F} = \frac{C}{A}\]

光圈值定义

\[N = \frac{f}{A}\]

薄透镜方程(物距与像距)

\[ \begin{align} \frac{1}{D_F} + \frac{1}{d_F} = \frac{1}{f} \\ \frac{1}{D_S} + \frac{1}{d_S} = \frac{1}{f} \\ \frac{1}{D_N} + \frac{1}{d_N} = \frac{1}{f} \end{align} \]

景深定义

\[\text{DOF} = D_F - D_N\]

景深前后界公式

\[\begin{align} D_F = \frac{D_S f^2}{f^2 - N C (D_S - f)} \\ D_N = \frac{D_S f^2}{f^2 + N C (D_S - f)} \end{align}\]

5 Light Field / Lumigraph

5.1 全光函数(The Plenoptic Function)


Pasted image 20260129161330.png

\[P(\theta,\phi,\lambda,t,V_X,V_Y,V_Z)\]
  • 可以重建任何时刻、任何位置、任何波长下的所有可能视角
  • 包含了所有照片、所有电影、所有人曾经见过的一切!它完整地捕捉了我们的视觉现实!对于一个函数来说,这已经很了不起了……
    我们想完整记录一个物体的光场信息,只需要用一个盒子把它包围起来,之后记录它在盒子表面每一点向四面八方射出的光线。

Pasted image 20260129161948.png

这样,我们把广场和全光函数建立起了联系。光场是全光函数的一小部分。
包围盒中的每个位置需要用两个变量来表示。方向也需要用两个变量。因此一共需要4个变量。
根据光场,我们就能得到从任意方向观看物体的样子。

5.2 光场的参数化


Pasted image 20260129162720.png

我们可以使用 \((u,v)\)\((s,t)\) 来描述光场信息(位置和方向)。


Pasted image 20260129163013.png

固定\((u,v)\)上的某个点看向\((s,t)\)平面,可以看到某个视角下的物体形态。
固定\((s,t)\)上的某个点看向\((u,v)\)平面,可以看到某个局部在任意方向上的形态。

5.3 光场摄像机(Light Field Camera)


Pasted image 20260129163751.png

在每个像素的位置利用透镜将不同方向的光线分开记录。这样整个像素阵列就能记录光场信息。


Pasted image 20260129164753.png

图中的光场照相机的一大作用是能够后期调焦。


Pasted image 20260129165133.png


center

如前文提到的,这种光场照相机的原理就是使用微透镜将每个像素位置各个方向的光线分离记录下来。

如何利用光场信息得到普通的相片。方法是只获取某一个方向射向各个像素的光线。改变选定的方向,就相当于改变了“虚拟的”摄像机的位置。


Pasted image 20260129165603.png

光场摄像机的缺点:

  • 分辨率不足
  • 成本高

评论

如果你已登录 GitHub,就可以直接在这里评论。