【干货】光场相机技术原理

光场

在人类的五大感知途径中,视觉占据了70%~80%的信息来源。而大脑有大约50%的能力都用于处理视觉信息。借助视觉,我们能准确抓取杯子,能在行走中快速躲避障碍物,能自如地驾驶汽车,能完成复杂的装配工作。从日常行为到复杂操作都高度依赖于我们的视觉感知。然而,现有的图像采集和显示丢失了多个维度的视觉信息。这迫使我们只能通过二维“窗口”去观察三维世界。

图片

例如医生借助单摄像头内窥镜进行腹腔手术时,因无法判断肿瘤的深度位置,从而需要从多个角度多次观察才能缓慢地下刀切割。从光场成像的角度可以解释为,因为缺乏双目视差,只能依靠移动视差来产生立体视觉。再例如远程机械操作人员通过观看监视器平面图像进行机械遥控操作时,操作的准确性和效率都远远低于现场操作。

图片

人眼能看见世界中的物体是因为人眼接收了物体发出的光线(主动或被动发光),而光场就是三维世界中光线集合的完备表示。“Light Field”这一术语最早出现在Alexander Gershun于1936年在莫斯科发表的一篇经典文章中,后来由美国MIT的Parry Moon和Gregory Timoshenko在1939年翻译为英文。但Gershun提出的“光场”概念主要是指空间中光的辐射可以表示为关于空间位置的三维向量,这与当前“计算成像”、“裸眼3D”等技术中提及的光场不是同一个概念。

图片

学术界普遍认为Parry Moon在1981年提出的“Photic Field”才是当前学术界所研究的“光场”。随后,光场技术受到MIT、Stanford等一些顶级研究机构的关注,其理论逐步得到完善,多位相关领域学者著书立作逐步将光场技术形成统一的理论体系,尤其是在光场的采集和3D显示两个方面。欧美等部分高校还开设了专门的课程,即计算摄像学(Computational Photography)。

图片

如下图所示,人眼位于三维世界中不同的位置进行观察所看到的图像不同,用(x,y,z)表示人眼在三维空间中的位置坐标。光线可以从不同的角度进入人眼,用(θ,Φ)表示进入人眼光线的水平夹角和垂直夹角。每条光线具有不同的颜色和亮度,可以用光线的波长(λ)来统一表示。进入人眼的光线随着时间(t)的推移会发生变化。因此三维世界中的光线可以表示为7个维度的全光函数(Plenoptic Function),P(x,y,z,θ,Φ,λ,t)。

图片

上述光场的描述是以人眼为中心。光路是可逆的,因此光场也可以以物体为中心等效的描述。与“光场”相类似的另一个概念是“反射场(Reflectance Field)”。如下图所示,物体表面发光点的位置可以用(x,y,z)三个维度来表示。对于物体表面的一个发光点,总是向180度半球范围内发光,其发光方向可以用水平角度和垂直角度(θ,Φ)来表示。发出光线的波长表示为(λ)。物体表面的光线随着时间(t)的推移会发生变化。同理,反射场可以等效表示为7维函数,但其中的维度却表示不同的意义。

图片

对比光场与反射场可以发现,光场与反射场都可以用7个维度来表征,光场是以人眼为中心描述空间中所有的光线,反射场是以物体表面发光点为中心描述空间中所有的光线。光场所描述的光线集合与反射场所描述的光线集合是完全一致的。换句话说,光场中的任一条光线都可以在反射场中找到。

研究

从光场采集的角度来看,以自动驾驶为例,首先需要通过多种传感器去“感知”外界信息,然后通过类脑运算进行“决策”,最后将决策以机械结构为载体进行“执行”。现阶段人工智能的发展更倾向于“类脑”的研究,即如何使计算机具有人脑类似的决策能力。然而却忽略了“眼睛”作为一种信息感知入口的重要性。设想一个人非常“聪明”但是视力有障碍,那么他将无法自如的驾驶汽车。而自动驾驶正面临着类似的问题。如果摄像机能采集到7个维度所有的信息,那么就能保证视觉输入信息的完备性,而“聪明”的大脑才有可能发挥到极致水平。研究光场采集将有助于机器看到更多维度的视觉信息。

