论文笔记《Learning Deep Correspondence through Prior and Posterior Feature Constancy》
- 摘要
- 介紹
- 相關工作
- 本論文方法
- 1 用于多尺度特征提取的莖塊
- 2 初始視差估計子網絡
- 3 視差精細化子網絡
- 4 迭代精細化
- 實驗
- 1 脫離實驗
- 2 測試基準結果
- 總結
- 參考文獻
摘要
立體匹配算法通常由四步組成:代價計算、代價聚合、視差計算和視差精細化?,F有的基于CNN的立體匹配方法僅僅采用CNN來解決四步中的部分,或者使用不同的網絡來處理不同的步驟,這使得它們很難獲得全局最優的解決方案。這篇論文提出了一個合并了立體匹配所以步驟的網絡結構。網絡由三部分組成:第一部分計算多尺度共享特征。第二部分進行匹配代價計算、匹配代價聚合以及視差計算,以通過使用共享特征估計初始視差。初始視差和共享特征被用來計算在前的和較好的(prior and posterior)feature constancy。第三部分將initial disparity、prior feature constancy和posterior feature constancy輸入一個子網絡,以通過貝葉斯推理過程來精細化初始視差。
1 介紹
MC-CNN、Content-CNN、L-ResMatch等方法的限制:在計算每個可能的視差的匹配代價時,網絡必須執行多個前向傳遞過程,這導致大的計算負擔;遮擋區域的像素不能用于訓練,因此這些區域很難獲得一個可靠的視差估計;需要使用多個啟發式的后處理步驟來精細化視差。在這些方法中,代價聚合和視差計算步驟通過最小化定義在匹配代價之上的能量方程來解決,如SGM。
GC-NET、DispNetC:直接堆疊幾個卷積層來訓練完整的網絡以最小化網絡輸出與真值視差之間的距離,比起僅僅使用CNN計算匹配代價的方法,精度更高,計算更快。
DRR、CRL:和前兩個網絡一樣,所謂完整的網絡只是完成代價計算、代價聚合、初始視差計算。然后再用一個或多個網絡來精細化初始視差。將視差精細化步驟和其他三個步驟整合在一起是非平凡的。
本論文:為了建立視差計算和視差精細化之間的橋梁,論文提出使用feature constancy來識別初始視差的正確性,然后將視差精細化任務構建成貝葉斯推理過程?!癱onstancy”是從光流估計中引用而來。“Feature constancy”是指兩個像素在特征空間中的對應關系。特別地,初始視差被當做prior disparity,以初始視差為條件的特征空間的重建錯誤被當做posterior feature constancy,從左右圖提取的特征之間的correlation被當做prior feature constancy。然后,視差精細化任務的目標是通過一個子網絡估計以feature constancy為條件的posterior disparity。(好多新的專有名詞,看論文時要注意回頭看定義)
論文貢獻:1)將立體匹配中的所有步驟融合進一個網絡以提高精度和速度;2)把視差精細化任務表達成一個使用恒定特征的貝葉斯推理過程;3)在KITTI測試基準上獲得最好的效果。
2 相關工作
(總結一下)現有的基于CNN的立體匹配方法大致可以分為以下三類:
1)學習匹配代價(CNN for Matching Cost Learning):
MC-CNN[1]: 計算兩個 9×9圖像塊之間的匹配代價,然后再使用一系列的后處理步驟:基于交叉的代價聚合、半全局匹配、左右一致性校驗、亞像素提升以及中值濾波器和雙邊濾波器。需要多個前饋過程來計算所有可能的視差的匹配代價,因而計算昂貴。
Content-CNN[2]: 將網絡訓練成多分類分類器,并引入了內積層來計算siamese架構的兩個特征向量之間的內積,以減少計算時間。
L-ResMatch[4]: 使用具有多等級權重的殘差捷徑的高速網絡來計算視差。這個架構比MC-CNN、傳統的高速網絡、ResNets、DenseNet已經ResNets of ResNets效果要好。
2)回歸視差(CNN for Disparity Regression)
端到端訓練的CNN直接從立體圖像對估計視差。
DispNetC[5]:提出一種用于回歸視差的編碼-解碼架構。匹配代價計算無縫地融合到編碼部分,視差直接在一個前向過程回歸得到。
GC-NET[6]: 在匹配代價上使用3D卷積來融合上下文信息,并且通過一個可微的“soft argmin”操作來回歸視差。
這兩個網絡的運行速度都很快,但是網絡中沒有包括視差精細化步驟,因為限制了他們的性能。
3)多個網絡(Multiple Networks)
L-ResMatch[4]:在使用高速網絡計算匹配代價之后,再使用一個額外的全局視差網絡來替換傳統方法中的WTA。這個方法提高了遮擋、扭曲、高反和稀疏紋理區域的性能。
DRR[7]: 使用Content-CNN來計算初始視差,然后用另外一個網絡精細化視差。
SGM-Net[8]: 使用SGM-Net來學習SGM參數化,獲得比手工定義的方法更好地效果。
CRL[9]: 在DispNetC之上疊加了一個用于精細化視差的網絡。
3 本論文方法
這篇論文把傳統匹配方法中的四個步驟融合到一個單一的網絡中,這樣每個步驟都可以共享特征,并且可以聯合優化,即端到端訓練。所提出的的網絡由三部分組成:多尺度共享特征提取部分、初始視差估計部分和視差精細化部分。
3.1 用于多尺度特征提取的莖塊
stem block從兩張輸入圖像提取多尺度共享特征,用于初始視差估計子網絡和視差精細化子網絡。(左右分支共享權重,以左分支為例)包含兩層卷積層(步長為2,通道數: conv1a: 3->64, conv2a: 64->128)以減小輸入圖像的分辨率,然后再通過兩層反卷積層分別上采樣兩層卷積層的輸出到全分辨率(通道數: up_conv1a: 64->32,up_conv2a: 128->32)。這兩個上采樣的特征再通過一個1×1的卷積層進行融合[通道數: (32+32)->32]。具體結果見圖1和表1。
stem block的輸出可以分為三類:
1)第二層卷積層的輸出(左圖的conv2a和右圖的conv2b)。然后在conv2a和conv2b之間執行具有大位移(40)的correlation(圖1中第一個紫色長方塊),以捕獲兩張圖像之間的全部粗略對應關系(correspondence),然后用于估計初始視差的第一個子網絡。【左右分支的第二層卷積層的輸出進行第一次correlation,獲得粗略的correspondence】
2)第一層卷積層的輸出(左圖的conv1a和右圖的conv1b)。他們首先通過一個具有3×3卷積核的卷積層,被壓縮為c_conv1a 和c_conv1b(包含更少通道64->16)。然后執行具有小位移(20)的correlation(圖1中第二個紫色長方塊),以捕獲與前面的對應關系互補的細粒度但短范圍的對應關系。另外,這些特征也充當被第二個子網絡使用的prior feature constancy?!咀笥曳种У牡谝粚泳矸e層的輸出進行第二次correlation,獲得細粒度的correspondence】
3)多尺度融合特征(左圖的up_conv1a和右圖的up_conv1b經up_conv1a2a)。他們首先被用做跳躍連接特征(skip connection
features),為第一個子網絡帶來詳細信息。然后被用來計算用于第二個網絡的posterior feature constancy。
3.2 初始視差估計子網絡
這部分子網絡通過一個編碼-解碼結構,從conv2a和conv2b產生一個視差圖。首先,利用一個correlation層來計算特征空間中的匹配代價(通道數:(128+128)->81)。注意,這里有個平衡:如果使用高水平的特征來計算代價,會丟失很多細節,并且幾個相似的對應關系會無法被分辨。但如果使用低水平的特征來計算代價,則計算成本很高,因為特征圖太大,并且感受野太小,無法獲得魯棒的特征。因此,論文中將上面correlation計算的匹配代價和來自左圖的conv2a特征concatenate在一起。這樣,我們就希望接下來的子網絡在匹配代價之上估計視差時能夠考慮到低水平的語義信息。這就在一定程度上聚合了匹配代價并改善了視差估計。
視差估計在解碼部分在不同尺度上執行,每個尺度引進了跳躍連接,如表1所示?!酒鋵嵡懊鎯刹糠志W絡就是引用了DispNet結構】
3.3 視差精細化子網絡
這篇論文把視差精細化任務構建成貝葉斯推理過程。確切地說,我們計算了prior and posterior constancy,并將初始視差當做prior disparity。接下來的視差精細化任務就是去推導考慮了這三個信息的posterior disparity。
其中,FC是feature constancy(兩個像素在特征空間中的對應關系),p(disp)是第一個子網絡產生的初始視差,p(FC)計算為左和右特征圖(c_conv1a, c_conv1b)之間correlation得到的prior feature constancy,度量兩個特征圖在多個位移下的對應關系,并且與估計的視差無關。p(FC|disp)是以初始視差為條件,計算為初始視差的重建錯誤的posterior feature constancy。確切地說,它是左圖的多尺度共享特征(3.1)和右圖的反轉特征之間的絕對差。它被認為是posterior feature constancy是因為在特征圖的每個位置只進行了一個位移,依賴于初始視差中對應的值。如果重建錯誤比較小,估計的視差就更有可能正確。否則,估計的視差要么錯誤,要么是來自于遮擋區域。
實際上,給出視差估計子網絡產生的初始視差,視差精細化子網絡的任務就是估計初始視差的偏差。偏差加上初始視差就被認為是精細化的視差圖。
3.4 迭代精細化
為了從多尺度融合特征中提取更多的信息,并從根本上提高視差估計的精度,論文提出一種迭代精細化方法。確切地說,由第二個子網絡產生的精細化視差圖被認為是一個新的初始視差圖,然后feature constancy計算和視差精細化過程反復執行,以獲得新的精細化視差。直到兩次迭代之間的提升很小。隨著迭代次數的增加,提升會減小。這主要是因為重建錯誤和相關層都不能辨別出預測的視差的不正確。
(個人理解:feature constancy的迭代計算只是posterior feature constancy,而prior feature constancy是固定的。因為prior feature constancy和初始視差無關,而posterior feature constancy,即重建錯誤,是以初始視差為條件計算的。每一輪迭代結束時,所得到的精細化視差又當做初始視差,然后進行重建錯誤計算已經后面的精細化計算。也就是圖1中,每次得到黃色長方塊時,再把結果當做第一個綠色長方塊,在兩者之間迭代。)
4 實驗
將本論文方法-IResNet(iterative residual prediction network)在Scene Flow 和 KITTI數據集上進行評估。
CAFFE架構,Adam優化(β1 =0.9, β2 = 0.999),batch_size=2, Multistep學習率. Scene Flow: 初始學習率為10?4, 然后在第20k次、第35k次和第50k次迭代時減少一半??偣灿柧毜?5k次。為了進一步優化模型,訓練程序額外再重復一次。在KITTI數據集上進行微調時,前10k次迭代的學習率為2×10?5,然后再接下來的90k迭代學習率減小為10?5。
使用數據增強:空間(旋轉、轉化、裁剪、縮放)和彩色(顏色、對比度、亮度)轉換。這有助于學習一個對光照變化和噪音魯棒的模型。
4.1 脫離實驗
這部分主要是在KITTI上進行脫離實驗,也就是分別測試各個模塊。使用end-point-end(EPE)度量,計算為估計的視差和真值視差之間的平均歐幾里得距離。還使用EPE大于t個像素的視差的百分比。
a) 多尺度跳躍連接
多尺度跳躍連接用來從不同水平引進特征,以改善視差估計和精細化的性能。表4是使用多尺度跳躍連接和單尺度跳躍連接的結果對比。多尺度比單尺度好的原因:第一層卷積層的輸出包含高頻信息,在目標邊緣和具有大的顏色變化的區域會產生大的重建錯誤。注意,在遠離邊界的目標的表面區域,會有一個非常精確的初始視差,也就是重建錯誤會很小,盡管由于紋理的變化會產生大的顏色變化。這樣,由第一層卷積層給出的重建錯誤在這些區域是不精確的。在這種情況下,多尺度跳躍連接可以提高重建錯誤的可信度。另外,引進高水平特征也有助于 feature constancy的計算,因為高水平特征利用了更多的上下文信息。
b) 用于視差精細化的Feature Constancy
由表可以看到,當加入完全沒有feature constancy的DRS時,網絡的提升很小(EPE: 2.81->2.72)。另外,可以看到,posterior feature constancy的提升作用最大,如果只是沒有這部分,EPE會從2.50增大到2.70。這是因為這部分提供了初始視差的posterior信息,也就是說,那些具有不好的初始視差的區域能夠被識別并被對位地改正。當所有三部分融合時,視差精細化網絡可以工作在貝葉斯推理框架下,將獲得最好的性能。
c) 迭代精細化
隨著迭代次數的增加,性能的提升會快速下降??梢钥偨Y為:1)通過使用 feature constancy 信息可以高效地提取視差估計的有用信息;2)包含在特征空間中的信息任然有限。因此,通過引進更強大的特征,可以提升視差精細化的性能。
d) 一個網絡 vs 多個網絡
CRL:使用一個DispNetC網絡計算視差,再使用一個DispResNet網絡精細化視差(使用了兩個獨立的網絡)。本論文是將視差計算和視差精細化融合到一個單一的網絡。
4.2 測試基準結果
本論文方法(iResNet-i2e2):i2是指進行了兩次迭代,e2是指把輸入圖像的尺寸放大兩倍。由實驗結果可知,本論文提出的方法產生更平滑的結果,特別是在圖像的上部,比其他方法好。圖像上部沒有ground-truth,對應天空或者在lidar工作范圍外的區域。
5 總結
本論文提出一種融合了立體匹配的4個步驟的網絡架構,可以聯合訓練。網絡首先計算初始視差,然后使用prior和posterior feature constancy精細化視差。精細化被構建成貝葉斯推理過程,使得網絡更容易被優化。
參考文獻
[1] J. Zbontar and Y. LeCun. Stereo matching by training a convolutional neural network to compare image patches. Journal of Machine Learning Research, 17(1-32):2, 2016.
[2]W. Luo, A. G. Schwing, and R. Urtasun. Efficient deep learning for stereo matching. In IEEE Conference on Computer Vision and Pattern Recognition, pages 56955703, 2016.
3H. Park and K. M. Lee. Look wider to match image patches with convolutional neural networks. IEEE Signal Processing Letters, PP(99):11, 2017.
[4] A. Shaked and L. Wolf. Improved stereo matching with constant highway networks and reflective confidence learning. In IEEE Conference on Computer Vision and Pattern Recognition, 2017.
[5]N. Mayer, E. Ilg, P. Hausser, P. Fischer, D. Cremers, A. Dosovitskiy, and T. Brox. A large dataset to train convolutional networks for disparity, optical flow, and scene flow estimation. In IEEE Conference on Computer Vision and Pattern Recognition, pages 40404048, 2016.
[6]A. Kendall, H. Martirosyan, S. Dasgupta, P. Henry, R. Kennedy, A. Bachrach, and A. Bry. End-to-end learning of geometry and context for deep stereo regression. In IEEE Conference on Computer Vision and Pattern Recognition, 2017.
[7]S. Gidaris and N. Komodakis. Detect, replace, refine: Deep structured prediction for pixel wise labeling. In IEEE Conference on Computer Vision and Pattern Recognition, 2017.
[8]A. Seki and M. Pollefeys. SGM-Nets: Semi-global matching with neural networks. In IEEE Conference on Computer Vision and Pattern Recognition Workshops, 2017
[9]J. Pang, W. Sun, J. S. Ren, C. Yang, and Q. Yan. Cascade residual learning: A two-stage convolutional neural
network for stereo matching. In International Conference
on Computer Vision Workshop, 2017.
總結
以上是生活随笔為你收集整理的论文笔记《Learning Deep Correspondence through Prior and Posterior Feature Constancy》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux项目自动化构建工具-make/
- 下一篇: Markdownpad2注册码