?

置信度輔助特征增強的視差估計網絡

2022-08-09 05:48柳博謙劉嘉敏陳圣倫王智慧李豪杰
計算機工程與應用 2022年15期
關鍵詞:視差置信度代價

柳博謙,劉嘉敏,陳圣倫,王智慧,李豪杰

大連理工大學 國際信息與軟件學院,遼寧 大連 116024

雙目視差估計是計算機視覺領域中的一個重要方向,主要應用在自動駕駛、機器人導航、增強現實等任務中[1]。視差估計旨在對雙目相機校正后的左右視圖進行像素對匹配,估計的視差可以恢復場景的深度信息。該任務可以分為匹配代價計算、匹配代價聚合、視差計算、視差優化四個步驟[2]。在匹配像素點中,由于遮擋、低光照、弱紋理等干擾因素使估計高精度視差更具挑戰性。

視差估計的本質是匹配問題,其目的是為左目視圖每一個像素點在右目視圖中尋找匹配差異最小的像素點。這里的匹配差異稱為匹配代價。傳統的估計方法可分為兩類:基于全局的匹配和基于局部的匹配?;谌值钠ヅ涫紫葮嬙煲粋€全局能量函數用于約束匹配代價,最小化能量函數得到最優視差圖[3]。Veksler[4]最先將基于圖論的能量最小化理論引入到立體匹配領域。Boykov等[5]將圖割問題(graph-cut,GC)引入到立體匹配中。全局的方法計算復雜度高,且難以找到全局最優解?;诰植康钠ヅ?,通過比較左右兩圖以待匹配點為中心的圖像塊的相似程度來確定匹配代價[6]。常見的相似程度的計算方法有絕對誤差和算法(SAD)、誤差平方和算法(SSD)以及歸一化積相關算法(NCC)等。這些方法使用待匹配點不同的表示方法,比如像素灰度值、局部區域灰度值、Census變換等,來計算其匹配代價。這些方法計算復雜度低,但匹配塊在紋理少的區域以及遮擋區域的效果不佳。因此,在局部匹配方法的基礎上,Hirschmüller提出了半全局匹配法(semi-global matching,SGM)[7],該方法是立體視覺領域最經典的視差估計算法之一,通過不同方向的代價聚合操作來擴展匹配的比較范圍。

隨著人工智能的發展,基于深度學習的方法也應用在視差估計任務中。?bontar提出的MC-CNN[8]利用深度學習來提取左右圖像的特征,使用提取的特征來進行代價匹配及后續步驟。SGM-Net[9]利用神經網絡來學習每個像素位置在SGM方法對應的聚合懲罰系數。上述方法使用深度學習提取特征,對傳統方法進行輔助,但無法直接通過網絡獲取視差結果。

端到端的網絡方法能便捷地解決視差估計問題,即僅通過一個深度神經網絡輸出視差圖。在端到端網絡的匹配代價計算中,計算一個表示特征匹配相似度的代價空間(cost volume)。Mayer等提出的DispNet[10]借鑒了光流估計網絡FlowNet[11]構建一個存儲左右圖對應像素“相似程度”的一個代價空間。Pang等提出了一種新型的兩級CNN結構[12],分別用于獲得保留更多細節的視差圖,以及對初始化的視差圖進行優化。Yang等提出了SegStereo[13],將語義分割任務和視差估計任務結合起來。而Kendall等提出的GC-Net[14]是直接將左右特征進行串接,生成一個四維的匹配代價空間,之后使用三維卷積來實現匹配功能。PSMNet[15]在基于四維代價空間的網絡框架中引入了空間金字塔池化層(spatial pyramid pooling),提升網絡的感受野。Guo等提出的Gwc-Net[16]使用了一種新的代價空間構建方式,將分組的相似度和完整的特征這兩類結合起來。

除了利用圖像,通過向網絡中引入稀疏視差信息可以對視差估計進行引導,從而提升視差圖在其他位置的準確度。Poggi等提出一種視差引導方法[17],利用從外部傳感器(比如LiDAR)獲取的稀疏準確視差值來對代價空間進行增強操作。該方法可以提高網絡在不同數據集下的魯棒性,但是需要引入外部信息。當沒有外部信息時,可以通過計算視差置信度,選取高置信度區域的視差作為特征增強的參考。因此,受到文獻[17]的啟發,本文提出了一種基于置信度的特征增強機制,對網絡估算過程中產生的中間結果進行置信度的判斷,預測視差估算的難易區域,對易匹配區域特征進行增強,從而輔助視差計算。置信度圖作為特征增強參考的功能主要有兩點:一是根據置信度篩選出需要增強的像素點;二是置信度的大小決定了特征增強的最大幅度。

