楊 軍,雷喜文
1.蘭州交通大學(xué) 電子與信息工程學(xué)院,蘭州 730070
2.蘭州交通大學(xué) 測(cè)繪與地理信息學(xué)院,蘭州 730070
三維模型成為繼音頻數(shù)據(jù)、二維圖像及視頻之后的新一代的數(shù)字多媒體。與傳統(tǒng)的多媒體數(shù)據(jù)相比,三維模型以其強(qiáng)烈的真實(shí)感更符合人們對(duì)自然界的直觀認(rèn)識(shí)而受到了工業(yè)界和學(xué)術(shù)界的廣泛關(guān)注。隨著信息技術(shù)產(chǎn)業(yè)、數(shù)據(jù)驅(qū)動(dòng)和深度學(xué)習(xí)等技術(shù)在計(jì)算機(jī)視覺和計(jì)算機(jī)圖形學(xué)中的廣泛應(yīng)用,三維模型分割取得了顯著的進(jìn)展。三維模型的分割問題是三維模型分析領(lǐng)域的一個(gè)基礎(chǔ)性問題,它是根據(jù)三維模型的幾何及拓?fù)涮卣鳎瑢⑷S模型分割為若干具有意義、各自連通且相互獨(dú)立的語義部件,以幫助三維模型的理解和分析,是計(jì)算機(jī)圖形學(xué)研究的重要問題。
近年來,隨著激光掃描和類似的三維傳感技術(shù)的廣泛應(yīng)用,三維點(diǎn)云成為三維幾何數(shù)據(jù)表示的基本格式,并廣泛應(yīng)用于許多領(lǐng)域,如自動(dòng)駕駛汽車、虛擬現(xiàn)實(shí)、三維城市建模等。一些深度學(xué)習(xí)方法開始嘗試對(duì)點(diǎn)云數(shù)據(jù)進(jìn)行分析和處理。文獻(xiàn)[3]提出PointCNN 網(wǎng)絡(luò)模型可以直接將卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)作用于無序的點(diǎn)云數(shù)據(jù),避免了特征隨輸入點(diǎn)順序的變化而改變,增強(qiáng)了網(wǎng)絡(luò)對(duì)模型的處理能力。文獻(xiàn)[4]提出了可以直接對(duì)點(diǎn)云進(jìn)行分類和分割的深度學(xué)習(xí)網(wǎng)絡(luò)框架PointNet。考慮到點(diǎn)云的稀疏性,未將點(diǎn)云轉(zhuǎn)換為多視圖或體素網(wǎng)格,從而能保留更多的三維特征信息,取得了較好的分割結(jié)果。文獻(xiàn)[5]提出一種多特征融合的三維點(diǎn)云模型分割方法,通過構(gòu)建注意力融合層學(xué)習(xí)全局單點(diǎn)特征和局部幾何特征隱含關(guān)系來充分挖掘模型的細(xì)粒度幾何特征,以得到更好的模型分割結(jié)果。目前,基于深度學(xué)習(xí)的三維點(diǎn)云模型分割方法大都依賴于帶標(biāo)記的訓(xùn)練數(shù)據(jù)集,使得此類方法推廣受限。
最近,研究者發(fā)現(xiàn)三維模型簇的協(xié)同分割(cosegmentation)相比單個(gè)三維模型可以提供更多的有效信息,可以取得比單個(gè)模型更好的分割結(jié)果,并且可以同時(shí)對(duì)不同姿態(tài)的同類模型或者拓?fù)浣Y(jié)構(gòu)相似的不同類模型進(jìn)行協(xié)同一致分割。因此,近期關(guān)于三維模型分割問題的研究主要集中于對(duì)三維模型簇進(jìn)行協(xié)同分割。文獻(xiàn)[6]從有標(biāo)簽的數(shù)據(jù)集中學(xué)習(xí)模型潛在的共有特征,以此進(jìn)行模型的協(xié)同分析。因此,若帶有標(biāo)簽的數(shù)據(jù)集數(shù)量足夠多,有監(jiān)督的算法就能取得理想的分割結(jié)果。然而,獲取高質(zhì)量的標(biāo)簽數(shù)據(jù)費(fèi)時(shí)費(fèi)力,成本高昂。相反,文獻(xiàn)[7]提出一種無監(jiān)督的協(xié)同分割方法,將輸入模型分割成面片,然后通過子空間聚類對(duì)相似面片進(jìn)行分類。雖然無監(jiān)督三維模型分割算法能利用無標(biāo)簽的數(shù)據(jù)實(shí)現(xiàn)三維模型的協(xié)同分割,但這種分割算法以降低分割準(zhǔn)確率為代價(jià)。結(jié)合點(diǎn)云數(shù)據(jù)的特點(diǎn),本文提出了一種基于弱監(jiān)督學(xué)習(xí)的三維點(diǎn)云模型簇協(xié)同分割網(wǎng)絡(luò)。在特征提取過程中,利用局部卷積操作能更好地關(guān)聯(lián)點(diǎn)與點(diǎn)之間的特征信息,提高網(wǎng)絡(luò)對(duì)點(diǎn)云模型的識(shí)別分割能力。由于同類模型具有相似的特征信息,用相似部件矩陣就可表示同類部件特征,網(wǎng)絡(luò)在學(xué)習(xí)時(shí),可以對(duì)同類型的多個(gè)模型協(xié)同進(jìn)行學(xué)習(xí)。此外,深度學(xué)習(xí)網(wǎng)絡(luò)以能量函數(shù)為引導(dǎo),通過反向傳播優(yōu)化網(wǎng)絡(luò)參數(shù),從而實(shí)現(xiàn)對(duì)點(diǎn)云模型簇的一致性分割。算法的主要?jiǎng)?chuàng)新點(diǎn)和貢獻(xiàn)有:(1)對(duì)原始點(diǎn)云數(shù)據(jù)進(jìn)行采樣時(shí),為了彌補(bǔ)采樣損失,采樣之前在被采樣點(diǎn)集中選擇子集的鄰域,能夠?qū)G棄點(diǎn)的信息嵌入在關(guān)聯(lián)點(diǎn)的鄰域中,在降低網(wǎng)絡(luò)計(jì)算復(fù)雜度的同時(shí)保留更多點(diǎn)的特征信息。(2)將弱監(jiān)督學(xué)習(xí)方法用于三維點(diǎn)云模型分割,能降低網(wǎng)絡(luò)訓(xùn)練階段對(duì)高質(zhì)量帶標(biāo)簽數(shù)據(jù)集的依賴性,該方法只需要在訓(xùn)練階段標(biāo)記一小部分點(diǎn)就能實(shí)現(xiàn)與有監(jiān)督方法相媲美的分割結(jié)果。
三維模型的分割有助于模型的后續(xù)分析、處理和應(yīng)用。目前,三維模型的分割形式主要有兩類:單體三維模型分割和三維模型簇協(xié)同分割。
基于幾何的分割方法利用特定的描述符提取三維模型的幾何特征,通過分解和聚類技術(shù)完成三維模型分割。隨機(jī)游走(random walk,RW)算法和分水嶺(watershed segmentation,WS)算法是二維圖像分割中常見的算法,研究者將其擴(kuò)展用于三維模型分割。Shlafman 等人提出將均值聚類應(yīng)用于三維模型分割,通過聚類相似面片得到分割結(jié)果,該方法的分割面片數(shù)目可以預(yù)先設(shè)定,從而避免了過分割。Liu 等人提出譜聚類算法,將三維模型分割問題轉(zhuǎn)化為圖的切割問題,通過圖構(gòu)建一個(gè)相似矩陣并結(jié)合均值聚類算法得到模型的分割結(jié)果。然而,這些方法依賴于特征描述符提取的幾何層面的低層次特征,無法提取具有語義性質(zhì)的高層次特征,而且若輸入的是同一類的若干三維模型,利用單一的特征描述符分割的結(jié)果往往會(huì)存在較大的差異。
近年來,隨著深度學(xué)習(xí)技術(shù)的發(fā)展,研究者開始將其應(yīng)用于三維模型的分析領(lǐng)域,形成了基于數(shù)據(jù)驅(qū)動(dòng)的模型分析方法。深度學(xué)習(xí)盡管在二維圖像數(shù)據(jù)分析方面取得了巨大成功,但由于三維模型具有復(fù)雜的特征和拓?fù)浣Y(jié)構(gòu),無法像二維圖像一樣直接將原始數(shù)據(jù)輸入到學(xué)習(xí)算法中,因此許多學(xué)者致力于采用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)分析三維模型。文獻(xiàn)[12]提出了基于多視圖的卷積神經(jīng)網(wǎng)絡(luò)(multi-view convolutional neural network,MVCNN)。其思想是首先將三維模型投影為多個(gè)視角下的二維圖像,得到不同視角下該模型的多視角姿態(tài)圖像;然后通過CNN 對(duì)每個(gè)視圖提取特征,將不同視角下提取的特征通過圖池化層進(jìn)行聚合;最后將聚合后的特征再輸入到CNN 中,從而獲得三維模型的分割結(jié)果。文獻(xiàn)[13]提出一種基于體素的卷積神經(jīng)網(wǎng)絡(luò)(deep voxel convolutional neural network,DVCNN)的方法。首先利用體素化技術(shù)將三維多邊形網(wǎng)格模型轉(zhuǎn)化為二值的三維體素矩陣,然后通過深度體素卷積神經(jīng)網(wǎng)絡(luò)獲取模型的深層特征。然而,多視圖和體素化方法在處理三維模型過程中都要將原始數(shù)據(jù)轉(zhuǎn)化為卷積神經(jīng)網(wǎng)絡(luò)可以處理的數(shù)據(jù)形式,這一過程會(huì)丟失三維模型的信息,例如體素化會(huì)損失空間分辨率,多視圖會(huì)丟失三維模型的部分幾何信息。
以上這些方法都是針對(duì)單體三維模型的分割,在有監(jiān)督的分割方法中,單個(gè)模型無法提供足夠的幾何信息,且需要人工設(shè)計(jì)大量的標(biāo)注數(shù)據(jù),即使在大數(shù)據(jù)時(shí)代,獲取大批高質(zhì)量的標(biāo)注數(shù)據(jù)往往成本高昂,限制了此類方法的發(fā)展。
近年來,研究者開始關(guān)注三維模型簇的協(xié)同一致分割。協(xié)同分割旨在對(duì)一組拓?fù)浣Y(jié)構(gòu)相似的同類或不同種類的模型進(jìn)行一致分割,其利用模型排列方式和共同特征,在模型間建立對(duì)應(yīng)關(guān)系傳播相關(guān)性信息以實(shí)現(xiàn)協(xié)同分割。Golovinskiy 等人首次提出協(xié)同分割方法,將三維模型協(xié)同分割問題轉(zhuǎn)化為圖分割問題,通過對(duì)齊所有模型并聚類其圖元來獲得模型簇的一致性分割。Sidi 等人引入了一種基于描述符的模型分割方法,該方法依靠多個(gè)特征描述符來表征原始面片之間的特征,將協(xié)同分割問題看成特征空間的聚類問題。文獻(xiàn)[18]提出了一種基于深度學(xué)習(xí)的無監(jiān)督三維模型分割方法,利用深度神經(jīng)網(wǎng)絡(luò)從低級(jí)特征中提取若干同一類模型的高級(jí)特征,并將這些高級(jí)特征進(jìn)行聚類運(yùn)算得到模型的一致性分割結(jié)果。然而,由于低級(jí)特征描述符提取的特征容易受到三維模型的幾何形狀和拓?fù)浣Y(jié)構(gòu)的影響而改變,為了解決這一問題,研究者提出了有監(jiān)督的方法,將分割視為一個(gè)標(biāo)記問題。Kalogerakis等人利用機(jī)器學(xué)習(xí)技術(shù),構(gòu)造分類器來預(yù)測(cè)類標(biāo)簽。Guo 等人引入了使用卷積神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)標(biāo)簽的深度學(xué)習(xí)框架。這兩種方法都是基于幾何特征和人工標(biāo)記的訓(xùn)練數(shù)據(jù)。文獻(xiàn)[21]提出的PointNet++網(wǎng)絡(luò)架構(gòu)直接作用于點(diǎn)云數(shù)據(jù),將點(diǎn)作為輸入并輸出類標(biāo)簽,能進(jìn)一步提升模型分割效果。但是此方法對(duì)帶標(biāo)簽的數(shù)據(jù)集依然有較強(qiáng)的依賴性,數(shù)據(jù)集的質(zhì)量影響網(wǎng)絡(luò)的性能。此外,為了實(shí)現(xiàn)模型簇的協(xié)同分析,需要在整個(gè)模型簇中逐點(diǎn)分析各個(gè)模型的共有潛在特征,將這些特征進(jìn)行協(xié)同分析難度較大。目前,弱監(jiān)督學(xué)習(xí)是一種能降低網(wǎng)絡(luò)對(duì)帶標(biāo)簽數(shù)據(jù)集依賴性的方法,文獻(xiàn)[22]提出一種膠囊網(wǎng)絡(luò)能以小部分標(biāo)注的數(shù)據(jù)實(shí)現(xiàn)三維點(diǎn)云模型分割任務(wù),但網(wǎng)絡(luò)中的動(dòng)態(tài)路由機(jī)制需要耗費(fèi)大量的存儲(chǔ)空間,并且在模型重構(gòu)過程中存在一定的誤差。文獻(xiàn)[23]構(gòu)建了一種基于分支式自動(dòng)編碼器的協(xié)同分割網(wǎng)絡(luò)架構(gòu),其中每個(gè)分支分別學(xué)習(xí)輸入模型的一個(gè)部件特征。該網(wǎng)絡(luò)能以弱監(jiān)督學(xué)習(xí)方式實(shí)現(xiàn)模型分割任務(wù),但缺乏模型簇的一致性優(yōu)化且對(duì)輸入集較小的模型簇分割效果不佳。文獻(xiàn)[24]提出一種利用云級(jí)弱標(biāo)簽來訓(xùn)練語義分割網(wǎng)絡(luò)的方法。該方法可以顯著降低標(biāo)注數(shù)據(jù)集的人工和時(shí)間成本,且一定程度上解決了類標(biāo)簽數(shù)據(jù)不均衡的問題,使得網(wǎng)絡(luò)提高了對(duì)小對(duì)象的分割精度,但該網(wǎng)絡(luò)設(shè)計(jì)的多路徑注意力模塊可能會(huì)導(dǎo)致網(wǎng)絡(luò)復(fù)雜度較高。文獻(xiàn)[25]提出一種作用于點(diǎn)云數(shù)據(jù)的自適應(yīng)協(xié)同分割網(wǎng)絡(luò)架構(gòu),將三維模型分割轉(zhuǎn)化為點(diǎn)標(biāo)記問題。該方法通過迭代最小化組一致性損失來生成模型部件標(biāo)簽以實(shí)現(xiàn)同類模型間的協(xié)同分析,但當(dāng)不同類別模型混合在一起時(shí),網(wǎng)絡(luò)便很難學(xué)習(xí)到其所有部件特征,且學(xué)習(xí)的權(quán)值不能隨著新模型的出現(xiàn)而不斷更新,使得跨類別學(xué)習(xí)受限。
綜上所述,雖然無監(jiān)督和有監(jiān)督三維模型協(xié)同分割方法在一些場(chǎng)景下取得了比較好的結(jié)果,但無監(jiān)督方法過度依賴人工設(shè)計(jì)的描述符,有監(jiān)督的方法又依賴于大量人工標(biāo)注的數(shù)據(jù)集,這兩種方法都費(fèi)時(shí)費(fèi)力,增加了網(wǎng)絡(luò)的學(xué)習(xí)成本。而弱監(jiān)督學(xué)習(xí)(weakly supervised learning,WSL)方法可以看作上述兩種方法的混合,并且弱監(jiān)督學(xué)習(xí)技術(shù)作為一種可以同時(shí)有效利用有標(biāo)簽數(shù)據(jù)和無標(biāo)簽數(shù)據(jù)的學(xué)習(xí)范式,大大降低監(jiān)督任務(wù)對(duì)于標(biāo)簽數(shù)據(jù)的需求。因此,本文在文獻(xiàn)[4]的基礎(chǔ)上,提出一種基于弱監(jiān)督學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu),實(shí)現(xiàn)對(duì)三維模型簇的協(xié)同一致分割。
三維點(diǎn)云模型由一系列具有幾何信息的點(diǎn)集構(gòu)成,其分割的實(shí)質(zhì)是對(duì)點(diǎn)集進(jìn)行逐點(diǎn)分類,旨在將同一類別的點(diǎn)分類到所屬的部件中得到模型分割結(jié)果。因此,本文提出利用局部卷積方法并構(gòu)建局部鄰域圖來解決上述問題,并通過弱監(jiān)督方法采用少量標(biāo)注的數(shù)據(jù)進(jìn)行訓(xùn)練,提高了網(wǎng)絡(luò)架構(gòu)的普適性和分割效果。
三維點(diǎn)云模型是一組無序點(diǎn)的三維坐標(biāo)信息集合,然而每個(gè)點(diǎn)也不是獨(dú)立存在的,相鄰點(diǎn)之間有相似的幾何信息,因此,建立點(diǎn)與點(diǎn)之間的關(guān)聯(lián)性可以更好地表征三維模型的局部特征信息,圖1 為點(diǎn)的鄰域圖構(gòu)建過程。定義一個(gè)點(diǎn)集為{p=(x,y,z)|=1,2,…,},其中p為點(diǎn)云中任意一點(diǎn),由該點(diǎn)對(duì)應(yīng)的坐標(biāo)(x,y,z) 表示,以p為中心點(diǎn)利用K 近鄰(Knearest neighbour,KNN)方法建立局部有向圖,由頂點(diǎn)集和邊集構(gòu)成,定義如下:
圖1 鄰域圖構(gòu)建過程Fig.1 Construction process of neighborhood graph
式中,e為第個(gè)有向邊集合,e表示相鄰點(diǎn)p到中心點(diǎn)p的有向邊。
局部卷積操作用于提取中心點(diǎn)的特征和中心點(diǎn)與K 近鄰域點(diǎn)的邊緣向量。由于點(diǎn)云模型是一組無序的點(diǎn)集,采用最大池化操作,該方法不受鄰域點(diǎn)順序的影響,可以提取所有邊向量中最主要的特征。對(duì)所有的點(diǎn)定義一個(gè)相同的特征提取函數(shù)f,則輸入一個(gè)中心點(diǎn)是p的局部鄰域圖可以得到輸出局部特征l,公式如下:
式中,(p,e)是中心點(diǎn)p和一個(gè)邊向量e之間的隱藏特征向量。輸出的局部特征l取隱藏特征向量的最大值max{}。
對(duì)于分割任務(wù),需將全局特征與提取的局部特征逐點(diǎn)進(jìn)行拼接,并采用多層感知機(jī)(multilayer perceptron,MLP)對(duì)每個(gè)點(diǎn)輸出一個(gè)預(yù)測(cè)分?jǐn)?shù)。因此,局部卷積操作方法公式定義如下:
式中,p′表示更新后的點(diǎn)特征,它將每個(gè)點(diǎn)的自身特征與對(duì)應(yīng)的鄰點(diǎn)相關(guān)聯(lián),□表示一種通用的對(duì)稱函數(shù),如池化操作或者求和。總之,局部卷積將多層感知機(jī)應(yīng)用于每個(gè)點(diǎn)和相應(yīng)的鄰域以捕獲局部感受野,然后用最大池化運(yùn)算生成與局部特征相關(guān)聯(lián)的新維度特征的新點(diǎn)集。局部卷積過程如圖2 所示。
圖2 局部卷積過程Fig.2 Local convolution process
局部卷積操作的最主要作用就是生成邊特征,其用于表征每個(gè)點(diǎn)與其鄰域點(diǎn)之間的關(guān)系。這種卷積方法有兩個(gè)優(yōu)點(diǎn):(1)通過KNN Graph 能夠在保持排列不變性的同時(shí),可以更好地提取點(diǎn)局部信息,提高點(diǎn)云模型的分割效果;(2)在經(jīng)過多層迭代之后能夠更好地捕捉到潛在的遠(yuǎn)距離相似特征。
每一個(gè)三維點(diǎn)云模型都是三維空間中逐點(diǎn)坐標(biāo)構(gòu)成的集合,為了建立多個(gè)同類模型之間的關(guān)聯(lián)性實(shí)現(xiàn)協(xié)同分析,根據(jù)三維點(diǎn)云模型的特性,本文提出了基于局部卷積操作部件分割網(wǎng)絡(luò)。首先將點(diǎn)集輸入到網(wǎng)絡(luò)并建立關(guān)于點(diǎn)的局部鄰域圖,以每個(gè)點(diǎn)為頂點(diǎn),相鄰點(diǎn)之間的有向邊表示相鄰點(diǎn)對(duì)之間的關(guān)聯(lián)性;然后利用局部卷積操作提取點(diǎn)云模型特征,得到各類部件的分割結(jié)果;最后利用相似部件矩陣分析模型之間的協(xié)同性。
本研究中構(gòu)建的深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)合了弱監(jiān)督學(xué)習(xí)方法,旨在對(duì)同類模型的若干少量標(biāo)注的樣本同時(shí)進(jìn)行學(xué)習(xí),因此網(wǎng)絡(luò)在提取模型特征之后,將同類部件特征描述符堆疊于相似部件矩陣,然后用一個(gè)能量函數(shù)在反向傳播中不斷優(yōu)化網(wǎng)絡(luò)參數(shù),從而實(shí)現(xiàn)對(duì)同一類模型的多個(gè)樣本的一致性分割,網(wǎng)絡(luò)的協(xié)同分析特性也由此體現(xiàn)。
設(shè)三維點(diǎn)云模型為點(diǎn)集{p=(x,y,z)|=1,2,…,},其中表示點(diǎn)的數(shù)目,網(wǎng)絡(luò)將點(diǎn)云數(shù)據(jù)作為輸入,直接對(duì)原始點(diǎn)集進(jìn)行采樣。為了減少采樣損失,本文提出在采樣前從被采樣點(diǎn)中選擇子集的鄰域,這樣就能將丟棄的點(diǎn)的信息嵌入在鄰域中。如圖3 所示,使用迭代最遠(yuǎn)點(diǎn)采樣(iterative farthest point sampling,F(xiàn)PS)策略選擇個(gè)點(diǎn)作為子集。首先,從原始點(diǎn)集中取出一個(gè)點(diǎn)p作為起始點(diǎn),并寫入子集中,然后迭代地將與上一個(gè)選取點(diǎn)的距離最遠(yuǎn)的點(diǎn)添加至子集中,直到取夠個(gè)點(diǎn)。與隨機(jī)采樣相比,F(xiàn)PS 策略對(duì)整個(gè)點(diǎn)集有更好的覆蓋率。
三維點(diǎn)云模型分割的實(shí)質(zhì)是對(duì)點(diǎn)的逐點(diǎn)分類,即為點(diǎn)集中的每個(gè)點(diǎn)預(yù)測(cè)一個(gè)部件類別標(biāo)簽,因此需要提取所有點(diǎn)的特征。常用的策略有兩種:一種是文獻(xiàn)[4]和文獻(xiàn)[26]采用的將所有點(diǎn)作為質(zhì)心來進(jìn)行采樣的方法,即將整體和局部特征連接在一起輸出每個(gè)點(diǎn)的預(yù)測(cè)分?jǐn)?shù)。然而,這種方法會(huì)導(dǎo)致較高的計(jì)算成本。另一種是文獻(xiàn)[21]采用的基于距離插值的分層傳播策略和跨層跳躍鏈接方式。本文基于第二種策略,結(jié)合KNN 算法和局部卷積方法進(jìn)行上采樣,為了從給定的子采樣點(diǎn)集及其對(duì)應(yīng)特征中生成插值點(diǎn),插值策略基于個(gè)近鄰點(diǎn)的歐式距離平方倒數(shù)值的加權(quán)平均值,其值由式(4)計(jì)算可得。
式中,w()=1/(-p)是和p之間的歐式距離平方的倒數(shù)。將插值后的點(diǎn)特征與相對(duì)應(yīng)層點(diǎn)特征拼接在一起,并通過局部卷積將它們?nèi)诤稀?/p>
基于局部卷積的部件分割網(wǎng)絡(luò)的基本架構(gòu)如圖3所示。首先,原始點(diǎn)云數(shù)據(jù)經(jīng)過兩層為采樣層和對(duì)應(yīng)的局部卷積層操作,轉(zhuǎn)化為128×128 的張量。然后,使用兩個(gè)上采樣層和相對(duì)應(yīng)的局部卷積層([256,256],[512,512,1 024])提取細(xì)粒度特征。最后,通過一個(gè)最大池化操作獲取點(diǎn)云的全局特征,并且利用4個(gè)多層感知機(jī)(256,256,128,)將全局特征轉(zhuǎn)換為個(gè)部件類別,dropout設(shè)置為0.6。
圖3 局部卷積的部件分割網(wǎng)絡(luò)Fig.3 Component segmentation network of LocalConv
本文構(gòu)建的協(xié)同分割網(wǎng)絡(luò)通過反向傳播學(xué)習(xí)到最優(yōu)的網(wǎng)絡(luò)權(quán)值,該方法基于部件特征上定義的能量函數(shù),公式如下:
式中,M和M分別表示不同的部件特征矩陣;表示矩陣的秩大??;表示將兩個(gè)不同的部件矩陣聯(lián)合。
圖4 為協(xié)同分割網(wǎng)絡(luò)總體架構(gòu)。網(wǎng)絡(luò)首先對(duì)原始點(diǎn)云數(shù)據(jù)利用最遠(yuǎn)點(diǎn)采樣法進(jìn)行采樣,經(jīng)過局部卷積網(wǎng)絡(luò)得到部件分割結(jié)果。在此過程中,網(wǎng)絡(luò)對(duì)同一類別三維點(diǎn)云模型的多個(gè)樣本同時(shí)進(jìn)行訓(xùn)練,經(jīng)過全連接層將點(diǎn)云模型逐點(diǎn)進(jìn)行分類,使每個(gè)點(diǎn)得到一個(gè)預(yù)測(cè)分?jǐn)?shù),接著將個(gè)類別的抽象標(biāo)簽{,,…, L}分別分配于每個(gè)模型中的逐個(gè)標(biāo)記點(diǎn),以此判斷該點(diǎn)屬于哪一個(gè)部件,并通過權(quán)值共享和標(biāo)簽傳播方法預(yù)測(cè)未標(biāo)記點(diǎn)的所屬部件類別,每個(gè)模型中帶標(biāo)簽L的點(diǎn)集構(gòu)成模型的單個(gè)部件。然后采用最大池化(max pooling)操作為每個(gè)模型的各個(gè)部件生成一個(gè)與之對(duì)應(yīng)的特征描述符,且?guī)в袠?biāo)簽L的所有部件具有相似的特征描述符。最后,將所有帶標(biāo)簽L的部件描述符堆疊在一個(gè)特征矩陣M中,且矩陣秩越小表示部件的特征越一致。此外,將帶不同標(biāo)簽的特征描述符拼接在一起,構(gòu)造一個(gè)新的聯(lián)合矩陣(M,M)。因?yàn)閹Р煌瑯?biāo)簽的部件具有不同特征,所以矩陣M和矩陣M的行并集的秩更大,該矩陣秩越大,表示不同部件之間的特征越不一致。因此,本文算法以最小化同類別語義標(biāo)簽的部件特征矩陣的秩,同時(shí)最大化不同類別語義標(biāo)簽的聯(lián)合部件特征矩陣的秩為目標(biāo),優(yōu)化協(xié)同分割網(wǎng)絡(luò)的權(quán)重實(shí)現(xiàn)模型簇的一致性分割。
圖4 協(xié)同分割網(wǎng)絡(luò)架構(gòu)Fig.4 Co-segmentation network framework
本研究基于弱監(jiān)督學(xué)習(xí)方法構(gòu)建協(xié)同分割網(wǎng)絡(luò)獲得點(diǎn)云模型一致性分割結(jié)果,在網(wǎng)絡(luò)訓(xùn)練的點(diǎn)云數(shù)據(jù)中只需標(biāo)記很小一部分點(diǎn),就可以產(chǎn)生接近甚至優(yōu)于有監(jiān)督的結(jié)果。因此,本研究的核心在于利用弱監(jiān)督學(xué)習(xí)方法以少量標(biāo)記的數(shù)據(jù)以實(shí)現(xiàn)三維點(diǎn)云模型簇的協(xié)同分割。
基于深度學(xué)習(xí)的弱監(jiān)督學(xué)習(xí)方法一般根據(jù)其數(shù)據(jù)類型可分為三類:不完整監(jiān)督學(xué)習(xí),其數(shù)據(jù)中只有一部分有標(biāo)記;不確切監(jiān)督學(xué)習(xí),其數(shù)據(jù)中標(biāo)記數(shù)據(jù)粗粒度太大;不準(zhǔn)確監(jiān)督學(xué)習(xí),其數(shù)據(jù)中標(biāo)簽有錯(cuò)誤。本研究中采用不完整的弱監(jiān)督學(xué)習(xí)方法,旨在使用較弱的標(biāo)注數(shù)據(jù)進(jìn)行實(shí)驗(yàn)。訓(xùn)練集只需要在訓(xùn)練階段標(biāo)記很小的一部分點(diǎn),并且通過KNN 算法構(gòu)建局部鄰域圖獲得點(diǎn)與點(diǎn)之間關(guān)聯(lián)特征。此時(shí),圖中的每一個(gè)節(jié)點(diǎn)就是一個(gè)數(shù)據(jù)點(diǎn),包含已經(jīng)標(biāo)記和未標(biāo)記的數(shù)據(jù),并以標(biāo)簽傳播的形式推斷出未標(biāo)記點(diǎn)的所屬類別。為了實(shí)現(xiàn)標(biāo)簽傳播,將構(gòu)建的KNN鄰域圖的相應(yīng)的權(quán)重矩陣∈R表示為:
式中,||p-p||表示點(diǎn)對(duì)之間的距離,為超參數(shù)。利用KNN 算法只保留每個(gè)點(diǎn)的K 近鄰權(quán)重,其他為0。然后通過節(jié)點(diǎn)之間的邊傳播標(biāo)簽,邊的權(quán)重越大,表示兩個(gè)節(jié)點(diǎn)越相似,使得標(biāo)簽容易從標(biāo)記點(diǎn)傳播到未標(biāo)記點(diǎn)。因此,定義概率轉(zhuǎn)移矩陣:
式中,t表示標(biāo)簽從節(jié)點(diǎn)轉(zhuǎn)移到節(jié)點(diǎn)的概率。經(jīng)過標(biāo)簽傳播策略,深度神經(jīng)網(wǎng)絡(luò)便學(xué)習(xí)到了更多的帶標(biāo)簽的數(shù)據(jù),經(jīng)過能量函數(shù)反饋使網(wǎng)絡(luò)參數(shù)達(dá)到最優(yōu),這樣網(wǎng)絡(luò)的輸出便是理想的協(xié)同分割結(jié)果。
本實(shí)驗(yàn)采用的實(shí)驗(yàn)環(huán)境為Linux Ubuntu 16.04 操作系統(tǒng),硬件是Intel Core i9 9900k CPU 和NVIDIA Rtx 2080Ti GPU(11 GB 顯存)處理器,采用的深度學(xué)習(xí)框架為Tensorflow,基于該框架的深度學(xué)習(xí)運(yùn)算平臺(tái)為CUDA 9.0,GPU 加速庫為cudnn 7.0。
為了與其他算法進(jìn)行比較,本文采用ShapeNet Parts數(shù)據(jù)集,該數(shù)據(jù)集包含16 881 個(gè)三維模型,16個(gè)類別,共50 個(gè)帶有標(biāo)簽的部件,大多數(shù)模型都被標(biāo)記為2 至5 個(gè)部件,且標(biāo)簽都被注釋在三維模型的采樣點(diǎn)上。
為了提高模型分割精度,從模型表面均勻采樣2 048 點(diǎn)進(jìn)行訓(xùn)練和測(cè)試實(shí)驗(yàn)。實(shí)驗(yàn)中采用自適應(yīng)矩估計(jì)(adaptive moment estimation,Adam)對(duì)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行優(yōu)化。初始學(xué)習(xí)率設(shè)為0.003,以便在較高的學(xué)習(xí)率下快速得到最優(yōu)解。動(dòng)量設(shè)置為0.8,避免網(wǎng)絡(luò)在更新參數(shù)時(shí)陷入局部最優(yōu)。為防止訓(xùn)練時(shí)網(wǎng)絡(luò)中間層數(shù)據(jù)分布不一致,在網(wǎng)絡(luò)的每個(gè)輸入層前插入一個(gè)批歸一化層(batch normalization),將批處理歸一化的指數(shù)衰減系數(shù)設(shè)為0.5,使損失函數(shù)能夠快速收斂。在本實(shí)驗(yàn)中,批尺寸大小設(shè)置為32 時(shí),對(duì)網(wǎng)絡(luò)梯度的影響最小。
三維點(diǎn)云模型的分割準(zhǔn)確率以點(diǎn)集上的交并比(intersection over union,IoU)來度量,IoU 主要計(jì)算兩個(gè)集合的交集和并集之間的比率,用于模型分割指真實(shí)分割部件和預(yù)測(cè)部件的交集和并集之間的比率,對(duì)于點(diǎn)云模型分割任務(wù),需要先計(jì)算每類模型的IoU 值,公式如下:
式中,表示真正樣本數(shù)量;表示真實(shí)的真樣本數(shù)量;表示預(yù)測(cè)的真樣本數(shù)量。
在得到每類模型的IoU 值之后,為了評(píng)估網(wǎng)絡(luò)對(duì)整個(gè)模型簇的分割效果,需要引入平均交并比(mean intersection over union,mIoU)來進(jìn)行度量,公式如下:
式中,表示三維模型的類別數(shù),mIoU 的值越大表明真實(shí)值與測(cè)試值越接近,從而得到模型分割的效果也更好。在ShapeNet Parts 數(shù)據(jù)集中,由于不同類別的模型數(shù)量均不同,需要從定量的角度繼續(xù)對(duì)分割準(zhǔn)確率進(jìn)行評(píng)估,故引入部件交并比(part averaged IoU,pIoU)進(jìn)一步做對(duì)比,公式如下:
該式表示根據(jù)每一類模型出現(xiàn)的頻率對(duì)各個(gè)類的IoU 進(jìn)行加權(quán)求和,本實(shí)驗(yàn)中頻率即每類模型的數(shù)量。pIoU 值越高,表明分割準(zhǔn)確率越高。
本文算法對(duì)三維點(diǎn)云模型簇的協(xié)同分割效果如圖5 所示,其中不同顏色的點(diǎn)云表示不同的模型分割部件??梢钥闯?,每一類模型對(duì)應(yīng)的同類部件的顏色是一致的,較好地體現(xiàn)出了三維模型簇協(xié)同分割的一致性。
圖5 點(diǎn)云模型協(xié)同分割結(jié)果Fig.5 Co-segmentation results of point cloud shapes
本文算法與文獻(xiàn)[4]、文獻(xiàn)[21,23]、文獻(xiàn)[26]和文獻(xiàn)[28]的算法在ShapeNet 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果對(duì)比如表1 所示。本文算法采用了弱監(jiān)督策略,并通過KNN 方法建立點(diǎn)的局部鄰域圖以更好地關(guān)聯(lián)采樣點(diǎn)之間的信息,當(dāng)對(duì)模型中的各個(gè)部件分別只標(biāo)記一個(gè)點(diǎn)時(shí)已經(jīng)能夠獲得具有競爭力的結(jié)果,當(dāng)標(biāo)記10%的點(diǎn)時(shí),相比文獻(xiàn)[4]的算法,mIoU 值提高0.012,pIoU 值提高0.014。此外,本文算法以一個(gè)能量函數(shù)反向傳播迭代產(chǎn)生模型的一致性分割結(jié)果,相比文獻(xiàn)[28]采用的遞歸鄰近搜索策略的mIoU 值提高0.042,pIoU 值提高0.027。由于本文算法采用弱監(jiān)督學(xué)習(xí)策略,并且用少量標(biāo)注的數(shù)據(jù)進(jìn)行實(shí)驗(yàn),分割準(zhǔn)確率略低于文獻(xiàn)[21]和文獻(xiàn)[26]的方法。但其相比文獻(xiàn)[22]和文獻(xiàn)[23]所采用的弱監(jiān)督策略,mIoU 值分別提高0.007 和0.017,pIoU 值分別提高0.001和0.004。
表1 不同算法的分割準(zhǔn)確率對(duì)比Table 1 Comparison of segmentation accuracy of different algorithms 單位:%
本研究進(jìn)一步對(duì)比不同算法在各類模型上的分割準(zhǔn)確率,結(jié)果如表2 所示。文獻(xiàn)[4]、文獻(xiàn)[21]、文獻(xiàn)[26]和文獻(xiàn)[28]都采用了有監(jiān)督策略,而文獻(xiàn)[22]、文獻(xiàn)[23]和本文算法采用了弱監(jiān)督策略,當(dāng)模型各部件被標(biāo)記一個(gè)采樣點(diǎn)時(shí),本文弱監(jiān)督策略與文獻(xiàn)[28]的有監(jiān)督策略相比,部分模型的分割準(zhǔn)確率有一定的提升,其中帽子模型(cap)和杯子模型(mug)的準(zhǔn)確率分別提高0.049 和0.036。當(dāng)訓(xùn)練樣本中被標(biāo)記采樣點(diǎn)提升至10%時(shí),各類模型的分割準(zhǔn)確率已能和對(duì)比文獻(xiàn)有監(jiān)督策略的分割結(jié)果相媲美,且部分模型的分割效果甚至優(yōu)于有監(jiān)督學(xué)習(xí)方法。對(duì)比文獻(xiàn)[28],汽車模型(car)和火箭模型(rocket)的分割準(zhǔn)確率提升最為明顯,分別提高0.075 和0.101。文獻(xiàn)[26]采用邊緣卷積方法關(guān)聯(lián)點(diǎn)云模型點(diǎn)之間的特征,當(dāng)分割訓(xùn)練樣本數(shù)目較多的模型時(shí),分割結(jié)果優(yōu)于其他算法,如飛機(jī)模型(airplane)、椅子模型(chair)和吉他模型(guitar)。對(duì)比文獻(xiàn)[26],本文算法在飛機(jī)(airplane)、椅子(chair)和吉他(guitar)三類模型的分割準(zhǔn)確率分別降低0.005、0.011 和0.006,但在汽車模型(car)、刀模型(knife)、火箭模型(rocket)和桌子模型(table)上的分割準(zhǔn)確率分別高于文獻(xiàn)[26]算法0.007、0.003、0.022 和0.009。文獻(xiàn)[22]利用動(dòng)態(tài)路由驅(qū)動(dòng)的注意力機(jī)制能有效提取局部特征信息,從而對(duì)模型的細(xì)小部件具有較高的分割準(zhǔn)確率,如對(duì)摩托車模型(motorbike)的分割準(zhǔn)確率高于本文算法0.044。文獻(xiàn)[23]采用分支自動(dòng)編碼器,每個(gè)分支分別學(xué)習(xí)輸入模型的一個(gè)部件特征,沒有模型簇一致性優(yōu)化,對(duì)于輸入集數(shù)目較少的模型類別分割準(zhǔn)確率較低。如本文算法在包模型(bag)、耳機(jī)模型(earphone)和火箭模型(rocket)的分割準(zhǔn)確率分別高于文獻(xiàn)[23]算法0.099、0.069 和0.048。實(shí)驗(yàn)結(jié)果表明,與有監(jiān)督算法相比,本文弱監(jiān)督策略能夠在標(biāo)記點(diǎn)減少至10%的情況下,對(duì)各類模型分割時(shí)依然能夠獲得具有競爭力的結(jié)果,與采用不同策略的弱監(jiān)督方法相比,本文算法的主要優(yōu)勢(shì)在于通過構(gòu)建部件特征矩陣來約束模型分割結(jié)果的一致性,并在更弱的監(jiān)督情況下以標(biāo)簽傳播策略實(shí)現(xiàn)對(duì)未標(biāo)記點(diǎn)的標(biāo)簽預(yù)測(cè),能在完成協(xié)同分割任務(wù)的同時(shí)進(jìn)一步提高分割準(zhǔn)確率。因此,弱監(jiān)督策略的優(yōu)勢(shì)在本文算法中也得以體現(xiàn)。
表2 不同算法在各類模型的分割準(zhǔn)確率對(duì)比Table 2 Comparison of segmentation accuracy of different algorithms on each category of shape cluster 單位:%
本網(wǎng)絡(luò)架構(gòu)的各模塊作用至關(guān)重要,為了更好地分析網(wǎng)絡(luò)各模塊對(duì)結(jié)果的影響,消融實(shí)驗(yàn)的分割準(zhǔn)確率對(duì)比如表3 所示。可以看出:(1)對(duì)網(wǎng)絡(luò)性能影響最大的是局部卷積模塊,將局部卷積模塊移除后分割結(jié)果mIoU 降低為56.3%,在圖2 中展示了該模塊的結(jié)構(gòu)特點(diǎn),在經(jīng)最遠(yuǎn)點(diǎn)采樣之后,局部卷積能表征每個(gè)采樣點(diǎn)與其鄰域點(diǎn)之間的空間關(guān)系,以彌補(bǔ)采樣過程丟失的特征信息。(2)移除能量函數(shù)(energy function)對(duì)分割結(jié)果的影響次于(1),證明這個(gè)模塊能有效實(shí)現(xiàn)反向傳播學(xué)習(xí),并以特征矩陣來約束分割結(jié)果的一致性。(3)利用隨機(jī)采樣替換最遠(yuǎn)點(diǎn)采樣之后,分割準(zhǔn)確率有所下降,因?yàn)樵摬蓸臃椒ú荒軐?duì)采樣空間有很好的覆蓋率,不利于后續(xù)提取特征信息。經(jīng)消融實(shí)驗(yàn)結(jié)果表明,本文構(gòu)建的網(wǎng)絡(luò)各組件是有效的,并且能夠相互補(bǔ)充以達(dá)到最佳性能。
表3 驗(yàn)證各模型組件有效性的消融實(shí)驗(yàn)對(duì)比Table 3 Comparison of ablated experiments to verify effectiveness of each model component
為了驗(yàn)證本文算法所采取的弱監(jiān)督樣本標(biāo)注策略具有一定的優(yōu)勢(shì),實(shí)驗(yàn)中分別對(duì)三種標(biāo)注策略進(jìn)行驗(yàn)證,對(duì)比結(jié)果如表4 所示。標(biāo)記策略由100%的訓(xùn)練樣本(sample)和每個(gè)樣本具有的標(biāo)記點(diǎn)(Pts)所限定。實(shí)驗(yàn)結(jié)果表明,隨著訓(xùn)練樣本的標(biāo)記點(diǎn)從100%降低至10%,分割結(jié)果的mIoU 值從82.19%降低到81.70%,pIoU 值從85.10%降低到85.00%,分別降低0.49個(gè)百分點(diǎn)和0.1個(gè)百分點(diǎn)。因此,從實(shí)驗(yàn)結(jié)果可知隨著標(biāo)記點(diǎn)數(shù)比例的減少(由100%減少到10%),本文算法的分割準(zhǔn)確率變化并不明顯,有效驗(yàn)證了本文算法對(duì)標(biāo)記點(diǎn)數(shù)量的依賴性較小,對(duì)標(biāo)記點(diǎn)的減少有很強(qiáng)的魯棒性和弱監(jiān)督性,節(jié)約了費(fèi)時(shí)費(fèi)力的人工標(biāo)記成本。
表4 不同標(biāo)記策略對(duì)ShapeNet Parts分割的比較Table 4 Comparison of different labelling strategies on ShapeNet Parts segmentation 單位:%
本文提出了一種基于弱監(jiān)督學(xué)習(xí)的協(xié)同分割網(wǎng)絡(luò)架構(gòu),目的是以少量標(biāo)記數(shù)據(jù)解決三維點(diǎn)云模型的協(xié)同分割問題。首先,使用最遠(yuǎn)點(diǎn)采樣方法對(duì)原始點(diǎn)云進(jìn)行采樣,并通過KNN 算法建立點(diǎn)的局部鄰域圖關(guān)聯(lián)點(diǎn)與點(diǎn)之間的信息,從而更好地表征模型局部特征。然后,利用局部卷積方法提取模型特征,以生成模型各部件對(duì)應(yīng)的特征描述符。最后,通過構(gòu)建部件特征矩陣,通過深度學(xué)習(xí)網(wǎng)絡(luò)中的能量函數(shù)反向傳播迭代得到模型簇的一致性分割結(jié)果。在ShapeNet Parts數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),與文獻(xiàn)[4]、文獻(xiàn)[26]等有監(jiān)督方法相比較,本文提出的深度學(xué)習(xí)網(wǎng)絡(luò)只需要少量標(biāo)記點(diǎn)就可以有效實(shí)現(xiàn)點(diǎn)云模型分割,而且在標(biāo)記點(diǎn)減少至10%的情況下可取得與有監(jiān)督算法相媲美的結(jié)果,并與文獻(xiàn)[22]和文獻(xiàn)[23]弱監(jiān)督方法相比,本文算法在更弱的監(jiān)督情況下取得了更好的分割結(jié)果。然而,本文算法也存在局限性:一方面,算法對(duì)于每一個(gè)點(diǎn)在LocalConv 都有明確的近鄰關(guān)系,因此網(wǎng)絡(luò)計(jì)算復(fù)雜度更大,在處理大規(guī)模點(diǎn)云數(shù)據(jù)時(shí)效率會(huì)降低;另一方面,由于本文算法采用弱監(jiān)督策略,在數(shù)據(jù)集需求方面具有明顯優(yōu)勢(shì),使得網(wǎng)絡(luò)具有更強(qiáng)的普適性,但是與完全有監(jiān)督算法相比,部分模型的分割結(jié)果有明顯差距。這都是未來需要繼續(xù)研究的問題。