基于单幅图像的3D重构是计算机视觉领域最具挑战性的研究热点,由于其所能提供的信息非常有限,因此是一个经典的非适定病态难题。但是,对于人类视觉系统来说,可以借助一些关于所研究对象的先验知识或日常经验常识来从单幅2D图像恢复3D模型。因此,很多研究人员根据这个原理,提出了很多假设条件,如几何形状的平坦性 [13] 、平行性及垂直性 [33] 、表面纹理的畸变性 [23] 、局部表面平滑性 [34] 、明暗渐变性 [14] 、散焦或聚焦性 [25] 、人机交互方法 [35] 等,试图根据单幅图像再现空间场景。这些方法统称为有约束重构问题。它们的缺点是,这些先验知识一般是试探性的,仅适合于特殊场合或特定领域问题,如人脸 [36] 、建筑物 [28] 、医学图像 [37] 等,难以推广到一般模型。
从数学原理角度看,基于单幅图像的3D重构主要依据图像中包含的深度信息z(x,y)、表面法向N(x,y,z)、表面梯度(p,q),以及表面的倾角和斜角等信息恢复表面形状。图 1.7是一个典型的例子。
图1.7 根据表面法向重构表面形状
上面所述的深度信息可以是相机和对象表面点之间的距离,也可以是表面与参考平面xy- 之间的相对距离。表面法向是指垂直于对象表面某点的切平面的法向。表面梯度(p,q)=(∂z/∂x,∂z/∂y)是指深度信息在 ,xy方向上的变化率。倾角φ和斜角θ是指表面点相对于法向的角度,可表示为(x,y,z)=(l sinφcosθ,l sinφsinθ,l cosφ),其中l是表面法向的一个度量。在计算机视觉中,从图像恢复形状的技术统称为 SFX(Shape From X),其中的X可以是明暗度(shading)、纹理(texture)、立体视觉(stereo)、运动(motion)等。目前较有影响的是SFS和SFT,下面分别做一些探讨。
SFS是计算机视觉中的经典研究热点问题,主要根据图像中明暗(阴影)渐变性来恢复表面法向和表面形状(深度)。其基本步骤是:首先将图像的像素光亮度(有时称为光强)模型转化为表面几何的函数,然后恢复一个表面,再生成一个图像,以逼近给定的原图像。
1.阴影几何基础
艺术家们很早就注意到阴影在3D绘图中的重要性,可用来表示场景的表面形状或空间位移。图1.8展示的虽然是2D图像,但仍然表现出强烈的3D结构。
图1.8 阴影在3D表面感知中的重要作用
图1.8 阴影在3D表面感知中的重要作用(续)
(1)内阴影由物体对象在自身形成。沿着内阴影边界的点提供了表面形状约束,可作为表面感知的边界约束。内阴影包括两种类型:attached阴影和cast阴影。attached阴影区域包含了法向方向背离光源方向的表面上的点,而cast阴影区域包含的点面向光源,但被表面的一个末梢部分遮挡,也就是说,cast 阴影区域包含了表面上被遮挡的点,如图1.9所示。
图1.9 attached阴影和cast阴影
(2)外阴影由一个发光的物体投射光线到另一个物体上而形成。外阴影轮廓提供了表面的几何信息,而内阴影提供了表面上明暗图案的一个粗糙的感知结果。
不过,由阴影提供的信息性质上不同于由明暗提供的信息,前者本质上包含在由阴影边界、表面、光照几何等构成的曲线之间的几何关系中。而且,自然观察条件下的阴影并非仅是等照度线的一种特例。这里所说的等照度线是指图像中亮度恒等的曲线集合,由多个因素决定,包括表面的内部反射及表面间的交互反射等。
阴影包含了图像分割的多种线索,至少在理论上可以被准确度量。人们研究阴影,目的是构造SFS方法,可用于解决计算机视觉领域的多个问题。例如,沿着内阴影边界的点提供了表面形状的约束,可用于表面插值的边界条件。在阴影内部区域,如被遮挡的轮廓,可用于约束SFS。
基于阴影边界的主要约束是:①沿着一个attached阴影轮廓的点处的表面法向垂直于光源方向;②图像中位于同一光束的attached和cast阴影中的点,位于3D中同一光束上。虽然SFS问题是显著约束不足的,但人类却可以感知出唯一的、稳定的形状。
感知SFS的理论线索主要有以下几个方面。
(1)反射图。将场景图像的光亮度表示为3D表面方向的一个函数,忽略阴影、内部交互反射、渐晕、半透明等现象,如图 1.10所示。
图1.10 反射图与光照方向的关系
图1.10 反射图与光照方向的关系(续)
(2)等照度线也称等光亮度轮廓,是指图像中亮度为恒定常数的曲线,如图1.11所示。等照度线依赖于光源照明度和对象形状,若已知光源,可以根据等照度线图揭示出形状信息。人类视觉系统正是使用了这种线索。
图1.11 等照度线
图1.11 等照度线(续)
2.SFS理论基础
SFS是典型的非适定问题,其数学原理如图1.12所示。
图1.12 SFS数学原理
SFS的输入为图像明暗渐变性,输出为 。最著名的SFS模型是光程方程(也称短时距方程),基于一阶偏微分方程和非线性方程理论。需要假定一些约束条件,如照片是清晰的、相机已光测度标定、前置光源是平行光且分布均匀、表面是Lambertian模型且可微等,且忽略内部交互反射现象。图1.13所示的图像均符合上述假定条件。
图1.13 符合光程方程的图像示例
3.SFS技术基础
Horn [38] 首次系统阐述了SFS表面重构模式,即假设已知一个无穷远光源,物体表面呈Lambertian反射率和均匀分布的恒定反照率,平滑表面且不存在内部交互反射,并已知边界约束条件。在这样的假定下,图像中某像素的灰度级仅依赖于光源方向和表面法向。SFS的基本任务是,基于给定的单幅图像,恢复表面每一点的光源方向和表面形状,如图1.14所示。
图1.14 SFS表面重构示例
SFS方法实质上定义了表面形状与明暗之间的映射关系,即反射率函数I x,y =R(p,q),其中I x,y 表示图像像素强度, z为深度,(x,y)为3D对象空间坐标的投影。若假设为正投影,且表面为Lambertian反射模型,则得到下面的亮度约束。
其中, 是光源方向。SFS的基本任务是,估计式(1.2)中的未知量,即表面反照率ρ x,y 及表面深度z(x,y)。由于仅知道图像强度,因此,同时估计反照率和表面深度是一个病态问题。一个惯例是假设一个常量表面反照率,但仅根据这个单纯的假设来从实际图像中估计深度信息是非常脆弱的。因此,通常还需要另外强加一些约束条件。例如,Shimshoni [39] 和 Chelloppa [40,41] 等侧重研究对称物体的SFS重构问题,如人脸、车辆、建筑物等规则对象的重构。
但是真实图像并非总是 Lambertian 类型,即使假设其是Lambertian反射的,且已知光源方向,同时光亮度可以描述为表面形状和光源方向的函数,仍然难以轻易得到理想的结果。因为,假设用表面法向来表示表面形状,得到一个含有三个未知量的线性方程;而若采用表面梯度来表示表面形状,则得到一个含有两个未知量的非线性方程。所以,若想从 SFS 得到唯一解,必须附加额外的假设条件 [42,43,44] 。表1-3列出了较典型的三类方法的求解模式。
表1-3 三类经典SFS方法的性能比较
还有一种类似SFS的重构方法是SFPS,其与SFS的差别仅在于输入图像的数目,SFPS 是根据同一场景的多幅图像重构,即视向不变,而光源方向不同。
SFT模式在多年前由Gibson [45] 首次提出,指出纹理可以提供重要的形状线索。SFT通常度量图像中的纹理畸变,重构 3D表面坐标 [46,47,48] 。严格来讲,某点处的表面由表面法向与该点处的表面曲率确定。由于曲率方程相当复杂,不易于计算,因此,一般的SFT方法主要关注通过表面法向来重构表面形状,即根据纹理元素的畸变信息恢复表面法向。图1.15所示是一个葡萄的SFT结果。
图1.15 使用SFT恢复表面法向示例
SFT的输出一般是表面法向的深度图。SFT也是严重约束不足问题,要实现从图像的纹理畸变恢复表面法向,大多需要一些假设。例如,假设相机是已标定的或是正投影,也可假设纹理的类型,如各项同性的、正则性的、同质的等。
所以,SFT主要用于解决特定类型的纹理表面 [49] 。本书不进行全面探讨,在第4章仅对二进制歧义性纹理做进一步讨论。