高金金,李潞洋
1.山西財經大學 實驗中心,太原 030016
2.中北大學 大數據學院,太原 030051
隨著三維采集技術的不斷發(fā)展,物體的三維模型數據更容易被獲取。點云是一種常見的三維模型數據,其結構簡單,描述的形狀信息豐富,因此越來越多地被應用在自動駕駛、虛擬現實、機器人工程等領域。近年來深度學習在計算機視覺和自然語言處理方面取得了巨大成就,然而利用深度學習技術對三維點云數據進行分析還存在著諸多挑戰(zhàn)。
卷積神經網絡是深度學習研究領域中具有代表性的神經網絡之一[1],在圖像相關的領域中應用廣泛,因為其可以直接輸入原始圖像進行一系列工作[2-3]。然而點云是無序、稀疏且不均勻的,這使得將二維卷積簡單地進行維度擴展后直接應用在點云數據上是困難的。這是因為無法有效地在不同的局部空間定義提取相同特征的卷積核。一些先前的工作[4-10]對點云數據進行了轉換加工,將其轉換為規(guī)整數據結構,例如多個二維圖像或三維體素模型,以便于定義適當的卷積算子,但是數據的轉換與加工造成了大量的模型形狀細節(jié)損失。
KD-Net[11]為輸入點云構建KD-tree,然后從葉子到根進行分層特征提取。一些近期的工作將點云數據直接作為深度學習網絡的輸入。PointNet[12]是這類工作的基礎,它利用多層感知機(multi-layer perceptron,MLP)逐點進行特征變換,并利用對稱函數進行全局特征聚合,克服了點云的無序性。然而PointNet 與KD-Net 沒有考慮點云的局部特征。PointNet++[13]在PointNet的基礎上增加了逐層下采樣與局部區(qū)域特征聚合,構建了分層網絡模型,借此捕捉到一些局部特征信息。PointNet與PointNet++均是以逐點特征變換為基礎,未考慮周邊點產生的影響,無法全面捕捉形狀信息。顯然,點的特征不是孤立存在的,多個點的空間特征可以共同描述有意義的形狀。借助局部區(qū)域中點之間的相關性可以提高特征轉換的有效性,一些基于局部空間卷積的方法對此進行了探索,PointCNN[14]利用局部空間特征變換對局部區(qū)域的點進行了排序,A-CNN[15]將鄰域點投影在中心點的切平面上以便對局部點進行排序,這類方法為無序的點云提供了一種一致性的排列方法,但并不能徹底解決點云無序的問題。SPLATNet[16]通過稀疏雙邊卷積層計算虛擬網格節(jié)點特征并使用插值計算點云真實點的特征。PointConv[17]利用空間坐標直接擬合產生局部點對應的卷積權重,但是沒有參考局部區(qū)域的形狀特征,這使得卷積核對不同形狀的魯棒性差異較大。RS-CNN[18]在描述局部形狀特征時參考了鄰域點與中心點之間的多種形狀關系,這些方法對于局部區(qū)域形狀的描述局限于鄰域點與中心點之間的形狀特征關系,而丟棄了鄰域點之間的形狀特征依賴,這對于局部形狀特征描述是不充分的。這里認為,利用局部區(qū)域的形狀信息計算鄰域點的卷積權重依賴于對形狀的精確描述,而鄰域點之間的形狀依賴也是精確描述形狀信息的重要組成部分,應該加以參考。
除此之外,一些基于圖卷積網絡的方法被提出。PointGCN[19]與RGCNN[20]使用切比雪夫多項式構建圖卷積;EdgeConv(DGCNN)[21]依靠了鄰域點與中心點之間的向量關系計算局部特征,GAC-Net[22]利用局部中心點與鄰域點之間的注意力關系構建圖,HAPGN[23]使用門圖注意力網絡和分層圖池化來強化不同表示空間的特征與分層特征??偟膩碚f,圖卷積的方法更多關注三維模型表面節(jié)點信息而非空間特征,雖然會在分割模型中表現良好,但是分類模型的性能較差。
本文在此基礎之上,提出了一種更為全面的點云局部形狀描述方法,并定義了一種基于局部關系的點云卷積算子(local relation convolution,LRConv)。該方法通過鄰域內某一點與全部鄰域點之間的多種低維空間關系對該點的形狀特征進行描述,并應用MLP 學習到隱含的高維形狀特征,產生對應的卷積權重;卷積權重被用于對本層中局部區(qū)域輸入特征的抽象;最終將局部區(qū)域內全部點的抽象特征聚合為該局部區(qū)域的卷積輸出特征。由于LRConv 全面參考了局部點之間的低維空間關系,因此學習到的隱式形狀特征更加準確,由此生成的空間卷積權重充分反映了局部形狀特征,對各種形狀變換的感知也更為有效。對該卷積算子進行了一系列的實驗,以驗證其性能及其各部分的有效性。
本文的主要貢獻:
(1)提出了一種新的點云局部區(qū)域形狀描述方法,基于該方法定義了一種全新的點云空間卷積算子。
(2)基于本文提出的卷積算子,構建了用以點云分類與分割的網絡模型。
(3)進行了充分的實驗,驗證了本文提出的方法在點云分類與分割任務中的有效性、魯棒性;通過消融實驗驗證了卷積算子中各部分理論的有效性。
圖1 點云卷積的一般定義Fig.1 General definition of convolution on point cloud
在規(guī)整的數據結構中,不同的locali之間共享相同的Wi以維持卷積核提取特征的一致性。然而,點云是非規(guī)整的,Wi中的每一個元素在不同的locali之間無法做到與xj的一一對應,為了保證卷積核在空間特征提取上的一致性,同一個卷積核對應的Wi在不同locali不應一致,而是應該與該區(qū)域的形狀特征有關。
為此,探索了點云局部區(qū)域的形狀關系,并提出一種新的局部區(qū)域形狀描述方式,稱為局部關系(local relation),并以此定義了基于局部關系卷積(LRConv)的全新卷積算子。
假定reljk∈Rd,則P:Rd→Rin×out,對于全部n個點(包含xj自身)應用函數P,可以得到一組依賴于全部鄰域點形狀關系的權重組Wj∈Rn×in×out,如式(6)所示:
點xj的輸出特征由局部區(qū)內每一個點對xj的卷積特征
在點云深度學習模型中,函數P可以通過MLP逼近,伴隨著模型的訓練,可以得到有效的映射函數P。注意,函數P應當在reljk之間共享,以保證低階幾何特征向高階特征映射的一致性。同時,函數P應當在不同的局部區(qū)域之間共享,以保證不同區(qū)域間卷積核權重產生策略的一致性,進而保證不同局部區(qū)域之間特征提取策略的一致性。
通常,特征的維度會伴隨著深度學習模型層數的增加而大幅度上漲。在點云深度學習模型較深的卷積層中,往往會出現維度巨大的權重矩陣,例如Wi∈Rn×256×512??紤]到Wi并非直接定義并共享權重,而是通過共享映射函數P產生n個Wj后再由聚合函數生成,在這個過程中,會產生大量無法共享的Wj∈Rn×in×out,這些權重均需要同時被存儲于GPU的顯存之中,這使得模型的推理與訓練變得困難。在此對函數P進行等效改進,可以有效降低顯存使用量。
將函數P拆分為兩個維度映射函數的組合:
其中“·”為哈達瑪積,p:Rd→Rin,T:Rin→Rout。
如圖2 展示了LRConv 的張量流,它直觀顯示了式(12)的張量計算過程:在一個局部區(qū)域內,第j個點與第k個點的關系為式(3)中的reljk。映射p的權重在不同的reljk之間共享,以保證產生權重的策略的一致性,第n個點在第l層的特征輸入fln經過關系權重Wn變換后,使用函數α聚合該點特征;對局部區(qū)域內每一點進行上述操作(可利用向量化并行計算),可以得到每一點的輸出特征,并使用A對全部點的特征進行聚合,得到該區(qū)域的抽象特征;將聚合后的區(qū)域抽象特征輸入函數T,變換為維度為out的抽象特征輸出。
圖2 局部關系卷積的實現Fig.2 Implementation of LRConv
關于式(12)中卷積算子的直觀理解:在內部對flj進行特征變換、提取與融合的過程中,使用n×in維度的權重替代了大尺度的Wj∈Rn×in×out,同時特征變換的維度一直維持在一個較低的維度in,這使得卷積算子在每一層的內存占用約為式(9)的out-1倍。映射函數T能夠將提取到的低維特征向高維特征轉換,以維持卷積層的高特征輸出維度。在實現過程中,映射函數p與T均由MLP無限逼近,使得式(12)與式(11)等價。
分類網絡側重于點云模型的整體特征抽象。多層局部特征聚合架構有助于在整體特征中保留更多的局部細節(jié)特征。分類網絡的整體結構如圖3(a)所示,網絡的特征抽象部分由3 層LRConv 組成,每一層使用均勻采樣方法(如最遠點采樣)對上一層的輸出特征進行均勻采樣,并使用空間局部發(fā)現(如KNN、球形鄰域發(fā)現等方法)查找采樣點的局部鄰域。因此,LRConv的輸入分辨率會逐層減少。為了保證更少的點數能夠充分容納整體的特征,每一層的輸出通道數逐層增加。在特征抽象部分的最后一層,輸出一個分辨率為1,維度為1 024的特征,并將其輸入一個三層的全連接網絡,全連接網絡的每一層使用線性整流函數(rectified linear unit,ReLU)作為激活函數并進行批標準化(batch normalization),最后一層的輸出維度為類別數量,并使用Softmax函數激活。
圖3 基于LRConv的點云分類與分割網絡Fig.3 Point cloud classification and segmentation networks based on LRConv
分割是點云上的一類細粒度任務,網絡的輸出為點云中每一點的所屬部分的標簽。分割網絡的整體結構如圖3(b)所示。特征抽象部分與分類網絡相似,分層局部特征聚合并降低點云的分辨率??紤]到更深的網絡對分割性能是有益的,分割網絡中用以特征抽象的LRConv 增加至6 層。在分割網絡的后半部分,特征的分辨率需要逐層恢復,由于在點云的局部區(qū)域存在交叉,無法使用常規(guī)的特征廣播的方式來恢復分辨率。本文采用了空間中4 點按照距離進行線性插值的方法恢復特征的分辨率,并將插值后產生的特征與特征抽象階段對應的特征進行連接,并輸入共享的MLP 產生新的輸出特征。網絡輸出的點云分辨率與輸入分辨率相同,并逐點給出對應的標簽的概率。
進行了一系列實驗評估LRConv。分類準確率實驗用以評估模型的分類性能,隨機丟棄輸入點實驗用以評估模型的魯棒性,消融實驗用以評估LRConv結構中各部分的有效性。本章實驗全部使用PyTorch[24]實現,并在兩路NVIDIA TESLA V100 32G GPU上進行數據并行。
分類準確率是分類網絡的最重要指標,準確率直觀表現了分類性能。為了方便與最先進的方法進行對比,選用了廣泛應用于評估點云分類模型的ModelNet10和ModelNet40數據集。
ModelNet項目[5]提供了一套全面的3D CAD模型。ModelNet10 與ModelNet40 分別為ModelNet 的10 個 類別的子集與40 個類別的子集。ModelNet10 包含了10個類別共4 899 個CAD 三維模型,其中3 991 個模型用于訓練,908 個模型用于測試;ModelNet40 包含了40 個類別共12 311個CAD三維模型,其中9 843個模型用于訓練,2 468 個模型用于測試。使用的ModelNet 數據的格式為從CAD模型采樣至1 024個點的點云模型。
為了增強網絡對于模型旋轉與抖動的魯棒性,降低對原始訓練集的過擬合,參照文獻[12]的方式對訓練集模型進行數據增強:按Z軸隨機旋轉點云并添加高斯噪聲對點云進行小幅度隨機抖動。
訓練細節(jié):實驗構建的深度學習網絡由三層LRConv構成,每一層采用最遠點采樣(farthest point sampling,FPS)方法對點云進行均勻下采樣,采樣點數量分別為512、128與1;鄰域選擇方法為球形鄰域查詢,半徑分別為0.2、0.5 與0.8。每一層的輸出維度分別為64、256、1 024。全連接網絡每一層的維度分別為512、128 與類別數量。對稱函數的選擇均為通常在點云特征聚合中性能最優(yōu)的最大池化函數。在網絡中,所有的線性變換層均加入比例為0.3 的Dropout 以防止過擬合。損失函數為預測標簽與真實標簽的交叉熵損失,模型優(yōu)化器為AdamW,初始學習率為0.01,動量為0.9,學習率線性衰減:每20輪訓練,學習率降低50%。與先進方法的對比結果如表1所示。
表1 在ModelNet數據集上的模型分類結果Table 1 Model classification results on ModelNet dataset
實驗結果表明,提出的LRConv 模型在兩個數據集上的分類準確率均優(yōu)于目前的先進方法。在Model-Net40 上,相比基線方法PointNet++,LRConv 的準確率提升2.1個百分點,相比于動態(tài)局部構圖方法的EdgeConv也有0.6個百分點的提升,這是由于LRConv有著更強的局部形狀描述性能。相比于空間卷積方法PointConv,LRConv也有0.3個百分點的提升,這主要是由于LRConv的計算的卷積權重有著更多的形狀約束依賴,能夠產生更加有效的卷積核。
同時,為了評估模型的復雜程度,在表1 中提供了LRConv 與對比方法的參數量。LRConv 的參數量明顯少于對比實驗的其他模型,僅為基線方法PointNet++的61%。這是由于式(12)中LRConv的等價定義大幅度縮減了模型的體積,降低了內存消耗與參數總量,使得模型推理速度提升。由于可訓練的參數量的減少,模型的收斂難度也大幅度降低,模型在第150輪訓練后已趨近收斂,且在200輪附近完全收斂。網絡的收斂曲線如圖4所示。
圖4 分類模型的收斂曲線Fig.4 Convergence record of classification model
零件分割任務能夠驗證深度學習模型處理細粒度問題的性能。ShapeNet 數據集[25]包含16 881 個三維模型,被分為16個類別,由50個類別的零件組成。ShapeNet數據集給出了三維模型中每一個點歸屬的零件類別標簽。實驗結果提供了兩種指標,分別為類別與實例的平均重疊度(mean intersection over union,mIoU)。與3.1節(jié)相同,數據增強參照文獻[12]進行。
訓練細節(jié):實驗構建的零件分割深度學習網絡由6個卷積層與5 個反卷積層組成。卷積層為LRConv,每一層的采樣數分別為1 024、512、256、128、32 與1,局部查詢半徑分別為0.1、0.3、0.5、0.6、0.8與1,輸出通道數分別為128、256、512、512、512與1 024,在特征分辨率恢復部分,除最后一層外,每個MLP由二層1×1卷積實現,隱藏層通道數為64,輸出維度分別為256、128、128、128、128與128;最后一層的MLP由三層1×1卷積實現,通道數分別為128、64與零件類型數量。在網絡中,所有的線性變換層均加入比例為0.4 的Dropout 以防止過擬合。損失函數為模型內每一點的類別預測概率與真實標簽之間的交叉熵損失的均值,網絡的優(yōu)化器為AdamW,初始學習率為0.01,動量為0.9,學習率線性衰減:每30 輪訓練,學習率降低50%。模型經過240輪的訓練達到收斂狀態(tài),網絡的收斂曲線如圖5所示。與先進方法的對比結果如表2示。
實驗結果表明,由LRConv 構建的點云零件分割深度學習模型優(yōu)于目前的先進方法,尤其是在更能反映模型泛化能力的類別mIoU 指標中,領先基線方法Point-Net++高達1.5 個百分點,相比空間卷積方法PointConv也有0.6個百分點的領先。在具體類別細分中,LRConv在7 個類別上超越了先前的方法。ShapeNet 數據集上的分割性能實驗,主要指標是平均的實例mIoU,具體細分類別上的mIoU 僅作為參考指標。接近于最先進的(state-of-the-art)方法在主要指標上有所提升都是十分艱難的,而少量的平均實例mIoU的提升,未必會使得全部的類別mIoU提升,因此,雖然無法在全部類別完全超越先前的方法,但這依然充分驗證了LRConv在點云細粒度任務上特征抽象的有效性。
此外,隨機抽取了不同類別的部分模型在圖6展示分割的可視化效果,可以看出,LRConv的分割效果非常優(yōu)秀。
圖6 零件分割效果可視化Fig.6 Visualization of part segmentation effect
對采樣至1 024 個點的ModelNet40 模型隨機丟棄部分點,降低輸入點的數量,驗證LRConv 對殘缺點云模型的魯棒性。在隨機丟棄點后,殘缺模型的輸入點數分別為768、512、256、128與32。
與PointNet++和EdgeConv 的對比實驗結果如圖7所示,整體來說,LRConv的準確率要高于PointNet++與EdgeConv,且曲線下降更為平穩(wěn)。在隨機丟棄75%點后,LRConv依然有著較高的準確率,在隨機丟棄80%的輸入點后,準確率出現一定幅度的下降,但準確率依然超過85%,隨機丟棄的點數超過80%之后,點云模型已無法描述模型的局部細節(jié)形狀特征,模型形狀辨認已經非常困難,準確率低于75%。殘缺點實驗充分驗證了LRConv有著良好的魯棒性。
圖7 隨機丟棄部分點的準確率Fig.7 Accuracy of random dropout partial points
由于目前的深度學習研究還存在著很多不可解釋性,消融實驗對與理解模型的工作原理十分重要。進行了一系列消融實驗,以驗證第1 章中提到的LRConv 相關理論的有效性。
3.4.1 關系描述選擇
本小節(jié)實驗選取了點之間不同的關系描述方式對實驗結果的影響。這里認為,不同的關系描述方式對形狀的關系依賴準確程度有著較大的影響,除第1章中提到reljk之外,還選取了另外的3 種方式進行對比實驗,實驗結果如表3所示。
表3 關系描述對準確率的影響Table 3 Influence of relationship description on accuracy
實驗結果表明,選擇的reljk效果最好,而不同程度的描述缺失對模型的分類性能有著不同程度的不良影響。
3.4.2 非中心點的形狀依賴
本小節(jié)實驗對比了僅使用局部區(qū)域的中心點描述鄰域點的形狀關系,相比LRConv,對比實驗設置去掉了非中心點對點xj的形狀關系描述。實驗的結果如表4所示。
表4 非中心點的影響Table 4 Influence of non-centered points單位:%
實驗結果表明,去掉非中心點的形狀依賴,模型的分類準確性降低了0.3 個百分點,這驗證了非中心點的形狀依賴在LRConv中是有效的。
3.4.3 對稱聚合函數的選擇
本小節(jié)對聚合函數A與α,選擇了不同的對稱函數以驗證對稱函數選擇的影響。實驗結果如表5所示。
表5 聚合函數的選擇Table 5 Selection of aggregate function單位:%
實驗結果表明,無論對于A還是α,使用最大池化函數(maxpooling)聚合特征的模型性能都是最優(yōu)的,通過對比其他的對稱函數發(fā)現,對于單獨的A與α,選擇最大池化函數的性能也優(yōu)于其他對稱函數。
本文提出了一種有效描述局部區(qū)域形狀關系的方法,并由此定義了一種全新的用于點云深度學習分析的卷積算子。基于該算子,建立了點云分類與分割網絡模型。通過實驗表明,提出的局部關系卷積在三維點云模型的分類和分割任務上取得了良好的性能,驗證了該算子的有效性。這主要是由于LRConv 有更強的形狀關系描述性能,其權重有著更多的形狀約束,能夠產生更加有效的卷積核。未來,將探索該算子在點云其他任務上的應用,如場景分割、目標檢測等。