劉賢穎,吳秋遐*,康文雄,李玉瓊
(1.華南理工大學 軟件學院,廣東 廣州 510006;2.華南理工大學 自動化科學與工程學院,廣東 廣州 510641;3.中國科學院 力學研究所,北京 100190)
隨著三維掃描技術的不斷發(fā)展與快速普及,人們可以實現對真實物體表面進行點采樣,這些采樣數據稱為三維點云。點云包含物體的坐標,法向量等基本信息,具有較高的靈活性和適用性,在建筑、機械、自動駕駛[1]等領域中有著重要的應用價值。近年來,借助廣泛的監(jiān)督信息,深度學習在點云分類、分割、目標檢測等任務中取得了顯著的成果[2-7]。然而,監(jiān)督學習需要大量的人工標注來獲取監(jiān)督信息,同時限制模型的泛化能力。因此,無監(jiān)督學習是獲得通用點云表征的一個有吸引力的方向。另外,在現實工程應用中,點云不可避免發(fā)生旋轉變換,呈現出任意的空間位置和姿態(tài),導致模型性能急劇下降。因此,從未標注的數據中學習旋轉魯棒的通用點云表征是一個艱巨的挑戰(zhàn)。
在深度學習中,自動編碼器(Auto-encoder)是無監(jiān)督學習點云表征的重要架構。現有的一些研究工作[8-14]在編解碼器的結構上進行無監(jiān)督的點云表征學習。典型的方法是將三維重建作為輔助任務,使用自動編碼器將點云編碼為特征,然后將特征 解碼重建點 云。FoldingNet[15]提出了一種折疊操作,將標準二維網格變形到點云表面,但是它的缺陷是特征學習能力較弱。為了獲取更精細的點云特征,一些方法聯合利用局部結構信息進行全局形狀的重建[10-11]。文獻[10]采用分層自注意力機制對局部區(qū)域內多個尺度的幾何信息同時進行編碼,通過局部到全局的重構來同時學習點云的局部和全局結構。文獻[11]引入多角度分析來理解點云,通過語義局部自監(jiān)督來學習局部幾何和結構。除了對點云空間結構的學習,一些研究致力于挖掘點云自身潛在的語義信息[12-13],通過對比度量的思想建模抽象的深層次信息,以學習點云潛在的語義信息。以上方法僅在點云的三維模態(tài)進行學習,這會使得模型的表達能力在一定程度上受到限制。為了學習點云多模態(tài)的信息,CrossPoint[14]提出一種2D-3D 的跨模態(tài)點云表征學習方法,但其需要提前準備好點云的二維圖像數據,在實際應用中會增加大量的計算。
盡管以FoldingNet[15]為主的一系列點云 自編碼器可以有效地學習點云表征,但它們大多是在預先對齊的合成數據集上進行評估的,而在實際應用中很難訪問對齊良好的點云,一旦點云的姿態(tài)發(fā)生旋轉變化,這些網絡性能會急速下降。在無監(jiān)督點云表征學習中,解決旋轉干擾問題的一個直觀方法是通過考慮所有可能的旋轉來對訓練數據進行擴充,再輸入無監(jiān)督網絡進行訓練。但由于點云旋轉的搜索空間無窮大且深度網絡的學習能力有限,深度網絡無法適應任意的旋轉,并且點云數據被旋轉增強后,通過其形狀挖掘語義信息將變得困難。一些研究人員提出了無監(jiān)督學習中的旋轉問題解決方案[8-9],PPFFoldNet[8]使用基于手工制作的三維特征描述符組成的局部面片表示點云,并通過局部面片的重建實現無監(jiān)督學習。這種通過局部鄰域內邊角關系構成的描述符嚴格刻畫了點云局部旋轉不變的特征。但由于丟失點云原始坐標信息,特征學習不充分,模型在下游任務的評估效果并不理想。ELGANet-U[9]在設計局部旋轉不變描述符的基礎上增加了全局旋轉不變信息,使用圖卷積網絡(Graph Convolution Networks,GCN)構成的對齊模塊學習點云旋轉不變的坐標,通過重建對齊后點云補充全局信息。但GCN 的靈活性和可拓展性較差,文獻[16]指出在缺乏標簽監(jiān)督的情況下,GCN 的性能會有比較嚴重的下降,這會降低學習到的點云表征在下游任務中的性能。
針對上述問題,本文提出了一個旋轉不變的2D 視圖-3D 點云自編碼器(Rotation-invariant 2D views-3D Point Clouds Auto-encoder,RI 2D-3D AE),極小化旋轉影響并且同時利用點云及其視圖充分提取信息。主要創(chuàng)新點和貢獻有:(1)針對旋轉問題,設計局部融合全局的旋轉不變特征轉換策略。對于局部表示,利用手工設計特征對輸入點云進行轉換,生成旋轉不變的點云表征;對于全局表示,提出一個基于主成分分析的全局對齊模塊(Principal Component Analysis Global Alignment,PCA-GA),將旋轉點云對齊同一姿態(tài)下,在補充全局信息的同時排除旋轉干擾。(2)針對編碼器,設計局部和非局部特征提取模塊(Local and Non-local Module,LNLM),充分提取點云的局部空間特征和非局部上下文相關性,并建模不同層次特征之間的語義一致性。(3)提出一個基于PCA 對齊的2D-3D 重構的解碼方法,重建對齊后的三維點云和二維視圖,使編碼器輸出的點云表征集成來自3D 點云和2D 視圖的豐富學習信號。
本文提出的旋轉不變的2D 視圖-3D 點云自編碼器如圖1 所示,其主要包括旋轉不變的局部和非局部特征編碼器(Rotation-invariant Local and Non-local Encoder,RI-LNL Encoder)和基于主成分分析對齊的2D-3D 重構解碼器(PCA 2D-3D Reconstruction Decoder)。

