國玉恩 任明武
(南京理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院 南京 210094)
隨著數(shù)據(jù)采集技術(shù)的飛速發(fā)展以及3D 傳感器的迅速普及,3D 數(shù)據(jù)的識別與分析成為計算機(jī)視覺與模式識別領(lǐng)域的熱門研究方向。點(diǎn)云作為3D數(shù)據(jù)的一種廣泛應(yīng)用形式,吸引了眾多研究者探索開發(fā)用于形狀分類的高效表示方法。
對于點(diǎn)云數(shù)據(jù),一種直觀的想法是類比CNN的操作,通過體素化將非結(jié)構(gòu)化的點(diǎn)云數(shù)據(jù)轉(zhuǎn)換為規(guī)則的三維網(wǎng)格,在此基礎(chǔ)上應(yīng)用3DConvNets[2~3]。但是點(diǎn)云的稀疏性導(dǎo)致體素化之后每個網(wǎng)格分辨率嚴(yán)格受限,三維卷積核的特征提取也使得計算成本成指數(shù)增長,盡管有相關(guān)研究使用kd樹[4]和八叉樹[5]分層劃分三維空間以利用點(diǎn)云的稀疏性,但并沒有針對局部幾何結(jié)構(gòu)進(jìn)行特征提取,其本質(zhì)仍是高維空間的卷積,難以獲得高分辨率的數(shù)據(jù)。
另一種是基于多視圖的方法,從點(diǎn)云的不同方向生成一組視圖,然后利用較成熟的卷積神經(jīng)網(wǎng)絡(luò)提取特征,比如AlexNet[6]、VGG[7]、GoogleNet[8]、ResNet[9],最后融合不同視圖的特征進(jìn)而完成分類任務(wù)。例如,MVCNN[10]提出一種用于三維形狀識別的多視圖卷積神經(jīng)網(wǎng)絡(luò),不同視圖的特征通過池化轉(zhuǎn)換成全局形狀特征;CNN-BiLSTM[11]使用雙向長短期記憶模塊BiLSTM聚合不同視圖的信息。但是受角度的限制,該方法的每個視圖僅呈現(xiàn)整個點(diǎn)云的局部平面結(jié)構(gòu),因而喪失了很多空間結(jié)構(gòu)信息,難以做到有效的特征提取。
相比于體素化數(shù)據(jù)和多視圖數(shù)據(jù),點(diǎn)云包含更多空間結(jié)構(gòu)信息,是描述三維對象最簡潔直觀的一種表示形式,可以使用RGB-D 相機(jī)、雷達(dá)等傳感器輕松獲取。盡管如此,使用點(diǎn)云作為直接輸入的分類識別任務(wù)仍然具有相當(dāng)?shù)奶魬?zhàn)性。點(diǎn)云的無序性、旋轉(zhuǎn)不變性特點(diǎn)決定了其不能直接使用傳統(tǒng)的深度學(xué)習(xí)方法進(jìn)行特征提取,這也激發(fā)了大批學(xué)者的研究熱忱。
PointNet[12]作為直接使用點(diǎn)云的開創(chuàng)者,創(chuàng)造性地使用最大值對稱函數(shù)和STN 空間變換網(wǎng)絡(luò)解決了這兩個難題,使得點(diǎn)云深度學(xué)習(xí)成為可能。但是PointNet 僅僅局限于對全局特征的提取,對于更精細(xì)的局部特征并沒有有效利用。為此,其作者又提出PointNet++[13],將點(diǎn)云劃分為不同大小的鄰域,分級提取局部特征,盡管分類準(zhǔn)確率有所提高,但是對于每一個局部分組而言,其本身仍然是一個“整體”,只是對原始點(diǎn)云的縮小化。而PointConv利用逆密度加權(quán)的非線性卷積提取局部特征,對于給定點(diǎn)云,使用核密度估計計算密度,并使用MLP進(jìn)行逆密度自適應(yīng)加權(quán),不僅有效利用了局部密度特征,而且在顯存消耗和計算效率上也有出色表現(xiàn)。
本文首先對PointConv 的基本架構(gòu)進(jìn)行簡要介紹,然后詳細(xì)描述本文基于PointConv 改進(jìn)的分類網(wǎng)絡(luò)架構(gòu)。其中,使用密集特征Dense Feature 對PointConv 進(jìn)行改進(jìn),聚合多尺度、多層次的局部鄰域語義信息,通過對低層次空間結(jié)構(gòu)特征和高層次抽象語義特征的綜合利用,提高網(wǎng)絡(luò)的泛化能力。在數(shù)據(jù)集ModelNet40上的對比測試表明,本文提出的改進(jìn)網(wǎng)絡(luò)的整體準(zhǔn)確率和類平均準(zhǔn)確率均顯著提高。
該網(wǎng)絡(luò)將傳統(tǒng)CNN 中的滑動濾波器擴(kuò)展到一個新的卷積運(yùn)算,即PointConv。該卷積運(yùn)算可以視為局部坐標(biāo)的非線性函數(shù),由核密度函數(shù)和權(quán)函數(shù)組成,基于PointConv 可以構(gòu)建直接應(yīng)用于點(diǎn)云的深度卷積網(wǎng)絡(luò)。
PointConv 卷積由三維連續(xù)卷積推導(dǎo)而來,是其蒙特卡羅近似的擴(kuò)展。對于每個滑動濾波器,使用多層感知機(jī)MLP 來逼近權(quán)函數(shù),使用核密度估計方法計算每個局部鄰域的密度。逼近權(quán)函數(shù)的思想也有在其他網(wǎng)絡(luò)模型[14~15]中使用,但是并沒有考慮密度特征的近似。為了讓網(wǎng)絡(luò)自適應(yīng)地決定是否應(yīng)用核密度估計,使用最大似然對所得密度做非線性變換得到其對應(yīng)的逆密度因子,其公式如下:
其中,K和k分別代表K近鄰局部區(qū)域和索引下標(biāo),Cin和cin分別代表輸入特征圖的通道數(shù)及其索引。圖1 顯示了一個K近鄰局部區(qū)域內(nèi)的Point?Conv操作。
圖1 PointConv操作
其中,Plocal?RK×3,代表K近鄰局部鄰域內(nèi)其他近鄰點(diǎn)相對于中心點(diǎn)的局部坐標(biāo),Compute Weight是使用1×1 卷積實(shí)現(xiàn)的多層感知機(jī)網(wǎng)絡(luò),經(jīng)此步驟后得到權(quán)函數(shù)W,W?RK×Cin×Cout;Density 代表離線計算得到的密度,Compute Inverse Density Scale是另一個多層感知機(jī)網(wǎng)絡(luò),用來計算與密度相對應(yīng)的逆密度因子S,S?RK;Fin?RK×Cin,代表局部鄰域特征,與逆密度因子逐點(diǎn)相乘后再與權(quán)函數(shù)做矩陣乘積,最后經(jīng)過1×1 的卷積得到經(jīng)逆密度加權(quán)的局部特征Fout,Fout?RCout。
PointConv 通過在所有點(diǎn)之間共享MLP 的參數(shù)解決點(diǎn)云的無序性問題。對任意一個局部區(qū)域而言,其內(nèi)部點(diǎn)相對于中心點(diǎn)的相對位置是不變的,用相對位置作為權(quán)函數(shù)的輸入,解決點(diǎn)云的旋轉(zhuǎn)不變性問題。
PointConv 整體網(wǎng)絡(luò)架構(gòu)中使用PointNet++的multi-resolution grouping(MRG)層提取點(diǎn)集特征,該結(jié)構(gòu)由采樣層、分組層和PointConv 操作組成,通過堆疊數(shù)個MRG 層將局部鄰域特征組合成覆蓋更大鄰域的高維特征,最后經(jīng)過全連接網(wǎng)絡(luò)FCN得到點(diǎn)云類別信息,其整體網(wǎng)絡(luò)架構(gòu)如圖2所示。
圖2 PointConv整體網(wǎng)絡(luò)架構(gòu)
N0代表初始點(diǎn)云中點(diǎn)的數(shù)量,N1,N2,N3分別代表不同采樣層中采樣中心即局部鄰域的個數(shù);C0代表除三維坐標(biāo)以外的其他信息,如法線、顏色等;C1,C2,C3分別代表特征通道數(shù)。MRG 層的輸入為N×C特征圖,相對應(yīng)的輸出為N'×C',在其前向傳播過程中,Sampling 操作采用最遠(yuǎn)點(diǎn)采樣FPS 算法得到局部鄰域的中心點(diǎn),Grouping 根據(jù)中心點(diǎn)坐標(biāo)和鄰域半徑從輸入點(diǎn)云中找出nsample個近鄰點(diǎn)構(gòu)成局部鄰域,最后輸入到PointConv 中提取特征。
前兩個MRG 層的采樣中心點(diǎn)個數(shù)依次遞減,采樣半徑依次增大,第三層MRG 將所有特征信息聚集在一個點(diǎn)上,所以不再需要根據(jù)采樣半徑劃分局部區(qū)域,而是直接與全連接網(wǎng)絡(luò)連接得到分類結(jié)果。盡管有效利用了高層次的抽象特征,但是缺少對低層次空間結(jié)構(gòu)特征的直接利用。
本文在PointConv 整體架構(gòu)的基礎(chǔ)上,用多層次、多尺度的密集特征Dense Feature 對其進(jìn)行改進(jìn),通過對上下文語義信息的聚合,實(shí)現(xiàn)了對多級局部鄰域特征的綜合利用,從而達(dá)到增強(qiáng)網(wǎng)絡(luò)泛化能力的目的。
PointConv 的整體網(wǎng)絡(luò)架構(gòu)中,特征的傳遞僅發(fā)生在前后兩層之間,每個后續(xù)層只對前一層的輸出進(jìn)行操作,所以該操作缺少了對不同層次特征的利用;考慮到前后兩層之間的采樣半徑也是不同的,所以還缺少了對不同尺度特征的利用。
針對以上問題,本文受DenseNet[16]中密集連接模式的啟發(fā),建立不同層之間的連接關(guān)系,充分利用各層的特征圖,在保證網(wǎng)絡(luò)中特征提取層與全連接網(wǎng)絡(luò)之間最大程度信息傳輸?shù)那疤嵯?,直接將所有特征圖連接起來組成密集特征Dense Feature。
在特征提取的基礎(chǔ)上,首先利用特征壓縮函數(shù)處理每一層的特征圖,出于對點(diǎn)云無序性的考慮,特征壓縮函數(shù)必須是一個對稱函數(shù)(例如MAX 或者SUM),經(jīng)過處理后的特征圖可以直接在通道維度上進(jìn)行拼接,用于后面的上下文聚合。加入特征壓縮的PointConv卷積如式(2)所示。
其中,Ψ 代表特征壓縮函數(shù),DFout代表經(jīng)壓縮函數(shù)壓縮后的特征圖。圖3 即為加入特征壓縮函數(shù)后的PointConv卷積示意圖。
圖3 利用密集特征改進(jìn)的PointConv操作
隨著網(wǎng)絡(luò)層次結(jié)構(gòu)加深,特征圖的通道數(shù)也越來越多,拼接之后往往導(dǎo)致復(fù)雜度過高,為此,本文將網(wǎng)絡(luò)中每一層輸出的特征維度都限定在較小的范圍內(nèi)。在得到所有的壓縮特征圖之后,利用Con?cat操作對其進(jìn)行拼接,公式如下:
其中,DFi代表第i個MRG 層壓縮后的特征圖,得到的DFcon即為融合多層次、多尺度語義信息的密集特征,有效保證了特征信息傳輸?shù)淖畲蠡?,將此密集特征輸入到全連接網(wǎng)絡(luò)中,即可得到最終的分類結(jié)果。
改進(jìn)后的網(wǎng)絡(luò)架構(gòu)如圖4 所示,需要注意的是,因為Dense Feature中的拼接操作需要保證除通道數(shù)以外的維度一致性,本文的網(wǎng)絡(luò)架構(gòu)在提取特征的時候,并沒有將采樣中心點(diǎn)的數(shù)目逐級遞減,而是固定一個常數(shù)N不變,這也是我們的網(wǎng)絡(luò)架構(gòu)與PointConv 的重要區(qū)別。由于側(cè)重于對多級鄰域特征的聚合,固定鄰域數(shù)目也能說明密集特征的有效性,這一思想類似于圖卷積神經(jīng)網(wǎng)絡(luò)DGCNN[17]的動態(tài)更新,不同之處在于,DGCNN 固定的是局部鄰域中點(diǎn)的數(shù)目,而本文中不變的是局部鄰域的數(shù)目。
圖4 本文整體網(wǎng)絡(luò)架構(gòu)
從圖4可以看出,本文在PointConv整體網(wǎng)絡(luò)架構(gòu)的基礎(chǔ)上增加了一個MRG 層,用于提取更多層次特征。類比CNN 中深層次卷積核能獲取更大的感受野的特點(diǎn),四個MRG 層中局部鄰域的采樣半徑和鄰域點(diǎn)數(shù)依次增加,以此獲得多尺度的鄰域特征。
四個MRG 層中,采樣中心點(diǎn)的數(shù)目均為512,每個局部鄰域中的采樣點(diǎn)數(shù)依次為(24,32,40,48),采樣半徑依次設(shè)為(0.1,0.2,0.4,0.8),同時,為了降低顯存消耗,提高計算效率,我們將每個MRG層中用于特征提取的MLP 減少為兩層;全連接網(wǎng)絡(luò)使用相同的結(jié)構(gòu)和參數(shù)設(shè)置,具體設(shè)置如表1 所示。
表1 具體參數(shù)設(shè)置
為了驗證改進(jìn)模型的有效性,我們在Model?Net40 公開數(shù)據(jù)集上與PointConv 進(jìn)行了對比測試,該數(shù)據(jù)集包含40 個類別的CAD 模型,由9843 個訓(xùn)練模型和2468個測試模型組成。
對比測試在Ubuntu18.04 系統(tǒng)上使用Py?torch1.1 框架在一塊NVIDIA TITAN V 顯卡上進(jìn)行訓(xùn)練,為了保證對比實(shí)驗的準(zhǔn)確性,我們采用與PointConv 相同的初始超參數(shù)和優(yōu)化器,僅使用三維點(diǎn)云坐標(biāo)作為輸入;為了降低實(shí)驗數(shù)據(jù)的偶然性,我們在多次訓(xùn)練后取測試集平均值作為最終結(jié)果。以整體準(zhǔn)確率OA(Overall Accuracy)和類間平均準(zhǔn)確率AA(Average Class Accuracy)作為評價指標(biāo),測試結(jié)果如表2所示。
表2 對比測試結(jié)果
由表2 的結(jié)果可以看出,本文的網(wǎng)絡(luò)模型在測試集上的整體準(zhǔn)確率和類間平均準(zhǔn)確率上均取得了優(yōu)于PointConv 的效果。相比之下,整體準(zhǔn)確率提升了1.54%,是比較顯著的提升,而類間平均準(zhǔn)確率的提升幅度相對較小,達(dá)到0.43%。
圖5展示了不同Epoch下訓(xùn)練集Loss的變化曲線,從中可以看出,本文的網(wǎng)絡(luò)模型收斂速度更快,更夠在訓(xùn)練較少Epoch 的情況下,將Loss 降到相對更低的水平,同時模型的Loss 震蕩幅度明顯小于PointConv。
圖5 訓(xùn)練集Loss變化曲線
圖6展示了不同Epoch 下測試集OA 的變化曲線,從中可以看出,在訓(xùn)練較少的Epoch 之后,本文的模型即可取得明顯優(yōu)于PointConv 的整體準(zhǔn)確率,且后續(xù)曲線波動小,結(jié)果穩(wěn)定。
圖6 測試集OA變化曲線
本文提出了一種基于PointConv 改進(jìn)的點(diǎn)云分類網(wǎng)絡(luò),其核心在于聚合多層次、多尺度的上下文語義形成密集特征,使得全連接網(wǎng)絡(luò)的輸入既包含高維的抽象語義特征也包括低層的空間結(jié)構(gòu)特征,在固定采樣中心的個數(shù)的前提下依次遞增局部采樣點(diǎn)數(shù)和采樣半徑,實(shí)現(xiàn)了對多級局部鄰域特征的綜合利用。經(jīng)與原網(wǎng)絡(luò)架構(gòu)測試比較,本文的模型在ModelNet40 數(shù)據(jù)集上的整體分類準(zhǔn)確率和類間平均準(zhǔn)確率均有所提升,其中整體分類準(zhǔn)確率提升顯著。
現(xiàn)提出以下幾點(diǎn)展望:
1)嘗試在不同的數(shù)據(jù)集上進(jìn)行測試。本文的對比測試僅采用ModelNet40一個數(shù)據(jù)集,該數(shù)據(jù)集僅包含40 個類別,采用更大的、類別更廣泛的數(shù)據(jù)集可以更好地驗證模型泛化能力。
2)適當(dāng)?shù)貙υ键c(diǎn)云進(jìn)行數(shù)據(jù)增強(qiáng)。本文的訓(xùn)練數(shù)據(jù)直接采用三維點(diǎn)云坐標(biāo),如果訓(xùn)練之前先做一些數(shù)據(jù)增強(qiáng)工作,例如隨機(jī)縮放、裁剪等,可能對最終的分類結(jié)果有益。
3)加深網(wǎng)絡(luò)模型。已有研究證明可以通過增加網(wǎng)絡(luò)的深度來增加二維圖像的識別效果,盡管點(diǎn)云與圖像在數(shù)據(jù)規(guī)整性上存在巨大差異,但是可以借鑒圖像在深化網(wǎng)絡(luò)模型中的可取之處進(jìn)行探索。
我們將在以后的工作中針對上述問題進(jìn)行嘗試。