室內單目深度估計-1

撫琴塵世客發表於2023-02-25

1. 論文簡介

論文題目:MonoIndoor: Towards Good Practice of Self-Supervised Monocular Depth Estimation for Indoor Environments

Paper地址:https://openaccess.thecvf.com/content/ICCV2021/papers/Ji_MonoIndoor_Towards_Good_Practice_of_Self-Supervised_Monocular_Depth_Estimation_for_ICCV_2021_paper.pdf

Paper型別:深度學習(自監督)

發表刊物:ICCV

發表時間:2019

2. Abstract

室內單目深度估計比室外更具挑戰:

  • 室內的深度範圍在不同的幀之間變化很大,使得深度網路很難誘匯出一致的深度線索,而室外的的最大距離基本上保持不變,因為最遠處一般是天空,無論相機怎麼移動,天空始終無窮遠。(這裡需要注意的是:室外深度估計一般會將深度約束在一定範圍,比如[0.1, 100],所以無論怎麼變化,無窮遠處影響不大);
  • 室內的影像序列之間包含更多的旋轉運動,而室外主要是平移移動,比如說KITTI資料集。注意:旋轉運動對於姿態網路是一種困難

本文主要提出的方法,一篇半監督單目室內場景深度估計:

  • 深度分解模組:將depth map分解成一個全域性深度尺度因子和一個相對深度,這裡比較重要的是深度尺度因子,用於自適應的適應訓練過程中深度尺度的變化。
  • 殘差姿態估計模組:核心就是一次性完成source view到target view的工作,換成了幾次迭代來完成,緩解旋轉預測不準確的問題。

3. Abstract

  深度估計的背景介紹,價值和意義。

   現有半監督方法的簡單介紹,主要說明存在的問題:

  •   效能上比不過監督方法;
  •   室外比室內更好做半監督;

   室內深度估計對比室外深度估計存在的兩個關鍵挑戰:

  •   場景內的深度變化大,讓深度網路在跨影像保持深度一致上存在困難;其實可以理解為,深度網路學習固定深度尺度比較好學習,當深度尺度各種變化時,它就很難擬合了。
  •   針對姿態估計網路的,在半監督方法中,通常採用由源視角的影像投影(合成)到目標視角的影像,或者反過來。一般的做法是一次性根據相機內參,深度圖,姿態網路估計的相對位姿來投影得到影像做loss,本文采用殘差的方式,多階段生成相對相機位姿階段性合成影像,最終把所有合成影像加起來的到最終影像。類似一種軟過度。

  室內深度估計困難的根本原因是:人工手持相機捕獲影像,或者MAVs方式,就會導致旋轉。;

 

  本文的框架以細節,前面已經有很詳細的描述了:深度分解模組和殘差姿態估計模組:

  •   在深度分解模組中,我們將深度圖分解為全域性深度比例尺(用於當前影像)和相對深度圖。深度尺度因子由深度網路中的一個額外分支單獨預測。這樣,深度網路具有更強的模型可塑性,能夠適應訓練過程中深度尺度的變化。
  •   在殘差位姿估計模組中,我們透過執行殘差位姿估計以及初始大位姿預測來緩解旋轉預測不準確的問題。這種殘差方法可以更準確地計算光度損失,這反過來又可以更好地訓練深度網路的模型。

 

 

