本發(fā)明涉及三維模型處理技術(shù)領(lǐng)域,更具體地說,涉及一種三維模型的深度特征提取方法。
背景技術(shù):
隨著三維模型處理技術(shù)和計算機硬件、軟件的快速發(fā)展,以及多媒體技術(shù)和互聯(lián)網(wǎng)技術(shù)的推廣,大量的三維模型應用于各個領(lǐng)域中,人們對三維模型的應用需求也日益增大。三維模型在電子商務(wù)、建筑設(shè)計、工業(yè)設(shè)計、廣告影視和三維游戲等多個領(lǐng)域扮演重要的角色。大規(guī)模數(shù)據(jù)集的三維模型在社會生產(chǎn)生活的各個方面需要重用設(shè)計和模型檢索,因此,如何從已有的各類型的三維模型數(shù)據(jù)集中快速精確地檢索到目標三維模型,成為了亟待解決的關(guān)鍵問題。
近年來,基于深度學習的三維模型分析成為研究熱點,它結(jié)合了計算機視覺、人工智能、智能計算等研究內(nèi)容,能解決三維模型的視覺任務(wù)包括三維模型特征提取、分類、識別、檢測和預測等難題。使用深度學習技術(shù)能自動地學習三維模型的隱含特征,并且能在大規(guī)模數(shù)據(jù)集上進行訓練,增強學習模型的泛化能力。
目前基于深度學習的特征提取方法,存在如下問題:如深度學習的框架提取的特征不能完全表達三維模型信息、網(wǎng)絡(luò)層次深帶來的計算復雜度高和網(wǎng)絡(luò)的過擬合問題、以及網(wǎng)絡(luò)學習時間長和內(nèi)存儲存空間大等。隨著深度學習的技術(shù)成熟運用和對三維模型特征能力表達強的需求,使用深度學習去提取特征將為三維模型分類、檢索、檢測和識別難題帶來新的突破。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中的缺點與不足,提供一種三維模型的深度特征提取方法,該方法構(gòu)建深層卷積神經(jīng)網(wǎng)絡(luò)對三維模型的極視圖進行訓練,經(jīng)過迭代修正權(quán)值縮小殘差,使得網(wǎng)絡(luò)收斂。待訓練完畢后,提取卷積神經(jīng)網(wǎng)絡(luò)的全鏈接層作為三維模型極視圖的深度特征,使得深度特征可用于三維模型的分類、檢索和識別等視覺任務(wù)。該方法構(gòu)建深層的卷積神經(jīng)網(wǎng)絡(luò)層次豐富,可加快網(wǎng)絡(luò)訓練速度和提高深度網(wǎng)絡(luò)擬合的準確度。
為了達到上述目的,本發(fā)明通過下述技術(shù)方案予以實現(xiàn):一種三維模型的深度特征提取方法,其特征在于:
首先,提取三維模型的極視圖,作為深度卷積神經(jīng)網(wǎng)絡(luò)的訓練輸入數(shù)據(jù);
其次,構(gòu)建深度卷積神經(jīng)網(wǎng)絡(luò),并對極視圖進行訓練;其中,深度卷積神經(jīng)網(wǎng)絡(luò)包括有極視圖作為訓練輸入數(shù)據(jù)的輸入層、用于對極視圖的特征進行學習并得到二維特征圖的卷積層、用于對不同位置的二維特征圖進行聚合統(tǒng)計并降低特征維度的池化層、用于對二維特征圖進行排列鏈接形成一維向量的全鏈接層、以及用于輸出類別預測結(jié)果的輸出層;
再次,將極視圖輸入到深度卷積神經(jīng)網(wǎng)絡(luò)進行訓練,直到深度卷積神經(jīng)網(wǎng)絡(luò)收斂,實現(xiàn)訓練完成后深度卷積神經(jīng)網(wǎng)絡(luò)的內(nèi)部權(quán)值的確定;
最后,在已訓練好的深度卷積神經(jīng)網(wǎng)絡(luò)中輸入需提取特征的三維模型的極視圖,計算深度卷積神經(jīng)網(wǎng)絡(luò)中全鏈接層的特征向量,則作為需提取特征的三維模型的深度特征。
在上述方案中,本發(fā)明的三維模型的深度特征提取方法是通過深度卷積神經(jīng)網(wǎng)絡(luò)對三維模型的極視圖進行訓練,經(jīng)過迭代修正權(quán)值縮小殘差,使得網(wǎng)絡(luò)收斂。待訓練完畢后,提取卷積神經(jīng)網(wǎng)絡(luò)的全鏈接層作為三維模型極視圖的深度特征。其中,極視圖對三維模型的空間集合結(jié)構(gòu)全局表達,采用三維模型的極視圖可精簡和減輕深度卷積神經(jīng)網(wǎng)絡(luò)的訓練計算量。本發(fā)明所構(gòu)建的深度卷積神經(jīng)網(wǎng)絡(luò)層次豐富,可加快網(wǎng)絡(luò)訓練速度和提高深度網(wǎng)絡(luò)擬合的準確度。其中,極視圖是指從三維模型的質(zhì)心向外發(fā)射一組采樣射線,射線與模型的交點到質(zhì)心的距離排列成的二維采樣圖。
具體地說,該方法包括以下步驟:
步驟s101:提取三維模型的極視圖,作為深度卷積神經(jīng)網(wǎng)絡(luò)的訓練輸入數(shù)據(jù),其中訓練輸入數(shù)據(jù)設(shè)置為x(i)∈χ,χ為共有n個三維模型的極視圖;第i個模型對應的類別標簽為y(i)∈{1,2,...,k},k為三維模型的類別數(shù)量;
步驟s102:構(gòu)建深度卷積神經(jīng)網(wǎng)絡(luò);在深度卷積神經(jīng)網(wǎng)絡(luò)中,深度卷積神經(jīng)網(wǎng)絡(luò)包括:極視圖x(i)作為訓練輸入數(shù)據(jù)的輸入層ι,4個卷積層c(t),t=1,2,3,4,1個池化層p,兩個全鏈接層fc(1)和fc(2),以及輸出層ο;其中,4個卷積層c(t),t=1,2,3,4中每個卷積層和兩個全鏈接層fc(1)和fc(2)中每個全鏈接層均使用修正線性激活函數(shù)f(a)=max(0,a)替代深度卷積神經(jīng)網(wǎng)絡(luò)中的sigmoid函數(shù)f(a)=1/(1+e-a);
步驟s103:設(shè)置深度卷積神經(jīng)網(wǎng)絡(luò)的參數(shù),即將深度卷積神經(jīng)網(wǎng)絡(luò)各層權(quán)值初始化:
輸入層ι:輸入數(shù)據(jù)為一個尺寸為(32×32)的極視圖x(i);
卷積層c:4個卷積層依次對極視圖的特征進行學習,各個卷積層得到的二維特征圖的數(shù)量為ft=(6,8,10,12),根據(jù)以下公式得到各個卷積層的二維特征圖:
其中
卷積層c(1)計算出6個尺寸為(28×28)的二維特征圖;
卷積層c(2)計算出8個尺寸為(24×24)的二維特征圖;
卷積層c(3)計算出10個尺寸為(20×20)的二維特征圖;
卷積層c(4)計算出12個尺寸為(16×16)的二維特征圖;
池化層p:通過下述公式對卷積層c(4)計算出的二維特征圖進行最大池化處理,得到12個尺寸為(8×8)的特征矩陣:
其中,pmp(u0,v0)表示二維特征圖最大池化處理的特征矩陣對應的坐標,
全鏈接層fc(1):將pmp排列成列向量(64×1),對各個矩陣的列向量全鏈接得到一維向量l0(768×1),即一維向量l0(768×1)作為全鏈接層fc(1)的輸入向量;
全鏈接層fc(2):設(shè)定全鏈接層fc(1)有512個神經(jīng)元,全鏈接層fc(2)有128個神經(jīng)元;并通過下述全鏈接層傳導公式計算全鏈接層fc(1)的輸出向量l1作為全鏈接層fc(2)的輸入向量,以及計算全鏈接層fc(2)的輸出向量l2作為輸出層o的輸入向量:
其中
輸出層o:設(shè)置輸出層有k個神經(jīng)元,計算公式如下:
y′=f(w3l2+b2);
其中,y′(i)為深度卷積神經(jīng)網(wǎng)絡(luò)的最終輸出,i為第i個模型;w3由[-1,1]的隨機數(shù)生成(k×128)的矩陣作為初始權(quán)值;l2為全鏈接層fc(2)的輸出向量;
步驟s104:對極視圖的數(shù)據(jù)集χ進行訓練,設(shè)置學習率η為1,使用梯度隨機下降算法,根據(jù)深度卷積神經(jīng)網(wǎng)絡(luò)輸出預測的結(jié)果y′(i)和真實的類別標簽y(i)∈{1,2,...,k}的誤差,進行反向傳播,迭代20次算法能收斂,實現(xiàn)訓練完成后深度卷積神經(jīng)網(wǎng)絡(luò)的內(nèi)部權(quán)值的確定;
步驟s105:在已訓練好的深度卷積神經(jīng)網(wǎng)絡(luò)中輸入需提取特征的三維模型的極視圖x(i),并計算第2個全鏈接層fc(2)輸出的特征向量l2,即是所需提取特征的三維模型極視圖的深度特征。
所述提取三維模型的極視圖是指:
首先,將三維點云模型進行預處理,計算出三維點云模型的質(zhì)心及尺度,并將三維點云模型平移到直角坐標系上進行縮放,實現(xiàn)三維點云模型在直角坐標系上歸一化;
其次,將在直角坐標系上經(jīng)過縮放的三維點云模型轉(zhuǎn)換到球坐標,并得到三維點云模型各個點的方向和距離屬性;
再次,將點集的球坐標映射到極視圖的像素位置上,計算每個像素采樣距離集的最大距離,作為方向區(qū)間的射線采樣值;
最后,將每個像素采樣距離集的最大距離排列成二維采樣圖,即為所提取的極視圖。
所述提取三維模型的極視圖具體包括以下步驟:
步驟s201:輸入三維點云模型,該三維點云模型的尺度為p={pi(xi,yi,zi)|i=1,2,...,n};
步驟s202:按照下述公式計算三維點云模型的質(zhì)心g(gx,gy,gz),通過得到的質(zhì)心g(gx,gy,gz)將三維點云模型平移變換到直角坐標系上,則三維點云模型在直角坐標系的尺度為pi′=pi-g,i=1,2,...,n;平移變換后的三維點云模型pi′的質(zhì)心位于直角坐標系的原點;
步驟s203:計算三維點云模型的縮放因子s,將三維點云模型縮放到單位尺度為
步驟s204:將在直角坐標系上經(jīng)過縮放的三維點云模型轉(zhuǎn)換到球坐標q,此時三維點云模型在球坐標上的尺度為
其中θ∈[0,π],仰角在z軸負半軸上為0;
步驟s205:將球坐標q映射到極視圖的像素位置(u,v)上,映射關(guān)系為
其中nu和nv分別為極視圖的寬和長;
步驟s206:每個像素(u,v)的采樣距離集為
上述的深度特征提取方法直接對三維模型的極視圖進行特征提取,針對二維極視圖利用卷積操作可以感知各個位置的信息。經(jīng)過多層卷積處理得到的特征圖,在全鏈接層中能提取辨別性強的深度特征。
而在提取極視圖時,預處理過程需要對三維模型進行平移和縮放變換,保證三維模型在標準尺度上歸一化和標準化處理。將三維模型點云轉(zhuǎn)換成球坐標系,利于將球坐標點映射到二維極視圖的對應像素位置,通過映射,統(tǒng)計該像素位置上的點的距離集的最大值,將最大采樣值形成二維采樣圖,即是三維模型新型的極視圖。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點與有益效果:本發(fā)明三維模型的深度特征提取方法構(gòu)建深層卷積神經(jīng)網(wǎng)絡(luò)對三維模型的極視圖進行訓練,經(jīng)過迭代修正權(quán)值縮小殘差,使得網(wǎng)絡(luò)收斂。待訓練完畢后,提取卷積神經(jīng)網(wǎng)絡(luò)的全鏈接層作為三維模型極視圖的深度特征,使得深度特征可用于三維模型的分類、檢索和識別等視覺任務(wù)。該方法構(gòu)建深層的卷積神經(jīng)網(wǎng)絡(luò)層次豐富,可加快網(wǎng)絡(luò)訓練速度和提高深度網(wǎng)絡(luò)擬合的準確度。
附圖說明
圖1是本發(fā)明三維模型的深度特征提取方法的流程圖;
圖2是本發(fā)明三維模型的深度特征提取方法中深層卷積神經(jīng)網(wǎng)絡(luò)的示意圖;
圖3是本發(fā)明方法中提取三維模型的極視圖的流程圖;
圖4是本發(fā)明方法中由三維模型提取得到極視圖的示意圖;
具體實施方式
下面結(jié)合附圖與具體實施方式對本發(fā)明作進一步詳細的描述。
實施例
如圖1至圖4所示,本發(fā)明三維模型的深度特征提取方法是這樣的:
首先,提取三維模型的極視圖,作為深度卷積神經(jīng)網(wǎng)絡(luò)的訓練輸入數(shù)據(jù);
其次,構(gòu)建深度卷積神經(jīng)網(wǎng)絡(luò),并對極視圖進行訓練;其中,深度卷積神經(jīng)網(wǎng)絡(luò)包括有極視圖作為訓練輸入數(shù)據(jù)的輸入層、用于對極視圖的特征進行學習并得到二維特征圖的卷積層、用于對不同位置的二維特征圖進行聚合統(tǒng)計并降低特征維度的池化層、用于對二維特征圖進行排列鏈接形成一維向量的全鏈接層、以及用于輸出類別預測結(jié)果的輸出層;
再次,將極視圖輸入到深度卷積神經(jīng)網(wǎng)絡(luò)進行訓練,直到深度卷積神經(jīng)網(wǎng)絡(luò)收斂,實現(xiàn)訓練完成后深度卷積神經(jīng)網(wǎng)絡(luò)的內(nèi)部權(quán)值的確定;
最后,在已訓練好的深度卷積神經(jīng)網(wǎng)絡(luò)中輸入需提取特征的三維模型的極視圖,計算深度卷積神經(jīng)網(wǎng)絡(luò)中全鏈接層的特征向量,則作為需提取特征的三維模型的深度特征。
在上述方案中,本發(fā)明的三維模型的深度特征提取方法是通過深度卷積神經(jīng)網(wǎng)絡(luò)對三維模型的極視圖進行訓練,經(jīng)過迭代修正權(quán)值縮小殘差,使得網(wǎng)絡(luò)收斂。待訓練完畢后,提取卷積神經(jīng)網(wǎng)絡(luò)的全鏈接層作為三維模型極視圖的深度特征。其中,極視圖對三維模型的空間集合結(jié)構(gòu)全局表達,采用三維模型的極視圖可精簡和減輕深度卷積神經(jīng)網(wǎng)絡(luò)的訓練計算量。本發(fā)明所構(gòu)建的深度卷積神經(jīng)網(wǎng)絡(luò)層次豐富,可加快網(wǎng)絡(luò)訓練速度和提高深度網(wǎng)絡(luò)擬合的準確度。其中,極視圖是指從三維模型的質(zhì)心向外發(fā)射一組采樣射線,射線與模型的交點到質(zhì)心的距離排列成的二維采樣圖。
具體地說,該方法包括以下步驟:
步驟s101:提取三維模型的極視圖,作為深度卷積神經(jīng)網(wǎng)絡(luò)的訓練輸入數(shù)據(jù),其中訓練輸入數(shù)據(jù)設(shè)置為x(i)∈χ,χ為共有n個三維模型的極視圖;第i個模型對應的類別標簽為y(i)∈{1,2,...,k},k為三維模型的類別數(shù)量;
步驟s102:構(gòu)建深度卷積神經(jīng)網(wǎng)絡(luò);在深度卷積神經(jīng)網(wǎng)絡(luò)中,深度卷積神經(jīng)網(wǎng)絡(luò)包括:極視圖x(i)作為訓練輸入數(shù)據(jù)的輸入層ι,4個卷積層c(t),t=1,2,3,4,1個池化層p,兩個全鏈接層fc(1)和fc(2),以及輸出層ο;其中,4個卷積層c(t),t=1,2,3,4中每個卷積層和兩個全鏈接層fc(1)和fc(2)中每個全鏈接層均使用修正線性激活函數(shù)f(a)=max(0,a)替代深度卷積神經(jīng)網(wǎng)絡(luò)中的sigmoid函數(shù)f(a)=1/(1+e-a);
步驟s103:設(shè)置深度卷積神經(jīng)網(wǎng)絡(luò)的參數(shù),即將深度卷積神經(jīng)網(wǎng)絡(luò)各層權(quán)值初始化:
輸入層ι:輸入數(shù)據(jù)為一個尺寸為(32×32)的極視圖x(i);
卷積層c:4個卷積層依次對極視圖的特征進行學習,各個卷積層得到的二維特征圖的數(shù)量為ft=(6,8,10,12),根據(jù)以下公式得到各個卷積層的二維特征圖:
其中
卷積層c(1)計算出6個尺寸為(28×28)的二維特征圖;
卷積層c(2)計算出8個尺寸為(24×24)的二維特征圖;
卷積層c(3)計算出10個尺寸為(20×20)的二維特征圖;
卷積層c(4)計算出12個尺寸為(16×16)的二維特征圖;
池化層p:通過下述公式對卷積層c(4)計算出的二維特征圖進行最大池化處理,得到12個尺寸為(8×8)的特征矩陣:
其中,pmp(u0,v0)表示二維特征圖最大池化處理的特征矩陣對應的坐標,
全鏈接層fc(1):將pmp排列成列向量(64×1),對各個矩陣的列向量全鏈接得到一維向量l0(768×1),即一維向量l0(768×1)作為全鏈接層fc(1)的輸入向量;
全鏈接層fc(2):設(shè)定全鏈接層fc(1)有512個神經(jīng)元,全鏈接層fc(2)有128個神經(jīng)元;并通過下述全鏈接層傳導公式計算全鏈接層fc(1)的輸出向量l1作為全鏈接層fc(2)的輸入向量,以及計算全鏈接層fc(2)的輸出向量l2作為輸出層o的輸入向量:
其中
輸出層o:設(shè)置輸出層有k個神經(jīng)元,計算公式如下:
y′=f(w3l2+b2);
其中,y′(i)為深度卷積神經(jīng)網(wǎng)絡(luò)的最終輸出,i為第i個模型;w3由[-1,1]的隨機數(shù)生成(k×128)的矩陣作為初始權(quán)值;l2為全鏈接層fc(2)的輸出向量;
步驟s104:對極視圖的數(shù)據(jù)集χ進行訓練,設(shè)置學習率η為1,使用梯度隨機下降算法,根據(jù)深度卷積神經(jīng)網(wǎng)絡(luò)輸出預測的結(jié)果y′(i)和真實的類別標簽y(i)∈{1,2,...,k}的誤差,進行反向傳播,迭代20次算法能收斂,實現(xiàn)訓練完成后深度卷積神經(jīng)網(wǎng)絡(luò)的內(nèi)部權(quán)值的確定;
步驟s105:在已訓練好的深度卷積神經(jīng)網(wǎng)絡(luò)中輸入需提取特征的三維模型的極視圖x(i),并計算第2個全鏈接層fc(2)輸出的特征向量l2,即是所需提取特征的三維模型極視圖的深度特征。
上述提取三維模型的極視圖是指:
首先,將三維點云模型進行預處理,計算出三維點云模型的質(zhì)心及尺度,并將三維點云模型平移到直角坐標系上進行縮放,實現(xiàn)三維點云模型在直角坐標系上歸一化;
其次,將在直角坐標系上經(jīng)過縮放的三維點云模型轉(zhuǎn)換到球坐標,并得到三維點云模型各個點的方向和距離屬性;
再次,將點集的球坐標映射到極視圖的像素位置上,計算每個像素采樣距離集的最大距離,作為方向區(qū)間的射線采樣值;
最后,將每個像素采樣距離集的最大距離排列成二維采樣圖,即為所提取的極視圖。
具體地說,提取三維模型的極視圖具體包括以下步驟:
步驟s201:輸入三維點云模型,該三維點云模型的尺度為p={pi(xi,yi,zi)|i=1,2,...,n};
步驟s202:按照下述公式計算三維點云模型的質(zhì)心g(gx,gy,gz),通過得到的質(zhì)心g(gx,gy,gz)將三維點云模型平移變換到直角坐標系上,則三維點云模型在直角坐標系的尺度為pi′=pi-g,i=1,2,...,n;平移變換后的三維點云模型pi′的質(zhì)心位于直角坐標系的原點;
步驟s203:計算三維點云模型的縮放因子s,將三維點云模型縮放到單位尺度為
步驟s204:將在直角坐標系上經(jīng)過縮放的三維點云模型轉(zhuǎn)換到球坐標q,此時三維點云模型在球坐標上的尺度為
其中θ∈[0,π],仰角在z軸負半軸上為0;
步驟s205:將球坐標q映射到極視圖的像素位置(u,v)上,映射關(guān)系為
其中nu和nv分別為極視圖的寬和長;
步驟s206:每個像素(u,v)的采樣距離集為
上述的深度特征提取方法直接對三維模型的極視圖進行特征提取,針對二維極視圖利用卷積操作可以感知各個位置的信息。經(jīng)過多層卷積處理得到的特征圖,在全鏈接層中能提取辨別性強的深度特征。
而在提取極視圖時,預處理過程需要對三維模型進行平移和縮放變換,保證三維模型在標準尺度上歸一化和標準化處理。將三維模型點云轉(zhuǎn)換成球坐標系,利于將球坐標點映射到二維極視圖的對應像素位置,通過映射,統(tǒng)計該像素位置上的點的距離集的最大值,將最大采樣值形成二維采樣圖,即是三維模型新型的極視圖。
上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實施例的限制,其他的任何未背離本發(fā)明的精神實質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應為等效的置換方式,都包含在本發(fā)明的保護范圍之內(nèi)。