«上一篇 下一篇»
  计算机工程  2021, Vol. 47 Issue (4): 268-276  DOI: 10.19678/j.issn.1000-3428.0056991
0

引用本文  

文斌, 朱晗. 基于自适应权重的立体匹配优化算法[J]. 计算机工程, 2021, 47(4), 268-276. DOI: 10.19678/j.issn.1000-3428.0056991.
WEN Bin, ZHU Han. Stereo Matching Optimization Algorithm Based on Adaptive Weights[J]. Computer Engineering, 2021, 47(4), 268-276. DOI: 10.19678/j.issn.1000-3428.0056991.

基金项目

三峡大学高层次人才科研启动基金(20171227)

作者简介

文斌(1985-), 男, 讲师、博士, 主研方向为数字视频信号处理;
朱晗, 硕士研究生

文章历史

收稿日期:2019-12-23
修回日期:2020-03-17
基于自适应权重的立体匹配优化算法
文斌 , 朱晗     
三峡大学 电气与新能源学院, 湖北 宜昌 443000
摘要:为解决现有立体匹配算法对低纹理以及视差不连续区域匹配效果较差的问题,提出一种改进的立体匹配优化算法。在传统自适应权重算法匹配代价的基础上,融合高斯差分图像差分信息,即左右图像高斯差分图的差分,重新定义其初始匹配代价,增加算法在视差不连续区域的鲁棒性,并加入边缘约束和视差边缘约束迭代聚类以及基于高斯差分图的自适应窗口算法,保证改进算法在低纹理区域的匹配性能,消除坏点与视差空洞。将该算法与传统自适应权重匹配算法分别在Middlebury数据集上进行匹配实验,结果表明,该算法平均性能提升了15.05%,明显优于传统自适应权重匹配算法。
关键词立体匹配    自适应权重    低纹理    视差不连续    边缘约束    自适应窗口    
Stereo Matching Optimization Algorithm Based on Adaptive Weights
WEN Bin , ZHU Han     
School of Electrical and New Energy, China Three Gorges University, Yichang, Hubei 443000, China
Abstract: In order to solve the problem that the existing stereo matching algorithm has poor performance for low texture and disparity-discontinuous regions, this paper proposes an improved stereo matching optimization algorithm. Based on the matching cost of the traditional adaptive weighting algorithm, the difference information of the Gaussian difference image (referring to the difference between the left and right image Gaussian difference map) is fused, and the initial matching cost is redefined to enhance the robustness of the algorithm for disparity-discontinuous regions. Then it adds edge constraint, parallax edge constraint iterative clustering and an adaptive window algorithm based on Gaussian difference map to ensure the matching performance of the algorithm in low-texture regions and eliminate dead pixels and parallax holes. The algorithm and the traditional adaptive weight matching algorithm are tested on the Middlebury dataset. The results show that the average performance of the proposed algorithm is improved by 15.05%, which is significantly better than that of the traditional adaptive weight matching algorithm.
Key words: stereo matching    adaptive weight    low texture    disparity discontinuity    edge constraint    adaptive window    
0 概述

立体匹配是指通过双摄像头中的二维场景,利用视差匹配获取三维场景的深度信息,被广泛地应用于移动机器人技术、3D建模技术、航空航天[1]等领域,是双目立体视觉的重点和难点,立体匹配的精确度决定了立体视觉的最终效果。因此,研究更加高效、精确的立体匹配算法具有重要意义。

目前,立体匹配主要分为全局匹配和局部匹配两大类[2-3],文献[4]根据双目立体匹配算法的特点进行归纳总结,将立体匹配算法分为匹配代价计算、代价聚合、视差计算和视差优化4个部分。全局匹配是利用图像的全局约束信息构建全局能量函数,通过优化算法使得全局能量函数最小从而构建稠密视差图。虽然全局匹配精确度较高,但是全局匹配存在运算复杂、能量函数不易构建等问题。而对于局部匹配,由于其运算速度快、算法的复杂度低、能量函数易构建等优势,因此更加受到研究人员的青睐。

局部立体匹配主要是通过局部像素的代价聚合实现的,具有代表性的传统的代价聚合算法有SAD[5]、SSD[6]和NCC归一化[7]匹配算法。SAD和SSD匹配算法计算量小、运算速度快,但是该算法的匹配准确度完全依赖于中心点的灰度值,并且由于其代价聚合是等价聚合,易受到低纹理区域以及视差不连续区域的干扰,产生大片的误匹配区域和视差空洞。NCC归一化算法可以有效地降低光照对匹配的影响,但传统的NCC算法运行较慢,且其匹配率对于SAD算法而言没有优势。

BM匹配算法是基于字符串搜索规则和SAD匹配算法的代价聚合实现的,采用坏字符与好后缀的原则进行匹配[8],相对于SAD算法,低纹理区域的匹配有了一定的完善,但对于复杂环境的视差不连续区域的匹配依旧存在较大缺陷。