圖1 旋轉不變的2D 視圖-3D 點云自編碼器結構示意圖Fig.1 Structure diagram of rotation-invariant 2D views-3D point clouds auto-encoder
在特征編碼階段,首先將點云轉換為旋轉不變的局部特征描述符,然后從局部和非局部聚合為輸入點云的全局表征,并通過度量學習建模特征之間的語義一致性。在特征解碼階段,首先將點云進行全局對齊,對齊后的點云不受旋轉干擾,然后通過兩個重建分支分別重建對齊后的三維點云及其二維視圖。
2.2.1 點云的局部旋轉不變特征轉換
編碼器的輸入是一個具有N=1 024 個點的無序點云其 對應的法向量集表示為局部結構對點云表征學習至關重要,其包含點云的空間幾何信息。大多數網絡直接在原始點云坐標上學習局部特征,這很容易受到旋轉的干擾。
受三維局部特征描述符PPF[8]啟發(fā),本文設計了一個基于局部鄰域中的相對距離和角度的旋轉不變特征描述符來對點云進行特征轉換,如圖2 所示。與其他在單一坐標系下構建的特征描述符不同,本文在局部和全局坐標系中收集特征,使描述符具有更豐富的特征信息和更強的旋轉魯棒性。對于一個查詢點pi,對應k=64 個近鄰點,pi與其近鄰點形成k個點對。為了描述點之間的相對位置,在每個點對(pi,pij)上建立局部坐標系(ui,vi,wi):

圖2 手工制作的旋轉不變特征描述符Fig.2 Handcrafted rotation-invariant features
2.2.2 局部和非局部特征提取模塊
為了進一步聚合局部領域內的空間幾何信息,并學習長距離的上下文相關性,設計局部和非局部的特征提取模塊,其結構如圖3 所示。