图片

从光场的显示角度来看,以LCD/OLED显示屏为例,显示媒介只能呈现光场中(x,y,λ,t)四个维度的信息,而丢失了其他三个维度的信息。在海陆空军事沙盘、远程手术等高度依赖3D视觉的场景中,传统的2D显示媒介完全不能达到期望的效果。实现类似《钢铁侠》中的全息3D显示,是人类长久以来的一个梦想。当光场显示的角度分辨率和视点图像分辨率足够高时可以等效为动态数字彩色全息。研究光场显示将有助于人类看到更多维度的视觉信息。

图片

从1826全世界第一台相机诞生至今已经有近两百年历史,但其成像原理仍然没有摆脱小孔成像模型。如下图所示,物体表面A、B、C三点都在向半球180度范围内发出光线,对于CCD上的感光像素A'会同时接收到来自A、B、C三点的光线,因此A'点的像素值近似为物体表面上A、B、C三点的平均值。类似的情况也会发生在CCD上的B'和C'点的像素。因此,如果把相机上的镜头去掉,那么拍摄的图片将是噪声图像。

图片

如果在CCD之前加一个小孔,那么就能正常成像了,如下图所示。CCD上A'点只接收到来自物体表面A点的光线。类似的,CCD上B'和C'点也相应只接收到物体表面B点和C的点光线。因此,在CCD上可以成倒立的像。

图片

实际的相机并没有采用如上图中的理想小孔成像模型,因为小孔直径较小会导致通光亮非常小,信噪比非常低,成像传感器无法采集到有效的信号。如果小孔直径足够小,当与光波长相当时还会产生衍射现象。而小孔直径过大会导致成像模糊。

现代的成像设备用透镜来替代小孔,从而既能保证足够的通光量,又避免了成像模糊。如下图所示,物体表面A点在一定角度范围内发出的光线经过透镜聚焦在成像传感器A’点,并对该角度范围内所有光线进行积分,积分结果作为A点像素值。这大大增加了成像的信噪比,但同时也将A点在该角度范围内各方向的光线耦合在一起。

图片

小孔成像模型是光场成像的一种降维形式,只采集了(x,y,λ,t)四个维度的信息。RGB-D相机多了一个维度信息(x,y,z,λ,t)。相比全光函数,其主要丢失的维度信息是光线的方向信息(θ,Φ)。缺失的维度信息造成了现有成像/呈像设备普遍存在的一系列问题。

在图像采集方面,可以通过调节焦距来选择聚焦平面,然而无论如何调节都只能确保一个平面清晰成像,而太近或太远的物体都会成像模糊,这给大场景下的AI识别任务造成了极度的挑战。在渲染显示方面,由于(θ,Φ)维度信息的缺失会引起渲染物体缺乏各向异性的光线,从而显得不够逼真。好莱坞电影大片中渲染的逼真人物大多采用了光场/反射场这一技术才得以使得各种科幻的飞禽走兽能栩栩如生。

图片

4D参数化

根据7D全光函数的描述,如果有一个体积可以忽略不计的小球能够记录从不同角度穿过该小球的所有光线的波长,把该小球放置在某个有限空间中所有可以达到的位置并记录光线波长,那么就可以得到这个有限空间中某一时刻所有光线的集合。在不同时刻重复上述过程,就可以实现7D全函数的完备采集。然而,采集的数据量巨大。按照当前的计算机技术水平,难以对7D光场这么庞大的数据进行实时处理和传输。因此有必要对7D光场进行简化降维。

图片

