王 輝,李建紅
(石家莊鐵道大學(xué) 信息科學(xué)與技術(shù)學(xué)院,石家莊 050043)
與傳統(tǒng)的機(jī)器學(xué)習(xí)不同,小樣本學(xué)習(xí)[1-4]可利用少量數(shù)據(jù)有效識別全新的類別,不是為了讓機(jī)器成功識別訓(xùn)練集中的數(shù)據(jù),然后泛化到測試集,而是學(xué)會區(qū)分樣本之間的差異。小樣本學(xué)習(xí)有助于降低數(shù)據(jù)集的收集和標(biāo)注成本,現(xiàn)已廣泛用于人臉識別[5]、供電量預(yù)測[6]及醫(yī)學(xué)應(yīng)用[7-8]等領(lǐng)域。
目前,小樣本識別的研究主要基于二維圖像[9-12]。相較于二維圖像,三維(Three-Dimensional,3D)模型含有豐富的空間信息,能直觀表示真實(shí)場景的物體。隨著三維掃描技術(shù)的發(fā)展,三維模型逐漸增多,并且在機(jī)器人導(dǎo)航[13]、自動駕駛[14]及虛擬現(xiàn)實(shí)[15]等領(lǐng)域得到了廣泛應(yīng)用;但是,三維模型的小樣本識別工作仍然處于起步階段,雙元學(xué)習(xí)模型[16]利用兩層長短期記憶(Dual-Long Short-Term Memory,LSTM)網(wǎng)絡(luò)獲取短期和長期知識實(shí)現(xiàn)對查詢樣本的分類,然而識別效果并不理想。為此,本文提出基于Transformer 的三維模型小樣本識別方法(Few Shot Transformer,F(xiàn)ST)。
首先,將支持與查詢樣本輸入到點(diǎn)云神經(jīng)網(wǎng)絡(luò),提取三維模型的特征向量;其次,將支持樣本的特征向量輸入到Transformer 模塊,提取注意力特征;最后,將注意力特征與查詢樣本的特征向量輸入到余弦相似性網(wǎng)絡(luò),得到相似性分?jǐn)?shù)。實(shí)驗(yàn)結(jié)果表明,在數(shù)據(jù)集ModelNet 40[17]和ShapeNet Core[18]上,本文方法的識別效果均優(yōu)于對比方法。本文的主要工作如下:
1)提出了基于Transformer 的三維模型小樣本識別方法。首先,用PointNet++[19]提取特征信息;其次,利用Transformer得到注意力特征;此外,用余弦相似性網(wǎng)絡(luò)計(jì)算關(guān)系分?jǐn)?shù)。
2)在三維數(shù)據(jù)集ModelNet 40 和ShapeNet Core 上進(jìn)行了大量實(shí)驗(yàn),結(jié)果驗(yàn)證了本文方法的有效性。為驗(yàn)證本文方法的泛化能力,分別將ModelNet 40 和ShapeNet Core 數(shù)據(jù)集作為訓(xùn)練和測試集,同樣得到了較好的實(shí)驗(yàn)結(jié)果。
元學(xué)習(xí)利用學(xué)過的知識指導(dǎo)新任務(wù)的完成,使得神經(jīng)網(wǎng)絡(luò)像人類一樣具有學(xué)會學(xué)習(xí)的能力[20-22]。小樣本識別任務(wù)基于元學(xué)習(xí)算法實(shí)現(xiàn),根據(jù)所采用方法的不同,分成基于模型微調(diào)、生成模型、圖神經(jīng)網(wǎng)絡(luò)及度量學(xué)習(xí)的方法。
1.1.1 模型微調(diào)
針對數(shù)據(jù)集調(diào)整全連接或最后幾層網(wǎng)絡(luò)的參數(shù)即為模型微調(diào)的方法。文獻(xiàn)[23]中提出在訓(xùn)練和測試過程中采用不同的學(xué)習(xí)率,并且使用自適應(yīng)的梯度優(yōu)化器,當(dāng)訓(xùn)練和測試集差異較大時調(diào)節(jié)整個網(wǎng)絡(luò)參數(shù)。Giadris 等[24]將正則化應(yīng)用于小樣本學(xué)習(xí)算法,在更新參數(shù)時利用正則化損失約束,對不同的任務(wù)采用相同的參數(shù)。動態(tài)小樣本學(xué)習(xí)算法[25]利用圖神經(jīng)網(wǎng)絡(luò)生成全新類別對應(yīng)的權(quán)重向量,根據(jù)在訓(xùn)練集上得到的模型更新測試集的參數(shù),充分利用節(jié)點(diǎn)間的聯(lián)系,實(shí)現(xiàn)向量的重構(gòu)和更新。
該類方法較為簡單,并且適用于訓(xùn)練和測試集相似的數(shù)據(jù),但在真實(shí)的應(yīng)用場景中,測試和訓(xùn)練集往往存在差異,所以采用模型微調(diào)的方法并不能達(dá)到理想的識別效果。
1.1.2 生成模型
利用生成器擴(kuò)充樣本[26],使用含有大量樣本的基礎(chǔ)類別訓(xùn)練特征提取網(wǎng)絡(luò);利用上述數(shù)據(jù)和含有少量樣本的新類別共同訓(xùn)練分類器,達(dá)到擴(kuò)充數(shù)據(jù)集的目的?;谕獠坑洃浀乃惴ǎ?7]將支持樣本的特征向量與該類的標(biāo)簽同時存儲起來;然后,提取查詢樣本的特征向量,對比查詢與支持樣本的特征,得到關(guān)系度。改進(jìn)的自動編碼器[28]利用編碼和解碼器實(shí)現(xiàn)樣本的擴(kuò)充,提取同類的兩個樣本之間的變形信息,在解碼器中利用該信息重構(gòu)全新的樣本。
基于生成模型的小樣本識別方法簡單、易于理解,但是現(xiàn)有的工作均基于二維圖像展開研究,相比之下,三維模型具有復(fù)雜的拓?fù)浣Y(jié)構(gòu),無法利用該類方法擴(kuò)充數(shù)據(jù)。
1.1.3 圖神經(jīng)網(wǎng)絡(luò)
將二維圖像作為圖卷積神經(jīng)網(wǎng)絡(luò)(Graph Convolutional Network,GCN)中的節(jié)點(diǎn)進(jìn)行分類[29],將標(biāo)簽與圖像的特征向量拼接輸入GCN 構(gòu)建邊;然后,更新節(jié)點(diǎn)和邊向量,計(jì)算查詢樣本的分類概率。分布傳播圖網(wǎng)絡(luò)(Distribution Propagation Graph Network,DPGN)[30]使用兩個圖神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)小樣本,其中一個圖描述樣本,利用節(jié)點(diǎn)之間的關(guān)系得到樣本間的分布圖,兩個圖將樣本與分布的關(guān)系循環(huán)傳播,有效實(shí)現(xiàn)小樣本分類。與模型微調(diào)、生成模型以及度量學(xué)習(xí)相比,采用圖神經(jīng)網(wǎng)絡(luò)的小樣本學(xué)習(xí)方法較少。
1.1.4 度量學(xué)習(xí)
度量學(xué)習(xí)使用距離函數(shù)計(jì)算支持與查詢樣本的相似性分?jǐn)?shù)。匹配網(wǎng)絡(luò)[31]用卷積神經(jīng)網(wǎng)絡(luò)提取樣本的特征向量,使用全連接網(wǎng)絡(luò)度量查詢與支持樣本之間的相似度。DN4(Deep Nearest Neighbor Neural Network)[32]用多個局部代替全局特征,計(jì)算查詢與支持樣本每個局部特征的相似度,對查詢樣本分類。Li 等[33]則整合支持集中所有樣本的注意力特征,分別與支持和查詢樣本計(jì)算向量積,獲得具有判別信息的特征向量,利用該信息度量學(xué)習(xí)。由于三維模型相較于二維圖像的不規(guī)則性,所以對三維模型的小樣本識別工作仍然很少。文獻(xiàn)[16]中基于度量學(xué)習(xí)提出含有兩層LSTM 的雙元學(xué)習(xí)模型,在識別任務(wù)中獲取短期和長期知識,但該方法的效果并不理想。
點(diǎn)云神經(jīng)網(wǎng)絡(luò)是對點(diǎn)云表示的三維模型進(jìn)行數(shù)據(jù)處理的神經(jīng)網(wǎng)絡(luò),可用于三維模型的分類、分割和檢索等任務(wù)。PointNet[34]將點(diǎn)云作為網(wǎng)絡(luò)的輸入對每個點(diǎn)均單獨(dú)使用多層感知器(Multi-Layer Perceptron,MLP),通過最大池化操作獲得全局特征,但是PointNet 只學(xué)習(xí)點(diǎn)云的全局特征,忽略了局部區(qū)域的上下文信息。PointNet++[19]在PointNet 的基礎(chǔ)上加入多尺度信息學(xué)習(xí)局部特征,將3D 點(diǎn)云劃分為多個區(qū)域,每個區(qū)域通過PointNet 提取局部特征,解決不同密度的點(diǎn)云采樣分布不均問題。由于PointNet++可以更好地提取點(diǎn)云的局部特征,故本文采用PointNet++作為特征提取網(wǎng)絡(luò)對點(diǎn)云數(shù)據(jù)提取特征信息。
關(guān)系分類器計(jì)算查詢和支持樣本的關(guān)系分?jǐn)?shù)。原型網(wǎng)絡(luò)的擴(kuò)展[35]使用歐氏距離度量相似性,首先,對同類樣本的特征向量求平均值,作為類原型;然后,計(jì)算查詢樣本與每個類原型的距離,越近代表越相似,實(shí)現(xiàn)對查詢樣本的分類。關(guān)系網(wǎng)絡(luò)[36]將分類問題轉(zhuǎn)換成兩個輸入樣本之間的相似性問題,關(guān)系分類器中輸入查詢樣本的特征向量,使用ReLU(Rectified Linear Unit)激活函數(shù)計(jì)算分?jǐn)?shù)。關(guān)系分類器也可利用圖神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn),將樣本的特征向量視為節(jié)點(diǎn),邊的權(quán)重為兩個節(jié)點(diǎn)之間的余弦相似性,根據(jù)余弦值對節(jié)點(diǎn)分類[37]。
上述方法均專注于學(xué)習(xí)具有良好泛化能力的深度嵌入空間,將樣本轉(zhuǎn)換為可用最近鄰[28,30]或線性分類器[35-37]識別的數(shù)據(jù)。以上工作均是基于二維圖像展開研究,相較之下,本文將點(diǎn)云神經(jīng)網(wǎng)絡(luò)、Transformer 以及關(guān)系分類器有效結(jié)合,實(shí)現(xiàn)三維模型的小樣本識別。
小樣本識別指利用少量有標(biāo)簽的數(shù)據(jù)訓(xùn)練模型,學(xué)會區(qū)分類別間的差異,然后有效識別全新的類別。首先,將查詢樣本輸入特征提取器得到特征向量;然后,利用分類器計(jì)算概率,將查詢樣本分類為概率最高的類別。
訓(xùn)練過程從訓(xùn)練集中隨機(jī)選取C 類,每類K 個樣本,一般K <15,共C × K 個數(shù)據(jù),構(gòu)建支持集S =作為模型的輸入,其中m =C×K;然后,從該C類數(shù)據(jù)的剩余數(shù)據(jù)中每類抽取b 個數(shù)據(jù)構(gòu)成查詢集Q =作為模型的預(yù)測對象,其中n=C×b,即模型需要根據(jù)C×K個數(shù)據(jù)學(xué)會區(qū)分這C個類,該任務(wù)被稱為C-way K-shot 問題。xi與分別表示支持與查詢樣本,yi與分別表示支持和查詢樣本的標(biāo)簽。由于訓(xùn)練過程中隨機(jī)選取不同的樣本,包含不同的類別組合,這種機(jī)制使得模型學(xué)會不同任務(wù)數(shù)據(jù)的差異和相同之處。
測試過程中,采用相同方法從測試集中抽取樣本構(gòu)造支持集和查詢集,測試集均為訓(xùn)練過程中未出現(xiàn)過的新類別,即模型未見過測試集中的數(shù)據(jù)。模型對比支持和查詢樣本的相似度,有效識別全新的類別數(shù)據(jù)。
在實(shí)現(xiàn)小樣本識別任務(wù)時,Transformer 模型用于學(xué)習(xí)查詢和支持樣本的空間對齊關(guān)系,或者學(xué)習(xí)支持集類別間的函數(shù)映射。與使用局部特征的CrossTransformer 網(wǎng)絡(luò)[38]不同,為了更好地適應(yīng)測試集中全新的樣本,F(xiàn)EAT(Few-shot Embedding Adaptation with Transformer)網(wǎng)絡(luò)[39]針對度量學(xué)習(xí)中的特征提取模塊作改進(jìn),在特征提取模塊中加入自適應(yīng)的Transformer,有針對性地提取與任務(wù)相關(guān)的特征信息,以適應(yīng)不同的分類任務(wù),具體步驟如下。
首先,在特征提取模塊中使用殘差網(wǎng)絡(luò)(Residual Network,ResNet)對支持和查詢樣本提取特征信息,利用線性變換得到Transformer 的Q、K、V矩陣,具體計(jì)算如式(1)所示:
然后,計(jì)算每個樣本之間的相似性αqk,將αqk作為權(quán)重,與值矩陣加權(quán)求和,再與支持樣本的特征加和,得到與任務(wù)相關(guān)的特征信息,計(jì)算如式(2)(3)所示:
其中:V:,k表示V矩陣中的第k列,q表示樣本q,d為一個常量。
最后,在關(guān)系分類器中,F(xiàn)EAT 網(wǎng)絡(luò)采用距離度量方式計(jì)算查詢與支持樣本之間的關(guān)系分?jǐn)?shù),實(shí)現(xiàn)對查詢樣本的分類。Ye 等[39]同樣使用GCN、LSTM 代替Transformer 部分,實(shí)驗(yàn)結(jié)果表明,在二維圖像中應(yīng)用Transformer 的小樣本識別,效果優(yōu)于通用的度量學(xué)習(xí)方法。
本文提出基于Transformer 的三維模型小樣本識別方法(FST)。在小樣本識別中引入Transformer 提高識別精度,整個網(wǎng)絡(luò)分為特征提取模塊、Transformer 模塊以及余弦相似性網(wǎng)絡(luò),網(wǎng)絡(luò)框架如圖1所示。
圖1 基于Transformer的三維模型小樣本識別方法的框架Fig.1 Framework of few-shot recognition method of 3D models based on Transformer
本文按照2.1 節(jié)中的定義構(gòu)造支持和查詢集S和Q。在特征提取模塊fφ中,給定查詢和支持樣本和xi輸入fφ,共享一套參數(shù),得到對應(yīng)的點(diǎn)云特征。本文fφ采用2.2 節(jié)中介紹的PointNet++對三維點(diǎn)云提取特征信息,網(wǎng)絡(luò)流程如圖2所示。
圖2 特征提取模塊框架Fig.2 Framework of feature extraction module
在將三維模型輸入特征提取模塊之前,對所有數(shù)據(jù)隨機(jī)采樣,每個三維模型均選取v個點(diǎn),得到大小為v× 3 的點(diǎn)云x,3 表示三維坐標(biāo)。PointNet++網(wǎng)絡(luò)采取分層特征學(xué)習(xí),即在小區(qū)域中使用點(diǎn)集抽象化(Set Abstraction,SA),其中每個SA 包括:采樣、分組以及特征提取(即采用PointNet),結(jié)構(gòu)為SA(中心點(diǎn),半徑,[mlp])。特征提取模塊的輸入為v× 3,輸出大小為64 × 1的特征向量p,其中,本文兩次SA的參數(shù)分別設(shè)置為(512,0.2,[64,64,128])和(128,0.4,[128,128,128])。
首先,采樣層的輸入為v× 3,采用最遠(yuǎn)點(diǎn)采樣法得到多個中心點(diǎn);然后,在分組層以每個中心點(diǎn)為中心,利用球查詢的方法生成若干個局部區(qū)域,每個區(qū)域最多含有512 個點(diǎn);最后,將分組采樣后的數(shù)據(jù)輸入到PointNet 層,得到128 ×512 的局部特征。將128 × 512 同樣經(jīng)過采樣、分組和PointNet 層,最終輸出大小為64 × 1 的特征向量p。pi和的具體計(jì)算如式(4)所示:
Transformer 模塊包括五部分:計(jì)算矩陣、獲得注意力權(quán)重、歸一化處理、更新特征、得到注意力特征,該模塊的輸入為C×K個支持樣本的特征向量pi,輸出為注意力特征ψi,pi和ψi均為64 × 1 的向量,具體流程如圖3 所示。
圖3 Transformer模塊結(jié)構(gòu)Fig.3 Structure of Transformer module
首先,將C×K個點(diǎn)云特征pi求平均值,得到大小為64 ×1 的向量p′,對p′轉(zhuǎn)換空間特征,得到查詢矩陣、鍵矩陣以及值矩陣;其次,將p′線性變換,與值矩陣計(jì)算點(diǎn)積,獲得注意力權(quán)重α;之后,利用Softmax 函數(shù)對α進(jìn)行歸一化處理;然后,將α與值矩陣相乘,得到更新后的注意力權(quán)重;最后,將經(jīng)過全連接層,與pi求和,輸出支持樣本xi的注意力特征ψi。
將C×K個支持樣本輸入PointNet++提取點(diǎn)云特征,輸出特征矩陣[C×K,64],即每個支持樣本的點(diǎn)云特征pi大小為64 × 1。輸入Transformer 網(wǎng)絡(luò)中,首先,計(jì)算C×K個pi的平均值p′,將p′通過線性變換得到Transformer 的查詢、鍵以及值矩陣,計(jì)算如式(5)所示:
其中:WQ′、WK′和WV′為線性變換的權(quán)重;Q′、K′和V′分別表示查詢、鍵和值矩陣,均為[C×K,64]的矩陣。
其次,根據(jù)式(6)計(jì)算注意力權(quán)重,將p′與WQ′相乘進(jìn)行線性變換,之后與鍵矩陣K′計(jì)算點(diǎn)積,得到大小為64 × 1 的注意力權(quán)重α。將α通過Softmax 層進(jìn)行歸一化處理,得到注意力圖α~,計(jì)算如式(7)所示:
其中,WFC表示全連接層的映射權(quán)重;τ表示進(jìn)一步變換,本文采用歸一化實(shí)現(xiàn)。
其中:ri,j為0~1 的數(shù)值,值越大表示查詢與支持樣本越相似;cos(·,·)表示對輸入的兩個向量計(jì)算數(shù)積;ψi和均為64 維的特征向量;‖ · ‖表示對向量計(jì)算L2范數(shù)。
借鑒文獻(xiàn)[39]中提出的損失函數(shù),本文損失L包括兩部分:預(yù)測損失Lprec和對比損失Lcontra,每種損失具有不同的權(quán)值比例λ,計(jì)算見式(12):
Lprec為支持樣本計(jì)算注意力特征時產(chǎn)生的損失,用于衡量查詢樣本的預(yù)測和真實(shí)標(biāo)簽。將pi輸入Transformer 計(jì)算注意力特征ψi,ψi和輸入余弦相似性網(wǎng)絡(luò)得到ri,j,ri,j經(jīng)過Softmax 層得到查詢樣本的預(yù)測標(biāo)簽y^,該過程會得到預(yù)測損失,計(jì)算如式(13)所示:
其中:yd和分別表示輸入樣本的真實(shí)和預(yù)測標(biāo)簽,C×K和C×b為支持和查詢樣本的個數(shù)。
本文在傳統(tǒng)小樣本識別結(jié)構(gòu)中加入Transformer 網(wǎng)絡(luò),提取與任務(wù)相關(guān)的特征信息構(gòu)成“特征提取+Transformer+關(guān)系分類”的結(jié)構(gòu),基于Transformer 的三維模型小樣本識別方法如算法1 所示。
算法1 基于Transformer 的三維模型小樣本識別過程。
首先,在訓(xùn)練集中隨機(jī)選取支持和查詢集,將支持和查詢樣本xi和輸入到點(diǎn)云神經(jīng)網(wǎng)絡(luò)中,得到點(diǎn)云特征pi和然后,在Transformer 模塊中輸入pi,輸出注意力特征;最后,余弦相似性網(wǎng)絡(luò)計(jì)算和ψi的余弦值,越大表示越相似。
測試與訓(xùn)練集中不存在相同的類別數(shù)據(jù),所以在測試過程中,從測試集抽取全新的類別,構(gòu)造支持和查詢集,同樣經(jīng)過特征提取、Transformer模塊和余弦相似性網(wǎng)絡(luò)輸出關(guān)系分?jǐn)?shù)。
本文實(shí)驗(yàn)在處理器為Intel Xeon Silver 4114 CPU、GPU 為16 GB NVIDIA Quadro 的圖形工作站上運(yùn)行,使用的開源深度學(xué)習(xí)框架為PyTorch 1.13.0,開發(fā)環(huán)境為Pycharm-2019,代碼均采用Python 語言完成。
ModelNet 40 數(shù)據(jù)集[17]涵蓋飛機(jī)、吉他、電腦、椅子以及樓梯等40 類物體,共12 311 個3D 模型,被廣泛用于形狀分類和分割,圖4 為ModelNet 40 的部分模型可視化。
圖4 ModelNet 40數(shù)據(jù)集的部分模型可視化Fig.4 Visualization of some models in ModelNet 40 dataset
ShapeNet Core 是ShapeNet 數(shù)據(jù)集[18]的一個子集,包括相機(jī)、頭盔、電話以及打印機(jī)等55 類物體,共19 313 個3D 模型,本文使用ShapeNet Core 的v2版本,圖5為ShapeNet Core.v2 中的部分模型可視化。
圖5 ShapeNet Core數(shù)據(jù)集的部分模型可視化Fig.5 Visualization of some models in ShapeNet Core dataset
ShapeNet Core_normal 數(shù)據(jù)集含有16 類物體,共16 881個3D 模型,每個模型包含2 000 多個點(diǎn)。該數(shù)據(jù)集的每個類別含有不同數(shù)量的模型,比如桌子含有5 263 個模型,而耳機(jī)只有69 個。
ModelNet 40 和ShapeNet Core 均為三維網(wǎng)格數(shù)據(jù)集,在將模型輸入網(wǎng)絡(luò)之前,需要對數(shù)據(jù)預(yù)處理。本文中對每個三維模型隨機(jī)采樣v個點(diǎn),然后輸入PointNet++,獲取特征向量。
本文在三維點(diǎn)云模型輸入網(wǎng)絡(luò)前,隨機(jī)采樣v個點(diǎn)。訓(xùn)練時,學(xué)習(xí)率的初始值設(shè)置為0.000 1,將隨機(jī)梯度下降(Stochastic Gradient Descent,SGD)中的重量衰減和動量分別設(shè)置為5E-4 和0.9。該方法每個周期訓(xùn)練100 次,共迭代20個周期。
本文按照目前大多數(shù)的小樣本識別工作所采用的標(biāo)準(zhǔn)設(shè)置,分別進(jìn)行3-way、5-way 以及7-way 的小樣本識別實(shí)驗(yàn)。在訓(xùn)練過程中,除K個支持樣本外,每類會隨機(jī)選取b個查詢樣本,在C-way 1-shot 的實(shí)驗(yàn)中設(shè)置b=5,在C-way 5-shot 的實(shí)驗(yàn)中設(shè)置b=3。
本文遵循文獻(xiàn)[16]中的分割比例,對于ModelNet 40 和ShapeNet Core 數(shù)據(jù)集,均選取30%的類別為測試集,其余類別為訓(xùn)練集。在訓(xùn)練時,從訓(xùn)練集中隨機(jī)選取C類,測試時則從測試集中隨機(jī)選取全新的C類數(shù)據(jù)。進(jìn)行C-wayK-shot實(shí)驗(yàn)時,本文方法每次均隨機(jī)選取(C×b+C×K)個三維模型,輸入到點(diǎn)云神經(jīng)網(wǎng)絡(luò)。測試時,則從測試集中隨機(jī)選取全新的C類數(shù)據(jù)。
4.3.1 模型點(diǎn)數(shù)選擇
對數(shù)據(jù) 集ModelNet 40、ShapeNet Core.v2 和ShapeNet Core_normal 進(jìn)行采樣點(diǎn)的對比實(shí)驗(yàn),將不同點(diǎn)數(shù)的模型輸入網(wǎng)絡(luò),分別對比測試的識別準(zhǔn)確率,驗(yàn)證該方法的魯棒性。含有不同點(diǎn)數(shù)的模型如圖6 所示,此處以ShapeNet Core_normal 數(shù)據(jù)集中的飛機(jī)類別為例。
圖6 不同點(diǎn)數(shù)的點(diǎn)云模型Fig.6 Point cloud models with different numbers of points
分別輸入256、512、1 024 和2 048 個點(diǎn)的ModelNet 40、ShapeNet Core.v2 和ShapeNet Core_normal 數(shù)據(jù)集,進(jìn) 行5-way 1-shot 實(shí)驗(yàn),測試結(jié)果如圖7 所示。由圖7 可知,ShapeNet Core.v2 隨著采樣點(diǎn)數(shù)的增加,識別準(zhǔn)確率逐漸上升,在1 024 點(diǎn)時取到最高值;ModelNet 40 不同采樣點(diǎn)的準(zhǔn)確率并無大幅變動;與之不同,ShapeNet Core_normal 數(shù)據(jù)集隨著輸入點(diǎn)數(shù)的增加,準(zhǔn)確率逐漸下降。
圖7 不同采樣點(diǎn)數(shù)的預(yù)測準(zhǔn)確率變化Fig.7 Prediction accuracy varying with different sampling point numbers
ModelNet 40 和ShapeNet Core.v2 數(shù)據(jù)集取1 024 個點(diǎn)時準(zhǔn)確率最高;ShapeNet Core_normal 數(shù)據(jù)集取256 點(diǎn)時預(yù)測準(zhǔn)確率最高。所以,本文在實(shí)驗(yàn)過程中,ModelNet 40、ShapeNet Core.v2 和ShapeNet Core_normal 數(shù)據(jù)集采樣點(diǎn)分別為1 024、1 024 和256。
3-way 1-shot 和5-way 1-shot 實(shí)驗(yàn)的具體準(zhǔn)確率如表1所示。
表1 不同采樣點(diǎn)數(shù)1-shot實(shí)驗(yàn)的準(zhǔn)確率 單位:%Tab.1 Accuracy of 1-shot experiments at different sampling point numbers unit:%
圖8 展示了在ShapeNet Core_normal 數(shù)據(jù)集上進(jìn)行不同采樣點(diǎn)實(shí)驗(yàn)時,損失值隨迭代次數(shù)的變化曲線。采樣點(diǎn)數(shù)分別為256、512、1 024、2 048。由圖8 可知,迭代相同次數(shù)時,在采樣點(diǎn)為2 048 時損失值最大,收斂也最快,其次為256、512、1 024,可見采樣點(diǎn)數(shù)不同會影響模型的識別效果。且當(dāng)?shù)?0 000 次時,不同采樣點(diǎn)的損失值均趨于穩(wěn)定,所以實(shí)驗(yàn)輪次設(shè)置為20 000。
圖8 不同采樣點(diǎn)數(shù)時損失值隨迭代次數(shù)變化的曲線Fig.8 Curves of loss changing with the number of iterations at different sampling point numbers
4.3.2 類別數(shù)量影響
在 ModelNet 40、ShapeNet Core.v2 和 ShapeNet Core_normal 數(shù)據(jù)集上進(jìn)行3-way 和5-way 的實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表2 所示。由表2 可看出,實(shí)現(xiàn)三維模型的小樣本識別任務(wù)時,預(yù)測準(zhǔn)確率會受到類別數(shù)量的影響。
表2 本文方法在ModelNet 40和ShapeNet Core數(shù)據(jù)集上1-shot實(shí)驗(yàn)的準(zhǔn)確率 單位:%Tab.2 Accuracies of the proposed method of 1-shot experiments on ModelNet 40 and ShapeNet Core datasets unit:%
當(dāng)K固定時,當(dāng)C值增大,預(yù)測準(zhǔn)確率會降低,因?yàn)殡S類別數(shù)量增多,網(wǎng)絡(luò)需要學(xué)習(xí)更多種類之間的異同信息,模型需在更多種類中找到與查詢樣本最相似的類別,預(yù)測難度隨C值增大而上升,所以預(yù)測準(zhǔn)確率降低。
在 ModelNet 40、ShapeNet Core.v2 和 ShapeNet Core_normal 數(shù)據(jù)集上進(jìn)行類別數(shù)量的實(shí)驗(yàn),損失值隨迭代次數(shù)的變化如圖9 所示,此時支持樣本數(shù)量K=1,查詢樣本數(shù)量b=3,采樣點(diǎn)v=1 024,迭代20 000 次。
由圖9 可知,對于5-way 1-shot 以及3-way 1-shot 的實(shí)驗(yàn),ShapeNet Core_normal 數(shù)據(jù)集的損失值最低,其次為ModelNet 40,而ShapeNet Core.v2 數(shù)據(jù)集的損失值最高。因?yàn)殡S著數(shù)據(jù)集種類的增加,損失值會相對更大,并且從模型的點(diǎn)云分布均勻程度分析,ShapeNet Core_normal、ModelNet 40 和ShapeNet Core.v2 數(shù)據(jù)集依次下降,所以損失值依次上升。
4.3.3 支持樣本數(shù)量影響
在ModelNet 40 數(shù)據(jù)集上進(jìn)行支持樣本數(shù)量的消融實(shí)驗(yàn),具體設(shè)置支持樣本數(shù)K值為1、2、5、10,實(shí)驗(yàn)結(jié)果如表3所示。在5-wayK-shot 的實(shí)驗(yàn)中b=3。從數(shù)據(jù)集中隨機(jī)選取5 類數(shù)據(jù),然后每類隨機(jī)抽取支持樣本K個,查詢樣本3 個,所以網(wǎng)絡(luò)的輸入為(5 ×K+15)個三維模型。
表3 ModelNet 40和ShapeNet Core_normal數(shù)據(jù)集上5-way K-shot實(shí)驗(yàn)的準(zhǔn)確率 單位:%Tab.3 Accuracies of 5-way K-shot experiments on ModelNet 40 and ShapeNet Core_normal datasets unit:%
如表3 所示,對三維模型進(jìn)行小樣本識別時,識別準(zhǔn)確率同樣會受到支持樣本數(shù)量的影響。當(dāng)類別數(shù)量C值固定時,隨著支持樣本數(shù)量K值的增大,識別準(zhǔn)確率呈上升趨勢。主要原因在于當(dāng)C值固定,隨K值的增大,輸入到網(wǎng)絡(luò)的支持樣本數(shù)量增多,有更多的數(shù)據(jù)可用于訓(xùn)練網(wǎng)絡(luò)區(qū)分不同類別之間的差異,模型更易于找到與查詢樣本相似的支持樣本,對查詢樣本分類,因此識別準(zhǔn)確率會隨K值的增大而上升。相較于K=5,K=10 的準(zhǔn)確率僅增長近0.44 和0.45 個百分點(diǎn),可見當(dāng)K>5,預(yù)測效果并無很大改變,所以K的最優(yōu)值為5。
4.3.4 損失權(quán)重系數(shù)的影響
本文方法的損失函數(shù)包括預(yù)測和對比損失兩部分。有關(guān)對比損失的權(quán)重系數(shù)λ的取值,本文分別在ShapeNet Core_normal、ShapeNet Core.v2 和ModelNet 40 數(shù)據(jù)集上展開λ=0、0.000 1、0.01、0.1 以及λ=1 的對比實(shí)驗(yàn)(本文進(jìn)行消融實(shí)驗(yàn)時,由λ=1 到λ=0.1 以及由λ=0.1 到λ=0.01,發(fā)現(xiàn)每次的結(jié)果并無很大變化,故并未涉及λ=0.001 的消融實(shí)驗(yàn)),具體結(jié)果見表4,其中,λ=0 表示忽略對比損失僅采用預(yù)測損失,損失函數(shù)的消融實(shí)驗(yàn)均為5-way 5-shot。
表4 不同λ值的識別準(zhǔn)確率 單位:%Tab.4 Recognition accuracies at different λ values unit:%
分析可知,在ShapeNet Core.v2、ShapeNet Core_normal 和ModelNet 40 數(shù)據(jù)集上均為λ=0.000 1 時識別準(zhǔn)確率達(dá)到最優(yōu),分別為82.32%、85.31%和83.77%。當(dāng)λ=0 時,本文損失僅為預(yù)測損失,此時在3 個數(shù)據(jù)集上的識別準(zhǔn)確率分別達(dá)到79.33%、80.44%、78.53%,均低于λ≠0 時的識別效果,這表明采用對比損失的重要性;當(dāng)λ≠0 時,對比表中結(jié)果可知,均低于λ=0.0001 時的準(zhǔn)確率,所以,本文所有實(shí)驗(yàn)中均設(shè)置λ=0.0001。
4.3.5 對比實(shí)驗(yàn)
參考文獻(xiàn)[40-41]中C和K的取值,本文在5-way 10-shot、5-way 20-shot、10-way 10-shot 以及10-way 20-shot 實(shí)驗(yàn)上分別對比3種方法:DGCNN+cTree[40]、PointNet+cTree[40]及PointNet+Jigsaw[41]的識別準(zhǔn)確率,具體實(shí)驗(yàn)結(jié)果如表5所示。
表5 不同深度學(xué)習(xí)方法在ModelNet 40數(shù)據(jù)集上的小樣本識別準(zhǔn)確率 單位:%Tab.5 Few-shot recognition accuracies of different deep learning methods on ModelNet 40 dataset unit:%
由表5 可知,本文方法在5-way 10-shot 和5-way 20-shot 的識別準(zhǔn)確率分別為84.21%和81.53%,在10-way 10-shot 和10-way 20-shot 可達(dá)到80.32%和80.75%,識別效果均高于其他對比方法。其中,與文獻(xiàn)[40-41]中的3 種方法中效果最好的PointNet+Jigsaw[41]相比,本文方法的準(zhǔn)確率分別提高了17.71、12.33 和23.42、14.25 個百分點(diǎn),驗(yàn)證了方法的有效性,說明本文方法可有效提高三維模型小樣本識別的準(zhǔn)確率。
在ModelNet 40 數(shù)據(jù)集上針對Dual-LSTM(Dual-Long Short Term Memory)、關(guān)系網(wǎng)絡(luò)、無Transformer 網(wǎng)絡(luò)和本文方法展開對比實(shí)驗(yàn),測試結(jié)果如表6 所示。其中,將PointNet++與余弦相似性網(wǎng)絡(luò)結(jié)合,計(jì)算關(guān)系分?jǐn)?shù),該方法記為無Transformer 網(wǎng)絡(luò)。
表6 不同三維模型小樣本識別方法在ModelNet 40數(shù)據(jù)集上的5-way準(zhǔn)確率 單位:%Tab.6 Five-way accuracies of different few-shot recognition methods of 3D models on ModelNet 40 dataset unit:%
由表6 的實(shí)驗(yàn)結(jié)果可知,本文方法在ModelNet 40 數(shù)據(jù)集上進(jìn)行5-way 1-shot 和5-way 5-shot 的識別實(shí)驗(yàn)的結(jié)果均優(yōu)于其他對比方法。
無Transformer 網(wǎng)絡(luò)的方法首先利用PointNet++對支持和查詢樣本提取點(diǎn)云特征;然后,余弦相似性網(wǎng)絡(luò)將查詢與支持樣本的特征相乘,得到相似性分?jǐn)?shù)。由實(shí)驗(yàn)結(jié)果可知,在ModelNet 40 數(shù)據(jù)集上進(jìn)行5-way 1-shot 和5-way 5-shot 的實(shí)驗(yàn),預(yù)測準(zhǔn)確率分別為35.56%和36.92%,無法達(dá)到理想的識別效果。
本文將Transformer 網(wǎng)絡(luò)用于三維模型的小樣本識別,提出FST 方法,對特征信息增加注意力,得到與任務(wù)更為相近的特征信息,然后利用余弦相似性網(wǎng)絡(luò)計(jì)算查詢與支持樣本的相似性分?jǐn)?shù)。FST 的識別效果較好,在5-way 1-shot 的實(shí)驗(yàn)中識別效果比無Transformer 的方法提高了45.30 個百分點(diǎn),在5-way 5-shot 的實(shí)驗(yàn)中提高了46.85 個百分點(diǎn),這表明加入Transformer 網(wǎng)絡(luò)可以有效提高三維模型小樣本識別的準(zhǔn)確率。
將FST 方法與Dual-LSTM 模型[16]相比,在5-way 1-shot 和5-way 5-shot 的實(shí)驗(yàn)中識別準(zhǔn)確率分別提高了34.54 和21.00個百分點(diǎn),驗(yàn)證了該方法的有效性。所以,將Transformer 應(yīng)用于三維模型的小樣本識別任務(wù)中,對網(wǎng)絡(luò)增加注意力模塊,可有效提升網(wǎng)絡(luò)特征提取的能力,從而提高識別準(zhǔn)確率。
4.3.6 結(jié)果展示
在C-wayK-shotb-query 實(shí)驗(yàn)的設(shè)置下,網(wǎng)絡(luò)的輸入為(C×K+C×b)個三維模型,最終輸出[C×b,C×K]的分?jǐn)?shù)矩陣R={ri,j},其中矩陣中每個元素表示對應(yīng)行的查詢樣本與對應(yīng)列的支持樣本之間的關(guān)系分?jǐn)?shù),將查詢樣本分類為該行中最大分?jǐn)?shù)所對應(yīng)的支持樣本所屬類別,圖10 為本文方法的結(jié)果示例。
圖10 關(guān)系分?jǐn)?shù)矩陣Fig.10 Relation score matrix
如圖10 所示,此處以3-way 1-shot 2-query 為例,計(jì)算得到[6,3]的關(guān)系矩陣,例如圖10 中第1 行:支持樣本為耳機(jī)、刀子、帽子,與查詢樣本的關(guān)系分?jǐn)?shù)依次為0.798 7、0.116 7、0.114 9,所以本文方法將查詢樣本分類為耳機(jī)。
由于查詢樣本的形狀不一,所以與同一支持樣本的關(guān)系分?jǐn)?shù)也不同。如圖10 中第3、6 行,查詢樣本均為帽子,當(dāng)支持樣本固定為帽子時,與第3 和6 行中查詢帽子的關(guān)系分?jǐn)?shù)分別為0.712 7 和0.933 6,這是因?yàn)榈? 個查詢帽子與支持帽子更為相似。
1)3-way 1-shot 1-query實(shí)驗(yàn)結(jié)果。
以3-way 1-shot 1-query 為例對實(shí)驗(yàn)的結(jié)果可視化,圖11中左側(cè)1 列的模型為查詢樣本(虛線框內(nèi)),右側(cè)為支持樣本從左到右依次按相關(guān)分?jǐn)?shù)降低排列。進(jìn)行實(shí)驗(yàn)時,網(wǎng)絡(luò)的每次輸入為6 個三維模型,其中3 個支持樣本,3 個查詢樣本。
圖11 3-way 1-shot 1-query實(shí)驗(yàn)結(jié)果Fig.11 Experimental results of 3-way 1-shot 1-query
圖11 為3-way 1-shot 1-query 的實(shí)驗(yàn)結(jié)果展示,隨機(jī)選取的類別為耳機(jī)、吉他、椅子。圖11 中第1 行的關(guān)系分?jǐn)?shù)依次為:0.857 9、0.377 5、0.476 4,所以識別查詢樣本與耳機(jī)為同類;第2 行為0.901 4、0.387 9、0.462 5,查詢樣本被識別為吉他;第3 行為0.826 5、0.497 4、0.377 5,將查詢樣本識別為椅子。分析可知,查詢與支持樣本的形狀發(fā)生變化,同樣兩個類別的關(guān)系分?jǐn)?shù)不同,所以,本文可以有效識別模型之間的差異。
2)5-way 1-shot 1-query實(shí)驗(yàn)結(jié)果。
進(jìn)行5-way 1-shot 1-query 實(shí)驗(yàn)時,網(wǎng)絡(luò)的輸入為10 個三維模型,其中5 個支持樣本,5 個查詢樣本。將10 個三維模型輸入至網(wǎng)絡(luò),本文方法得到大小為[5,5]的關(guān)系矩陣,對每行中關(guān)系分?jǐn)?shù)降序排序,即查詢樣本與每個支持樣本的相似度排序。
在ModelNet 40 數(shù)據(jù)集上進(jìn)行5-way 1-shot 1-query 實(shí)驗(yàn)的部分結(jié)果如圖12 所示,以圖12 中第1 行為例說明,當(dāng)查詢樣本固定時,支持樣本為床、書柜、吉他、鍵盤、玻璃柜,其關(guān)系分?jǐn)?shù)依次為0.983 5、0.822 5、0.795 3、0.555 6、0.224 7,所以將查詢樣本分類為床。
圖12 5-way 1-shot 1-query實(shí)驗(yàn)結(jié)果Fig.12 Experimental results of 5-way 1-shot 1-query
當(dāng)兩個類別存在相似之處時,如摩托車和火車,本文方法可根據(jù)對比模型之間的差異成功分類。如圖12 中第3 行的花瓶與水桶均為圓形物體,在外觀上相似,但與花瓶的關(guān)系分?jǐn)?shù)較高,所以將查詢樣本識別為花瓶,可見本文方法可以正確識別形狀相似的類別。
本文提出一種針對三維點(diǎn)云模型的小樣本識別方法,包括特征提取模塊、Transformer 模塊和余弦相似性網(wǎng)絡(luò)。首先,特征提取模塊采用PointNet++對三維點(diǎn)云模型提取特征向量;然后,將支持樣本的特征向量輸入Transformer 模塊,得到注意力特征;最后,將支持樣本的注意力特征與查詢樣本的點(diǎn)云特征利用余弦相似性網(wǎng)絡(luò)計(jì)算關(guān)系分?jǐn)?shù)。相較于現(xiàn)有工作,在ModelNet 40 和ShapeNet Core 數(shù)據(jù)集上,該方法均提高了三維模型小樣本識別的準(zhǔn)確率。
然而,本文方法在實(shí)驗(yàn)過程中仍會出現(xiàn)識別錯誤的情況,如圖13 所示,查詢樣本為圓形椅子,卻錯誤認(rèn)為與圓形罐子最為相似。此外,本文方法局限于對點(diǎn)云表示的三維模型進(jìn)行小樣本識別,無法處理網(wǎng)格、體素等其他表示方法。未來考慮將本文方法擴(kuò)展到三維模型的網(wǎng)格或體素等表示方法。
圖13 失敗結(jié)果示例Fig.13 Example of failure results