論文閱讀《End-to-End Learning of Geometry and Context for Deep Stereo Regression》


端到端學習幾何和背景的深度立體回歸

摘要

    本文提出一種新型的深度學習網絡,用於從一對矯正過的立體圖像回歸得到其對應的視差圖。我們利用問題(對象)的幾何知識,形成一個使用深度特征表示的代價量(cost volume)。我們通過對這一匹配代價卷使用3D卷積來學習結合上下文信息。利用本文提出的一種可微分的soft argmin操作可以對匹配代價卷回歸得到視差值,這使得我們可以直接端到端地訓練我們的網絡達到亞像素級別的精度,而不需要任何后處理和正則化。我們在Scene Flow和 KITTI數據集上對我們的方法進行評估,在KITTI上我們設置了一個新的最先進的benchmark,同時顯著快於其他方法。

1.介紹

         從立體影像准確估計三維幾何是許多計算機視覺應用的核心問題,包括自主車輛和無人機[2]。在本文中,我們特別感興趣的是計算矯正后立體圖像對之間每個像素的視差。為此,立體算法的核心任務是計算兩個圖像之間每個像素的對應關系。在現實世界中,這是非常具有挑戰性的。當前最先進的立體聲算法通常在無紋理區域,反射表面,薄結構和重復圖案方面存在困難。許多立體算法的目標是通過基於池或梯度的正則化[15,23]減少這些失敗。但是,這通常需要在平滑表面和檢測詳細結構之間進行折中。

       相比之下,深度學習模型已經成功地從原始數據學習獲得在物體分類[28],檢測[17]和語義分割[31,3]的方面直接強大的表示。這些例子表明深度卷積神經網絡對理解語義非常有效。 在監督大型訓練數據集時,他們擅長分類任務。我們觀察到立體算法中一些具有挑戰性的問題將從全局語義上下文的知識中受益,而不僅僅依賴於局部幾何。例如,對於車輛擋風玻璃的反射表面,如果僅僅依靠反射表面的局部外觀來計算幾何形狀,則立體算法可能是錯誤的。相反,理解該表面(它屬於車輛)的語義背景來推斷局部幾何是有利的。在本文中,我們展示了如何學習一個可以進行端到端訓練的立體匹配回歸模型,並且能夠理解更廣泛的上下文信息。

        迄今為止,利用深度學習表示的立體算法主要集中於利用它們生成一元項[48,32]。在深度一元表示法上應用代價匹配在估計像素差異時表現不佳[32,48]。仍然使用傳統的正則化和后處理步驟,如半全局塊匹配和左右一致性檢查[23]。這些正則化步驟受到嚴重限制,因為它們是手工設計的淺函數,仍然容易受到上述問題的影響。

        這篇論文解答了這一問題——我們能否利用我們對於立體幾何的理解,借助深度學習的方法來將立體視覺問題規范化?這篇論文的主要貢獻是提出了一個端到端的深度學習方法來從一對矯正過的圖像來估算每個像素的視差值。我們的結構如圖1所示。它通過構建代價量明確地表達了幾何特征,同時還利用深度卷積網絡表達了語義信息。我們實現這一方法主要遵循以下兩個想法:

  • 我們直接從數據中結合上下文信息,使用3D卷積來規則化代價量(包含高度、寬度、視差三個維度)
  • 我們使用完全可微分的柔性argmin函數,允許我們從視差匹配代價卷中回歸得到亞像素的視差值

        第三節介紹了這個模型並從更多的細節方面介紹了模型的內容。第四節,我們在合成的SceneFlow數據集上評估了我們的模型,並在KITTI2012和KITTI2015數據集上排名第一。最后在4.3節,我們展示了我們的模型能夠學習語義和上下文信息的證據。

