劉振國,李釗,宋滕滕,何益智
(山東理工大學計算機科學與技術學院,山東淄博 255000)
雙目立體匹配[1-3]作為無人駕駛、機器人導航、增強現實等三維重建領域的核心技術,取得顯著成效。隨著深度學習的發展和研究,基于深度學習的雙目立體匹配相較于傳統雙目立體匹配,在精度與速度方面都具有優異的性能。
文獻[4]提出可以實現端到端訓練的深度學習立體匹配網絡DispNetC,該網絡采用相關層對左右特征圖進行相似性度量,并利用下采樣的方式計算得到代價體,通過對代價體進行解碼,獲得視差并回歸得到稠密視差圖,雖然達到了實時性的目的,但是精度卻大幅降低。文獻[5]提出GC-Net,采用串聯方式對特征提取得到的特征圖進行聚合,將左右特征圖串聯得到代價體,最后使用3D 卷積聚合這些代價體。文獻[6]提出PSM-Net,引入金字塔特征池化[7],利用全局上下文信息進行匹配,該網絡通過堆疊大量由3D 卷積組成的代價聚合模塊進行代價聚合,雖然精度得到顯著提高,但是計算量大幅增加,速度也大幅減慢。針對3D 卷積所存在的問題,文獻[8]提出GA-Net,采用半全局聚集和局部引導聚集這2 種引導聚合層代替3D 卷積進行代價聚合,以提升精度并減少計算量,但是在網絡模型中使用3D卷積進行代價聚合,其運行速度與2D 卷積相比仍存在一定的不足。
針對基于深度學習的立體匹配網絡使用3D 卷積進行代價計算所產生計算量大的問題,文獻[9]提出AANet,利用2D 可變形卷積構建代價體,并構建同尺度代價聚合模塊與跨尺度代價聚合模塊,在保持精度的同時顯著提升速度,但是AANet 對邊緣處的視差預測并不理想,同時特征提取部分的性能有待提高。
在基于深度學習的立體匹配網絡中,利用3D卷積進行代價聚合,同時引用來自圖像的監督信息,從而提高輸出視差圖的精度,導致計算量增大,例如基于2D 卷積的立體匹配網絡通過特征相關構造3D 代價卷,而基于3D 卷積需要構建4D 代價卷。假設輸入的代價卷與輸出的代價卷大小相同,卷積核大小為K(通常K=3),最大視差D為64,則3D 卷積的計算復雜度為O(K3×C2×D×H×W),2D卷積的計算復雜度為O(K2×D2×H×W+3K4×D×H×W+3K2×D×H×W),2D 卷積的計算復雜度為3D 卷積的1/130。因此,3D 卷積雖然可以提高精度,但是產生的計算量導致速度減慢。2D 卷積方法可以加快模型速度,但是對于邊緣處的視差預測魯棒性較低,同時多尺度2D 卷積方法中特征提取部分的性能有待提高。
本文提出結合可變形卷積與雙邊網格的2D 卷積立體匹配網絡。通過引入注意力特征增強結構,豐富低分辨率特征圖的特征信息,采用注意力機制與Meta-ACON 激活函數提高特征提取效率,同時在聚合模塊中結合可變形卷積與雙邊網格[10-11],增強視差圖的邊緣信息。
本文網絡由特征提取、代價計算、代價聚合、雙邊網格上采樣、視差回歸組成。利用改進的特征金字塔網絡(Feature Pyramid Network,FPN)進行特征提取,充分利用語義信息以及空間特征信息,提高特征信息的利用率。為減少計算量,本文使用類似于DispNetC 的互相關層[12]對提取的特征進行特征點匹配,以計算多尺度3D 代價卷。當獲得多尺度3D 代價卷后,利用注意力機制與Meta-ACON 激活函數相結合的2D 可變形卷積代價聚合模塊進行聚合,提高模型精度,采用雙邊網格對聚合得到的低分辨率代價卷進行上采樣,提升預測視差在邊緣處的魯棒性。最后通過視差回歸獲得視差圖。本文網絡的整體結構如圖1 所示。

