羅文劼 張 涵 倪 鵬 田學東
(河北大學網(wǎng)絡(luò)空間安全與計算機學院 河北 保定 071002)
三維模型的識別工作分為基于三維結(jié)構(gòu)和視圖兩種?;谌S結(jié)構(gòu)的方法是根據(jù)三維模型的點云、多邊形網(wǎng)格和體積網(wǎng)格等方式進行計算,特征可以包括距離、角度、區(qū)域面積、體積結(jié)構(gòu)、熱擴散特征[1]等?;谝晥D的方法是根據(jù)三維模型投影的2D圖像作為三維模型的特征描述符。
基于三維結(jié)構(gòu)的方法有:3DShapeNet[2]將三維模型轉(zhuǎn)化為30×30×30的體積網(wǎng)格并用深度信念網(wǎng)絡(luò)進行特征提取,每一個1×1×1網(wǎng)格都代表三維模型的結(jié)構(gòu)信息,對三維模型的原始數(shù)據(jù)進行了壓縮,但運算量和復雜程度仍然很大,而且對數(shù)據(jù)有較大損失。為了提高運算效率,一種淺層三維卷積神經(jīng)網(wǎng)絡(luò)VoxNet[3],在網(wǎng)絡(luò)的前端后端結(jié)合語義分割方法和svm分類法的手工方法,運算速度和識別精度都有所提升?;邳c云的三維模型數(shù)據(jù)具有結(jié)構(gòu)復雜、不規(guī)則的特征,解決點云數(shù)據(jù)到卷積神經(jīng)網(wǎng)絡(luò)的規(guī)則映射是近幾年的研究熱點。文獻[4]通過模擬卷積神經(jīng)網(wǎng)絡(luò)中卷積核的過程,采樣局部三維點云數(shù)據(jù)到PointNet網(wǎng)絡(luò)中,實現(xiàn)特征從局部到全局的學習,用T-Net實現(xiàn)局部特征映射到矩陣的規(guī)范化處理,使不規(guī)則點云數(shù)據(jù)能夠映射到規(guī)則矩陣中。文獻[5]通過規(guī)則化處理將三維點云數(shù)據(jù)映射到高維晶格結(jié)構(gòu)中,并利用雙邊卷積進行特征提取,最后得到的稀疏特征用哈希索引進行高效識別。
基于視圖的方法將計算量由三維下降到二維,可以更好地與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合,有效解決了基于三維結(jié)構(gòu)方法中存在的問題。基于視圖的方法分為固定視角投影和最佳視角投影兩類,固定視角投影是根據(jù)預先設(shè)計好的位置對三維模型進行2D投影,如MVCNN[6]使用位于水平面30度的虛擬相機并旋轉(zhuǎn)一周,獲得12幅投影視圖,對視圖特征使用最大池化(max-pool)進行融合,使用最大值作為分類結(jié)果去除了影響較小的視圖特征。但這樣的方式在增大類間距離的同時也增加了類內(nèi)距離,使同一類別中測試集模型的最大池化特征很難與訓練集的最大池化特征相匹配。GVCNN[7]則是根據(jù)固定視角下的內(nèi)部類與外部類之間的聯(lián)系對每幅視圖進行分組加權(quán),由分組描述符對特征貢獻較大的視圖標記較大的權(quán)值,這種方式對模型的整體表達有很好的效果,但在類別較多的情況下,分組難度和運算復雜度都會隨之增大。還有一些固定視角的文獻關(guān)注于卷積神經(jīng)網(wǎng)絡(luò)的特征提取。文獻[8]提出一種由Box-Cox和PCA組成的雙線性池化的方法,增加了神經(jīng)網(wǎng)絡(luò)對局部特征的表達。文獻[9]結(jié)合triplet loss[10]和center loss[11]提出了一種triplet-center loss,使關(guān)注類間距離的triplet loss和關(guān)注類內(nèi)距離的center loss的優(yōu)點相結(jié)合,triplet-center loss可以有效增大特征的類間距離,并使類內(nèi)距離更加緊湊。文獻[12]提出了一種分批最優(yōu)運輸損失方法,使用最優(yōu)傳輸理論[13]對三維模型的草圖、多視圖投影圖像、真實場景圖像多種形式進行聯(lián)合學習,減小了不同類型圖像之間的差異性,增強了特征對不同噪聲和模式的魯棒性。而最佳視角投影是在一系列投影圖像中選取出部分“較好”視圖,文獻[14]使用信息熵作為最佳視角匹配算法,根據(jù)每幅視圖中三維模型所占圖像的面積計算信息熵數(shù)值大小,較大的值就被定義為“較好”視圖。這種方法可以找出信息量較大的視圖,雖然較固定視角方法在模型角度選擇上有一定優(yōu)勢,但只考慮了三維模型占據(jù)圖像的面積大小,對于最佳視角不具備普遍性。文獻[15]使用人工標注和分類算法相結(jié)合的方式找出最佳視圖,首先對數(shù)據(jù)集中的三維模型標注一個最好和最差視圖,再對這些視圖使用SVM分類算法進行學習,得到一個可以找到最佳視角的分類器。這樣的方法雖然解決了信息熵只考慮面積大小的問題,但人工標注的方式增加了時間成本以及不能應(yīng)對不同數(shù)據(jù)集(場景)下分類和檢索問題。
固定視角相比最佳視角減少了大量的運算成本,在應(yīng)對較多的三維模型分類檢索工作中仍然是首要選擇的方法。本文通過方法描述展示了如何選擇固定視角中的最佳位置,并建立視圖與模型之間的對應(yīng)關(guān)系,使用2D-CNN提取視圖特征,最終模型的特征與模型庫中特征進行相似度匹配,實現(xiàn)分類檢索工作,在實驗部分對比了不同方法的運算效率和分類精度。
人工標注最佳視圖的方式花費大量成本,但根據(jù)人的感官對最佳視圖的判斷是可行的,由此利用這一方法找到固定視角下的最佳視角,如圖1所示。
圖1 投影側(cè)視圖(左)與俯視圖(右)分析
圖1展示了在對三維模型進行投影時的側(cè)視圖與俯視圖,設(shè)置虛擬相機與模型相距兩個單位的距離,虛線圓為相機所在位置,左上與右上方框的標號分別為1和3。在側(cè)視圖中,較好的相機位置是1和3方框,被稱為有效投影角度。模型的特征信息被描述為α1,分析2、4、6、8位置的方框得出模型的視圖信息為正上方、正后方、正前方和正下方,這些位置的特征信息是α2,而7和9方框位置的模型特征被描述為α3,各個位置的特征與模型的關(guān)系為:
A=α1∪α2∪α3α1>α3>α2
(1)
α1∩α2≠?α1∩α3→?
(2)
由此推出,俯視圖中的有效投影角度為1、3、7、9方框,其視圖的信息量大于2、4、6、8。由式(1)得出模型的整體特征由所有視角下的視圖構(gòu)成,與三維重建工作不同,本文的最終目的并不是獲取完整的2D視圖,而是根據(jù)2D視圖擴大三維模型的類間距離,從而實現(xiàn)模型到模型的正確檢索分類。這些位置的劃分符合人對于物體認識的規(guī)律,對固定視角下的平均視圖投影具有優(yōu)化效果。
在文獻[6-7]中可以得到幾種小規(guī)模視角投影方法,分別為8、12、16視角。如圖2所示,位于上方三種投影方法是傳統(tǒng)的平均投影,置虛擬相機于水平面30度并選擇一周得到所有視圖,這種平均投影在正視圖角度下存在對模型的分類不足的問題。視圖的增加也會導致錯誤信息的增加,這些錯誤信息包括缺失和冗余,對于缺失的程度又可以分為三種:少量缺失、部分缺失以及完全缺失。如圖3所示,奇數(shù)行為文獻[6]中的12視角方法,可以看出,第一行虛線框內(nèi)的特征信息存在少量缺失的情況,這樣的視圖特征影響類與類之間的距離。第三行和第五行的虛線框視圖存在信息部分缺失的情況,這兩個不同類別的視圖特征很難將其正確分類。最后的空白視圖是信息的完全缺失。上述缺失信息的視圖雖然屬于三維模型特征的一部分,但在不同類別的模型同時出現(xiàn)部分缺失和完全缺失的情況下,分類檢索工作的準確度會受到影響。為了避免這樣的視圖,本文的傾斜式投影法效果在圖3的偶數(shù)行中,對比發(fā)現(xiàn),在固定的一下視角下出現(xiàn)的信息缺失情況不存在于傾斜式投影中,但對稱的物體(正面與反面無差別)如窗簾、門框和人體模型存在對稱位置視圖特征相似相近的情況,一半視圖經(jīng)過旋轉(zhuǎn)變換就可以得到。由此得出整體的模型視圖信息存在冗余,這一問題將在分類方法中解決。
圖2 平均視圖投影法(上)與傾斜式投影法(下)分析圖
圖3 平均12視圖投影與傾斜式12視圖投影的效果對比圖
通過建立模型庫實現(xiàn)分類模型到模型庫模型的匹配,并統(tǒng)計所有距離大小所對應(yīng)的類別,最終根據(jù)統(tǒng)計數(shù)量最多的值確定目標的類別。假設(shè)訓練集模型為A={a1,a2,…,acs},其中C、S分別表示類別、類內(nèi)模型個數(shù)。經(jīng)過2D-CNN的訓練,模型ai得到模型的特征分布為{OI1,OI2,…,OIN}。特征分類器的定義為:
φ(Ii)=Sigmoid(log(abs(OIi)))
(3)
模型庫由訓練集的模型組成,表示為H={ar1,ar2,…,art},t=C×δ,δ≤S,其中
(4)
每個模型最終都被標記為:
(5)
對于目標模型B={b1,b2,…,bN}的分類工作可以表示為:
(6)
(7)
(8)
模型庫分類法存在兩個自定義變量δ和φ,由于訓練集模型數(shù)量的龐大,將所有模型都劃分到模型庫會增加冗余數(shù)據(jù)和比較時間,為了解決這兩個問題,規(guī)定δ為建立模型庫時每個類中需要的模型個數(shù),而φ代表距離值的比較次數(shù),范圍定義為1≤φ<2δ,這兩個變量影響了分類工作中的分類速度和準確率,在實驗部分對其分別討論。
檢索方法分為單視圖檢索和多視圖檢索兩類,單視角下的固定特征對于模型較多的檢索工作存在信息量不足的問題。在傾斜式投影方法下,存在視圖信息冗余問題,但這保證了每幅視圖的差異最小化,對于這種差異小的視圖只需進行均值化操作,而無須像GVCNN[7]那樣對每幅視圖進行加權(quán)融合。使用歐氏距離定義模型X和模型Y的檢索方式,如下式:
(9)
實驗所用的數(shù)據(jù)集為ModelNet10和ModelNet40,作為三維模型的開源數(shù)據(jù)集,其包含了150 KB 3D CAD模型和660個獨立的模型種類,分為訓練和測試兩類數(shù)據(jù)文件,成為了眾多研究者驗證方法和分析數(shù)據(jù)的來源和重要佐證。本實驗遵從文獻[6]中的數(shù)據(jù)規(guī)模,使用此數(shù)據(jù)規(guī)模的方法還有文獻[7-9,12,17]。通過最優(yōu)調(diào)節(jié)的分類精度與當今優(yōu)秀方法的對比如表1所示,檢索的精度與召回率曲線如圖4所示。
表1 傾斜式投影方法結(jié)合模型庫分類法與當今優(yōu)秀方法的對比
圖4 不同方法在ModelNet40數(shù)據(jù)集上的準確率召回度曲線
使用Inception-v4[18]作為網(wǎng)絡(luò)模型進行三維模型的特征提取,并在ImageNet數(shù)據(jù)集上采用遷移學習的方式加速網(wǎng)絡(luò)參數(shù)的收斂。訓練網(wǎng)絡(luò)所用設(shè)備為:GeForce GTX 1080Ti GPU、中央處理器Intel Xeon E5-2680 v2 2.80 GHz、內(nèi)存64 GB、操作系統(tǒng)CentOS 7.2.1511,分類檢索測試在中央處理器Intel Core(TM) i7- 6700 CPU @ 3.40 GHz、內(nèi)存8 GB、操作系統(tǒng)Windows 10的設(shè)備上進行。為了保證訓練的可靠性,所有對比實驗的超參數(shù)保持一致,學習率設(shè)定為4×10-4,并使用批量梯度下降算法加速網(wǎng)絡(luò)參數(shù)的學習。網(wǎng)絡(luò)共迭代20輪,保存每一輪的網(wǎng)絡(luò)參數(shù)確保最優(yōu)結(jié)果被存儲下來。訓練8、12、16視圖的圖片數(shù)量分別為7 200、9 600、12 800,批次訓練的大小設(shè)置為25,每一輪的總批次分別為1 600、2 400、3 200,訓練最長時間的16視圖方法大約花費1天時間。
分類工作分為ModelNet10和ModelNet40數(shù)據(jù)集,分別測試的模型數(shù)量為200和800個。為了對比兩個的方法對分類工作的貢獻度,實驗對投影方法和分類方法進行單獨測試,如表2所示,在對比SVM分類法下的不同投影方法的分類精度發(fā)現(xiàn),投影數(shù)量的大小影響分類精度。在ModelNet40數(shù)據(jù)集上,隨著視圖數(shù)量的增加,分類精度平均提升了1.5百分點,縱向?qū)Ρ葍A斜式投影和平均投影,分類精度平均提升了0.9%。不同投影方法在運算時間上同屬于一個級別,平均0.1 s左右。分類結(jié)果在ModelNet10上也呈現(xiàn)出同樣的趨勢,每個相鄰視圖方法之間平均相差1.9百分點,而平均視圖與傾斜式視圖平均相差0.7%,平均用時在0.01 s左右。對比表2和表3,模型庫分類法的表現(xiàn)都高于SVM分類法,在ModelNet40數(shù)據(jù)集上,分類精度平均提升了0.6百分點,分類時間平均減少0.076 s,是SVM分類用時的三分之一到二分之一。結(jié)合實驗結(jié)果與圖1,單個有效子區(qū)域分別投影1、2、3次,提高了對每個模型特征的表達,這與實驗結(jié)果相符合,驗證了理論圖的合理性。
表2 SVM分類法在ModelNet數(shù)據(jù)集上的表現(xiàn)
表3 模型庫分類法在ModelNet數(shù)據(jù)集上的表現(xiàn)
模型庫分類法的參數(shù)δ(Shapes)和φ(TopN)影響分類精度和運算時間大小,通過對其大小進行測試發(fā)現(xiàn)(表4),δ與分類精度和運算時間具有線性關(guān)系,δ為1時,精度有一定提高,同時減小了一半運算時間,在δ=2時運算時間與SVM持平,但精度仍有提高。在ModelNet40數(shù)據(jù)集上,當δ=24時效果最好,但此時運算時間要比SVM慢很多,在小規(guī)模的分類工作或加上模型在神經(jīng)網(wǎng)絡(luò)的運算時間后這個問題將不再明顯。而在ModelNet10數(shù)據(jù)集上,δ為12最優(yōu)。實驗中變量φ對運算時間沒有明顯影響,但對分類精度有一定貢獻。
表4 模型庫分類法在傾斜式16視圖下的參數(shù)對比
續(xù)表4
本文提出了一種傾斜式角度的投影方法作為前端和模型庫分類法作為后端的三維模型識別方法。傾斜式投影法去除影響模型特征表達或類特征較弱的視圖,將更多的視圖分布在三維模型的有效投影角度內(nèi),增加了每幅視圖的特征信息,從而擴大不同類別的模型之間的特征差異。模型庫分類方法使用均值方法融合訓練集樣本的多視圖信息,構(gòu)造一個描述模型整體特征的基準且簡單高效的分類檢索模型庫,對測試集有很強的識別度,這種分類方法很好地結(jié)合了傾斜式投影方法,最大程度降低類內(nèi)間差異。實驗分析了每個方法對三維模型識別工作的表現(xiàn),調(diào)節(jié)參數(shù)找到分類結(jié)果的最優(yōu)值,同時使用傾斜式投影和模型庫分類方法獲得了分類精度的疊加,驗證了傾斜式投影方法和模型庫分類方法的有效性。雖然模型庫分類方法在較大參數(shù)值下具有高分類精度的同時運行時間會變長,但可以通過改變參數(shù)值大小調(diào)節(jié)運行效率與分類精度之間的側(cè)重點。