留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于像素点分类和颜色分割的树型滤波立体匹配

高申勇 戈豪豪 张桦

高申勇, 戈豪豪, 张桦. 基于像素点分类和颜色分割的树型滤波立体匹配[J]. 电子科技大学学报, 2017, 46(3): 606-611. doi: 10.3969/j.issn.1001-0548.2017.03.021
引用本文: 高申勇, 戈豪豪, 张桦. 基于像素点分类和颜色分割的树型滤波立体匹配[J]. 电子科技大学学报, 2017, 46(3): 606-611. doi: 10.3969/j.issn.1001-0548.2017.03.021
GAO Shen-yong, GE Hao-hao, ZHANG Hua. Tree Filter Matching Method Based on Pixel Classification and Color Segmentation[J]. Journal of University of Electronic Science and Technology of China, 2017, 46(3): 606-611. doi: 10.3969/j.issn.1001-0548.2017.03.021
Citation: GAO Shen-yong, GE Hao-hao, ZHANG Hua. Tree Filter Matching Method Based on Pixel Classification and Color Segmentation[J]. Journal of University of Electronic Science and Technology of China, 2017, 46(3): 606-611. doi: 10.3969/j.issn.1001-0548.2017.03.021

基于像素点分类和颜色分割的树型滤波立体匹配

doi: 10.3969/j.issn.1001-0548.2017.03.021
基金项目: 

国家自然科学基金面上项目 61471150

科技部国际科技合作专项项目 2014DFA12040

浙江省重点科技创新团队项目 2011R50009

浙江省自然科学基金面上项目 LY13F020033

详细信息
    作者简介:

    高申勇 (1981-), 男, 博士生, 副教授, 主要从事立体视觉匹配和智能机器人控制技术方面的研究

  • 中图分类号: TP391.41

Tree Filter Matching Method Based on Pixel Classification and Color Segmentation

图(4) / 表(1)
计量
  • 文章访问数:  4410
  • HTML全文浏览量:  1347
  • PDF下载量:  156
  • 被引次数: 0
出版历程
  • 收稿日期:  2016-03-08
  • 修回日期:  2016-05-05
  • 刊出日期:  2017-05-01

基于像素点分类和颜色分割的树型滤波立体匹配

doi: 10.3969/j.issn.1001-0548.2017.03.021
    基金项目:

    国家自然科学基金面上项目 61471150

    科技部国际科技合作专项项目 2014DFA12040

    浙江省重点科技创新团队项目 2011R50009

    浙江省自然科学基金面上项目 LY13F020033

    作者简介:

    高申勇 (1981-), 男, 博士生, 副教授, 主要从事立体视觉匹配和智能机器人控制技术方面的研究

  • 中图分类号: TP391.41

摘要: 针对树型滤波匹配算法只需颜色一个要素计算权重而引起的匹配错误,提出一种基于像素点分类和颜色分割的树型滤波局部立体匹配算法。首先,在计算初始匹配代价时,按照稳定度将像素点分类;其次根据参考图像的颜色信息将其建立为代价树,并在建树的过程中根据颜色分割约束获得颜色分割图像;利用颜色分割图像和像素点分类信息,改进代价树中各边的权值;最后执行树型滤波,并获得稠密的视差图,从而完成立体匹配。采用Middlebury数据集进行的实验结果表明,该算法相比传统的树型滤波算法,在各区域的精度上都有一定的提升。

English Abstract

