王云艷,朱鎮(zhèn)中,熊 超
(1.湖北工業(yè)大學 電氣與電子工程學院,武漢 430068;2.襄陽湖北工業(yè)大學產業(yè)研究院,湖北 襄陽 441100)
多視圖立體匹配(MVS)是計算機視覺領域中一個重要的問題,其目的是在多張已知相機姿態(tài)和固有參數(shù)的圖像中,重建觀察場景或對象的高精度3D幾何模型。多視圖立體匹配在很多領域都具有非常廣泛的應用,如自動駕駛[1]、醫(yī)學圖像處理[2]、虛擬現(xiàn)實[3]、文化遺產保護[4]和衛(wèi)星空間成像[5]等方面,因此研究多視圖立體匹配問題具有重要的實際意義。
在多視圖立體匹配任務中,關鍵的問題就是如何找到相關圖像像素的對應點。在傳統(tǒng)的三維重建算法中,通過雙側光度一致性[6-7]來改善遮擋邊界的行為,或者利用空間一致性[8]約束來提取真實的深度,或者利用補償機制[9]對深度值進行優(yōu)化。上述方法在用朗伯曲面進行場景重建時,已經取得了很大的成功。傳統(tǒng)方法都是采用一些人為設定的規(guī)則來對深度值進行過濾和采集的,但是面對一些透明、反光的物體,效果就會特別不理想。隨著神經網絡的發(fā)展,人們提出了各種基于學習的重建方法,越來越多的學者將卷積神經網絡運用到MVS方法[10]中。李健等[11]在傳統(tǒng)方法中用卷積網絡進行改進,融入深度特征,提升場景重建的魯棒性。Ji等[12]提出了基于體素的SurfaceNet,將整個空間分解成立方體,并以立方體為單位對曲面進行回歸。這些方法都是利用卷積神經網絡結合全局語義信息來實現(xiàn)重建的,基于學習的方法能學習場景的全局語義信息,包括物體材料、鏡面、三維幾何先驗和環(huán)境照明,可獲得更完整的重建。隨后Yao等[13]提出的MVSNet采用一種端到端的訓練策略,將代價體用于3DCNN正則化進而深度回歸形成深度圖。Point-MVSNet[14]中采用直接基于點的匹配代價體的方法。R-MVSNet使用循環(huán)神經網絡來聚合代價體上下文信息。但是無論是基于學習的傳統(tǒng)方法改進還是基于學習的重建方法往往都存在一些問題,在一些網絡中,只有高層次特征被用于深度估計,所學的模型缺乏空間信息,這可能會降低物體的重建精度,而且大多數(shù)的MVS方法都是利用3DCNN來預測深度圖或體素占有率的。但其占用的內存消耗隨圖片分辨率的增長呈立方體的增加,由此無法進行高分辨率圖像的重建工作。在代價體的學習中未考慮通道之間的相關性,不利于網絡完整學習到更加豐富的特征,重建的效果仍然有很大的上升空間。
為了解決上述問題,設計了一種基于路徑聚合(PA)的特征提取模塊和基于改進SE的代價體正則化過程的級聯(lián)網絡PAA-MVSNet,采用端到端深度估計網絡框架CasMVSNet[15]為基準網絡。具體來說,借助PANet[16]的思想,引入深淺層特征聚合的特征提取模塊,可在不同尺度上進行特征提取,更有效地提取圖像的多尺度特征。自下而上的多尺度融合方式,利用準確的低層定位信號增強整個特征層次,從而縮短了低層與頂層特征之間的信息路徑。引入了YOLO網絡中的C3塊和SPP模塊,在保證速度的前提下,提高了重建精度??紤]到通道之間具有關聯(lián)性,讓網絡學習到通道之間的交叉特征,在正則化模塊中每兩個相同的代價體之間插入一個改進的SE注意力模塊,通過自適應學習通道注意力機制,強化重要的通道特征,將不重要的特征弱化,提升深度估計的準確率,以達到改善重建的效果。秉持由粗到精的思想,通過3個階段來生成估計深度圖。在第一階段中從數(shù)據(jù)集中獲取像素的深度范圍,用低尺度特征投影到空間形成代價體,再經過注意力機制特征加強的正則化網絡預測一個粗糙的深度圖,然后通過第一階段預測的深度值來縮小深度范圍。以此類推,隨著分辨率和深度間隔的自適應調整,最終輸出高分辨率深度圖。與現(xiàn)有的方法相比,重建場景的精度和完整性得到了很大的提升。
傳統(tǒng)的MVS方法主要采用光度一致性來推斷物體的幾何結構,但是在一些無紋理、反光區(qū)域表現(xiàn)不太理想。為了解決這一難題,許多基于學習的MVS算法應運而生。Yao等[13]構建的MVSNet模型取得了令人印象深刻的效果,通過對圖像進行特征提取,然后投影到空間中構建代價體,再經過正則化和深度圖優(yōu)化得到深度圖,融合多個視圖的估計深度圖來構建3D模型。該算法的內存需求與輸入圖像分辨率成立方比,雖然取得較理想的效果,但是昂貴的計算成本讓很多人望而卻步。而且該模型也不能利用高分辨率圖像上的所有特征信息。為了實現(xiàn)高分辨率圖像重建,后人在減少計算資源和提高特征提取效果方面做了很多工作。Yao等[17]提出了利用GRU單元對代價體進行有序正則化,減少了內存需求,但增加了運行時間。Cvp-MVSNet[18]和Cas-MVSNet構建了金字塔結構,采用級聯(lián)網絡來由粗到精的三段式生成深度圖,通過自適應深度調整,不僅減少了內存消耗,而且在精確度和完整性上也取得了一定的提高。Fast-MVSNet[19]通過構建一個稀疏代價體來學習稀疏的高分辨率深度圖,利用小尺度卷積對局部區(qū)域像素的深度依賴進行編碼來密化稀疏的深度圖,也一定程度上減少了內存占用,但是重建的精度并不太理想。楊碩等[20]將BN層轉換成Inplace-ABN層,節(jié)省大量的內存消耗,再利用改進的GRU模塊構建正則化模塊實現(xiàn)信息的重建與更新,最后使用L-M層實現(xiàn)細化,但還是存在一些信息的缺失,因為將原始圖像采樣為不同分辨率的圖像,會導致信息的丟失,影響最后的準確性。劉萬軍等[21]采用了雙U-Net結構來獲得更加完整和準確的特征信息,再通過代價體分層融合結構來使每級代價體之間實現(xiàn)信息互通,從而提高重建精度。隨著注意力機制的廣泛應用,將注意力模塊應用到重建網絡中也取得了不錯的效果。劉會杰等[22]在每一級特征提取中均加入注意力層,以捕獲深度推理任務的遠程依賴關系。謝琪琦等[23]將注意力引入代價體正則化中也取得了較好的效果。受上述研究的啟發(fā),設計了一個基于路徑聚合的帶有空間金字塔池化的特征提取網絡,并在正則化模塊之間添加了一個自適應通道注意力模塊,以保存較多的信息特征,從而更好地重建深度圖。
PANet(path aggregation network)是一種用于目標檢測的神經網絡架構,它是由JiFeng Dai等在2018年提出的,意為路徑聚合網絡。它的主要目的是解決目標檢測任務中多尺度物體檢測問題。在傳統(tǒng)的檢測方法中,需使用多個不同的尺度特征圖進行檢測,導致了模型計算量大、速度慢、結構復雜等問題。而PANet通過特定的結構來實現(xiàn)多尺度特征圖的融合,將不同尺度的特征圖分別傳遞到不同的路徑,然后逐級聚合將它們融合在一起。這種方法可使得模型具有多尺度的感受野,從而檢測不同大小的物體。PANet是一種優(yōu)秀的目標檢測模型。
注意力機制是一種模擬人類認知機制的方法,已廣泛應用于自然語言處理[24]、計算機視覺等領域。SE(squeeze and excitation)模塊[25]是一種用于卷積網絡表達增強的技術,可在不增加網絡復雜度的情況下提高網絡的性能。它先通過壓縮操作,即全局池化操作來提取每個通道特征圖的全局統(tǒng)計信息,再通過激勵操作自適應地調整每個通道的權重,以增強網絡對于特征的表達能力。同時,SE模塊很容易集成到現(xiàn)有的網絡結構中。
構建的PAA-MVSNet網絡模型架構如圖1所示。基于PANet的思想設計特征金字塔結構,將高級特征與低級特征進行路徑聚合操作,使得模型具有多尺度的感受野,隨后提取了3種不同尺度的特征構成級聯(lián)網絡。然后將低分辨率的特征投影到假設平面上,考慮通道之間的關聯(lián)性,在代價體網絡結構中加入自適應通道注意力,從而得到更為準確的概率體來預測深度圖。再將得到的低分辨率深度圖進行上采樣操作,以用于下一階段的深度圖的構建。
圖1 構建的PAA-MVSNet網絡模型架構
與之前的工作類似,輸入N張圖像,一張為參考圖像,其余N-1張為源圖像。為了解決不同尺度下特征之間關聯(lián)性差的問題,設計一種多級網絡模型,如圖2所示。隨著網絡的加深,圖像的分辨率也進行了相應的縮小和放大??紤]到網絡越深,丟失的信息越多,所提網絡使用了很多跳躍連接,將每次上采樣的結果與前面相同尺寸的特征相結合,實現(xiàn)高、低級特征聚合,更能準確地提取圖像的特征。
在所提網絡中,對于所有輸入尺寸為640×512的RGB圖像,首先通過卷積將原始圖的通道數(shù)轉換為8通道,再經過1個C3塊,C3塊由1個1×1的卷積和2個3×3的卷積組成,每個卷積之間都有1個批量歸一化和激活函數(shù)。1×1的卷積用于降低通道數(shù),減少計算量;而3×3卷積層用于提取特征和降低圖像分辨率。C3塊使用了多層卷積層,可在不增加圖像分辨率的情況下增加感受野,從而提高特征提取能力。重復2次以上操作,生成32通道的特征圖,分辨率降低為原來的1/16。再經過SPP(空間金字塔池化模塊),獲取由卷積層生成的特征圖,并在多個尺度上對其進行池化,從而使模型能捕捉不同級別的對象信息,從而可提高其整體精度。如此,得到了原始圖像大小的1、1/4、1/16的特征映射,分別對應的是8、16、32通道數(shù)。然后經過上采樣操作,逐步恢復特征分辨率,將相同尺寸的特征層結合,形成比較厚的特征,繼續(xù)C3塊的操作,輸出3個尺度的特征層。這樣自上而下和自下而上的結構相結合地提取模塊可保留豐富的細節(jié)特征,利用concat操作可更好地恢復一些丟失信息,從而使后續(xù)的深度估計任務結果更加準確和完整。
與以前許多MVS網絡一樣,運用單應性變換將先前提取的特征映射到每個深度上構建3D成本代價體,此操作將所有特征圖扭曲到參考相機視錐體中的不同正交平面上,類似于經典的平面掃描立體視覺,并且深度范圍通常是根據(jù)稀疏重建確定的。變換是由單應性矩陣定義的:
(1)
式中:Hi(d)為第i個特征圖與深度d處參考特征圖之間的單應性變換;Ki、Ri、ti為相機的內參、外參和平移;n0為參考相機的主軸。然后使用可微分單應性變換將2D特征圖變形為參考相機的假設平面,形成特征體。為了將多個特征體融合,采用基于方差的成本度量方法,以適應任意數(shù)量N的輸入特征:
(2)
考慮到SE模塊的靈活性和高效性,將該模塊引入代價體正則化網絡結構中。代價體正則化的功能是對代價體進行平滑處理,以減小代價體中噪聲和異常值。將注意力機制整合到正則化步驟中可幫助集中注意力于代價體的重要區(qū)域,忽略不重要特征或者噪聲信息。設計了一個SE+模塊,并引入正則化模塊中,如圖3所示。在原始的SE模塊中,通過Squeeze、Excitation和Reweight操作可實現(xiàn)為每個通道分配權重,但該權重僅考慮單個通道的信息,沒有考慮任意2個通道之間的關系。為此,研究SE+模塊來綜合考慮每個通道之間的相互關系后再為特征圖分配權重,在此基礎上將殘差思想引入SE+模塊。給定一個特征圖Fe,整個過程可定義為:
圖3 基于SE+的代價體正則化模塊
Oe=Sigmoid(Linear(Sum(GAP(Fe)?
GAP(Fe)T))+GAP(Fe))⊙Fe
(3)
其中,GAP表示全局平均池化操作,Sum表示將所有行添加到第一行。在反饋入線性層之前,所提出的方法獲得了注意力圖M。M中的每個元素都是2個通道的全局平均池化的乘積,如A21表示第2個通道和第1個通道的乘積。通過Sum運算,每個通道都能感知所有通道的信息。
本文構建了3層級聯(lián)結構,并關注每一級的損失,總損失定義如下:
(4)
式中:Lk為第k階段的損失;λk為對應的損失權重,與CasMVSNet相同,損失權重分別設置為0.5、1和2。
所提模型在DTU數(shù)據(jù)集上進行訓練。DTU是1個大型數(shù)據(jù)集,包含受控實驗室環(huán)境中的128個場景,其模型使用結構光掃描儀捕獲信息。在7種不同的照明條件下,在相同的49或64個相機位置掃描每個場景,生成分辨率為1 200×1 600像素的RGB圖像。由于數(shù)據(jù)集涵蓋了各種對象和材料,因此非常適合在現(xiàn)實條件下訓練和測試深度學習MVS方法。為了證明網絡的擴展性,在Tanks and Temples數(shù)據(jù)集上直接進行測試。與實驗室設置良好的DTU數(shù)據(jù)集不同,Tanks and Temples數(shù)據(jù)集包含真實的戶外場景,但室外一些不可抗因素,導致該數(shù)據(jù)集比DTU數(shù)據(jù)集復雜得多。該數(shù)據(jù)集由8個不同的場景組成,用于驗證所提模型的泛化能力。
所提模型初始圖像的分辨率大小為640×512,該網絡由粗到精分為3個階段,深度假設層數(shù)為48、32、8,3個尺度下的特征圖分辨率逐漸增加,分別為原始輸入圖像大小的1/16、1/4和1。實驗遵循與MVSNet相同的輸入視圖選擇和數(shù)據(jù)預處理策略,使用Adam優(yōu)化器,其中β1為0.9,β2=0.999。初始學習率設置為0.001,在10、12和14個時期后,學習率減半。該模型在batchsize設為1的單個NVIDIA3060顯卡上進行訓練。
為了證明所提模型的有效性,通過DTU數(shù)據(jù)集提供的Matlab代碼來計算重建模型的準確性(accuracy,Acc)誤差、完整性(completeness,Comp)誤差和整體性(Overall)誤差,其中Overall是Acc和Comp的總和平均值。這3個指標越低表示重建效果越好。DTU評估集定量結果如表1所示。
表1 DTU數(shù)據(jù)集上的定量評估結果 mm
由表1可看出,相比于CasMVSNet,所提模型在Acc上降低5%,Comp上降低1.04%,與其他模型相比,Acc和Comp排名也比較靠前,由此證明了所提模型改進的有效性。
在生成點云質量方面,選用了CasMVSNet、EPPMVSNet[26]、PAA-MVSNet和Gound Truth進行細節(jié)對比,選用scan10和scan62兩個場景。3種模型的點云效果圖如圖4所示??梢钥闯?CasMVSNet和EPPMVSNet所生成的點云均有不同層次的缺失,而所提方法相較于上述方法,消除了很多噪音的影響,更加專注于物體自身的重建。同時,框內重建模型的細節(jié)表現(xiàn)地更好,完整性也得到了較好的改善。
圖4 scan10和scan62可視化對比
為了進一步的驗證所提計模型的可擴展性,使用在DTU數(shù)據(jù)集上訓練的模型在Tanks and Temples數(shù)據(jù)集上重建點云,輸入圖像大小為1 920×1 080,視圖數(shù)N為7,使用F-scoce作為評估指標,以衡量重建的性能。隨后將所提方法與目前主流的方法進行比較,定量結果如表2所示。
表2 Tanks and Temples數(shù)據(jù)集定量結果
從表2可以看出,所提模型在大部分場景都取得了不錯的結果,各種指標結果均靠前,這充分證實了所提方法的泛化性。重建可視化圖如圖5所示。可看出,產生的點云效果良好,并在視覺上得到了吸引人的效果。
為了進一步驗證設計模塊的有效性,進行了消融實驗和定量分析,以評估設計模型中每個部分對最終重建質量的影響。針對提出的基于路徑聚合的特征提取網絡和代價體注意力模塊2種改進,在DTU數(shù)據(jù)集上進行了4組對比實驗。由于研究是針對CasMVSNet的改進,因此實驗包含CasMVSNet、CasMVSNet+PA特征提取模塊、CasMVSNet+代價體注意力模塊和最終版模型,并使用準確性和完整性結果衡量重建質量。
表3展示了實驗結果。可看出,在準確性和完整性方面,所提出的2種改進都對結果有相應提升,因此所提模型設計是有意義的。消融深度估計圖如圖6所示。對每個實驗估計的深度圖進行對比,可見在添加了改進模塊后,相較于原方法及添加單個改進方法,所提方法在消除周邊噪聲起到了良好的作用,重建物體邊緣的平滑度也有所提升。
表3 消融評價指標的實驗結果
圖6 消融深度估計圖
提出了一種基于路徑聚合(PA)的特征提取模塊和基于SE+的代價體正則化網絡方法,通過改進CasMVSNet的特征提取模塊和代價體正則化模塊對物體進行3D重建工作。借鑒了PANet提出的路徑聚合的思想和YOLOv5中的空間池化模塊,同時考慮到通道之間的相關性,在代價體正則化中加入改進的SE+模塊,較全面地學習特征,專注于學習重要信息進行深度推理,從而捕獲優(yōu)質特征用于重建工作。實驗證明,改進的網絡明顯提升了原網絡CasMVSNet的精度,但是研究專注于提高模型改進后的精度,以內存消耗和運行時間為代價,不管是特征提取網絡還是正則化板塊,都相應地增加了模型的訓練時間,因此在保持相同精度的同時有效減少內存消耗和運行時間成為后續(xù)工作的主要目標。