1 方法

網絡總體結構如圖1所示,在基礎網絡結構中加入一個置信度估計子網絡,估計視差圖中間結果的置信度。在此之后,從置信度圖中選取一些高置信度的像素點位置,在代價空間中對這些點上根據其中間視差結果進行增強操作。這樣做的目的是將高置信度像素點及其視差信息引入到網絡中,從而改善視差圖的效果。

圖1 網絡整體架構Fig.1 Whole network structure

1.1 基礎網絡

網絡可以分為基礎網路、置信度估計子網絡以及特征增強模塊。其中基礎網絡可以是任意一個多階段視差估計網絡。這里使用的基礎網絡結構是Gwc-Net,可以分為四大部分:特征提取部分、代價空間構建部分、代價聚合部分和視差回歸部分。

特征提取部分由初始網絡和四組不同數量、不同形狀的殘差網絡塊以及融合網絡構成。初始網絡由3個帶有批歸一化(BatchNorm)和ReLU操作的連續卷積層構成,每個卷積層的大小為3×3,輸出維度是32。其中第一個卷積層的步長為2。4個殘差網絡塊的殘差卷積層的個數、輸出維度、步長、空洞系數不盡相同。每個殘差卷積層包含帶有BatchNorm和ReLU的基礎層和只包含BatchNorm的殘差層組成,基礎層和殘差層的尺寸都是3×3。第一個網絡塊包含3個輸出維度為32的殘差卷積層;第二個網絡塊包含16個輸出維度為64的殘差卷積層,除了第一個殘差塊的步長為2之外其余的步長都是1;第三個網絡塊包含3個輸出維度為128的殘差卷積層;第四個網絡塊中殘差卷積層的個數和輸出維度和第三個網絡塊相同,但是空洞系數為2。融合網絡由一層帶有BatchNorm和ReLU的3×3卷積層和一層1×1卷積層組成。在特征提取的時候依次將圖像輸入到初始網絡以及四個殘差網絡塊中。然后將第二、第三和第四個網絡塊的輸出連接起來作為基礎特征。最后將基礎特征輸入到融合網絡中,得到連接特征。

在代價空間構建部分,Gwc-Net將3維代價空間構建和四維代價構建方法結合起來。即將基礎特征按照通道進行分組,計算各個分組在不同候選視差下的特征相似度,然后和連接特征連接起來。這樣做的目的是同時保留匹配結果以及完整的特征信息。這里的分組個數設為40,左右圖像連接特征的通道數為12,因此代價空間的通道數為64。而在特征提取部分進行了兩次下采樣,因此代價空間的寬、高為圖像的1/4,候選視差個數也是最大視差范圍的1/4。

在代價聚合部分,使用三維卷積層和3個沙漏網絡結構(hourglass)來實現代價聚合功能。沙漏網絡結構的名稱是從其形狀得來的,它是由下采樣操作和上采樣操作結合。該結構最早是用于姿態估計[18],由于其網絡結構,因而常常被用于像素級預測任務中。

在視差回歸部分中,首先將代價空間輸入到兩層網絡中,輸出通道數為1的四維特征。該特征表示像素在所有候選視差下的匹配分數。由于在之前的步驟中進行了兩次2倍下采樣,在這里將該特征以及置信度圖進行4倍上采樣以還原到原尺度上。然后對每個像素點的所有匹配分數進行softmax計算,并根據其計算結果進行加權求和,得到最終的視差估計值。根據輸入到沙漏網絡之前的代價空間和3個沙漏網絡輸出的代價空間分別進行視差回歸,得到4個中間視差圖。根據這4個中間視差圖,可以同時優化網絡。其中,最后一個沙漏網絡被用來估計置信度。首先,最后一個沙漏網絡的部分輸出被用來當作置信度估計子網絡的輸入之一。此外,最后一個沙漏網絡估計出的視差被用來構建置信度的準確值。

1.2 視差置信度

在視差估計的場景中,存在這一些難以匹配的區域。比如在傳統方法中,弱紋理的區域就是難以匹配的;而在深度學習方法中,由于需要對圖像進行下采樣和上采樣,物體的邊緣處很難預測出準確的視差。除此之外,在雙目視差估計中存在著遮擋區域,即左圖上有些區域在右圖上找不到對應區域。為了找出這些難以匹配的區域并針對這些區域做優化,引入視差置信度的計算,根據置信度來判斷哪些區域是難以匹配的。視差置信度是用來描述視差圖的可信程度。作為系統的輸出,視差置信度可以提供給人們來判斷當前視差圖有哪些區域是可信的。視差置信度的實際含義取決于其定義,可以分為以下幾類:

第一類是基于匹配代價的置信度。這類置信度是根據最佳視差下的匹配代價和其他位置的匹配代價之間的關系計算出來的,表示的是視差匹配的二義性。比如peak ratio算法[19]:(其中,c1表示最佳視差下的匹配代價,c2表示次佳視差下的匹配代價,ε是一個非常小的正數)。

第二類是基于視差的置信度,一個例子是左右一致性(LRC)方法[20]。在此方法中根據左右圖像匹配點在各自視差圖下的視差值之差來判斷置信度。

第三類是基于圖像的置信度,這種置信度描述了直接影響匹配難度的圖像屬性,比如以當前像素為中心的圖像窗口的紋理強度。

第四類是基于先驗的置信度,這種置信度是與圖片的顏色和視差是無關的,比如左圖的最左邊往往是找不到右圖對應點的,因此屬于低置信度。

第五類是基于視差誤差的置信度,這類置信度經常在基于深度學習的方法中被使用。在這種情況下,置信度估計問題被當成像素級別的二分類問題。

其中,基于匹配代價的置信度經常在傳統方法中使用,然而在視差回歸所用到的匹配分數并不直接表示匹配代價,因此無法使用匹配分數作為匹配代價來計算置信度圖。由于這個原因,基于匹配代價的置信度沒有被使用?;谝暡畹闹眯哦刃枰暡畈拍苡嬎?,因此未被使用?;趫D像的置信度和基于先驗的置信度無法描述視差估計網絡中圖像區域的匹配難度,因此也沒有被使用。

綜上,使用第五類置信度,即基于視差誤差的置信度。因為區分圖像中困難區域和簡單區域的最直接的標準就是當前誤差的大小,置信度高的地方代表誤差小,此時可通過置信度判斷誤差是否過大。

1.3 置信度估計

使用基于誤差的置信度,這個置信度值是通過一個置信度估計子網絡估計而來。使用最后一個沙漏網絡輸出的視差誤差來構建置信度的準確值:

其中,1(·)表示如果滿足括號里的條件即為1,否則為0,d表示估計的視差,d gt表示準確視差,σ是閾值。

受到Kim等的視差置信度估計網絡的啟發[21],借鑒了其中的k-池化(top-kpooling)操作以及使用不同感受野的卷積層。不同的是,置信度估計網絡不需要輸入視差圖,取而代之的是左圖的特征。因此估計的置信度圖是先驗置信度圖,其結果與視差值沒有直接關系。使用的置信度估計網絡如表1和圖2所示。

表1 置信度網絡結構Table 1 Structure of confidence network

圖2 置信度子網絡架構Fig.2 Structure of confidence sub-network

首先將代價空間進行k-池化操作。在視差回歸之前,需要將代價空間的通道數轉換成1,這時代價空間表示的是像素點在每一個視差下的匹配得分。k-池化的操作就是在每一個像素的視差維度下選取其前k個值,從而將視差維度下的尺寸置為k。這里取k=5。k-池化的目的是保留匹配的二義性信息,同時減小模型所需內存。在此之后,對k-池化之后的代價空間以及左圖的特征分別處理。這樣做的目的是同時使用圖像信息以及匹配二義性信息。將k-池化之后的空間送入到五層卷積網絡結構,輸出一個16通道的誤差特征。對于左圖特征,先經過一層卷積網絡,再分別輸入到4個子網絡中,每個子網絡包含一層n×n卷積,一層3×3卷積和一層1×1卷積。這里的n分別取3、5、7和9,這樣做的目的是盡量提升感受野的尺寸。然后將這4個子網絡的輸出連接起來。最后將其和誤差特征連接,送入三層卷積網絡,進行sigmoid運算得到最終的置信度圖。

1.4 特征增強操作

在估計出置信度圖之后,在置信度圖上找一些置信度足夠高的點,然后通過這些點在當前估計視差下的代價空間進行增強操作。待增強點的選取策略如圖3所示。首先將圖像分為m×m大小的圖像塊,在圖像塊中選取一個像素作為候選像素,這樣做的目的是擴大增強區域的分布。如果候選像素的置信度滿足大于等于σ1或者屬于前σ2的條件,則在該點處進行增強操作。這里設置m=2,σ1=0.95,σ2=10%。增強操作的幅度滿足以估計視差為中心的高斯函數。特征增強公式如下:

圖3 待增強點的選取策略Fig.3 Selection strategy of pixel for enhancement

其中,F和F′分別表示增強前后的特征;conf表示置信度;d表示視差范圍內的每一個離散視差值;dest表示用于增強的視差,在此處是估計的視差;h和w是高斯函數的參數。這里設置h=10,w=10。