高申勇, 戈豪豪, 张桦. 基于像素点分类和颜色分割的树型滤波立体匹配[J]. 电子科技大学学报, 2017, 46(3): 606-611. doi: 10.3969/j.issn.1001-0548.2017.03.021
引用本文: 高申勇, 戈豪豪, 张桦. 基于像素点分类和颜色分割的树型滤波立体匹配[J]. 电子科技大学学报, 2017, 46(3): 606-611. doi: 10.3969/j.issn.1001-0548.2017.03.021
GAO Shen-yong, GE Hao-hao, ZHANG Hua. Tree Filter Matching Method Based on Pixel Classification and Color Segmentation[J]. Journal of University of Electronic Science and Technology of China, 2017, 46(3): 606-611. doi: 10.3969/j.issn.1001-0548.2017.03.021
Citation: GAO Shen-yong, GE Hao-hao, ZHANG Hua. Tree Filter Matching Method Based on Pixel Classification and Color Segmentation[J]. Journal of University of Electronic Science and Technology of China, 2017, 46(3): 606-611. doi: 10.3969/j.issn.1001-0548.2017.03.021
  • 立体匹配算法在计算机视觉的发展上起着举足轻重的作用,是近年来计算机视觉研究领域的一个大方向。立体匹配算法旨在找出左右图像对中的对应点,获得其视差值,进而利用视差值和深度值的关系,得到深度信息,以完成立体匹配的过程。文献[1]根据其研究与总结,将立体匹配算法划分为初始匹配代价计算、代价聚合、视差初始计算、视差求精4个步骤。立体匹配算法分为全局算法和局部算法两种。全局算法主要预先定义一个能量函数,通过迭代使其能量函数最小化来获得匹配结果。该方法精度非常高,但不断迭代耗费了大量的时间。常用的全局算法有图割[2-3]、置信传播[4]、动态规划等。局部算法则主要通过窗口和各相邻点权值的选取实现像素的单匹配,局部匹配算法的复杂度很低,精度不如全局算法。相比全局算法,局部算法一步到位,没有迭代过程。因此局部匹配算法的核心问题,就是在代价聚合的过程中选取合适的匹配窗口和权值以获得高精度的视差图,然后通过视差和深度的关系,由视差图所提供的信息推导出深度信息。

    最初的匹配算法通常采用固定的匹配窗口和权值,算法实现较简单。但是在低纹理区域、遮挡区域、视差不连续区域等特殊区域,匹配误差极大,所以局部匹配算法逐渐演变成基于匹配窗口和基于权重两种。文献[5]提出了一种自适应的窗口算法,该算法以待匹配点为中心,根据待匹配点与周围像素的颜色关系为每个像素点构建支持窗口。这种方法选取待匹配点周围和颜色信息更接近的像素点作为匹配窗口,能有效地避免视差不连续区域的误匹配,聚合代价更加可信。文献[6]提出了一种自适应权重 (adaptive weight) 算法,利用空间距离和颜色信息两个成份计算每一个像素点对于待匹配点的权重。这样获得的权值信息极具代表性,获得的视差图结果在精度上也取得了巨大的进步。文献[7]提出一种基于测地距离作为支持权重的方法,也取得了很好的效果。但是这些自适应权重的计算方法时间复杂度较大,在一些实时的应用场景下无法实现。

    文献[8]提出了一种树型滤波算法,该算法根据颜色信息,通过相邻像素点连接,将整个参考图像构建成一个最小生成树模型,树模型上任一像素点到其他像素点上只有一条通路,利用双向滤波计算代价权值。该算法突破了局部支持窗口的概念,利用整个参考图像上所有像素点聚合单一像素点,但直接参与计算的却只有待匹配点的父亲节点和孩子节点,这使得算法在复杂度和精度上的表现十分出色。然而由于建树过程中每个节点只和自己的相邻节点连接,导致节点的空间距离都为1,所以计算权值时利用颜色信息作为唯一标准,使得权重分配存在问题。文献[9]针对该问题,提出了基于分割树的滤波算法,并引入了初始深度信息调整权重,但是初始深度需要一次滤波计算获得,并且需要重新建树,时间复杂度消耗较大。

    基于此,本文提出一种基于颜色分割和像素点分类的树型滤波立体匹配算法。该算法利用颜色分割和像素点分类中的一些限定条件,修改参考图像构建的树结构中部分边的权值,使得权值更为合理,以获得更精确的稠密视差图,从而得到更精确的立体匹配结果。

    • 本文算法利用颜色分割和像素点分类信息对树结构中的权重进行修改,构建新的生成树结构。该算法基于以下两条假设:同一颜色分割上的像素点的视差值平滑变化;同一区域中稳定点的代价值应该向不稳定点传播。

      算法的主要流程如图 1所示。获得左右图像输入后,首先,计算初始代价值,根据初始代价中蕴含的信息对像素点进行分类,将像素点分为稳定点与不稳定点。同时,根据输入图像的颜色信息为图像构建对应的生成树,并在构建生成树同时利用分割约束进行区域分割以获得颜色分割图像。然后,基于像素点分类信息、颜色分割图像以及初始生成树共同构建改进的生成树,增加稳定点在代价聚合中的权重,减少不稳定点在聚合中的权重,为边缘区域设置惩罚值,减少不连续区域的像素点对各自区域造成的影响。最后,一次执行代价聚合和视差的计算及精化,获得稠密视差图。

      图  1  算法流程图

      本文针对原始树型滤波算法权值计算方式单一的缺点,引入像素分类集与颜色分割图改进其权值,使获得的视差图具有更高精度、更加平滑的边缘,并且在时间复杂度上并没有太大的变化。本文的贡献主要是以下几点:

      1) 将像素点分类运用到权值改进的领域,使得稳定点在代价传播中拥有更高的权值。

      2) 在构建生成树的过程中添加分割约束以获得颜色分割图像,对时间复杂度的影响很小,并且将颜色分割图像直接运用以改进权重。

    • 构建生成树的主要思想是先将参考图像视作一幅图$ G=\text{(}V\text{, }E\text{)}$,其中,V代表节点集,即参考图像中的所有像素点,E代表边集。点集中的节点pq所连成的边${{e}_{p, q}}$的值${{W}_{e}}$即为两相邻像素点的距离,像素点pq的距离为:

      $$ D\text{(}p, q\text{)}=|I\text{(}p\text{)}-I\text{(}q\text{)}| $$ (1)

      式中,$I\text{(}p\text{)}$与$I\text{(}q\text{)}$为像素点pq的颜色信息。针对每一个节点${{v}_{p}}\in V$构建一个子树${{T}_{p}}$,并通过不断的合并这些子树,最终生成一个满足以下条件的最小生成树:

      1) 图G中所有的节点都在子树T中。

      2) 子树T上的任一节点到另一节点有且仅有一条通路。

      3) 子树T中边的和值$D\text{(}T\text{)=}\sum\limits_{{{e}_{p\text{, }q}}\in {{E}_{T}}}{D\text{(}p, q\text{)}} $最小。

      构建生成树的伪代码如下:

      算法:参考图像的最小生成树构建。输入:参考图像,将参考图像视作一幅图$G=\text{(}V\text{, }E\text{)} $。输出:最小生成树$T=\text{(}V\text{, }{E}'\text{)} $,树T中包含图G中的所有节点V,但是$ {E}'$是E的一个子集,即${E}'\in E $。

      1) 计算边集E的距离信息。

      2) 边集E按距离排序,以升序重新排列边集。

      3) 初始化边集${E}'\in \varnothing $。

      4) for每一个节点${{v}_{p}}\in V $ do

      初始化子树${{T}_{p}}=\text{(}{{V}_{p}}\text{, }{{E}_{p}}\text{)} $,其中,${{V}_{p}}=V\left\{ {{v}_{p}} \right\}\text{, }{{E}_{p}}=\varnothing $。

      5) end for

      6) for每一条边${{e}_{p\text{, }q}}\in E $ do

      7) if $ {{T}_{p}}\ne {{T}_{q}}$ then

      将$ {{T}_{p}}$与${{T}_{q}} $合并成一棵新的子树

      ${{T}_{p\text{, }q}}=\text{(}{{V}_{p\text{, }q}}\text{, }{{E}_{p\text{, }q}}\text{)} $,其中,${{E}_{p}}\bigcup {{E}_{q}}\bigcup \text{ }\!\!\{\!\!\text{ }{{e}_{p\text{, }q}}\text{ }\!\!\}\!\!\text{ }\to {{E}_{p\text{, }q}}, {{V}_{p}}\bigcup {{V}_{q}}\to {{V}_{p\text{, }q}} $。

      8) 更新$ {E}', {E}'\bigcup \text{ }\!\!\{\!\!\text{ }{{e}_{p\text{, }q}}\text{ }\!\!\}\!\!\text{ }\to {E}'$。

      9) end if

      10) 当满足$ |{E}'|=|V|-1$时,跳出循环。

      11) end for

      12) return $ T=\text{(}V\text{, }{E}'\text{)}$。

    • 2.1节中的生成树构建方法,在构建生成树的同时,利用生成树结构以及其距离信息,对参考图像进行颜色分割,生成对应的颜色分割图像。

      由于物体的边缘通常都是颜色信息变化较大的区域,所以在构造生成树时,引入颜色分割约束,子树$ {{T}_{p}}$与$ {{T}_{q}}$的分割约束为:

      $$ CS\text{(}{{T}_{p}}\text{, }{{T}_{q}}\text{)}\le \text{min}\left( \text{max(}{{e}_{{{T}_{q}}}}\text{)+}\frac{\tau }{\text{ }\!\!|\!\!\text{ }{{T}_{q}}\text{ }\!\!|\!\!\text{ }}\text{, } \right.\left. \text{(max(}{{e}_{{{T}_{p}}}}\text{)+}\frac{\tau }{\text{ }\!\!|\!\!\text{ }{{T}_{p}}\text{ }\!\!|\!\!\text{ }} \right) $$ (2)

      式中,${{e}_{{{T}_{q}}}} $和$ {{e}_{{{T}_{p}}}}$分别是子树$ {{T}_{q}}$与${{T}_{p}} $中的边集合;τ是一个预定义的固定值,本文所有实验中τ=1 200。图 2为本文方法获得的颜色分割图像与经典的MeanShift算法[10]获得的分割图像的对比。可以看出,本文算法所获得的分割图像的分割效果基本准确,并且相对于MeanShift算法而言,本文算法融合在建树的过程中,不需要消耗多少额外的计算量,非常适合应用到本文的后续算法中。

      图  2  本文与MeanShift分割算法结果对比

    • 根据AD-Gradient公式[11]获得初始代价结果。将像素点根据其初始代价值中极值的辨识度分为稳定点和不稳定点两种。在计算初始代价的同时,根据像素点各深度下的代价值判断其稳定性。像素点p的稳定性为:

      $$ P\text{(}p\text{)=}\left\{ \begin{align} &\text{Stab}\quad \quad S\text{(}p\text{)}>\varphi \\ &\text{Unst}\quad \quad S\text{(}p\text{)}\le \varphi \quad \quad \\ \end{align} \right. $$ (3)

      式中,φ是一个预定义的固定值,本文实验中φ=0.04;Stab表示该值稳定;Unst表示该值不稳定;S(p) 是像素点p的极值代价辨识度,有:

      $$ S\text{(}p\text{)=}\left| \frac{{{C}_{\text{1}}}\text{(}p\text{)}-{{C}_{\text{2}}}\text{(}p\text{)}}{{{C}_{\text{2}}}\text{(}p\text{)}} \right| $$ (4)

      式中,${{C}_{\text{1}}}\text{(}p\text{)}$与${{C}_{\text{2}}}\text{(}p\text{)}$分别是代价值结果最好和次好的代价值。

    • 初始的权重计算为:

      $$ W\text{(}p\text{, }q\text{)=exp}\left(-\frac{D\text{(}p\text{, }q\text{)}}{\sigma } \right) $$ (5)

      式中,σ是一个预定义的值,本文中所有实验σ=0.08。以上权值计算中,只使用了颜色信息一个要素,而由于生成树中只能邻接节点相连,距离信息均为1,所以不能参与权值的计算。本文引入颜色分割与像素点分类,改进后的权值为:

      $$ {{W}_{m}}\text{(}p\text{, }q\text{)=}\left\{ \begin{align} &\text{exp}\left(-\frac{D\text{(}p\text{, }q\text{)}}{S\text{(}p\text{, }q\text{)}} \right)\quad \quad \text{seg(}p\text{)}==\text{seg(}q\text{)} \\ &\text{exp}\left(-\frac{D\text{(}p\text{, }q\text{)+}\mu }{\sigma } \right)\quad 其他 \\ \end{align} \right. $$ (6)

      式中,seg (p) 与seg (q) 代表像素点pq的颜色区域分割信息;μ是一个预定义的惩罚值;S(p, q) 是一个自适应的调整参数,有:

      $$ S\text{(}p\text{, }q\text{)=}\left\{ \begin{align} &\sigma \quad \quad P\text{(}q\text{)}==\text{Stab} \\ &{{\rho }^{2}}\sigma \quad P\text{(}q\text{)}==\text{Unst} \\ &\rho \sigma \quad \ 其他\quad \\ \end{align} \right. $$ (7)

      式中,ρ是一个调节值,本文实验中ρ=0.5。改进后的权值边缘区域因为添加了一个惩罚值,受另一区域的影响减小,而同一区域中的稳定点的权重增加,不稳定点的权重减弱,实现了视差从稳定点向不稳定点的传播。

    • 在获得权值之后,根据构造好的生成树结构与初始代价值进行代价聚合。如图 3所示,树型滤波分为两步,分别为从叶子节点到根节点的聚合与从根节点到叶子节点的聚合。

      图  3  树型滤波算法

      通过两步聚合,每个节点实际上只直接从其双亲节点和孩子节点获得聚合代价,但由于树型滤波的可传播性,每一个待匹配点都间接地从所有像素点中获得聚合值。$ C_{d}^{A\uparrow }\text{(}p\text{)}$为像素点p的聚合代价,从叶子节点到根节点方向的聚合为:

      $$ C_{d}^{A\uparrow }\text{(}p\text{)=}\sum\limits_{q\in \text{Ch(}p\text{)}}{{{W}_{m}}\text{(}p\text{, }q\text{)}\cdot C_{d}^{A\uparrow }\text{(}q\text{)}} $$ (8)

      式中,Ch (p) 是像素点p的孩子节点集合;$ {{W}_{m}}\text{(}p\text{, }q\text{)}$为改进之后的权值信息。从根节点到叶子节点方向的聚合为:

      $$ \begin{align} &C_{d}^{A}\text{(}p\text{)=}{{W}_{m}}\text{(Pa(}p\text{), }p\text{)}C_{d}^{A}\text{(Pa(}p\text{))+} \\ &\text{(1}-W_{m}^{2}\text{(Pa(}p\text{), }p\text{))}C_{d}^{A\uparrow }\text{(}p\text{)} \\ \end{align} $$ (9)

      式中,Pa (p) 是像素点p的父亲节点。两步聚合后,算法的代价聚合部分完成,然后通过简单的WTA公式获得初始视差图,引入左右一致性检测等方法,优化初始视差图以获得最后的精确结果。

    • 由以上方法可知,相对于原始的树型滤波算法而言,本文的时间复杂度增量,主要集中在颜色分割、像素点分类以及权重改进3个方面。假设参考图像边的数量为e,节点数量为n,视差范围为d,由文献[8]可知,原始树型滤波算法在建树方面的时间复杂度为O(e+n+2elog2n),而滤波算法的时间复杂度为O(nd)。

      在本文算法中,颜色分割中的判定条件是逐边执行的,所以颜色分割的时间复杂度为O(e),权重修改的复杂度也同样为O(e),另外像素点分类的时间复杂度为O(nd)。一般情况下,建树的时间复杂度要大于滤波算法,所以本文算法在时间复杂度上的增量是非常小的。

    • 将几个传统的树型滤波算法与本文算法的实验结果作比较。代价初始计算的方法均采用AD-Gradient方法,处理方法均采用树型结构非局部后处理方法。测试数据集是Middlebury网站[12]上提供的标准图像。首先测试4幅图像 (Tsukuba、Venus、Teddy Cones),分别测试非遮挡区域、全部区域以及边缘区域3个区域的误匹配点 (occlusion、all、disc),本文算法的参数设置如下:τ=1 200,φ=0.04,σ=0.08,μ=5,ρ=0.5。

      图 4为本文算法与其他4个经典的结果图对比。从图 4可知,本文提出的算法相比于原始的树型滤波算法,有一定的优势。在Tsukuba的桌角位置,ST-1和MST算法的前景物体的视差都会溢出,导致前景物体的视差影响到背景。而本文算法中权值经过改进之后,这样的情况可避免。另外,Cones图片中许多圆锥体的边角位置也会出现前景视差值溢出到背景范围的情况,本文的算法相对于传统的树型滤波算法,有一定的改进和提升。

      图  4  视差图对比

      表 1是更直观的数据结果。从表 1中可以发现,Tsukuba图像的整体效果提升十分明显,无论是在边缘区域还是在非遮挡区域效果均有较大改善,Venus和Cones的边缘区域的错误率,有一定程度的下降,另外,4幅标准数据集的整体的误匹配率也下降了3.1%左右。

      表 1  算法误匹配率对比

      算法 Tsukuba Venus Teddy Cones 平均误差
      nonocc all disc nonocc all disc nonocc all disc nonocc all disc
      MST 1.86 2.29 8.75 0.67 0.89 5.66 5.20 9.89 12.97 2.51 8.38 7.40 5.54
      ST-1 2.01 2.50 9.07 0.64 0.91 5.27 5.18 9.76 12.98 2.48 8.50 7.40 5.56
      本文 1.50 1.99 7.99 0.64 0.99 5.29 5.17 10.18 12.99 2.39 8.40 7.07 5.39
    • 本文提出了一种新的树型滤波算法。通过像素点分类与颜色分割改进树型滤波算法中生成树的权值,使稳定点的代价值向不稳定区域扩散,同时也保护了视差边缘区域,使得无论是在弱纹理区域,还是在视差不连续区域,代价值都变得更加合理。实验结果表明,本文算法在原始树型滤波算法的基础上,有明显的进步,并且时间复杂度上没有太大的改变。

参考文献 (12)

目录

    /

    返回文章
    返回