立体匹配的核心思想是将特定区域内的多个像素点的相互联系归一化到一个能量函数的框架之下,将立体匹配的最优匹配问题转换成能量函数最小化问题。为构建更好的能量函数,提高匹配精度,国内外学者对立体匹配进行了研究。文献[9]提出了自适应权重的立体匹配算法,将自适应的概念引入到代价聚合中,根据Lab颜色空间的相似性和欧式空间距离的接近性自定义代价权重,结合双边滤波器,表现出了较好的性能。文献[10]介绍了一种新颖的基于三边滤波器的ASW方法,该方法使用了RGB颜色空间的相似性,并将匹配代价改为灰度差异值和X方向上梯度差异值之和。文献[11]融合权重的思想,实现灰度、汉明距离、梯度三者代价的非等比例聚合,在聚合代价前加入滤波权重,以期降低立体匹配代价体积滤波计算成本。文献[12]将基于灰度空间的自适应权重算法与Census变化融合,提高算法在实际场景的稳健性。文献[13]将权重系数的Lab空间颜色相似性改为RGB颜色空间相似性,以满足机器人平台实际应用中广泛使用的摄像机模式。

本文提出一种基于自适应权重的立体匹配优化算法,该算法基于自适应权重算法的核心框架,并保留了Lab空间颜色的相似性和欧式空间距离的接近性。为使得自适应权重算法能与其他处理算法有良好的兼容性,对初始匹配代价进行修改,将RGB颜色空间差异与高斯差分图像差异进行聚合来设置截断阈值,并选择边缘约束对遮挡部分进行视差同化。此外,为并保证自适应权重算法运行时不受窗口大小的影响,提出基于高斯差分图像判断的自适应窗口算法,以保证匹配算法的最优性能。

1 自适应权重的匹配算法 1.1 ASW算法

自适应支撑权重(Adaptive Support Weight,ASW)立体匹配算法一种经典局部匹配算法,该算法是在SAD算法的基础上进行的改进,修改了SAD匹配算法的匹配代价并增加了自适应权重。因此,与SAD匹配算法不同,ASW算法在代价聚合时是根据格式塔理论,并不是简单地将窗口内所有像素的匹配代价等价聚合,其核心思想是为窗口内每一个像素分配一个合适的权重,计算单个像素的权重,然后进行加权汇总代价。根据格式塔理论的接近性与相似性原理,距离越小,分配的权重越大,颜色越相似,其分配的权重也会更大。假设q是以p像素点为中心的窗口内的任意一点,其空间的接近性定义为:

$ {W}_{d}\left(p,q\right)={\mathrm{e}}^{-\frac{\mathrm{\Delta }{D}_{pq}}{{\lambda }_{d}}} $ (1)

其中,$ {\lambda }_{d} $为距离差异系数,$ \mathrm{\Delta }{D}_{pq} $pq在欧式空间中的距离:

$ \mathrm{\Delta }{D}_{pq}=\sqrt[2]{({u}_{p}-{u}_{q}{)}^{2}+({v}_{p}-{v}_{q}{)}^{2}} $ (2)

其颜色的相似性定义为:

$ {W}_{c}\left(p,q\right)={\mathrm{e}}^{-\frac{\mathrm{\Delta }{C}_{pq}}{{\lambda }_{c}}} $ (3)

其中,$ {\lambda }_{c} $为颜色差异系数,$ \mathrm{\Delta }{C}_{pq} $pq在Lab颜色空间中的距离:

$ \mathrm{\Delta }{C}_{pq}=\sqrt[2]{({L}_{p}-{L}_{q}{)}^{2}+({a}_{p}-{a}_{q}{)}^{2}+({b}_{p}-{b}_{q}{)}^{2}} $ (4)

那么,pq之间的权重定义为:

$ W\left(p,q\right)=\mathrm{e}\mathrm{x}\mathrm{p}\left(-\left(\frac{\mathrm{\Delta }{D}_{pq}}{{\lambda }_{d}}+\frac{\mathrm{\Delta }{C}_{pq}}{{\lambda }_{c}}\right)\right) $ (5)

则匹配代价$ E(p,\stackrel{-}{p}) $的计算公式为:

$ E\left(p,\stackrel{-}{p}\right)=\frac{\sum \limits_{q\in {N}_{p},\overline{q}\in {N}_{\stackrel{-}{p}}}W(p,q)W(\stackrel{-}{p},\stackrel{-}{q})e(q,\stackrel{-}{q})}{\sum \limits_{q\in {N}_{p},\overline{q}\in N\stackrel{-}{p}}W(p,q)W(\stackrel{-}{p},\stackrel{-}{q})} $ (6)
$ e\left(q,\stackrel{-}{q}\right)=\mathrm{m}\mathrm{i}\mathrm{n}\left\{\sum \limits_{c\in \left\{R,G,B\right\}}\left|{I}_{c}\right(q)-{I}_{c}(\stackrel{-}{q}\left)\right|,T\right\} $ (7)

其中,$ \stackrel{-}{p}、\stackrel{-}{q} $是在视差范围内,像素点$ p、q $匹配的被搜索图像中的像素点,$ {N}_{p} $是以p点为中心的窗口,$ e(q,\stackrel{-}{q}) $表示q点与$ \stackrel{-}{q} $点之间的初始匹配代价,$ {I}_{c} $表示像素点所在颜色空间的色度值,c属于RGB颜色空间分量,T是截断阈值。

1.2 ASW改进算法

针对立体匹配中低纹理区域和视差不连续区域,ASW算法的匹配效果表现一般。本文通过改进ASW算法来优化低纹理区域和视差不连续区域的匹配。

低纹理区域和视差不连续区域的匹配问题普遍存在于立体匹配中,低纹理区域的误匹配易造成视差空洞,视差不连续区域的误匹配问题很容易造成忽略图像细节区域。因此,本文算法从初始匹配代价上着手改进,在求RGB颜色空间分量差分和的基础上加入高斯差分图的差分值:

$ \begin{array}{l}e\left(q,\stackrel{-}{q}\ \right)=A\times \mathrm{m}\mathrm{i}\mathrm{n}\left\{\ \sum \limits_{c\in \left\{R,G,B\ \right\}}\left|{I}_{c}\right(q)-{I}_{c}(\stackrel{-}{q}\left)\right|,T\ \right\}+\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ B\times \mathrm{\Delta }\mathrm{D}\mathrm{O}{\mathrm{G}}_{q\stackrel{-}{q}}\end{array} $ (8)

其中,A为RGB颜色空间分量差分权重,B为高斯差分图差分权重,本文取A=0.1,B=0.1。$ \mathrm{\Delta }\mathrm{D}\mathrm{O}{\mathrm{G}}_{q\stackrel{-}{q}} $为像素点q$ \stackrel{-}{q} $的高斯差分图像差分的绝对值:

$ \mathrm{\Delta }\mathrm{D}\mathrm{O}{\mathrm{G}}_{q\stackrel{-}{q}}=|\mathrm{D}\mathrm{O}{\mathrm{G}}_{q}-\mathrm{D}\mathrm{O}{\mathrm{G}}_{\stackrel{-}{q}}| $ (9)

假设$ q、\stackrel{-}{q} $是一对待匹配点,则$ \mathrm{D}\mathrm{O}{\mathrm{G}}_{q} $$ \mathrm{D}\mathrm{O}{\mathrm{G}}_{\stackrel{-}{q}} $分别为参考图像和搜索图像的高斯差分图像[14-15]

1.3 自适应窗口

低纹理区域的匹配问题一直是立体匹配中的难点。低纹理区域的匹配窗口选择过小,就无法得到更多的特征像素点,难以准确匹配,纹理丰富的区域匹配窗口选择过大,易造成前景膨胀效应和匹配计算复杂度过高。针对上述问题,文献[16]提出了通过测算局部灰度和视差变化来选取适当窗口的方法,但该方法效率低下,对视差初值的要求较高。文献[17]针对文献[16]中存在的问题,提出一种仅利用灰度信息确定窗口的方法,该方法解决了文献[16]中效率低下、初值敏感的问题,但该方法的计算量仍不能满足实际需求。文献[18]采用灰度信息的自适应窗口算法,根据窗口内像素灰度值的平均值选择窗口,但其算法的主要作用是用于降低运算时间,图像的误匹配率没有降低,反而略有升高。

本文提出的自适应窗口的优化匹配算法主要解决低纹理区域的匹配及降低误匹配率,而在时间上不做过多要求。该方法的原理是基于图像特征在尺度空间[15, 19]的“模糊”特性。所谓尺度空间的“模糊”特性,是假设从不同的距离观察一个物体,物体上的特征并不会因为观察距离的远近而在视角中消失,只是特征变模糊,而稍弱的特征则会因为过度模糊并不能被人们所捕捉,相当于“消失“。在图像处理中,通过不同尺度的高斯函数“观察”图像,不同强度的特征点受到尺度空间变化的影响也就较小。因此,根据式(10)计算高斯差分图像:

$ \begin{array}{l} \mathrm{D}\mathrm{O}\mathrm{G}(x,y)=|{g}_{1}\left(x,y\right)-{g}_{2}\left(x,y\right)|=|{G}_{\sigma 1}\left(x,y\right)*\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ I\left(x,y\right)-{G}_{\sigma 2}\left(x,y\right)*I\left(x,y\right)| \end{array}$ (10)

其中,$ I\left(x,y\right) $为图像的灰度值,$ {G}_{\sigma 1}\left(x,y\right) $$ {G}_{\sigma 2}\left(x,y\right) $分别为$ \sigma $$ \sigma 1 $$ \sigma 2 $时的高斯函数,*为卷积符号,$ {g}_{1}\left(x,y\right) $$ {g}_{2}\left(x,y\right) $分别为滤波后的灰度图像。

$ \sigma 1、\sigma 2 $分别取0.1和255时的高斯函数图如图 1所示。

Download:
图 1 二维高斯函数图 Fig. 1 Two-dimensional Gaussian function diagram

对标准图像的高斯差分处理结果如图 2所示。

Download:
图 2 高斯差分图像 Fig. 2 Gaussian difference images

图 2(a)Tsukuba图像为例可以明显看出,图中右上角以及台灯、桌子等低纹理区域在高斯差分图像中的像素点的像素值很低,而书架、摄像机等纹理丰富区域在高斯差分图像中像素点的像素值较大。因此,根据式(11)、式(12)可以很明显地区分出区域的纹理丰富程度,对于低纹理区域:

