王 伟 任国恒 陈立勇 张效尉
在利用二维图像重建三维场景结构的过程中,场景分段平面重建算法通常可有效解决像素级重建中的匹配多义性(如在弱纹理区域)问题而快速获取场景完整的近似结构,这在城市规划、虚拟旅游、驾驶导航等领域有着广泛的应用.在实际中,由于场景结构的复杂性以及诸多干扰因素(如光照变化、透视畸变等)的影响,有效提高场景分段平面重建的可靠性与效率是一个具有挑战性的难题.
一般情况下,场景分段平面重建过程包括三个步骤:1)将图像分割为多个互不交叠的区域(即超像素).2)利用初始空间点、线段等信息获取超像素对应的候选平面集.3)利用全局优化方法推断超像素对应的最优平面,进而获得场景完整的分段平面结构.在实际中,此类算法通常存在以下问题导致可靠性与效率较低.1)与场景面片相关联的超像素通常采用图像过分割算法获取,而超像素的尺寸未得以合理的控制.事实上,超像素尺寸较大时,相应的场景面片往往由于深度变化较大而不能近似为平面;而尺寸较小时,则可能由于匹配多义性问题(如超像素仅包含单个像素的极端情况)而影响场景重建的可靠性.2)利用初始稀疏甚至稠密空间点往往不易获得完备的候选平面集,这将对后续环节场景结构的推断可靠性造成较大的影响(如当前超像素对应的真实平面并不包含候选平面集中而被分配了错误的平面).3)利用全局优化方法对场景结构进行推断时,正则项的构造通常基于具有相近特征的相邻超像素分配相同平面的假设.然而在许多情况下,具有相近特征的相邻超像素对应的平面并不一定相同,此硬性假设通常导致场景重建的可靠性较低.4)在场景重建中,不能有效地检测并滤除场景中非重建区域(如天空、地面),整体效率因此受到较大的影响.
为了解决以上问题,本文提出一种基于场景结构先验与协同优化的场景分段平面重建算法,在场景结构先验、空间点可见性与颜色相似性的基础上构造平面可靠性度量,采用图像区域与对应平面协同优化的方式对场景结构进行推断.实验结果表明,本文算法仅利用稀疏空间点即可有效重建完整的场景结构,整体上具有较高的性能.
本文结构安排如下:第1 节对相关工作进行概述;第2 节给出本文算法流程与贡献;第3 节介绍本文算法的预处理步骤;第4 节介绍融合场景结构先验的平面可靠性度量以及基于协同优化的场景结构推断过程;第5 节进行实验分析;第6 节对全文进行总结.
场景分段平面重建的目标是通过采用适当的平面近似不同的场景面片以获得完整的场景结构,包括三个关键环节,1)将图像分割为互不交叠的若干区域(即超像素);2)利用初始空间点或线段等信息构造候选平面集;3)利用全局优化方法对每个超像素对应的平面进行推断.
在相关工作中,平面扫描算法[1]通常在利用图像底层特征构造的平面可靠性度量的基础上采用究举方式确定每个超像素对应的平面.然而,由于扫描空间不易确定,其计算效率与可靠性均难以得到保证.为了克服此问题,Furukawa 等[2]假定场景中的空间点或空间平面总是沿三个正交的场景主方向分布(即Manhattan-world 场景模型),进而在由PMVS (Patch-based multi-view stereo)算法[3]获取的具有方向的初始空间点的基础上,在马尔科夫随机场(Markov random field,MRF)框架下推断完整的场景结构.然而,由于算法依赖的场景模型过于简单,在复杂场景的重建中往往产生较大的错误,如场景中的空间面片对应的真实平面的法向量与所有场景主方向均不一致时,该空间面片会被分配一个错误的平面.同样,Gallup 等[4]采用的沿多个场景主方向进行平面扫描方法以及Miˇcuˇs´ık 等[5]在由消影点检测方式获得的三个场景主方向上进行场景结构推断的方法也面临类似的问题.事实上,简单地对场景的结构(如主方向数量)进行限制或约束很难适于具有复杂结构的场景重建.
类似地,Sinha 等[6]首先采用传统的SfM(Structure from motion)方法及直线重建方法获取初始空间点及线段,然后以此推断构造场景结构时采用的候选平面集.然而在复杂场景重建中,由于初始空间点与直线比较稀疏,该算法通常会遗漏较多的场景结构细节而重建出过于简单的场景结构;此外,该算法中的图像校正与穷举式的平面拟合等过程使得适应性与效率较低.Chauve 等[7]通过在初始空间点云的基础上利用区域增长的方式获取候选平面,然后根据场景中每个空间面片相对于平面的位置,采用类似体素重建的方式,对状态进行标注以获取完整的场景结果.在实际中,当初始空间点云较为稀疏且噪声较大时,区域增长方法的可靠性往往不易得到保证,算法的整体性能可能受到较大影响.B´odis-Szomor´u 等[8]在初始稀疏空间点与图像过分割获得的超像素的基础上,在MRF 框架下推断场景的完整结构.该算法虽然速度较快,但其为了通过空间点拟合的方式获取每个超像素对应的初始平面而采用了较大尺寸的超像素,这在实际中往往会导致算法的可靠性较差.事实上,尺寸较大的超像素对应的空间点深度变化通常较大,相应的空间面片并不能简单地近似为平面.此外,如果场景中存在较多难以获得空间点的区域(如弱纹理区域),即使采用尺寸较大的超像素,可能也难以满足算法所依赖的假设,进而难以获得较好的结果.Verleysen等[9]首先利用DAISY 特征[10]描述子进行图像匹配以生成稠密的空间点,然后在此基础上抽取候选平面集以完成MRF 框架下的场景结构的推断.相对而言,由于稠密空间点通常蕴含场景更丰富的结构信息,由其生成的候选平面集往往具有较高的完备性,因而可有效保证后续环节场景结构推断的可靠性.然而,由于图像稠密匹配非常耗时,因而该算法整体效率较低.Antunes 等[11]首先采用基本对称性度量的方法估计虚拟分割平面中空间点的可靠性,并通过检测线段的方式产生候选平面集,然后在MRF 框架下推断了每个像素对应的最优平面;Raposo 等[12]在此基础上交替采用MRF 能量优化与集束优化方法对其结果与摄像机参数进行了优化.此类方法虽然在一定程度上可以克服弱纹理区域、光照变化等因素对场景重建的影响,但仍会因候选平面完备性、正则化可靠性等问题导致较大的错误.
场景分段平面重建算法通常假设图像中属性(如颜色)相近的像素构成的区域对应的空间面片由平面近似,进而将图像分割为若干互不重叠的区域(即超像素),然后采用全局优化方法推断每个超像素对应的最优平面.此类算法虽然可获得场景完整的近似结构,但由于不精确的图像过分割、不完备的候选平面集、不可靠的全局优化正则化项、不必要的区域重建等因素的影响,可靠性与精度往往较低.
为了解决此问题,本文提出一种基于结构先验与协同优化的场景分段平面重建算法,利用稀疏空间点即可有效重建出完整的场景结构,整体上具有较高的可靠性与效率,具体流程如图1 所示.
图1 本文算法流程图Fig.1 Flowchart of our proposed method
本文主要贡献如下:
1)利用场景结构先验克服了候选平面集的完备性、图像过分割质量、场景结构全局优化时的正则项等问题对场景重建过程的影响,提高了图像区域对应平面度量以及整体重建过程的可靠性.
2)提出了一种融合场景结构先验、空间点可见性与颜色相似性等信息的图像区域与相应平面协同优化的场景分段平面重建算法,利用稀疏空间点即可有效重建出完整、可靠的场景结构.
3)针对场景重建中非重建区域(如天空、地面等),提出了可行的检测与滤除方法,极大地提高了场景重建效率.
本文算法的预处理主要包括图像初始过分割、多平面拟合、场景垂直方向估计三部分.
根据场景分段平面结构先验(即具有相近特征的相邻像素属于相同的平面),本文采用Mean-shift图像过分割算法[13](或其他图像过分割算法)将当前图像分割为若干互不重叠的区域(即超像素).为了克服低精度的超像素对场景重建过程的影响,本文用从图像中检测到的线段对部分超像素进行了规范化,如图2 所示.从图2 可以看出,在图像中检测出的线段所在的直线(下文简称直线)与场景结构具有较好的对应关系,而且具有较高的可靠性(图2(a)).因而,在场景重建前利用这些直线对超像素进行再分割有利于提高部分超像素分割精度.由于场景中分别位于不同平面上的两个场景面片的特征(如颜色)较为相似,导致图像过分割时仅产生一个超像素与其对应(图2(b));而通过图2(a)所示直线规范化后,该超像素被划分为3 个与场景结构更为契合的子超像素.
图2 超像素优化Fig.2 Superpixel optimization
在以上过程中,需要注意以下两点:1)在线段检测时,许多重复线段(即在同一直线上)需要合并以减小计算复杂度;此外,为了进一步提高超像素的可靠性,需要利用不同斜率的线段(如垂直线段、水平线段等)对其进行规范化.2)为了提高后续环节平面推断的可靠性与效率,对于超像素规范化与再分割(参见第4.2 节)产生的尺寸过小的子超像素(如内部像素数小于10),应根据颜色相似度将其合并至其他超像素或子超像素.
为了后续环节采用图像区域与相应平面协同优化的方式(参见第4.2 节)推断场景的结构,本文首先利用多模型拟合算法[14]从初始稀疏空间点中抽取平面构建场景结构推断时的初始平面集.一般而言,由于初始空间点较为稀疏而且可能存在外点与噪声,导致初始平面集通常并不完备而且包含较多的外点;然而,其中的可靠平面却为场景中其他平面(如弱纹理区域对应的平面)的推断提供了较好的参考或约束条件,因而是场景完整结构推断的基础.
为了在场景重建过程中有效地融合场景结构先验,本文在线段检测的基础上,采用消影点检测方法[15]获取了场景的垂直方向.此外,由于场景中当前视点摄像机的位置已知,本文通过摄像机距离地平面的高度(如摄像车高度)与场景垂直方向确定了地平面.如图2(d)所示,场景垂直方向(箭头)及地平面(网格)可为后续环节场景结构的推断提供较好的参考条件.
为了克服超像素分割精度、候选平面集的完备性等因素对场景重建的影响,本文采用图像区域与相应平面协同优化的方式对场景结构进行推断.
已知当前图像Ir及其左、右相邻图像{Ni}(i1,2),对于超像素,本文利用以下平面可靠性度量评估其对应平面的可靠性
其中,Edata(s,Hs)与Eregular(Hs,Ht)分别表示数据项与正则项;Hs表示当前为超像素s分配的平面(4 维向量),M(s)表示与超像素s 相邻的可靠超像素(即已获得可靠平面的超像素)集合,γ为正则项权重.实验中发现,γ设置过大将导致相邻超像素趋于获取相同的平面而不利于重建场景结构细节,设置过小则不利于突出正则项的作用而导致较多的外点,而在区间[0.4,0.75]取值时,算法性能基本不变,本文将其设置为0.6.
4.1.1 数据项
数据项Edata(s,Hs)度量了为超像素分配平面Hs时的代价,主要根据图像颜色特征、空间点可见性等信息构造,具体定义为
其中,|s|为超像素s内部所有像素的总数,k为相邻图像数,Cs(p,Hs,Ni)定义为
其中,Hs(p)表示像素反投影于平面Hs上的空间点在相邻图像Ni中的投影,M为相邻图像Ni中待推断平面的区域,通常不包含任何空间点;d(x)与D(x)分别为点的当前深度值与可靠深度值;S(p,Hs(p))表示图像Ir中的像素p与相邻图像Ni中的像素Hs(p)之间的规范化颜色(即颜色值范围为0∼1)差异,具体定义为
其中,δ为截断阈值以增强颜色度量的可靠性(实验设置为0.5).
式(3)表明,如果Hs(p),则平面Hs更可能为超像素s对应的可靠平面,其可靠性通过颜色特征差异进行度量;如果Hs(p),则当d(Hs(p))>D(Hs(p))或d(Hs(p))≤D(Hs(p))时,与像素p对应的平面Hs上的空间点将被遮挡或导致可见性冲突,因而应给予不同的惩罚量.在本文实验中,相对于颜色特征差异,λocc和λerr分别设置为2 和4 时可获得较好的结果.
4.1.2 正则项
在实际中,对于城市场景,其结构除以平面为主外,平面之间的夹角通常也是特定的及多样的(如45◦,90◦等),此结构先验往往有利于引导场景重建过程以获得更可靠的结果.为此,本文对传统算法依赖的“具有相近特征的相邻超像素分配相同平面”的硬性假设进行了松驰化,进而将式(1)中的正则项定义为
其中,A(Hs,Ht)为相邻超像素s与t分配的平面Hs与Ht之间的夹角,Aprior为平面夹角先验,实验设置为[30◦,45◦,60◦,90◦,−60◦,−45◦,−30◦](角度间隔越小越有利于重建场景结构细节,但也可能导致较高的计算复杂度);λdis与µ分别为相邻平面间断惩罚量(实验设置为2)与平面夹角先验松驰参数.式(5)中的Csim为颜色特征差异,定义为
其中,(s)−c(t)表示相邻超像素s与t之间规范化的平均颜色(即超像素内部所有像素颜色均值的范围为0∼1)差异.
式(5)表明,相邻超像素s与t对应的平均颜色越相近,两者被分配相同平面或具有特定夹角的平面的可能性越高;在此情况下,较大的µ值将强制为其分配相同的平面,而较小的µ值则趋于为其分配具有特定夹角的平面.在本文的所有实验中,当µ设置为0.6 时可获得相对较好的结果.
根据平面可靠性度量,在初始稀疏空间点的基础上,本文采用协同优化的方式求取最优的图像区域(或超像素)与相应平面[16−17],其根本思想在于:将涉及多变量复杂问题的求解分解为诸多包含不同变量子集的子问题进行求解,各个子问题相应的变量之间则相互通信、协同优化,最终使得指定目标函数值(如能量值)最小化以获取全局近似最优解.具体过程如算法1 所示.
算法1.图像区域与相应平面的协同优化
输入.稀疏空间点与3 幅已标定图像.
输出.场景分段平面结构.
初始化.初始平面集H0与初始超像素集R0(参见第3 节);平面集H∅与超像素集R∅;能量最小化过程变量E0105与E0.
步骤1.根据初始平面集H0与超像素集R0确定初始可靠平面及相应的超像素(设其他超像素构成的集合为)并分别保存至集合H与R,同时累加相应的E(s,Hs)至E.
步骤2.计算中超像素或子超像素的平面并推断优先级.
步骤3.从R中选取平面推断优先级最高的超像素s并清除.
步骤3.1若超像素s为天空或地面,则放弃其平面推断.否则,生成候选平面集并计算最小E(s,Hs)值.
步骤3.2若E(s,Hs),累加E(s,Hs)至E;将平面Hs与超像素s分别保存至H与R.否则,再分割超像素s并将结果保存至
步骤3.3转至步骤3 直到∅.
步骤4.若E 下面对算法1 的关键步骤与实现细节进行描述. 4.2.1 初始可靠平面的生成 初始可靠平面(如图3(a)所示)可为其他平面的推断提供较好的约束或参考条件,是算法1 可靠运行的基础.对于包含空间点的超像素s(即空间点可投影至该超像素内部),本文根据以下条件从初始平面集中选取相应的平面作为可靠平面. 其中,Ps为超像素包含的所有空间点的集合,N(Ps,Hs)为Ps中所有空间点到平面Hs的平均距离,为所有包含空间点的超像素对应最小N(Ps,Hs)值的平均值;为所有包含空间点的超像素对应最小Edata(s,Hs)值的平均值,其在算法1执行过程中将根据当前已重建平面及相应超像素对应的Edata(s,Hs)值进行更新. 4.2.2 超像素的再分割 在推断超像素对应的平面时,有效确定其特征与平面之间的相关性是其中的关键.在此过程中,低精度的超像素往往由于其特征的不可靠性而难以获得准确的平面,因而有必要根据平面的可靠性对其进行更细致的分割.如图2(c)所示,图2(b)中的超像素(左)通过采用小尺度图像过分割参数被再分割后,相应的子超像素(右)与场景结构更为一致(如边界),这将有利于避免实际不在同一平面上的场景面片被分配相同的平面,进而可提高场景重建的可靠性. 4.2.3 超像素对应候选平面的生成 根据城市场景的结构特征,当前超像素s对应的平面通常与场景中其他平面(尤其是与其相邻超像素对应的平面)之间具有特定的夹角.因此,在产生超像素s对应的候选平面时,本文首先检测了与其相邻且已获得可靠平面的超像素集Π (如图3(b)和3(c)所示),然后,根据平面夹角先验Aprior,以场景垂直方向(参见第3.3 节)以及s与Π 边界上任意一点确定的轴线为中心旋转超像素t对应的平面Ht,进而将每个平面夹角对应的旋转平面作为超像素s的候选平面(如图3(d)所示). 在实际中,如果集合Π 中的超像素较多,以上方法获得的候选平面集可能包含较多的冗余平面(如两平行平面相距较近),因而需要进行冗余平面滤除处理(即仅保留多个相似平面中的一个)以提高场景结构推断的效率.此外,为了提高场景结构推断的精度,需要根据不同方向(如垂直、水平方向)的旋转轴确定超像素s的候选平面集. 图3 初始可靠平面与候选平面Fig.3 Initial reliable planes and candidate planes 4.2.4 平面推断优先级 对于当前超像素s,与其相邻且已分配可靠平面的超像素对其相应平面的推断具有重要的影响,为了度量此影响力以保证平面推断的可靠性,本文对平面推断优先级定义为 其中,N(s)为与超像素s相邻且已分配可靠平面的超像素总数,B(s)为这些超像素与超像素s连接边界的总长度. 由式(8)可知,如果超像素s相邻的已分配可靠平面的超像素越多,相应的连接边界越长,则超像素s对应平面推断时的约束条件越可靠,因而其对应平面应优先进行推断. 需要注意的是,在算法1 开始阶段,仅有与已分配初始可靠平面的超像素相邻的超像素具有较高的平面推断优先级,因而其相应平面将优先被推断,此后将有更多超像素获得较高的平面推断优先级.此外,如果超像素s被再次分割,在步骤2 中仅计算其子超像素对应的平面推断优先级,这将有利于提高算法1 的整体效率. 4.2.5 非重建区域检测 对于地面、天空等非重建区域,本文采用以下方法检测并滤除相应的超像素以提高场景结构推断的效率与可靠性. 1)地面区域超像素.在已知地平面(参见第3.3节)的情况下,由于摄像机位于地平面的上方,如果为图像中地平面区域的超像素s分配建筑区域的平面,则其内部像素在相应平面上的反投影空间点应位于地平面的下方.为此,对于当前超像素,本文统计了其内部像素在所有已重建平面的反投影空间点位于地平面下方比例的平均值Tground(s);如果Tground(s)>90%,则将其直接视为地平面区域. 2)天空区域超像素.本文采用以下条件进行检测. 其中,Psky(s)为图像语义标注算法[18]获取的超像素属于天空区域的概率,ϑ为相应的阈值(实验设置为0.9),的定义与式(7)相同,H为当前已重建的平面集. 在初始阶段,由于已重建平面较少,为了提高地面与天空等区域超像素检测的可靠性,本文在算法1执行过程中暂时中止了Tground(s)与Psky(s)值较高的超像素s相应平面的推断,而待其他超像素相应平面推断结束后,再采用更多的已重建平面验证超像素s是否属于地面与天空区域. 4.2.6 平面度量的可靠性 式(1)所示的平面可靠性度量,不但融合了结构先验、空间点可见性约束及颜色相似性特征,而且克服了传统算法过于依赖“具有相近特征的相邻超像素分配相同的平面”假设的缺点,因而在推断超像素对应平面的过程中往往可获得较为可靠的结果.以图3 所示超像素(不包含空间点)相应平面的推断为例,如图4 所示,由于两相邻超像素具有相近的特征,传统算法往往错误地为其分配相同的平面;而在算法1 中,此问题可得以有效解决,其原因在于:1)平面夹角先验不但缩小了候选平面的范围,而且增强了候选平面的可靠性;2)式(1)所示的平面可靠性度量具有较高的可靠性,可有效地从候选平面中确定超像素对应的可靠平面. 在算法1 执行过程中,如图5(a)所示,由于式(1)所示的平面可靠性度量的有效性,首轮迭代获得的初始场景结构基本是可靠的,其中虽然包含少许的外点或冗余,但由于较接近于真值,通常在5 次左右的迭代后可获得更准确的场景结构(如图5(b)和5(c)).图5(d)为最终重建的场景平面在图像中的对应区域,从中可以发现,本文算法获取的场景结构具有较高的可靠性,尤其对于场景中两平面相交的边缘区域(如图5(d)中矩形区域内的边界),重建效果依然很好. 图4 融合平面夹角先验的平面推断Fig.4 Plane inference based on angle priors 为了验证本文算法的性能,采用场景结构以平面为主的标准数据集与实拍城市场景数据集进行测试,具体场景与相应的图像分辨率如下: 1)牛津大学数据集[19].Valbonne (分辨率为512 像素×768 像素)、Wadham (分辨率为1 024像素×768 像素). 2)实拍城市场景数据集:City#1(分辨率1 884像素×1 224 像素)、City#2 (分辨率1 884 像素×1 224 像素). 图6 为标准数据集与实拍城市场景数据集示例图像与初始空间点在当前图像中的投影.其中,标准数据集对应的场景结构虽然简单,但有效重建其中的结构细节(如Wadham 场景中的窗户)仍具有较大的挑战性;实拍城市场景的结构相对复杂,同时存在光照变化、重复纹理、建筑区距离摄像机较远等较多干扰因素的影响;此外,相关图像不但包含多栋不同类型的建筑区域,而且建筑区域所占比例相对较小(约1/2 左右),因而其重建更易受到其他非重建区域(如天空、地面)的干扰.事实上,当建筑区域距离摄像机较远时,初始空间点以及场景重建中产生的空间点及平面的可靠性往往也较差,这对算法的整体性能将产生较大的影响. 针对当前图像,本文算法采用其左右相邻图像对相应的场景结构进行重建.本文实验环境为64 位Windows 7 系统,所有算法均采用C++实现.硬件配置为Intel 4.0 GHz 四核处理器与16 GB 内存. 图5 图像区域与相应平面的协同优化(不同颜色表示不同的可靠平面)Fig.5 Cooperative optimization of image regions and their related planes (different colors denote different reliable planes) 图6 示例图像及初始空间点的投影Fig.6 Sample images and initial 3D points 本文算法的7 个参数的具体设置在前文已进行了讨论,其默认取值与功能特征如表1 所示.本文算法对参数的设置不敏感,在对所有数据集的实验中均采用了相同的参数设置,整体上具有较好适应性. 5.2.1 评价指标 本文定义以下标准评估空间点与平面的可靠性. 1)可靠空间点.对于像素对应的空间点Pm与像素(i1,2)对应的空间点Pn,如果Pm与Pn相对于图像Ir的深度d(Pm)与d(Pn)之间的相对偏差(即(d(pm)−d(pn))/d(pm))小于指定阈值(实验设置为0.2),则认为Pm与Pn为同一空间点P,而P则为像素对应的可靠空间点. 表1 参数设置Table 1 Parameters setting 2)可靠平面.对于超像素内部所有像素,如果已重建可靠空间点的像素所占比例大于指定阈值(实验设置为0.6),则认为超像素s对应的平面Hs为可靠平面. 根据以上定义,本文采用空间点重建准确率M1与空间平面重建准确率M2度量场景重建的精度;其中,M1为已重建可靠空间点总数与已重建空间点总数之比,M2为可靠空间平面总数.此外,为了更好地展示本文算法的特征,本文也采用M1(Fir)与M1(Fin)分别表示其首轮迭代后与迭代结束后的场景结构重建准确率. 5.2.2 算法比较 为了进一步验证本文算法的性能,本文将其与文献[8−9]所述算法进行了实验对比.这两种算法均在图像过分割的基础上,通过候选平面产生、场景结构推断两个过程对场景进行分段平面重建,二者的差别在于利用稀疏或稠密空间点、多幅图像或两幅宽基线图像等信息构造候选平面集与能量函数的方式不同. 为了方便实验对比,本文在实现两种算法时做了以下调整:1)图像均采用Mean-shift 图像过分割算法并通过设置不同的过分割参数进行过分割以获得5 组超像素集,然后分别进行场景重建并从结果中选取最优者与其他算法进行实验对比;2)仅在本文算法获取的建筑区域内完成重建并从场景重建结果中剔除不可靠的平面以方便算法的定量与定性对比. 本文算法关键之处在于利用初始稀疏空间点与场景结构先验对图像区域与相应平面进行协同优化.对于当前图像,本文首先通过其与左右相邻图像进行SIFT (Scale invariant feature transform)特征[20]匹配(或其他特征匹配)的方式获取相应的匹配,然后采用三角化方法[15]求取初始稀疏空间点.图像初始过分割、线段检测、多平面拟合等预处理(参见第3 节)结果如表2 所示. 表2 初始化Table 2 Initialization 在仅知稀疏空间点的情况下,与场景结构相一致的图像区域通常难以直接通过图像过分割的方式确定,本文因此在初始阶段对图像进行了较大尺度的过分割(如图7(a)所示).在所获得的超像素中,如图7(b)所示,由于大部分超像素对应的场景面片实际上由两个或更多平面构成,最终仅有较少的超像素可确定可靠的平面. 在初始可靠平面的基础上,通过场景结构先验对场景重建过程的引导,如图7(c)所示,本文算法不但可有效地克服图像过分割质量对场景重建过程的影响,而且可对场景中潜在的平面进行可靠的探测与推断.在此过程中,初始低精度超像素根据平面可靠性度量而被再次分割,相应的平面则根据场景结构先验而不断被优化,两者即相互制约又相互促进.同时,天空、地面等非重建区域被有效地剔除,因而也极大地提高了整体算法的效率与可视化效果.在表3 中不难发现,首轮迭代后场景结构中尽管包含一定的外点或冗余,但由于较接近于真值,算法迭代结束后往往可获得更好的结果(如图7(d)与图8(a)所示). 图8(b)为本文算法最终获得的场景平面对应的图像区域.可以看出,其不但可有效重建场景的主体平面结构,而且在场景结构细节(如Wadham 场景中的窗户)以及不同平面之间的边界(如矩形区域中的边界)重建中也表现出了较好的效果. 在两种传统算法中,文献[8]的算法假设初始超像素应包含足够多的空间点以通过拟合的方式首先获取相应的候选平面,然而,在初始空间点较为稀疏且分布不均匀(如弱纹理区域)时往往会导致较大的错误(如图8(c)中部分超像素未获得可靠的平面).在本文实验中,当采用较大的超像素以包含足够多的空间点时,一些超像素对应的场景面片由于跨越多个平面或其中的空间点深度变化较大也难以获得可靠的平面.此外,由于超像素分割精度的问题,该算法获得的平面之间的边界也存在较大的偏差(如图8(c)中的矩形区域内的边界).相对而言,文献[9]的算法首先通过匹配图像DAISY 特征的方式获取了尽可能多的初始空间点,这不但有利于产生相对完备的候选平面集,而且也有利于构造更强的约束条件以提高场景结构优化的可靠性,因而可获得更好的结果.然而,如图8(d)所示,该算法仍然存在平面之间边界重建不可靠的问题(如图8(d)中矩形区域内的边界). 图7 标准数据集重建结果Fig.7 Results on standard data sets 表3 不同算法获取的结果Table 3 Results produced by different methods 在运算速度上,如表4 所示,本文算法在多平面拟合与线段检测等阶段耗时较少;在图像区域与相应平面的协同优化中,尽管超像素的再分割相对较为耗时,但由于场景结构先验的引导使得超像素对应的候选平面较少且较为可靠,因而有效保证了整体运算速度.文献[8]的算法尽管在能量函数中未考虑图像之间颜色或灰度度量,但在候选平面产生阶段占用了较多的时间,运算速度与本文算法基本相当.文献[9]的算法由于在图像稠密匹配时耗时严重,因而效率最低.实拍城市场景数据主要用于考察算法的适应性.本文实验发现,在更多干扰(光照变化较大、建筑区域距离摄像机较远、图像中的建筑区域所占比例较小等)的影响下,特别在未检测与剔除地面与天空等非重建区域时,文献[8]的算法未能重建出可靠平面,而文献[9]的算法也仅重建出较少的可靠平面.相对而言,尽管本文算法在初始阶段仅获得较少初始可靠平面(如图9(b)所示),但由于城市建筑之间也存在特定的结构先验(如位于相同的两栋建筑通常包含较多的相同平面),因而其运行依然较为可靠(如图9(c)、图9(d)与图10(a)所示).特别地,如图10(b)中矩形区域内的平面及其在图11 中的放大显示,由于场景结构先验的融入,场景中的倾斜平面与边界也可得以有效地重建.对于文献[8−9]的算法,在图像剔除天空、地面等非重建区域后,两者的重建效果皆得以较大改进,但仍存在许多区域未得以可靠重建的情况,而且存在重建边界不准确的问题(如图10(c)与图10(d)中矩形区域内的边界及其在图11 中的放大显示). 需要注意的是,如表3 和表4 所示,与标准数据集相比,3 种算法在实拍数据集上的重建精度与效率普通较低,主要原因在于:1)初始空间点质量、光照变化、建筑区域距离摄像机较远等因素导致空间点与平面度量的可靠性降低.2)建筑结构与纹理的频繁变化导致超像素再分割时产生较多小尺寸超像素,而小尺寸超像素仍存在的匹配多义性问题也可能影响平面度量以及整体场景重建的可靠性与效率.相对地,由于式(1)所示平面可靠性度量的有效性以及场景结构先验指导下的候选平面产生的可靠性,本文算法对初始空间点的质量、复杂的场景结构的复杂等因素表现出了更好的鲁棒性. 表4 不同算法的计算时间(s)Table 4 Computation time of different methods (s) 图9 实拍数据集重建结果Fig.9 Results on real-world datasets 图10 实拍数据集算法对比(不同颜色表示不同平面)Fig.10 Results produced by different methods (different colors denote different planes) 图11 图10(b)∼10(d)中矩形区域内平面结构的放大显示Fig.11 Close-ups of the plane structures in the rectangles in Fig.10(b)∼10(d) 根据以上实验结果可知,在已知场景初始稀疏空间点的情况下,通过在场景重建过程中融合结构先验,可以较好地克服图像过分割质量、候选平面集完备性等因素对场景重建过程的影响,进而可以快速、可靠地重建出场景完整的分段平面结构. 为了增强传统场景分段平面重建算法在初始空间点较为稀疏、图像过分割质量较低以及候选平面集不完备时的可靠性,同时克服其在场景结构优化时过于依赖“具有相近特征的相邻超像素分配相同平面”假设的缺点,本文在场景结构先验的基础上构建了有效的场景平面可靠性度量,并通过图像区域与相应平面协同优化的方式对场景结构进行了推断.实验结果表明,相对于传统算法,本文算法具有较高的可靠性与精度.当前,本文算法的主要缺点在于:1)过于稀疏(如仅几个)的初始空间点可能导致初始可靠平面较少且平面度量的可靠性较低,进而可能导致迭代过程提前结束;2)场景中的弱纹理曲面结构不属于本文定义的场景结构先验范畴,因而会导致场景平面度量可靠性及场景重建可靠性降低.针对以上问题:1)采用空间点稠密扩散方法,提高空间点的数量或融合空间直线信息,提高初始可靠平面的数量及可靠性,有望增强本文算法的可靠性;2)利用深度学习获取场景更丰富的结构先验(包括特定物体或几何形体),更有效地指导场景重建过程,或采用MRF 高阶能量优化的方式对场景结构进行更有效地优化,可进一步提高本文算法的精度.5 实验结果与分析
5.1 参数设置
5.2 评价指标与算法比较
5.3 结果分析
6 结论