圖3 局部和非局部的特征提取模塊及特征聚合層結構圖Fig.3 Structure diagram of local and non-local module and feature aggregation layer
LNLM 首先對轉換后的特征圖Mi通過特征聚合層(Feature Aggregation,FA)得到點pi的局部特征fai,FA 的計算過程如下式所示:
其中:h和h′是多層感知機(Multi-layer Perceptron,MLP)。由于MLP 只能獨立處理每個轉換特征mi,j,不能捕捉KNN 鄰域中各點的信息。因此使用卷積層聚合局部鄰域信息得到聚合向量vi,其補充了鄰域內其它點的信息。點云P=的局部特征表示為
局部特征Fa僅關注歐幾里得空間中的局部鄰域,忽略了遙遠但相似點之間的非局部相關性。DGCNN[4]發(fā)現語義相似點的特征在特征值空間中的距離是相近的。沿著這個方向,對于Fa的每個特征向量fai,搜索與其距離最近的k個特征向量,然后同樣通過FA 得到點pi的非局部特征fbi,則點云P=的非局部特征表示為
最后,連接Fa與Fb并通過MLP 和池化層聚合為點云全局表征g。
2.2.3 局部-非局部-全局語義一致性建模
由于缺乏人工標簽訓練,無監(jiān)督學習通常無法從點云中學習類別語義信息。為了增強網絡學習到的點云表征,基于度量學習的思想建模局部-非局部-全局之間共享的語義知識,以挖掘點云自身潛在的具有區(qū)分性的語義信息。具體來說,一個點云P輸入編碼器得到三個特征:局部特征,非局部特征,全局特征向量g,這三個不同抽象層次的特征在語義上是一致的,都屬于點云P的類別并且區(qū)別于其他點云。由此構建語義一致性度量損失:
其中:φ和φ是兩個映射函數,負責將維度不一樣的特征映射到相同的特征空間,通過MLP 實現;s是一個常數值。式(6)表示點云樣本P中的一個點pi的特征fi∈{fai,fbi}與P對應全 局特征g的距離盡量小,而與其它點云樣本的全局特征gk的距離盡可能大;式(7)表示對點云P中的每個點計算的度量損失進行求和,以此來捕獲不同層次特征共享的底層語義知識。
2.3.1 基于主成分分析的全局對齊模塊
解碼器的目標是通過全局形狀重建來學習全局結構。然而,當重建的目標點云受到旋轉干擾,會極大地影響重建效果。本文設計PCAGA,通過PCA 學習點云的固有坐標幀,并將重建的目標點云對齊到由固有幀構成的新坐標系下,以生成旋轉不變的點坐標,這保證了重建的旋轉魯棒性。
其中:Pc是原始點云P中心化的結果,U是左奇異矩陣,Σ是對角矩陣,V=[v1,v2,v3]是一個3×3 的正交矩陣,代表從原始點云內提取中的固有坐標幀。對于同一個點云的所有旋轉克隆,它們的固有坐標幀是相同的。為了實現旋轉不變性,將點從原始模型轉換為新建立的全局坐標系:
其中,P′是旋轉不變的點坐標。PCA-GA 可以將無限旋轉姿態(tài)對齊到固定姿態(tài),同時保留原始點云信息,從根本上降低解碼器對旋轉點云的重建難度,為整個網絡架構提供了旋轉不變的全局信息。
2.3.2 2D 視 圖-3D 點云重建
當前的自動編碼器大多僅在三維重建中學習全局結構,這會使得模型的表達能力在一定程度上受到限制。在現實世界中,三維物體的二維視圖具有豐富的信號,人眼能夠通過2D 視圖理解3D 物體。由此可以推測,在點云無監(jiān)督學習中,結合二維視圖訓練模型,可以增強網絡編碼能力,促進模型對3D 世界的有效理解。受此啟發(fā),在PCA 對齊的基礎上,本文提出一個2D 視圖-3D 點云重構的解碼方法。
對于解碼器輸出的全局表征g,設計兩個分支執(zhí)行不同的重建任務。在其中一個分支進行三維點云自重構,采用文獻[8]中基于折疊的解碼器D(·)將標準2D 網格變形為以全局表征g為條件的點云3D 坐標Pr:
3D 重建損失定義為倒角距離:
注意,與其他解碼器不同,解碼器不直接重建輸入點云P,而是經對齊后的旋轉不變的點坐標P′。
在另一個分支進行點云的視圖重建任務:生成點云P′的俯視圖、側視圖和前視圖,使用反卷積層在全局表征g基礎上重建三個視圖。由于生成的視圖是二值圖像,因此2D 重建損失定義為二值交叉熵(Binary Cross-Entropy,BCE):
其中:xi是點云P′的一個視圖,yi是反卷積層輸出的重建視圖。式(13)計算了一個視圖的重建損失,在實際訓練中需要重建三個視圖。
2D 重建分支不需要提前準備好2D 圖像,而是直接將點云投影到PCA-GA 提取到的坐標系下,以生成點云在不同方向上的視圖,該投影過程的成本在時間和計算上都是微乎其微的。同時,PCA-GA 提取到的三個坐標軸是點云信息量最大的維度,在該坐標軸下投影得到的點云視圖盡可能保留了點云的主要信息,降低了模型學習2D 視圖信息的難度。
結合編碼器的語義一致性度量損失和解碼器的2D-3D 重建,得出點云自編碼器的訓練目標:
經過充分訓練后,全局特征表示g可以用作點云的高維表示,并可用于下游應用。該表征保證了旋轉不變性,更適用于具有旋轉擾動的場景。此外,其以自我監(jiān)督的方式集成了來自3D點云和2D 視圖的豐富學習信號。另外,由于三維重建分支是從二維網格折疊到三維點云的架構,視圖重建任務在一定程度上能夠促進三維點云的重建。
本文在合成數據集ModelNet40[17]、真實數據集ScanObjectNN[18]中評估提出的網絡。
ModelNet40 包括來自40 個人造對象類別的12 311 個CAD 模 型,其 中,9 843 個CAD 模型用于培訓,2 468 個模型用于測試。
ScanObjectNN 是一個更真實、更具挑戰(zhàn)性的3D 點云數據集,它由從真實室內掃描中提取的對象組成。它包含來自15 個類別的2 902 個對象,其中2 319 個用于訓練,583 個用于測試。ScanObjectNN 有多個不同的變體,在本實驗中使用常用的變體OBJ_BG(添加背景干擾和遮擋),以及難度最高的變體PB_T50_RS(添加平移和旋轉擾動)。
在無監(jiān)督學習中,網絡通過執(zhí)行精心設計的訓練任務,可以獲得無標簽的點云表征。衡量無監(jiān)督學習質量的一個常見指標是生成表征的線性可分性。因此,本文使用線性支持向量機(Support Vector Mechine,SVM)分類器進行對象分類,作為評估特征表示能力的下游任務。具體來說,在對象分類實驗中,采用OneVsRest 策略,以linearSVM 函數為內核,從自動編碼器獲得的全局特征中訓練了一個線性SVM 分類器。根據分類精度來評估的點云表征的可分辨性。
另外,為了有效評估網絡的旋轉魯棒性,在三種情況下進行實驗,分別為原始訓練集和測試集(z/z),原始訓練集和任意3D 旋轉增強的測試集(z/SO3),任意3D 旋轉增強的訓練集和測試集(SO3/SO3)。
在實驗中,使用ADAM optimizer 在NVIDIA RTX 2080 Ti GPU 上訓練網絡,初始學習率為0.000 1,批量大小為16。每20 個epoch,學習率降低20%,模型訓練200 個epoch。
首先在合成數據集ModelNet40 上測試RI 2D-3D AE,并與最先進的無監(jiān)督方法進行比較,分類精度如表1 所示。

