何瑞函 ,蔡 勇 ,張建生
(1.西南科技大學(xué) 制造科學(xué)與工程學(xué)院,四川 綿陽(yáng) 621010;2.制造過(guò)程測(cè)試技術(shù)省部共建教育部重點(diǎn)實(shí)驗(yàn)室,四川 綿陽(yáng) 621010)
隨著激光掃描技術(shù)的發(fā)展,點(diǎn)云作為最能表現(xiàn)物體三維特征的數(shù)據(jù)深受研究者熱愛(ài)。深度學(xué)習(xí)、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[1-2]近幾年引領(lǐng)計(jì)算機(jī)視覺(jué)領(lǐng)域的研究趨勢(shì),并且CNN 網(wǎng)絡(luò)在二維圖像分類(lèi)與識(shí)別上顯得高效。點(diǎn)云在空間中的無(wú)序性、旋轉(zhuǎn)不變性、非結(jié)構(gòu)化數(shù)據(jù),導(dǎo)致其不能直接作為CNN 網(wǎng)絡(luò)的輸入[3]。因此,使用深度學(xué)習(xí)對(duì)點(diǎn)云進(jìn)行研究的方法有3 種:多視圖[4]、體素法[5]、直接對(duì)點(diǎn)云[6-7]。
基于二維多視角3D 識(shí)別的方法,本文通過(guò)優(yōu)化采集數(shù)據(jù)集的方式提升CNN 神經(jīng)網(wǎng)絡(luò)[8]的分類(lèi)效果。本文對(duì)點(diǎn)云模型進(jìn)行不同視角投影,得到多組2D 圖像數(shù)據(jù)集。首先用多個(gè)VGG16 卷積模型[9-10]提取單獨(dú)視角數(shù)據(jù)集,得到多個(gè)映射了圖像特征的卷積神經(jīng)網(wǎng)絡(luò)模型;然后將多個(gè)包含特征的VGG16 模塊加上自定義層后“并聯(lián)”連接分類(lèi)層作為分析網(wǎng)絡(luò)模型,混合視角圖像數(shù)據(jù)集作為網(wǎng)絡(luò)輸入;最后通過(guò)分析多個(gè)特征提取模塊的權(quán)重,優(yōu)化多視角圖像的采集密度,提升二維多視角3D 識(shí)別效率,即分類(lèi)效果。
文獻(xiàn)[4]提出的多視角卷積神經(jīng)網(wǎng)絡(luò)(Multi-View CNN,MVCNN)將物體的三維數(shù)據(jù)通過(guò)多視角的“觀察”得到二維圖像,再將二維圖像作為輸入數(shù)據(jù)帶入傳統(tǒng)的二維圖像卷積網(wǎng)絡(luò)中進(jìn)行訓(xùn)練。相比于一些直接用三維數(shù)據(jù)訓(xùn)練,所用的二維圖像卷積網(wǎng)絡(luò)非常成熟,其訓(xùn)練效果還能超過(guò)大量三維數(shù)據(jù)訓(xùn)練的結(jié)果。文獻(xiàn)[5]的體素法的核心是基于三維數(shù)據(jù)的“立體柵格化”,將點(diǎn)云數(shù)據(jù)表示為30×30×30 大小的“立體柵格”,通過(guò)將空間中的點(diǎn)云劃分為體素,用體素來(lái)表示三維物體,然后再對(duì)空間中的體素進(jìn)行三維卷積。其卷積類(lèi)似二維圖像深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò),所以計(jì)算在空間和時(shí)間上都很復(fù)雜。文獻(xiàn)[6]直接將三維點(diǎn)云放入網(wǎng)絡(luò)進(jìn)行訓(xùn)練,基本思想是對(duì)輸入點(diǎn)云每個(gè)點(diǎn)的空間編碼進(jìn)行學(xué)習(xí)。
多視圖方法最大化利用了CNN 的優(yōu)點(diǎn),文獻(xiàn)[4]中提出MVCNN 模型最有代表性。作者指出使用二維圖像表示三維數(shù)據(jù)會(huì)丟失三維特征,為了減少特征的丟失,用多張不同角度的二維圖像來(lái)代替三維模型。盡管將三維模型轉(zhuǎn)為二維圖像的這種方式很巧妙,但也存在未知因素,例如:是否某種視角的圖像最重要,或者是否有某種圖像包含了主要的特征信息。在文獻(xiàn)[4]中,作者尚未闡述這些問(wèn)題,因此本文將針對(duì)此問(wèn)題進(jìn)行分析。
觀察三維物體有幾種典型的視角,即從正上方俯視、斜上方俯視和側(cè)面?zhèn)纫?,本文通過(guò)使用Blender 軟件在空間中設(shè)置虛擬相機(jī)對(duì)ModelNet10 數(shù)據(jù)集的點(diǎn)云模型(.off)依次進(jìn)行“拍照”提取2D 圖像,相機(jī)工作時(shí)指向3D網(wǎng)格數(shù)據(jù)的中心。
ModelNet10 為標(biāo)記朝向的ModelNet[11]數(shù)據(jù)集子集,共10 類(lèi),訓(xùn)練集共有3 991 個(gè)點(diǎn)云文件,測(cè)試集908 個(gè)點(diǎn)云文件,本文數(shù)據(jù)集對(duì)ModelNet10 所有點(diǎn)云文件進(jìn)行采集。
如圖1 所示,每個(gè)虛擬相機(jī)分別以α=0°,45°,90°不同角度繞Z 軸每隔36°生成一個(gè)2D 視角渲染圖,每一個(gè)視角三維模型獲得10 個(gè)圖像,一共得到3 個(gè)子數(shù)據(jù)集Data_0、Data_45、Data_90。子數(shù)據(jù)集用單獨(dú) 視角的10 張二維圖像表示一個(gè)點(diǎn)云。3 個(gè)子數(shù)據(jù)集微調(diào)3 個(gè)VGG16 卷積神經(jīng)網(wǎng)絡(luò),分別儲(chǔ)存不同α 角度投影圖像的特征信息。將3 個(gè)子數(shù)據(jù)集打包為混合數(shù)據(jù)集(Data_mix),作為調(diào)試模型的數(shù)據(jù)集,用共計(jì)30(即3×10)張二維圖像表示一個(gè)點(diǎn)云模型。
圖1 數(shù)據(jù)集采集
通過(guò)對(duì)Blender 軟件生成2D 圖像多次對(duì)比,最終在軟件渲染中選擇快照材質(zhì)光照,顏色為紋理,像素為300×300。用“resize_image_with_crop_or_pad”對(duì)數(shù)據(jù)集預(yù)處理,將圖片裁剪為224×224 的圖像。
本文研究目的為,通過(guò)改變30 張二維圖像在3 個(gè)不同視角中的采集密度,提高神經(jīng)網(wǎng)絡(luò)對(duì)點(diǎn)云的分類(lèi)準(zhǔn)確率。
以文獻(xiàn)[9]中VGG16 模型作為基礎(chǔ)網(wǎng)絡(luò)模型,包含13個(gè)卷積層、3 個(gè)全連接層,一共16(即13+3)層。在本文中使用到的包含13 個(gè)卷積層、5 個(gè)池化層和ReLU 激活函數(shù)。
通過(guò)卷積層、池化層和激活函數(shù)等操作,將原始數(shù)據(jù)集的特征信息映射到隱含層,再通過(guò)全連接層將隱含層的特征信息映射到樣本標(biāo)記空間進(jìn)行分類(lèi)[12]。本文用Imagenet 數(shù)據(jù)集權(quán)重作為VGG16 的預(yù)訓(xùn)練參數(shù),再使用采集的數(shù)據(jù)集微調(diào),最后用Sotfmax 回歸算法與交叉熵代價(jià)函數(shù)配合調(diào)節(jié)網(wǎng)絡(luò)中的權(quán)重等參數(shù)[13]。
以VGG16 特征提取網(wǎng)絡(luò)為基礎(chǔ),提取圖像特征信息,將特征信息保存在VGG16 的卷積層中。模型結(jié)構(gòu)如圖2(a)所示,采集的3D 模型子數(shù)據(jù)集輸入到隱含層VGG16(除全連接層),圖中的全連接層為分類(lèi)空間,最后兩層施加權(quán)重正則化防止網(wǎng)絡(luò)過(guò)擬合。使用單視角投影數(shù)據(jù)集對(duì)VGG16_α 模型進(jìn)行微調(diào),將單組視角2D 圖像的特征映射到VGG16_α 的卷積層空間,3D 模型子數(shù)據(jù)集圖像的特征信息儲(chǔ)存在該卷積層空間,本文稱之為特征匹配模塊。
圖2(b)中用混合角度數(shù)據(jù)集(Data_mix)作為特征分析模型(VGG16_dbg)的輸入;隱含層為特征匹配與調(diào)試空間,由3 個(gè)VGG16 卷積空間加上自定義層通過(guò)并聯(lián)的方式組成。3 個(gè)特征匹配模塊(VGG16_α)的權(quán)重等參數(shù),通過(guò)遷移學(xué)習(xí)[14]的方式載入特征分析模型(VGG16_dbg)中。
自定義層(如圖2(c)所示)對(duì)每個(gè)特征匹配模塊的輸出上施以權(quán)重,在微調(diào)中評(píng)判每個(gè)特征匹配模塊的權(quán)重大小,神經(jīng)元表達(dá)式形如下:
concatenate 層(如圖2(d)所示)將3 個(gè)1×10 的神經(jīng)元連接為一個(gè)(1×30)的網(wǎng)絡(luò)層,如式(2)所示:
圖2 卷積網(wǎng)絡(luò)模型
最后與分類(lèi)層相連。
為了使得自定義層中權(quán)重,與3 個(gè)特征匹配模塊在特征分析模型(VGG16_dbg)中的權(quán)重等價(jià)。將自定義層中權(quán)重初始值設(shè)置為相等(0 或1),3 個(gè)特征匹配模塊(VGG16_0、VGG16_45、VGG16_90)在初始工作時(shí)具有一樣條件,通過(guò)用“concatenate”連接層對(duì)自定義層的輸出進(jìn)行拼接時(shí),自定義層中的權(quán)重不會(huì)被其他層的激活函數(shù)、損失函數(shù)影響[15],自定義層中權(quán)重初始值設(shè)置為相等不會(huì)造成梯度消失、梯度爆炸或神經(jīng)元輸出始終不變等問(wèn)題[16]。
該實(shí)驗(yàn)計(jì)算機(jī)環(huán)境為:Intel-酷睿 i7-9750H 的CPU,16 GB DDR4 內(nèi)存,在Windows 10 64 位操作系統(tǒng)下使用GTX2060 6 GB 的GPU,使用TensorFlow 框架實(shí)現(xiàn)。
文中采用兩種評(píng)價(jià)標(biāo)準(zhǔn),第一種為單張圖像分類(lèi)準(zhǔn)確度,第二種為點(diǎn)云投影集合分類(lèi)準(zhǔn)確度。其中,第二種方式在點(diǎn)云識(shí)別中更具有說(shuō)服性,將投影集合中預(yù)測(cè)的最大類(lèi)(label)作為預(yù)測(cè)結(jié)果。本文以第二種評(píng)價(jià)方式作為最主要的評(píng)價(jià)標(biāo)準(zhǔn)。
從表1 中可見(jiàn),當(dāng)相機(jī)與豎直方向夾角為45°時(shí),二維投影識(shí)別效果最好,在圖1 中α=45°的圖像也具有明顯特征;相反α=0°視角投影圖像中包含較少特征,分類(lèi)預(yù)測(cè)結(jié)果也是最差。
表1 不同視角數(shù)據(jù)集準(zhǔn)確率比較
調(diào)試VGG16_dbg 模型共有313 個(gè)可訓(xùn)練參數(shù),包括3 個(gè)自定義層權(quán)重和分類(lèi)層310 個(gè)參數(shù)。多次實(shí)驗(yàn)發(fā)現(xiàn),調(diào)試模型在第5 個(gè)epoch 時(shí)準(zhǔn)確率達(dá)到峰值66%,避免引起過(guò)擬合,特征分析模型epoch=5。
從表2 中的平均權(quán)重發(fā)現(xiàn)w0的平均值最小,w45最大。α=45°視角的模型特征較為重要,按照權(quán)重的比例,對(duì)不同角度圖像的數(shù)量進(jìn)行增減,通過(guò)計(jì)算得到每一個(gè)視角的投影數(shù)I,公式如下:
表2 分析模型中各視角卷積網(wǎng)絡(luò)的權(quán)重變化
式中,Iall為總投影數(shù),為α視角特征匹配模塊的權(quán)重絕對(duì)值均值,為權(quán)重絕對(duì)值均值總和。
由式(3)得到視角0°、45°、90°的視圖分別為7、12、11 張,共30 張二維圖像。按照此數(shù)量?jī)?yōu)化本文的訓(xùn)練集,最終ModelNet10 數(shù)據(jù)集在VGG16 網(wǎng)絡(luò)模型上識(shí)別準(zhǔn)確率準(zhǔn)約為93.6%,對(duì)比未優(yōu)化的數(shù)據(jù)集約提高1.8%。表3 中,本實(shí)驗(yàn)方法與其他網(wǎng)絡(luò)相比也達(dá)到了良好的分類(lèi)準(zhǔn)確率。
表3 本文方法與其他算法的分類(lèi)準(zhǔn)確率比較
本文優(yōu)化3D 模型投影圖的采取方式,使VGG16 網(wǎng)絡(luò)模型對(duì)指定點(diǎn)云測(cè)試集的識(shí)別效果得到提升。構(gòu)建特征網(wǎng)絡(luò)權(quán)重,分析不同視角3D 投影圖的特征在同一個(gè)CNN 網(wǎng)絡(luò)下的差異性,并根據(jù)權(quán)重比例優(yōu)化數(shù)據(jù)集的采集密度,使得VGG16 網(wǎng)絡(luò)學(xué)習(xí)到3D 模型投影圖的更多特征。實(shí)驗(yàn)結(jié)果證明,通過(guò)優(yōu)化輸入數(shù)據(jù)采集可以使網(wǎng)絡(luò)模型學(xué)習(xí)到更多特征,達(dá)到更好的分類(lèi)效果。