王新穎,王 亞
(長(zhǎng)春工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,吉林 長(zhǎng)春 130012)
三維模型應(yīng)用廣泛,如何有效地管理和分類一直是人們關(guān)注的問(wèn)題。然而,根據(jù)三維模型的內(nèi)容單純靠人為手動(dòng)分類非常繁瑣和耗時(shí),因此采用有效的分類算法來(lái)進(jìn)行模型的自動(dòng)分類便成為當(dāng)務(wù)之急。
三維模型分類的通常方法是將數(shù)據(jù)庫(kù)中的幾類模型作為訓(xùn)練模型,然后為用戶提供另一個(gè)三維模型作為測(cè)試模型,并希望找到目標(biāo)模型的所屬類別。近年來(lái),人們通過(guò)利用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN),在以前研究的基礎(chǔ)上提出了許多針對(duì)三維模型分類算法,SU等[1]提出的 Multi-view CNN模型采用多視圖的CNN對(duì)三維模型進(jìn)行分類和檢索;WU等[2]提出的3DShapeNets使用深度卷積信念網(wǎng)絡(luò)將幾何3D形狀表示為 3D體素網(wǎng)格上的二元變量的概率分布進(jìn)行分類。文獻(xiàn)[3]提出的voxnet用空間內(nèi)占用的網(wǎng)格集成到有監(jiān)督的三維卷積神經(jīng)網(wǎng)絡(luò);GARCIA-GARCIA等[4]提出的pointnet則是在前兩者基礎(chǔ)上做改進(jìn),通過(guò)使用占用網(wǎng)格的密度表示輸入數(shù)據(jù),并將其集成到有監(jiān)督的 CNN結(jié)構(gòu)中。SINHA等[5]將三維模型轉(zhuǎn)換為CNN可直接接收的數(shù)據(jù)格式進(jìn)行識(shí)別分類。XU和 TODOROVIC[6]用光束搜索確定最佳的CNN架構(gòu)(即網(wǎng)絡(luò)中的層數(shù)、節(jié)點(diǎn)及其連接性),以及估計(jì)此類優(yōu)化的參數(shù)。LIU等[7]提出的VSL則使用了一種變分形狀學(xué)習(xí)器,采用無(wú)監(jiān)督的方法來(lái)學(xué)習(xí)和推斷體素化三維圖形的底層結(jié)構(gòu)。然而,由于不同三維模型之間的相似性難以測(cè)量,獲得一種穩(wěn)健且廣泛適用的三維模型分類算法仍然是一個(gè)挑戰(zhàn)。
本文提出了一種權(quán)值優(yōu)化集成卷積神經(jīng)網(wǎng)絡(luò)(weighted optimization integrated convolutional neural netwok,WOICNN)模型,首先獲取三維模型的深度投影視圖來(lái)最大限度地保留三維模型的空間信息。然后,采用調(diào)整的VGG網(wǎng)絡(luò)對(duì)不同方向的深度投影圖片進(jìn)行訓(xùn)練并提取模型對(duì)測(cè)試集分類的預(yù)測(cè)概率值。最后,通過(guò)對(duì)不同投影視圖的特征進(jìn)行加權(quán)集成,從而整體上獲取三維模型的最終判定結(jié)果。與文獻(xiàn)[1]相比,一方面三維模型的深度投影圖像能夠比渲染圖像描繪更豐富的形狀信息;另一方面,文獻(xiàn)[1]認(rèn)為所有視圖的重要性相同,而本文考慮到不同視角的深度圖像的分類識(shí)別性能并不相同,因此通過(guò)權(quán)值來(lái)調(diào)整不同視圖在分類能力上的重要性。綜上所述,WOICNN模型具有如下優(yōu)點(diǎn):
(1)該網(wǎng)絡(luò)模型能綜合分析三維物體的多方位深度投影圖像,比單一的灰度圖像方法具有更好的識(shí)別性能。該模型能有效地融合不同模態(tài)特征之間的互補(bǔ)判別信息,因而可以將網(wǎng)絡(luò)擴(kuò)展到其他異構(gòu)多媒體信息的識(shí)別處理中。
(2)網(wǎng)絡(luò)模型可以通過(guò)集成算法調(diào)整目標(biāo)視圖的權(quán)重,從而能夠有效提高三維模型深度投影圖像的識(shí)別率,進(jìn)而提高識(shí)別精度。
(3)模型中使用的集成卷積神經(jīng)網(wǎng)絡(luò)比單卷積神經(jīng)網(wǎng)絡(luò)具有更好的預(yù)測(cè)性能。
對(duì)ModelNet開(kāi)源三維模型數(shù)據(jù)庫(kù)的實(shí)驗(yàn)表明,該方法使三維模型在識(shí)別精度方面得到顯著提升。
本文采用射線交叉法對(duì)三維模型進(jìn)行體素化,并通過(guò)計(jì)算沿主軸方向的體素?cái)?shù)目來(lái)測(cè)量模型的深度。為了將深度信息編碼為二維圖像,需要在網(wǎng)格的x,y,z坐標(biāo)軸的每個(gè)方向上進(jìn)行光線跟蹤并分別沿著3個(gè)主軸將模型M從基于體素的表示映射為三視圖的二維圖像Im1,Im2,Im3。投影圖像Im1,Im2,Im3中每個(gè)像素Pi,j的強(qiáng)度即是M內(nèi)點(diǎn)Ri,j沿主軸平行方向所經(jīng)過(guò)的體素的計(jì)數(shù),因此,Im1,Im2,Im3是三維模型M的深度投影圖像。圖1描述了浴缸模型(bathtub)的映射過(guò)程和結(jié)果。
圖1 三維模型映射過(guò)程及深度投影視圖的生成結(jié)果
從三維模型的深度投影視圖中,可以看到每個(gè)視圖都是一個(gè)灰度圖像,其中的每個(gè)像素實(shí)際上描述了沿相應(yīng)光線的三維模型的深度。深度投影會(huì)比直接映射成的二維圖像包含更多信息。通過(guò)提取三維模型的深度投影視圖,不僅對(duì)模型的輪廓信息進(jìn)行編碼,而且對(duì)其體積信息也能進(jìn)行編碼。在映射的過(guò)程中需要注意:①網(wǎng)格必須是封閉的;②三維模型在提取深度投影視圖前要求對(duì)齊良好,因?yàn)橛成浞较蚴侨S模型的主軸。其計(jì)算步驟如下:
步驟1.讀取網(wǎng)格模型,并將其轉(zhuǎn)換為一個(gè)N×3×3的多維矩陣,N為面片數(shù)量,每頁(yè)的每行分別用來(lái)存放3個(gè)頂點(diǎn)的x,y,z坐標(biāo)。
步驟2.確定多邊形網(wǎng)格的最小和最大x,y,z坐標(biāo),從而確定其包圍盒的大小。
步驟3.檢查三維輸出網(wǎng)格的尺寸,確保輸出網(wǎng)格足夠大,以覆蓋每個(gè)三角面片。
步驟4.使用用戶定義的光線方向進(jìn)行體素化。
步驟4.1.分別計(jì)算X,Y,Z軸每個(gè)方向上的體素?cái)?shù),以Z方向?yàn)槔?,循環(huán)通過(guò)每個(gè)x,y像素點(diǎn),并在Z方向上通過(guò)每個(gè)x,y像素傳遞光線,并找到光線穿過(guò)網(wǎng)格的位置,進(jìn)而對(duì)網(wǎng)格進(jìn)行體素化。
(1)找出射線可能穿過(guò)的網(wǎng)格面。
(2)對(duì)于每個(gè)面,檢查光線是否真的穿過(guò)了面片,而不僅僅是近距離通過(guò)。方法是,首先,檢查交叉頂點(diǎn);即查找哪些網(wǎng)格面包含與光線交叉的頂點(diǎn)。其次,檢查交叉面,檢查光線是否穿過(guò)平面。依次選取面的每一條邊,檢查光線是否與相對(duì)頂點(diǎn)在該邊同一側(cè)。然后,找到光線穿過(guò)每個(gè)面或頂點(diǎn)的位置的Z坐標(biāo),描述面片平面的方程為
其中,
對(duì)于射線的x和y坐標(biāo),解出這些方程,找出該平面上的z坐標(biāo)。最后,將光線穿過(guò)一個(gè)面后穿過(guò)另一個(gè)面前穿過(guò)的所有體素標(biāo)記為在網(wǎng)格內(nèi)。
步驟4.2.組合每個(gè)光線跟蹤方向的結(jié)果。對(duì)于體素化沒(méi)有給出明確結(jié)果的光線,可以通過(guò)從周圍光線中的插值來(lái)計(jì)算。
步驟5.將輸出網(wǎng)格返回到用戶所需的大小。并提取多維矩陣的某一維得到深度投影圖像。
圖2是隨機(jī)選取的Modelnet10中三維模型的深度投影結(jié)果。
圖2 三維模型體素化及深度投影結(jié)果
WOICNN包括輸入層、隱含層、輸出層以及集成層。輸入層輸入三維模型深度投影圖像,經(jīng)隱含層提取視圖特征,輸出層輸出各視圖的識(shí)別概率,集成層通過(guò)加權(quán)集成算法得到投影視圖權(quán)值矩陣,最后輸出最終結(jié)果。
輸入層,將三維模型的深度投影視圖分別作為輸入層數(shù)據(jù),每個(gè)視圖投影圖像調(diào)整為224×224大小尺寸的灰度圖后送入 CNN迭代訓(xùn)練。本文采用一種調(diào)整的VGG深層卷積神經(jīng)網(wǎng)絡(luò)來(lái)訓(xùn)練并提取每個(gè)三維深度投影視圖的圖像特征。該網(wǎng)絡(luò)使用3×3卷積核,且卷積核個(gè)數(shù)隨層數(shù)依次倍增,從而可以在具有相同感知野的條件下提升網(wǎng)絡(luò)深度,降低圖像信息衰減,既保證圖像性質(zhì),又能減少計(jì)算量,進(jìn)而提升訓(xùn)練效果。權(quán)值優(yōu)化算法通過(guò)計(jì)算準(zhǔn)確率獲得權(quán)值,卷積核的大小與數(shù)目會(huì)直接影響準(zhǔn)確率,從而影響最終的分類效果。
卷積層主要通過(guò)參數(shù)共享的若干卷積核提取投影圖像的特征,不同卷積核中權(quán)重不同,以分層提取圖像中各類特征。假設(shè)卷積層為j的特征Fj為
其中,m–1為神經(jīng)網(wǎng)絡(luò)第m層的前一層;T為m–1層中特征的集合;Weightij為神經(jīng)網(wǎng)絡(luò)對(duì)應(yīng)卷積核的權(quán)重;bj為偏置項(xiàng);f為激活函數(shù),本文使用Relu作為CNN的激活函數(shù)。
池化層,本文采用最大池化的模式,以提取卷積后的信息特征,即選取指定區(qū)域最大值為特征,以更好提取圖像特征紋理,得到池化后特征Fk,即
為避免因大量模型參數(shù)而在訓(xùn)練過(guò)程中產(chǎn)生過(guò)擬合,網(wǎng)絡(luò)采用Dropout通過(guò)阻止特征檢測(cè)器的共同作用來(lái)提高神經(jīng)網(wǎng)絡(luò)的性能;并采用Dropblock[8]隨機(jī)模塊化丟棄部分圖像特征,從而減少訓(xùn)練時(shí)間并能更有效避免過(guò)擬合現(xiàn)象。
深度投影圖像提取特征后進(jìn)行分類,針對(duì)單個(gè)模型的深度投影圖像x,估計(jì)其每種分類結(jié)果出現(xiàn)的概率為p(y=j|x),其中j為x所屬類別,k為類別數(shù)(k=10),則假設(shè)函數(shù)hθ(x)為
Softmax的代價(jià)函數(shù)為
其中,t為樣本數(shù)量;函數(shù)l{·}中表達(dá)式若為真則其值為1,否則為0。
圖3為加權(quán)集成卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)圖。網(wǎng)絡(luò)中層Con1、Con2均為由64個(gè)3×3的卷積核組成的卷積層。然后是大小為2×2池化層、dropblock層,dropblock層用于抑制過(guò)擬合。層Con3,Con4均為由128個(gè)3×3的卷積核組成的卷積層。層Con5,Con6均為由256個(gè)3×3的卷積核組成的卷積層。層Con7~Con10均為由512個(gè)3×3的卷積核組成的卷積層。Dense1層是的全連接層,結(jié)點(diǎn)數(shù)為4 096,激活函數(shù)為Relu。然后是dropout層,大小為0.5。Dense2層是全連接層,結(jié)點(diǎn)數(shù)為4 096;Dense3層為結(jié)點(diǎn)為N的全連接層,其中N為三維模型的類別數(shù)量,激活函數(shù)為softmax。
圖3 權(quán)值優(yōu)化集成卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
不同角度的三維模型深度投影圖像對(duì)所屬類別的區(qū)分程度不同,例如表1中2種類別模型的三視圖投影圖像,俯視圖相似,但側(cè)視圖和正視圖有差異,因此為了更好地區(qū)別2類三維模型,需要減少俯視圖的比重,加大側(cè)視圖和正視圖比重。
由于三維模型的每個(gè)投影頁(yè)面在網(wǎng)絡(luò)中單獨(dú)訓(xùn)練,為此考慮在網(wǎng)絡(luò)的全連接層后增加一個(gè)權(quán)值優(yōu)化層,通過(guò)計(jì)算獲得各個(gè)視圖的最優(yōu)權(quán)值,從而以多角度描述模型的分類特性,達(dá)到優(yōu)化分類結(jié)果的目的。由于不同視圖包含不同特征,故訓(xùn)練時(shí)學(xué)習(xí)率、訓(xùn)練次數(shù)、每個(gè)Epoch中的圖像數(shù)目均會(huì)不同,VGG的卷積核參數(shù)亦會(huì)不同,故不適宜用end-to-end聯(lián)合學(xué)習(xí)方法來(lái)設(shè)計(jì)CNN架構(gòu)。
表1 三視圖深度投影圖像對(duì)比
三維模型的深度投影具有正視圖、俯視圖、側(cè)視圖3個(gè)屬性,可由預(yù)訓(xùn)練的CNN模型提供判定目標(biāo)所屬類別的概率。設(shè)n為測(cè)試集模型數(shù)量,s為分類個(gè)數(shù);i=1,2,···,n;j=1,2,···,s,則有正視圖投影圖像的判別概率集合為
其中,fij為測(cè)試集中第i個(gè)模型的深度投影正視圖屬于第j類的概率。
側(cè)視圖投影圖像的判別概率集合為
其中,eij為測(cè)試集中第i個(gè)模型深度投影側(cè)視圖屬于j類的概率。
俯視圖判定結(jié)果集合為
其中,vij為測(cè)試集中第i個(gè)模型深度投影俯視圖屬于j類的概率。
將3個(gè)視圖的深度投影圖像加權(quán)判定結(jié)果求和得到矩陣A,即
其中
其中,λ1>0,λ2>0,λ3>0,且λ1+λ2+λ3=1。
測(cè)試集模型n個(gè)模型所屬類別的判定結(jié)果為
其中
為了求得權(quán)重λ1,λ2和λ3的值,本文提出一種新的權(quán)值優(yōu)化算法 3D-weight optimization algorithm(3DWOA)。
首先,設(shè)初始權(quán)重為
其中,N=3;以正視圖為例,其誤差率為
accF為通過(guò)CNN得到的3個(gè)深度投影視圖中正視圖的準(zhǔn)確率。
其次,計(jì)算權(quán)重λ1為
同理得到λ2及λ3的值。
最后,新的權(quán)值結(jié)果為
以普林斯頓大學(xué)的ModelNet三維模型標(biāo)準(zhǔn)庫(kù)作為實(shí)驗(yàn)數(shù)據(jù)源,ModelNet10共10類,包含4 899個(gè)三維模型,其中訓(xùn)練集3 991個(gè),測(cè)試集908個(gè),ModelNet40共40類,包含12 311個(gè)三維模型,其中訓(xùn)練集9 843個(gè),測(cè)試集2 468個(gè)。此外采用PSB模型庫(kù)中10類模型進(jìn)行實(shí)驗(yàn),分別是戰(zhàn)斗機(jī)(50個(gè))、人類(50個(gè))、盆栽(25個(gè))、長(zhǎng)方體(26個(gè))、人的手臂(21個(gè))、直升飛機(jī)(17個(gè))、刀劍(15個(gè))、人臉(17個(gè))、復(fù)翼飛機(jī)(14個(gè))、衣架(13個(gè)),共248個(gè)測(cè)試集數(shù)據(jù)和248個(gè)訓(xùn)練集數(shù)據(jù)進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)設(shè)備使用谷歌云平臺(tái)進(jìn)行數(shù)據(jù)處理,具體配置為300 G硬盤,20 G內(nèi)存,NVIDIA GPU,型號(hào)為P100,Intel 4核處理器。
首先采用深度投影算法從正視、俯視和側(cè)視3個(gè)方面獲取數(shù)據(jù)集的深度投影圖,實(shí)驗(yàn)中深度圖有2種表現(xiàn)方式為底色黑色投影白色圖像和底色白色投影黑色圖像,如圖4所示。
圖4 monitor投影圖示
從視覺(jué)上白底黑特征更容易識(shí)別,更符合人類認(rèn)知體系,故以白底黑特征深度投影圖作為實(shí)驗(yàn)所用圖,后續(xù)實(shí)驗(yàn)中亦發(fā)現(xiàn)白底黑特征深度投影圖效果優(yōu)于黑底白特征。
隨后,將得到的投影視圖分別放入優(yōu)化的CNN進(jìn)行圖像特征提取及識(shí)別,且訓(xùn)練識(shí)別完成后從神經(jīng)網(wǎng)絡(luò)中提取模型對(duì)測(cè)試集單個(gè)模型的判定概率。
通過(guò)卷積網(wǎng)絡(luò),得到3個(gè)坐標(biāo)軸的深度投影圖片的分類識(shí)別準(zhǔn)確率見(jiàn)表2。
表2 單個(gè)深度投影圖識(shí)別準(zhǔn)確率(%)
實(shí)驗(yàn)中,本文首先考慮采用權(quán)重遍歷的方法獲得權(quán)值,將λ1,λ2和λ3的值依次以0.1為步長(zhǎng)從0遍歷到 1,根據(jù)式(14)得到測(cè)試集每個(gè)模型的分類準(zhǔn)確率,進(jìn)而得到的全部三維模型的平均分類準(zhǔn)確率,如圖5所示。
圖5 ModelNet40權(quán)重與分類準(zhǔn)確率示意圖
其中,準(zhǔn)確率最好的結(jié)果見(jiàn)表3。
表3 權(quán)值遍歷法得到的最好的權(quán)值及準(zhǔn)確率
為了改進(jìn)權(quán)值遍歷方法,采用3DWOA權(quán)值生成方法,該方法得到的權(quán)值及準(zhǔn)確率見(jiàn)表4。
表4 3DWOA法得到的權(quán)值及準(zhǔn)確率
其中,Modelnet40的混淆矩陣如圖6所示。
圖6 ModelNet混淆矩陣
本文和其他文獻(xiàn)實(shí)驗(yàn)結(jié)果對(duì)比見(jiàn)表5。由表5可知,本文所提的基于深度投影的WOICNN在三維模型識(shí)別方面確實(shí)有明顯效果。
表5 ModelNet三維模型識(shí)別準(zhǔn)確率對(duì)比(%)
本文提出了一種加權(quán)集成卷積神經(jīng)網(wǎng)絡(luò)模型,首先獲取三維模型的深度投影視圖,隨后采用調(diào)整的VGG網(wǎng)絡(luò)對(duì)同一三維模型的各深度投影圖片進(jìn)行訓(xùn)練并提取預(yù)測(cè)概率值,之后采用集成方法求得各深度投影視圖權(quán)重,最后通過(guò)投票方法得到完整三維模型的最終分類結(jié)果。對(duì) ModelNet10,ModelNet40和PSB數(shù)據(jù)集的實(shí)驗(yàn)表明三維模型識(shí)別準(zhǔn)確率達(dá)92.84%,86.51%和81.87%。深度投影視圖可以有效保留三維模型的空間信息,集成卷積神經(jīng)網(wǎng)絡(luò)能夠提高識(shí)別率高的單個(gè)投影視圖的權(quán)重比例,并通過(guò)集成方法有效提高三維模型的識(shí)別精度。下一步工作,一方面將本文方法延續(xù)到其他類型數(shù)據(jù)庫(kù)中進(jìn)行分類識(shí)別,另一方面考慮擴(kuò)展網(wǎng)絡(luò)模型,將其應(yīng)用到多源異構(gòu)的三維模型特征識(shí)別領(lǐng)域。