圖1 本文網絡結構Fig.1 Structure of the proposed network
立體匹配網絡的特征提取部分對雙目圖像特征信息提取的充分程度,可間接關系到弱紋理以及無紋理區域的魯棒性。而基于深度學習的立體匹配網絡多采用金字塔結構以及左右特征圖共享權重來完成特征提取任務,同時,通過輸出多尺度的特征圖來構建代價體,具有較優的性能,如AANet。然而,當FPN[13]輸出多尺度特征圖時,低分辨率的特征圖并沒有與不同分辨率的特征圖融合輸出,這可能導致語義信息提取不充分,從而影響視差圖的魯棒性。
為了解決該問題,本文借鑒AugFPN[14]的思想,在高層低分辨率特征圖上添加注意力特征增強結構,將其與低分辨率特征圖進行融合輸出。但是,與AugFPN 不同,本文的注意力特征增強結構對自適應空間融合進行改進,將拼接的上下文特征通過最大池化層與平均池化層后,分別經過1×1 卷積層與3×3卷積層處理,最后經過Sigmoid 函數生成權重。同時,在特征提取的殘差結構中引入通道注意力機制[15]與Meta-ACON 激活函數[16],增強特征提取能力,更加充分地提取特征。在特征金字塔網絡中的注意力特征增強結構如圖2 所示。

圖2 注意力特征增強結構Fig.2 Structure of attention feature enhancement
首先,為了獲得多個上下文信息,將特征圖通過自適應池化層(該層由3 種比例的自適應池化層構成),獲得3種H×W尺度的上下文特征,然后,這3 種上下文特征分別經過1×1 卷積層,使其通道數變為256,通過雙線性插值進行上采樣并融合。由于單一插值并融合易造成混疊效應,因此需要經過自適應空間融合來消除混疊效應。自適應空間融合把上采樣特征作為輸入,將多個特征圖進行拼接,通過Sigmoid 函數生成一個空間權重。權重用于將上下文特征聚合成新的特征圖。新的特征圖具有多尺度上下文信息,僅適用于與原分支低分辨率特征圖相融合,并不進行輸出。自適應池化層與金字塔場景解析(Pyramid Scene Parsing,PSP)[17]網絡的不同之處在于:PSP 將特征池化為具有固定大小的多個特征,而自適應池化層則考慮圖像的比率。本文使用自適應空間融合層融合特征,而不是直接卷積連接特征,有助于消除混疊效應。由于引入的注意力特征增強結構額外增加用于融合的特征圖,因此會增加參數量,對模型的速度產生影響。為提高特征提取性能,本文在殘差結構中引入注意力機制與Meta-ACON 激活函數。注意力機制與Meta-ACON 激活函數融合結構如圖3 所示。

圖3 注意力機制與Meta-ACON 激活函數融合結構Fig.3 Structure of attention mechanism and Meta-ACON activation function fusion
注意力機制將圖像中的特征信息轉換為權重,生成的權重信息可輔助完成特征提取任務,充分提取特征信息,從而生成特征圖。本文使用Meta-ACON 激活函數,可選擇性地激活神經元,提升特征提取效率。注意力機制的計算如式(1)所示:

其中:σ為Sigmoid函數;W0為權重,W0∈RC/r×C;W1為權重,W1∈RC ×C/r。ReLU 激活函數后接W1,Favg與Fmax分別表示平均池特征與最大池特征。
Meta-ACON 激活函數如式(2)所示:

其中:Sβ為光滑的最大值函數;p1與p2為可學習的參數(p1≠p2);β為開關因子。Meta-ACON 激活函數引入到殘差網絡中進行測試,并加入可學習的參數,參數量增加,但是自適應開關因子β的加入能夠有效提高精度。
1.2.1 可變形卷積代價聚合
傳統的跨尺度聚合算法[18]采用統一優化進行局部代價聚合,并利用不同尺度的代價體聚合來消除在無紋理區域中魯棒性較差的現象。在弱紋理及無紋理區域中,低分辨率尺度下的代價體有利于特征點的匹配[19-20],當代價體下采樣時,具有相同分辨率的代價體在無紋理和弱紋理區域的紋理信息更加清晰。
本文采用可變形卷積進行聚合,有助于解決邊緣膨脹問題,若采用規則卷積,采樣點難以自適應地聚合到相似視差的位置,導致邊緣膨脹。可變形卷積[21]的原理是將規則卷積提取與采樣點對應的像素值,根據式(3)進行計算,得到帶有偏移量的像素值:

其中:p0為像素點;pn為固定偏移;Δpn為可學習的偏移量;q為圖像中的空間位置;G(q,p)為線性插值。
使用式(4)對帶有偏移量的像素值進行計算,獲得最終的像素值:

其中:y(p0)為最終的像素值;w(pn)為位置權重。
將最終的像素值更新到矩陣中,最后使用規則卷積進行采樣,使采樣點可以自適應地聚合到具有相似視差的位置。
為了解決2D 卷積方法在邊緣處魯棒性較差的問題并驗證傳統跨尺度聚合算法改進弱紋理及無紋理區域魯棒性的結論,尺度間代價聚合采用堆疊的多尺度可變形卷積模塊進行代價聚合。
基礎聚合結構及聚合公式借鑒AANet 的原理,但需要近似傳統跨尺度算法來解決無紋理和弱紋理區域魯棒性較差的問題,并且輸出單尺度低分辨率代價體與后續雙邊網格進行上采樣。因此,與AANet聚合結構相比,本文將聚合后的多尺度代價體進行一次跨尺度代價聚合,并在聚合模塊的殘差網絡結構中加入注意力機制與Meta-ACON 激活函數,進一步優化聚合效果,提升模型精度。可變形卷積代價聚合模塊結構如圖4 所示。

圖4 可變形卷積代價聚合模塊結構Fig.4 Structure of deformable convolution cost aggregation module
對于3 種尺度的成本卷C∈RD×H×W(D、H、W分別為最大視差、高度和寬度),使用式(5)近似可變形卷積進行聚合:

其中:C(d,p)為視差d在像素點p處聚合后的成本量;K為采樣點的數量;Wk為聚合權重;Pk為基于窗口成本聚合方法的固定偏移量;ΔPk為可學習的額外偏移量;mk為位置權重。本文加入ΔPk可以在邊緣及薄結構處獲得理想的結果。mk用于控制像素點之間位置的相互影響,從而加強自適應聚合。自適應聚合的具體結構類似于殘差結構,其中位于中間的卷積層使用可變形卷積。傳統的跨尺度代價聚合方式將相同尺度代價體與固定數值相乘,而對于高尺度代價體則先進行下采樣,然后與低尺度代價體相結合。
1.2.2 雙邊網格上采樣
為了進一步解決邊緣處預測視差魯棒性較差的問題,本文采用雙邊網格進行上采樣。雙邊網格最早應用于加速雙邊濾波[14],并在BG-Net[13]中與3D卷積相結合,減少網絡模型參數量。原始像素被投影到雙邊網格中,在雙邊網格中執行切片操作。在引導圖的引導下,雙邊網格通過三線性插值來提取代價體的過程被稱為切片。切片的維度只是單純的一維信息,因此可以將3D 代價體升至可以進行切片操作的維度。與BG-Net 不同,本文網絡將雙邊網格上采樣與可變形卷積相結合,并且通過類似注意力特征增強的結構獲得引導圖。注意力特征增強導致參數量增加,從而影響模型的運行速度,但相比僅進行1×1 卷積處理獲得的引導圖,具有較豐富的紋理信息,有助于提升模型精度。可變形卷積代價聚合與雙邊網格相結合的結構如圖5 所示。