$ D\left(x,y\right)=\left\{\begin{array}{c}0,\ \mathrm{D}\mathrm{O}\mathrm{G}\left(x,y\right)<{T}_{D}\\ 1,\ \mathrm{D}\mathrm{O}\mathrm{G}\left(x,y\right)>{T}_{D}\end{array}\right. $ (11)
$ \sum \limits_{y}^{y+k}\sum \limits_{x}^{x+k}D(x,y)<\varepsilon $ (12)

其中,$ D(x,y) $为图像$ \mathrm{D}\mathrm{O}\mathrm{G}\left(x,y\right) $的二值化图像,$ {T}_{D} $为阈值,统计大小为K×K窗口内大于阈值$ {T}_{D} $的像素点个数,若个数小于$ \varepsilon $,则为低纹理区域,选择较大窗口。

基于高斯差分图像的自适应窗口算法实现简单,算法复杂度较低,能够直观地判断区域的纹理丰富性。

2 视差计算 2.1 WTA算法

采用胜者为王(Winner-Takers-All,WTA)[20]算法计算最优视差,假设视差范围是0~n$ {E}_{0},{E}_{1},\cdots ,{E}_{n} $是在视差范围内搜索到的像素点的匹配代价,取匹配代价最小值$ {E}_{\sigma }(\sigma \in [0,n\left]\right) $所在的点作为待匹配点的最优匹配点,则该点的视差为$ \sigma $

$ {E}_{\sigma }=\mathrm{m}\mathrm{i}\mathrm{n}\ \{{E}_{0},{E}_{1},{E}_{2} \sim {E}_{n}\} $ (13)

WTA算法示意图如图 3所示。

Download:
图 3 WTA算法示意图 Fig. 3 Schematic diagram of WTA algorithm
2.2 遮挡区域的优化

在得到初始视差图后,仍存在一些遮挡区域的误匹配点。应用左右一致性原则,找到遮挡区域的误匹配点。

$ d\left(x,y\right)=\left\{\begin{array}{c}\mathrm{t}\mathrm{r}\mathrm{u}\mathrm{e},\left|{d}_{p}-{d}_{\stackrel{-}{p}}\right|\le T\\ \mathrm{f}\mathrm{l}\mathrm{u}\mathrm{s}\mathrm{e},\left|{d}_{p}-{d}_{\stackrel{-}{p}}\right|>T\end{array}\right. $ (14)

其中,点$ \stackrel{-}{p} $p点的匹配点,$ d\left(x,y\right) $p点所在图像的视差图,$ {d}_{p} $p点的视差值,$ {d}_{\stackrel{-}{p}} $$ \stackrel{-}{p} $点的视差值。如果两点的视差差分小于等于T,则认为是正确匹配点;如果两点的视差差分大于T,则是误匹配点。

在得到遮挡区域的误匹配点后,再利用邻点法,以误匹配点为中心对4个方向进行搜寻,找出距离误匹配点最近的正确匹配点,将最近的正确匹配点的视差值作为遮挡点的视差值。

$ {d}_{f}=\left\{\begin{array}{c}{d}_{a},{d}_{a-d},\mathrm{m}\mathrm{i}\mathrm{n}\\ {d}_{b},{d}_{b-d},\mathrm{m}\mathrm{i}\mathrm{n}\\ {d}_{l},{d}_{l-d},\mathrm{m}\mathrm{i}\mathrm{n}\\ {d}_{r},{d}_{r-d},\mathrm{m}\mathrm{i}\mathrm{n}\end{array}\right. $ (15)

其中,$ {d}_{f} $为误匹配点的视差值,$ {d}_{a}\mathrm{、}{d}_{b}\mathrm{、}{d}_{l}\mathrm{、}{d}_{r} $$ {d}_{a-d}\mathrm{、}{d}_{b-d}\mathrm{、}{d}_{l-d}\mathrm{、}{d}_{r-d} $分别为上下左右方向上的最近正确视差点的视差值以及最近像素距离。

3 基于边缘约束的视差聚类

对遮挡区域的误匹配点优化完成以后,视差图中在低纹理区域以及光线过亮区域仍存在大量的误匹配点,并且这些区域还存在视差空洞的问题。针对上述情况,本文引入边缘作为约束条件,分区域对边缘约束内的视差点进行聚类处理,减小误匹配点的误差,消除视差空洞。主要步骤如下:1)将边缘图像加入到视差图中;2)将边缘作为约束条件,对视差在横纵方向上进行处理;3)清除边缘;4)图像滤波;5)迭代优化。

3.1 边缘算子的选取

本文引入图像边缘对视差图进行边缘约束,选取的是Canny算子[21],原因如下:1)Canny算子在图像预处理阶段使用高斯滤波平滑图像,有效地去除了噪声,降低了伪边缘的识别;2)Canny算子使用非极大值抑制技术,通过寻找像素点的局部最大值,对非极大值的像素点进行抑制,有效地剔除了大部分非边缘像素点;3)采用滞后阈值法,设置高阈值$ {D}_{\mathrm{H}} $与低阈值$ {D}_{\mathrm{L}} $,有效地去除了大部分噪声。

针对Canny算子高斯滤波以及高低阈值设置,可以根据取主去次的原则,即保留主要的边缘区域,省略掉一些不重要的边缘,图像的整体大概轮廓保留即可。

在得到参考图像的边缘图像后,将边缘图像与视差图进行相加得到新的图像,本文将该图像称之为视差边缘图像。

3.2 边缘约束视差聚类

针对边缘约束区域内存在的误匹配点和视差空洞,分别从横、纵两个方向对视差点进行处理。对横轴方向上的处理如下:

$ \mathrm{s}\mathrm{u}\mathrm{m}\ {X}_{0}=\sum \limits_{x={x}_{0}}^{{x}_{0}+\mathrm{c}\mathrm{o}\mathrm{u}\mathrm{n}\mathrm{t}\ P}{d}_{g}\left(x,y\right),{d}_{g}\left(x,y\right)\ne 255 $ (16)
$ \mathrm{c}\mathrm{o}\mathrm{u}\mathrm{n}\mathrm{t}\ P\ ++\ \ \ \mathrm{i}\mathrm{f}\ {d}_{g}\left(x,y\right)\ne 255 $ (17)
$ {d}_{\mathrm{a}\mathrm{v}\mathrm{g}X0}=\mathrm{s}\mathrm{u}\mathrm{m}\ {X}_{0}/\mathrm{c}\mathrm{o}\mathrm{u}\mathrm{n}\mathrm{t} $ (18)
$ \mathrm{c}\mathrm{o}\mathrm{u}\mathrm{n}\mathrm{t}\ ++\ \ \ \mathrm{i}\mathrm{f}\ {d}_{g}\left(x,y\right)\ne 255\&\&{d}_{g}(x,y)\ne 0 $ (19)

在式(16)~式(19)中,先求得横轴方向上相邻边缘点约束的非边缘视差点的视差值之和$ \mathrm{s}\mathrm{u}\mathrm{m}{X}_{0} $$ {x}_{0} $表示左边缘点所在的横坐标的值,$ \mathrm{c}\mathrm{o}\mathrm{u}\mathrm{n}\mathrm{t}P $表示相邻边缘点约束的非边缘视差点个数,$ {d}_{g}\left(x,y\right) $表示视差边缘图像,值255表示边缘上的点的像素值,然后再根据统计的点,求得横轴方向上相邻边缘点约束的非边缘视差点视差的平均值$ {d}_{\mathrm{a}\mathrm{v}\mathrm{g}X0} $,count表示相邻边缘点约束的非边缘视差点以及非视差空洞点的个数。

但上述方法在计算平均视差值时包含了一些离群点,这些点往往是一个视差值远小于正常值的误匹配点,导致该方向上整体视差值减小。运用式(20)消除离群点,得到正确视差:

$ \begin{array}{l}\mathrm{s}\mathrm{u}\mathrm{m}\ X=\sum \limits_{x={x}_{0}}^{{x}_{0}+\mathrm{c}\mathrm{o}\mathrm{u}\mathrm{n}\mathrm{t}\ P}{d}_{g}\left(x,y\ \right),\mathrm{c}\mathrm{o}\mathrm{u}\mathrm{n}\mathrm{t}\ Q++\\ \ \ \ \ \ \ \ \ \mathrm{i}\mathrm{f}\ \left|{d}_{g}\left(x,y\ \right)-{d}_{\mathrm{a}\mathrm{v}\mathrm{g}X0}\right|>\phi \&\&{d}_{g}(x,y)\ne 0\end{array} $ (20)
$ {d}_{\mathrm{a}\mathrm{v}\mathrm{g}X}=\mathrm{s}\mathrm{u}\mathrm{m}\ X/\mathrm{c}\mathrm{o}\mathrm{u}\mathrm{n}\mathrm{t}\ Q $ (21)

其中,$ \mathrm{s}\mathrm{u}\mathrm{m}\ X $表示横轴方向上非异常视差点的视差值之和,当视差图中的某点$ {d}_{g}\left(x,y\right) $与先前求得的视差平均值$ {d}_{\mathrm{a}\mathrm{v}\mathrm{g}X0} $的绝对差大于$ \phi $时,认为$ {d}_{g}\left(x,y\right) $是离群点,不统计该点的像素值,$ \mathrm{c}\mathrm{o}\mathrm{u}\mathrm{n}\mathrm{t}\ Q $表示相邻边缘点约束的非离群点以及非视差空洞点的个数,$ {d}_{\mathrm{a}\mathrm{v}\mathrm{g}X} $表示剔除离群点后横轴方向上视差的平均值。运用上述方法,遍历整幅视差边缘图像。

同理,对于纵轴方向上的处理方法,参考横轴方向上的处理方法,遍历整幅图像。

完成上述操作后,优化后的视差中还留有边缘,应用式(22)、式(23)进行消除边缘:

$ g\left(x,y\right)=\left\{\begin{array}{c}0,g\left(x,y\right)<1\\ 1,g\left(x,y\right)>1\end{array}\right. $ (22)
$ {d}_{g}\left(x,y\right)=\left\{\begin{array}{l}0,{d}_{g}\left(x,y\right)=255\\ {d}_{g}\left(x,y\right),\mathrm{其}\mathrm{他}\end{array}\right. $ (23)

其中,$ g(x,y) $为边缘图像阈值分割后的二值图像,$ {d}_{g}(x,y) $为消去边缘后的视差边缘图像。将阈值分割后的边缘图像与得到的初始视差图进行与运算,得到被边缘所覆盖视差点的视差图,再将该图像与消去边缘的视差边缘图像相加,复原视差图$ d\left(x,y\right) $

$ d\left(x,y\right)=d\left(x,y\right)\times g(x,y)+{d}_{g}(x,y) $ (24)

由于同一边缘区域内的视差几乎是相同的,应用上述边缘约束视差的方法,有效地修正了视差图中的误匹配点以及视差空洞。

3.3 存在问题及解决方法

上述方法存在以下3个问题:1)横向和纵向的单独处理会出现类似于动态规则算法的水平条纹;2)被边缘覆盖重现的视差点存在坏点;3)由于$ d\left(x,y\right) $是由边缘约束处理而来,因此视差图中存在明显的边缘特征,一些同处于背景区域的物体,由于边缘约束的存在,使得不同物体之间的视差值存在微小差异。

