陶 洋,歐雙江,唐 函,周婉怡
(重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065)
立體匹配,又稱為視差估計(jì),指的是在極線校正后的立體圖像對(duì)中建立像素之間的緊密對(duì)應(yīng)關(guān)系,從而得到視差,隨后還可根據(jù)相機(jī)系統(tǒng)的焦距和基線等參數(shù)轉(zhuǎn)換為深度.作為一種被動(dòng)深度估計(jì)技術(shù),它在許多計(jì)算機(jī)視覺應(yīng)用領(lǐng)域中都扮演著重要的角色,如自動(dòng)駕駛[1]、增強(qiáng)現(xiàn)實(shí)、目標(biāo)檢測(cè)[2]和3D模型重建[3]等.
作為經(jīng)典的視覺任務(wù),立體匹配被研究多年,在傳統(tǒng)方法中誕生了很多較為經(jīng)典的算法,如半全局匹配算法SGM[4]、AD-Census[5]、非局部代價(jià)聚合[6]等.一般來說,傳統(tǒng)的立體匹配算法由4個(gè)步驟組成:匹配代價(jià)計(jì)算、代價(jià)聚合、視差計(jì)算和視差優(yōu)化[7].通常,傳統(tǒng)的立體方法側(cè)重于利用輸入圖像的一些先驗(yàn)知識(shí)來提高匹配精度[5,8],但是其性能還是受到手工構(gòu)建的匹配代價(jià)描述和后處理的限制.
隨著卷積神經(jīng)網(wǎng)絡(luò)的不斷發(fā)展,立體匹配也被視為一項(xiàng)學(xué)習(xí)任務(wù),基于深度學(xué)習(xí)的立體匹配在這一領(lǐng)域得到了學(xué)者們的廣泛研究,產(chǎn)生了許多高質(zhì)量的模型[9-13]和規(guī)范化的數(shù)據(jù)集[14,15].基于學(xué)習(xí)的立體匹配主流方法通常也包含4個(gè)步驟:像素2D特征提取、匹配成本體構(gòu)建、3D成本量聚合和視差回歸[10,13].Zbontar和Lecun首次嘗試將卷積神經(jīng)網(wǎng)絡(luò)引入立體匹配來計(jì)算匹配代價(jià),結(jié)果表明,卷積神經(jīng)網(wǎng)絡(luò)可以從圖像中學(xué)習(xí)更穩(wěn)健的特征,并產(chǎn)生可靠的匹配代價(jià)[16],在這項(xiàng)工作之后,許多研究人員通過改變成本體構(gòu)建、代價(jià)聚合等方法來提高匹配精度[9,10,13].
盡管基于卷積神經(jīng)網(wǎng)絡(luò)的立體匹配算法已經(jīng)在多個(gè)基準(zhǔn)上占據(jù)主導(dǎo)地位,但是傳統(tǒng)卷積更傾向于提取外觀信息,對(duì)于立體匹配這種存在圖形變換,并且可能存在左右圖像光亮不一致的場(chǎng)景任務(wù)來說效果欠佳,卷積核所提取的結(jié)構(gòu)信息較少.由于圖像變換,物體的外觀可能發(fā)生改變從而引入誤差,但其相應(yīng)的結(jié)構(gòu)特征改變較少[17],傳統(tǒng)算法也早已注意到這一現(xiàn)象并加以應(yīng)用,如AD-Census[5]中結(jié)合外觀信息和結(jié)構(gòu)信息提升匹配精度.以往的工作也已經(jīng)證明整合傳統(tǒng)的先驗(yàn)知識(shí)有助于模型的性能提升[18].由此啟發(fā),本文提出了一種將圖像的結(jié)構(gòu)信息和強(qiáng)度信息結(jié)合的特征提取模塊,將中心差分卷積[19]融入特征提取主干形成差分卷積殘差組(CDC-ResBlock-Groups)以充分提取像素級(jí)的中心梯度信息(見圖1),與常規(guī)卷積相比,可以獲取更為豐富的結(jié)構(gòu)語義,增強(qiáng)特征的表達(dá)能力.
圖1 融入差分卷積殘差組的特征提取網(wǎng)絡(luò)Fig.1 Feature extraction network incorporating differential convolutional residual sets
此外,本文還觀察到現(xiàn)有的深度學(xué)習(xí)方法[10,13]存在一定的局限性,良好的立體匹配網(wǎng)絡(luò)需要在捕獲局部信息的同時(shí)還能充分的理解全局上下文.如GC-Net[9]、PSMNet[10]及GwcNet[13]中使用3D CNN進(jìn)行成本量聚合,通過堆疊類UNet[20]結(jié)構(gòu)擴(kuò)大卷積感受野.然而隨著卷積層的加深,來自底層或較遠(yuǎn)像素的影響會(huì)迅速衰減,缺乏對(duì)場(chǎng)景上下文足夠的理解,導(dǎo)致模型在物體邊緣處丟失大量細(xì)節(jié),在遮擋、重復(fù)紋理等需要全局理解的病態(tài)區(qū)域中表現(xiàn)很差.因此,本文針對(duì)上述問題提出全局代價(jià)聚合的沙漏網(wǎng)絡(luò)(Trans-Hrouglass),首次將Transformer[21]引入代價(jià)聚合并與3D Hrouglass融合,將成本代價(jià)體通過3D CNN,在提取局部信息的同時(shí)并進(jìn)行下采樣,使得輸出結(jié)果能夠有效捕獲局部3D上下文信息,然后送入Transformer[21]進(jìn)行全局特征建模以利用更多的全局上下文信息來進(jìn)行代價(jià)聚合,在重復(fù)紋理、物體邊緣部分取得了更好的效果.
本文提出的融合梯度特征和全局聚合的立體匹配網(wǎng)絡(luò)GFGANet(Combines Gradient Features and Global Aggregation Stereo Matching Network)的具體實(shí)現(xiàn),擴(kuò)展了PSMNet[10],增加了可以提取結(jié)構(gòu)信息的差分殘差組和改進(jìn)的具有全局建模能力的3D沙漏網(wǎng)絡(luò).具體的模型框架如圖2所示,具體來說,包含5個(gè)部分:特征提取,代價(jià)體構(gòu)建,代價(jià)聚合,視差回歸和細(xì)化.首先,原始的RGB參考圖像和目標(biāo)圖像輸入到特征提取網(wǎng)絡(luò),提取到的特征用于構(gòu)建4D代價(jià)體.然后,通過3D沙漏網(wǎng)絡(luò)對(duì)代價(jià)體進(jìn)行聚合及正則化.最后,通過視差預(yù)測(cè)模塊輸出預(yù)測(cè)的視差圖.要說明的是構(gòu)建代價(jià)體上,本文使用差分替換了原PSMNet[10]拼接建立的方式,以此增加匹配像素點(diǎn)之間的相似信息,而不用引入過多復(fù)雜的計(jì)算.
圖2 GFGANet模型框架圖Fig.2 GFGANet Model framework diagram
以往的立體匹配方法在特征提取部分往往只針對(duì)于如何更好的提取原始圖像的外在強(qiáng)度信息,忽視了對(duì)圖像結(jié)構(gòu)信息的表征提取,本文在融合匹配代價(jià)算法的啟發(fā)下[5],將圖像的強(qiáng)度信息和梯度信息相融合.具體而言,GFGANet的特征提取部分采用了如其他立體匹配網(wǎng)絡(luò)中常使用的類ResNet網(wǎng)絡(luò)主干,但為了更好的引入梯度信息,在特征提取網(wǎng)絡(luò)的前段嵌入了差分卷積殘差組,實(shí)現(xiàn)了像素的中心梯度信息和強(qiáng)度信息的混合編碼,而為了提取豐富的多尺度信息編碼更多的上下文信息,本文參考RFBNet[22],在特征提取后段將RFB Module引入其中.
1.1.1 差分卷積殘差組
本文將中心差分卷積(CDC-Conv)[19]納入特征提取網(wǎng)絡(luò)中的殘差組,實(shí)現(xiàn)了像素中心梯度感知特征提取,可以利用空間顯著信息增強(qiáng)像素的局部結(jié)構(gòu)特征表示.這一特性和傳統(tǒng)方法中的Census特征提取類似,針對(duì)傳統(tǒng)的立體匹配算法而言,多維度的特征表示以可以有效的增強(qiáng)立體匹配算法性能在業(yè)界收到一致認(rèn)可.
特征提取部分的結(jié)構(gòu)如圖2所示,具體而言,前3層均采用3×3的CDC-Conv[19],設(shè)置其卷積步長分別為2,1,1從而對(duì)原始圖像進(jìn)行下采樣,然后跟隨4個(gè)步長分別為1,2,1,1的嵌入CDC-Conv殘差組(CDC-ResBlock-Groups),進(jìn)一步提取原始圖像信息并進(jìn)行下采樣,最后生成尺寸為原始輸入圖像1/4大小的特征圖,GFGANet在每個(gè)殘差組的初始階段使用差分卷積,隨后使用殘差主干生成具有大范圍和高密集采樣的特征,從而增強(qiáng)特征提取能力.
以3×3的CDC-Conv為例,其詳細(xì)運(yùn)算過程如圖3所示.具體而言,分為兩個(gè)階段,在第1階段中3×3卷積區(qū)域的每個(gè)像素單獨(dú)與中心像素做差分計(jì)算獲得面向中心像素的梯度信息,而第2個(gè)階段則將原有的區(qū)域像素信息與一階段的梯度信息相加,并用可學(xué)習(xí)的卷積權(quán)重進(jìn)行聚合獲得整體輸出.作為一種可學(xué)習(xí)的測(cè)度方式,其反映了像素點(diǎn)的空間局部顯著性先驗(yàn)信息,數(shù)學(xué)表達(dá)如公式(1)所示:
圖3 中心差分卷積及其運(yùn)算過程Fig.3 Central differential convolution and its operation process
(1)
其中,p0=(0,0)表示卷積的中心;y(p0)為其對(duì)應(yīng)位置像素的卷積輸出;R是以p0對(duì)應(yīng)像素為中心的3×3的像素區(qū)域;Pn則表示在R中的偏移位置;x(p0),x(p0+pn)表示對(duì)應(yīng)位置像素的強(qiáng)度信息;w(p0+pn)為卷積核中對(duì)應(yīng)位置的可學(xué)習(xí)權(quán)重;θ∈[0,1]為平衡梯度信息和強(qiáng)度信息的超參數(shù),當(dāng)為0時(shí)差分卷積退化為普通卷積,在本文算法中,θ被設(shè)置為0.7[19].
1.1.2 多尺度特征提取模塊
為了進(jìn)一步獲得較大的接受域以便提取更加豐富的特征信息,PSMNet[10]中使用SPP來進(jìn)行多層特征融合,并通過下采樣的方式來擴(kuò)大感受野,但是上下采樣過程中會(huì)帶來一定的性能損失.因此,本文將學(xué)習(xí)到的局部信息特征通過RFB模塊[22]來進(jìn)行聚合,如圖2使用4分支的輕量級(jí)RBF模塊,每一個(gè)分支由一個(gè)1×1的卷積,S×S 的等寬卷積和3×3的空洞卷積組成,進(jìn)行局部信息擴(kuò)展,最后將所有的分支進(jìn)行拼接,不同與SPP等的是,通過RFB模塊的每個(gè)分支輸出的特征圖尺寸和輸入的相同,從而避免了上下采樣的信息損失,有效聚合了像素的局部周邊特征信息.
現(xiàn)有的高性能方法大多使用3D卷積來處理代價(jià)聚合階段的任務(wù),而3D卷積可以視為對(duì)傳統(tǒng)SGM[4]算法中代價(jià)聚合階段的模擬構(gòu)造,雖然可以有效地聚集局部上下文,但受限于接受域的有效范圍,其缺乏捕獲全局依賴的能力,然而局部特征和全局特征對(duì)密集預(yù)測(cè)任務(wù)而言都是至關(guān)重要的,因此,本文在立體匹配的代價(jià)聚合中融合Transformer[21],這一聚合全局上下文信息的架構(gòu),提出Trans-Hourglass模塊,將Transformer應(yīng)用于立體匹配的代價(jià)聚合.
Trans-Hourglass的構(gòu)造如圖4所示,使用基本的Transformer[21]構(gòu)建,但由于其計(jì)算復(fù)雜度是Token數(shù)量的二次型,因此將輸入的4D代價(jià)體直接序列化后作為Transformer的輸入是不切實(shí)際的,而如果采用類似VIT直接將4D數(shù)據(jù)分割成一個(gè)一個(gè)3D塊,這種策略將阻礙Transformer跨空間、深度維度對(duì)代價(jià)體的相鄰區(qū)域建模.因此,結(jié)合卷積可以局部聚合而消除部分冗余信息和Transformer可以全局信息建模的特點(diǎn),在淺層,局部信息較為豐富,Trans-Hourglass則先在一個(gè)小的3D鄰域中聚合上下文,編碼局部關(guān)系,濾除冗余信息,而在深層再進(jìn)行長距離依賴關(guān)系的建模.具體而言,先使用多個(gè)3×3×3的三維卷積對(duì)4D代價(jià)體進(jìn)行下采樣,逐步將原始代價(jià)體編碼為 256×D/32×H/32×W/32的4D代價(jià)體,得以使得在輸入Transformer前代價(jià)體中已經(jīng)有效的嵌入豐富的局部3D上下文信息,并且大大節(jié)省比較Token的計(jì)算量,然后再將處理過的代價(jià)體輸入到Transformer中,進(jìn)一步學(xué)習(xí)具有全局上下文的長程關(guān)系.最后再反復(fù)應(yīng)用卷積層進(jìn)行上采樣,產(chǎn)生高分辨率的代價(jià)聚合結(jié)果.
圖4 Trans-Hourglass模塊結(jié)構(gòu)圖Fig.4 Trans-Hourglass module structure diagram
Trans-Hourglass的編碼器由多個(gè)Transformer[21]層組成,每一層都有一個(gè)標(biāo)準(zhǔn)的架構(gòu),如圖4,該架構(gòu)主要由3個(gè)部分組成:位置嵌入編碼(PE),Multi-Head Attention(MHA)和前饋網(wǎng)絡(luò)(FFN).其數(shù)學(xué)表達(dá)式如公式(2)所示:
(2)
其中,Xin∈Rd×N,N=D×H×W表示輸入的Token序列;Norm(·)表示層歸一化,而FFN則由兩個(gè)線性層組成,每個(gè)線性層后使用GELU作為激活函數(shù).
1.2.1 可學(xué)習(xí)的動(dòng)態(tài)位置編碼
Trans-Hourglass首先使用3D卷積對(duì)4D代價(jià)體進(jìn)行局部編碼與下采樣,處理后的結(jié)果作為Transformer[21]層的輸入,進(jìn)行全局依賴信息的提取.但Transformer需要將空間維度和深度維度折疊成一維,為了對(duì)位置信息編碼,以往的顯式編碼方法通常使用絕對(duì)或者相對(duì)位置嵌入解決這一問題,如此一來必須顯式的指定Token序列的長度,受CPVT[23]中條件位置編碼的啟發(fā),本文擴(kuò)展其三維形式,使用一個(gè)三維卷積來隱式地編碼位置信息并嵌入到輸入的Token序列中,如公式(3)所示:
PE(Xin)=3DWConv(Xin)
(3)
其中,Xin∈Rd×N是輸入的Token序列;3DWConv是一個(gè)可學(xué)習(xí)的3×3×3深度3D卷積.在CPVT[23]中已有表明,由于卷積的參數(shù)共享和局部性,DWPE可以克服置換不變性,對(duì)任意輸入都較為友好,避免了顯式位置編碼需要指定Token序列長度的問題.
1.2.2 Transformer層和編解碼
Trans-Hourglass將4D代價(jià)體展開為通道為256維的Token序列,通過位置編碼后,再送入MHA進(jìn)行全局區(qū)域相關(guān)性建模,最后通過一個(gè)FFN,將整體特征還原到輸入Transformer層前的維度.
MHA子層由Head_Nums個(gè)并行的Self-Attention(SA)模塊組成,具體來說,SA模塊可以看成是一個(gè)參數(shù)化學(xué)習(xí)的函數(shù),它學(xué)習(xí)Token序列X中查詢q與對(duì)應(yīng)的鍵k和值v表示之間的映射,通過將X中的兩個(gè)元素做查詢q和鍵k內(nèi)積以計(jì)算相似性,然后對(duì)內(nèi)積結(jié)果做SoftMax得到注意力權(quán)重,其數(shù)學(xué)描述如公式(4)所示:
(4)
其中,X∈Rd×N是Transformer中對(duì)MHA的輸入;head_nums為MHA劃分的子空間個(gè)數(shù),本文算法中設(shè)置為8;Wq,Wk,Wv∈Rd×dh是MHA需要學(xué)習(xí)而將X進(jìn)行線性變化得到q、k、v的權(quán)重矩陣,dh=d/head_nums;Wlinear∈Rd×d是MHA需要學(xué)習(xí)的多頭可訓(xùn)練權(quán)重.
在解碼器部分,本文采用同編碼器一樣的設(shè)計(jì),使用三級(jí)3D卷積上采樣逐步恢復(fù)特征圖的尺寸,同時(shí)在同級(jí)編解碼塊之間使用了1×1卷積的跳躍連接,以此來補(bǔ)充底層信息,獲得更加豐富的空間細(xì)節(jié).
本文算法采用經(jīng)典立體匹配模型中的做法,使用Soft-Argmin[9]來獲取連續(xù)視差圖,作為傳統(tǒng)立體匹配算法中WTA[7]算法的可微實(shí)現(xiàn),它可以利用反向傳播進(jìn)行訓(xùn)練,具體而言,首先使用SoftMax運(yùn)算將匹配代價(jià)體中每個(gè)像素點(diǎn)的視差值Cd轉(zhuǎn)換為該像素點(diǎn)在該視差的概率,然后使用概率加權(quán)每個(gè)視差的總和得到最后該點(diǎn)的亞像素視差.
現(xiàn)有的立體匹配網(wǎng)絡(luò)模型中,一般設(shè)置視差的候選空間為192,在GFGANet中也是如此.但針對(duì)于具體的一個(gè)像素點(diǎn)的視差來說,其實(shí)際視差只接近192級(jí)視差中的一個(gè),為了減輕類別不平衡而對(duì)亞像素視差回歸造成的影響,本文算法對(duì)正確類別進(jìn)行加窗限制,具體而言,定義一個(gè)加窗半徑r,對(duì)于每個(gè)像素點(diǎn),以其最后預(yù)測(cè)出的192個(gè)視差概率中最大值所在視差index為中心,以r為半徑的窗口中的概率為其最終的概率值分布,用于最后該點(diǎn)的亞像素值預(yù)測(cè),如公式(5)所示:
(5)
為了進(jìn)一步提升初始視差圖的細(xì)節(jié),比如消除大感受野帶來的邊界平滑模糊,以及遮擋區(qū)域的視差值缺失等問題,本文使用了StereoDRNet[24]提出的視差后處理細(xì)化模塊,將初始化視差結(jié)果經(jīng)過其后,得到模型最終預(yù)測(cè)的視差圖.
GFGANet以真實(shí)的視差圖作為監(jiān)督信息,并且執(zhí)行端到端訓(xùn)練.為了更好的監(jiān)督訓(xùn)練過程,本文對(duì)中間過程采用多級(jí)監(jiān)督的策略,使用平滑L1損失(LSM)和交叉熵?fù)p失(LCE)分別監(jiān)督最終的視差結(jié)果和視差概率分布,如公式(6)所示:
(6)
(7)
其中,x表示預(yù)測(cè)視差值和真實(shí)值的差值;Pi(d)是以真實(shí)視差構(gòu)建的視差概率分布,為以視差地面Di為中心的歸一化高斯分布,如公式(8)所示:
(8)
其中,Vard表示方差,用來控制概率分布的離散程度,本文設(shè)置為2.結(jié)合兩個(gè)部分的損失計(jì)算,整體損失函數(shù)如公式(9)所示:
(9)
其中,對(duì)于GFGANet來說,整個(gè)損失函數(shù)監(jiān)督代價(jià)聚合階段進(jìn)入Trans-hourglass前、Trans-hourglass后及視差細(xì)化模塊后共3個(gè)部分的輸出結(jié)果;λi是對(duì)應(yīng)的輸出權(quán)重,在本文實(shí)驗(yàn)中取0.5,0.7,1[10].
本文在公開數(shù)據(jù)集SceneFlow[15]以及KITTI 2012、KITTI 2015[14]上對(duì)所提出的立體匹配算法進(jìn)行訓(xùn)練和評(píng)估.首先展示了本文關(guān)于網(wǎng)絡(luò)設(shè)置和訓(xùn)練方法的實(shí)現(xiàn)細(xì)節(jié),然后在SceneFlow上進(jìn)行了消融實(shí)驗(yàn),比較了GFGANet中不同組件對(duì)整體性能的貢獻(xiàn),最后將其與KITTI 2012和KITTI 2015數(shù)據(jù)集上的其他前沿算法的性能進(jìn)行了對(duì)比.
2.1.1 數(shù)據(jù)集
1)SceneFlow[15]:SceneFlow是一個(gè)合成數(shù)據(jù)集,其包含35454個(gè)訓(xùn)練圖片對(duì)和4370個(gè)測(cè)試圖片對(duì),分辨率為960×540,并且都擁有密集的真實(shí)視差標(biāo)簽.本文使用其作為GFGANet的預(yù)訓(xùn)練數(shù)據(jù)集.
2)KITTI[14]:KITTI分為KITTI 2012和KITTI 2015兩個(gè)版本,是一個(gè)車載雙目拍攝的真實(shí)街景數(shù)據(jù)集,并通過Lidar獲取對(duì)應(yīng)真實(shí)的稀疏視差標(biāo)簽.其中KITTI 2012包含194個(gè)訓(xùn)練圖片對(duì)和195個(gè)測(cè)試圖片對(duì),分辨率為1226×370,KITTI 2015是對(duì)KITTI 2012的擴(kuò)充,包含200對(duì)訓(xùn)練圖像和200對(duì)測(cè)試圖像,分辨率為1242×375,這兩個(gè)版本都僅提供訓(xùn)練集對(duì)應(yīng)的真實(shí)視差標(biāo)簽.對(duì)于KITTI數(shù)據(jù)集,在KITTI 2012上,本文隨機(jī)選取訓(xùn)練集中的160個(gè)圖像對(duì)進(jìn)行訓(xùn)練,剩余的34個(gè)圖像對(duì)用于測(cè)試,同樣在KITTI 2015的訓(xùn)練集上,隨機(jī)選擇160對(duì)用于訓(xùn)練,剩余40對(duì)用于測(cè)試.
2.1.2 實(shí)驗(yàn)細(xì)節(jié)
本文采用PyTorch進(jìn)行整體算法實(shí)現(xiàn),使用Adam(β1=0.9,β2=0.999)優(yōu)化器,在3塊RTX2080Ti上進(jìn)行了模型訓(xùn)練,批量大小設(shè)置為6,每塊GPU上放置2個(gè)訓(xùn)練樣本.在訓(xùn)練過程中,GFGANet首先在SceneFlow[15]上進(jìn)行了16個(gè)epoch的預(yù)訓(xùn)練,初始學(xué)習(xí)率設(shè)置為0.001,在第10個(gè)epoch之后,下降為0.0001,最大視差值設(shè)置為192,并且為了有效評(píng)估GFGANet,本文刪除了測(cè)試集中所有有效像素少于10%的圖像,對(duì)于每個(gè)有效圖像,也僅使用有效像素進(jìn)行指標(biāo)評(píng)估.而在KITTI 2015和KITTI 2012數(shù)據(jù)集上,本文分別對(duì)在SceneFlow上完成預(yù)訓(xùn)練的模型進(jìn)行300個(gè)epoch的微調(diào),初始學(xué)習(xí)率為0.001,200個(gè)epoch后調(diào)整為0.0001.
評(píng)估指標(biāo)上,對(duì)于SceneFlow[15],本文使用慣例的端點(diǎn)誤差(EPE)和異常值百分比(D1)分?jǐn)?shù)來作為評(píng)價(jià)標(biāo)準(zhǔn),其中端點(diǎn)誤差是指以像素為單位的全圖平均誤差,而異常值定義為視差誤差大于max(3px,0.05×Di)的像素,Di表示具體i點(diǎn)的真實(shí)視差.在KITTI[14]中,主要報(bào)告KITTI官網(wǎng)測(cè)試給出的評(píng)價(jià)指標(biāo),對(duì)于KITTI 2012,主要是非遮擋區(qū)域(Noc)和所有像素(All)的誤匹配率,而對(duì)于KITTI 2015,則主要是針對(duì)于背景(bg)、前景區(qū)域(fg)和所有像素(all)的D1分?jǐn)?shù)進(jìn)行評(píng)估.
2.2.1 SceneFlow數(shù)據(jù)集
GFGANet擴(kuò)展了PSMNet[10],在它的基礎(chǔ)上,增加了提取結(jié)構(gòu)信息的差分殘差組(CDC-ResBlock-Group),使用無損的多尺度提取模塊(RBF Module)避免了上下采樣的性能損失,用差分的方式(Dif)構(gòu)建代價(jià)體,使用改進(jìn)具有全局建模能力的3D沙漏網(wǎng)絡(luò)(Trans-hourglass),以及在視差回歸部分進(jìn)行加窗設(shè)計(jì)(WR),最后還使用了StereoDRNet[24]的后處理模塊(RF).為了更好的評(píng)估GFGANet各個(gè)組件的有效性,本文首先使用不同設(shè)置進(jìn)行實(shí)驗(yàn),并在SceneFlow上進(jìn)行對(duì)應(yīng)的性能評(píng)估,以展現(xiàn)不同組件對(duì)于GFGANet的性能影響,對(duì)比實(shí)驗(yàn)結(jié)果如表1所示.
表1 SceneFlow[15]消融實(shí)驗(yàn)分析Table 1 SceneFlow[15] ablation experiment analysis
由表1可知:引入RFB模塊與之前融合SPP的網(wǎng)絡(luò)相比EPE有所下降;而引入加窗視差回歸(WR)相比于沒有引入的模型,D1-all下降到2.473%,精度提升了25.6%,同時(shí)EPE降低了0.045px,表明對(duì)視差回歸進(jìn)行加窗可以有效的減輕類別不平衡對(duì)亞像素視差回歸精度造成的影響,降低了視差異常率;而差分殘差組(CDC-ResBlock-Group)加入后,模型端點(diǎn)誤差EPE下降到0.818px,D1-all分?jǐn)?shù)下降到2.376%,表明引入空間局部顯著性先驗(yàn)信息對(duì)模型整體具有較大的收益,可以顯著提升模型的精度;而引入全局代價(jià)聚合(Trans-Hourglass)后,EPE進(jìn)一步降低到0.772px,同時(shí)D1-al1下降到了2.154%,可以看到全局代價(jià)聚合的引入帶來了巨大收益,在使用差分構(gòu)建代價(jià)體,并且加入StereoDRNet的視差細(xì)化模塊后,模型雖在D1-all上有一定的性能損失,但是EPE下降到了0.671px,而在實(shí)驗(yàn)7、8、9中,本文測(cè)試了不同Layer_Nums的Trans-Houglass對(duì)于算法的影響,可以看到當(dāng)Layer_Nums為2的時(shí)候算法性能最優(yōu).
對(duì)于加窗視差回歸的半徑設(shè)置,本文在SceneFlow數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),并在表2中展示了不同半徑r對(duì)算法性能的影響.隨著半徑r擴(kuò)大,視差回歸范圍增加,類別不平衡的情況加劇,算法性能降低.而當(dāng)設(shè)置半徑較小為3時(shí),回歸的亞像素視差精度又會(huì)受到影響,結(jié)果表明r取5的時(shí)候最為合適,算法達(dá)到了最優(yōu)性能.
表2 在SceneFlow[15]中對(duì)不同半徑r的消融分析Table 2 Ablation analysis in SceneFlow[15] for different radii r
同時(shí)本文將GFGANet分別與已有的一些性能方法在SceneFlow數(shù)據(jù)集上的誤差結(jié)果(EPE)進(jìn)行了對(duì)比,如表3所示,大部分結(jié)果摘抄自原文,除此之外,在圖5給出了本文算法與PSMNet[10]、GwcNet[13]等性能算法在SceneFlow數(shù)據(jù)集上的可視化結(jié)果對(duì)比.
表3 與其他算法在SceneFlow[15]上的端點(diǎn)誤差(EPE)對(duì)比Table 3 Endpoint Error(EPE)comparison with other algorithms on SceneFlow[15]
圖5 在SceneFlow[15]上與PSMNet[10]、GwcNet[13]的可視化對(duì)比Fig.5 Visualization comparison with PSMNet[10] and GwcNet[13] on SceneFlow[15]
可以看到,得益于Trans-Hourglass的全局聚合能力,GFGANet對(duì)于場(chǎng)景的細(xì)薄結(jié)構(gòu)部分表現(xiàn)非常優(yōu)秀,在圖5(1)中GFGANet預(yù)測(cè)的視差圖中盆栽的枝葉結(jié)構(gòu)清晰可見,而且可以看到GFGANet對(duì)于重復(fù)紋理區(qū)域也表現(xiàn)出強(qiáng)大的性能,在圖5(2)GFGANet在架子的重復(fù)部分也能做到很好的細(xì)節(jié)展現(xiàn),而在圖5(3)在摩托車的后視鏡與其余位置接連處,本文算法也取得了比其他兩種主流算法更好的結(jié)果.
2.2.2 KITTI數(shù)據(jù)集
本文給出了KITTI 2012和KITTI 2015測(cè)試集上傳到KITTI官網(wǎng)后的結(jié)果,在KITTI 2015數(shù)據(jù)集上的測(cè)試結(jié)果及排序如表4所示,其中“All”表示視差圖所有區(qū)域的像素,而“Noc”表示只考慮測(cè)試圖像的非遮擋區(qū)域,同時(shí)本文也在圖6給出了在KITTI 2015上GFGANet與PSMNet[10]、GwcNet[13]預(yù)測(cè)結(jié)果的可視化對(duì)比.
表4 KITTI 2015數(shù)據(jù)集實(shí)驗(yàn)結(jié)果Table 4 Experimental results of KITTI 2015 dataset
圖6 在KITTI 2015上與PSMNet[10]、GwcNet[13]的可視化結(jié)果和誤差圖對(duì)比Fig.6 Comparison of visualization results and error plots with PSMNet[10] and GwcNet[13] at KITTI 2015
由表4可知,相比于基準(zhǔn)算法PSMNet[10]來說,GFGANet有明顯的提升,整體像素(All)部分的D1-all分?jǐn)?shù)從2.32%下降到2.04%,而非遮擋區(qū)域(Noc)則從2.14%下降到1.86%.值得關(guān)注的是,GFGANet在All和Noc的D1-fg(前景區(qū)域)上相比PSMNet[10]算法提升巨大,本文分析這是因?yàn)槿执鷥r(jià)聚合能有效聚合全局上下文信息為前景區(qū)域提供支撐.
同時(shí),由圖6所示,本文展示了KITTI 2015測(cè)試集上“Test Image 3”和“Test Image 4”這兩張圖片與PSMNet、GwcNet對(duì)比的可視化結(jié)果,從上到下,分別是每個(gè)網(wǎng)絡(luò)對(duì)應(yīng)的視差圖和error圖.對(duì)于“Test Image 3”,由于角度關(guān)系,其左圖中存在迎面汽車擋風(fēng)玻璃造成的反光,而對(duì)應(yīng)的右圖沒有相應(yīng)的反光存在,該區(qū)域在左右兩圖中存在光線不一致的情況,屬于病態(tài)區(qū)域,從結(jié)果中可以看到,在PSMNet[10]、GwcNet[13]中該區(qū)域均出現(xiàn)預(yù)測(cè)出錯(cuò)的情況,而由于本文在特征提取階段引入了差分卷積殘差組,顯式提取結(jié)構(gòu)信息,對(duì)強(qiáng)度信息進(jìn)行相應(yīng)補(bǔ)充,增大了匹配特征的抗干擾能力,使得GFGANet得以在該區(qū)域獲得更加準(zhǔn)確的描述信息,從而在該區(qū)域的結(jié)果得到了改善;對(duì)于“Test Image 4”,可以看到對(duì)于圍欄處這種重復(fù)區(qū)域,GFGANet取得了比PSMNet[10]、GwcNet[13]都要好的結(jié)果,也說明了全局代價(jià)聚合針對(duì)于這種重復(fù)區(qū)域的有效性.
對(duì)于KITTI 2012,在表5中給出了其測(cè)試集提交結(jié)果中的“2-px”、“3-px”相應(yīng)指標(biāo)和排序情況,其中“Noc”表示非遮擋區(qū)域的像素,“All”表示圖像的全部像素,可以看到相對(duì)于基準(zhǔn)算法PSMNet[10],GFGANet在各方面指標(biāo)上的獲得了巨大提升,尤其在“2-px”下“Noc”區(qū)域誤匹配率下降了17.6%,“All”區(qū)域中誤匹配率下降了14.3%,展示了本文算法在于細(xì)節(jié)部分的強(qiáng)有力的性能提升.
表5 KITTI 2012數(shù)據(jù)集實(shí)驗(yàn)結(jié)果Table 5 Experimental results of KITTI 2012 dataset
本文研究了當(dāng)前基于深度學(xué)習(xí)的立體匹配算法的一些局限性,提出了一種融合梯度信息,并能建模全局上下文的立體匹配方法.在特征提取部分,差分卷積殘差組(CDC-ResBlock-Groups)融合強(qiáng)度和梯度信息,增強(qiáng)了匹配特征表達(dá)能力;在代價(jià)聚合階段,Trans-Hourglass顯著增強(qiáng)了場(chǎng)景理解的能力,以提高在具有挑戰(zhàn)性的區(qū)域中的準(zhǔn)確性,在視差回歸階段,使用加窗操作,改善了回歸標(biāo)簽不平衡的情況.本文在SceneFlow和KITTI數(shù)據(jù)集上分別進(jìn)行實(shí)驗(yàn),與基準(zhǔn)算法和部分基于學(xué)習(xí)的性能算法相比,本文算法在光亮不一致的區(qū)域具有更好的抗干擾能力,對(duì)細(xì)小物體和薄結(jié)構(gòu)的邊緣保留較好,在重復(fù)紋理和弱紋理區(qū)域等病態(tài)區(qū)域的視差預(yù)測(cè)有較大的性能提升,并在KITTI 2012和KITTI 2015數(shù)據(jù)集的誤匹配率可以達(dá)到1.31%和2.04%,對(duì)立體匹配算法在特征提取和病態(tài)區(qū)域進(jìn)行性能提升都有很大的研究價(jià)值.當(dāng)然本文使用固定的加窗半徑忽略了不同紋理區(qū)域的自適應(yīng)問題,下一步的工作將探索多模態(tài)和自適應(yīng)加窗視差回歸增強(qiáng)立體匹配算法域泛化的研究.