表1 ModelNet40 數據集上不同方法的分類精度Tab.1 Classification accuracy of the different methods on ModelNet40
從實驗結果可以看出,在測試集隨機旋轉增強的情況下(z/SO3),常規(guī)的有監(jiān)督方法[2-4]和無監(jiān)督方法[13-15]的分類準確率出現了嚴重的衰減,當前效果最好的無監(jiān)督方法PointGLR[13]僅能取得14.34% 的準確率,而本文提出的RI 2D-3D AE 在不同的環(huán)境中始終保持優(yōu)異的性能。對于旋轉魯棒的競爭方法,RI 2D-3D AE 顯著優(yōu)于ModelNet40 下的所有無 監(jiān)督競爭對 手[8-9]。RI 2D-3D AE 不僅保證了表征的旋轉不變性,其所學習到的表征也有較高的可區(qū)分性,使分類準確率在三種情形下都達到了當前領先的水平。
另外,在引入旋轉增強后,即在SO3/SO3 情況下,對比常規(guī)的有監(jiān)督方法,無監(jiān)督方法的性能并沒有很大的提升。DGCNN[4]在訓練集引入旋轉增強后,分類準確率從20.60% 上升到81.10%,而FoldingNet[15]僅 從14.18% 上升到43.13%。這是由于無監(jiān)督學習中目標函數旨在完成點云的重構,并不是直接作用在分類損失上,點云數據被旋轉增強后,通過其形狀挖掘語義信息將變得困難。在這種情形下,基于自重建的無監(jiān)督方法的性能將出現明顯衰減。因此在無監(jiān)督學習中,數據增強不能解決旋轉干擾問題。相比之下,RI 2D-3D AE 在SO3/SO3 情況下生成的表征仍然保持著最優(yōu)的區(qū)分性。
考慮到ModelNet40 中的對象是姿勢相似且無噪聲的CAD 模型,與真實世界的數據有較大差距。為了證明RI 2D-3D AE 具有推廣到實際應用的能力,在真實數據集ScanObjectNN 上評估模型,實驗結果如表2 所示。可以看出,由于真實數據集中存在不少干擾因素,導致大多數方法的性能比其在 ModelNet40 數據集上的出現一定程度的衰減。而RI 2D-3D AE 在三種情況下依舊保持較高水平的表現,并且優(yōu)于其他先進的無監(jiān)督方法,證明了其表征學習方法的魯棒性和實際應用價值。

表2 ScanObjectNN 數據集上無監(jiān)督方法的分類精度Tab.2 Classification accuracy of the unsupervised methods on ScanObjectNN
為了評估RI 2D-3D AE 中各個模塊和架構的貢獻,將模塊逐個分離來訓練模型,并在z/SO3 情況下的ScanObjectNN(OBJ_BG)數據集上評估線性SVM 分類器。首先固定解碼器為3D 重建,驗證編碼器中的各個模塊,實驗結果如表3 所示。