针对上述问题,本文引入中值滤波消除条纹和部分坏点。而对于视差图中存在明显边缘特征的问题,本文提出基于视差图边缘约束的迭代聚类算法。

迭代聚类算法的核心在于边缘更新与迭代精度,假设$ {d}_{0}\left(x,y\right) $为初始视差图,取视差图$ {d}_{0}\left(x,y\right) $的边缘作为新的约束条件,重复3.2节的步骤得到一次迭代下的视差图$ {d}_{1}\left(x,y\right) $;取视差图$ {d}_{1}\left(x,y\right) $的边缘更新约束条件,重复3.2节。

假设第n次迭代后的视差图为$ {d}_{n}\left(x,y\right) $,该视差图的误匹配率为$ {E}_{dn} $,若视差图的误匹配率满足:

$ {E}_{d(n+1)}-{E}_{dn}<\xi $ (25)

则表明第n次的迭代结果满足要求,$ \xi $为允许的最大精度。

迭代前后对比如图 4所示。从图 4可以看出,一些带有边缘特征的区域和视差坏点被消除。

Download:
图 4 迭代前后视差对比 Fig. 4 Parallax comparison before and after iteration
4 实验结果与分析

实验使用的计算机操作系统为Win10专业版,处理器为AMD Ryzen 5 2600X,主频为3.6 GHz,内存为16 GB,显卡为Nvidia GeForce GT 730(2 GB)。基于软件VS2013和Opencv2.4.11函数库进行仿真实验。实验所用标准图片均来源于国际公认的Middlebury[22-23]数据集。其中,Tsukuba图像主要测试算法前向平行平面的匹配效果,Venus主要测试对不同斜面的匹配效果,Teddy测试的是复杂场景下算法的鲁棒性,Cones测试的是算法的整体性能。

将所得到的视差图与理想视差图进行比较,逐一判断像素点是否为正确的匹配点,得到视差图的误匹配率为:

$ \mathrm{E}\mathrm{r}\mathrm{r}\mathrm{o}\mathrm{r}=\frac{1}{N}\sum \limits_{(x,y)}\left(\left|{d}_{c}\left(x,y\right)-{d}_{T}\left(x,y\right)\right|>\delta \right) $ (26)

其中,N为总的像素点个数,$ {d}_{c}\left(x,y\right) $为计算得到的视差图,$ {d}_{T}\left(x,y\right) $为真实视差图,$ \delta $为误差阈值。

4.1 实验1

为体现本文算法相对于其他匹配算法在匹配中的优势,本文选择在大小为7的固定匹配窗口下,分别用SAD算法、BM算法、传统ASW算法以及本文提出算法匹配代价改进的ASW算法(Improved ASW),对Tsukuba、Venus、Teddy、Cones 4幅标准图像进行匹配,并逐一比较,匹配结果如图 5所示。其中,从左到右依次为原图、SAD、BM、Traditional ASW和Improved ASW。各算法误匹配率如表 1所示。

Download:
图 5 不同算法的匹配结果 Fig. 5 Matching results of different algorithms
下载CSV 表 1 各算法误匹配率 Table 1 Mismatch rate of each algorithm 

表 1的数据可以看出,Tsukuba图像由于其场景的复杂性,匹配效果最差,各算法都没有取得很好的匹配效果,SAD算法与BM算法对右上角的低纹理区域都没有很好地进行处理,产生了大量的误匹配点。另外,BM算法在台灯灯杆的视差不连续区域匹配效果很差。针对上述两种情况,传统ASW算法克服了视差不连续区域的匹配问题,误匹配率相对于前两种算法而言,分别下降了7.07%和21.73%,但是对低纹理区域的误匹配并没有做到很好的抑制,而改进的ASW算法则将两者都进行优化,相对于传统的ASW算法误匹配率下降了1.26%。

Venus图像的场景比较简单,低纹理区域也较少,各算法的误匹配率都相对较低,传统的ASW算法对斜面的适应性不是很强,改进后的ASW算法克服了这一问题,极大地提升了算法对斜面的适应性,使得误匹配率下降了近一半,仅有17.17%。

Teddy与Cones图像的视差范围都比较大,SAD算法不适合处理视差范围较大的匹配,因此,该算法的误匹配率较高。与传统的ASW算法相比,改进的ASW算法优化了视差图中存在的大量噪声点与少量的视差空洞,提升了性能,降低了误匹配率。

4.2 实验2

为体现本文算法对ASW算法改进的有效性,选择了在大小为7的匹配窗口下,代价改进的ASW算法(Improved ASW)、代价改进+自适应窗口的ASW算法(Improved ASW+Adaptive W)、代价改进+边缘约束与迭代聚类的ASW算法(Improved ASW+edge)、代价改进+边缘约束与迭代聚类+自适应窗口的ASW算法(Improved ASW+edge+Adaptive W)对Tsukuba、Venus、Teddy、Cones 4幅标准图像进行匹配,并逐一比较。实验得到的匹配结果如图 6所示,从上到下依次为Improved ASW、Improved ASW+Adaptive W、Improved ASW+edge和Improved ASW+edge+adaptive W。各改进算法误匹配率如表 2所示。

Download:
图 6 改进算法的实验结果 Fig. 6 Experimental results of improved algorithm
下载CSV 表 2 各改进算法的误匹配率 Table 2 Mismatch rate of each improved algorithm 

