摘要:隨著深度學習的發展,計算機視覺和自然語言處理任務所使用的方法越來越相似,使用Transformer來完成視覺任務成為了一個新的研究方向。如何從單個圖像中恢復物體的三維信息是計算機視覺深入研究的一個系統問題。然而,傳統的三維重建算法在缺乏物體表面紋理的情況下重建效果較差。因此基于前人的研究,提出一種使用Transformer結構的多視圖三維重建方法,經過實驗測試后,證明Transformer應用于三維重建的有效性與可行性,并且有較好的重建效果。
關鍵詞:深度學習;三維重建;Transformer;多視圖
一、 前言
多視圖三維重建是一種從攝像機拍攝的一組多視點圖像中重建出三維模型的方法,是幾十年來計算機視覺領域廣泛研究的核心問題。傳統方法使用人工設計的相似性度量來計算密集對應和恢復3D點。雖然這些方法在圖像信息較強的場景下取得了很好的結果,但他們都有共同的局限性。例如,當場景是低紋理時,使得密集匹配難以實現,從而導致不完全重建。
近年來卷積神經網絡在二維圖像任務上的成功,激發了人們探索三維世界感知建模的興趣。越來越多的研究人員開始使用卷積神經網絡來進行三維重建的研究。而目前最為廣范的方法是yao等人[1]提出的MVSNet為每個視圖使用卷積神經網絡來進行特征提取,然后通過可微的單應性變換來將這些特征構造成代價體,然后再使用3D CNN網絡來對代價體進行處理輸出深度圖。
隨著現在Transformer模型在自然語言處理(NLP)領域發揮出了極強的作用[2],目前,越來越多的研究人員將Transformer模型的有效建模能力應用到計算機視覺中。2020年,研究人員首次在圖像分類任務上使用了Transformer,并且獲得了比卷積神經網絡更好的效果。此后,不少研究都開始嘗試將Transformer融入到不同的計算機視覺任務中。目前,Transformer已經在三大圖像問題上——分類、檢測和分割[3],都取得了比之前卷積神經網絡更好的效果。
因此,本文的貢獻總結如下:①在特征提取網絡使用深度可分離卷積的基礎上嵌入動態濾波器卷積,以加強模型的特征提取能力和減少模型的參數量。②在代價體正則化網絡使用Transformer模型作為編碼器,解決回歸出的深度圖不平滑的現象并證明應用Transformer在3D圖像任務上的可行性。
二、 相關工作
(一) 三維重建算法介紹
目前三維重建所采用的方法也非常多元化,我們根據原理將這些方法分為兩類:①基于傳統多視圖幾何的三維重建算法。②基于深度學習的三維重建算法。
傳統的三維重建算法根據其他傳感器是否向目標照射光源可分為主動和被動兩種。主動式,指傳感器主動向被測物體發送光信號,然后根據反射回的信號來恢復出物體在三維空間中的結構,常見的有:結構光、TOF 激光飛行時間和三角測距法[4]。被動式是直接根據物體的RGB圖像,并分析計算幾何原理獲得物體的三維信息。
在基于學習的三維重建人工智能算法研究中,多視圖三維重建(MVS)研究尤為廣泛。多視圖三維重建(MVS)的目標是用一系列標定后的圖像恢復密集的三維表現。
(二) MVSNet介紹與基本思想
MVSNet將一張參考圖像和多個源圖作為輸入作為輸入來預測參考圖像的深度圖,而不是整個3D場景。
MVSNet的第一步是將N張輸入圖片送入特征提取網絡獲得深度特征圖,這些特征圖用于后續的稠密匹配。2D卷積神經網絡的輸出為N個32通道的特征圖。與輸入的原圖大小相比,特征圖的寬高縮小了4倍。
接下來是基于提取的特征圖和相機參數構建3D代價體,這里是基于參考相機視錐體進行代價體的構建。此處為論文主要創新:提出了一個基于單應變換的2D到3D的轉換方法,并且在神經網絡中嵌入相機幾何。這一步主要是把其他圖像上的特征轉換到參考圖像的相機視錐中的256個深度平面上,總有一個深度是對應的。第i個特征轉換到參考圖像相機視錐的深度d平面的單應矩陣計算公式為:
其中ki是源圖像的內參矩陣,Ri是源圖像的外參矩陣。經過可微單應性變換的步驟后,得到N個特征體,每個特征體大小是:
就是之前特征提取模塊兩個步長為2的卷積層造成的縮放結果。D是深度采樣數,F是特征圖的通道數,就是32。接下來做的就是把N個特征圖合并成一個代價體,公式如下:
從圖像特征圖計算得到的初始代價體很有可能是包含噪聲的,為了預測深度圖還需要進行光滑處理。代價體經過一個四級的U-Net結構來生成一個概率體。概率體衡量的是圖像像素在不同的深度值下的可能性大小。在概率體生成之后,在深度這一維度上使用 softmax 操作進行概率值的歸一化。產生的概率體可以很好得用于深度值預測。最后在深度維度上計算期望,即將所有假設的深度值進行加權和:
其中P(d)為在深度值d處的所估計的概率值。該操作在文獻中被稱為soft argmin操作,該操作可微分并且能夠產生argmax操作的結果。在代價體構建的過程中深度假設值是在一定范圍內均勻采樣得到的,所以預測的深度值是連續的。輸出深度圖的尺寸與2D特征圖相同。
三、MVSNet算法改進
目前有兩種常用的代價體正則化成概率圖的方法,一種方法是使用MVSNet中的3DCNN結構,另一種方法是在R-MVSNet中的門控循環單元[5],相比于MVSNet降低了模型大小,但同時也損失了多尺度上下文信息的聚合特征信息。因此,在Transformer結構在CV領域大量應用的背景下,本文使用一種將Transformer作為編碼器的Encoder-Decoder結構來進行代價體正則化,經過實驗證明,這種Transformer結構回歸出來的深度圖比原方法更加完整。
在特征提取階段,將原本的卷積全部替換成深度可分離卷積,并且在每次進行降采樣操作之后,加入一層動態濾波卷積,以加強特征提取的能力。
在encoder階段,采用4層Transformer模塊,每個Transformer先將輸入的代價體通過3D卷積將其轉化成一維的序列,隨后將序列輸送到一層線性層中,并且給每個序列塊分配一個位置編碼,用以記錄每個序列的位置。在嵌入層之后,再將這些序列送入多頭自注意力(MSA)和多層感知器(MLP)模塊,MLP由具有GELU激活函數的兩個線性層組成,一個多頭自注意力模塊包括12個并行的自我注意力頭。
decoder階段,在Transformer最后一層的輸出處,將反卷積層應用于變換后的特征圖,以將其分辨率提高2倍。然后將調整大小后的特征圖與上一個Transformer的特征圖相加,將它們輸入到連續的3×3×3卷積層中,并使用反卷積層對輸出進行上采樣。對其他后續層重復此過程,直到達到原始輸入分辨率。
四、 DTU數據集
DTU數據集主要內容是室內場景的數據集,在三維重建領域有著廣泛的應用。它包含124個不同的場景,將相機環繞在場景周圍的49個位置進行拍攝,并且在每個場景都進行7種光照條件下的拍攝,這樣下來每張RGB圖像都有對應的相機參數和真實深度圖。因為如此的實驗設置,使得該數據集包含了多種多樣場景紋理,可以很好很好得覆蓋現實生活中的室內物品。同時數據集里還提供由專業掃描儀器獲取的點云圖[6]。
五、 實驗結果與分析
本文分別在公開數據集和真實數據上對所構建的基于深度學習的多視圖三維重建系統進行測試,并和先前的算法進行對比分析。實驗結果如下所述:
(一) 訓練策略
文中算法基于Pytorch深度學習框架實現。網絡輸入的視圖數選擇7張圖片,其中包含1張參考視圖和6張源視圖。訓練過程中的網絡優化器選用Adam,初始學習率為0.01,并且每訓練3輪學習率衰減0.9。實驗使用2張NVIDIA RTX 2080Ti 11G、操作系統為Ubuntu 18.04。圖片的大小為,設置深度采樣數D=192。總共進行12輪訓練。
(二) DTU數據集上的測試結果
在完成模型的訓練后,在DTU測試集上對模型進行測試,并使用scan1和scan4的深度圖進行融合,得到如下的點云對比圖:
從圖1可以看出MVSNet重建出來的點云有大量的空洞并且含有大量雜點,而本文優化過后的算法重建出來的效果雜點相對較少,并且能夠很好的恢復物體細微的表面紋理。
除此之外,本文使用DTU數據集提供的Matlab測試腳本計算重建出的三維點云的精度和完整度,來對算法整體的性能進行評價。因為指標計算的是點云間的距離,所以指標的值越小代表性能越好。結果見表2。通過對表格數據的分析可以發現,改進后的三維重建算法在精度和完整度上都較MVSNet和P-MVSNet[7]有了極大的提升,反映出了文中算法的有效性。
六、結語
本文聚焦于多視圖三維重建方法,在主流的MVSNet算法上進行改進,得到了更高的重建精度。在先前工作的基礎上,將代價體正則化網絡進行了替換,將Transformer模型與3D卷積進行結合,構成一個新型的U-Net結構。經過實驗證明,該模型能充分利用提取的特征來得到較好的重建表現,并且從指標上來看,也優于目前主流的網絡。但是使用Transformer模型同樣帶來了顯存消耗大這個問題,雖然目前有研究人員提出輕量化的Transformer模型,但是對于顯卡的消耗依然是巨大的。因此后續的算法優化,可以從輕量化模型入手,來構建更加高效的三維重建網絡。
參考文獻
[1]Yao Y, Luo Z, Li S, et al. Mvsnet: Depth inference for unstructured multi-view stereo[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 767-783.
[2]Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[J]. Advances in neural information processing systems, 2017, 30.
[3]Dosovitskiy A, Beyer L, Kolesnikov A, et al. An image is worth 16x16 words: Transformers for image recognition at scale[J]. arXiv preprint arXiv:2010.11929, 2020.
[4]陳秋敏.基于深度學習的多視圖物體三維重建研究[D].電子科技大學,2020.
[5]Yao Y, Luo Z, Li S, et al. Recurrent mvsnet for high-resolution multi-view stereo depth inference[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019: 5525-5534.
[6]Aan?s H, Jensen R R, Vogiatzis G, et al. Large-scale data for multiple-view stereopsis[J]. International Journal of Computer Vision, 2016, 120(2): 153-168.
[7]Luo K, Guan T, Ju L, et al. P-mvsnet: Learning patch-wise matching confidence aggregation for multi-view stereo[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019: 10452-10461.
(作者單位:安徽建筑大學)