表3 在ScanObjectNN 上編碼器模塊的消融結果Tab.3 Ablation results of encoder on ScanObjectNN
基線模型A 可以被視為FoldingNet[15]的 變體,該模型僅由在局部坐標系和全局坐標系中分別計算的特征描述符f1,f2,以及局部特征學習Fa組成,分類精度較低。在增加非局部相關性特征Fb后(模型B),準確率較基線上升了12.18%,這有力證明了非局部特征學習模塊的有效性。在增加局部-非局部-全局語義一致性損失Lmetric后(模型D),準確率較模型B 上升1.37%。模型C去除了在全局坐標系中計算的特征描述符f2,準確率較模型D 有所下降。結果說明,編碼器的各個主要模塊對提升點云全局表征能力均具有重要作用。
固定編碼器,驗證解碼器中的各個模塊的有效性,實驗結果如表4 所示。從結果看,在加入全局對齊模塊PCA-GA 后(模型E),準確率較模型D 上升了0.68%,說明PCA-GA 能有效提升真實場景下的旋轉魯棒性。最后,加入2D 視圖重建模塊得到完整的模型F,也就是本文提出的RI 2D-3D AE,在ScanObjectNN 數據集上獲得了顯著的效果。

表4 在ScanObjectNN 上解碼器模塊的消融結果Tab.4 Ablation results of decoder on ScanObjectNN
為了進一步驗證點云2D 視圖在特征編碼中的有效性,研究2D 視圖重建分支的貢獻,使用不同視角的視圖對模型進行訓練,并在z/SO3 情況下的ModelNet40 中評估線性SVM 分類器。實驗結果如表5 所示。從結果看,即使使用單個方向上的2D 視圖,也可以產生更好的線性分類結果。相對于其它視圖,俯視圖對結果的提升最大,為了分析原因,部分點云對象及其視圖可視化如圖4 所示。

表5 在ModelNet40 上各個視圖的消融結果Tab.5 Ablation results concerning each view on Model-Net40

圖4 部分點云對象及其視圖的可視化Fig.4 Visualization of partial point cloud objects and their views
從圖4 可以看出,一些點云的俯視圖反映出了3D 對象的大部分主要信息,另一些需要結合三個視圖來推測原始點云。在點云自編碼器中加入視圖重建分支后,相當于建立起二維視圖與三維對象的聯系,引導編碼器向特征信息更多的方向進行學習,增強網絡編碼能力。
為了更好地展示表征的可區(qū)分性,使用t-分布隨機近鄰嵌入(t-distributed Stochastic Neighbor Embedding,t-SNE)聚類對學到的點云表征進行可視化。首 先FoldingNet[15]在z/SO3 情 況下的ModelNet40 上生成的部分類別表征可視化結果如圖5 所示。可見在旋轉干擾情況下,FoldingNet 生成的各類別表征難以區(qū)分。

圖5 FoldingNet 表征的t-SNE 聚類可視化Fig.5 t-SNE clustering visualization of FoldingNet
本文提出的RI 2D-3D AE 可視化結果如圖6 所示。即使在樣本隨機旋轉的情況下,編碼器生成的點云表征的類間距離仍較大,可區(qū)分性高,證明了表征具有良好的可區(qū)分性和旋轉魯棒性。
從圖6 還看出,比較難區(qū)分的類別是Desk(淺藍色)和Table(灰色),原因在于這兩類物體特征高度相似,即使是人類也無法輕易區(qū)分。圖7 為錯誤分類樣本示例。本文提出的算法目前還不能區(qū)分這些高度相似的不同類別樣本,這也是未來的一個優(yōu)化方向。

圖6 RI 2D-3D AE 表征的t-SNE 聚類可視化Fig.6 t-SNE clustering visualization of RI 2D-3D AE

圖7 部分錯誤分類樣本Fig.7 Examples of misclassification
本文針對現有點云自編碼器存在的旋轉干擾和特征提取不足問題,提出一個旋轉不變的2D 視圖-3D 點云自編碼器。針對旋轉干擾問題,對輸入點云進行局部和全局的特征轉換,將點云轉換為旋轉不變的特征表示。針對特征提取問題,設計局部和非局部特征提取模塊,并建模不同層次特征的語義一致性,增強了表征的空間和語義信息;設計二維視圖和三維點云重建任務,結合二維視圖訓練模型,可以增強網絡編碼能力,促進模型對3D 世界的有效理解。實驗結果證明,本算法在隨機旋轉的合成數據集Model-Net40 和真實數據集ScanObjectNN 上的識別精度分別為90.84%和89.02%,學習到的點云表征的可辨別性和旋轉魯棒性優(yōu)于其他先進的無監(jiān)督方法。