2.相關工作

        從立體圖像對計算深度的問題已經研究了相當長的一段時間[5]。Scharstein和Szeliski[39]的一項調查提供了立體匹配算法的分類,如執行匹配成本計算,成本支持聚合,視差計算和優化或差異細化的一些子集。 這個調查還介紹了第一個Middlebury數據集和相關的評估指標,使用結構化光提供基本事實。KITTI數據集[14,35]是LIDAR提供的具有基本真實性的移動車輛收集的較大數據集。這些數據集首先激發了改進立體視覺所有組件的手工技術,其中我們提到了一些值得注意的例子。

        匹配成本是潛在相應圖像位置的像素差異度量[25],其中絕對誤差,平方誤差和截斷誤差是示例。可以使用基於梯度[16]的局部描述符或二進制模式,如CENSUS [45]或BRIEF [7,22]。

        不是像基於面片的匹配成本一樣聚集相鄰像素,而是在假定它們更可能來自相同表面和視差的假設下,對圖像內容的了解可以更大程度地合並具有相似外觀的相鄰像素。這些技術的調查由Tombari等人提供[43]。局部匹配成本也可以在全局框架內進行優化,通常將結合局部數據項和成對平滑項的能量函數最小化。全局優化可以使用圖形切割[27]或置信傳播[26]來完成,這可以擴展到傾斜表面[6]。全局優化的一個有名的有效逼近是Hirschmüller[24]的半全局匹配(SGM),其中動態規划優化了多方向上能量函數的路徑形式。

        除了為比較立體算法提供基礎之外,來自這些數據集的地面實況深度數據提供了使用機器學習以各種方式改進立體算法的機會。 Zhang和Seitz [52]交替優化了視差和馬爾科夫隨機場正則化參數。Scharstein和Pal [38]學習條件隨機場(CRF)參數,Li和Huttenlocher[29]用結構化支持向量機訓練非參數CRF模型。 學習也可以用來估計一個傳統的立體匹配算法的置信度,如海斯勒等人的隨機森林方法。[19]。 Park和Yoon [37]表明,這種置信度測量可以改善SGM的結果。

        深卷積神經網絡可以訓練以匹配圖像塊[46]。 Zbontar和Le-Cun[47,49]展示了一個深度網絡,用於匹配9X9個圖像塊,然后是非學習成本聚合和正則化,以產生最先進的結果。

        Luo等人提出了一個顯着更快的網絡計算局部匹配成本作為使用連體網絡[33]多標簽視差分類。 Chen等人的多尺度嵌入模型 [9]也提供了良好的局部匹配分數。另外值得注意的是Flynn等人的DeepStereo工作。 [12],它結合一個單獨的條件色彩模型學習代價量,以預測多視點立體設置新穎的觀點。

        Mayer等人創建了一個大型的合成數據集來訓練網絡的視差估計(以及光流)[34],改善了最先進的技術。作為網絡的一種變形,沿視差線提出了一種1-D相關性,這是對立體代價量的乘法近似。另外,這個量與單個圖像的卷積特征串聯,並且通過一系列進一步的卷積而成功。相比之下,我們的工作並沒有在計算代價量時破壞特征維度,而是使用3-D卷積來合並上下文。

        雖然這項工作的重點是雙目立體視覺,值得注意的是,深卷積網絡的表示能力也能夠從一個單一的單目圖像進行深度估計[10]。 Liu等人將深度學習與連續的CRF相結合。[30]。 而不是用標記的基本真實數據監督訓練,可以使用無標記的立體圖像對訓練一個單眼模型[13]。

        在我們的工作中,我們沒有應用后處理或正則化。我們的網絡可以通過形成完全可微分的代價量來明確地推斷幾何。我們的網絡通過3-D卷積架構學習將數據的上下文結合起來。 我們不學習概率分布,成本函數或分類結果。 相反,我們的網絡能夠從立體圖像對直接回歸視差的亞像素估計。

