呂帥君, 邢 燕, 洪沛霖
(1.合肥工業(yè)大學(xué) 數(shù)學(xué)學(xué)院,安徽 合肥 230601; 2.安徽中醫(yī)藥大學(xué) 醫(yī)藥信息工程學(xué)院,安徽 合肥 230012)
三維形狀的獲取越來越容易,這對(duì)三維物體分類的發(fā)展至關(guān)重要,目前的主要方法大都依賴卷積神經(jīng)網(wǎng)絡(luò)解決三維物體的分類問題。卷積神經(jīng)網(wǎng)絡(luò)通過提取物體的各種高維特征對(duì)物體進(jìn)行分類預(yù)測(cè)。
對(duì)于三維形狀,有幾種比較流行的數(shù)據(jù)類型:體素[1]、點(diǎn)云[2]、多視角圖片[3]和網(wǎng)格[4]。體素在概念上類似于二維空間中的像素,可以看作數(shù)據(jù)在三維空間中的最小單位。體素表示法是一種規(guī)格化的表示方法,但其分辨率的限制導(dǎo)致很多細(xì)節(jié)缺失。點(diǎn)云是三維坐標(biāo)系中點(diǎn)的集合,可以表示物體的外表形狀;除了最基本的位置信息以外,也可以在點(diǎn)云中加入其他信息,如點(diǎn)的色彩信息等。但由于點(diǎn)與點(diǎn)之間沒有連接關(guān)系,點(diǎn)云表示方法缺少物體的表面信息。多視角圖片(簡(jiǎn)稱多視圖)是通過不同視角的虛擬攝像機(jī)從物體模型中獲取的二維圖像的集合。多視圖通常需要使用比較多的圖片來構(gòu)建完整的三維模型,在固定圖片數(shù)量的情況下,容易受到物體自遮擋等因素的影響。網(wǎng)格是由一組多邊形表面組成的非結(jié)構(gòu)化數(shù)據(jù),目前最普遍使用的是三角網(wǎng)格。多邊形網(wǎng)格通過一種易于渲染的方式表示三維物體模型,在三維可視化等領(lǐng)域有很大作用。
近年來,隨著神經(jīng)網(wǎng)絡(luò)的發(fā)展和顯卡硬件設(shè)備的升級(jí),深度學(xué)習(xí)在識(shí)別、分類、數(shù)據(jù)挖掘、機(jī)器翻譯、自然語(yǔ)言處理、語(yǔ)音處理、計(jì)算機(jī)視覺等領(lǐng)域都取得了很多成果,解決了很多復(fù)雜的模式識(shí)別難題,甚至在某些領(lǐng)域的識(shí)別能力超過人類。卷積神經(jīng)網(wǎng)絡(luò)在三維網(wǎng)格處理上的應(yīng)用也越來越多。文獻(xiàn)[4]提出了一種學(xué)習(xí)網(wǎng)格信息的卷積神經(jīng)網(wǎng)絡(luò),它將面作為最小單元,定義了共享邊的面之間的連接,使得網(wǎng)絡(luò)能夠通過逐面處理解決網(wǎng)格數(shù)據(jù)的復(fù)雜性和不規(guī)則性;文獻(xiàn)[5]提出了一種基于邊的能夠簡(jiǎn)化網(wǎng)格模型用于三維網(wǎng)格分類和分割任務(wù)的卷積神經(jīng)網(wǎng)絡(luò)。
深度學(xué)習(xí)的成功得益于幾十年積累的海量數(shù)據(jù),但是對(duì)于很多特定任務(wù)的標(biāo)簽,數(shù)據(jù)并不充足,而且獲取也相當(dāng)困難,因此研究半監(jiān)督、弱監(jiān)督和無監(jiān)督學(xué)習(xí)很必要。弱監(jiān)督學(xué)習(xí)[6]是已知數(shù)據(jù)和其一一對(duì)應(yīng)的弱標(biāo)簽,訓(xùn)練一個(gè)智能算法,將輸入數(shù)據(jù)映射到一組更強(qiáng)的標(biāo)簽的過程。半監(jiān)督學(xué)習(xí)[7]是指已知部分?jǐn)?shù)據(jù)對(duì)應(yīng)的標(biāo)簽,另一部分?jǐn)?shù)據(jù)的標(biāo)簽未知,訓(xùn)練一個(gè)智能算法,學(xué)習(xí)已知標(biāo)簽和未知標(biāo)簽的數(shù)據(jù),將輸入數(shù)據(jù)映射到標(biāo)簽的過程。
受到弱監(jiān)督的圖像分割任務(wù)[8-9]的啟發(fā),本文針對(duì)半監(jiān)督三維網(wǎng)格數(shù)據(jù)的分類問題,在文獻(xiàn)[4]的全監(jiān)督MeshNet網(wǎng)絡(luò)的基礎(chǔ)上,利用網(wǎng)格數(shù)據(jù)的結(jié)構(gòu)相似性和幾何一致性,在一般的交叉熵?fù)p失函數(shù)中加入正則化損失。這一針對(duì)網(wǎng)格分類任務(wù)的正則化損失的設(shè)計(jì),有效提高了網(wǎng)格分類的準(zhǔn)確率。
三維形狀的網(wǎng)格數(shù)據(jù)包括頂點(diǎn)、邊和面,邊由2個(gè)頂點(diǎn)確定,封閉的邊組成面。文獻(xiàn)[4]將面看作最小處理單元,并將面的特征分為空間特征和結(jié)構(gòu)特征??臻g特征用三角形的中心點(diǎn)坐標(biāo)表示;結(jié)構(gòu)特征包括三角形中心點(diǎn)到3個(gè)頂點(diǎn)的角向量、三角形的單位法向量和三角形鄰域面的索引,如圖1所示。
圖1 三角面的各種特征
文獻(xiàn)[4]是在全監(jiān)督的情況下對(duì)數(shù)據(jù)集進(jìn)行分類,本文針對(duì)標(biāo)簽數(shù)據(jù)不足的半監(jiān)督情況,增加正則化損失,提高分類準(zhǔn)確率。為了測(cè)試本文提出的正則化損失在不同標(biāo)注數(shù)據(jù)比例下的效率,對(duì)10%、30%、50%、70%、90%的標(biāo)注數(shù)據(jù)均進(jìn)行了實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,增加的正則化損失可使在各種標(biāo)注比例的數(shù)據(jù)集上訓(xùn)練所得的模型獲得更高的分類準(zhǔn)確率。
本文采用MeshNet網(wǎng)絡(luò),網(wǎng)絡(luò)架構(gòu)如圖2所示。
圖2 MeshNet網(wǎng)絡(luò)架構(gòu)
網(wǎng)絡(luò)的輸入是三角面相關(guān)的一系列初始值,如三角形中心點(diǎn)坐標(biāo)、單位法向量、角向量、鄰域面索引(圖1)。經(jīng)過空間描述符模塊和結(jié)構(gòu)描述符模塊產(chǎn)生初始的空間特征和結(jié)構(gòu)特征。隨后這些特征與鄰域面索引被聚合到網(wǎng)格卷積模塊,并輸入到一個(gè)池化函數(shù)中,輸出用于后續(xù)任務(wù)的全局特征。
與空間位置相關(guān)的初始值是中心點(diǎn)坐標(biāo)。在空間描述符模塊中,對(duì)每一個(gè)中心點(diǎn)坐標(biāo)簡(jiǎn)單地應(yīng)用一個(gè)共享的多層感知器,輸出初始的空間特征,如圖3所示。
圖3 空間描述符模塊
結(jié)構(gòu)描述符模塊比較復(fù)雜,包括面的旋轉(zhuǎn)卷積和核相關(guān)操作。面旋轉(zhuǎn)卷積(face rotation convolution, FRC)考慮面的形狀信息,獲取的是面的內(nèi)部結(jié)構(gòu),而面核相關(guān)(face kernel correlation, FKC)考慮面的周圍信息,獲取的是面的外部結(jié)構(gòu)。
FRC模塊以面的角向量作為輸入,假設(shè)面的角向量分別為v、v2和v3,則FRC模塊的輸出定義如下:
(1)
其中,f(·,·):R3×R3→RK1和g(·):RK1→RK2是由待學(xué)習(xí)的權(quán)值形成的函數(shù),K1、K2分別表示函數(shù)f(·,·)和g(·)輸出的維度。
FKC模塊將面的單位法向量和鄰域面索引作為輸入,計(jì)算面和可學(xué)習(xí)的核之間的相關(guān)性。第i個(gè)面和第k個(gè)核之間的核相關(guān)定義如下:
(2)
其中:|Ni|為第i個(gè)面和它的鄰域面的法向集合的元素個(gè)數(shù);|Mk|為第k個(gè)核中法向集合的元素個(gè)數(shù);核函數(shù)Kσ(·,·):R3×R3→R度量2個(gè)向量的親和度,實(shí)驗(yàn)選用高斯核函數(shù)。核相關(guān)可以挖掘網(wǎng)格中的局部結(jié)構(gòu)[10-11]。
網(wǎng)格卷積模塊包括空間特征與結(jié)構(gòu)特征的聯(lián)合部分和結(jié)構(gòu)特征與鄰域特征的聚合部分??臻g特征與結(jié)構(gòu)特征的聯(lián)合是將它們串聯(lián)起來并使用1個(gè)多層感知器來生成新的特征。結(jié)構(gòu)特征與鄰域特征的聚合是先將結(jié)構(gòu)特征與3個(gè)鄰域面特征分別串聯(lián),并經(jīng)過1個(gè)共享的多層感知器處理,再對(duì)結(jié)果應(yīng)用最大池化得到新的特征。
深度學(xué)習(xí)中,正則化項(xiàng)有防止過擬合、提高泛化能力的作用。當(dāng)模型參數(shù)過多時(shí),網(wǎng)絡(luò)會(huì)發(fā)生過擬合,即對(duì)訓(xùn)練數(shù)據(jù)擬合得很好的模型通常無法很好地?cái)M合測(cè)試數(shù)據(jù)。一般地,過于復(fù)雜的模型會(huì)引起過擬合,此時(shí)模型泛化能力比較低;相反,模型相對(duì)簡(jiǎn)單時(shí),模型擬合能力較低,而泛化能力相對(duì)較高。引入正則化項(xiàng)是利用人們對(duì)問題的認(rèn)識(shí)和對(duì)解的估計(jì)的先驗(yàn)知識(shí)。先驗(yàn)知識(shí)增加了對(duì)模型的限制,可以降低模型的方差,提高模型的穩(wěn)定性,但也會(huì)使模型的偏置增大。偏置與方差之間的權(quán)衡是機(jī)器學(xué)習(xí)的基本主題之一。
本文利用“特征相似的網(wǎng)格更加可能屬于同一類別”這樣的先驗(yàn)知識(shí)提高分類準(zhǔn)確率。網(wǎng)絡(luò)學(xué)習(xí)得到的特征向量包含網(wǎng)格可用于分類的各種結(jié)構(gòu)特征和空間幾何特征,利用特征向量差值的L2范數(shù)的平方來度量不同網(wǎng)格之間的差異。正則化損失定義如下:
1‖yi-yj‖≥δexp(-‖fi-fj‖2)]
(3)
其中:y為預(yù)測(cè)的分類概率向量;f為網(wǎng)絡(luò)學(xué)到的網(wǎng)格特征向量;fi和fj分別表示從網(wǎng)絡(luò)模型得到的第i個(gè)和第j個(gè)網(wǎng)格的特征向量;yi和yj分別表示第i個(gè)和第j個(gè)網(wǎng)格的網(wǎng)絡(luò)預(yù)測(cè)輸出(屬于不同類別的概率向量);1‖yi-yj‖<δ、1‖yi-yj‖≥δ是指示函數(shù),分別表示條件‖yi-yj‖<δ和‖yi-yj‖>δ為真時(shí)等于1,否則等于0;δ為區(qū)分是否屬于同一類別的閾值。
模型最終的損失函數(shù)如下:
l=D(y,g)+λR(y,f)
(4)
其中:D(y,g)為數(shù)據(jù)項(xiàng),是預(yù)測(cè)結(jié)果y與真實(shí)標(biāo)簽g之間的交叉熵?fù)p失;R(y,f)為式(3)定義的正則化項(xiàng);λ為平衡因子,用來平衡數(shù)據(jù)項(xiàng)和正則化項(xiàng),λ越大,正則化項(xiàng)的作用越大,不同的λ值會(huì)導(dǎo)致不同的分類結(jié)果。根據(jù)經(jīng)驗(yàn),實(shí)驗(yàn)中設(shè)置λ=5×10-6。
本文模型使用的數(shù)據(jù)集來自文獻(xiàn)[1]的ModelNet40數(shù)據(jù)集,數(shù)據(jù)集包括來自40個(gè)類別的12 311個(gè)網(wǎng)格模型,其中9 843個(gè)用于訓(xùn)練,2 468個(gè)用于測(cè)試。為了統(tǒng)一輸入數(shù)據(jù)格式,每個(gè)網(wǎng)格被簡(jiǎn)化或擴(kuò)充為1 024個(gè)面的網(wǎng)格,再被平移到網(wǎng)格的幾何中心并歸一化到單位球內(nèi)。訓(xùn)練過程中,通過一個(gè)均值為0、標(biāo)準(zhǔn)差為0.01的高斯噪聲抖動(dòng)頂點(diǎn)位置來增強(qiáng)數(shù)據(jù)。
模型訓(xùn)練采用的優(yōu)化算法為隨機(jī)梯度下降法,初始學(xué)習(xí)率為0.01,動(dòng)量為0.9,學(xué)習(xí)率的衰減率為0.000 5。設(shè)置最大epoch次數(shù)為150,批大小為64。
本文實(shí)驗(yàn)在Python3.6,Intel(R) Core(TM) i9-9900K CPU @3.60 GHz×16, RAM 32 GiB和Nvidia RTX 2080Ti GPU環(huán)境上運(yùn)行的。
關(guān)于分類的數(shù)值指標(biāo),本文選用常見的準(zhǔn)確率(accuracy)和平均精度均值(mean average precision,mAP)。
首先引入4個(gè)符號(hào):
TP:預(yù)測(cè)正確的正例樣本個(gè)數(shù);
TN:預(yù)測(cè)正確的負(fù)例樣本個(gè)數(shù);
FP:標(biāo)簽為負(fù)例,被錯(cuò)分為正例的樣本個(gè)數(shù);
FN:標(biāo)簽為正例,被錯(cuò)分為負(fù)例的樣本個(gè)數(shù)。
準(zhǔn)確率(A)是正確分類(即預(yù)測(cè)與標(biāo)簽一致)的樣本數(shù)與樣本總數(shù)之比。對(duì)于某一類別,計(jì)算公式如下:
(5)
其中:分子是預(yù)測(cè)正確的樣本數(shù),包括預(yù)測(cè)正確的正樣本數(shù)TP和預(yù)測(cè)正確的負(fù)樣本數(shù)TN;分母為樣本總數(shù),包括預(yù)測(cè)正確的樣本數(shù)(TP+TN)和預(yù)測(cè)錯(cuò)誤的樣本數(shù)(FP+FN)。
平均精度均值(用mAP表示)指標(biāo)需要先定義查準(zhǔn)率和召回率:
P=TP/TP+FP
(6)
R=TP/TP+FN
(7)
其中:P為查準(zhǔn)率(precision),表示真實(shí)的正例占預(yù)測(cè)為正例的樣本比例,它針對(duì)預(yù)測(cè)為正例的結(jié)果;R為召回率(recall),表示被正確預(yù)測(cè)的正例占總正例的比例,它針對(duì)正例標(biāo)簽的樣本。
平均精度(average precision,AP)的定義如下:
(8)
其中,P(R)為系統(tǒng)在召回率為R時(shí)的查準(zhǔn)率。
因?yàn)閷?shí)驗(yàn)中的樣本一般為離散量,所以求解AP的積分一般用離散求和形式替代,具體表達(dá)式為:
(9)
mAP可表示K個(gè)類別的AP均值或K次查詢的AP均值,定義如下:
(10)
實(shí)驗(yàn)中,將本文方法與以往有代表性的方法作對(duì)比,結(jié)果見表1所列。本文方法使用了與MeshNet相同的實(shí)驗(yàn)參數(shù)設(shè)置,其他對(duì)比方法沿用了其論文中最高性能的參數(shù)設(shè)置,表1中的數(shù)據(jù)有些直接摘自其發(fā)表的論文。由于MeshNet網(wǎng)絡(luò)架構(gòu)充分利用了網(wǎng)格的空間特征和結(jié)構(gòu)特征,加上精心設(shè)計(jì)的先驗(yàn)損失,本文所提的分類方法在全監(jiān)督分類性能上比以往方法都有所提升,既遠(yuǎn)遠(yuǎn)超出傳統(tǒng)的基于網(wǎng)格的SPH方法[12]和基于多視圖的LFD方法[13],又能與基于體素的3DShapeNets[1]、基于點(diǎn)云的PointNet[2]、基于多視圖的MVCNN[3]和基于網(wǎng)格的MeshNet[4]等深度學(xué)習(xí)的方法相媲美。
表1 ModelNet40數(shù)據(jù)集上的分類性能比較 %
為進(jìn)一步驗(yàn)證所提的正則化損失的有效性,本文對(duì)ModelNet40數(shù)據(jù)集選擇不同的標(biāo)注比例進(jìn)行半監(jiān)督實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果的2種數(shù)值指標(biāo)分別見表2和表3所列。
表2 ModelNet40數(shù)據(jù)集上半監(jiān)督分類的準(zhǔn)確率 %
表3 ModelNet40數(shù)據(jù)集上半監(jiān)督分類的mAP指標(biāo) %
同時(shí),表2和表3也給出了消融實(shí)驗(yàn)的結(jié)果用以對(duì)比。從表2和表3可以看出,增加的正則化項(xiàng)在不同比例的標(biāo)注數(shù)據(jù)下都提高了分類準(zhǔn)確率。
本文針對(duì)半監(jiān)督三維網(wǎng)格數(shù)據(jù)的分類問題提出一種基于正則化損失的MeshNet半監(jiān)督分類方法,利用數(shù)據(jù)的結(jié)構(gòu)相似性和幾何相似性提高了分類準(zhǔn)確率,多種量化指標(biāo)都優(yōu)于僅用交叉熵?fù)p失的分類。本文所提的分類方法不僅適用于網(wǎng)格分類問題,而且在網(wǎng)格分割、網(wǎng)格去噪、圖像處理、語(yǔ)音處理等領(lǐng)域均可以使用。在后續(xù)的工作中,將探討超參數(shù)的設(shè)定,如式(3)中δ的選取,并探索設(shè)計(jì)更好的與任務(wù)相適應(yīng)的先驗(yàn)項(xiàng)來提高網(wǎng)絡(luò)性能。