如下图所示,美国斯坦福大学的Marc Levoy将全光函数简化降维,提出(u,v,s,t)4D光场模型。Levoy假设了两个不共面的平面(u,v)和(s,t),如果一条光线与这两个平面各有一个交点,则该光线可以用这两个交点唯一表示。Levoy提出的光场4D模型有一个重要的前提假设,在沿光线传播方向上的任意位置采集到的光线是一样的。换句话说,假设任意一条光线在传播的过程中光强不发生衰减且波长不变。考虑到日常生活中光线从场景表面到人眼的传播距离非常有限,光线在空气中的衰减微乎其微,上述Levoy提出的假设完全合理。

图片

Levoy提出的光场4D模型并不能完备地描述三维空间中所有的光线,与(u,v)或(s,t)平面所平行的光线就不能被该4D模型所表示,例如上图中红色标示的光线。尽管Levoy提出的4D模型不能完备描述三维空间中所有的光线,但可以完备描述人眼接收到的光线。因为当光线与人眼前视方向垂直时,该光线不会进入人眼。因此,这部分光线并不影响人眼视觉成像。Levoy提出的4D模型既降低了表示光场所需的维度,同时又能完备表示人眼成像所需要的全部光线。光场4D模型得到了学术界的广泛认可,关于光场的大量研究都是在此基础上展开。

4D光场模型具有可逆性,既能表示光场采集,又能表示光场显示。如下图所示,对于光场采集模型,右侧物体发出的光线经过(s,t)和(u,v)平面的4D参数化表示,被记录成4D光场。对于光场显示模型,经过(u,v)和(s,t)平面的调制可以模拟出左侧物体表面的光线,从而使人眼“看见”并不存在的物体。

图片

如下图所示,物体表面A、B、C三点发出的光线首先到达(u,v)平面,假设(u,v)平面上有三个小孔h1、h2、h3,则A、B、C三点发出的光线经三个小孔分别到达(s,t)平面。A、B、C三点在半球范围内三个不同方向的光线被同时记录下来,例如A点三个方向的光线分别被(s,t)平面上A3’、B3’、C3’记录。如果(u,v)平面上小孔数量更多,且(s,t)平面上的像素足够密集,则可以采集到空间中更多方向的光线。需要说明的是,下图中展示的是(u,v)(s,t)光场采集模型在垂直方向上的切面图,实际上可以采集到A、B、C三点9个不同方向(3x3)的光线。

图片

图像分辨率和FOV(Field Of View)是传统相机成像性能的主要指标。衡量4D光场的指标不仅有图像分辨率和FOV,还有角度分辨率和FOP(Field Of Parallax)。下图展示了基于微透镜阵列的光场相机的光路示意图,物体表面发出的光线进入相机光圈,然后被解耦和并分别被记录下来。以B点为例,发光点B在半球范围内发出各向异性的光线,但并不是所有的光线都进入相机光圈,只有一定角度内的光线被成功采集,被光场相机采集到的光线的角度范围决定了能够观察的最大视差范围,我们记这个角度为FOP。换句话说,下图中光场相机只能采集到B点FOP角度范围内的光线。但FOP的大小随着发光点与光场相机的距离远近而不同,因此通常采用基线的长度来衡量FOP的大小,下图中主镜头的光圈直径等效为基线长度。

图片

上图中B点在FOP角度范围内的光线被微透镜分成4x4束光线,光场相机的角度分辨率即为4x4,光场相机的角度分辨率表征了一个发光点在FOP角度范围内的光线被离散化的程度。而基于小孔成像模型相机的角度分辨率始终为1x1。光场的视点图像分辨率同样表征了被采集场景表面离散化程度,成像传感器分辨率除以角度分辨率即为视点图像分辨率。

基于相机阵列的光场相机同样可以用视点图像分辨率、角度分辨率、FOV、FOP四个参数来衡量光场相机的各方面性能。如下图所示为4x4相机阵列,B点半球范围内发出的光线中FOP角度范围内的光线被相机阵列分成4x4束并分别被采集。相机的个数4x4即为角度分辨率,单个相机成像传感器的分辨率即为视点图像分辨率。所有相机FOV的交集可以等效为光场相机的FOV。基于相机阵列的光场相机的基线长度为两端相机光心之间的距离。一般而言,基于相机阵列的光场相机比基于微透镜阵列的光场相机具有更长的基线,也就具有更大的FOP角度。

