PatchMatchStereo中的深度/視差傳播策略
1.引言
本文是PatchMatchStereo[1]第二篇拾遺,主要講解PatchMatch的深度/視差傳播策略,以及在其基礎(chǔ)上,介紹幾種基于PatchMatch的改進傳播策略,分別是ETH的Gipuma[2]方法和華中科技大學的ACMM[3]。不同于SGM在極線糾正之后的影像上進行同名極線(核線)上搜索,PatchMatchStereo在整個視差空間內(nèi)進行搜索,既保證全局搜索的準確性,又提升了算法的效率。但其本身的傳播策略無法極盡GPU效能,以至于PMS的立體像對視差估計速度比較慢。直到Gipuma等方法提出新的傳播策略后,才使得GPU加速和PatchMatch算法在多視圖立體中應用成為可能,因此,本文主要介紹傳統(tǒng)方法中的視差/深度傳播策略,并簡要介紹一個在傳播方面的經(jīng)典深度學習方法。
注1:文末附【立體視覺】交流群
注2:計算機視覺書籍匯總
注3:整理不易,請點贊支持!
作者:視覺企鵝 | 來源:3D視覺工坊微信公眾號
2.PatchMatchStereo——串行傳播策略

PMS雖然可以得到較為精確的視差估計結(jié)果,又因為隨機算法的原理而使得算法本身可以以較低的顯存消耗估計較大的分辨率的影像,但PMS的問題就是因為其串行傳播(當前像素的傳播視差必須來源于左右臨近像素迭代的結(jié)果)而導致效率低下,因此,想要PatchMatch類型的算法達到秒級的深度圖估計效率,需要提出一種新的傳播策略。

圖2 PMS串行傳播策略
3.Gipuma——棋盤格傳播策略
PMS是按照對角線方向進行視差空間的串行傳播,也就是每一個像素都受限于前一個像素,從而無法徹底利用GPU資源,ETH則提出一種可利用GPU多核結(jié)構(gòu)的四周擴散傳播策略。如圖3所示,該方法將一張圖中所有的像素,按照國際象棋格分割為紅黑兩組,主要思想是,每次僅更新單個組別,而且每一個像素更新的深度傳播至來源于局部領(lǐng)域。如圖3-b),標準的局部領(lǐng)域可以設計為20個局部鄰域像素,從而利用更大的感受野來傳播深度,以更快地算法收斂。圖3-c)則是另一種加快傳播地策略,進利用最近、最遠的八個鄰域像素對應的視差進行傳播。

圖3 紅黑棋盤深度擴散示意圖
從圖4可以看出,深度估計的精度均值會很快收斂,而完整度隨著迭代次數(shù)的增加也不斷提升。一般實驗迭代八次可以得到很好的結(jié)果,到最后的迭代過程中,僅有一些邊緣細節(jié)在改變。

圖4 迭代精度結(jié)果
Gipuma還有一個貢獻是將PMS拓展到了多視圖立體中,同時加上了多視圖中的幾何一致性檢驗,即通過共面單應變換來確定多視圖的共視關(guān)系,因進行視角選擇和匹配代價計算,本文不再贅述。開源代碼為:
https://github.com/kysucix/fusibile
4.ACMM——自適應棋盤格采樣
Gipuma提出的棋盤格策略不僅使得深度估計的效率不斷提升,還將PatchMatch引入了多視圖幾何的算法之中,在其基礎(chǔ)上,華中科技大學根據(jù)gipuma中棋盤格的固定采樣問題提出了一種自適應棋盤格采樣策略(圖5右)。
首先,ACMM采用Gipuma中的思想對中的像素進行劃分,并分為紅黑兩組。不同與使用固定的期盼,ACMM將擴散領(lǐng)域擴展成四個V形區(qū)域和四個長條區(qū)域(圖5 右)。每個V形區(qū)域包含7個樣本,而每個長條區(qū)域包含11個樣本(注:圖5右圖僅為示意圖),論文中數(shù)值和代碼吻合。然后在這樣的區(qū)域重隨機采樣,并進行視差對比。同時引入多視圖的檢測,這意味著一個擁有更小的多視圖匹配代價的視差可以更好的表示三維平面。通過實驗表明這樣的策略可以加速算法的收斂,同時提升了算法的精度。

圖5 Gipuma(左)與ACMM(右)采樣策略對比
當然,ACMM方法中自適應傳播策略僅僅是一個小改進,在深度傳播之后,ACMM還進行了視角選擇和多尺度、多視角的幾何一致性檢驗,并以低分辨率下的深度圖上采樣后的結(jié)果,利用幾何一致性指導高分辨率深度圖的深度估計,文中利用前向-后向重投影誤差來表示這個幾何一致性,在優(yōu)化后的結(jié)果,特別是弱紋理部分的完整度(圖6-f)則大大增加。

