【计算机视觉:算法和应用】第二章:图像形成——2.2相机辐射成像

原书PDF链接:

Computer Vision: Algorithms and Applications, 2nd ed.

2.1 几何图元与变换

2.2相机辐射成像

       在对图像生成过程进行建模时,我们已经描述了世界中的三维几何特征是如何投影到图像中的二维特征的。然而,图像不是由二维特征组陈大哥,而是由离散的颜色或强度值组成的。这些值是哪里来的呢?他们是如何与环境中的光源,表面属性和几何,相机光学以及传感器属性建立联系的呢?(图2.14)在这一节,我们给出模型的集合来描述这些相互关系并阐述图像形成的生成过程。关于这个主题的更加详细的介绍可以在计算机图形学和图像合成的教科书中找到。

 2.2.1 光源

       没有光图像就不能够存在。为了生成一幅图像,场景必须用一个或者更多光源照亮。(某些模式,例如荧光显微镜和X射线断层扫描不适合这个模型,但我们在这本书中没有提及。)总的来说,光源能够分为点光源和面光源。

       点光源处于空间中单一的位置(如小灯泡),可能在无穷远处(如太阳)。(注意到,对于一些应用,如在建模软阴影(半影)时。太阳可能被视为一个面光源。)除了它的位置,点光源也具有强度和颜色光谱,即在波长L(\lambda )上的分布。光源的强度随着光源和被照亮的物体之间的距离增加成二次关系下降,因为相同的光会传播到一个更大的(球形)区域。一个光源也可能由方向性衰减(依赖性),但是我们在简化模型中忽略这一点。

       面光源更加复杂。一个简单的面光源,例如带有扩散器的荧光天花板灯具,可以被建模为一个有限的矩形区域,在所有方向上均匀地发出光。当分布具有很强的方向性时,可以使用四维光场来替代。

       一个更复杂的光分布,近似于室外庭院中物体上的入射光,通常可以用环境图(最初被称为反射图)表示。这种表示法将入射光方向\mathbf{\hat{v}}映射为颜色值(或波长,\lambda),

并等同于假设所有光源都在无穷远处。环境图能够表示为一系列立方体面,单一的经纬图或者反射球的图像。获得真实世界环境图的粗略模型的一种简单方法是拍摄一个镜面反射球体的图像(有时还采用一个更深的球体来捕捉高光)并将这个图像展开到所需的环境图上。Watt对环境映射进行了很好的讨论,包括将三个最常用的表示的方向映射到像素的公式。

2.2.2反射率和阴影

       当光照射到一个物体表面时,它会散射和反射(图2.15a)。许多不同的模型被提出来描述这个作用。在这一节,我们首先描述最普遍的形式,双向反射分布函数,然后看看一些更专业的模型,包括漫反射,镜面反射和Phong着色模型。我们也会讨论如何使用这些模型计算对应于一个场景的全局光照。

双向反射分布函数(BRDF)

       光散射最一般的模型时双向反射分布函数。相对于表面上的一些局部坐标系,BRDF是一个四维函数,描述了每一个波长在入射方向为\mathbf{\hat{v}}_i时有多少以反射方向\mathbf{\hat{v}}_r发射。(图2.15b)函数可以用相对于表面框架的入射和反射方向的角度写为

BRDF是互易的,也就是说,由于光传输的物理性质,你可以交换\mathbf{\hat{v}}_i\mathbf{\hat{v}}_r的角色,仍得到相同的结果(这有时被称为亥姆霍兹互易)。

       大多数表面是各向同性的,即,就光的传输而言,在表面上没有首选的方向(例外是各向异性表面,如拉丝(划伤)铝,其反射率取决于相对于划痕方向的光方向。)对于一种各向同性的材料,我们可以将BRDF简化为

 \theta_i\theta_r\phi _r-\phi _i能够从方向\mathbf{\hat{v}}_i\mathbf{\hat{v}}_r以及\mathbf{\hat{n}}计算得到。

       为了在给定的光照条件下计算以方向\mathbf{\hat{v}}_r离开表面点\mathbf{p}的光量,我们将入射光L_i(\mathbf{\hat{v}_i };\lambda)和BRDF的乘积积分(一些作者称这一步为卷积)。考虑透视缩短因子\cos^+ \theta_i,我们得到

其中

 \cos^+ \theta_i=\mathrm{max}(0,\cos\theta_i)

如果光源是离散的(有限数量的点光源),我们可以用求和来代替积分

        给定表面,BRDF能够通过物理建模,启发式建模或者通过经验观察得到。典型的BRDF通常可以分为漫反射和镜面反射成分,如下所述。

