英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料
具有可靠视差传播的立体匹配
孙寻,梅星,焦邵辉,周明才,王海涛
三星高级技术学院中国实验室 中国,北京
xunshine.sun,xing.mei,sh.jiao,mingcai.zhou,ht.wang @ samsung.com
摘要:本文提出了一种新颖的基于传播的立体匹配算法。从初始视差图开始,我们的算法选择高度可靠的像素并沿着扫描线传播它们的差异以产生密集差异结果。关键点在于用局部颜色和连通性约束为每个像素构建线段区域。像素线有效地用于计算初始视差,选择可靠的像素并确定适当的传播区域。在细化过程中有效地删除了拖影伪影。实验结果证明了该方法的性能:该方法在米德尔伯里基准中排名第五,使结果可以在几秒钟内计算出来。
关键词:立体声匹配;差异传播;线段;
- 导论
密集的双帧立体匹配是计算机视觉领域最受关注的主题之一。大多数立体算法大致可以分为两类:局部法和全局法。[1]
局部法在支持区域上独立计算每个像素的视差。匹配成本集中在该区域,并且具有最小成本的差异水平被选择为像素的输出。局部方法的性能主要取决于他们选择的支持窗口:简单均匀的方形窗口会导致实时模糊的低质量结果[2],而最近的一些技术如自适应权重[3],[4]和段支持[5]则可以产生具有相当长的运行时间的精确视差图。
全局法将立体问题作为具有数据和平滑约束的能量函数来制定,并且通过动态编程[6],图形切割[7]或置信传播[8]来最小化该函数。全局优化器可以大大抑制各种因素(如光照变化和无纹理区域)引起的匹配模糊,因此可以产生比常规局部方法更精确的结果。由于缓慢收敛的优化过程,它们通常在计算上成本较高。米德尔伯里基准[9]中的大多数最先进的算法都属于这一类。
我们的算法主要受一类方法的启发,该方法从一组子像素中产生准稠密或密集视差结果[10,11,12,13]。这些方法首先用简单的局部或稀疏匹配找到可靠的子像素技术,然后以类比增长的方式传播到相邻像素。如果在计算过程中没有全局优化的参与,将基于传播方法,通常表现出较低的计算复杂度。然而,这些方法的一个固有问题是,早期的错误匹配可能导致传播过程中出现大的差异性错误。伟和全[14]提出使用分割区域作为传播单元,这大大缓解了这个问题。分割区域可以很好地控制可靠像素的传播范围,但该算法的运行时间受到昂贵的分割过程的支配。
在本文中,我们提出了一种基于像素线段和一维传播的新颖立体匹配算法。与以前的方法[12],[14]不同,我们的算法仅沿着扫描线方向传播子像素的差异。这种一维限制使我们能够用简单的线条而不是复杂的分割区域来控制传播过程。实际上,对于每个具有颜色相似性和连接限制的像素,线段被有效地构造。这些像素线段不仅用作初始视差计算的支持区域,而且还用作精确视差传播的可靠区域。最后,通过采用垂直表决和视差过滤,我们的算法解决了由于一维传播引起的典型的扫描线间不一致问题。尽管它的简单性,我们的算法在速度和准确度方面都表现出了良好的性能,这对真实世界的立体声应用很有吸引力。
本文的其余部分组织如下:第二部分提供了算法的完整描述,第三节报告了实验结果,第四节给出了结论。
- 算法
我们算法的框架如图1所示。首先,构建像素线段(第II-A节)。其次,这些线段用于计算初始视差图(第II-B节)。第三,通过一致性检查和置信度评估来检测具有高度可靠差异的子像素(第II-C部分)。第四,使用扫描线传播和子像素生成密集视差图(第II-D节)。最后,在细化过程中删除视差图(第II-E节)。在下文中,我们将详细描述这些单独的步骤。
A. 线段构建
前言所述,在立体图像对的每个像素上动态建立沿着扫描线的线段,用作支撑区域以及可靠的传播区域。为了准确匹配和传播,每个线段中的差异应该平稳变化。对支持区域的一个简单而有效的假设是,具有相似颜色的相邻像素应该具有相似的差异(色彩差异一致性),这已经被最近的局部法广泛地使用[4],[5]。构建线段时我们也遵循这个假设。
对于给定的像素p,其线段构建过程如图2所示。从p开始,该段的左侧在终止像素p1处停止,该终止像素p1违背以下两条规则之一:
- ,其中是p1与p之间的颜色差异,是预设的阈值。色差定义为。
- ,其中是空间分布,在p1和p之间,而?是预设的最大值长度(以像素为单位)。空间距离定义为.
第一条规则保证了线条区域的颜色相似性,第二条规则对线条长度提出了限制,以避免过度平滑的视差结果和不正确的传播。正确的终点p2也可以由两条规则确定。并且p的线段由一对长度的记录值??,??:
需要注意的是,我们已经构建了水平像素线段p。如果以类似的方式构建垂直线段,我们会得到一个十字形骨架。这个骨架可用于定义一个动态2D支撑区域上的像素p,这是张等人首次提出的[15]。相比2D支持窗口[3],[4],[5],[15],我们的线段只考虑在扫描线方向上相邻的像素,但是这种简单的结构仍能提供足够的信息,视差计算和传播具有相对低计算成本,如在后面的部分所展示的。
B.初始视差计算
这一步用简单的本地方法计算初始视差结果。给定左图中的像素和视差水平?,首先通过线性组合两个简单度量来计算匹配代价:
其中???是右图像中像素p的RGB色差及其对应关系pd =(? - ?,?):
是一种成本度量,它用像素强度的相对排序对局部图像结构进行编码[16]。它被定义为分别代表p和pd的两个64位字符串的海明距离。字符串用9*7普查措施变换编码。和是拒绝异常值的阈值参数。我们采用等式(2)进行匹配成本计算的原因有两个:首先,我们通过实验发现,联合AD-Census测量显示匹配精度比个人AD和普查措施测量要高;第二,将每个像素周围的二维窗口的结构信息引入到成本中,这有助于减轻由于一维线结构造成的计算错误。
接下来,我们采用聚合步骤来减少原始匹配成本体积中的匹配歧义。汇总的成本值在p的线上计算分割:
为了全面的聚合,这一步迭代2次。最后,像素p的输出视差只需计算总成本值?2和胜者全取搜索策略即可:
以类似的方式,计算右图像的视差图??。泰迪图像对的初始视差图如图3所示,图3显示了遮挡区域,无纹理区域和不连续处的显着误差(用红色标出)。我们用传播和细化步骤来解决这些错误。
C.子像素检测
该步骤从初始视差图中检测高度可靠的子像素(也称为地面控制点),这是传播过程的良好起点。我们建议沿着图像的每条扫描线执行顺序搜索,如图4所示。从扫描线的最左边的像素p0开始,我们搜索子像素s0。如果满足以下条件,则s0被检测为#39;子#39;像素:
规则1要求s0通过左右一致性检查,而规则2规定如果像素s0的初始视差是可靠的,则其匹配成本显著小于其他竞争者。lambda;?是评估视差可靠性的阈值。当找到s0时,由于平滑视差假设,没有必要检测p0线段中的更多子像素。搜索过程跳过一些像素,移动到像素p1(p0的线段的末端)并寻找下一个子像素s1,直到它到达扫描线的末端。
图5显示了从泰迪初始视差图中检测到的子像素。与初始视差图(图3)相比,子像素中的错误差异(以红色标记)大大减少,这证明了评估条件的有效性。我们的检测方法的另一个优点是大部分子像素在深度上均匀分布不连续性,同质区域内的一些潜在子像素会随着线段跳过信息。这些像素可以帮助保持传播过程中的深度不连续性。
D.扫描线传播
这一步传播子像素的差异沿着扫描线方向,如图6所示。对于#39;非子#39;像素p,我们首先搜索其线段内左边和右边最近的子像素(s1,s2)。如果在该段中只找到一个子像素,则由于没有更多的信息可用于可靠的视差估计,所以??(p)被简单地替换为??(s1)或??(s2)。如果两个子像素都可用,则传播策略如下进行:
1)如果p在遮挡区域,。如果在左右一致性检查中失败,p被检测为#39;闭塞#39;。
2)如果p接近深度不连续性,。如果,则出现深度不连续是最大差距水平。
3)在所有其他条件下,由和的线性内插结果代替。
一旦像素p被更新,它立即被标记为后续像素的#39;子#39;像素。如果在p的线段中没有找到子像素,则p保持不变。在扫描线传播过程之后,用最近的子像素的最小视差值更新剩余的“非子”像素。
这种传播过程与传统的基于动态规划的算法有一些相似之处[10],[11],[17],因为它们都沿着扫描线方向工作。然而,这两种方法之间存在一些根本的区别:首先,大多数基于DP的方法都是在完全匹配的成本体上进行操作,而我们的传播过程仅在图像空间中工作,这导致低得多的计算成本;其次,对于DP算法,颜色不一致性假设通常作为软约束添加到能量函数中,而对于传播,则用线段表示,然后用作硬约束将视差值直接分配给“非子”像素。对于由于图像噪声或大量遮挡而导致该假设不成立的图像区域,传播过程可能不如DP算法那样稳定。
更新后的泰迪视差图如图7所示,该图显示了遮挡区和深度不连续性初始视差结果的巨大改进。我们的扫描线传播的一个问题是线段可能导致可见的条纹伪影,这是需要的通过细化过程来解决。
E.差异细化
这一步以两步过程细化视差图。
垂直表决:由于视差计算依赖于水平线段,因此可以通过从垂直方向包含更多视差信息来减少拖尾伪影。对于每个像素p,带有窗(是最大差距水平)的直方图是为表决计划而设置的。我们以像素为开始,以像素为结束,在垂直线段中收集?的差异表决:对于该行中的任何像素q,如果色差??(q,p)小于阈值tau;,则视差??(q)上的表决增加1。在表决过程中考虑颜色相似性。??(p)更新为最终表决结果:
在一维表决过程之后,大面积的大多数横向条纹伪影可以被有效地缓解。我们进一步采用[18]中的4邻更新方法去除小尺度伪像和异常值。
具有双边过滤的4邻更新:
适用于像素p,从它的四个相邻的不一致区域被收集.然后更新如下:
其中q是一个方形窗口中的一个像素,在p上,?(q,p)是双边量值:
并且.
在操作中,对于所有数据集,?p的大小设置为11times;11。更新后的??(p)值直接用于后续像素的计算。这种方法进一步增强了通过在四个连接的邻域中传播良好匹配来实现扫描线间一致性。精炼的泰迪视差图如图8所示,其中显示的大多数拖尾伪影和异常值通过两个细化步骤被有效去除。
- 实验结果
我们用米德尔伯里基准测试我们的算法[9]。测试平台是一台配备Core2Duo 3.0GHz CPU和2GB内存的电脑。表1给出了参数,对于所有的数据集都保持不变。
表1 中断数据集的参数设置
图9显示了中间和最终视差结果,该图显示了该算法的有效性:使用子像素检测,扫描线传播和适当细化,从初始结果中逐渐消除各种误差。使用像素线段,我们的算法在无纹理区域和深度不连续处表现良好。定量结果列于表2。所有数据集均达到满意的差异结果。在提交时(2011年12月),我们的方法在米德尔伯里数据集中排名第五,当考虑到计算过程中没有涉及全局优化时,这是令人印象深刻的。
表2 米德尔伯里 BENCHMARK的排名,不同区域的错误百分比(nonocc,all,disc)都会显示出来
我们的算法的另一个优点是我们不执行任何分割操作。大多数计算是在每个像素的线段中执行的,这会带来相对较低的计算成本。四个数据集(筑波,金星,泰迪和锥体)的运行时间分别为2.5秒,3.8秒,8.7秒和8.6秒,这在米德尔伯里的前10种算法中具有竞争力。算法中最耗时的部分是初始视差计算步骤,通常需要大约50%的运行时间。
我们在米德尔伯里2005,2006数据集中进一步测试了我们的算法[19],[20],并且在图10中给出了一些结果。为了验证算法的鲁棒性,我们仍然使用在表1中的参数设置.没有任何参数调整,我们的算法显示这些图像对相当稳定的性能,并产生令人满意的差距结果。
最后,根据图9和图10中显示的错误区域,我们简要讨论一些限制和可行的算法的改进:
首先,我们的算法依赖于由局部颜色和连通性约束构成的线段。对于大多数具有理想图像数据的米德尔伯里数据集,这些区域可以高精度构建,但对于实际的室内和室外场景,噪声和光照变化可能会严重影响图像质量,从而导致不正确的线条构造和大量计算错误(图10(e))。双边滤波可以在不破坏局部结构和边缘的情况下抑制图像噪声[21],这可以用作线路构建步骤之前的预处理;
其次,我们的算法执行沿扫描线方向的计算。对于一些具有较大遮挡的区域,在一维邻域中可能没有可靠的像素,从而将错误的
全文共10302字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[14646],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。