3. Related Work

   在本節中,回顧了單眼深度估計的監督和自監督方法。

 3.1 Supervised Monocular Depth Estimation

  早期的深度估計方法大多是有監督的。

  Saxena等[30]用超畫素特徵和馬爾可夫隨機場(MRF)迴歸單幅影像的深度。

  Eigen等[6]提出了第一個基於深度學習的單目深度估計方法,使用多尺度卷積神經網路(CNN)。後來的方法透過更好的網路架構[19]或透過更復雜的訓練損失來提高深度預測的效能[21,8,41]。一些方法[363,34]依賴於兩個網路,一個用於深度預測,另一個用於運動,在監督框架中模擬幾何運動結構(SfM)或同步定位和對映(SLAM)。訓練這些方法需要地面真相深度資料,而獲取這些資料通常成本很高。還有一些方法採用傳統的三維重建方法生成偽地真深度標籤[23,22],如SfM[31]和SLAM[26],或3D電影[28]。這種方法具有更好的跨不同資料集的泛化能力,但不一定能達到手頭資料集的最佳效能。

 

 3.2 Self-Supervised Monocular Depth Estimation

  由於自監督深度估計不需要使用地面事實進行訓練,因此近年來受到了廣泛的關注。沿著這條線,Garg等[9]提出了第一個自監督方法,使用立體影像之間的顏色一致性損失來訓練單目深度模型。

  Zhou等人[46]使用兩個網路(即一個深度網路和一個姿態網路)來構建跨時間框架的光度損失。許多後續方法試圖透過新的損失條款來改善自我監督。戈達爾等[11]在立體訓練中引入了左右深度一致性損失。Bian等人[1]提出了時間深度一致性損失,以鼓勵相鄰幀具有一致的深度預測。Wang等[37]在訓練過程中觀察到了深度模型的遞減問題,並提出了一種簡單的歸一化方法來對抗這種影響。Yin et al[42]和Zou et al[48]使用三個網路(即一個深度網路,一個姿態網路和一個額外流網路)來強制光流和密集深度之間的跨任務一致性。Wang等人[39]和Zou等人[47]利用迴圈神經網路(如LSTMs)來建模姿態網路和/或深度網路中的長期依賴關係。Tiwari等人[35]利用單目SLAM和自監督深度模型[12]組成了一個自改善環,以提高各自的效能。值得注意的是,Monodepth2[12]透過一組技術顯著提高了以前的方法的效能:每畫素最小光度損失來處理遮擋,自動掩蔽方法來掩蓋靜態畫素,以及多尺度深度估計策略來緩解深度紋理複製問題。由於Monodepth2的良好效能,我們實現了基於Monodepth2的自監督深度估計框架,但對深度和位姿網路都做了重要的改變。

 

 

 

   上述大多數方法僅在KITTI等室外資料集上進行評估。

   一些最近的方法[45,44,2]集中在室內自監督深度估計。Zhou等人[45]提出了一種基於光流的訓練正規化,並透過預處理步驟去除所有具有“純旋轉”的影像對來處理較大的旋轉運動。Zhao等[44]採用幾何增廣策略,透過兩檢視三角剖分求解深度,然後使用三角剖分深度作為監督。Bian等[2]認為“訓練時旋轉表現為噪聲”,並提出了一個整流步驟來去除連續幀之間的旋轉。我們有一個類似[45]和[2]的觀察,大的旋轉會給網路帶來困難。然而,我們採取了不同的策略。我們沒有從訓練資料中去除旋轉,而是透過一種新的殘差姿態模組逐步估計它們。這反過來又提高了深度預測。

4. Method

  在本節中,我們將詳細描述如何使用MonoIndoor執行自監督深度估計。

  具體來說,我們首先介紹了自監督深度估計的背景。然後,我們描述了使用MonoIndoor預測深度的良好實踐。

  

4.1 Self-Supervised Depth Estimation

  半監督的核心思想(基於投影策略):

  將自監督深度估計作為一種新的檢視合成問題,透過訓練一個模型來從源影像的不同視點預測目標影像。

  利用深度圖作為橋接變數對影像合成過程進行訓練和約束。該系統既需要目標影像的預測深度圖,也需要一對目標影像和源影像之間的估計相對位姿。

  具體來說,給定目標影像It和另一個檢視下的源影像It0,聯合訓練系統預測目標影像的密集深度圖Dt和從目標到源的相對相機姿態Tt→t0。

  公式(1)(2)就是投影中的兩個核心公式,公式2將源影像投影到目標影像,公式(1)計算目標影像與投影影像直接的loss。

  公式(3)是對公式(1)的具體展開,公式(4)是公式(2)的細節;

  公式(5)是一個常用的損失函式。

 

 

 

 

 

   深度一致損失,公式(7)。

 

 

 

 

  現有的自監督深度估計方法在室外很好,室內不好。

 

 

