王博豪, 孫戰(zhàn)里
(安徽大學(xué) 電氣工程與自動化學(xué)院, 安徽 合肥 230601)
近年來,隨著激光雷達(dá)、深度攝像機(jī)等傳感器的廣泛使用,所捕獲的三維(3D)數(shù)據(jù)越來越多,針對3D點云的研究分析也相應(yīng)增多,因此,急需有效的算法來完成關(guān)鍵任務(wù),例如點云分類[1,2]、分割[3]和其他3D形狀分析任務(wù)等。
對于3D點云的分析,傳統(tǒng)算法一般會結(jié)合一些估計的幾何信息去建立模型,這些方法高度依賴人工制作的特征。在近幾年中,開始有新的研究策略出現(xiàn)[4],許多研究也開始參考卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)在圖像分析上的應(yīng)用,將其應(yīng)用在不規(guī)則點云的處理上。其中一種簡單的策略是將點云轉(zhuǎn)換為常規(guī)體素,還有一種是轉(zhuǎn)換為多視圖圖像,以方便使用CNN,但這些轉(zhuǎn)換通常會導(dǎo)致大量3D幾何信息丟失,并且復(fù)雜度很高。PointNet是一項具有開拓性的工作,它可以直接處理原始點云而無需將其轉(zhuǎn)換為其他形式[1],但它缺乏一些局部上下文信息。為了改進(jìn)該缺點,PointNet++將點云層次化地分組為局部子集進(jìn)行處理[2]。動態(tài)圖CNN(dynamic graph CNN,DGCNN)在每一層產(chǎn)生的特征空間中通過計算歐幾里得距離選出k個最近鄰點來重建K最近鄰(K-nearest neighbor,KNN)鄰域圖[5]。
本文提出在較高維特征空間中使用修正余弦相似度作為判別標(biāo)準(zhǔn)選出近鄰的k個點構(gòu)建KNN鄰域圖。另外,因為上述卷積層在進(jìn)行每一次卷積時,使用的特征都是在前一層提取的基礎(chǔ)上進(jìn)一步學(xué)習(xí),只能應(yīng)用前一層特征,而在一定程度弱化了前幾層網(wǎng)絡(luò)層所學(xué)習(xí)的低維特征的作用,對此構(gòu)建了一個殘差特征學(xué)習(xí)模塊,通過短連接多層基于網(wǎng)絡(luò)并且固定圖卷積特征尺度的方式改善這一點。
多視圖的方法會將3D形狀轉(zhuǎn)換為一系列2D圖像的集合,然后應(yīng)用傳統(tǒng)的CNN。而體素方法是將3D形狀轉(zhuǎn)換為常規(guī)3D網(wǎng)格后,使用3D CNN[5]。但這種方法的參數(shù)量非常大,計算成本較高。
PointNet能夠獨立學(xué)習(xí)每個點的特征最后聚合全局特征,但其忽略了點云的局部信息[1],因此,PointNet++將點云劃分為局部子集進(jìn)行學(xué)習(xí)[2]。SO-Net提出了點云局部區(qū)域自組織網(wǎng)絡(luò)[6]。PCNN(point convolutional neural networks)提出使用擴(kuò)展算子和卷積算子組合對點云進(jìn)行特征提取。此外還有利用全局特征的點云處理算法。
PointNet++利用傳統(tǒng)的多尺度學(xué)習(xí),直接在同一層捕獲上下文,但這會大量增加計算復(fù)雜度[2]。ShapeContextNet采用了另一種形狀上下文的策略搭建網(wǎng)絡(luò),使用自我注意力機(jī)制動態(tài)地學(xué)習(xí)所有點對的權(quán)重[7]。
網(wǎng)絡(luò)的整體結(jié)構(gòu)如圖1所示。
圖1 網(wǎng)絡(luò)整體結(jié)構(gòu)
引用DGCNN的模型[6],模塊網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。輸入數(shù)據(jù)為點云P={xi︰i=1,2,…,N}∈RN×3,其中,N為點云所包含點的個數(shù),xi表示第i個點的特征向量。點云數(shù)據(jù)在進(jìn)入第一個KNN鄰域圖卷積層后,會輸出維度為64的特征向量,隨后進(jìn)入下一層KNN領(lǐng)域圖卷積,前2層的鄰域圖卷積都是基于歐氏距離進(jìn)行構(gòu)建,且特征維度均為64。到第3,4層圖卷積層時,便采用基于修正余弦相似度的KNN(記為KNN-CS)鄰域圖卷積,此時所提取的特征也變?yōu)榘S富的語義信息的128維特征向量。在經(jīng)過圖2所示的4次KNN鄰域圖卷積后將多尺度特征做級聯(lián)操作,得到維度為N×512的多尺度特征。
圖2 多尺度特征學(xué)習(xí)模塊
引用Spec-GCN的網(wǎng)絡(luò)結(jié)構(gòu),實驗所用的圖卷積層模型如圖3所示[8]。利用點云構(gòu)建圖G={V,E},其中,V={1,…,N},表示N個鄰域圖的頂點,E?V×V,表示圖的邊特征。點云中每個點xi都分別被視為頂點,再利用KNN尋找其鄰域點xij(j=1,2,…,k),并以此構(gòu)建出其鄰域圖(子圖)。特征向量xi表示第i個點的3D空間坐標(biāo),因此,構(gòu)建的KNN鄰域圖包含完全的3D坐標(biāo)信息,隨網(wǎng)絡(luò)層的加深及特征維度的增多,特征會變成更高維抽象特征,此時采用修正余弦相似度進(jìn)行KNN領(lǐng)域圖的構(gòu)建。
圖3 圖卷積模型
修正余弦相似度公式如下
(1)
eij=xi-xij
(2)
經(jīng)過下一網(wǎng)絡(luò)層將鄰域圖的中心點特征及邊特征編碼成維度為N×k×D的更高維特征,表示為
F=hθ{cat(xi,Ei)}
(3)
式中h為所經(jīng)過的網(wǎng)絡(luò)層,θ為可學(xué)習(xí)參數(shù),cat(xi,Ei)對特征xi和Ei進(jìn)行級聯(lián)。特征F經(jīng)下一最大池化層,得到N×D的特征。
引用MC-Conv的模型[9],用于點云的殘差特征學(xué)習(xí),如圖4所示,共有4個KNN鄰域圖卷積層,最初的輸入數(shù)據(jù)為點云坐標(biāo),進(jìn)入KNN鄰域圖卷積層,經(jīng)過MLP與最大池化層后得到N×64的特征,隨后的3個圖卷積層每一層的輸入都是由上一層的輸入和輸出直接相加得到,可表示為
圖4 殘差特征學(xué)習(xí)模塊
(4)
本文選用標(biāo)準(zhǔn)的公開數(shù)據(jù)集ModelNet40進(jìn)行測試。數(shù)據(jù)集總共有12 311個物體,共包括40個類別,其中,9 843個模型用作訓(xùn)練數(shù)據(jù)集,其余2 468個模型為測試數(shù)據(jù)集。本文實驗所使用的配置如表1所示。
表1 實驗配置
模型使用交叉熵作為損失函數(shù),優(yōu)化方法選用隨機(jī)梯度下降法,其中的動量參數(shù)設(shè)置為0.9,權(quán)重衰減參數(shù)設(shè)置為0.000 4。學(xué)習(xí)率更新策略使用帶有熱重啟的余弦退火算法,周期參數(shù)設(shè)置為100,初始學(xué)習(xí)率設(shè)置為0.2,最低學(xué)習(xí)率設(shè)置為0.000 4。迭代次數(shù)為400輪,訓(xùn)練批處理參數(shù)為40,測試批處理參數(shù)為20。在每個全連接層后都加入比例為0.5的Dropout,以抑制過擬合。
不同鄰域點個數(shù)k對應(yīng)的實驗結(jié)果如表2所示,設(shè)置的k值分別為4,8,14,20,26,32??梢钥闯?當(dāng)k為20時,能得到最佳實驗結(jié)果。因為,較少的鄰近點不足以提取出足夠的局部空間結(jié)構(gòu)信息,而當(dāng)k過大時性能會發(fā)生退化。且較大的k會使得計算量大幅增加,實驗花費時間成倍增長。
表2 不同k值的實驗結(jié)果 %
魯棒性實驗結(jié)果如圖5所示。點云的點個數(shù)分別設(shè)置為1 024,768,512,256,128,從圖中可以看出,實驗的整體精度與平均精度稍有下降趨勢,但均無明顯波動。且在選擇128個點作為輸入時仍能取得90 %以上的整體精度,甚至超過了PointNet使用1 024個點的整體精度[1]。足以證明本模型具有較強(qiáng)的魯棒性。
圖5 魯棒性實驗
與其他文獻(xiàn)的結(jié)果對比如表3所示,本文實驗采用的輸入數(shù)據(jù)為1 024個只含有3D坐標(biāo)的點云數(shù)據(jù),在表中將此類輸入數(shù)據(jù)記為1×103,同理,2×103則表示輸入點云數(shù)量為2 048,表中的5×103+nor 表示輸入數(shù)據(jù)為5 000個點的3D坐標(biāo)以及額外的法向量信息,表中的voting表示實驗使用了多次投票驗證策略。從表中可以看出,在輸入點云的數(shù)量為1×103時,本文實驗的平均精度和整體精度均優(yōu)于其他文獻(xiàn)。此外,PointNet++[2]與SpiderCNN[10]還使用了5×103數(shù)量級別的點云并添加了額外的法向量特征,但實驗精度仍然較低。RS-CNN在使用了多次投票驗證策略后,得到了93.6 %的實驗整體精度,但在不使用該策略時的整體精度為92.9 %,低于本文的93.4 %。表3中的實驗結(jié)果可以證明,本文網(wǎng)絡(luò)模型的有效性。
表3 在ModelNet40數(shù)據(jù)集上實驗結(jié)果對比
本文提出了一種用于點云識別的雙模塊圖卷積網(wǎng)絡(luò)。兩個不同的模塊分別用于提取點云的多尺度特征和殘差特征,然后將兩種特征融合后經(jīng)過多層感知機(jī)、池化層以及全連接層,最終得到點云的類別。在ModelNet40數(shù)據(jù)集上的分類任務(wù)實驗結(jié)果表明了本文算法的有效性。下一步工作將考慮對網(wǎng)絡(luò)模型作進(jìn)一步優(yōu)化,并擴(kuò)展到其他任務(wù)場景,例如點云分割、配準(zhǔn)等。