3.學習端到端的視差回歸  

        我們不必手動設計立體匹配算法的任何一步,而是學習使用深度學習從圖像對到視差圖的端到端映射。我們希望直接從數據中學習更優化的功能。此外,這種方法有望降低大部分工程設計的復雜性。但是,我們的目的不是天真地將機器學習架構作為一個黑盒來建立立體模型。 相反,我們主張使用幾十年來多視角幾何研究的見解[20]來指導架構設計。因此,我們通過開發代表傳統立體管道中每個主要組件的可微層來形成我們的模型[39]。這使我們能夠學習整個模型的端到端,同時利用我們對立體聲問題的幾何知識。  

        我們的架構,GC-Net(幾何和上下文網絡)如圖1所示,表1中有更詳細的逐層定義。  

        在本節的其余部分中,我們將詳細討論每個組件。之后,在第4.1節中,我們將為調整設計決策提供定量結果。

3.1 一元特征(網絡提取的特征)

        首先,我們學習了一個深度表示來計算立體匹配的成本。與其使用原始像素強度計算立體匹配成本,不如使用特征表示。其目的是比較一個描述符,該描述符對光度外觀的模糊性更健壯,並且可以合並本地上下文。

        在我們的模型中,我們通過大量的2-D卷積運算學習了深度表示。每個卷積層之后是歸一化層和矯正非線性。 為了減少計算需求,我們最初應用一個步長為2的5X5卷積濾波器對輸入進行下采樣。 在這個層之后,我們追加了8個殘差塊[21],每個塊包含兩個3X3個卷積濾波器。我們的最終模型架構如表1所示。我們通過將左右立體圖像通過這些圖層來形成一元特征。我們共享左右塔之間的參數以更有效地學習相應的特征。

3.2 代價量(Cost Volume)

        我們利用深度一元特征通過形成一個代價量來計算立體匹配的代價。雖然一個簡單的方法可能簡單地連接左右特征映射,但是通過形成一個代價量,我們能夠以保留我們對立體視覺幾何知識的方式來約束模型。對於每個立體圖像,我們形成維度為(height  × width ×(max disparity + 1)× feature size)的代價量。我們通過在每個視差水平上將每個一元特征與來自相對的立體圖像的相應的一元組進行連接,並將其包裝到四維體積中來實現。(對於某一個特征,匹配代價卷就是一個三維的方塊,第一層是視差為0時的特征圖,第二層是視差為1時的特征圖,以此類推共有最大視差+1層,長和寬分別是特征圖的尺寸,假設一共提取了10個特征,則有10個這樣的三維方塊)

        至關重要的是,我們在這步操作中保留了特征的維度,不像先前許多方法使用點乘方式來降低特征維度。這使得我們可以結合上下文信息並作用於一元特征上。我們發現通過級聯特征圖構成代價量效果要優於削減特征或者使用距離度量函數的方法。我們的直覺是通過保持一元特征,網絡能夠學習到一個絕對的表征(因為不是去度量距離這種間接的方式)並把它帶入到代價量中。這賦予了該結構學習語義信息的能力。相反,使用距離度量方法限制了網絡只能學習特征之間的相關性表征,而不能將絕對的特征表征帶入到代價量中。

