从近年CVPR看域自适应立体匹配
?PaperWeekly 原創 ·?作者|張承灝
單位|中科院自動化所碩士生
研究方向|深度估計
深度立體匹配(deep stereo matching)算法能夠取得較好的性能,一是來源于卷積神經網絡強大的特征提取能力,二是得益于大規模雙目仿真數據集。
例如:Sceneflow [1] 是一個包含三萬多對雙目圖像的帶標簽的合成數據集,Carla [2]? 是一個開放的城市駕駛模擬器,可以用來生成大規模城市雙目仿真數據。這些合成數據集使得深度模型能夠得到充分地訓練。
然而,由于合成數據和真實數據存在很大的領域偏差(domain gap),在合成數據上預訓練的模型在真實數據上泛化性能較差。
另一方面,真實場景下的數據往往難以獲得密集且準確的標注信息。比如 LiDAR 等設備價格高昂,體型笨重,而且只能收集稀疏的深度信息;基于結構光的設備在室外場景難以捕捉準確的深度信息。
近年來,更多的研究關注域自適應立體匹配(domain adaptation stereo matching)。希望在不獲取,或者少獲取真實場景標注信息的情況下,實現深度模型從仿真場景到真實場景的自適應。
本文主要梳理了近兩年 CVPR 上關于域自適應立體匹配的研究工作。
ZOLE
論文標題:Zoom and Learn: Generalizing Deep Stereo Matching to Novel Domains
論文來源:CVPR 2018
論文鏈接:https://arxiv.org/abs/1803.06641
代碼鏈接:https://github.com/Artifineuro/zole
1.1 Motivation
這篇論文希望通過無監督域自適應,將合成數據上訓練的模型泛化到新的真實場景中,比如手機拍攝的生活環境,或者自動駕駛的城市街景。作者觀察到兩個現象:
泛化故障:合成圖像上預訓練的模型在真實圖像上性能不好,原因在于視差圖的邊緣很模糊,并且在病態區域的視差估計是錯誤的;
尺度多樣化:如果將一對雙目圖像上采樣一定比例,再輸入到預訓練的模型中,那么預測出來的視差具有更豐富的細節信息,例如更銳化的目標邊緣,更高頻的場景信息。
第一點觀察是存在的問題,作者借鑒圖論的知識,對視差圖做圖拉普拉斯正則化約束,采用迭代優化的策略在真實場景上進行自適應。而第二點是優勢,這種精細化的視差圖可以作為原尺度輸入圖像的視差標簽,從而實現自監督學習。
這實際上一種放大學習(zoom and learn),因此本文的方法被稱為 ZOLE。
1.2 Method
給定一個由深度網絡預測的視差圖 D,圖拉普拉斯正則化定義為:令視差圖上的圖像塊(patch)為 ,s 相對于一個具有m個頂點的圖 G 是光滑的,設 為圖 G 的拉普拉斯矩陣,那么圖拉普帕斯正則化就是 的值。
這個得到的值經過求和,成為圖拉普拉斯正則化損失函數來訓練深度模型。
那么如何從視差圖上構造出這個圖 G 呢?作者將視差圖劃分為 M 個正方形小塊,并將其切片,這樣每個小塊 s 對應一個長度為m的向量。連接像素 和像素 的邊權重 定義為:
其中 是一個閾值, 是像素 和像素 的距離度量。因此,構造的圖 G 是一個 - 鄰接圖。距離度量函數定義如下:
其中 和 分別是 的第 項和第 項, 實際上是所有圖像塊的集合 。距離度量的前一項是 K 維空間的距離,而后一項是像素空間的距離, 取 0.2。
假設共有 N 對雙目圖像,即 ,。前 對是真實圖像,后面 是合成圖像。那么對于深度立體匹配模型 ,令 是視差標簽 ,其迭代優化的目標為:
目標函數的前兩項可看作數據項,第三項是圖拉普拉斯正則化損失,可看作平滑項。其中第一項對應真實數據, 是原始圖像上采樣后經過模型預測,再縮放回原尺度的偽標簽;第二項對應合成數據, 是合成數據的視差標簽。
作者認為在真實場景下能夠估計視差的模型,應該在仿真場景下仍然具有視差估計的能力,因此合成數據和真實數據是混合訓練的, 和 是各個損失函數的權重。
自適應迭代優化的算法如下,是對上述目標函數的具體化闡述。
1.3 Experiments
作者首先在智能手機拍攝的日常生活場景下進行實驗。由下圖可以看出,ZOLE 模型在真實場景下的視差圖更加平滑,但是能夠保持銳化的邊緣細節。
作者也在自動駕駛的城市街景場景下進行了實驗,即 KITTI 數據集。由下圖可以看出,ZOLE 模型同樣可以產生準確且精細化的視差圖,這得益于圖拉普拉斯正則化的約束。
L2A
論文標題:Learning to Adapt for Stereo
論文來源:CVPR 2019
論文鏈接:https://arxiv.org/abs/1904.02957
代碼鏈接:https://github.com/CVLAB-Unibo/Learning2AdaptForStereo
2.1 Motivation
無監督域自適應算法的一種簡單實現是先在合成數據上采用有監督的預訓練,這可以看作是一種更好的參數初始化,之后在真實數據上采用無監督損失函數進行微調。這種自適應方法簡單粗暴,微調時容易崩潰,并且準確率不高。
這篇論文從元學習的方法出發,將自適應的過程納入到學習的目標中,由此可以得到一組更適合自適應學習的參數。
模型不可知元學習(Model Agnostic Meta Learning,MAML)[3] 是few-shot learning中一種常用的元學習算法。給定一個訓練集 ,令和任務相關的訓練集和驗證集分別是 和 ,其中 。
假設內循環只有一次梯度下降,則整個 MAML 的目標可以寫為:
其中?是自適應的學習率。這個目標函數表明,在每次迭代優化中,內循環從公共基本模型 開始對每個任務執行梯度下降更新(適應步驟)。
之后,外循環對公共基本模型執行一次梯度更新,更新的梯度是內循環中特定任務的梯度的總和。作者將 MAML 的自適應思想應用到立體匹配中。
2.2 Method
上圖是論文的訓練框架圖,作者采用合成圖像的視頻幀進行在線自適應學習,因此這里可以使用有監督損失 進行評估。在真實場景中適應時,只有無監督損失 可以用。
因此,這是一個將自適應過程加入到學習環節的學習自適應(learn-to-adapt,L2A)方法。
具體來說,對于每一個 batch,含有 個視頻序列。由于視頻序列較長,并且有很多冗余部分,因此僅隨機采樣 幀視頻。
圖中藍色箭頭代表的是模擬自適應階段,對應 MAML 中的內循環。對于第一個采樣幀 ,先使用無監督損失函數 對當前視頻序列的模型進行梯度更新,這是模擬在真實場景下的無監督學習。
之后每次不僅采用無監督損失更新,還采用有監督損失 評估當前模型的準確率。當采樣的視頻幀通過之后,將每個視頻序列的有監督評估損失求和,作為整個立體匹配模型的梯度進行更新。這對應圖中的橙色箭頭,即 MAML 中的外循環梯度更新。
為了更清晰地理解自適應的過程,可以看下面的算法流程:
算法的核心是第 9 步采用無監督損失對當前任務的模型 進行梯度更新,模擬真實場景下的自適應;第 10 步采用有監督損失進行評估,并進行梯度累加;第 11 步采用累加的梯度對整體模型 進行梯度更新。
除此之外,為了減少無監督損失中錯誤的視差估計對訓練的影響,作者還設計了一個置信度函數,用來作為無監督損失函數中每個像素點貢獻的權重。由于這種置信度是沒有顯式的監督信息的,因此直接讓置信度網絡自動地估計噪聲點所在的位置。
這種置信度可看作是無監督損失的加權,具體的結構如下圖所示:
2.3 Experiments
作者主要比較了有監督訓練和無監督域自適應,以及是否采用置信度函數的性能。
從上圖可以看出,比較直接的域自適應是先監督預訓練,再無監督 finetune,即 SL+Ad;而采用 L2A+WAd(即 L2A 自適應+置信度函數)的性能要優于這種簡單的自適應方法,并且幾乎和理想的有監督 finetune 性能相匹配。
MADNet
論文標題:Real-time self-adaptive deep stereo
論文來源:CVPR 2019 Oral
論文地址:https://arxiv.org/abs/1810.05424
代碼鏈接:https://github.com/CVLAB-Unibo/Real-time-self-adaptive-deep-stereo
3.1 Motivation
ZOLE 和 L2A 這兩種方法都是從自適應的準確率上來考慮的,并沒有關注模型的速度。然而,在實際的自動駕駛場景中,我們需要的是實時的深度估計模型。
因此作者在這篇論文中提出了第一個實時域自適應立體匹配網絡 MADNet(Modularly ADaptive Network)。
前面介紹過,一種簡單的完全自適應(full adaptation)方法是采用無監督損失進行 finetune,但是這種訓練方法在每次反向傳播時需要貫穿整個網絡。
盡管將網絡設計的更輕便簡單可以提升一些速度,但是反向傳播仍然需要較大的計算量,這樣使得達到實時的速度變得很困難。
作者認為自適應的時候可以只針對某些特定的模塊進行反向傳播,而不需要對整個網絡進行一遍,這樣既可以保證網絡具有一定的體量來滿足準確性的要求,又能在自適應的階段進行在線學習,提升速度。
網絡自始至終都是處于訓練的狀態,只要真實場景的視頻足夠長,那么網絡就能適應的越來越好。
3.1 Method
上圖是 MADNet 的整體結構。作者設計了一個輕量級的 encoder-decoder 結構,編碼和解碼部分都是一個金字塔結構。
編碼部分的 F1 到 F6 分別是 1/2 到 1/64 的分辨率,解碼部分的 D2 到 D6 是對應于 F2 到 F6 分辨率的視差估計模塊,每個 D 模塊都輸出該分辨率大小的預測視差圖。編碼和解碼中間的圓圈代表經過 warp 操作構造 cost volume(如上圖 c)。
上圖中(a)表示的是完全自適應的方法,采用無監督損失,對整個網絡進行反向傳播,這種方法計算量比較大。
圖中(b)是作者提出的調制自適應算法(Modular ADaptation,MAD),將相同分辨率的編碼和解碼模塊看做是一個合并的調制模塊 M。比如 F3 和 D3 組成 M3 調制模塊,在每次計算完損失之后,只選擇一個模塊進行反向傳播,這樣就可以大大提升在線自適應的速度。
那么在計算完損失之后,如何選擇需要進行反向傳播的模塊呢?是按順序選擇還是隨機選擇?作者提出了一個啟發式的獎勵-懲罰機制來動態地選擇每次更新的模塊。下面是該算法的流程:
算法中 H 是一個包含了 p 個 bins 的直方圖,每一個 bin 對應于一個調制模塊 M。第 7 行,每次從直方圖 H 的 softmax 分布中采樣概率最高的模塊 M,在第 9 行進行梯度更新。接下來是一種啟發式的獎勵-懲罰機制,用來調整直方圖中每個 bin 的大小。
第 13 行的 是一種帶有噪聲的損失。第 14 行的 可以看做是用來衡量模塊有效性的度量。如果某個模塊有效,那么當前的 就會比較低,使得 ,那么在第 16 行更新直方圖時概率就會增大。反之,模塊效率比較低, 就會大,使得 ,在更新時就是負權重。
3.2 Experiments
作者采用的 KITTI raw 數據集,它包含 Campus,City,Residential,Road 四種類型的視頻幀。
上表是 MADNet 在四種類型的數據集上先后自適應的實驗結果,可以看到如果不加自適應,可以達到接近 40FPS 的速度。
如果采用無監督完全自適應,可以達到 15FPS;而采用了 MAD 調制模塊后,速度可以提升到 25FPS,精度降低也不多,這是因為當適應到足夠多的視頻幀時,MAD 可以具有與完全自適應同等的性能。
上表比較了不同自適應方法的性能和速度。可以看到,不采用自適應時速度最快,但是精度最低。只調整最后一層,Refinement 層或者 D2+Refinement,速度會有所降低,EPE 大幅降低,但是 D1-all 還是比較高。
相比于按順序的選擇調制模塊(SEQ)或者隨機選擇調制模塊(RAND),采用啟發式的懲罰-獎勵機制達到的性能最高。
Guided Stereo Matching
論文標題:Guided Stereo Matching
論文來源:CVPR 2019
論文鏈接:https://arxiv.org/abs/1905.10107
代碼鏈接:https://github.com/mattpoggi/guided-stereo
4.1 Motivation
和上面介紹的三種方法不同的是,這篇論文探討的是一種弱監督的引導域自適應立體匹配。盡管現有設備很難獲取密集而準確的深度信息,但是只獲取十分稀疏的深度信息是比較容易辦到的。
如何只根據這些稀疏的標簽就能完成從合成數據到真實數據的自適應呢?作者在這篇論文中假設只采用 5%? 真實數據標簽,提出一種引導匹配的域自適應機制。
4.2 Method
在深度立體匹配網絡中,用來計算匹配代價的是 cost volume,根據計算方式不同有兩種形式,一是基于相關性的,其 cost volume 的大小是 H×W×(2D+1);另一種是基于 3D 卷積的,其 cost volume 的大小是 H×W×D×2F。
這里 H 和 W 是圖像的高和寬,D 是特征通道數,F 是考慮的最大視差值。
作者希望通過真實數據的稀疏標簽來增強其第 k 個通道的輸出。具體來說,引入了兩個大小均是 H×W 的輸入:系數矩陣 G 和二進制掩碼 V,V中每個量表示 G 中元素是否有效。
對于坐標是 (i, j) 的像素,如果?,那么就根據真實視差?來改變其特征。之后再利用深度神經網絡自身的能力來應用這些真實的稀疏標簽。
之前的一些方法是采用置信圖來改變 cost volume,比如當預測的視差 ,就將其置為 0。但是考慮到真實圖像的標簽是十分稀疏的(5%)。
因此這樣做就會使得特征圖變成一個大部分是零的特征圖,只有零星的非零值,這是不利于深度網絡學習的。因此,一種替代的方式是采用以 為中心的高斯分布,其表達式如下:
其中 c 代表高斯分布的寬度,k 代表峰值的最大值,應當大于等于 1。因此,根據有效性 V,可以將高斯分布與整個 cost volume 相乘來得到新的特征 :
以上就是引導立體匹配的核心公式。
4.3 Experiments
作者分別采用兩種不同代表的深度立體匹配網絡來進行實驗,iResNet [4]?和 PSMNet [5],并且在三種公開數據集(KITTI,Middlebury,ETH3D)上取得了更加優越的性能。甚至對于傳統的 SGM 算法也有效。
上圖是在 KITTI 2015 數據集上的性能比較。可以看到,無論 iResNet 還是? PSMNet,只在合成數據上預訓練再在真實數據上測試都會有很大的性能丟失。而加入稀疏標簽的引導后,僅僅測試就能降低錯誤率。
如果在訓練時也加入引導,則更能進一步降低錯誤率。在其他幾個數據集上的結果也有類似的結論,大家可以下載論文看更詳細的結果。
總結
從近兩年 CVPR 的域自適應立體匹配的發展來看,有以下幾個特點:
研究關注點從離線自適應轉向在線自適應,后者更加貼近實際應用場景;
從努力提升算法精度,到開始關注模型效率,推理速度,邁向實時的域自適應算法;
在合成數據和真實數據不變的情況下,探索更有效的訓練算法是實現域自適應的突破口,可以從其他領域的進展來借鑒;
僅有稀疏的真實標簽就能夠大幅提升域自適應的性能。
參考文獻
[1] Mayer, N., Ilg, E., Hausser, P., Fischer, P., Cremers, D., Dosovitskiy, A., Brox, T.: A large dataset to train convolutional networks for disparity, optical flow, and scene flow estimation. In: CVPR 2016.?
[2] Alexey Dosovitskiy, German Ros, Felipe Codevilla, Antonio Lopez, and Vladlen Koltun. Carla: An open urban driving simulator. arXiv preprint arXiv:1711.03938, 2017.?
[3] Chelsea Finn, Pieter Abbeel, and Sergey Levine. Model agnostic meta-learning for fast adaptation of deep networks. In PMLR 2017.?
[4] Zhengfa Liang, Yiliu Feng, Yulan Guo, Hengzhu Liu, Wei Chen, Linbo Qiao, Li Zhou, and Jianfeng Zhang. Learning for disparity estimation through feature constancy. In CVPR 2017.?
[5] Jia-Ren Chang and Yong-Sheng Chen. Pyramid stereo matching network. In CVPR 2018.
點擊以下標題查看更多往期內容:?
聯合檢測和跟蹤的多目標跟蹤算法解析
CVPR 2020?| 曠視研究院提出雙邊分支網絡BBN
淺談多目標跟蹤中的相機運動
雙目深度估計中的自監督學習概覽
CVPR 2020 三篇有趣的論文解讀
ICLR 2020 | GAN是否真的判斷出了數據的真假?
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的从近年CVPR看域自适应立体匹配的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ICLR 2020 | 可提速3000倍
- 下一篇: 唯科 WIKO 笔记本电脑“NICG-1