趙 蕓,莊振華,徐 興,張 云,呂曉姝
(1.浙江科技學(xué)院 信息與電子工程學(xué)院,浙江 杭州 310023; 2.浙江科技學(xué)院 機(jī)械與能源工程學(xué)院,浙江 杭州 310023; 3.芬蘭阿爾托大學(xué),芬蘭 阿爾托 02130)
隨著智能制造的發(fā)展以及智能化機(jī)器人的廣泛應(yīng)用,基于視覺(jué)的工業(yè)抓取設(shè)備、物流車和機(jī)器人等系統(tǒng)成為了研究熱點(diǎn)[1]。獲得精確的自身位置信息是這些系統(tǒng)共同的關(guān)鍵技術(shù),而在視覺(jué)系統(tǒng)中獲得稠密圖是獲取自身位置不可或缺的一步[2]。立體匹配計(jì)算出兩幅或多幅圖像的視差,是獲得稠密圖的重要方法,也是深度獲取和立體視覺(jué)的基礎(chǔ)。
Scharstein[3]把立體匹配主要分為4個(gè)步驟:代價(jià)計(jì)算、代價(jià)聚合、視差計(jì)算、后處理。全局立體匹配算法通常會(huì)跳過(guò)代價(jià)聚合步驟而關(guān)注視差的計(jì)算,通過(guò)構(gòu)建一個(gè)全局的能量函數(shù)來(lái)求取視差,但計(jì)算時(shí)需要對(duì)圖形從整體上進(jìn)行分析和處理,速度比較慢;局部立體匹配算法通過(guò)代價(jià)聚合優(yōu)化視差,利用像素點(diǎn)周圍的局部信息估計(jì)視差,得到視差的局部最優(yōu)解,速度較快[4]。
代價(jià)聚合是局部立體匹配最具有研究意義的步驟。早期代價(jià)聚合通過(guò)對(duì)支持窗口內(nèi)的初始代價(jià)卷進(jìn)行求和或取加權(quán)平均來(lái)提高匹配可靠性,速度較快,如盒式濾波和高斯濾波[5]。但由于盒式濾波和高斯濾波是同性濾波器,視差圖的物體邊緣會(huì)出現(xiàn)模糊[6]。為解決該問(wèn)題,將具有保持邊緣性質(zhì)的雙邊濾波[7-9]以及引導(dǎo)濾波[10]引入了代價(jià)聚合中,但由于這些算法只在單一的尺度層進(jìn)行代價(jià)聚合,沒(méi)有考慮和視覺(jué)系統(tǒng)一樣的從粗到精的過(guò)程[11],導(dǎo)致算法整體在低紋理區(qū)域、無(wú)紋理區(qū)域匹配的錯(cuò)誤率很高[12-14]??紤]到視覺(jué)系統(tǒng),Zhang等[15]將跨尺度的思想引入立體匹配過(guò)程,搭建了跨尺度的代價(jià)聚合(Cross-Scale Cost Aggregation, CSCA)框架,將多個(gè)尺度的代價(jià)卷融合得到目標(biāo)代價(jià)卷,其中使用
引導(dǎo)濾波(Guided Filter, GF)等代價(jià)聚合方法取得了較好的視差圖,但在低紋理區(qū)域、無(wú)紋理區(qū)域匹配的錯(cuò)誤率依舊較高,而且聚合代價(jià)耗時(shí)較長(zhǎng)。
為此,本文將快速引導(dǎo)濾波(Fast Guide Filter, FGF)[16]應(yīng)用到代價(jià)聚合,同時(shí)受文獻(xiàn)[15]的啟發(fā),在不同尺度層分別采用區(qū)域樹(shù)聚合(Segment Tree, ST)[17]和快速引導(dǎo)濾波的算法,所提算法降低了低紋理區(qū)域、無(wú)紋理區(qū)域匹配的誤匹配率,獲得了更為精確的視差圖,并極大地減少了計(jì)算耗時(shí)。
本文針對(duì)文獻(xiàn)[15]提出的多尺度代價(jià)聚合框架進(jìn)行了改進(jìn),原算法的主要流程如下:
(1)首先將左右圖像均通過(guò)高斯金字塔下采樣。
(2)分別對(duì)每一個(gè)下采樣層的左右圖像進(jìn)行代價(jià)計(jì)算得到的初始代價(jià)卷[18]。
(3)對(duì)初始代價(jià)卷進(jìn)行代價(jià)聚合,文獻(xiàn)[15]使用了引導(dǎo)濾波、區(qū)域樹(shù)濾波等代價(jià)聚合方法中的某一種。
(4)將各個(gè)尺度聚合后的代價(jià)卷融合得到最終代價(jià)卷。
(5)由最終匹配代價(jià)卷計(jì)算視差圖并進(jìn)行后處理。
本文基于跨尺度代價(jià)聚合框架[15]主要有兩點(diǎn)改進(jìn):第一,將快速引導(dǎo)濾波引入到立體匹配的代價(jià)聚合階段;第二,提出一種在不同下采樣層交替使用快速引導(dǎo)濾波和區(qū)域樹(shù)代價(jià)聚合方法的立體匹配算法,而原作者在所有的下采樣層只采用同一種代價(jià)聚合方法。因此,原算法的步驟3變?yōu)樵谂紨?shù)下采樣層使用快速引導(dǎo)濾波,在奇數(shù)下采樣層使用區(qū)域樹(shù)代價(jià)聚合。其流程如圖1所示。
其中WTA(winner take all)表示勝者為王策略,具體將在1.3節(jié)介紹。流程圖中省略了2,3下采樣層,在這些下采樣層對(duì)初始代價(jià)卷進(jìn)行代價(jià)聚合時(shí)分別使用ST,F(xiàn)GF算法。s表示處于高斯金字塔中的層數(shù)。對(duì)于高斯金字塔,第s分解層圖像與第s-1分解層圖像之間滿足:
Gs-1(2i+m,2j+n)。
(1)
其中:像素的坐標(biāo)(i,j)滿足1≤i≤Rs-1/2,1≤j≤Cs-1/2;Rs-1,Cs-1分別是第s-1層的行數(shù)和列數(shù)[18]。第s層的分解圖像Gs比s-1層圖像Gs-1的縮小了4倍。w(m,n)是大小為奇數(shù)k(k=3,5,7,…)的生成核,可以看作一個(gè)低通二位濾波器,是一個(gè)窗函數(shù),m,n是在窗口中的位置,一個(gè)典型的5×5w(m,n)窗口如下所示:
(2)
下面采用將像素強(qiáng)度和梯度加權(quán)的方法來(lái)計(jì)算代價(jià)。對(duì)于一組相同寬度和高度的圖片,左圖中第i像素即坐標(biāo)為(xi,yi)的像素在視差等級(jí)為l時(shí)的代價(jià)值C(i,l)可以表示為:
C(i,l)=(1-α)·min[‖I(i)-I′(il)‖,τ1]+
α·min[‖xI(i)-xI′(il)‖,τ2]。
(3)
式中:il是右圖中對(duì)應(yīng)左圖第i像素的點(diǎn),其像素坐標(biāo)為(xi-l,yi),I(i)和I(il)分別是表示像素i和il的強(qiáng)度值,xI(i)和xI′(il)為像素i和il的梯度值,τ1、τ2為截?cái)嘀?。α用?lái)調(diào)節(jié)像素強(qiáng)度和梯度各占的比例。
通過(guò)式(3)可以得到維度為W×H×L的初始代價(jià)卷C∈W×H×L,其中W是圖像的寬,H是圖像的高,L是視差的數(shù)量。
由于通過(guò)上述方法直接獲得的初始代價(jià)卷C總是有噪聲的,要對(duì)其進(jìn)行降噪,Zhang等[15]提出了一個(gè)最小二乘(Weighted Least Squares, WLS)框架來(lái)重塑初始代價(jià)卷,如下所示:
(4)
(5)
針對(duì)目前的所有方法在高紋理區(qū)域表現(xiàn)很好,在低紋理區(qū)域或無(wú)紋理區(qū)域卻誤匹配率很高的問(wèn)題。CSCA還建立了一個(gè)結(jié)合不同下采樣圖片的多尺度代價(jià)卷。除此之外,CSCA通過(guò)增加層間約束項(xiàng)增強(qiáng)了不同尺度層之間的聯(lián)系。在尺度空間為0和s之間時(shí),最優(yōu)化問(wèn)題表示為
(6)
(7)
ST算法作為一種非傳統(tǒng)的全局算法,它具有較為準(zhǔn)確且速度快的特點(diǎn),但由于需要對(duì)圖像進(jìn)行分割,不能很好地保持邊緣特性,在區(qū)域信息不能很好引入的情況下會(huì)導(dǎo)致視差圖某些區(qū)域的空白。FGF算法能夠在保持速度的同時(shí),具有保持邊緣特性且能夠取得較好的代價(jià)聚合效果,但速度和ST算法仍有差距。綜上所述,本文在偶數(shù)下采樣層引用了快速引導(dǎo)濾波,在保證聚合效果的同時(shí)加快了聚合速度,奇數(shù)下采樣層使用區(qū)域樹(shù)濾波,如式所示:
(8)
其中:kFGF(is,js)表示使用快速引導(dǎo)濾波作為相似核,kST(is,js)表示使用區(qū)域樹(shù)濾波作為相似核。
進(jìn)一步地將式(6)表示為關(guān)于z的函數(shù)如式(9):
(9)
2λ(zs-zs-1)-2λ(zs+1-zs)
(10)
(11)
同理,可得s=0和s=S的表達(dá)式,在考慮各個(gè)尺度下的式后,可以用矩陣運(yùn)算表達(dá)整個(gè)運(yùn)算,如下所示:
(12)
(13)
采用勝者為王的方法,選擇匹配代價(jià)最小的視差為最終視差,其公式為:
(14)
式中:dfinal為最終視差,代價(jià)卷C(j,l)是第j像素在視差等級(jí)l下的代價(jià)值,lmax是最大視差。
視差后處理對(duì)所得到的視差值進(jìn)行進(jìn)一步的優(yōu)化與處理,有左右一致性檢測(cè)(Left-Right Consistency, LRC),遮擋過(guò)濾和中值濾波等一系列方法,能夠彌補(bǔ)之前算法的不足。本文主要的改進(jìn)在代價(jià)聚合部分,為了測(cè)試本文算法最終的效果。所以不進(jìn)行任何的視差后處理。
和引導(dǎo)濾波相同,快速引導(dǎo)濾波的引導(dǎo)核由局部線性模型確定,如下所示:
qi=akIi+bk,?i∈wk。
(15)
式中:qi為輸出圖像中第i像素的強(qiáng)度,即除去噪聲或者紋理后的圖片,wk為第k以r為半徑的窗口,ak和bk為第k窗口下的系數(shù),Ii為引導(dǎo)圖像的第i像素的像素強(qiáng)度。
分別將p和I帶入式(1)可以得到下采樣后的ps和Is。其中:p是輸入圖像,I是引導(dǎo)圖像,ps是s下采樣層的輸入圖像,Is是s下采樣層的引導(dǎo)圖像,本文取s=1。為確定式(15)的線性系數(shù),問(wèn)題轉(zhuǎn)化為使s尺度下的輸入圖像ps和輸出圖像qs差異最小的最優(yōu)化問(wèn)題:
(16)
(17)
(18)
(19)
在本文提出的算法中,輸入圖像為各個(gè)尺度下經(jīng)過(guò)代價(jià)聚合的代價(jià)卷,引導(dǎo)圖像為左圖。
為驗(yàn)證算法降低低紋理區(qū)域,無(wú)紋理區(qū)域匹配的誤匹配率、獲得更精確的視差圖,以及減少計(jì)算耗時(shí)方面的有效性,本文采用Middlebury[1,19]測(cè)試集來(lái)驗(yàn)證全部區(qū)域誤差,非遮擋區(qū)域誤差,以及算法的計(jì)算所用時(shí)間。誤差閾值選擇為2。實(shí)驗(yàn)環(huán)境為Win10系統(tǒng),中央處理器為i5-8400,為了驗(yàn)證速度,均不使用CPU多線程和GPU并行加速。
分別得到全部區(qū)域誤匹配率表1,非遮擋區(qū)域誤匹配率表2,以及本文算法和跨尺度框架下使用GF算法所用時(shí)間表3。其中全部區(qū)域誤匹配率是將算法得到的視差與真實(shí)視差對(duì)比。若相差的值大于閾值2,則記為誤匹配點(diǎn)。最后結(jié)果為誤匹配點(diǎn)數(shù)目占全部像素點(diǎn)數(shù)目的百分比,計(jì)算非遮擋區(qū)域誤匹配率時(shí)去除了被遮擋的區(qū)域。圖2所示為venus原圖;圖3所示為venus的真實(shí)視差圖;圖4所示為跨尺度框架下使用GF算法的視差圖;圖5所示為本文提出算法的視差圖;圖6所示為跨尺度框架下使用GF算法在非遮擋區(qū)域的誤差圖;圖7所示為本文提出算法在非遮擋區(qū)域的誤差圖。
表1 全部區(qū)域視差誤匹配率 %
表1中:ST表示僅使用ST代價(jià)聚合,不使用跨尺度代價(jià)聚合框架;GF表示僅使用GF代價(jià)聚合,不使用跨尺度代價(jià)聚合框架;SSCA+ST表示在跨尺度代價(jià)聚合框架下使用ST聚合算法;SSCA+GF表示在跨尺度代價(jià)聚合框架下使用GF聚合算法。
表2 非遮擋區(qū)域視差誤匹配率 %
從表1和表2可以看出,所提算法無(wú)論在全部區(qū)域還是在非遮擋區(qū)域都取得了更低的視差誤匹配率。全部區(qū)域視差誤匹配率只有跨尺度代價(jià)聚合框架下使用GF聚合算法的2/3,非遮擋區(qū)域視差誤匹配率只有跨尺度代價(jià)聚合框架下使用GF聚合算法的73%。還可以看出,算法的誤匹配率的高低還與場(chǎng)景的復(fù)雜程度以及遮擋程度相關(guān),在不考慮遮擋點(diǎn)的前提下tsukuba場(chǎng)景最為復(fù)雜且有大量的無(wú)紋理區(qū)域,因此取得的誤匹配率最高。
結(jié)合圖4、圖5以及上文的誤匹配率分析可以看出,本文算法在不加任何的視差后處理前提下取得了比跨尺度框架下使用GF聚合的算法更精確的視差圖。圖6和圖7中白色點(diǎn)的位置是誤匹配的位置,從兩圖閾值為2的非遮擋區(qū)域的誤匹配點(diǎn)可以看出,所提算法在低紋理區(qū)域、無(wú)紋理區(qū)域(矩形輪廓區(qū)域內(nèi))的誤匹配率遠(yuǎn)低于在跨尺度代價(jià)聚合框架下使用GF聚合算法,在相應(yīng)的區(qū)域,本文算法的誤匹配率只有聚合框架下使用GF聚合算法誤匹配率63%。
表3 算法整體時(shí)間 s
表3的時(shí)間是獲得最終視差圖的所用的整體時(shí)間,本文算法的平均計(jì)算速度是跨尺度框架下使用GF聚合的算法的2.5倍,其中在Teddy上達(dá)到了3倍的速度。
表4給出了所提算法的全部區(qū)域平均視差誤匹配率隨選定閾值的變化情況??梢钥闯?,隨著閾值的上升,對(duì)誤匹配點(diǎn)的條件更加寬松,誤匹配率逐步降低。
表4 閾值對(duì)提出算法精度的影響
綜合來(lái)看,相較于傳統(tǒng)的基于跨尺度代價(jià)聚合框架的立體匹配算法,本文提出的算法降低了低紋理區(qū)域,無(wú)紋理區(qū)域誤匹配率,取得了更精確的視差圖,同時(shí)提高了計(jì)算速度。
為了提高室內(nèi)自動(dòng)物流裝置以及工業(yè)抓取設(shè)備的準(zhǔn)確性與速度,本文提出了一種改進(jìn)的基于跨尺度代價(jià)聚合的立體匹配算法,算法在偶數(shù)下采樣層使用快速引導(dǎo)濾波,在奇數(shù)下采樣層使用區(qū)域樹(shù)代價(jià)聚合,研究證明在不同的代價(jià)卷中結(jié)合不同的代價(jià)聚合方法,能夠?qū)Ω鱾€(gè)下采樣層起到相互融合與抑制的作用,能有效提高算法性能。本文算法降低了低紋理區(qū)域、無(wú)紋理區(qū)域的誤匹配率,獲得了更精確的視差圖,并極大地減少了跨尺度框架下使用GF算法的計(jì)算耗時(shí)。本文對(duì)提出的算法在全部區(qū)域誤匹配率、非遮擋區(qū)域誤匹配率以及算法運(yùn)行時(shí)間方面進(jìn)行深入分析,并將結(jié)果與多種經(jīng)典算法、以及傳統(tǒng)的基于跨尺度代價(jià)聚合框架的立體匹配算法進(jìn)行對(duì)比分析。未來(lái),考慮將跨尺度框架與卷積網(wǎng)絡(luò)相結(jié)合,進(jìn)一步降低算法的誤匹配率并減少算法的運(yùn)行時(shí)間,并將立體匹配技術(shù)運(yùn)用到避障場(chǎng)景中。