漫反射

       漫射分量(也称为兰伯反射或哑光反射),在各个方向均匀地散射光,是我们通常与阴影联系在一起的现象。例如,当观察一座雕像时,所看到的强度随着表面法线光滑(无光泽)地变化(图2.16)。漫反射也经常赋予光很强的不透明色,因为它是由物体材料内部对光的选择性吸收和再发射引起的。

       当光在各个方向上均匀散射时,即BRDF是恒定的,

光量取决于入射光方向和表面法线\theta_i之间的夹角。这是因为由给定光量照射的表面区域在倾斜角度下变得更大,随着向外表面法线点远离光而完全自阴影(图2.17a)。(想想你是如何朝向太阳或者壁炉来获得最大的温暖,手电筒斜靠在墙上比直接指向它更明亮。)因此漫反射的阴影公式可以写为

其中

镜面反射

       典型的BRDF的第二个主要成分是镜面(光泽或强光)反射,其主要取决于出射光的方向。考虑在镜面上反射的光(图2.17b)。入射光线沿着围绕表面法线\mathbf{\hat{n}}旋转180°的方向反射。利用与等式(2.29-2.30)相同的符号,我们能够计算镜面反射的方向\mathbf{\hat{s}}_i

       因此,在给定方向\mathbf{\hat{v}}_r上反射的光量取决于观察方向\mathbf{\hat{v}}_r和镜面方向\mathbf{\hat{s}}_i之间的角度

 例如,Phong模型利用了角度的余弦的幂

而Torrance and Sparrow的微面模型利用了高斯

较大的指数k_e(或逆高斯宽度c_s)对应更多的高光镜面,而更小的指数更好地建模光泽较软的材料。

Phong着色模型

       Phong将漫反射和镜面反射与另一个术语结合在一起,称之为环境照明。这一术语解释了这样一个事实:物体通常不仅被点光源照明,也被与相互反射(如房间里的墙壁)或遥远光源(如蓝天)相对应的一般漫反射照明。在Phong模型中,环境项不取决于表面方向,而取决于环境照明L_a(\lambda)和物体k_a(\lambda)的颜色,

把所有这些项放在一起,我们就可以得到Phong着色模型,

        图2.18显示了一组典型的Phong着色模型成分集合,作为远离表面法线的角度的函数(在一个同时包括照明方向和监视器的平面中。)

        通常,环境反射和漫反射的颜色分布k_a(\lambda)k_d(\lambda)是相同的,因为他们都是由于表面材料内部的次表面散射(体反射)引起的。镜面反射分布k_s(\lambda)通常是均匀的(白色),因为它是由界面反射引起的,而不会改变光的颜色。(这有个例外是金属材料,例如铜,而不是更常见的介电材料,如塑料。)

       环境照明L_a(\lambda)通常与直接光源L_i(\lambda)的颜色不一样,例如,阳光明媚的室外场景可能是蓝色的,或者蜡烛或白炽灯照明的室内场景可能是黄色的。(阴影区域的环境天空照明通常导致阴影比场景中对应的照明部分更蓝)。还要注意的是,Phong模型(或者其他任意着色模型)的漫反射成分取决于入射光源\mathbf{\hat{v}}_i的角度,而镜面反射成分取决于监视器\mathbf{v}_r和镜面反射方向\mathbf{\hat{s}}_i(其自身取决于入射光方向\mathbf{\hat{v}}_i和表面法线\mathbf{\hat{n}})之间的相对角度。

       Phong着色模型在物理精度方面已经被计算机图形学中更新的模型所取代,包括Cook和Torrance提出的基于Torrance和Sparrow的原始微面模型开发的模型。虽然,最初计算机图形硬件实现了Phong模型,但可编程像素着色器的出现使使用更复杂的模型变得可行。

双色反射模型

       Torrance和Sparrow的反射模型也形成了Shafer的双色反射模型的基础,这个模型表明从单一光源照射的均匀材料的表面颜色取决于两项之和,

即在界面上反射的光的亮度L_i,以及在物体表面反射的光L_b。相应的,这些都是取决于波长的相对功率谱c(\lambda)和只取决于集合的幅度m(\mathbf{\hat{v}}_r,\mathbf{\hat{v}}_i,\mathbf{\hat{n}})的乘积。(这个模型可以容易地从Phong模型的一个广义版本得到,通过假设一个单一的光源和无环境光源并重新排列项。)双色模型已经成功地应用于计算机视觉,分割具有较大变化阴影的镜面彩色物体,并启发了局部双色模型的应用,例如Bayer模式去马赛克。

