跳到主要内容
Sandbox Physics

光学 040 · 成像、仪器与视觉系统

光场相机与显示器

一张光场照片能否任选近处或远处对焦,代价是什么? 能,而且是拍完之后再选。把各个视角的图像错开不同距离再平均,就能对准不同深度,不过每次只有一个深度清晰。代价是分辨率:传感器的像素要分给各个角度,记录的角度越多,每幅图分到的像素越少。

缓存的四维光线数据驱动移位平均重对焦、记录视点重放和子孔径拼图。不透光的目标、一个能看穿的孔和固定的采样总数,让遮挡、随深度倒数变化的视差,以及空间采样和角度采样之间的此消彼长都看得见。

交互模型光场相机与显示器
对焦/近景深度/重放孔径 D,Zn,uviewD,Z_n,u_{\mathrm{view}}0.500.50
角度视图/空间采样/未用采样 Nuv,Nxy,NunusedN_{uv},N_{xy},N_{\mathrm{unused}}50%50\%
几何点支撑跨度与孔径跨度 bn,bf,Bspanb_n,b_f,B_{\mathrm{span}}0.00π0.00\pi
模型适用区间模型适用\text{模型适用}

物理教程

检验光场相机与显示器的物理过程

背景普通照片把穿过孔径各处的光线加在一起。光场则把每条光线的位置和方向都记下来:L=L(u,v,qx,qy)L=L(u,v,q_x,q_y)。前两个坐标表示一个点孔径的位置,后两个是光线朝向场景的斜率。每个孔径位置都拍下一幅完整的视图。三维装置是一组理想的平行相机,并不是真实的微透镜相机。

为什么值得理解一张光场照片能否任选近处或远处对焦,代价是什么?

先抓重点

核心问题
一张光场照片能否任选近处或远处对焦,代价是什么?
一句话直觉
重对焦的做法是:平移各个已记录视图,让来自所选深度的光线对齐,再把线性辐亮度平均:ID(s,t)=1N2∑i,jL ⁣(ui,vj,s−uiD,t−vjD)I_D(s,t)=\frac{1}{N^2}\sum_{i,j}L\!\left(u_i,v_j,s-\frac{u_i}{D},t-\frac{v_j}{D}\right)。改变对焦深度并不会采集新的光线。除非孔径跨度缩到零,一次平移不可能让近景和远景同时清晰。单个点孔径拍下的视图本身没有光学离焦,右侧重放的就是这样一幅视图。

核心数学模型

光线路径、视差和遮挡

x(Z)=u+qxZ,y(Z)=v+qyZ,qx=X−uZ,Δqx=−ΔuZx(Z)=u+q_x Z,\quad y(Z)=v+q_y Z,\quad q_x=\frac{X-u}{Z},\quad \Delta q_x=-\frac{\Delta u}{Z}

孔径位于深度零处,朝场景方向深度为正。每条光线停在它碰到的第一个表面上,所以先遇到青色目标,再遇到金色目标。青色暗标记挡光,圆孔则让光线穿过去照到远处目标。孔径横向平移时,越近的点移动得越多。旋转总览视角并不等于选择已记录视图。

为什么一个深度对齐,另一个深度散开

s=XZ+u ⁣(1D−1Z),Δs=Bspan∣1Z−1D∣,b=WΔs0.64s=\frac{X}{Z}+u\!\left(\frac{1}{D}-\frac{1}{Z}\right),\quad \Delta s=B_{\mathrm{span}}\left|\frac{1}{Z}-\frac{1}{D}\right|,\quad b=\frac{W\Delta s}{0.64}

物体正好在对焦深度时,依赖孔径位置的那一项为零。在其他深度,各个孔径的贡献落在输出图的不同位置。读数以像素给出一个未被遮挡的点散开多宽,不含双线性插值宽度、裁切和遮挡,所以它不是实测的图像 PSF。孔径稀疏时,离焦的点会变成几个分开的重影,而不是一片平滑的模糊。只有一个视图或基线为零时,重对焦不会随深度带来任何变化。

角度视图越多,空间像素越少

W=⌊360N⌋,Nuv=N2,Nxy=W2,Nused=(NW)2≤3602W=\left\lfloor\frac{360}{N}\right\rfloor,\quad N_{uv}=N^2,\quad N_{xy}=W^2,\quad N_{\mathrm{used}}=(NW)^2\le360^2

每个孔径方向上的视图越多,每个视图分到的空间像素就越少。视图数不能整除网格时,边缘会剩下少量像素不用,读数会把它们列出来。输出图沿用同一套空间网格,只是角度裁切更窄且固定,放大显示也不会多出细节。拼图把一幅幅完整的子孔径视图排在一起;原始全光图像则把每个微透镜下的各个角度放在一起,两种图不能互换。

视图怎样采样和平均

ui=B ⁣(i+1/2N−12),Bspan=BN−1N,∣qx∣,∣qy∣≤0.65,∣s∣,∣t∣≤0.32u_i=B\!\left(\frac{i+1/2}{N}-\frac12\right),\quad B_{\mathrm{span}}=B\frac{N-1}{N},\quad |q_x|,|q_y|\le0.65,\quad |s|,|t|\le0.32

孔径取在方形口径各单元的中心。选择视图时会跳到最近的已记录列;网格为偶数时,取中心偏下的那一行。重对焦先在线性 RGB 中把每个视图做双线性空间重采样,再让所有孔径等权平均,最后统一编码为 sRGB。不给单张图增强对比度,也不额外加模糊核。辐亮度经过归一化,所以模型不预测曝光、孔径面积通量、噪声或非近轴照度。

常见难点

重对焦不会凭空造出光线

容易误解拍完再对焦,应该能找回全部分辨率,还能看穿前景里的任何东西。

正确理解重对焦只是重新排列已经记录的光线。远处的点被部分挡住时,只有真正看得到它的孔径才提供数据;所有孔径都看不到的点,无论如何也恢复不了。平均可以让前景遮挡物变淡,却不会让不透光的材料变透明。多采一个角度,就要从固定的空间像素里再分走一份。

动手实验

  1. 01

    场景 1:对焦近景

    在近景和远景预设之间切换。清晰的青色标记让位给清晰的金色圆环,已记录视图卡和采集数据却保持不变。

    你会看到: 用位置和方向描述光场的思路来自 1996 年的论文;把子孔径视图移位再相加的重对焦方法由 2005 年的论文推导。这里的光线斜率按明确说明的物方坐标定义,没有照搬那篇论文的像方深度参数。
  2. 02

    场景 2:重对焦远景

    重放左视图和右视图,观察真实圆孔里露出的内容,以及视差怎样随深度变化。再把采集孔径边长调到零,两种效应都会消失。

    你会看到: 只有改变孔径尺寸、角度数或近景深度时才重新采集。调焦和视图重放都只是处理已存的样本;取景固定不变,前后画面才能直接比较。
  3. 03

    场景 3:密集角度,更少空间采样

    比较每轴一个、三个和九个视图。视图少时,离焦处出现分开的重影;视图多时,空间像素变粗。这是两种不同的缺陷。接着移动近景物体,再对焦到它的新深度。

    你会看到: 显示部分在普通屏幕上重放角度数据。它不模拟柱状透镜显示器,也不模拟微透镜处方,也没有拿真实相机做过实验验证。衍射以及对有限光瞳的积分都没有考虑。
反馈这个页面有错误、看不明白,或者缺了什么?告诉我们
反馈类型

提交时会附带本页地址、Lab ID、网站语言和设备类型。请不要填写个人信息。反馈最多保存 12 个月。隐私政策