表 2的数据可以看出,自适应窗口算法无论是对于色彩多变,还是背景光照强度不一的复杂场景都有一定的提升作用,从Teddy图像的匹配结果可以看出,与仅改进匹配代价算法的视差图相比,视差图中的空洞区域明显减小,这表明自适应窗口的ASW算法优化了该低纹理区域的匹配。基于边缘约束的视差聚类算法以及基于视差图边缘约束的迭代聚类算法表现出了较好的性能,基于边缘约束的视差聚类算法消除了视差图中大部分的视差空洞以及异常点,提升了视差图的整体可靠性。迭代聚类算法从Tsukuba图像与其他图像误匹配率的对比中可以看出(Tsukuba图像经过5次迭代,其他图像仅经过1次迭代),经过多次迭代的视差图,其误匹配率的降低量明显要低于其他图像,表明了迭代聚类算法的适用性。

与文献[12-13]进行比较,文献[12]中Tsukuba图像的视差图在视差不连续区域出现了大量的误匹配点,图片中的物体失去了应有的边缘特征,边缘变形严重,得到的视差图效果极差。文献[13]中视差图的情况与其大致相同,并且在低纹理区域还存在一些视差空洞。在Teddy图像的视差图中,文献[12]在小熊左下部分的低纹理区域出现小片的视差空洞。而文献[13]中的图像则表现相对良好,在Cones图像中,文献[13]的视差图较为标准,文献[12]的视差图在圆锥尖峰处,笔筒上部出现少量误匹配的条纹区域。针对上述研究视差图中所存在的问题,本文的改进算法都对这些问题有了很好的解决方案,体现了算法较好的鲁棒性。

各算法及改进算法平均误匹配率如图 7所示。

Download:
图 7 各算法及改进算法平均误匹配率 Fig. 7 Average mismatch rate of each algorithm and its improvement algorithm

综上所述,本文算法无论是在算法的鲁棒性还是整体性能上,都取得了一定程度上的提升。与SAD算法相比,误匹配率整体上下降了36.19%,相对于BM算法和传统的ASW算法,整体上分别下降了18.03%和15.05%,表明了本文改进算法的正确性。

4.3 实验3

为体现本文中所提算法对低纹理区域匹配的有效性,以标准图像Teddy为例,选取一块具有代表性的低纹理区域,验证算法对低纹理区域的匹配具有提升作用,其匹配结果对比如图 8所示。

Download:
图 8 不同改进算法的低纹理区域匹配实验结果 Fig. 8 Experimental results of low-texture regions matching of different improved algorithms

图 8可以看出,选取的标记区域是一块具有代表性的低纹理区域,在实验中选取不同算法对该区域进行匹配,匹配效果如表 3所示。

下载CSV 表 3 低纹理区域匹配效果分析 Table 3 Analysis of matching effect of low-texture regions

结合图 8表 3可以看出,匹配代价的优化、自适应窗口算法以及基于边缘约束的迭代聚类算法都对低纹理区域的匹配效果有着提升作用。其中,基于边缘约束的迭代聚类算法效果最为明显,使低纹理区域的匹配效果得到显著提高。

4.4 实验4

在本文提出的自适应权重立体匹配算法中,分为以下3个计算步骤:1)匹配代价计算;2)视差计算;3)边缘约束与视差聚类。假设N表示图像大小,代表全体像素,那么匹配代价计算的复杂度为$ O\left(N\right) $,视差计算WTA算法的复杂度为O(1),因此,获得基本视差图的算法复杂度为$ O\left(N\right)=O\left(N\right)\times O\left(\ 1\ \right) $。边缘约束与视差聚类属于视差图的后处理部分,独立运行于视差计算部分,其算法复杂度为$ O\left(N\right) $,因此,本文所提算法总的复杂度为$ O\left(N\right) $。各标准图像的算法运行时间如表 4所示。

下载CSV 表 4 算法运行时间 Table 4 Algorithms running time 

本文算法基于传统的自适应权重立体匹配算法进行修改,虽然效率略低于传统算法,但是立体匹配的误匹配率明显降低,算法运行时间略微增加,主要是计算匹配代价时加入高斯差分以及后面的处理过程。

5 结束语

本文在传统自适应权重匹配算法的基础上,提出一种新的立体匹配优化算法。通过修改初始匹配代价,将高斯差分信息引入到代价匹配中,并加入边缘约束和视差边缘约束迭代聚类以及基于高斯差分图的自适应窗口算法,修补视差空洞与误匹配点。实验结果表明,该算法能够有效改善传统局部匹配算法不能较好地处理低纹理区域和视差不连续区域的匹配问题。下一步将使用GPU对算法进行并行运算,加快程序的运行速度,满足实时性需求,并采用卷积神经网络,结合本文匹配代价的改进方法优化损失函数,利用训练好的网络模型,加快视差图的生成速度与复杂环境的处理能力。