全局照明(光线追踪和辐射度)

       到目前为止提出的简单的着色模型假设光线离开光源,从相机可见的表面反弹,从而改变强度或者颜色,并到达相机。事实上,光源可以被遮挡器遮挡,光线从光源到相机时,可以在一个场景中反弹多次。

       传统上有两种方法来对这种影响建模。如果场景大多数时镜面的(典型的例子是由玻璃物体构成的场景以及镜面或高度抛光的球),更合适的方法是光线追踪或者路径追踪,从相机跟踪单独的光线,经过多次反弹到达光源(或相反)。如果场景大多数是均匀的反照率简单的几何照明和表面,辐射度技术更好。将两种技术结合也已经发展起来,同时也有更多一般的光传输技术用于对如由水波纹产生的焦散面进行模拟。

       基本的光线追踪算法将一条光线与相机图像中的每一个像素联系起来,并找到其与最近表面的交点。然后就可以针对表面元素用之前提到的简单的着色公式对所有可见的光源计算初始的分布。(另一种计算被光源照明的表面的方法是计算一个阴影图,或者阴影缓冲器,即从光源的角度渲染场景,然后用图比较被渲染像素的深度。)然后可以将其他次级光线沿着镜面方向投影到场景中的其他物体上,跟踪镜面反射引起的仍和衰减或颜色变化。

       辐射度的工作原理是将亮度值和场景中的矩形表面区域(包括面光源)联系起来。在场景中任意两个(相互可见的)区域之间交换的光量可以作为一个状态因子被捕获,取决于他们的相对方向和表面反射特性,以及当光分布在更大的有效球体上时1/r^2的下降。然后就可以建立起一个大线性系统来求解每个区域块的最终亮度,将光源作为强制函数。一旦系统被求解,乘积就能够从任意视点进行渲染。在某个环境下,有可能利用计算机视觉技术从相片中恢复一个场景中的全局照明。

       基础的辐射度算法没有考虑某些近场效应,例如内角变暗和划痕,或由其他表面的部分阴影造成的有限的环境照明。这种效应已经被许多计算机视觉算法所应用。

       所有这些全局照明的效应都可以对场景的外观产生强烈的影响,但它的三维解释在这本书中并没有涉及到很多细节。(但关于从真实场景和对象中恢复BRDF的讨论,请阅读13.7.1节。)

2.2.3光学

       一旦光从场景中到达相机,它必须在到达模拟或数字传感器前穿过透镜。对于许多应用来讲,将镜片视为一个理想的针孔,简单地将光线通过一个常见的投影中心进行投影,这就足够了(图2.9和2.9)。

       然而,如果我们想要处理诸如对焦、曝光、渐晕和畸变等问题时,我们需要采用一个更加复杂的模型,这就是光学所要研究的。

       图2.19展示了大多数基本透镜模型图,即由一块两侧曲率很低的玻璃组成的薄透镜。根据透镜定律(可以用光线折射的简单几何参数来导出),到对象z_0距离和聚焦图像的透镜后面的距离z_i之间的关系可以表示为

其中f称之为透镜的焦距,如果我们设置z_0\rightarrow \infty,即我们调整透镜(移动图像平面)使得无穷远处的物体会聚焦,我们可以得到z_i=f,这就是为什么我们认为一块焦距为f的透镜,等同于在距离焦平面f处的一个针孔(图2.10),其视场由(2.60)给出。

       如果焦平面远离其适当的对焦设置z_i(例如转动透镜上的对焦环),那么在z_0处的物体不再会对焦,如图2.19中的灰色平面所示。错误对焦的量是通过混淆的圆c来测量的(以灰色平面上的短粗蓝线段表示)。混淆圆的方程可以利用类似的三角形推导出;它取决于焦平面\Delta z_i相对于原始焦距z_i的距离和针孔的直径。

       场景中允许的深度变化将混淆圆限制为一个可接受的数字,通常称为景深,是焦距和光圈的函数,如许多镜头的标记所示。(图2.20)

       由于景深取决于光圈直径d,我们还必须知道这是如何随通常显示的f-数变化的,其通常表示为f/#或N,定义为

