计算机视觉的终极目标是从所“看”到的场景中识别出感兴趣的对象,即从2D图像中重构出3D对象模型,主要包含图像处理、模式识别、景物分析、图像理解等基本处理过程。但是,由于投影过程中丢失了景深信息或因遮挡而遗漏了部分有用信息,将可能导致不同形状的3D对象投影到图像平面上形成了相同或类似的图像,这就是投影歧义性。图1.4展示了常见的投影歧义性。
图1.4 常见的投影歧义性
另外,其他因素的不良影响,诸如光线差异、观察角度偏差、研究人员的认知水平与经验存在较大差距等,都可能给图像重构造成极大的困难。所有这些都可能导致基于图像的3D重构陷入一种病态。
在计算机视觉领域,基于图像的3D重构一直是被普遍关注的研究热点,也是大多数基于计算机的事件模拟和可视化应用的普遍需求,包括地学分析、机器人导航、犯罪场景复原、飞行模拟、游戏娱乐、特技表演、建筑设计、旅游指南及虚拟博物馆等。另外,3D 重构技术在考古及古迹保护方面也有特殊的应用。由于不可预测的火灾、地震、洪水、自然腐蚀、战争等天灾人祸,大量的历史文物面临抢救性保护,需要为子孙后代或历史研究保留一些珍贵遗迹,或者复原考古发现的珍贵文物,这些都需要借助3D重构技术来修复、重建。另外,3D电视的诞生和普及,也需要通过3D重构技术将现有的大量2D资源转换为3D视频。所有这些,对于人类视觉系统而言也许是轻而易举的事,但对于机器视觉而言,则面临巨大的挑战,既需要突破现有的理论瓶颈,又需要寻找合理可行的实践方法。
人眼观察到的都是3D现实世界。使用数码相机等普通设备对周围场景拍照或摄像,得到的一般是2D真实图像;或者使用3D扫描设备采集3D场景数据,再通过图像重建得到合成图像。这个过程统称为成像。图1.5演示了图像合成的数学原理。
图1.5 图像合成的数学原理
基于图像的3D重构可看成上述成像过程的逆过程,是指根据2D图像再现3D物体形状。这两个过程中的数学原理见表1-1和表1-2。
表1-1 成像过程及其逆过程的数学原理
表1-2 适定重构与非适定重构的数学原理
根据已知量的组成结构,基于图像的3D重构技术大致可分为适定和非适定两种类型。
(1)适定重构。即满足解是存在的、解是唯一的、解连续依赖于定解条件三个基本条件。图 1.6(a)表示了同一场景可以对应两幅以上不同的图像。这种情况下的3D重构理论和技术目前较为成熟,较典型的是立体视觉重构,得到了较广泛的应用。
(2)非适定重构。即上述三个条件至少有一条不满足。图 1.6(b)表示可能存在两种不同的场景对应同一幅图像。此时由于投影过程的信息丢失,致使重构所需信息严重缺乏,重构过程存在极大的偶然性,重构结果不唯一,需要在众多有歧义的解簇中确定唯一解。非适定重构目前是研究的热点,也是难点。
图1.6 适定与非适定3D重构
图1.6 适定与非适定3D重构(续)
适定重构与非适定重构的数学原理可用表1-2描述。
由上述可知,基于适定重构的立体视觉可以很好地避免3D重构的病态现象。例如,对于同一个场景,采用两个相机,从不同角度得到多幅不同视差的图像,从而可得到场景的深度信息。但是,人类视觉却可从单幅图像中轻松获得深度信息,因为人们可以利用日常积累的经验知识。因此,基于单幅图像的3D重构一直是计算机视觉领域极具挑战性的研究热点之一,在逆向工程、医学图像辅助治疗、建筑学、考古及古迹保护、地质考察、遗迹复原等领域具有巨大的应用价值。
由式(1.1)可知,基于图像的3D重构的根本任务是,根据2D图像点m求出对应的空间点M,进而估算3D场景及所包含对象的深度信息,最终解决“图像看起来像什么”的问题。其本质是从2D图像观察3D几何信息,其关键步骤是精确标定投影矩阵F。
1.基本理论
目前较常用的3D重构理论是分层重构理论,即分三个层次分别实现对象重构。第一个层次是射影重构,即从图像获得3D物体的射影结构。此阶段不需要附加任何先验知识,仅从图像本身即可获得所需信息;第二个层次是仿射重构,即利用先验知识获得物体的仿射结构,需要知道无穷远平面或无穷远单应性矩阵;第三个层次是度量重构,即利用先验知识获得物体的度量结构,一般需要知道相机的内外参数,或绝对二次曲线、绝对二次曲面等可用于标定相机参数的图像测量信息。
经过数十年的发展,目前已涌现出许多优秀的3D重构理论、技术和算法,有针对图形的,如机械制造中基于三视图的重构,主要目标是保证重构结果的真实可靠和理解上的无二义性;有针对图像的,如遥感图像、CT 图像等;有基于多视图的 [3~6] ,也有基于单视图的 [7~11] 。
2.基本方法
针对基于图像3D重构过程的主体对象,现有重构方法大致可分为两大类。一类是主动式,即利用场景或对象自身的一些特征,如几何特征和纹理特征等来提取物体表面的 3D信息并进行建模。主动式重构对工作环境、摄像设备没有特殊要求,容易实现,在军事、遥感测量、机器人导航等方面有着广泛的应用基础,受到各国研究人员的高度重视,取得了丰硕的成果,涌现出一大批有效的算法。其中最著名的是SFM(Shape From Motion,基于运动的形状表面重构) [12] ,并由此衍生出一大类算法,如SFPS(Shape From Photometric Stereo,基于光度立体视觉的形状表面重构)、SFS(Shape From Shading,基于明暗度的形状表面重构)、SFT(Shape From Texture,基于纹理的形状表面重构)、SFC(Shape From Contour,基于轮廓的形状表面重构)等。这些方法的一个共同缺陷是,当用于单幅图像的3D重构时表现为病态解,因而需要对场景做一些额外假定,并且需要具备重构对象的某些先验知识,当理想条件与实际情况有较大出入时,重构结果可能变得面目全非,而且难以获得高精度的3D信息。另一类是被动式 [13~16] ,即需要手工在物体表面做某种标记,如条纹或阴影,并且根据这些信息建模或由传感器获得三维信息。因此,这种方式需要使用专门的扫描光源等比较复杂的设备,故获取的3D信息精度较高。
目前主要是利用激光扫描的各种结构光方法,但其设备比较复杂,体积、重量比较大,造价也十分昂贵,其作用距离也比较短。目前的大多数技术都需要分析提取真实世界的2D几何特性,如垂直面 [17] 、水平面 [18] 、矩形结构 [19] 、对称结构 [20] 等。对于单幅图像通常需要交互处理,即由用户提供场景的结构信息和约束条件,如消隐点、消隐线、共面等。交互3D重构 [13,14,21,22,23,24,25,26] 不需要相机的任何先验知识,可在重构过程中根据获得的信息估计相机的各类参数。
若根据3D重构对象的不同,也可大致分为两类:一是照片几何方法,即基于照片中几何对象的模型化;二是光度测量法,主要基于光度测量模型化。不同的具体应用背景,对所需输入信息的需求也不一样。有的重构任务仅需要3D空间点的稀疏集即可,即只需要输入图像的少部分像素信息。而有的重构任务则需要稠密重构,需要考察输入图像的每一个像素的尽可能多的信息。另外还可能需要其他一些重要的信息,诸如物体对象的尺寸、形状及材质,输入图像的数量,光源或相机的相对位置等。
3.基本问题
关于3D重构,主要涉及三个问题。
(1)输入数据的数量或类型。这依赖于输入视图的多少。多视图重构 [3,4,5,6] 使用场景或对象的两个以上的视图,而单视图 [7] 仅使用单个视图。立体视图 [27] 是多视图的特例,使用两个视图。
(2)输出的一般化描述。主要有容积表示 [11] 和表面表示 [28] 。容积表示将包围物体的体积离散化为体元,从而估计可以按某种度量规则拟合输入图像的体元的占有率。表面表示法为物体构造虚拟的网状覆盖面 [29] ,即可观察的外部轮廓。一般来说,多视图重构采用一般化表示法,较少使用先验知识。
(3)先验知识的复杂性。为了保证更多的对象能被精确估计,通常定义概率密度(即能量函数)作为一种先验知识,可用于定义两个重构结果之间的微小差异。例如,容积表示中的平滑性 [30] 、削面的平坦性 [31] 、角度的相似性 [32] 、基于表面重构的长度 [10] 、能量函数的平滑性 [8] 、连接角的生存发育性 [9] 等。相比于强制约束,定义先验知识的好处是,可以针对特定数据自动训练出先验知识,而不必重新设计新的表示方法。
正如前面所述,基于图像的3D重构是一个病态逆向问题,如果没有额外的假定条件,基于单幅图像的重构可能存在无数解,这是因为存在歧义性或存在重叠图案。因此,需要附加某些假定条件以消除或缓解歧义性。但是,这些假定通常并非总是有效,尤其在实际世界中,如树、丛林等。另外,即使消除了歧义性,获得精确解仍然是个难题。因为在成像过程中不可避免地存在各种噪声和畸变失真,这些现象都难以被模型化或有效补偿。因此,根据具体的场景构型寻找一种有效、健壮的数学模型是3D重构的核心问题。例如,若已知研究对象是一辆汽车,则可使用特殊模型(对称性、轮胎椭圆性等)来约束上述重构模型。其他的,诸如城市街道、建筑物、天体图像等都可按这种思路进行。
基于单幅图像的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章仅对二进制歧义性纹理做进一步讨论。
生理学研究表明,人类视觉总是试图将图像解释为3D表面结构 [50,51,52,53,54,55] 。人类的3D感知能力是人类视觉的核心,在对世界的认知与识别中扮演着重要角色。但是,由于单幅图像3D 重构的固有歧义性,人们从不同视点观察得到的同一表面的估计结果也可能是不相同的。
计算机视觉的基础研究表明 [56] ,对于任意一个图像对,存在一个Lambertian表面,即在两种不同光照条件下产生两幅图像 [57] 。这意味着,不存在表面图像的任何一个非平凡函数,能在照度变化时保持完全不变。因此,单幅图像的3D重构问题是严重约束不足的,不可避免地存在歧义性,必须增加一些假设条件,如深度、明暗、纹理畸变等,这些性质在投影图像中留下了一些有用的暗示线索。基于单幅图像的3D重构方法正是充分利用了这些遗留痕迹。
歧义性大致可分为局部歧义性和全局歧义性两类。在局部区域,关于深度的暗示信息一般具有很大的歧义性,因此,若想从一个较小的图像窗口中恢复3D形状是不可能的。
图1.16所示即为局部歧义性,仅通过将图案上下倒置,即可产生不同的感知效果。
图1.16 局部歧义性示例
全局歧义性的情况一般存在于整体性重构方案中。图1.17所示的是in/out Necker倒置歧义性。
图1.17 全局歧义性示例——in/out Necker倒置歧义性
Necker 立方体由 Necker 等于 1832 年首次提出 [58] 。由于 Necker立方体具有很强的歧义性,常用于测试人类视觉系统的计算机模型,判断其能否达到和人类视觉系统感知一样的解释结果。如果立方体棱边以不相容方式交叉,则不可能构成几何物体,如图1.17(b)所示。人类通常不会看到立方体的一个不相容的结果。对于如图1.17(a)所示的Necker立方体,大多数人首先看到的是如图1.17(c)所示的面,这可能因为人们是从上面俯视物体,而且是从左到右扫描物体。如果换一种观察角度,会得到如图1.17(d)所示的另一种效果。
歧义性研究很重要,因为歧义性揭示了基于特定假设的自底向上重构方法的局限性,而不管所用的优化过程有多么成功。正是由于歧义性的广泛存在,使得人们对单图像3D重构的研究热情在很长一段时间内降到冰点,直到最近数年才又逐步得到重视。