特征增強的目的是增大像素點在正確視差下的特征,從而將高置信度的視差信息引入到網絡中。特征增強的效果如圖4所示。在每一個像素上,候選視差與估計視差值越接近,對應特征值增強幅度,即所乘的倍數就越大。其最大增強幅度與置信度成正相關。特征增強的本質是將可靠的中間視差值代入到網絡中去,從而對網絡進行引導。

圖4 特征增強的效果Fig.4 Effect of feature enhancement

1.5 損失函數

網絡的損失函數如下:

損失函數分為兩個部分:視差損失函數lossdisp和置信度損失函數lossconf。視差損失函數使用的是L1損失函數,置信度損失函數lossconf使用的是二值交叉熵損失函數。

其中,w0、w1、w2、w3、w4分別取0.5、0.5、0.7、1.0、1.0。在構建置信度準確值的時候,將σ設為0.1。

2 實驗

將網絡在Scene Flow數據集上進行訓練和評估。Scene Flow數據集是由Freiburg大學[10]提出,包含35 454張訓練圖和4 370張測試圖。數據集圖像是由Flyingthings3D、Driving和Monkaa這三類合成場景視頻截取而來,尺寸是960×540。由于是合成數據集,Scene Flow數據集的圖像具有稠密的準確視差值。

使用PyTorch來實現網絡,使用的優化器是Adam優化器,其中β1=0.9,β2=0.999。一共訓練18輪,初始學習率0.001,在10輪、12輪、14輪降低到原來的1/2。在訓練的時候,在圖像上隨機截取大小為512×256的圖像塊,并將最大視差設為192。

使用以下指標來評價視差估計方法:平均點誤差(EPE)和Th1。平均點誤差指的是平均視差誤差;Th1表示視差誤差大于1個像素的點所占比值。這兩個指標值越小代表效果越好。

不同實驗配置下的實驗結果如表2所示,選取最佳的實驗配置結果進行后續的比較。

表2 不同配置下Scene Flow測試集結果比較Table 2 Comparation on Scene Flow dataset from different configurations

為了更全面的評估本文方法的效果,本文方法和近年來的一些經典方法進行了比較。此外,為了驗證特征增強的作用,比較特征增強前后對應的視差結果。在Scene Flow數據集上的對比結果如表3所示。

表3 Scene Flow測試集結果比較Table 3 Comparation on Scene Flow dataset

從表3中可知,相比于基礎網絡Gwc-Net,本文方法在EPE上和Th1這兩個指標上是更優的。EPE是0.732 1,比Gwc-Net方法降低0.032 9;Th1是7.63%,比Gwc-Net方法降低0.4個百分點。此外,還比較了特征增強前后的視差圖誤差,發現特征增強后的視差圖誤差要小于增強之前的,證明了特征增強操作的有效性。EPE比特征增強前降低0.010 1;Th1比特征增強前降低0.04個百分點。

視差估計可視化結果如圖5所示,置信度估計可視化結果如圖6所示。由圖6可知,估計出來的置信度分布可以描述不同區域圖像的匹配難度,從而指導待增強點的選取。

圖5 Scene Flow視差可視化結果Fig.5 Visualization of disparity result on Scene Flow dataset

圖6 Scene Flow置信度可視化結果Fig.6 Visualization of confidence result on Scene Flow dataset

3 結語

針對雙目視差估計問題中局部困難估計區域,本文提出了置信度輔助特征增強的視差估計網絡。在基礎網絡結構中增加了置信度估計子網絡來估計置信度圖,之后在置信度圖中選取一些置信度較高的點進行特征增強操作,即大幅度增強該點在估計視差處的特征值。通過增強特定位置的特征值,可以實現將高置信度像素點及其視差信息引入到網絡中的功能,從而提升網絡的性能。在接下來的研究中,將從兩個思路來改進。首先是提高置信度圖的質量,目前的置信度結果是比較模糊的,具有改進空間。此外,目前的特征增強方法可以和其他任務結合起來,例如實例分割任務。通過對置信度圖改進和利用,可以進一步提升視差估計的精度。

猜你喜歡
視差置信度代價
基于數據置信度衰減的多傳感器區間估計融合方法
一種基于定位置信度預測的二階段目標檢測方法
基于視差優化的立體匹配網絡
基于自適應窗的立體相機視差圖優化方法研究
硼鋁復合材料硼含量置信度臨界安全分析研究
視差邊緣優化的SGM 密集深度估計算法?
正負關聯規則兩級置信度閾值設置方法
愛的代價
幸災樂禍的代價
代價
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合