3.3 學習上下文信息

       得到視差代價量,我們希望學習到一個規則化函數,其能夠包含上下文信息並能優化我們的視差估計結果。即使是用深度特征表征的方式,各個一元元素之間的匹配代價也不可能是完美的。例如在像素強度均一的區域(如天空),任何基於固定的局部環境的特征匹配代價曲線都會是平坦的。我們發現像這樣的區域將導致在視差維度上出現多種模式的匹配代價曲線。因此我們希望去學習規則並改善代價量。 

       我們打算使用三維卷積操作來進行濾波和改善表征。3D卷積能夠從高度、寬度和視差三個維度提取特征表征。因為我們對每個一元特征都記算了代價曲線,所以我們可以從這些表征中訓練卷積核。在4.1節中,我們展示了3D卷積核對於學習上下文信息和有效改善立體匹配效果的重要性。 

       三維卷積的難點在於附加維度對train和inference的計算時間是一個負擔。設計用於稠密預測任務的深度編碼器 - 解碼器任務通過對子采樣特征圖進行編碼,然后在解碼器中進行上采樣來解決其計算負擔[3]。我們將這個想法擴展到三個維度。通過以步幅2對輸入進行子采樣,我們也將三維成本體積尺寸減小八分之一。我們用四個子采樣級別組成我們的三維正則化網絡。由於已經對unaries進行了因子為2的子采樣,所以這些特征相當於被以32的總因子進行子采樣。這使得我們能夠在廣泛的視野中明確地利用上下文。我們對每個編碼層都使用了兩個連續的3*3*3卷積。為了以輸入的分辨率得到稠密的預測圖,我們在解碼器中使用了3D反卷積對匹配代價卷進行上采樣。 

       下采樣能夠有效的擴大每個特征的感受野並減少計算量。然而,他也減少了損失的分辨率上的空間精確性和細節信息。由於這個原因,我們在上采樣之前都加上了高分辨率的特征圖。這種殘差層能夠保持更高頻率的信息,進而上采樣得到的特征可以提供視野寬闊且信息完整的特征圖。 

       最后,我們應用了一個單獨的3D反卷積,步長為2,輸出為單一特征圖。這對於得到與輸入維度相同的稠密預測圖是至關重要的,因為一元特征圖被下采樣縮小了一倍。最終的結果是得到了一個規則化的尺寸為H*W*D的代價量。

3.4可微分的ArgMin

        通常,立體圖像算法會從匹配的代價量產生最終代價量。從這個量來看,我們可以通過在代價量視差維度上進行argmin操作來估計視差。但是,這個操作有兩個問題:

        •它是離散的並且不能產生亞像素視差估計,

        •不可微分,因此無法使用反向傳播進行訓練。

        為了克服這些限制,我們定義了一個完全可微並且能夠回歸平滑視差估計的softargmin。它既是完全可微的,又能回歸得到一個光滑的視差估計值。首先,我們通過將預測的匹配代價值Cd(對於每個視差d)取負數,把匹配代價量轉換為可能性量(probability cost)(匹配代價越高,可能性越低)。我們利用softmax操作σ()對可能性量在視差維度上進行正則化。然后對每個視差值d進行加權求和,權重就是他對應的可能性。圖形顯示如圖2,數學定義如下:

 

        這一操作是完全可微的,並允許我們訓練,回歸得到視差估計值。我們注意到這一相似的函數最初是用作一種柔性注意機制[4]。在這里,我們展示了如何將它應用到立體匹配的回歸問題上。

        然而,相比於argmin操作,他的輸出受到所有值的影響。這使他對於多狀態分布(multi-modal distribution)很敏感,因為輸出沒有取得最大可能性。他會估算一個各個狀態的加權平均值。為了克服這一問題,我們依賴網絡規則化來生成單峰的視差可能性分布圖。網絡也可以對匹配代價進行預分頻來控制規則化的post-softmax可能性的峰值度(圖2)。我們明確地在最后一個卷積層中放棄了批量規則化,使得網絡能夠從數據中學到這些。

