第六章 表面方向的检测 6.1 成象过程 6.1.1 辐射学基本知识 6.1.2 图象的形成 6.1.3 双向反射分布函数 6.2 反射图和辐照方程 6.2.1 表面方向的表示 6.2.2 反射图 6.3 根据影调恢复物体形状 6.3.1 光度学立体视觉法 6.3.2 松驰法   人们在日常生活和舞台艺术中广泛使用化妆品来改变形象说明人的视觉系统中具有某种根据亮度的明暗分布(影调)推断物体形状的能力。人可能是根据物体的遮挡轮廓和影调来得到关于物体形状的信息。虽然,影调可能在决定形状中只起次要作用,但是人的低层视觉理论中,除色觉以外,最令人感兴趣的问题是:我们根据影调线索到底能恢复哪些形状信息?从数学角度理解,由影调恢复形状这个问题也许是严格研究人类从影调恢复形状能力的一个先决条件。因此这里我们将扼要地阐明有关的基本概念。首先要理解图象是如何形成的,也就是了解图象象素的亮度与景物中物体表面的辐射率之间的关系。然后再理解这个过程的逆过程,即如何根据图象的亮度分布信息发现物体表面形状和反射率等特征。 6.1 成象过程   为了理解成象过程,首先需要了解基本的辐射学知识。 6.1.1 辐射学的基本知识[Hor 79]   这里先介绍辐射学中一些基本物理量的定义:辐射通量(Radiant Flux)(和光电磁场辐射强度(Radiant Intensity)I。是每单位立体角射出的辐射通量。即:  瓦/球面度 (6-1) 其中是微分立体角。如图6.1所示,距离点处的面积为的水平面所对的立体角:  (6-2) 其中(是的法线与到点光源连线之间的夹角。可被称为在方向上的投影面积。立体角的单位是球面度(steradian)。整个球面所得的立体角为4(球面度。   辐照度(irradiance)是单位表面积上的入射光通量,即入射光通量密度。  瓦/米2 (6-3) 其中是表面上小区域的面积,是此面积上的入射光通量。    从表面发出的光通量是用辐射率(radiance)或辐射体亮度来定义的,它表示从表面上单位面积,在单位立体角中发出的功率。辐射率这个概念的复杂性在于表面可在其可能辐射方向的整个球面上辐射,而且在不同的方向上发出的能量不同。辐射率是一个与方向有关的量,它的定义是:   瓦/米2·球面度 (6-4) 其中是表面法线与辐射方向之间的夹角,是光源的面积,是光源在角方向立体角内的辐射通量。  图6.2 点光源对表面的照明   下述例子可说明以上的某些概念(图6.2)。试研究下述情况下的辐射源。辐射源在某一表面区域方向上的辐射强度为。此表面区域的面积为,表面法线跟该区域与辐射源连线的夹角为。事实上如从辐射源观察此表面区域,那么好象只有垂直于连线的,面积为的区域被观察到。此区域对应的立体角为  球面度 (6-5) 相应的辐射通量是:  瓦 (6-6) 表面的辐照度就是入射辐射通量被表面区域的面积相除,即  瓦/米2 (6-7)   这里还需要讨论一下亮度的概念。这是一个至少可用来表示两种不同概念的不正规术语。图象中的亮度与景物中表面的亮度是不同的概念。图象的亮度与图象平面的入射能量有关,应该用图象平面的单位面积上射入的辐射能量,也就是辐照度E来测量。灰度又是图象辐照度的定量量测。   景物中的亮度与从表面发出的能量有关。它应该用单位投影面积发射到单位立体角中的功率,也就是用辐射率L来测量。景物的辐射率与图象的辐照度之间是有联系的,在以下的章节中将研究景物中某点的辐射率与图象中相应成象点的辐照度的关系。   景物的辐射率和哪些因素有关?由于一般情况下景物本身不是光源,而只是受到光照以后产生反射。所以要先研究一下光线射到物体表面时发生的情况。当一束光线射到物体表面时,它可能被吸收,传播(transmmited)或反射,这与表面的性质以及表面的微观结构有关。如果表面是平坦的,并且表面物质是均匀的,那么反射的射线将位于由入射光线和表面法线形成的平面内,并使反射光线与法线间的夹角等于入射光线与法线间的夹角。这被称为镜面的或非传导性的反射(specular, metallic, or dielectic)。具有这种表面的物体能产生周围物体的虚象。   许多表面从微观的比例来说不是完全平坦的,因此会把入射光杂乱地反射到各个方向上(图6.3(a))。如果局部表面的法线与平均法线方向之间的偏离不大,那么大多数光线将出现在理想镜面反射方向附近,并将使表面有明暗变化,或是有光泽的。   还有些表面从微观上看是不均匀的。因此透过表面的光线将在折射系数不同的二个区域之间的边界处产生折射和反射,从而造成光线的散射(图6.3(b))。被散射的光线可能以不同的方向重新出现在进入点的附近,这就造成漫反射或无光泽反射(diffuse, flat or matte)。白雪或白油漆的表面层是这种性能表面的例子。通常部分光线在物体表面接近平坦的区域反射,   (a) (b)  (C) 图6.3 表面的反射特性   (a) 镜面反射表面上的波纹将使入射光线散射到各个方向上去。如果波纹与表面成象的分辨率相比可忽略时,表面将呈显镜反射,而呈现光泽的表面。(b) 表面层中各种成份的折射指数不均匀使入射光线散射到各个方向,这种结构的表面产生无光泽反射。 部分光线透射到更深的内部,经过在不均匀的内部多次折射和反射后重新反射出表面。这两种光线的影响同时存在。   在每种情况下,反射光的分布取决于入射光的方向和表面层的微观结构。实际上,什么样的结构构成微观结构取决于观察者的观点。通常,在特定的成象情况下不能被分辨的表面结构在这里被当作微观结构。例如,当从望远镜观察月亮时,较小的土丘和火山是微观结构的一部分。 6.1.2 图象的形成[Bal 82]   以下我们来研究物体表面的辐射与图象平面上的辐照之间的关系。成象系统的几何关系如图6.4所示。假设成象系统聚焦良好。从物体表面上的无限小面积dAo上发出的射线投影到图象平面上某个面积dAp上,并且没有来自物体表面其它部分的光线到达图象的这块面积。假设系统是理想的,服从简单的几何光学原理。  图6.4 成象系统的几何关系   设dAp上的辐照度为 Ep。为说明Ep与景物辐射率之间的关系。首先研究从小面积dAo到达了透镜的光通量。根据6.4式得,等于光能量  (6-8) 积分域是透镜对着dAo所占的立体角。假设到达图象平面的dAp上,那么根据(6.3)式,dAp上的辐照度Ep等于:  (6-9) 由图6-4可知dAo和dAp所对的立体角相等,所以有以下等式:  (6-10)   把(6.8)式和(6.10)式代入(6.9)式可得:  (6-11)   积分域是透镜对着dAo所占的立体角,在大多数情况下可假设在此立体角内L是常量,因此可以从积分内移出。最后可近似地按透镜的透视面积,被距离 的平方相除求得,即  (6-12) 所以可求得:  (6-13)   由上式可得出以下令人感兴趣的结论:(1)图象辐照度,即图象各点的亮度正比于景物中对应空间点的辐射率L。(2)在上述比例系数中包括成象点偏离光轴的角度(。这说明这样的成象系统的灵敏度是不均匀的。在理想情况下成象系统应被校准到使灵敏度不随(变化。上述结论还说明为研究影响图象亮度的因素还需要进一步研究景物的辐射率。 6.1.3 双向反射分布函数(Bidirectional Reflectance Distribution Function)   一般来说景物的表面不是光源,因此,景物表面的辐射是受到光源辐照产生反射的结果,因此景物的辐射率就与表面的入射光通量、入射光被反射的比例,以及光反射的几何位置有关。这就是说,表面的辐射率既与观察它的方向有关,又与对它照明的方向有关。为此我们先说明规定方向的方法。如图6-5所示,我们可用表面各点上的局部坐标系来定义这些方向。设,表  图6-5 双向反射分布函数 面的法线方向即为坐标系的Z轴,另两轴为该点切平面内任意正交的方向。一根射线的方向可用这条射线与表面法线(Z轴)之间的夹角(,和此射线在表面上的垂直投影与表面上的一条参考线(设为X轴)之间的夹角(来描述。(和(分别被称为极线角(polar angle)和方位角(azimath angle)。这样光线入射的方向可规定为,朝观察者辐射的方向可规定为。   现在我们可定义一个双向反射分布函数(BRDF),这个函数可告诉我们当表面被从一个方向照明,而从另一个方向观察时,此表面将显得多亮的信息。更精确地说,双向反射分布函数是反射到观察者方向上的辐射率与光源的某一方向入射的辐照度之比:  (6-14)   是一个四变量的函数,如直接用来研究图象的辐照度与表面形状之间的关系会过于麻烦。所幸的是,对许多表面来说,如果表面绕表面法线旋转的话,辐射率不改变。这时,BRDF只与有关,而不是分别与和有关。这对无光泽表面和镜面反射表面来说是正确的。但对具有方向性微观结构的表面来说就不正确了。例如,有些金属矿石或某些鸟的羽毛就是这样的。   对于BRDF的形式有一个重要的约束:如果两个表面处于热平衡状态,从一个表面到另一个表面的辐射应该与相反方向的辐射相平衡。如果不这样的话,那么接收辐射多的表面就要被加热,而另一个表面就会被冷却,这就破坏了热平衡。也就是破坏了热力学第二定理。这意味着BRDF应受Helmholtz可逆性条件的约束。即  (6-15) 以下通过几个实例说明BRDF的性质和应用。 1. 扩展的光源 迄今为止,我们所研究的是所有光线都来自一个方向的情况。实际上可能有几个光源,甚至有几个扩展的光源,例如天空。在扩展光源的情况下我们需要考虑光源所占的立体角。试研究天空中一块由产生的小区域(图6-6)。这个小区域的面积为,其中是小区域到原点的距离,因此,这个小区域所对的立体角为: 设,是从方向来的单位立体角内的辐射。那么从所研究天空中小区域来的辐射等于:   图6.6 扩展的光源,这时BRDF与光源辐照度的乘积应在所有入射方向上积分 整个天空对表面的总辐照度就等于:  (6.16) 其中项是由于考虑从方向观察时表面的投影而引入的。   为求得表面的辐射率,我们必须在所有光线可能射入方向的球面上对BRDF与辐照度的乘积作积分。因此,  (6.17) 上述积分中的项也是由于投影造成的。积分的结果是变量和的函数,它们确定朝观察者发射的射线的方向。 2. 表面反射特性   (1) 朗伯表面   理想漫反射表面或朗伯表面具有以下两个性质。第一,不论表面被如何辐照,在所有的观察方向上都是呈现相同的亮度,即L 是与方向无关的常数。第二,所有的入射光都被反射,并无吸收。根据定义可推论朗伯表面的BRDF应该常数。为确定这个常数可把表面的辐射率在所有的方向作出积分,并使这样求得的总辐射M与总的辐照E0相等。根据L的定义(6-4)可知在方向上的立体角内发出的光能量等于   所以总辐射M等于  (6-18) 上式中由于L是常数,所以可移到积分符号前面。移出L后余下部分的积分值为(。所以有,利用这个结果,以及BRDF的定义可得朗伯表面的BRDF等于:  (6-19) 其中是朗伯表面的双向反射分布函数,它等于常数。   如果光源是辐射率为的扩展光源。那么由方向上的无限小立体角产生的辐照,利用(6.19)式所表示的朗伯表面的BRDF 可求得:  (6-20) 这是朗伯表面的余弦定理。   (2) 理想镜面反射   理想的镜面表面以下述方式反射光线:出射角(exitant angle)等于入射角,并且入射和出射光线在包含法线的平面内。表面区域在方向上反射的辐射率等于相应入射方向受到的辐照,即:  (6-21) 因此,表面形成了辐射源的虚象。根据BRDF的定义可得:  (6-22) 如果使:  (6-23) 就可满足(6.21)式所述条件。这被称为理想镜面反射的BRDF的双重函数形式。如果是扩展的光源,那么(6.22)式可推广为:   (6-24) 6.2 反射图和辐照方程   对理解表面的反射特性来说BRDF是至关重要的,但对研究表面方向与图象影调的关系来说直接应用BRDF是不方便的,而要应用这节中将要讨论的反射图。直接应用BRDF不便的原因首先是定义BRDF时所用的是局部坐标系。如前所述,这些局部坐标系的Z轴是与局部表面的法线方向重合。为了说明表面方向与图象亮度之间的关系需要采用全局坐标系。这就是以观察者为中心的坐标系。我们先从在这样的坐标系中表面方向的合理表示方法开始。 6.2.1 表面方向的表示   平滑的表面上每点都有切平面。这些切平面的方向可被用来表示表面在这点的方向。表面的法线向量就是垂直于切平面的单位向量,可以用它来研究这些切平面的方向。法线向量有两个自由度。因为一个向量有三个分量,而它们的平方和必须等于1。 我们所选的全局坐标系应与成象系统相固定,使一根坐标轴与成象系统的光轴对齐是较方便的。可把坐标原点放在透镜的中心,使另外两根坐标轴与成象平面平行。为组成右手坐标系可使Z指向图象(图6.7)。     图6.7 观察者为中心的坐标系 这样,表面就可以用函数来描述。它表示点离透镜平面的垂直距离(即z坐标)随该点坐标变化的情形。下面我们希望用z坐标,以及z坐标对x和y坐标的偏导数来表示法线向量。   因为法线向量垂直于切平面内所有的线,所以可用切平面内任意两个不平行向量的叉积来求得法线向量。设想从给定点沿x轴方向移动一小步,按泰勒级数,在z轴上的变化可表示为:  其中e是高次项。我们可用p和q分别表示z对x和y的一阶偏导数。因此,p是表面沿x轴方向的斜率,q是沿y轴的斜率。(图6.8)。p和q与表面小区域的方向之间的关系如图6-8所示。如沿x方向位移,高度的变化为;相似地,沿y方向位移,高度的变化为。  图6.8 用z对x,y的一阶偏导数p, q表示表面方向   我们用向量形式把沿x轴的位移表示为。因此,在切平面的点处有一条平行于向量的直线。相似地,还有一条平行于向量的直线。由这两个向量作叉积就可求得表面的法线。还没有确定的是让法线指向观察者,还是背离观察者。如果让法线向量指向观察者,则有:  (6-25) 可把向量称为表面的梯度(gradient of surface)。因为它的分量p和q分别是表面沿x和y方向的斜率。单位向量就等于:  (6-26)   由于观察者在z轴方向上,所以观察者方向的单位向量是。我们可用向量点积求得表面法线与透镜方向(即观察者方向)之间的夹角。  (6-27)   我们如何来规定光源的方向呢?假设与物体大小相比,光源远离物体。我们可用固定向量来规定光源的方向,即如果表面上有一个小区域垂直于光源来的射线,就用这个小区域的法线向量作为光源的方向。如果这个表面的法线是,那么梯度可用来说明光源的方向(设光源与观察者位于物体的同一边)。   在以下讨论中,我们假设光源和观察者都远离被成象的物体。 6.2.2 反射图(Reflectance map)   为了研究图象的影调与表面方向之间的关系,首先需要一种表达工具,以便能清楚地表示表面方向与景物亮度之间的关系,并能记录关于物体表面反射特性和光源分布的信息。这种表达工具就是反射图。由反射图可进而建立辐照方程来说明图象亮度与表面方向间的关系。   试考虑辐射源E对朗伯表面照明的情况。景物反射产生的辐射率是:  (6-28) 其中是表面法线与光源方向之间的夹角。因为辐射率不能是负的,所以上式中把限制在范围内,在此范围外时辐射率将为零。取相应单位向量的点积可求得:  (6-29) 把上式代入(6-28)式就可以得到景物辐射率与表面方向之间的关系。所得结果用所谓的反射图 表示。为便于在以后推导辐照方程。通常以某种方法使反射图归一化,使它的最大值为1。根据上两式可知在远离的点光源照射朗伯表面的情况下,等于  因此,除去一个固定的比例系数外,反射图说明了景物辐射率与表面之间的关系。反射图与物体的表面材料的特性以及光源的几何位置有关,它可通过理论计算或实验测量得到。   把表面的作为梯度的函数来表示是很方便的。平面被称为梯度空间,空间中的每一点都对应于一个特定的表面方向。例如,原点表示所有与观察方向垂直的平面。通常是以梯度空间中的等亮度线的形式来表示的。如图6.9所示,在朗伯表面的情况下等亮度线是平面中相互环套的圆锥截面。因为意味着:  上式经过整理后就可得到一组表示圆锥面的方程组。可以证明在处  图6.9 朗伯表面情况下,在空间中用等亮度线形式表示的 取最大值。它位于环套的圆锥面的中央。的点都沿图6-9中的左边的直线。   另一个例子,试考虑一个在所有方向上辐射能量相等的表面(实际上这样的表面在物理上是无法实现的。但下面将会看到对此略作修正就是可以实现的)。这样的表面在从斜的方向观察时会显得更明亮一些,因为从投影面积中发出的能量是相同的。显然,这种特性与朗伯表面的特性是截然不同的,这时亮度与出射角的倒数成正比。把从光源看时的投影面积考虑起来可发现辐射率与成正比。因为,所以可求得:    这时等亮度线就是如图6-10所示的平行线,并且这些线与方向垂直。因为意味着    实际上没有一种实际的表面可具有与成正比的辐射率。因为可以证明这个公式与Helmholtz发现的基本约束相违背。但这个表达式的平方根符合Helmhotz的可逆性条件。在这里我们感兴趣的是梯度空间中等亮度线的形状。这些直线适用于的任何函数,当然其中包括它的平方根。令人惊异的是,月球海中物质的反射特性可相当精确地用的函数来描述。   作为最后一个例子我们来研究一下光亮表面的情况。在许多情况下从表面反射的光线有两个分量:一个分量是由空气与表面物质之间的界面反射而产生的;另一个分量是由穿透到表面层里的内部杂散光产生的。如果外表面理想地光滑,那么第一个分量本质上就是镜面反射。如果表面不是理想地光滑,那么镜面分量就会被模糊,使得点光源将在反射图上产生一个高峰,而不是一个理想的脉冲。这就被称为光泽反射。   由于表面层中粒子的吸收作用将使光泽分量的亮度改变,而光泽分量的亮度主要取决于物质的散射系数。所以,通常光泽分量的成份与入射光相近,而散射分量受表面层中的选择性吸收的影响。  图6.10 在月球海中物质的条件下,反射图可很好地用梯度分量   使散射反射分量最大的表面方向一般就是表面法线指向光源的方向。与此不同,使光泽分量最大的表面方向通常是处于光源与观察者两者中间的表面法线指向光源的方向。这样在反射图上就有两个极大点(图6.11)。通常总的极大点位于光泽分量的峰点处。  图6.11 包含散射不光泽反射分量的反射图 6.2.3 辐照方程(Irradiance Equation)   物体的形状如何影响图象中的亮度分布呢?试考虑均匀光照条件下多面体的图象。因为多面体各面上各点的方向相同,而图象中区域的亮度由相应的多面体表面的方向决定,所以多面体图象将由亮度均匀的多边形组成.如果成象的物体具有平滑的曲面,那么这种物体的图象中亮度空间分布情况将是表面方向不同的区域中亮度不同。这种亮度的空间分布被称为影调(shading)。复杂的是影调不只受物体形状的影响,同时还受表面的反射特性和光源分布的影响。   反射图说明了亮度与表面方向之间的关系。同时如前所述,图象中某点的辐照度正比于成象表面上相应点的辐射率。如果该点的表面梯度是,则这点的辐射率为。如果通过把比例系数置为1来作归一化,就可得到:  这就是图象的辐照方程。它是以下所述的恢复表面方向方法的基础。   为说明影调的效果,试考虑一个由点光源照明的朗伯球面,而且光源方向与观察者方向接近相同(图6-12)。这时和,所以:  如果球面是在光轴上,它的表面方程可写成  其中是球面半径,z0是它的球心到透镜中心,也就是坐标原点的距离。因此:  所以:  最后可得:  球面图象中心处的亮度最高,向四周方向逐渐降低,到边缘处为零。根据这样的亮度分布,我们可推断出这是球形的物体。   如果表面的反射特性是其它种类的,这时的图象也不同。例如,前面介绍的向各方向发出相等辐射的材料的反射图为:  并且,那么上述球面的图象将是一个均匀亮度的圆盘。这一结论根据这时亮度是cos(i/ cos(e的函数,并且也可得出。对于习惯了表面性质接近朗伯表面的人来说,这样的球面似乎是平的。这就是为什么对有的人来说满月看起来象是有斑点的平盘的原因。盘上的斑点就是由于表面的反射特性不同造成的亮度变化。  图6.12 光源与观察者方向相同时朗伯球面的反射图是圆周对称的 6.3 根据影调恢复物体形状   即使在均匀光照条件下,景物中的物体也会由于形状不同而使生成图象中各处的亮度不同,这就是图象的影调,它可被用来估计表面区域的方向。然而,图象中单独点的亮度测量只能提供一个约束条件,即辐照方程,而表面方向有两个自由度。如果没有附加信息则无法根据图象的辐照方程恢复表面区域的方向。辐照方程是:  其中是图象平面坐标处的辐照度,是景物表面相应表面点经过归一化的辐射率。   一种引入附加约束条件的方法是利用另一幅在不同光照条件下得到的图象。这就是光度学立体视觉法(photometry stereo method)。另一类方法是根据同一幅图,但利用物体的一般性质提供的约束。属于这一类的方法有特征带扩展法、松驰法等。 6.3.1 光度学立体视觉法[Woo 80][Ike 81]   假设已知景物的图象和在某一光源位置下景物材料的反射图。当我们测得图象上特定点的亮度时,如已经看到的那样,我们可以推论出相应空间表面的方向是在反射图的某一等亮度线上,例如在的等亮度线上。现在的问题是我们并不知道等亮度线上哪一点相应于表面方向。   为此,假设现在我们移动光源,并在相同的观察点摄取第二幅图象。这时观察者成象的几何位置相同但反射图改变了。如图6.13所示,在相同图象点测得的亮度为0.4,求得相应的表面方向应在亮度为0.4的等亮度线上。因此,真正的表面方向就减小到两种可能,即这两条等亮度线的交点A和B。从本质上来说,这已经解决了问题。因为通过利用表面连续性信息很容易在A和B之间进行选择,或利用在另一光照条件下的第三幅图象。   这种方法可以实用,因为即使在复杂的光照条件下通常我们也能够建立反射图。虽然,我们一般是用实验的方法来测量反射图。至于用计算法求反射图[Hor 79],由于计算过于复杂一般不常用。已经建立了一个用光度学立体视觉方法确定工件抓取点的实验系统,详见[Ike 83]。  图6.13 用光度学立体视觉法求表面方向 6.3.2 松驰法   根据一幅图象的影调能否恢复物体形状呢?人们可以根据印在画报上的单张相片估计出人物面部的形状。这说明单幅图象中已经包含了足够的信息,或我们已经不自觉地引入了附加的假设。许多表面是在深度上没有不连续点的平滑表面,还有的表面其偏导数也是连续的,更多的物体是具有分片的平滑表面,不连续点只集中于物体的边缘。平滑性的假设提供了很强的约束,表面上相邻区域的方向不能任意假设,它们必须相互匹配以构成一个连续的平滑表面。因此可以利用平滑性设计全局的表面方向估计方法。   早期研究得较多的是特征带扩展法(Characteristic Strip Expansion)[Bru 79, Hor 77]。这种方法先求得表面上沿某一特定方向的曲线上的表面形状,然后逐步扩展求取整个表面的形状。但这种方法有不少实际困难,其中包括对测量噪声比较敏感和需要采取特殊措拖来避免作数字微分方程积分时,由于误差积累造成相邻特征带相互交叉的问题等。同时,这种方法也难以利用在遮挡边界处可得到的关于表面方向的信息。最后,这种方法缺乏生理视觉机理的支持和难以并行实现。以下将介绍一种迭代的方法,这种方法能方便地结合边界上的其它附加信息,这就是松驰法。为了利用表面遮挡边界处的信息,需要修改原来用梯度空间表示方向的方法。因此,先介绍一下球极平面投影。然后介绍表面平滑性约束,最后介绍松驰法本身。 6.3.2.1 球极平面投影(Stereograph Projection)   表面方向的一种表示方法是应用高斯球面,而梯度空间则是由高斯球面的日晷投影产生的。这种投影方法虽然简捷,但会使高斯球面赤道上的表面方向产生无穷大的值。克服这种困难的一种方法是采用球极投影。 我们可以把表面方向与被称为高斯球面的单位球面上的点对应起来。具体方法是,假试我们取物体表面上的一小块区域,并把它放在球面的中心,但不改变此小区域在空间中的姿态。此小区域的法线将朝着球面上的某一点。因此,这点就表示相应表面的方向(图6-14)。例如,水平表面的方向将可由球面的北极点表示。  图6.14 物体的表面小区域,如其方向朝向相同则与 高斯球面上同一点相对应,与它在物体上的位置无关   如果我们从无穷远处观察物体,即景物向图象平面作垂直投影。这时视线与表面法线之间的夹角与该区域在物体上的位置无关。因此,在研究光线反射的几何问题时我们只需与高斯球面上的点所代表的表面方向发生关系。 因为高斯球面是立体的,用它来表示亮度与方向之间的关系并不方便,因此需要把高斯球面投影到平面上去。有许多投影方法。其中一种称为日晷投影,具体方法是:作一与Z轴平行并通过高斯球面球心的轴,此轴与高斯球面相交的上、下两点分别称为北(N)、南(S)两极。以球心作为投影中心,可把北半球在上各点在北平面上投影为。所以高斯球面北极的切平面实际上就是梯度空间(图6.15(a))。梯度空间的缺点是如果我们要避免多义性,那么只能把半个球面投影到切平面上去。   我们经常需要研究面向观察者的表面区域,这样区域的方向相应于北半球面上的点。但对另一半球面上的方向也需要。例如,在从后面照明时,对光源方向的说明要用另一半球面上的点。此外,在遮挡边界上表面区域的方向相应于高斯球面赤道上的点,在梯度空间中这就要投影到无穷远处,这是用梯度空间表示方向时遇到的另一个困难。   克服这些困难的一种方法是用球极平面投影。这时还是投影到北极的切平面,但投影点是在南极(图6.15(b))。球面上的点,除了南极以外都能投影,赤道投影到半径为2的圆周上。球极平面空间中的坐标叫。图6.15所示为高斯球面和北极切平面的横截面。使球心与球面上的点相连并与北极切平面相交得日晷投影,南极与球面上的点相连并与北极切平面相交可得球极平面投影。不难证明这两种投影的变换关系是:  (a)  (b) 图6.15(a) 日晷投影或球心投影                  (b) 球极投影  以及  球极空间的另一个优点是,它是高斯面的保角投影。这就是说球面上的角度无畸变地投影成平面上相同的角。但它的一个缺点是当用球极坐标表示时,某些公式较为复杂。   采用球极平面投影以后,辐射方程的形式因用代替了而略有不同,但不会改变表面亮度约束表面方向的基本思想。 6.3.2.2 表面平滑约束的公式化   为求解辐照方程需要适合于球极坐标的平滑性约束。封闭回路约束对球极平面投影是不适用的。如果某种约束表示了表面平滑性,那么这种约束应该不论采用何种投影法都是有效的。用相邻点之间的关系来表示平滑性准则是合理的。平滑函数的标准定义是:这个函数具有连续的一阶偏导数。这跟我们对什么样的函数构成平滑表面的直观感觉相一致。这就是说,高度作为图象坐标的函数,应该是连续的。但我们同时要求表面方向是连续的。因为如果表面具有尖锐的边缘或波纹,那么此表面就不能被认为为是平滑的。换言之,平滑性也要求高度的一阶偏导数是连续的。   是否应该要求高度的二阶偏导数也是连续的,或等价地要求方向的导数是连续的?以下的论证表明这是不必要的。设想一个平面与部分圆柱面相接触,使这两个表面在接触处相切(图6-16)。表面方向在平面部分不变,但在圆柱部分是变化的。因此,表面方向是连续的,但它的导数是不连续的。然而,人们的感觉认为这个表面是平滑的。 图6.16平面与圆柱面相切 1. 表面方向的连续性   如果相邻点映射到相邻点,则此函数是连续的。如果函数取向量值,则此函数连续意味着函数的每个分量是连续的。这就使我们可以分别考虑表面方向的每个分量。例如,在球极平面中,我们可以分别用公式来表示分量的连续性。我们利用连续性的标准定义:   如果给定任何,存在一个,使得当:  时  那么函数在处连续。   如果任给一,对所有在所研究的区域中的点,可以找到单一的值,那么函数是一致连续。   实际上,我们所涉及的是在网格节点处有定义值的离散点网格。如果,网格的间隔为,小于,那么可保证:    在这里我们应记住:我们所假设的随图象坐标连续变化的函数正是表面方向。因此,如上所示的方程可用于。 2. 误差项的累计   为求得所计算表面偏离平滑性的程度,我们将检查如下所示的误差项:    我们对网格上所有相邻节点对的差值平方求和。当网格间隔变小时,单位面积中的节点数就很大。所以,当我们减小网格间隔时,所有差值的平方和应该保持很小。为能做到这点,我们实际要求方向的导数存在,而且是有界的。假设相对于的偏导数的最大绝对值可表示为,那么误差项的平方将小于    因为单位面积中的节点数等于,我们可求得误差的平方和小于。请注意,如图6-16中虚线处的方向导数不连续不会构成问题。 6.3.2.3 边界信息产生的约束  图6.17 遮挡边界上的表面法线方向   在图象的某些区域我们可以直接确定表面的方向。例如,在奇异点和镜面反射点就是这样的。迭代求解过程需要的初始值就是用这种方法求得的。更重要的是,在遮挡边界我们可以根据轮廓确定表面方向。这就向我们提供了所有重要的边界条件。   1. 遮挡边界   在遮挡边界我们可以唯一地确定表面方向。以下两个事实是我们根据轮廓确定表面法线的出发点:   (1) 因为我们观察表面上的遮挡边界时,表面与观察者之间的连接线必须与边界点上的表面区域相切。(图6-17)。这样,视线位于视线掠过表面处的切面中。因此,视线垂直于这些点的表面法线。   (2) 视线垂直于图象平面(因为现在我们在垂直投影的条件下研究)。由此可知切面垂直于图象平面,并在图象中投影为一条线。这条线与图象平面中的轮廓相切。   由此,我们可看到图象平面中轮廓的法线与遮挡边界上相应点处的表面法线相平行,而图象平面中轮廓的法线是已知的。用这种方式可求得遮挡边界上所有点的表面法线,这些方向都投  影到空间中半径为的圆周上。因为遮挡边界上表面的方向垂直于观察者的视线。 2. 自阴影边界(self-shadow boundary)   设想有一个单独的点光源。表面上的自阴影边界是由下面这样的点组成的:在这些点的切平面中包含光线,即光线在自阴影边界处掠过表面,并与表面法线垂直(图6-18)。现在的困难是切平面在图象平面上的投影不是一条线。所以,我们不能唯一地确定自阴影边界上的表面方向。如果作某些假设,那么可计算近似的表面方向。这是有用的,因为可把这些近似值用作  图6.18 自阴影边界的表面方向 迭代算法的初始值。一种可能的假设是:自阴影边界位于与光线垂直的平面中。例如,当物体是球面时就是这样的。当物体是椭球状时,这是相当精确的近似。   设光线方向上的单位向量为,自阴影边界在图象平面上的投影为阴影边界。在图象平面中垂直于阴影边缘的单位向量为(从阴影边指向光亮边)。自阴影边界在与光线垂直的平面内,在此平面内的切线同时与和垂直,所以它必然平行于,阴影边界上的表面法线必然既垂直于这条切线,也垂直于光线。因此,阴影边界的表面法线必须平行于:    当入射光线与图象平面平行时,上述向量消失。这表明在这种情况下,即使作了边界位于与光线垂直的平面中的假设也不能确定阴影边界上的任何表面法线。相反地,当光线在观察者的方向上时,即使不作假设也完全可以确定表面法线。因为这时阴影边界与遮挡边界相重合。   确定阴影边界处表面法线时的误差不会导致最后计算结果的误差。因为这些误差只影响初始值。诚然,较合适的初始值会减少为得到准确值所要求的迭代次数。请注意,表面法线在自阴影边界上与光线垂直的条件已蕴含在方程式之中。 6.3.2.3 松驰算法[lke 81]   在下述迭代算法中利用两种约束:一种来自图象的辐照方程;另一种来自平滑性约束。此外,算法依靠遮挡边界提供边界条件和少数特殊点提供有用的初始值。   可以用以下公式来量测对平滑性的偏离:    偏离辐照方程的误差可表示为:  其中是在点观察到的图象亮度,是以和这两个方向分量为自变量的函数。我们寻找使得在所有节点上的误差项之和最小的解,即使下式为最小的解:  其中系数是图象辐照方程误差相对于平滑性误差的加权系数,为求得误差项之和的最小值,把相对求微分,得到:   其中是的局部平均     如果我们所得到的这组值构成使误差最小问题的解,那么对的偏微分为零。假设这些偏微分为零,那么我们的任务是求解下述形式的方程组。在每个结点,即图象象素处都有这样的一对方程,所以在整幅图象素处都有这样的一对方程,所以在整幅图象范围内方程组的规模是很大的。求解这样大规模的方程组可用Gauss - Jacobi方法,Gauss - Seidel方法或下述的松驰法。方程组可重写成:     我们可以把上述方程理解为在的梯度方向上作大小正比于图象辐照方程中的剩余误差的调整(调整的幅度也可由参数控制)。再则,我们可以看到,当的梯度为零时,这就如在奇异点所产生的情况那样,将可根据周围点的方向值求取某一点的方向值。   这里的基本思路是,在连续的迭代中,前后两次相应的值和值之间的差在迭代过程中将减小。因此,我们可以利用右面的第次迭代得到的结果去计算左面第次迭代的值。在某些条件下,这个方法收敛到原始方程组的解,因此我们可以利用规则   其中用于对以及的偏导数求值。为了避免一种特定种类的数字不稳定性,可利用略为不同的公式:   在遮挡边界或自阴影边界处求得的表面方向可作为上述迭代算法的初始值。在未知方向的点处可取作为初始值,经过几次迭代以后,这些初始假设就会传播到其它区域。   图6.20所示为上述算法应用于图6.19所示图象时,在迭代过程中的阶段结果。图6.19  图6.19 光源靠近观察者并从远处照射朗伯球面时的合成图象 图象为单个远距离光源照射朗伯球面,并且观察者靠近光源时所看到的情况。它是根据表面的模型和朗伯表面的反射特性通过计算产生的。这时遮挡边界与自阴影边界相重合。根据图象中物体的轮廓可以求得物体表面在遮挡边界处的法线方向。从图6.20所示的针状图象可看到:在迭代过程中,这些已知的表面方向信息在逐步地向原来假设的区域传播。如果迭代是收敛的,那么最后可得到在整幅图象中都满足辐照方程和平滑性约束的解。  图6.20 在迭代不同阶段中所得针状图 (a) 根据边界信息产生的初始表面方向;(b)15次迭代后的结果;(c) 30次迭代后的结果 6.3.2.4 讨论   具有均匀反射特性的平滑曲面的图象通常呈现出亮度的明暗变化,或影调。这是由于照明、表面形状、物体材料的反射特性和成象几何位置等因素相互作用的结果。根据影调恢复物体形状的问题可看作是从图象的亮度数据中抽取形状的信息。因此是成象过程的逆过程。   由于好几种因素混合在图象亮度数据中,所以,如果没有附加信息则无法从中抽取形状信息。在抽取形状信息的问题中反射图的应用起重要作用。反射图说明了表面的辐射率随表面方向变化的规律。反射图可根据双向反射分布函数和光源分布由计算得到[Horn 78],但通常更为现实的方法是用实验的方法来确定。例如,通过标定已知形状物体的方法。反射图反应了表面反射特性、光源的强度和分布等信息。   在采用反射图求解时意味着假设在给定的景物情况下,从表面小区域中发出的辐射率只取决于表面的方向,而与它在空间的位置无关。这就要求光源和观察者离景物足够远。所以这里假设是通过垂直投影成象,并且表面具有均匀的反射特性。   已知图象和反射图,那么根据影调恢复形状问题可看成是在图象的某个区域中寻找满足下述辐照方程的表面。  其中  与此同时,表面还要满足区域的边界条件。分别为对和的一阶偏导数。(为了利用遮挡边界上的表面方向信息,采用球极平面投影来代替)。从数学上看,这是个解一阶非线性偏微分方程组的问题。它可转化为寻找使亮度误差积分  最小的表面方向场(Surface orientation)的问题。用变量计算中的欧拉方程(Euler equation),即寻找导数为零的极值点的方法来求解这个问题,但由于可能存在无穷多个方向场满足上述条件,所以从本质上讲这是个病态(ill - posed)问题。为了解决这个困难可采用正则化技术(regularization technique),也就是在积分中增加附加的项,其中,,也就是增加表面平滑性约束。这时就要求使下述积分最小的表面方向场  这就是在6.3.2.3中介绍的由lkeuchi和horn提出的方法。这个方法求解尽可能平滑的表面。这里需要指出的是,如果表面是平滑的,那么表面方向应具有可积性(integrability),但上述正则化方法并不能保证这一点,所以Horn[horn 86]提出了新的改进方法可以强制保证可积性,并具有若干优点。 Oliensis和Dupuis[Oli 92]提出了一种能充分利用奇异点约束的方法。这种算法简单、快速,并在许多情况下可收敛到正确的解。Tagare和de Figneiredo[Tag 93]把反射图从朗伯和镜面材料表面的情况推广到实际的漫反射表面的情况。 参考文献 [Bal 82] Ballard, D.H., and Brown, C.M., Computer Vision, Prentice-Hall, INC, 1982. [Bru 79] Bruss, A.R., Some Properties of discontinuities in the image irradiance equation, AI memo 517, Artificial Intelligence Laboratory, MIT. [Hor 77] Horn, B.K.P, Understanding image intensities, Artificial Intelligence, Vol.8, No.2, pp.201-231. [Hor 79] Horn, B.K.P., Sojoberg, R.W., Calculating the reflectance map, Applied Optics, Vol.18, No.11, PP.1770-1779. [Hor 86] Horn, B.K.P., and Brooks, M.J., The variational approach to Shape from Shading, Computer Vision, Graphics and Image Processing, Vol.33, 1986, PP.174-208. [Hor 90] Horn, B.K.P., Height and gradient from Shading, Int. J. of Computer Vision, Vol.5, No.1, 1990, PP.37-75. [Ike 81] Ikeuchi, K., and Horn, B.K.P., Numerical Shape from Shading and occluding boundaries, Artificial Intelligence, Vol.17, No.1-3, Aug, 1981, PP.141-183. [Ike 83] Ikeuchi, K., Constructing a depth map form images, AI memo 744, Artificial Intelligence Laberatory, MIT, Aug. 1983. [Oli 92] Oliensis, J, and Dapuis, P., Direct method for reconstructing at Amherst, 1992. [Tag 93] Tagare, H.D.and deFigueiredo, R.J.P., A framework for the construction of reflectance maps for machine vision, Computer vision, Graphics and Image Processing, IU: Vol.57, No.3, 1993, PP, 265-282. [Woo 80] Woodham, R.J., Photometry method for determining surface orientation from multiple images, Optical Engineering, Vol.19, No.1, PP.139-144.