双目深度估计中的自监督学习概览
?PaperWeekly 原創 ·?作者|張承灝
學校|中科院自動化所碩士生
研究方向|深度估計
深度學習的蓬勃發展得益于大規模有標注的數據驅動,有監督學習(supervised learning)推動深度模型向著性能越來越高的方向發展。但是,大量的標注數據往往需要付出巨大的人力成本,越來越多的研究開始關注如何在不獲取數據標簽的條件下提升模型的性能,也就是自監督學習(self-supervised learning)/無監督學習(unsupervised learning)。?
對于立體匹配(stereo matching),或者雙目深度估計,像 LiDAR 這樣的設備是極其笨重且昂貴的,它所能收集的只是稀疏的深度信息,而我們需要的是密集的深度圖(dense depth map);而基于結構光的設備往往只能在室內場景下進行深度信息標注,在室外場景下難以達到較高的標注質量。因此,自監督學習在立體匹配中得到越來越多的關注。
本文主要梳理了近年來自監督學習在深度立體匹配中的應用方法,希望和大家一起探討學習。
Stereo Matching
立體匹配也稱作視差估計(disparity estimation),或者雙目深度估計。其輸入是一對在同一時刻捕捉到的,經過極線校正的左右圖像??和??。而它的輸出是由參考圖像(一般以左圖作為參考圖像)中每個像素對應的視差值所構成的視差圖?。
視差是三維場景中某一點在左右圖像中對應點位置的像素級差距。當給定攝像機的基線距離??和焦距??之后,我們就可以從視差圖中自動計算出深度?,。所以深度和視差是可以互相轉換,相互等價的。
立體匹配算法分為四個步驟:
匹配代價計算(matching cost computation);
代價聚合(cost aggregation);
視差計算(disparity computation);
視差精修(disparity refinement)
傳統的視差估計算法主要分為兩類:
局部算法:主要基于滑動窗口來計算局部窗口內的匹配代價;
全局算法:通過優化包括局部數據項和平滑項的能量函數來計算立體視圖之間的相關性;
傳統的視差估計算法對于各種應用場景都具有等價的視差估計能力,不會因為場景變化而產生較大的差異,因此有論文將傳統方法估計的視差圖作為帶有噪聲的標簽來提升無監督視差估計的性能,本文后面會提到。
隨著深度學習的發展以及大規模合成/仿真數據的推動,CNN 將上述四個步驟統一成一個端到端的網絡,進一步提升了視差估計的性能。本文主要探討的是自監督學習在基于卷積神經網絡的視差估計算法中的應用情況。
Self-Supervised Learning
在基于卷積神經網絡的立體匹配算法中,有監督學習基本上是回歸的方法,即采用 smooth L1 loss 計算預測的視差值和真實視差值之間的誤差來監督網絡的學習。自監督學習算法則主要從圖像自身的特征結構,視差圖自身的特點或者借助傳統算法來構造噪聲標簽來訓練深度模型。
Image Reconstruction Loss
和自編碼器類似,我們最容易想到的就是通過重建圖像來作loss。假設原來的左圖(參考圖像)為??(i,j 表示像素點的位置坐標),根據其預測的視差??以及原有的右圖?, 我們可以通過 warping 操作得到重構后的左圖??。這里的 warping 操作是根據左圖每個像素點對應的視差值,在右圖中尋找對應的像素點再差值得到的。
在 PyTorch 中用 grid_sample 函數來實現,采樣器的原理是基于?Spatial Transformer Networks(STN)?[1] 得到的,對同一行中的兩個像素進行雙線性采樣,這是一個可微的過程。
設 N 為像素點的個數,那么最簡單的圖像重構損失函數定義如下:
通常,經過重構的圖像可能具有很大的失真,僅僅采用重構圖像和原圖的比較還不夠,我們會引入圖像質量評價中的圖像相似度指標 SSIM [2] 來綜合的計算重構圖像和原始圖像在光度上的誤差。
這里 α 是基本重構誤差和相似度誤差的權重。一般采取單尺度的 SSIM 以及簡化的 3*3 濾波,α 一般取 0.85,相似度誤差占據更大的比重。
Disparity Smoothness Loss?
由于我們需要密集的視差圖,為了使得視差在局部上保持平滑,我們可以對視差梯度 ?d 進行 L1 懲罰。由于深度不連續性通常出現在圖像的梯度上,因此圖像的梯度 ?I 也被考慮進來。
這里是分別使用了 x 方向和 y 方向的視差梯度和圖像梯度。?
Left-Right Disparity Consistency Loss?
以上兩種損失函數是自監督學習中最基本,最常用的損失函數。下面這篇論文提出了左右視差一致性損失,雖然是基于單目圖像的,但是也可以用在雙目深度估計上。
論文標題:Unsupervised Monocular Depth Estimation with Left-Right Consistency
論文來源:CVPR 2017 Oral
論文鏈接:https://arxiv.org/abs/1609.03677v3
開源代碼:https://github.com/mrharicot/monodepth
論文提出的框架如下:
和原有方法不同,輸入是左圖(雙目是左右圖),輸出不僅是以左圖為參考圖像的視差圖?, 還有以右圖為參考圖像的視差圖?。除了應用上述兩種損失函數外,還提出了一種左右視差一致性損失。
我們可以將以右圖為參考圖像的??作為 warping 操作的輸入圖像,再以左圖為參考圖像的??作為輸入的視差圖,經過 warping 操作就會得到??的重構視差圖?。注意,這里得到的是重構的視差圖,而非重構的左圖。因此,左右視差一致性損失可以寫作:
這里N是像素的個數,?就是重構出來的?。
這篇論文中由于預測了兩種不同的視差(以左圖為參考圖像的視差和以右圖為參考圖像的視差),因此上面提到的三種損失都可以有鏡像損失。比如,以原始左圖?,以及以右圖為參考圖像的視差圖??作為 warping 操作的輸入,那么得到就是重構出來的右圖?。
Weighted Local Contrast Normalization
下面這篇論文通過分析重構誤差的缺點,提出了一種新的加權局部對比度歸一化操作,從而優化了重構誤差損失函數。
論文標題:ActiveStereoNet: End-to-End Self-Supervised Learning for Active Stereo Systems
論文來源:ECCV 2018 Oral
論文鏈接:https://arxiv.org/abs/1807.06009v1
復現代碼:https://github.com/meteorshowers/StereoNet-ActiveStereoNet
論文提出了一個針對主動視覺的端到端的深度學習方法,我們主要來看其對于重構誤差的分析和改進。作者認為光度重構誤差具有以下兩點不足:
在視覺設備感知外部環境時,接收到的信號強度與距離的平方成反比,這導致光度對距離具有明顯的依賴。
明亮的像素點往往比暗的像素點更容易產生較大的殘差。?
基于以上兩個觀察,深度網絡在訓練時傾向于在容易學習的地方學習(比如,明亮的區域),然后對其他區域進行平滑處理(比如,較暗的區域)。
因此,對于較暗的像素點,它需要更準確的深度信息來監督才能學得比較好。但是在自監督學習中,我們缺少的正是這種準確的深度信息(真實的視差標簽),這樣就會導致較暗的區域學得很差。并且,當前景和背景差異較大時,這種損失會在被遮擋的區域產生更大的誤差,導致網絡無法再繼續學習下去。?
論文提出的加權局部對比度歸一化(WLCN)就是用來移除亮度與視差的相關性。具體來說,對每一個像素點,計算以其為中心的 9*9 區域內的所有像素點的局部均值 μ 和標準差 σ,這些局部的統計量用來歸一化當前的像素點。
其中 η 是一個小常量。下圖展示了 LCN 歸一化后的結果。
由上圖可以看出,對于僅使用重構誤差(左圖),在紅色框中較亮的部位對應的重構誤差較大。而采用 LCN 對輸入圖像歸一化處理后(中間圖),這些重構誤差不會過渡的偏向明亮的區域。這表明 LCN 不僅消除了光度和視差之間的聯系,而且在遮擋區域能夠提供較好的殘差。
但是另一個問題是,在弱紋理區域局部標準差??可能會趨近于 0,從而導致這部分的損失偏大。為了解決這個問題,作者提出使用參考圖像在 9*9 局部區域的標準差??來作一個重新加權(re-weight)。因此,重構誤差可以重寫為:
從上面圖中的右邊可以看出,經過重加權之后弱紋理區域的誤差也變小了,這是因為這部分對應的權值??也趨近于 0 了。
Guided Confidence Loss?
除了挖掘圖像和視差本身的特性,我們還可以從外部借助一些帶有噪聲的標簽作為監督信息。在本文開頭介紹過,傳統方法雖然沒有基于深度學習的方法性能高,但是對各種場景具有較好的泛化能力。
下面這篇論文就是借助傳統方法先對圖像估計一次視差,再通過置信度的學習來自動的鑒別帶有噪聲的標簽,從而實現無標簽條件下的深度模型學習。
論文標題:Unsupervised Domain Adaptation for Depth Prediction from Images
論文來源:TPAMI 2019
論文鏈接:https://arxiv.org/abs/1909.03943v1?
復現代碼:https://github.com/CVLAB-Unibo/Unsupervised_Depth_Adaptation
假設由傳統算法(比如SGM [3])估計的視差值為?,這里 p 指的是圖像中的像素點。那么以視差圖作為輸入,幾層卷積層構建置信度估計網絡,就可以得到該視差圖中每一個像素點的置信度,由此構成置信圖(confidence map),。
置信圖中每一點的范圍在 [0, 1],用來表示生成的視差值的可信程度。如果某點的置信度越高,那么該點處估計的視差值就越準,就越能夠作為真實標簽來指導深度模型的訓練。反之,亦然。
我們可以通過超參數??來控制用來指導深度模型訓練的標簽數量。比如??用來表示只有置信度大于 0.8 的視差值才能成為真正的監督信息。由此看出實際的監督信息是稀疏的,這與 KITTI 數據標注是一致的,因為后者的標注信息也是稀疏的深度值。但是實踐證明即使只有稀疏的深度信息,也能夠訓練出性能很好的模型。
假設由深度模型估計的視差表示為?,那么論文提出的引導置信損失可以寫作:
這里??表示的就是由超參數??控制的由傳統方法估計的稀疏標簽,它具有較高的置信度。而深度模型估計的視差和傳統方法估計的視差以 L1 回歸的形式監督,包含在 loss 計算中的像素點由置信度來控制。這種引導置信損失相當于是給深度模型提供了值得信賴的監督信息,但是卻是在沒有真實標簽情況下實現的。
下圖給出了不同??控制的情況。
從 (e) 到 (h) 我們可以看出,?越小,監督信息越多,但是相應的噪聲也越多;?越大,雖然噪聲減少了,但是準確的監督信息也變少了。因此,超參數??也可以納入到損失函數中一起優化。由于在優化過程中,?容易收斂到1,作者提出了下面的改進版損失函數:
新加的項有兩個優勢,一是將超參數??納入最終的損失函數計算中一起優化,避免了人為調參,可以自動學習出最佳的值;二是可以約束??不收斂到1。
關于超參數??的生成,作者提出了兩種行之有效的方法:
將??看做是一個可學習的變量,即上面的描述方式;
將??看做是一個簡單網絡?的輸出,該網絡可以采用 3 個 3*3 的卷積層,后面接一個全局平均池化得到。
下圖是關于超參數??的消融實驗。
從上圖可以看出,無論是將??看作學習的變量(倒數第二行)還是網絡的輸出(最后一行),都不如人工交叉驗證效果好(倒數第三行)。
總結
上面幾篇論文的分析主要關注的是自監督學習,論文中還有其他亮點沒有闡述,大家如果感興趣還可以詳細閱讀論文。從上面的分析中我們可以歸納出,近年來自監督學習在立體匹配中主要從下面三個方面來考慮:?
從圖像自身的特性出發:如圖像重構損失,圖像相似度計算,加權局部對比度歸一化;
從視差圖的特點出發:如視差平滑損失;
從傳統方法中借鑒:如引導置信損失。?
未來的自監督學習我認為可以從兩方面著手,一是探索如何將圖像本身的特性和視差的關系構建起來,因為圖像的 RGB 信息本身和視差信息是沒有關系的,圖像重構誤差本身并不等價于視差回歸損失。二是如何獲取更加準確的稀疏監督信息,畢竟只需要稀疏的監督信息就能學出很好的視差估計網絡,但是前提是監督信息必須準確,也就是少而精。
參考文獻
[1]?https://arxiv.org/abs/1506.02025?
[2] Z. Wang, A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli. Image quality assessment: from error visibility to structural similarity. TIP 2004.
[3] H. Hirschmuller. Accurate and efficient stereo processing by semi-global matching and mutual information. CVPR 2005.
點擊以下標題查看更多往期內容:?
BERT在多模態領域中的應用
Designing GANs:又一個GAN生產車間
圖神經網絡三劍客:GCN、GAT與GraphSAGE
ICLR 2020?| 多關系圖神經網絡CompGCN
深度學習預訓練模型可解釋性概覽
ICCV 2019?| 基于層次解析的Image Captioning
#投 稿 通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
?????來稿標準:
? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?
? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志
???? 投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發送?
? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的双目深度估计中的自监督学习概览的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不属于速动资产的是
- 下一篇: 微信小店助手 App 开启测试:0 元试