计算摄像学 第五讲 焦点堆栈与光场摄像
justaLoli

Focal Stack and Light Field

上节课的虚拟大光圈是基于“算法”的。直接得到的深度信息很有限。

本节课将介绍“物理”地方法,从场景中更直接地得到更多深度信息。

镜头成像:只有一个平面可以聚焦。

  • 如何得到各个深度都清晰的成像?
    • 快速拍多个不同聚焦平面的照片->焦点堆栈(Focal Stack Imaging)。
    • 再得到一张全部对焦的图片(算法加工)(all-in-focus)
  • 如何捕获焦点堆栈照片?需要固定哪些参数,更改什么参数?
    • 更改镜头到传感器的距离S’!(Focal distence)
    • 也可以更改镜头到物体的距离S
  • 如何得到最清晰的部分?(合成)
    1. 图像对齐(Alignment&registration)
      • 调整Focal distence时,视场FoV会有些微变化(参见第四讲),要进行一定地缩放调整。
    2. 权重分配
      • 如何测量每个像素的清晰程度?这也是相机自动对焦的工作原理
      • 每个图像,清晰的地方给高权重
    3. 加权平均
      • 对每个图像每个像素点进行加权平均。
  • 注:相机自动对焦(主要通过提取边缘)
    • 做拉普拉斯算子(是一种差分)(可以起到提取边缘的作用)(也有其它提取边缘的方式)
    • 再做高斯模糊(拉普拉斯算子对噪声比较敏感,模糊起到平滑作用,降噪)
    • 还有主动对焦方式:比如ToF传感器
  • 在焦点堆栈过程中,我们事实上得到了一些深度信息。但是这个信息比较模糊。
  • 学术前沿:利用对焦距离和光圈调整估计表面深度(高精度)
    • 不仅改变焦点距离、同时改变光圈
    • 利用光圈和对焦距离两个信息得到尽可能真实的深度。

光场 不同子集 不同角度拍,得到真实光线的,可以还原场景光线的所有光线。

光场:所有光线的集合

光场表示方法: L(u,v,s,t),uv表示光在透镜平面穿过的位置、st表示光在传感器平面穿过的位置。用uvst可以得到透镜到传感器之间的所有光线。

如何得到光场数据?

用相机阵列进行光场摄像 or 用一个相机移动进行拍摄

如何单次相机单次拍摄?

光场摄像。不让传感器精确聚焦,而是让聚焦的光重新散开(利用一个微透镜阵列),传感器可以得到更丰富的信息。

学术前沿:深度学习生成光场

学术前沿:神经辐射场NeRF