圖5 可變形卷積代價聚合與雙邊網格相結合的結構Fig.5 Structure of combining deformable convolution cost aggregation and bilateral grid
聚合后使用雙邊網格切片上采樣,將低分辨率的代價卷上采樣至高分辨率代價卷。首先,將得到聚合后的3D 代價卷升至可以切片的維度,以便于雙邊網格進行切片操作,然后,將特征提取部分得到的高分辨率特征圖轉換為引導特征圖,與來自雙邊網格操作后的代價卷進行切片上采樣。雙邊網格使用4 個維度B(w,h,d,g),其中w、h、d、g分別表示寬度、高度、視差和引導圖特征。最后,通過雙邊網格切片獲得4D 高分辨率代價卷并降維,得到3D 高分辨率代價卷。切片操作是在高分辨率引導圖的引導下4D 雙邊網格中進行線性插值,同時切片層沒有參數,并不會增加計算量。切片層的定義如式(6)所示:

其中:C為進行聚合并升至一定維度后的代價體;C∧為上采樣后的代價體;B為雙邊網格;s∈(0,1)為網格的寬度或高度比;sg∈(0,1)為網格的灰度與引導圖的灰度比;G表示引導圖;?表示三線性插值。
本文對于每一個像素,采用Soft argmin 方法[5]進行視差回歸。該視差回歸方法可微并且能夠返回亞像素精度的視差,有助于提升視差回歸精度。視差回歸如式(7)所示:

其中:Dmax為最大視差;σ為Sigmoid 函數;Cd為通過代價聚合以及上采樣獲得的代價卷;σ(Cd)為視差的概率。
由于Scene Flow 數據集[4]中的數據由大量真值標簽標注,因此采用smoothL1 損失函數訓練Scene Flow 數據集,如式(8)所示,smoothL1 函數如式(9)所示:

其中:N為被標記的像素數;dpred為預測視差;dgt為視差真值。
由于KITTI2012[22-23]數據集缺少真值標簽,因此利用效果較好的模型訓練出的KITTI2012 數據集作為偽標簽[9]。在KITTI2012 數據集上的損失函數如式(10)所示:

其中:p為像素值;Dpseudo(p)為偽標簽真值。
本文實驗使用Pytorch 框架,網絡環境的搭建以及實驗中的訓練過程在配置為NVIDIA Tesla T4GPU 的服務器上運行。本文采用2 個數據集進行實驗,分別為Scene Flow 和KITTI2012。對于Scene Flow 數據集,本文實驗將圖片隨機裁剪分辨率為288×576 像素,驗證集尺寸分辨率為540×960 像素,初始學習率為0.001,使用Adam 優化器進行優化(β1=0.9,β2=0.999),epoch 為64,在進行 第20 次epoch 之后,每10 個epoch 降低一次學習率。對于KITTI2012數據集,本文實驗采用Scene Flow 數據集生成的預訓練模型進行訓練,并將模型參數進行微調。在KITTI2012 數據集的視差預測時采用與文獻[9]相同的策略,即用視差真值作為監督,提高模型在該數據集下的精度。本文最大視差設置為192。
2.2.1 模型消融實驗
為了選出最佳的網絡結構,本文對所提網絡進行消融實驗,在Scene Flow 數據集上分析雙邊網格、注意力特征增強、注意力機制與Meta-ACON 激活函數對端點誤差(EPE)的影響,其中注意力機制與Meta-ACON激活函數使用AMA 表示,結果如表1 所示。

表1 消融實驗結果Table 1 Ablation experiment results
從表1 可以看出:當不添加注意力特征增強、注意力機制與Meta-ACON 激活函數、雙邊網格時,本文網絡的端點誤差為0.882;加入注意力機制與Meta-ACON 激活函數后,本文網絡端點誤差為0.835;加入雙邊網格與注意力特征增強后,本文網絡端點誤差為0.804;當加入注意力特征增強、注意力機制與Meta-ACON 激活函數、雙邊網格時,本文網絡端點誤差為0.756。因此最佳的網絡模型為加入注意力特征增強、注意力機制與Meta-ACON 激活函數、雙邊網格。
2.2.2 在Scene Flow 數據集上的結果分析
在Scene Flow 數據集上,本文網絡DEBGNet 與DispNetC[4]、GC-Net[5]、PSM-Net[6]、AANet[9]進行對比實驗。本文使用的評價指標為EPE。在Scene Flow 數據集上不同網絡的實驗結果對比如表2 所示。