图片

4D可视化

4D光场数据可以表示为(Vx,Vy,Rx,Ry),其中(Vx,Vy)表征了角度分辨率,表示有Vx*Vy个视点(View)图像。(Rx,Ry)表征视点图像分辨率,表示单个视点图像的分辨率为Rx*Ry。如下图中上侧图展示了7x7光场的可视化,表示共有49个视点图像,每个视点的图像分辨率为384x512。视点图像分辨率越高,包含的细节越多。角度分辨率越高,单位角度内视点数量越多,视差过度就越平滑。角度分辨率越低,视点就越稀疏,观看光场时视点跳跃感越明显。

图片

假设在10度的可视角度内水平方向上包含了7个视点,相邻视点间的角度为1.67度,在2米的观看距离,相邻两个视点的水平距离为29毫米。当视点个数减少,相邻视点的空间距离变大,观看者移动观看位置时就会感到明显的视点跳跃。光场中任意两个视点间都存在视差,将光场(Vx,Vy,Rx,Ry)中的部分视点图像放大,如上图中下侧所示。同一行所有视点图像之间只有水平视差,没有垂直视差。同一列所有视点图像之间只有垂直视差,没有水平视差。

光场作为高维数据,不便于可视化分析。为了更好的分析光场中的视差,往往将光场中某一个水平/垂直视点上所有图像的同一行/列像素堆成一幅2D图像,称之为光场切片数据(Light Field Slice)。光场切片图像可以将光场中的水平视差和垂直视差可视化,便于直观分析。如下图中蓝色线条所在的行像素堆叠后就形成了下图中下侧的光场切片图像。

图片

相机

光场相机的硬件结构是由主透镜、微透镜阵列和CCD/CMOS感光器三大块组成。这个结构模型看似简单,但是实际的组成如下图解析。可以看到实际的主透镜,就跟传统相机的主透镜一样,是由多个透镜组组成的,以校正各种光学像差畸变,主透镜模型看似也就单块,实际结构确是很多块。而微透镜阵列,的确就是薄薄的一层,并行排布的很多个一块,紧随其后的就是CCD和CMOS。

图片

不考虑光波的波长等信息,仅考虑方向和位置,光场,即所有传播方向和所有位置上的光线,可以用一个四维变量来表述L=L(u,v,s,t),u,v代表方向坐标,s,t代表位置坐标,这种表述方法称为两平面表示法,如下图所示。

图片

左图可以说明光场相机采集这个四维向量的过程,微透镜本身的位置(s,t)代表了空间坐标,因为由光路图可以看出,某个微透镜接受的光线,只是物空间某个平面上的一个小区域,这点可以由初中所学的主透镜的针孔模型说明,由光路可逆原理,可以随便画从某个微透镜上任意一点发出,并穿过主透镜光心的光线,这跟光线必然只能达到某个物平面的一个小区域。

图片

此外,某个微透镜下存在多个像素,每个像素和这个微透镜中心都有一个相对位置,这个相对坐标就是(u,v)方向信息。可以画一个从一个像素的光线,经过微透镜的光心,最后击中主透镜上的一个位置,这个位置也就对应着主透镜看物体时的不同“视角”。一句话,微透镜本身的位置就是空间信息(s,t),微透镜下像素相对于微透镜中心的位置就是角度信息(u,v)。因此,光场相机可以同时对光线的方向和位置进行采集(点击链接参考前文《光场相机应用分析》)。

文章转自:机器之瞳

声明:转载此文目的在于传递更多信息,仅供读者学习、交流之目的。文章版权归原作者所有,如有侵权,请联系删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值