4.2 Depth Factorization

  這一段我覺得是特別重要,因為說明了室內場景與室外場景本質的不同。

  本文使用Monodepth2作為backbone。

  注意,最終的深度預測不是直接來自卷積層,而是經過一個sigmoid啟用函式和一個線性縮放函式,如公式(8)所示。

  在公式(8)中,a和b將深度圖D限制在一定範圍內,a表示最小深度值,b表示最大深度值。比如KITTI資料集,a被設定為0.1,b被設定為100。主要是因為室外場景相機最遠點在天空,永遠無限遠,所以統一被設定為100。

  但是,公式(8)不太適用於室內場景。因為隨著場景的變化,深度變化時不一樣的。比如說,浴室大概是[0.1, 3],而大廳一般為[0.1, 10]。

  預設深度範圍將作為一個不準確的引導,不利於模型捕獲準確的深度尺度。

  在室內場景中常見的快速尺度變化尤其如此。為了克服這個問題,我們提出了深度分解模組(參見圖1),以相對深度圖和全域性比例因子的形式學習解糾纏表示。

  我們使用Monodepth2[12]的深度網路來預測相對深度,並提出了一種自注意引導的尺度迴歸網路來預測當前檢視的全域性尺度因子這一步應該是自適應策略)。

  

 

 

 

 4.2.1 Scale Network

  尺度網路本身是一個self-attention block,輸入為encoder得到的特徵,首先得到查詢,鍵和值,接著查詢和鍵結合後經過一個softmax,再和值結合,最後與輸入的特徵結合,經過1×1卷積輸出一個全域性深度尺度因子。

 

 4.2.2 Probabilistic Scale Regression Head

  為了預測全域性尺度,高維特徵圖必須對映為單個正數。一種直接的方法是讓網路直接回歸得到尺度因子。然而,我們觀察到使用這種方法訓練是不穩定的。為了緩解這個問題,受[4]的啟發,我們建議使用機率尺度迴歸頭來估計這個連續值。給定一個全域性尺度因子所處的最大邊界,透過softmax(·)運算,從尺度網路eS的輸出中計算出每個尺度s的機率。預測的全域性尺度S計算為公式(11)。

  透過這樣做,迴歸問題可以透過基於機率分類的策略順利解決(更多消融結果見第4.1.1節)。

 4.2.3 Residual Pose Estimation

  如3.1節所述,自監督深度估計建立在新的檢視合成之上,這需要精確的深度圖和相機姿態。估計準確的相對位姿是光度重投影損失的關鍵,因為不準確的位姿可能導致目標和源畫素之間的錯誤對應,從而導致預測深度的問題。現有的方法大多使用一個獨立的PoseNet來估計兩幅影像之間的6自由度(DoF)姿態。在戶外環境中(例如,像KITTI這樣的駕駛場景),相對的相機姿勢是相當簡單的,因為汽車大部分是向前移動的,平移很大,但旋轉很小。這意味著姿態估計通常不那麼具有挑戰性。相比之下,在室內環境中,序列通常是用手持裝置(如Kinect)記錄的,因此涉及到更復雜的自我運動以及更大的旋轉運動。因此,姿態網路學習精確的攝像機姿態更加困難。

  與現有方法[45,2]在資料預處理過程中專注於“去除”或“減少”旋轉分量不同,我們提出了殘差姿態估計模組,迭代學習目標與源影像之間的相對相機姿態(如圖2所示)。

  在第一階段,姿態網路以目標影像It和源影像It0為輸入,預測初始相機姿態Tt0→t,其中t0中的下標0表示還沒有應用轉換。然後根據式(2)對源影像進行雙線性取樣,重建虛擬檢視It0→t,如果對應關係匹配準確,則期望它與目標影像相同。然而,由於不準確的姿態預測,情況不會如此。注意這裡的轉換定義為公式(12)。

  第二階段,我們利用殘差姿態網路(見圖1中的ResidualPoseNet),將目標影像和合成檢視It0→t作為輸入,輸出殘差相機姿態t res(t0→t)→t,表示合成影像It0→t相對於目標影像的相機姿態。現在,我們對合成影像使用公式(13)進行雙線性取樣得到新的合成視角。

  後面可以繼續迭代第二階段。

  最終的公式可以表達為公式(14),在獲得多個殘差姿態自後,總的相機姿態可以表達為所有殘差姿態的求和,如公式(15)。

  我猜想,公式(14)替代了公式(2)。

 

 

 

5. Experiments

資料集:EuRocMAV,NYUv2,RGB-D 7-Scenes。

驗證指標:常規的幾個。

 實現細節:Implementation Details

  我們使用PyTorch[27]來實現我們的模型。在深度分解模組中,我們使用與[12]中相同的深度網路;對於規模網路,我們使用兩個基本剩餘塊,然後是三個完全連線的層,中間是一個輟學層。退出率設定為0.5。在殘差位姿模組中,我們讓殘差位姿網路使用一種通用的結構[12],由共享的姿態編碼器和獨立的姿態迴歸器組成。每個實驗使用Adam[17]最佳化器訓練40個epoch,前20個epoch的學習率設定為10−4,其餘epoch的學習率降至10−5。平滑項τ和一致性項γ分別設為0.001和0.05。

 6.1 EuRoC MA V Dataset

 

 

 

6. Conclusion

亮點:

  • 本文對室內場景對比室外場景在做深度估計任務上存在的難點做了很好的分析,個人覺得很適合想做室內深度估計的同學閱讀;
  • 本文其實是針對無監督的兩個核心:深度估計網路,姿態估計網路;深度估計網路對於深度尺度變化大時難以擬合,而姿態估計對於旋轉問題很難擬合。因此提出了分別的針對方法。針對深度估計網路,進行因式分解,分別學習全域性深度尺度和相對深度圖;針對姿態估計網路,設計多階段的殘差學習軟過度合成影像過程,替代一次性合成。

不足:

  • 總體框架還是很不錯,可惜的是自己的設計相對較少,backbone是monodepth2,尺度因子估計用的是self-attention module,大多是用的現有方法。
  • 程式碼未公佈,對於一些消融細節比較難確定是否有效。
  •  多階段殘差學習是否真的有效,我不太確定。

 7. 結語

  努力去愛周圍的每一個人,付出,不一定有收穫,但是不付出就一定沒有收穫! 給街頭賣藝的人零錢,不和深夜還在擺攤的小販討價還價。願我的部落格對你有所幫助(*^▽^*)(*^▽^*)!

  如果客官喜歡小生的園子,記得關注小生喲,小生會持續更新(#^.^#)(#^.^#)。

 

 

相關文章