表2 不同網絡的實驗結果對比Table 2 Experimental results comparison among different networks
從表2 可以看出,本文網絡DEBGNet 具有較優的精度。雖然本文所提網絡在速度方面與實時網絡DispNetC 相比不占優勢,但是在精度方面,DEBGNet比DispNetC 的EPE 降低了約55%。與其他基于3D 卷積的網絡模型PSM-Net、GC-Net 相比,DEBGNet 網絡具有較高的精度和較快的速度。為了提升網絡模型精度,在網絡中加入Meta-ACON 激活函數與注意力特征增強,但會少量地增加計算量。因此,與基于2D卷積的AANet 相比,本文所提網絡的速度雖然稍微慢一些,但EPE 下降了13.7%。
本文網絡全部基于2D 卷積,在Scene Flow 數據集上,與AANet進行可視化對比。在SceneFlow數據集上,本文網絡DEBGNet與AANet的可視化結果對比如圖6 所示(彩色效果見《計算機工程》官網HTML 版)。

圖6 在Scene Flow 數據集上不同網絡的可視化結果對比Fig.6 Visual results comparison among different networks on Scene Flow dataset
在圖6 中的第1 行為偽彩色深度圖,第2 行為預測視差圖,第3 行為原圖。從圖6 可以看出,在紅色邊框標注的部位,本文網絡比AANet 能夠更清晰地預測目標邊界,尤其在細小的結構以及邊角處。
2.2.3 在KITTI2012 數據集上的結果分析
本文采用KITTI 數據集提供的評價指標進行對 比,KITTI2012 數據集的對比指標為2px、3px 以及5px 的非遮擋區域誤差率(Noc)與所有區域誤差率(All),對比指標數值越小效果越好。在KITTI2012 數據集上不同網絡的評價指標對比如表3 所示。

表3 在KITTI2012 數據集上不同網絡的評價指標對比Table 3 Evaluation indexs comparison among different networks on KITTI2012 dataset
從表3 可以看 出,相比DispNetC,DEBGNet 在KITTI2012數據集上的誤差率明顯降低,與MC-CNN[24]、FAD-Net[25]、AANet 相比,本文網絡在速度較快的前提下,2px、3px 以及5px 的對比結果中,誤差率有良好的表現,尤其與AANet 相比,在5px 下Noc 誤差率降低6.7%。
在KITTI2012 數據集上本文網絡與AANet、GC-Net 的對比結果如圖7 所示。該對比結果由KITTI 數據集提供,圖7 中第1 行為原圖,第2 行為誤差圖,第3 行為預測視差圖。從圖中黑色邊框標注處可以看出,本文所提網絡可以較準確地預測出目標邊緣及細小區域處的視差。

圖7 在KITTI2012 數據集上不同網絡的可視化結果對比Fig.7 Visual results comparison among different networks on KITTI2012 dataset
本文提出結合可變形卷積與雙邊網格的立體匹配網絡。該網絡由2D 卷積構成,引入注意力特征增強結構,同時利用注意力機制與Meta-ACON 激活函數相結合的2D 可變形卷積進行代價聚合,通過雙邊網格進行上采樣,提高模型精度。實驗結果表明,相比PSM-Net、GC-Net,本文網絡在Scene Flow 數據集上的端點誤差分別降低31.1%、70.1%,運行速度分別加快60%、82%,相較于AANet 的端點誤差降低13.8%。后續將采用遮擋掩碼抑制方式優化本文所提的立體匹配網絡[26-27],以提高遮擋區域的魯棒性。