由電子科技大學用國產深度學習框架曠視天元MegEngine開發的雙目視覺立體匹配算法CREStereo ( CREStereo: Cascaded REcurrent Stereo matching network),CREStereo立體匹配算法是一種基于級聯循環網絡的立體匹配算法,旨在通過使用上下文推理來更好地理解場景中不同物體和表面之間的關系,從而提高立體匹配的準確性和效率。這使得網絡能夠更加確切地決定每個像素的深度,從而產生更準確的深度圖和3D重建。
1 前言
立體匹配是計算機視覺的重要領域,通過給定一對經過校正的圖像,計算對應像素之間的位移,即視差。立體匹配算法近年來因卷積神經網絡的出現而獲得了巨大進步。然而,由于薄結構、非理想的校正、攝像頭模塊不一致以及各種復雜場景等實際操作困難因素,從智能手機等消費級設備拍攝的真實圖像對中準確提取差異仍然是一個巨大的挑戰。為了解決這些問題,作者提出了CREStereo,即級聯循環立體匹配網絡,其特點是采用分層網絡以一種從粗到細的方式遞歸地更新視差,并使用疊堆式級聯架構進行高分辨率推理;設計自適應群局部相關層處理非理想校準問題;引入含有更豐富的光照、紋理和形狀變化的新合成數據集以更好地適應現實場景。CREStereo在Middlebury和ETH3D等公共基準測試中的表現明顯優于現有方法,并極大地提高了恢復視差的準確性。其主要貢獻可以總結為:
為實際立體匹配提出了級聯循環網絡和疊堆式級聯架構;
設計自適應群相關層來處理非理想校準問題;
創建新的合成數據集以更好地推廣到現實世界場景;
2 相關背景
視覺領域中的立體匹配是一個具有挑戰性的問題。傳統算法可以分為局部和全局方法。局部方法使用支持窗口計算匹配成本,而全局方法將立體匹配視為一個優化問題。深度神經網絡在立體匹配任務的性能表現越來越成熟,包括2D和3D的方法。對于真實世界圖像的立體匹配仍是一個少有探索的問題,但是已經有了一些解決方案,比如自適應方法、小波合成網絡和域自適應。同時,為訓練深度立體模型,合成數據集是不可或缺的。盡管現有的合成數據集對于模型訓練提供了高精度且密集的ground truth,但是這些數據集仍有許多限制,如對象形狀的變化范圍有限,失真/光流值的分布也較為局限。
3 方法
3.1 Adaptive Group Correlation Layer - 自適應組相關層(AGCL)
作者提出了一種自適應組相關層(AGCL)用于消除實際場景中立體相機校準不完美的影響。為了減少匹配的不確定性,僅在局部窗口中匹配點,通過加入注意力模塊來聚合全局上下文信息。作者采用2D-1D交替本地搜索策略來提高匹配精度,而且使用形變搜索窗口來減少對遮擋或無紋理區域的依賴。此外,作者引入組相關以逐組計算局部相關性,從而顯著降低了內存消耗和計算成本。
其中,局部關鍵點注意力是實現局部窗口匹配的核心,公式中的位置編碼增強了特征映射的位置依賴性。形變搜索窗口將搜索窗口的形狀更改為內容自適應形狀,以此來更好地處理遮擋和無紋理區域。最后,組相關機制通過分組計算本地相關性,來進一步提高匹配精度。除此之外,2D-1D交替本地搜索策略能夠提高網絡的復雜度,以細化匹配結果。這些創新性設計使得AGCL領先于現有的視覺匹配方法,在立體匹配中具有廣泛的應用前景。
局部匹配公式:
形變搜索窗口公式:
3.2 Cascaded Recurrent Network - 級聯循環網絡
作者提出了一種級聯遞歸網絡方法用于匹配光流。采用遞歸更新模塊(RUM)和自適應組關聯層(AGCL)來構建級聯遞歸網絡。分別在不同級聯層中計算特征圖的相關性,并獨立地用幾次迭代來細化視差。除了級聯的第一層外,其他級聯層均采用來自上一級的預測上采樣版本作為初始化。最后,使用凸上采樣獲得輸入分辨率的最終預測。
3.3 Stacked Cascades for Inference - 堆疊級聯用于推理
作者提出了一種帶有捷徑的堆疊級聯架構用于推理。預先對圖像對進行下采樣構建圖像金字塔,并將它們饋送到相同訓練的特征提取網絡中,以利用多層次的上下文信息。對于堆疊級聯的特定階段,該階段中的所有 RUM 與更高分辨率階段的最后一個 RUM 一起使用。在訓練期間,堆疊級聯的所有階段共享相同的權重,因此不需要進行微調。
3.4 Loss Function - 損失函數
作者所使用的損失函數采用類似于RAFT的指數加權L1距離,并使用上采樣算子將輸出序列調整到完整的預測分辨率。
3.5 Synthetic Training Data - 合成訓練數據
作者在用于視差估計網絡訓練的合成訓練數據的生成過程中使用Blender生成左右圖像對和像素級準確的密集視差地圖。通過多種來源擴展場景中主要內容的模型的形狀,包括基于ShapeNet數據集的基本內容來源,以及Blender的sapling tree gen add-on和基本形狀結合線框修改器生成模型。在場景內隨機放置不同類型、顏色和亮度的燈光形成復雜的光照環境,并使用真實世界圖像作為物體和場景背景的紋理。為了覆蓋不同的基線設置,努力確保生成的數據的視差分布在寬范圍內平滑分布。
4 實驗
4.1 數據集和評估指標
作者所使用的數據集包括Middlebury、ETH3D和KITTI等公共基準測試數據集,以及Sceneflow、Sintel和Falling Things等用于訓練的數據集。評估指標包括AvgErr、Bad2.0和D1-all等。其中,AvgErr表示平均誤差,Bad2.0表示視差誤差大于2像素的像素占比,D1-all表示左圖像中視差異常像素的百分比。
4.2 實施細節
作者使用PyTorch框架實現了Crestereo網絡。使用了8個NVIDIA GTX 2080Ti GPU進行訓練,批次大小為16。整個訓練過程設置為300,000次迭代。使用Adam 優化器,標準學習率為0.0004。在開始訓練的時候,進行了一個漸進式預熱過程,持續6000次迭代,其中學習率從5%線性增加到標準值的100%。在180,000次迭代后,學習率會線性降低到末尾訓練過程中標準值的5%。這個模型使用384×512的輸入大小進行訓練。在進入模型之前,所有的訓練樣本都會經過一組數據擴充操作。為了模擬相機模塊的不一致性和非理想矯正,我們使用多個數據擴充技術進行訓練。首先,作者分別為兩個輸入應用不對稱的色彩增強,包括亮度、對比度和伽馬的變化。為了進一步提高對真實世界圖像矯正誤差的抵抗力,只對右側圖像進行空間擴充:輕微的隨機單應性變換和非常小范圍內(<2像素)的垂直平移。為了避免不合適的區域上的匹配錯誤,使用高度和寬度在50到100像素之間的隨機矩形遮擋補丁。最后,為了適應來自各個來源的輸入數據進入網絡的訓練輸入尺寸、立體圖像和視差的組合進行隨機調整和剪裁操作。
4.3 消融實驗
作者在通過消融實驗來驗證網絡組件的有效性,除了級聯堆疊中的消融實驗外,所有評估分辨率均為768×1024。首先,比較了不同類型的相關性,發現使用2D和1D all-pairs相關性會導致準確度顯著下降;其次,分析了AGCL部分的組件,固定的無學習偏移的相關窗口會降低準確性,同時組相關和局部特征注意力模塊的去除也會降低準確性;接著,比較了不同級聯階段的性能,并發現級聯的重要性;最后,引入了新的合成數據集,表明作者提出的數據集在域泛化方面更具優勢。
5 總結
CREStereo立體匹配算法通過級聯遞歸網絡與自適應相關性,能夠更好地恢復微妙的深度細節,比現有方法更好地處理難度場景。同時,通過合成數據集的精心設計,也能更好地處理非紋理或重復紋理區域。未來可以進行改進,以適應各種便攜式設備,并最好實時運行。
-
編碼
+關注
關注
6文章
940瀏覽量
54814 -
模型
+關注
關注
1文章
3226瀏覽量
48809 -
深度學習
+關注
關注
73文章
5500瀏覽量
121113
原文標題:立體匹配算法,CRestero是如何讓它變得更加準確?
文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論