圖2. 柔性argmin操作的圖像描述。按照視差值畫出代價曲線並輸出一個argmin的估計值,通過對每個視差的softmax可能性與視差值乘積求和。(a)說明當曲線是單峰的時候,可以精確的捕捉到真實的argmin;(b)說明當數據是雙峰的並且一個尖銳一個平坦時,估計值出錯;(c)說明如果網絡對代價曲線進行預分頻(pre-scale),這種錯誤可以避免,因為softmax的可能性趨向於更加極端,以產生一個單峰的結果

 3.5 Loss

        我們從隨機的初始化參數開始端到端地訓練整個網絡。我們利用真實的深度數據進行有監督的學習。由於雷達標記的真實值(例如KITTI數據集[14,35])可能是稀疏的。所以,我們對每個標記像素的損失值取了平均值。我們用每個像素n真實視差值dn和模型預測視差值d^n之間的絕對值差來訓練網絡。這個有監督的回歸損失函數定義如下:

        在后面的章節里,我們將展示把我們的模型規范化為回歸問題使得我們能夠以亞像素級別的精度進行回歸,並且要優於分類的方式。除此之外,規范化為回歸問題使得他有可能采用基於光度二次投影誤差(photometric reprojection error)的無監督學習。

 4 實驗

        在這一節中,我們對兩個數據集(Scene Flow [36]和KITTI [14,35])提供定性和定量的結果。首先,在4.1節中,我們試驗了我們模型的不同變體,並使用場景流數據集證明了我們的一些設計選擇[36]。在第4.2節中,我們介紹了KITTI數據集方法的結果,並設定了一個新的最先進的基准。最后,我們在4.3節中測量模型的學習能力。
        我們使用TensorFlow架構搭建我們的網絡,所有模型采用RMSProp的優化方式和恆定的學習率0.001。我們訓練的批尺寸為1張隨機切割為256*512大小的圖像。在訓練之前我們對所有圖像進行了歸一化處理,使每個像素的強度值在-1到1之間。我們在SceneFlow數據集上訓練大約15萬個周期,使用一個NVIDIA Titan-X 顯卡大概需要兩天時間。對於KITTI 數據集,我們對先前在SceneFlow上訓練得到的網絡進行優化訓練5萬次。在SceneFlow數據集上我們采用F=32,H=540,W=960,D=192,在KITTI數據集上,采用F=32,H=388,W=1240,D=192分別作為特征尺寸,圖像高度,圖像寬度和最大視差。

4.1 模型設計分析

 

表2.SceneFlow數據集上的試驗結果 
   

        在表2中,我們采用消融學習來比較幾種不同模型變種來確定我們的設計選擇。我們希望評估這篇文章中核心思想的重要性;使用回歸損失代替分類損失和利用3D卷積來規則化匹配代價卷。我們使用Scene Flow數據集[36]進行這些實驗,其中包含35454個訓練和4370個測試圖像。 我們使用這個數據集有兩個原因。首先,我們從合成場景中知道完美的,密集的真實視差,消除了由於錯誤標簽而產生的任何差異。其次,數據集足夠大,可以在不過度擬合的情況下訓練模型。相比之下,KITTI數據集只包含200個訓練圖像,我們觀察到該模型容易過度擬合這個非常小的數據集。有了數以萬計的培訓圖像,在評估種我們不必考慮過擬合。 

        表2中的第一個實驗表明3D濾波器的表現明顯比只學習一元特征要好。我們比較了完整網絡(如表1中所展示的)與只使用一元特征的模型(丟棄所有的3D卷積層,19-36層)和丟棄分層3D卷積的模型(丟棄21-36層)。我們觀察到3D濾波器能夠很好的規則化和平滑輸出,同時保持輸出視差圖的清晰度和准確性。我們發現分層3D模型要比普通的通過聚合一個較大環境信息的3D卷積模型表現要好,並且沒有明顯增加計算要求。 

  表2中的第二個實驗比較了回歸損失函數與基礎的硬性或柔性分類函數。硬性分類函數訓練網絡對匹配代價卷中的視差進行分類,根據采用“one-hot”編碼的交叉熵損失函數計算的可能性結果。柔性分類函數按照以正確視差值為中心的高斯分布來平滑編碼。在表2中,我們發現回歸的方式優於硬性和柔性分類方法。尤其引人注目的是在像素准確性度量上和一個像素誤差范圍內誤匹配率上,因為回歸損失函數使得網絡可以按照亞像素級別的精度預測視差值。 

 
圖3. 在SceneFlow數據集上訓練時的真實誤差 
  

        從圖3中我們可以觀察到分類損失函數收斂的更快,但回歸損失函數表現最好。