参考文献
[1]
GONZALEZ A, GARRIDO M A, LIODCA D F, et al. Automatic traffic signs and panels inspection system using computer vision[J]. IEEE Transactions on Intelligent Transportation Systems, 2011, 12(2): 485-499. DOI:10.1109/TITS.2010.2098029
[2]
CHEN Aihua, GAO Chenghui, HE Bingwei. Stereo-vision-enabled image stereo-matching method[J]. Sponsored by China Construction Machinery, 2014, 12(3): 194-198. (in Chinese)
陈爱华, 高诚辉, 何炳蔚. 立体视觉中的图像立体匹配方法[J]. 中国工程机械学报, 2014, 12(3): 194-198.
[3]
GEIGER A, ROSER M, URTASUM R. Efficient large-scale stereo matching[C]//Proceedings of ACCV'10. Queenstown. Wellington, New Zealand: [s. n. ], 2010: 25-38.
[4]
SCHARSTEIN D. A taxonomy and evaluation of dense two-frame stereo correspondence algorithms[C]//Proceedings of IEEE Workshop on Stereo and Multi-baseline Vision. Kauai, USA: [s. n. ], 2001: 154-166.
[5]
TRUCCO E, VERRI A. Introductory techniques for 3-D computer vision[M]. [S.1.]: Prentice Hall, 1998.
[6]
KANG S B, SZELISKI R, CGAI J. Handling occlusions in dense multi-view stereo[C]//Proceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2001: 103-110.
[7]
WU Q, LAW R. The forecasting model based on modified SVRM and PSO penalizing Gaussian noise[J]. Expert Systems with Applications, 2011, 38(3): 1887-1894. DOI:10.1016/j.eswa.2010.07.120
[8]
XU Yizhen, WANG Yongcheng, SHEN Zhou. A fast algorithm for matching multiple patterns[J]. Journal of Shanghai Jiao Tong University, 2002, 36(4): 516-520. (in Chinese)
许一震, 王永成, 沈洲. 一种快速的多模式字符串匹配算法[J]. 上海交通大学学报, 2002, 36(4): 516-520. DOI:10.3321/j.issn:1006-2467.2002.04.020
[9]
YOON K J, KWEON I S. Adaptive support-weight approach for correspondence search[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2006, 28(4): 650-566.
[10]
CHEN D, ARDABILIAN M, CHEN L, et al. A fast trilateral filter-based adaptive support weight method for stereo matching[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2015, 25(5): 730-743. DOI:10.1109/TCSVT.2014.2361422
[11]
LIM J, PARK J, PARK H. Principal depth estimation using cost-volume filtering for fast stereo matching[C]//Proceedings of 2018 International Conference on Elec-tronics, Information, and Communication. Honolulu, USA: [s. n. ], 2018: 1-2.
[12]
ZOU Jingui, WAN Ying, MENG Liyuan. A new stereo matching algorithm based on adaptive weight SAD algorithm and census algorithm[J]. Bulletin of Surveying and Mapping, 2018(11): 11-15. (in Chinese)
邹进贵, 万荧, 孟丽媛. 一种基于自适应权重SAD与Census融合的匹配算法[J]. 测绘通报, 2018(11): 11-15.
[13]
YU Fangjie, LUAN Xin, SONG Dalei, et al. An adaptive support-weight local stereo matching algorithm under variant illumination[J]. Periodical of Ocean University of China, 2014, 44(4): 108-111. (in Chinese)
于方杰, 栾新, 宋大雷, 等. 一种光照变化条件下的自适用权重局部立体匹配算法[J]. 中国海洋大学学报(自然科学版), 2014, 44(4): 108-111.
[14]
GAO Jian, HUANG Xinhan, PENG Gang, et al. A feature detection method based on Harris corner and difference of Gaussian[J]. Pattern Recognition and Artificial Intelligence, 2008, 21(2): 171-176. (in Chinese)
高健, 黄心汉, 彭刚, 等. 基于Harris角点和高斯差分的特征点提取算法[J]. 模式识别与人工智能, 2008, 21(2): 171-176.
[15]
FU Ying, ZENG Huanqiang, MA Lin, et al. Screen content image quality assessment using multi-scale difference of Gaussian[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2018, 28(9): 2428-2432. DOI:10.1109/TCSVT.2018.2854176
[16]
KANADE T, OKUTOMI M. A stereo matching algorithm with an adaptive window: theory and experiment[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 1994, 16(9): 920-932.
[17]
ZHOU Xiuzhi, WEN Gongjian, WANG Runsheng. Fast stereo matching using adaptive window[J]. Chinese Journal of Computers, 2006, 29(3): 473-479. (in Chinese)
周秀芝, 文贡坚, 王润生. 自适应窗口快速立体匹配[J]. 计算机学报, 2006, 29(3): 473-479. DOI:10.3321/j.issn:0254-4164.2006.03.016
[18]
HUANG Chao, ZHAO Huazhi. Semi-global stereo matching with adaptive window based on grayscale value[J]. Journal of Image and Graphics, 2019, 24(8): 1381-1390. (in Chinese)
黄超, 赵华治. 根据灰度值信息自适应窗口的半全局匹配[J]. 中国图象图形学报, 2019, 24(8): 1381-1390.
[19]
SEXTON W T, DULL C W, SZARO R C. Implementing ecosystem management: a framework for remotely sensed information at multiple scales[J]. Landscape and Urban Planning, 1998, 40(3): 173-184.
[20]
ZHANG Dayu. The algorithm of WTA stereo matching based on the human detection method[J]. Electronic Test, 2013(5): 66-68.
[21]
CANNY J. A computational approach to edge detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1986, 8(6): 679-698.
[22]
SCHARSTEIN D, SZELISKI R. A taxonomy and evaluation of dense two-frame stereo correspondence algorithms[J]. International Journal of Computer Vision, 2002, 47(1/2/3): 37-42.
[23]
SCHARSTEIN D, SZELISKI R. High-accuracy stereo depth maps using structured light[C]//Proceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition. Madison, USA: IEEE Press, 2003: 195-202.