顧 礫,季 怡,劉純平
(蘇州大學計算機科學與技術學院,江蘇蘇州 215006)
近年來,三維物體識別是計算機視覺領域的研究熱點之一。常見的三維圖像表示方法有點云、網(wǎng)格、體素與多視角圖像等,其中點云是結構簡單且接近原始采集數(shù)據(jù)的方法,在自動駕駛及機器人學等方面具有廣泛的應用前景。由于Kinect等廉價三維獲取設備的快速發(fā)展使得點云數(shù)據(jù)更易獲取,因此三維點云識別逐漸成為計算機視覺領域的主要研究內(nèi)容。
點云分類是點云識別的一項重要前置任務,且傳統(tǒng)的點云分類方法[1-3]通常采用人工構建的描述子提取其幾何特征,通過將點云轉換為體素形式[4],再使用二維圖像中常用的卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)對特征進行提取,并用于完成后續(xù)任務。該方法具有較好的普適性,但是體素形式的數(shù)據(jù)表現(xiàn)精度依賴于體素分辨率,而高分辨率引起的龐大計算量將限制其發(fā)展。由于人工設計的限制,傳統(tǒng)方法普遍存在精度瓶頸以及魯棒性不足的問題,且隨著神經(jīng)網(wǎng)絡在二維圖像感知領域的快速發(fā)展,研究人員逐漸將其運用到三維點云上學習點云特征。文獻[5]構建一種創(chuàng)新性模型,該模型可以直接對原始點云進行處理,且在分類和分割任務上均取得良好效果,但其缺乏提取點云局部特征的能力。針對該問題,文獻[6-7]通過引入多尺度來優(yōu)化局部特征的提取性能。文獻[8]提出更為簡單高效的點云特征提取PointCNN模型,使得分類精度得到大幅提升,但與采用多視角圖像作為輸入的MVCNN[9]、GVCNN[10]等模型相比,該模型的整體性能偏低,這主要是由點云數(shù)據(jù)的本身信息量有限導致的。
本文在多模態(tài)特征融合的基礎上,設計一種三維點云分類模型。為解決點云數(shù)據(jù)信息量不足的問題,該模型引入投影圖作為補充,同時使用點云與圖像作為輸入,利用點云與圖像的特征提取模塊得到其對應的分類特征,并對特征進行加權線性融合得到最終分類結果。
傳統(tǒng)的點云特征是針對特定需求而手工設計的,例如描述局部表面變化的點特征直方圖(Point Feature Histogram,PFH)以及用于全局路徑規(guī)劃的方向區(qū)間柱圖(Vector Field Histogram,VFH)。隨著深度學習在三維領域的發(fā)展,研究人員開始嘗試利用機器自動學習點云特征。PointNet模型具有開創(chuàng)性,該模型是首個直接將三維點云作為輸入的模型,且在點云分類和分割任務上取得顯著成果。后續(xù)涌現(xiàn)出很多點云深度學習模型,如PointCNN、Point2Seq等。除點云外,其他基于三維表示法的深度學習模型也發(fā)展迅速,如基于投影圖的MVCNN、GVCNN以及基于體素的VoxNet。
點云深度學習的難點之一是點云數(shù)據(jù)的信息量有限,除了繼續(xù)深入研究點云特征提取方法外,還可以考慮通過引入其他三維表示法的數(shù)據(jù)進行補充。以往研究多數(shù)選擇體素和點云數(shù)據(jù)相融合,而體素是一種不能直接獲得的三維表示方法,通常需要從點云數(shù)據(jù)開始轉換,這意味著如果原始點云數(shù)據(jù)存在缺失,則體素對應部分也會缺失,因此不能很好地用作信息補充。
投影圖表示法的優(yōu)勢在于圖像特征提取技術與其他技術相比已經(jīng)非常成熟,采用簡單模型即可獲得較好的效果,但一般需要利用多視角采集來克服遮擋問題,而點云數(shù)據(jù)可彌補該不足。因此,本文選擇采用二維投影圖對信息進行擴充,將通過PointCNN得到的點云特征和二維CNN得到的投影圖特征在分類層上進行融合,從而提高模型的分類效果。
針對點云數(shù)據(jù)自身信息量不足的問題,本文依據(jù)文獻[11]中從其他模態(tài)引入信息進行彌補的思想,提出將點云特征和圖像特征相結合的分類算法,以提高分類精度。基于多模態(tài)特征融合的點云分類模型如圖1所示。從圖1可知,模型存在2個分支,一個分支用于提取點云數(shù)據(jù)的特征,另一個分支用于提取圖像特征,且對每個實例同時輸入點云和圖像數(shù)據(jù)。點云特征分支的原始輸入是一個包含N個點的三維點云,且每個點有其對應的x、y、z坐標。圖像特征分支的輸入是分辨率為n×n的投影圖,且?guī)в蠷GB特征通道。點云和圖像通過對應的特征提取模塊和logSoftmax函數(shù)得到各自的分類置信度矩陣,將2個矩陣進行加權線性融合,最終得到輸入實例的預測類別。
圖1 基于多模態(tài)特征融合的點云分類模型Fig.1 Point cloud classification model based on multiple modal feature fusion
CNN[12]是深度學習的代表算法之一,隨著深度學習理論的提出和計算設備的更替,它得到了快速發(fā)展,并被廣泛應用于自然語言處理、計算機視覺等領域。自AlexNet[13]開始,得到GPU加速支持的復雜CNN普遍用于提取二維圖像特征,其中,最具代表性且使用最多的是VGG[14]、ResNet[15]模型及其改進算法[16]。
圖像特征提取模塊選擇較為普遍使用的VGG11、ResNet50和ResNeXt101三種模型,采用其在ImageNet1K上的預訓練模型對數(shù)據(jù)集進行微調(diào),以提高分類精度。每個輸入實例得到的是一個M為40維的分類特征矩陣,并統(tǒng)一記為Aimg。
傳統(tǒng)卷積算法是基于結構化數(shù)據(jù)(如圖像、音頻等)作為輸入而設計的,然而三維點云是典型的非結構化數(shù)據(jù),因此并不能將上述CNN直接作用于其點云數(shù)據(jù)上。文獻[8]依據(jù)傳統(tǒng)CNN思想提出基于點云的X-Conv操作,示例如圖2所示。其中,點的數(shù)量表示對應的通道數(shù)目。X-Conv操作的主要思想是通過遞歸的卷積操作,將選定點鄰域中其他點的特征聚集到該點上(9→5→2),使得選定點包含更多信息。
圖2 X-Conv操作示例Fig.2 Example of X-Conv operation
PointCNN的輸入是一個三維點云,可表示為F1={(p1,i,f1,)i:i=1,2,…,N1},即一組點集{p1,i,p1,i∈?Dim}及每個點對應的特征集,C1表示初始特征通道深度。X-卷積算子的目的是將輸入的F1轉換為,其中,{p2,}i是從{p1,}i中選定的點子集,N2<N1且C2>C1,這說明經(jīng)過X-卷積轉換后的F2包含的特征點數(shù)減少,而對應的特征通道數(shù)增加。X-卷積如算法1所示。
算法1X-卷積算法
本文用p表示{p2,}i中的一個點,p對應的特征為f,N表示點p在{p1,}i中的k近鄰集,則點p在X-卷積中的對應輸入是一個無序點集S={(pi,f)i,pi∈N}。S可不失一般性地表示為k×Dim維矩陣P=(p1,p2,…,pk)T和k×C1維矩陣F=(f1,f2,…,fk)T,K表示可訓練的卷積核。經(jīng)過X-Conv后得到的輸出Fp是輸入特征在點p上的投影或集合。
X-卷積算子可簡寫為:
點云特征提取模塊結構如圖3所示,該模塊由4個X-Conv卷積層和3個全連接層組成。N代表輸入的特征點數(shù),初始輸入N為1 024,C為每個特征點輸出時對應的特征通道數(shù),K為計算時選擇的近鄰點個數(shù),D表示空洞卷積[17]中卷積核的間隔數(shù)量。4層X-Conv卷積層的參數(shù)分別為:N1=1 024,C1=48,K1=8,D1=1;N2=384,C2=96,K2=12,D2=2;N3=128,C3=192,K3=16,D3=2;N4=128,C4=384,K4=16,D4=3。在每個X-Conv卷積層和前2個全連接層后均使用ReLU激活函數(shù),并在第2個全連接層后加入?yún)?shù)值為0.5的隨機失活,最終每個輸入實例得到一個M為40維的分類特征矩陣Apc。
圖3 點云特征提取模塊結構Fig.3 Structure of point cloud feature extraction module
對于每個輸入實例,經(jīng)過上述特征提取模塊后得到2個分別對應于點云和圖像分類的40維特征矩陣Apc與Aimg。使用logSoftmax函數(shù)對特征矩陣得到分類置信度進行線性融合操作,從而得到分類結果。Softmax函數(shù)主要用于多分類任務中,logSoftmax函數(shù)是Softmax的一個變種,具有更好的數(shù)值穩(wěn)定性,可簡寫為:
輸出值范圍為[-inf,0),表示輸入xi對應每個類的概率。
融合過程可總結為:
其中,λ表示融合時點云特征的權重,由實驗得λ=0.4為最優(yōu)值。
為評估模型在分類任務上的效果,本文采用由普林斯頓大學提出的ModelNet40數(shù)據(jù)集[18]及其擴展的投影圖集。ModelNet40數(shù)據(jù)集共有12 311個人造物體的CAD模型,分為40類,其中,9 843個用于訓練,2 468個用于測試。它擴展的投影圖集來自馬薩諸塞大學阿姆赫斯特分校的研究MVCNN-new[19],是對ModelNet40中的模型通過不同角度投影所得,分為12個視角,共147 732張圖像。本文主要使用的是視角1,具體的實驗環(huán)境與配置如表1所示。
表1 實驗環(huán)境與配置Table 1 Experimental environment and configuration
對于點云特征提取模塊,優(yōu)化器為Adam,初始學習率為0.001,樣本大小為32,共訓練200個epoch;對于圖像特征提取模塊,優(yōu)化器為Adam,初始學習率為0.000 1,樣本大小為64,共訓練30個epoch。
輸入的三維點云數(shù)據(jù)是對ModelNet40數(shù)據(jù)集中原始物體模型的網(wǎng)格面上均勻采樣1 024個點而得到的,并將其歸一化到一個單位球面[20]。輸入的投影圖數(shù)據(jù)則是對原始物體模型在某個固定角度的投影,部分輸入可視化結果如圖4所示。
圖4 輸入數(shù)據(jù)示例Fig.4 Input data example
實驗對本文模型在ModelNet40數(shù)據(jù)集上的分類準確率與其他三維模型分類網(wǎng)絡輸出精度進行對比,結果如表2所示。其中“,√”表示模型選擇的輸入“,—”表示模型未選擇的輸入。從表2可以看出,本文模型在分類任務上表現(xiàn)最佳,總體分類精度比基于點云輸入的PointCNN和Point2Seq[21]提高4.7和3.8個百分點,比基于投影圖輸入的GVCNN和MVCNN提高3.3和1.4個百分點,這是因為本文模型同時選擇了點云和圖像作為輸入,所以本文模型在ModelNet40數(shù)據(jù)集上的分類性能夠有大幅提升。
表2 7種模型在ModelNet40數(shù)據(jù)集上的分類精度對比Table 2 Comparison of classification accuracy of seven models on ModelNet40 dataset %
實驗考察了權重取值對點云特征在融合時分類精度的影響,結果如表3所示。從表3可以看出,隨著權重的增大,本文模型的分類精度呈現(xiàn)先增大后降低的趨勢,且當權重為0.4時分類精度最大。
表3 不同權重下本文模型的分類精度對比Table 3 Comparison of classification accuracy of the proposed model under different weights %
為更好地對本文模型的各模塊作用進行評判,以及更深入地挖掘點云特征和圖像特征間的關系,本文采用不同的圖像特征提取模塊進行消融實驗,結果如表4所示。其中,“—”表示未選擇的該模塊或權重。從表4可以看出:僅采用PointCNN點云特征提取模塊時,得到的初始精度為91.6%,當加入圖像特征提取模塊后,模型的整體性有大幅提高,且模塊的總精度隨著圖像模塊精度的提升而逐漸增大;采用ResNext101提取圖像特征時,模塊的最高總精度為96.4%,通過引入權重來優(yōu)化模型,具體表現(xiàn)出2個模塊對最終結果的影響,即模塊之間形成互補關系,且以圖像模塊為主、點云模塊為輔。
表4 消融實驗結果Table 4 Ablation experiment results
圖5是本文模型在ModelNet40數(shù)據(jù)集上取得最高精度時的混淆矩陣。由圖5可知,除花盆(flower_pot)類之外,本文模型在其他39類上都取得良好效果,花盆類多數(shù)被錯判為植物類(plant)和花瓶類(vase),這主要是由該數(shù)據(jù)集本身導致的。
圖5 本文模型的混淆矩陣Fig.5 Confusion matrix of the proposed model
本文設計一種基于多模態(tài)特征融合的三維點云分類模型。該模型同時以點云數(shù)據(jù)與圖像數(shù)據(jù)作為輸入,分別采用其各自的特征提取模塊提取分類特征,并對提取的分類特征進行加權線性融合得到分類結果,以提高模型的分類準確率。通過ModelNet40數(shù)據(jù)集上的實驗評估來選擇最優(yōu)圖像特征提取模型,并驗證了該模型相比其他模型的分類性能與精度均有大幅提升。下一步將引入圖卷積神經(jīng)網(wǎng)絡對點云特征提取模塊進行優(yōu)化,以得到更為完整的局部特征,從而增強本文模型的特征表征能力并提高其分類性能。