論文地址:https://openaccess.thecvf.com/content/CVPR2023/papers/Zhao_High-Frequency_Stereo_Matching_Network_CVPR_2023_paper.pdf
源碼地址: https://github.com/David-Zhao-1997/High-frequency-Stereo-Matching-Network
概述
?? 在立體匹配研究領域,當前的方法在估計視差圖的細微特征方面表現不足,尤其是在對象的邊緣性能方面。此外,弱紋理區域的混淆匹配和細小物體的錯誤匹配也是模型性能表現不佳的重要因素。在迭代式的方法中,現有的基于GRU的結構存在一定局限性,用于生成視差圖更新的信息與GRU的隱藏狀態信息耦合在一起,使得在隱藏狀態中保持細微的細節變得困難。
??為了解決該問題,本文提出了 DLNR (Stereo Matching Network with Decouple LSTM and Normalization Refinement),改方法可以在迭代過程中保留更多的細節信息。同時,為了進一步提取高頻的細節信息,本文提出了一個視差歸一化細化模塊,將視差值歸一化為圖像寬度上的視差比例,有效地減輕了模型跨域性能下降的問題。此外,為了克服傳統resNet的特征提取瓶頸,本文引入了一個多尺度多層級的特征提取骨干網絡,通過通道級自注意力機制來增強模型的特征提取能力。實驗結果表明,本文在多個數據集上達到了最先進的水平。
模型架構
Channel-Attention Transformer extractor
?? 受到 Restormer 的啟發,作者設計了一個多階段、多尺度的通道注意力transformer特征提取結構用于提取像素長程依賴特征與高頻細節特征,如圖3所示:
高頻細節特征獲取
?? 文中采用 Pixel Unshuffle 來替代池化操作對圖像進行下采樣至原始大小的1/4,并擴展通道數,同時不丟失任何高頻信息。原始圖像的形狀是 [ C , H ? r , W ? r ] [C, H * r, W * r] [C,H?r,W?r],經過Pixel Unshuffle后reshape為 [ C ? r 2 , H , W ] [C * r^2, H, W] [C?r2,H,W]。這樣可以在降低圖像分辨率的同時,保留圖像中的高頻細節信息。
通道注意力機制
?? 文中提出了CWSA模塊(來源于Restromer中的MDTA)用于通道注意力,以減少原始通道注意力帶來的計算量激增問題。
多尺度解耦LSTM正則化
?? 在每次迭代中,迭代單元結合特征提取器從多尺度和多階段信息 F l F_l Fl?、 F m F_m Fm? 和 F h F_h Fh?,以及上一次迭代產生的隱藏狀態 h i ? 1 h_{i-1} hi?1?、 C i ? 1 C_{i-1} Ci?1? 和先前的視差圖 D i ? 1 D_{i-1} Di?1?,預測視差圖的殘差圖 Δ D i \Delta D_i ΔDi?。
多尺度結構
??為了解決立體匹配中弱紋理區域的匹配難題,文中使用多尺度的迭代模塊來充分利用1/4,1/8和1/16分辨率下的視圖信息。每個子模塊都與其余相鄰的分辨率進行交互,低分辨率可以獲得更大的感受野用于處理弱紋理區域的混淆匹配。高分辨率尺度可以提供更多的高頻細節信息,為物體的邊緣和角落提供更多細節。
解耦機制
??傳統的GRU結構的隱藏層特征 h h h 用于預測視差殘差圖,同時用于GRU模塊之間的狀態轉移,導致模型無法保留更多的細節信息。為此,文中引入一個新的隱藏特征 C C C,如圖4所示。
??隱藏狀態 h h h 用于通過視差頭生成更新矩陣,而新引入的隱藏狀態 C C C 僅用于在迭代之間傳遞信息。該設計將更新矩陣和隱藏狀態解耦,可以在迭代過程中保留更多有效的語義信息。
視差歸一化細化
?? 為了緩解模型在地分辨率下細化導致的高頻細節信息丟失問題,文中引入一個視差細化模塊,如圖5所示:
??1/4尺度的視差圖經過可學習的上采樣模塊上采樣到原分辨率,繼而將右視圖根據視差圖warp到左視圖,用于計算誤差圖:
D f r = l e a r n e d U p s a m p l e ( D l r , u p M a s k ) I l ′ = w a r p ( I r , d i s p ) E l = I l ′ ? I l (1) \begin{aligned} D^{fr}& =learnedUpsample(D^{lr},upMask) \\ I_{l}^{'}& =warp(I_r,disp) \\ E_{l}& =I_{l}^{'}-I_{l} \end{aligned}\tag{1} DfrIl′?El??=learnedUpsample(Dlr,upMask)=warp(Ir?,disp)=Il′??Il??(1)
??上采樣后的視差圖被縮放到0到1之間,且 D f r D^{fr} Dfr 的最小值通常為0。文中使用圖像的寬度來作為最大視差值將所有像素點的視差值歸一化:
D N o r m f r = D f r ? m i n ( D f r ) w i d t h ( I l ) (2) D_{Norm}^{fr}=\frac{D^{fr}-min(D^{fr})}{width(I_l)}\tag{2} DNormfr?=width(Il?)Dfr?min(Dfr)?(2)
??將歸一化視差圖 D N o r m f r D_{Norm}^{fr} DNormfr?,誤差圖 E l E_{l} El? 與左視圖 I l I_l Il? 送入視差細化模塊中得到正則化后的視差圖 D f r ′ D^{fr'} Dfr′:
I e r r = C o n v 3 × 3 ( [ E l , I l ] ) D f r ′ = h o u r g l a s s ( [ I e r r , C o n v 3 × 3 ( D N o r m f r ) ] ) (3) \begin{aligned}I_{err}&=Conv_{3\times3}([E_l,I_l])\\D^{fr'}&=hourglass([I_{err},Conv_{3\times3}(D_{Norm}^{fr})])\end{aligned}\tag{3} Ierr?Dfr′?=Conv3×3?([El?,Il?])=hourglass([Ierr?,Conv3×3?(DNormfr?)])?(3)
最后根據歸一化視差圖計算原始視差圖:
D r e f i n e d = D f r ′ × w i d t h ( I l ) + m i n ( D f r ′ ) (4) D_{refined}=D^{fr^{\prime}}\times width(I_l)+min(D^{fr^{\prime}})\tag{4} Drefined?=Dfr′×width(Il?)+min(Dfr′)(4)
損失函數
L = ∑ i = 1 n ? 1 γ n ? i L 1 + L r e f i n e , w h e r e γ = 0.9. L 1 = ∣ ∣ d g t ? d i ∣ ∣ 1 L r e f i n e = ∣ ∣ d g t ? d r e f i n e d ∣ ∣ 1 (5) \begin{aligned} \text{L}& =\sum_{i=1}^{n-1}\gamma^{n-i}L_1+L_{refine},where\gamma=0.9. \\ L_{1}& =\left|\left|d_{gt}-d_i\right|\right|_1 \\ L_{refine}& =\left|\left|d_{gt}-d_{refined}\right|\right|_1 \end{aligned}\tag{5} LL1?Lrefine??=i=1∑n?1?γn?iL1?+Lrefine?,whereγ=0.9.=∣∣dgt??di?∣∣1?=∣∣dgt??drefined?∣∣1??(5)
實驗結果