雷懂 宋俊鋒 葉振
摘?要:
隱式神經網絡用于三維表面重建時,存在重建物體的結構不準確、表面缺乏局部細節等問題,針對此問題,文章提出了一種基于PRPNet(點云殘差編碼網絡)的三維表面重建方法。首先采用更深的網絡結構且加入殘差模塊挖掘點云潛在的結構信息,加入PointMateBase模塊,以增強局部細節表示能力;其次使用特征權重網絡獲取查詢點的占用概率;最后通過區域增長的Marching?Cubes算法提取三維表面。實驗結果表明,PRPNet模型在ShapetNet和Synthetic?Rooms數據集上的精度較DpConvONet模型相應數據集上的精度分別提升了2.5百分點和2.6百分點,能夠有效提升三維表面重建性能。
關鍵詞:三維表面重建;隱式神經網絡;點云;殘差模塊;PointMateBase模塊;特征權重網絡;Marching?Cubes算法
中圖分類號:TP391.41??文獻標志碼:A
0?引言(Introduction)
三維重建是指從物體的二維圖像序列或三維點云,通過視覺算法恢復真實世界的三維場景結構,在醫學成像[1]、自動駕駛[2]和虛擬現實[3]等領域都有著廣泛的應用。近年來,基于隱式神經網絡的三維表面重建方法因具有計算簡單、內存消耗少等優點而受到了廣泛關注。韓煌達等[4]提出了一種紋理推斷模型,該方法能夠重建接近真實紋理的三維表面,但是采樣方式復雜。CHABRA等[5]將點云劃分為多個局部體積塊后進行編碼,可以提高重建精度,但是該方法無法提供全局特征約束。ERLER等[6]分別采樣局部點和全局點進行特征提取以提高重建質量,但是該方法重建三維表面的速度較慢。GROPP等[7]提出了一種隱式幾何正則化方法,讓重建的三維表面更加平滑,但是丟失了局部細節。
綜上,本文提出一種基于PRPNet的三維表面重建方法。首先采用更深的網絡結構且加入殘差模塊挖掘點云潛在的結構信息,同時加入PointMateBase模塊,以增強局部細節表示能力;其次利用特征權重網絡獲取查詢點的占用概率;最后通過區域增長的Marching?Cubes算法[8]提取三維表面。實驗結果表明,該方法在ShapeNet和Synthetic?Rooms數據集上能夠提升三維表面重建模型性能。
1?方法設計(Method?design)
本文基于隱式占用域實現三維表面重建,其隱式函數表達式如下:
其中:[WTHX]p[WTBX]i表示輸入點云;[WTHX]θ[WTBX]表示隱式函數的矩陣參數;oi表示點云在三維空間中的占用概率;F表示多層感知機。
本文提出的基于PRPNet三維表面重建方法的整體網絡結構如圖1所示。首先將預處理點云數據輸入由PRP?Abstraction模塊和Feature?Propagation模塊構成的特征提取網絡中獲取點云特征;其次將鄰域特征與歸一化相對坐標經過多層感知機融合獲得相對特征后,利用特征權重網絡獲取查詢點的占用概率;最后通過區域生長的Marching?Cubes算法提取連續的三維表面。
1.1?點云特征提取網絡
點云是表示三維對象的點集,每個點包含坐標、法向量等信息,具有稀疏性、非結構化、無序性等特性。可采用PointNet+[KG-*5]+等深度學習模型提取點云的空間結構特征。由于PointNet+[KG-*5]+是一個較小的網絡,其編碼器僅包含2個分類架構階段和4個分割架構階段,每個階段僅包含一個Set?Abstraction模塊,因此提取的點云特征過于簡單,導致三維表面重建精度較低。為此,本文基于分層抽取特征思想,采用更深層次的網絡結構挖掘更多潛在的點云結構特征,同時在每個階段的PointBase模塊之后添加殘差模塊防止梯度消失。
為更好地對點云進行分析,LIN等[9]提出了PointMate元架構,如圖2(a)所示,該結構主要包含鄰域更新模塊、位置編碼模塊、鄰域聚合模塊及點更新模塊,其實現流程如下:
其中:n表示鄰域更新函數;e表示位置編碼函數;a表示鄰域聚合函數;p[KG-1mm]表示點更新函數;[SX(B-*2]。[][SX)]表示函數的復合;N(i)表示采樣點i的鄰域點云;[WTHX]f[WTBX]i[KG-1mm]表示采樣點特征向量;[WTHX]p[WTBX]i表示采樣點坐標向量;[WTHX]f[WTBX]N(i)表示采樣點鄰域特征向量;[WTHX]p[WTBX]N(i)表示采樣點鄰域坐標向量。本文通過對PointMate元架構進行分析,將其實例化為PointMateBase模塊,如圖2(b)所示。其中,將鄰域更新模塊位于K最近鄰分組前可帶來效率增益;位置編碼模塊采用Point?Transformer[10]中的顯式位置編碼實現,該編碼方式可以解決鄰域特征向量與相對位置向量維度不匹配的問題;鄰域聚合模塊采用最大池化實現,使模型輕量化;點更新模塊采用多層感知機實現。本文將PointMateBase模塊用于殘差模塊,以增強局部細節表示能力,并進一步提升點云特征提取網絡的性能。
本文設計的PRPNet點云特征提取網絡結構如圖3所示,該網絡由PRP?Abstraction模塊和Feature?Propagation模塊構成,其中PRP?Abstraction模塊由PointBase模塊、Residual模塊和PointMateBase模塊構成,Feature?Propagation模塊由插值、特征拼接和多層感知機構成。
1.2?特征解碼網絡
針對點云特征提取網絡獲得的點云特征向量,需要通過特征解碼網絡得到查詢點在空間中的占用概率。由于點云具有非結構化特性,查詢點[WTHX]q[WTBZ]的特征與其鄰域有緊密關聯,因此本文聚焦于其鄰域特征與相對位置特征,通過特征權重網絡進行推斷,特征解碼網絡結構如圖4所示。
1.3?三維表面提取
在得到查詢點在三維空間中的占用概率后,由于不能直接觀察到隱式三維結構的表面,因此通常采用Marching?Cubes算法提取連續的三維表面進行可視化。該方法首先根據設置的體素分辨率將三維空間劃分為等大小體素單元。其次計算體素單元每個頂點的占用概率,并將概率大于閾值的頂點標記為占用狀態,反之標記為空閑狀態。假設占用概率是連續變化的,當一條邊的兩個頂點表示的狀態不同時,則認為這條邊與重建表面存在一個交點。最后采用插值算法得到該點的坐標信息,將所有交點相連生成重建的三維表面。
本文采用基于區域生長的Marching?Cubes算法進一步提高重建精度。為清晰地觀察重建表面的細節,同時不增加計算成本,本文將體素分辨率設置為128×128×128,然后從輸入點云中點的體素開始,迭代添加符合占用條件的相鄰體素,直到形成完整的區域。
2?[JP5]實驗結果與分析(Experimental?results?and?analysis)
2.1?數據集及預處理
ShapeNet數據集是由人工進行標注的大型三維模型庫,本文從該數據集選取飛機、板凳、柜子、汽車、椅子、顯示器、臺燈、揚聲器、步槍、沙發、桌子、電話和輪船共13類物體進行實驗,共包含42?500個模型。Synthetic?Rooms數據集包含5?000個合成的三維場景,涵蓋客廳、辦公室等場景。
在數據預處理階段,本文采用與ConvONet等相同的策略對ShapeNet數據集和Synthetic?Rooms數據集進行預處理。對于ShapeNet數據集,從每個類別的物體表面隨機采樣3?000個點作為輸入,并對輸入的點云數據進行均值為0、標準差為0.005的高斯加噪處理。同時,隨機選取2?048個帶有占用率標簽的查詢點,用于訓練網絡預測其在空間的占用率;對于Synthetic?Rooms數據集,將隨機采樣點數增加到10?000個,將數據集劃分為80%的訓練集、10%的測試集和10%的驗證集。
2.2?評價指標
為了定量評價本文算法的有效性,對于ShapeNet數據集和Synthetic?Rooms數據集,本文均采用交并比(IoU)、倒角距離(Chamfer?Distance,CD)、法線一致性(Normal?Consistency,NC)、F分數(FS)4個指標評估模型的重建性能。
交并比(IoU):評估重建表面與真實表面之間的重疊程度,計算公式如下:
2.3?實驗參數
實驗環境如下:服務器操作系統為Ubuntu?20.04,Python版本為3.7.10,使用的深度學習框架為PyTorch?1.8.1,顯卡為Nvidia?GeForce?GTX?4070Ti。實驗損失函數為二元交叉熵損失函數,BatchSize大小設置為16,學習率設置為0.001,Adam算法為模型參數優化器,在全連接層后采用Dropout(設置為0.5),訓練周期為100次,當驗證集損失值不再下降時,停止訓練,防止發生過擬合。
2.4?特征提取網絡對比實驗
為證明本文提出的點云特征提取網絡PRPNet對三維表面重建的有效性,本文將ConvONet模型中的點云特征提取網絡PointNet分別替換為PointNet+[KG-*5]+、ASSANet、PointNeXt和PRPNet,并在ShapeNet數據集上進行消融實驗。不同特征提取網絡下的三維表面重建性能如表1所示。表1中的結果表明,PRPNet應用在ConvONet模型中均優于其他點云特征提取網絡,其中與PointNet相比,PRPNet在交并比、倒角距離、法線一致性以及F分數上分別提升了2.5百分點、0.6百分點、0.6百分點和2.1百分點,表明本文提出的PRPNet能夠有效改善表面重建效果。
2.5?模型實驗結果
為驗證本文模型應用在隱式三維表面重建中的優勢,在相同的實驗條件和數據集下,將本文模型與主流的隱式三維表面重建模型PointConv、ONet、ConvONet和DpConvONet進行對比。首先采用交并比、倒角距離、法線一致性和F分數4個評價指標進行定量分析;其次根據重建物體的視覺效果定性分析模型的性能優劣。
2.5.1?ShapeNet數據集三維表面重建實驗
定量分析:ShapeNet數據集三維表面重建結果如表2所示。其中,本文模型在交并比、倒角距離、法線一致性和F分數指標上均明顯優于對比模型,表明本文方法重建的三維物體表面與真實表面之間的差距更小,重建質量更好。
定性分析:ShapeNet數據集重建出的三維表面如圖5所示,由視覺效果可以看出,PRPNet模型生成的重建結果更加接近真實表面,而DpConvONet無法重建出結構完整的三維表面,這也進一步表明本文提出的基于PRPNet的三維表面重建方法在三維物體表面的重建任務中,重建精度更高,模型整體性能更好。
2.5.2?Synthetic?Rooms數據集三維表面重建實驗
定量分析:Synthetic?Rooms數據集三維表面重建結果如表3所示。結果表明,本文模型的交并比、法線一致性和F分數在所有模型中均是最高的且倒角距離最低,表明本文模型應用在三維場景表面的重建任務中,性能更好。
定性分析:Synthetic?Rooms數據集重建出的三維表面如圖6所示。由可視化結果可以看出,相比于ConvONet和DpConvONet模型,PRPNet模型取得了最好的重建效果,重建出更為細致的表面。這是由于本文設計的PRPNet模型在點云特征提取時能夠更多地提取到語義信息,更充分地理解周圍環境,從而在三維場景表面重建中獲得不錯的視覺效果。
3?結論(Conclusion)
針對隱式神經網絡用于三維表面重建時,存在重建物體的結構不準確、表面缺乏局部細節等問題,提出了一種基于PRPNet的三維表面重建方法。該方法首先采用更深的網絡結構且加入了殘差模塊挖掘點云潛在的結構信息,同時加入PointMateBase模塊,以增強細節表示能力。其次利用特征權重網絡通過鄰域特征進行推斷查詢點的占用概率。最后通過區域增長的Marching?Cubes算法進一步提升重建精度。實驗結果表明,PRPNet模型在ShapeNet和Synthetic?Rooms數據集上的重建精度較主流模型分別提升了2.5百分點和2.6百分點,能夠有效地提升三維表面重建模型性能。由于缺失點云會嚴重影響重建表面的質量,后續將致力于研究使用更少的點云數據重建更高質量的表面,進一步提升三維表面重建模型的性能。
參考文獻(References)
[1]?李瑋琳,曾琪峰,李穎.?多模態醫學圖像外邊界點云數據實時配準仿真[J].?計算機仿真,2019,36(3):248\|251,417.
[2]?茍悅宬,鄧志堅,黃成梁,等.?基于無人駕駛的點云數據處理與校園高精度地圖應用[J].?數字技術與應用,2021,39(12):29\|32.
[3]?王瑜,曹大有.?虛擬現實場景圖像點云大數據展示仿真[J].?計算機仿真,2023,40(3):228\|231,353.
[4]?韓煌達,張海翔,馬漢杰,等.?基于隱函數的三維紋理網格重建[J].?計算機時代,2021(12):1\|5,9.
[5]?CHABRA?R,LENSSEN?J?E,ILG?E,et?al.?Deep?local?shapes:learning?local?sdf?priors?for?detailed?3D?reconstruction[C]∥MORTENSEN?E.?Proceeding?of?the?European?Conference?on?Computer?Vision.?Berlin:Springer,2020:608\|625.
[6]?ERLER?P,?GUERRERO?P,?OHRHALLINGER?S,?et?al.?Points2Surf:Learning?implicit?surfaces?from?point?cloud?patches[DB/OL].?(2020\|07\|20)?[2023\|10\|31].?https:∥arxiv.org/abs/2007.10453.
[7]?GROPP?A,YARIV?L,HAIM?N,et?al.?Implicit?geometric?regularization?for?learning?shapes[C]∥KORNBLITH?S.?Proceeding?of?the?International?Conference?on?Machine?Learning.?Diego:ACM,2020:2640\|2654.