其中焦距f和光圈直径d以相同的单位进行测量(如毫米)。

       通常我们书写f数的时候,会将f/#中的#用实际的数字替换,即f/1.4,f/2,f/2.8等。(或者我们可以说N=1.4等)。要解释这些数字,一种简单的方法是,我们可以注意到,用焦距除以f数,我们可以得到直径d,所以这些只是相机光圈直径的计算公式。

       注意到一系列f数完全都是\sqrt{2}的倍数,这是因为每一次选择一个更小的f数,光圈的面积就会增大一倍。(这种加倍也称之为用一个曝光值或EV来改变曝光量,它对到达传感器的光量的影响与曝光时间的加倍相同,例如,从1/250到1/125;)

       既然你知道了如何在f数和光圈直径之间进行转换了,你就可以构建你自己的景深作为焦距f,弥散圆c和聚焦距离z_0的函数,正如练习2.4中所解释的。同时你可以看到这些和你在实际的镜头上看到的是有多么匹配,正如图2.20中所展示的。

       当然,真实的镜头不会无穷薄,所以会存在几何像差,除非使用复合的要素来纠正他们。在使用三阶光学时出现的经典的五种Seidel像差,包括球面像差、彗差(coma)、散光、场弯曲和畸变。

色差

       由于玻璃的折射率随波长的变化略有不同,简单的透镜会产生色差,即不同颜色的光聚焦在不同距离(以及略有不同的放大倍数),如图2.21所示。

       依赖于波长的放大倍数,即横向色差,能够建模为一个逐色的径向畸变(2.1.5节),并且能够用11.1.4节中的技术进行校准。由纵向色差引起的与波长相关的模糊可以使用第10.1.4节中描述的技术进行校准。不幸的是,有纵向色差引起的模糊更难消除,因为更高的频率会强烈地衰减,因此很难恢复。

       为了减小色差以及其他各种偏差,如今大多数的镜头都是由不同的玻璃元件混合组成的镜头(有不同的图层)。当用一个针孔模型近似镜头时,这样的镜头不再能够用一个节点P进行建模(所有的光线必须通过)。相反,这些镜头既有一个前节点,光线通过它进入镜头,也有一个后节点,它们通过后节点进入传感器。实际上,在进行仔细的相机标定时,只有前节点的位置是让人感兴趣的,例如,当确定要旋转的点以捕获无视差的全景图时(见8.2.3节)。

       然而,不是所有的透镜都能够用单个节点建模。实际上,超广角镜头,例如鱼眼镜头(2.1.5节),某些有多个透镜组成的光成像系统以及曲面镜,不存在一个点,让所有需要的光线通过。在这种情况下,更倾向于显式地在像素坐标和空间中的3D光线之间构建一个映射函数(查表),如2.1.5节中所提及的。

晕影

       真实透镜的另一个属性是晕影,即在图像的边缘图像的亮度呈下降趋势。

       通常有两种现象导致了这个现象。第一个称之为自然晕影,是由于物体表面,投影像素以及透镜孔径的透视缩短引起的,如图2.22。

       考虑离开位于离轴角度α尺寸为δo物体表面patch的光线。因为这个patch相较于相机透镜被透视缩短了,所以到达透镜的光量由一个因子cosα减少。到达镜头的光量也受到通常的1/ r^2衰减的影响;在这个情况下,距离r_0=z_0/ \cos\alpha。光通过的孔径的实际面积缩短了cosα,即从点O看到的孔径是一个dxdcosα的圆。把这些因子都放在一起,我们可以看到,离开O和穿过孔径到达图像像素I的光量成正比

       由于三角形\Delta OPQ\Delta IPJ是相似的,所以物体表面δo的投影面积和像素δi与zo:zi有相同的比例,

       将这些公式放在一起,我们能够获得到达像素i和孔径d之间的最终关系,聚焦距离zi≈f,离轴角为α,

这被称为场景辐射度L和到达像素传感器的光(辐照度)E之间的基本辐射测量关系,

       注意到在这个公式中光量是如何依赖于像素面积(这就是为什么点射相机中的小传感器比数码单镜头反光相机(DSLR)相机的噪声更大),光圈数N=f/d的倒数平方,以及\cos^4四次幂的离轴衰减(自然晕影项)。

      另一种主要的晕影称之为机械晕影,是由复合镜头中透镜元件附近光线的内在遮挡引起的,如果不对实际的透镜设计进行完整的光线跟踪,就不能轻易地进行数学描述。然而,不像自然晕影,机械晕影能够通过减少相机光圈(增加f数)减弱。它也可以通过使用特殊的设备进行校准(与自然晕影一起),例如积分球、均匀照明的目标或相机旋转,这在第10.1.3节中有所讨论。

【持续更新,仅供学习参考。部分专业术语可能翻译有误,欢迎大家批评指正】

  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lu.马夋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值