光线路径、视差和遮挡
孔径位于深度零处,朝场景方向深度为正。每条光线停在它碰到的第一个表面上,所以先遇到青色目标,再遇到金色目标。青色暗标记挡光,圆孔则让光线穿过去照到远处目标。孔径横向平移时,越近的点移动得越多。旋转总览视角并不等于选择已记录视图。
光学 040 · 成像、仪器与视觉系统
一张光场照片能否任选近处或远处对焦,代价是什么? 能,而且是拍完之后再选。把各个视角的图像错开不同距离再平均,就能对准不同深度,不过每次只有一个深度清晰。代价是分辨率:传感器的像素要分给各个角度,记录的角度越多,每幅图分到的像素越少。
缓存的四维光线数据驱动移位平均重对焦、记录视点重放和子孔径拼图。不透光的目标、一个能看穿的孔和固定的采样总数,让遮挡、随深度倒数变化的视差,以及空间采样和角度采样之间的此消彼长都看得见。
物理教程
背景普通照片把穿过孔径各处的光线加在一起。光场则把每条光线的位置和方向都记下来:。前两个坐标表示一个点孔径的位置,后两个是光线朝向场景的斜率。每个孔径位置都拍下一幅完整的视图。三维装置是一组理想的平行相机,并不是真实的微透镜相机。
为什么值得理解一张光场照片能否任选近处或远处对焦,代价是什么?
先抓重点
孔径位于深度零处,朝场景方向深度为正。每条光线停在它碰到的第一个表面上,所以先遇到青色目标,再遇到金色目标。青色暗标记挡光,圆孔则让光线穿过去照到远处目标。孔径横向平移时,越近的点移动得越多。旋转总览视角并不等于选择已记录视图。
物体正好在对焦深度时,依赖孔径位置的那一项为零。在其他深度,各个孔径的贡献落在输出图的不同位置。读数以像素给出一个未被遮挡的点散开多宽,不含双线性插值宽度、裁切和遮挡,所以它不是实测的图像 PSF。孔径稀疏时,离焦的点会变成几个分开的重影,而不是一片平滑的模糊。只有一个视图或基线为零时,重对焦不会随深度带来任何变化。
每个孔径方向上的视图越多,每个视图分到的空间像素就越少。视图数不能整除网格时,边缘会剩下少量像素不用,读数会把它们列出来。输出图沿用同一套空间网格,只是角度裁切更窄且固定,放大显示也不会多出细节。拼图把一幅幅完整的子孔径视图排在一起;原始全光图像则把每个微透镜下的各个角度放在一起,两种图不能互换。
孔径取在方形口径各单元的中心。选择视图时会跳到最近的已记录列;网格为偶数时,取中心偏下的那一行。重对焦先在线性 RGB 中把每个视图做双线性空间重采样,再让所有孔径等权平均,最后统一编码为 sRGB。不给单张图增强对比度,也不额外加模糊核。辐亮度经过归一化,所以模型不预测曝光、孔径面积通量、噪声或非近轴照度。
容易误解拍完再对焦,应该能找回全部分辨率,还能看穿前景里的任何东西。
正确理解重对焦只是重新排列已经记录的光线。远处的点被部分挡住时,只有真正看得到它的孔径才提供数据;所有孔径都看不到的点,无论如何也恢复不了。平均可以让前景遮挡物变淡,却不会让不透光的材料变透明。多采一个角度,就要从固定的空间像素里再分走一份。
在近景和远景预设之间切换。清晰的青色标记让位给清晰的金色圆环,已记录视图卡和采集数据却保持不变。
你会看到: 用位置和方向描述光场的思路来自 1996 年的论文;把子孔径视图移位再相加的重对焦方法由 2005 年的论文推导。这里的光线斜率按明确说明的物方坐标定义,没有照搬那篇论文的像方深度参数。重放左视图和右视图,观察真实圆孔里露出的内容,以及视差怎样随深度变化。再把采集孔径边长调到零,两种效应都会消失。
你会看到: 只有改变孔径尺寸、角度数或近景深度时才重新采集。调焦和视图重放都只是处理已存的样本;取景固定不变,前后画面才能直接比较。比较每轴一个、三个和九个视图。视图少时,离焦处出现分开的重影;视图多时,空间像素变粗。这是两种不同的缺陷。接着移动近景物体,再对焦到它的新深度。
你会看到: 显示部分在普通屏幕上重放角度数据。它不模拟柱状透镜显示器,也不模拟微透镜处方,也没有拿真实相机做过实验验证。衍射以及对有限光瞳的积分都没有考虑。