圖6 深度估計結(jié)果比較
5.深度學習方法——SPN
傳統(tǒng)方法固然有其精度高的優(yōu)勢,但還需要提及深度學習方法,這里我們介紹一種經(jīng)典的深度補全應用上的傳統(tǒng)方法——空間傳播網(wǎng)絡(Spatial Propagation Network[4],以下簡稱為SPN)。SPN是通過監(jiān)督學習方法,學習深度/分割結(jié)果在特征上的空間臨近關(guān)系,進而指導稀疏圖向稠密圖的轉(zhuǎn)換。
在該文中,SPN主要用于圖像分割應用,方法與深度估計的原理一致,網(wǎng)絡結(jié)構(gòu)如圖7所示,首先,利用RGB圖通過一個神經(jīng)網(wǎng)絡學習在不同方向上的當前像素與臨近像素的鄰接關(guān)系(Affinity),圖7中,guidance network輸出了四個綠色的結(jié)果就表示四個傳播方向的鄰接關(guān)系圖。然后輸入一個粗略的分割掩膜,通過與四個傳播方向的鄰接關(guān)系卷積運算,再通過反卷積得到優(yōu)化結(jié)果,本質(zhì)上,是通過RGB或者高維特征,計算每個像素在鄰域內(nèi)與其他像素的鄰接關(guān)系,從而來學習卷積核中的權(quán)重,越相似的特征,其學習到的權(quán)重越大。

圖7 SPN網(wǎng)絡圖
文中一開始介紹了一種單路四向傳播的策略(圖8-a),為了傳播效率和準確度,又介紹了三路四向傳播的策略(圖8-b)。對于單路四向傳播,以從左向右傳播為例(1式),



圖8 SPN傳播策略
a)單路四向傳播策略 b)三路四向傳播策略
將預分割結(jié)果輸入到三路四向SPN網(wǎng)絡中,可以得到更為精確的結(jié)果,而且相比較基于深度學習的馬爾可夫場方法效率更快且精度更高。

圖9 圖像分割結(jié)果
6.總結(jié)
本文主要回憶了PMS的傳播方法,并介紹了在此基礎(chǔ)上的一些改進方法,例如Gipuma和ACMM等多視圖立體的傳統(tǒng)方法,還有基于深度學習的SPN網(wǎng)絡??梢钥吹?,雖然本質(zhì)上深度傳播知識一種加快收斂的策略,但卻能在弱紋理的空間上,極大地提升估計精度和分割精度。目前在ETH3D高分辨率數(shù)據(jù)集跑分上,領(lǐng)先的方法85%以上都是基于傳播和PatchMatch改進的方法,在GPU加速下,可以估計出非常完整且高精度的場景和物體模型。下一篇文章,我們將介紹最新的CVPR2021的PatchMatchNet[5],這篇文章不僅將PMS的思想深度學習化,而且是少有的將傳播策略使用在多視圖立體中的方法,敬請期待。
參考文獻
[1] Bleyer M, Rhemann C, Rother C. PatchMatch Stereo-Stereo Matching with Slanted Support Windows[C]//Bmvc. 2011, 11: 1-11.
[2] Galliani S, Lasinger K, Schindler K. Gipuma: Massively parallel multi-view stereo reconstruction[J]. Publikationen der Deutschen Gesellschaft für Photogrammetrie, Fernerkundung und Geoinformation e. V, 2016, 25(361-369): 2.
[3] Xu Q, Tao W. Multi-scale geometric consistency guided multi-view stereo[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019: 5483-5492.
[4] Liu S, De Mello S, Gu J, et al. Learning affinity via spatial propagation networks[J]. arXiv preprint arXiv:1710.01020, 2017.
[5] Wang F, Galliani S, Vogel C, et al. PatchmatchNet: Learned Multi-View Patchmatch Stereo[J]. arXiv preprint arXiv:2012.01411, 2020.
備注:作者也是我們「3D視覺從入門到精通」特邀嘉賓:一個超干貨的3D視覺學習社區(qū)
本文僅做學術(shù)分享,如有侵權(quán),請聯(lián)系刪文。
3D視覺工坊-立體視覺交流群
已建立3D視覺工坊-立體視覺微信交流群!想要進立體視覺學習交流群的同學,可以直接加微信號:CV_LAB。加的時候備注一下:立體視覺+學校+昵稱,即可。然后就可以拉你進群了。
強烈推薦大家關(guān)注3D視覺工坊知乎賬號和3D視覺工坊微信公眾號,可以快速了解到最新優(yōu)質(zhì)的3D視覺與SLAM論文。