4.2 KITTI排行榜

        在表3中,我們評估了我們的模型在KITTI 2012和2015立體數據集上的性能[14,35]。 這些包括從測試車輛收集的具有挑戰性和多樣性的道路場景圖像。用於訓練和評估的基本實景深度圖是從LIDAR數據中獲得的。 KITTI是基准立體匹配算法的重要數據集。缺點是它只包含200個訓練圖像,這妨礙了學習算法。 為此,我們在大型合成數據集“場景流”[36]上預先訓練我們的模型。 這有助於防止我們的模型過度擬合非常小的KITTI訓練數據集。 我們擁有40個圖像對作為我們的驗證集。

        表3a和3b分別比較了我們的方法GC-Net(幾何和上下文網絡)和KITTI 2012和2015數據集上的其他方法2。 我們的方法以顯着的差距達到了KITTI基准測試的最先進的結果。 KITTI 2015年和2012年分別提高了9%和22%。我們的方法也比大多數常常需要繁瑣的后處理的競爭方法快得多。在圖4中,我們展示了我們的方法在KITTI 2012,KITTI 2015和場景流程上的定性結果。

        我們的方法勝過以前的深度學習基於patch的方法[48,32],這些方法產生噪聲一元電位,無法用亞像素精度進行預測。出於這個原因,這些算法不使用端到端的學習,通常后處理一元輸出與SGM正則化[11]產生最終的視差圖。

        最接近我們體系結構的方法是DispNetC [34],它是在SceneFlow上預先訓練的端到端回歸網絡。但是,我們的方法在所有測試像素上比的該結構顯着優秀。 DispNetC使用沿視差線的一維相關層作為立體成本體積的近似值。相比之下,我們的架構更明確地利用幾何,通過使用3-D卷積和軟argmin層來制定全部成本體積,從而導致性能的提高。

4.3 模型特點 

        在本節中,我們提供證據,證明我們的模型可以使用更廣泛的上下文信息推理局部幾何。在圖5中,我們展示了與預測像素視差有關的模型顯着性的一些示例。顯着性圖[41]顯示了輸出相對於每個輸入像素的靈敏度。 我們使用[51]中的方法,將預測的視差作為系統地遮擋輸入圖像的函數。我們通過點的視差來抵消每個立體圖像中的遮擋。

        這些結果表明,給定點的視差預測依賴於廣泛的上下文視野。例如,汽車前部的視差取決於汽車的輸入像素和下面的路面。這表明我們的模型能夠推理更廣泛的背景,而不是像以前的深度學習貼片相似立體方法那樣簡單的9X9局部貼片[50,32]。

圖5:顯示模型對所選輸出像素(由白十字表示)的有效接受場的顯着圖可視化。這表明,我們的架構能夠學習如何消除立體視差,以超越當地的幾何形狀和外觀的大視野和重要的場景背景知識。 例如,在右邊的例子中,我們觀察到模型考慮來自車輛和周圍路面的上下文信息來估計差異。

5 結論

        我們提出了一種新穎的立體視覺端到端深度學習架構。它不需要任何額外的后處理或正則化就能夠學會回歸得到視差。我們證明了我們的方法在KITTI數據集上的功效,設置了一個新的最先進的基准。

        我們展示了如何使用三維卷積有效地學習視差代價量中的上下文。我們展示了如何使用soft argmin層將其表示為回歸模型。這使我們能夠將視差作為一個回歸問題學習,而不是分類,提高性能並提高亞像素的准確性。我們證明,我們的模型學習納入更廣泛的上下文信息。

        對於未來的工作,我們感興趣的是探索一個更明確的語義表示來改善我們的視差估計,並在貝葉斯卷積神經網絡的不確定條件下進行推理。

 

圖像的上采樣和下采樣,插值方法:

https://blog.csdn.net/stf1065716904/article/details/78450997

 

翻譯參考:

https://blog.csdn.net/lvhao92/article/details/72627386(含Keras代碼)

https://blog.csdn.net/qq_38906523/article/details/79625073

https://blog.csdn.net/qq_36104364/article/details/80277824

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM