邱云飛,王宜帆
遼寧工程技術(shù)大學(xué)軟件學(xué)院,遼寧 葫蘆島 125105
點(diǎn)云是三維點(diǎn)的數(shù)據(jù)集合,包含三維坐標(biāo)、強(qiáng)度、顏色和時間戳等信息,具有存儲空間小,操作靈活且能夠極大程度上保留原始的幾何信息等特點(diǎn),是一種非常重要的三維數(shù)據(jù)表達(dá)形式。隨著激光雷達(dá)、激光掃描儀和RGB-D 掃描儀等三維掃描設(shè)備的普及,點(diǎn)云變得更容易捕獲,更是被廣泛應(yīng)用在各種視覺領(lǐng)域,例如三維場景重建[1]、立體視覺[2]、自動駕駛感知定位[3]、三維測量[4]、視覺引導(dǎo)[5]等。但在現(xiàn)實(shí)場景中對點(diǎn)云數(shù)據(jù)進(jìn)行采集時由于傳感器分辨率限制,物體遮擋、陰影以及拍攝角度等諸多外界因素的影響,往往造成獲取到的點(diǎn)云數(shù)據(jù)不完整,進(jìn)而無法準(zhǔn)確描述物體的幾何信息。在點(diǎn)云研究領(lǐng)域中,點(diǎn)云殘缺的問題會嚴(yán)重影響點(diǎn)云相關(guān)技術(shù)的發(fā)展和應(yīng)用,因此點(diǎn)云補(bǔ)全具有重要意義。
點(diǎn)云補(bǔ)全是由局部點(diǎn)云衍生而來的生成和估計問題,著重研究針對輸入的殘缺點(diǎn)云進(jìn)行修復(fù)并預(yù)測出完整的點(diǎn)云形狀的問題。由于基于深度學(xué)習(xí)的點(diǎn)云補(bǔ)全方法泛化性能強(qiáng),不僅能夠有效避免大量的內(nèi)存消耗而且可以降低幾何信息的誤差,使其逐漸成為點(diǎn)云研究的一項(xiàng)重要課題。點(diǎn)云神經(jīng)網(wǎng)絡(luò)[6](PointNet)是最早被提出的能夠直接作用在無序點(diǎn)集上的網(wǎng)絡(luò)結(jié)構(gòu),在點(diǎn)云研究中具有里程碑式的意義。雖然其在點(diǎn)云分類和分割上都具有很好的表現(xiàn),但是應(yīng)用到點(diǎn)云補(bǔ)全時卻只關(guān)注全局幾何信息而忽略了局部信息。擴(kuò)展點(diǎn)云神經(jīng)網(wǎng)絡(luò)[7](PointNet++)是PointNet 的延伸,在其基礎(chǔ)上加入了多層次結(jié)構(gòu),使得網(wǎng)絡(luò)能夠在逐漸增大的區(qū)域上獲取更高級別的特征,增強(qiáng)感知局部特征的能力,有效彌補(bǔ)了PointNet缺少局部特征的問題。點(diǎn)云補(bǔ)全網(wǎng)絡(luò)[8](PCN)直接處理原始點(diǎn)云,不需要任何結(jié)構(gòu)假設(shè)(如對稱性)或底層形狀的注釋(如語義類),其解碼器能夠在保持少量參數(shù)的同時生成細(xì)粒度的補(bǔ)全。點(diǎn)分形網(wǎng)絡(luò)[9](PFNet)采用基于特征金字塔網(wǎng)絡(luò)[10](FPN)的解碼架構(gòu),增強(qiáng)了包含在最終特征圖中的幾何和語義信息,充分利用提取到的特征去預(yù)測點(diǎn)云的幾何形狀,但在特征提取階段PFNet僅使用下采樣方法,從不同分辨率下提取點(diǎn)云特征,并未真正獲得點(diǎn)云豐富的局部幾何信息。2021年,首次提出了基于對抗網(wǎng)絡(luò)逆映射的無監(jiān)督點(diǎn)云補(bǔ)全方法,將生成對抗網(wǎng)[11]逆映射引入到點(diǎn)云補(bǔ)全中,網(wǎng)絡(luò)框架利用梯度下降[12]的方法反傳損失函數(shù)來更新潛碼并且微調(diào)預(yù)訓(xùn)練的對抗網(wǎng)絡(luò),從而使生成的完整點(diǎn)云與輸入的殘缺點(diǎn)云的空間分布最為接近。另外,PMPNet[13]模擬移動行為,將不完整點(diǎn)云中的逐個點(diǎn)進(jìn)行移動,根據(jù)基于點(diǎn)的總移動距離的約束為每個點(diǎn)預(yù)測唯一的點(diǎn)移動路徑,以此來組成補(bǔ)全點(diǎn)云。但是,由于點(diǎn)云先天具有無序、離散等特點(diǎn),導(dǎo)致生成式模型PMPNet 難以捕捉完整點(diǎn)云在細(xì)節(jié)處的拓?fù)浣Y(jié)構(gòu),因此難以實(shí)現(xiàn)高質(zhì)量補(bǔ)全。為此,PMPNet++[14]提出了一種非生成式的新網(wǎng)絡(luò)結(jié)構(gòu),采用“變形”的方式來進(jìn)行點(diǎn)云補(bǔ)全。具體來說,PMPNet++通過多步移動殘缺形狀的每一個點(diǎn)來完成從殘缺點(diǎn)云到完整點(diǎn)云的變形過程,但是在此過程中不可避免會造成特征向量的信息缺失致使幾何形變。最近,LAKNet[15]提出一種新穎的拓?fù)涓兄c(diǎn)云補(bǔ)全模型,通過對齊關(guān)鍵點(diǎn)定位,表面骨架生成和形狀細(xì)化,恢復(fù)缺失點(diǎn)云。LAKNet基于幾何先驗(yàn)和關(guān)鍵點(diǎn)設(shè)計了一種名為表面骨架的新型結(jié)構(gòu),從關(guān)鍵點(diǎn)捕獲信息來表示完整拓?fù)湫畔?,卻難以應(yīng)對原始形狀的拓?fù)淙笔闆r。根據(jù)上述內(nèi)容,不難發(fā)現(xiàn)現(xiàn)有的點(diǎn)云補(bǔ)全方法雖然在點(diǎn)云補(bǔ)全任務(wù)中已經(jīng)取得一些成果,但仍存在對點(diǎn)云局部幾何信息提取不充分,在解碼時往往只是使用單層全連接結(jié)構(gòu)作為輸出層去預(yù)測點(diǎn)云,造成局部幾何信息丟失進(jìn)而導(dǎo)致目標(biāo)物體的細(xì)節(jié)補(bǔ)全效果較為粗糙等問題。
針對目前點(diǎn)云補(bǔ)全問題和研究現(xiàn)狀,提出一種雙分支結(jié)構(gòu)的多層級點(diǎn)云補(bǔ)全網(wǎng)絡(luò)。網(wǎng)絡(luò)整體采用編碼器-解碼器的結(jié)構(gòu)。在編碼器中采用雙通道設(shè)計,同時對輸入點(diǎn)云的全局特征和局部特征進(jìn)行提取,不僅關(guān)注全局幾何信息而且注重局部結(jié)構(gòu)信息,有助于學(xué)習(xí)輸入點(diǎn)云的特征。使用在多層感知機(jī)(multilayer perceptron,MLP)的基礎(chǔ)上進(jìn)行優(yōu)化的五層聯(lián)合感知機(jī)(five levels combinate perceptron,F(xiàn)LCP),將特征映射到不同維度并整合包含豐富特征信息的特征向量,促進(jìn)點(diǎn)云特征的提取和編碼。解碼器使用從上到下的層級結(jié)構(gòu),利用三層全連接層去逐層預(yù)測點(diǎn)云形狀,充分保留輸入點(diǎn)云的原始結(jié)構(gòu)。采用多層補(bǔ)全損失函數(shù)和基于鑒別器網(wǎng)絡(luò)的對抗損失函數(shù)更加合理地評估模型誤差,不斷優(yōu)化網(wǎng)絡(luò)。實(shí)驗(yàn)證明,這種網(wǎng)絡(luò)結(jié)構(gòu)既能在特征提取階段獲取相對全面且具有代表性的語義和幾何信息,又能夠?qū)⑻崛〉降奶卣餍畔⒂行У剡\(yùn)用在預(yù)測點(diǎn)云形狀的過程中,更加準(zhǔn)確、細(xì)致地恢復(fù)殘缺點(diǎn)云的形狀,取得較好的補(bǔ)全效果。
根據(jù)點(diǎn)云補(bǔ)全所采用的網(wǎng)絡(luò)結(jié)構(gòu),將現(xiàn)有算法分成四種,分別是基于點(diǎn)、基于圖、基于卷積、基于Transformer模型的方法。
基于點(diǎn)的補(bǔ)全方法主要通過利用MLP獨(dú)立地建模每個點(diǎn)來實(shí)現(xiàn),依據(jù)點(diǎn)云的變換不變性通過對稱函數(shù)(如最大池化)聚集全局特征,然而整個點(diǎn)集中的幾何信息和相關(guān)性卻沒有被充分考慮。由PointNet 首創(chuàng)并使用MLP 來處理和恢復(fù)點(diǎn)云。PointNet++和TopNet[16]結(jié)合了分層結(jié)構(gòu),用以考慮幾何結(jié)構(gòu)。Yu等人[17]受PointNet和PointNet++的啟發(fā),提出了PUNet(point cloud upsampling network),通過基于亞像素卷積層的特征縮放來學(xué)習(xí)多尺度特征。因?yàn)镻UNet 主要用于從稀疏點(diǎn)云聚類生成單個密度更高的點(diǎn)云而不是完整點(diǎn)云,所以既無法填充大洞和缺失的部分也不能向點(diǎn)云的重采樣部分添加有意義的點(diǎn)。另外,為了減輕MLP 帶來的結(jié)構(gòu)損失,Groueix等人[18]提出AtlasNet通過評估一組參數(shù)曲面元素重構(gòu)完整輸出,從中可以生成完整的點(diǎn)云。然而,基于點(diǎn)的方法也有一定的局限性。雖然其可以在局部水平上獨(dú)立地處理點(diǎn)以保持排列的不變性,但同時忽略了點(diǎn)和其相鄰點(diǎn)之間的幾何關(guān)系,導(dǎo)致了局部特征的丟失,無法合成復(fù)雜的拓?fù)?,在大型場景中不如基于卷積的方法。
由于點(diǎn)云和圖像數(shù)據(jù)都可以看作非歐幾里得結(jié)構(gòu)(non-Euclidean geometry)的數(shù)據(jù),通過將點(diǎn)或局部區(qū)域作為一些圖的頂點(diǎn)來探索點(diǎn)或局部區(qū)域之間的關(guān)系是非常方便的。作為一項(xiàng)開創(chuàng)性的工作,Wang 等人[19]在DGCNN(dynamic graph convolutional neural networks)中引入了一種動態(tài)圖卷積方法,在動態(tài)圖卷積中,相鄰矩陣可以通過來自潛在空間的頂點(diǎn)關(guān)系來計算。Hang等人[20]設(shè)計了一個基于圖形注意的跨區(qū)域注意模塊(cross regional attention network,CRA-Net),該模塊量化了特定上下文中區(qū)域特征之間的潛在聯(lián)系,并通過全局特征進(jìn)行解釋,每個條件區(qū)域特征向量都可以作為圖的注意進(jìn)行搜索。但是,構(gòu)建基于圖的網(wǎng)絡(luò)仍存在以下兩個挑戰(zhàn):第一,定義一個適合于動態(tài)大小鄰域的算子,并維護(hù)CNN 的權(quán)重共享方案。第二,利用每個節(jié)點(diǎn)的鄰居之間的空間和幾何關(guān)系。
受卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNNs)在二維圖像上的取得巨大成功的影響,一些工作嘗試?yán)萌SCNNs 來學(xué)習(xí)三維點(diǎn)云的體素化表示。然而,將點(diǎn)云轉(zhuǎn)換為3D 卷積將會帶來量化效應(yīng)造成細(xì)節(jié)的丟失,難以表示細(xì)粒度的信息。因此,一些工作直接將CNNs應(yīng)用于不規(guī)則、局部和缺失點(diǎn)云上進(jìn)行三維形狀補(bǔ)全。其中,Hua等人[21]在規(guī)則的三維網(wǎng)格上定義了卷積核,將這些點(diǎn)在同一網(wǎng)格中給予相同的權(quán)值。Chibane 等人[22]設(shè)計的隱式特征網(wǎng)絡(luò)(implicit functions network,IFNets)用來處理拓?fù)浣Y(jié)構(gòu),不但能夠提供連續(xù)且完整的3D 形狀,而且可以保存大量提取的隱式函數(shù)的信息在恢復(fù)細(xì)節(jié)信息上有非常好的表現(xiàn)。然而,卷積過程體素化會導(dǎo)致幾何信息的不可逆損失。因此,Xie等人[23]引入了網(wǎng)格殘差網(wǎng)絡(luò)(gridding residual network,GRNet),并將三維網(wǎng)格作為中間表示來調(diào)整不規(guī)則點(diǎn)云。GRNet 采用Gridding 操作將無序的點(diǎn)云規(guī)則化至3D 網(wǎng)格,再經(jīng)Gridding Reverse 轉(zhuǎn)換回點(diǎn)云后由Cubic Feature Sampling從三維特征圖中抽取點(diǎn)云中點(diǎn)的特征并保留上下文信息,但是GRNet的網(wǎng)格化表示僅適用于重建低分辨率的形狀。為此,Wang 等人[24]開發(fā)了一種利用邊緣生成的體素化補(bǔ)全網(wǎng)絡(luò),將無序點(diǎn)集轉(zhuǎn)換為網(wǎng)格表示,以支持邊緣生成和點(diǎn)云重建。但是基于體素三維數(shù)據(jù)表示仍存在一些局限性,通常包含掃描環(huán)境中非真實(shí)存在的部分,導(dǎo)致無效數(shù)據(jù)消耗計算機(jī)存儲。其次,體素或網(wǎng)格的大小難以設(shè)置,不但影響輸入數(shù)據(jù)的規(guī)模而且可能會破壞點(diǎn)之間的空間關(guān)系。
Transformer[25]最初被提出用于自然語言處理中的句子編碼,之后在二維計算機(jī)視覺、領(lǐng)域流行起來。由Pointformer[26]、Point Transformer[27]首創(chuàng)的Transformer已經(jīng)開啟了點(diǎn)云處理的篇章。Yu 等人[28]認(rèn)為點(diǎn)云補(bǔ)全是一個集到集的轉(zhuǎn)換問題,因?yàn)榛赥ransformer 模型具有學(xué)習(xí)能力強(qiáng)且能夠提取點(diǎn)之間相關(guān)性特征的優(yōu)點(diǎn),于是提出了一種用于點(diǎn)云補(bǔ)全的Transformer 結(jié)構(gòu),將點(diǎn)云表示為一組具有位置嵌入的無序點(diǎn)并設(shè)計了模擬局部幾何關(guān)系的幾何感知塊。Lin等人[29]提出了一種在AtlasNet 的基礎(chǔ)上融合Tansformer 的改進(jìn)算法,利用Transformer的注意機(jī)制提取點(diǎn)云內(nèi)的局部上下文,基于變形圖集的點(diǎn)生成網(wǎng)絡(luò)來預(yù)測缺失區(qū)域。然而,基于Transformer 的補(bǔ)全方法仍有不足,Transformer 參數(shù)的數(shù)量太大導(dǎo)致不易在設(shè)備上部署,而且Transformer 增強(qiáng)性能的機(jī)制難以解釋。
綜上所述,已有算法在特征提取過程中難以同時兼顧局部特征和全局特征,往往忽視局部幾何信息的捕捉。為此提出了雙分支結(jié)構(gòu)的多層級點(diǎn)云補(bǔ)全算法,以緩解基于點(diǎn)的補(bǔ)全算法因?yàn)槿狈c(diǎn)云的局部特征導(dǎo)致無法恢復(fù)詳細(xì)的形狀和細(xì)微結(jié)構(gòu),從而影響點(diǎn)云補(bǔ)全精度的問題。
雙分支結(jié)構(gòu)的多層級點(diǎn)云補(bǔ)全算法架構(gòu)如圖1 所示,其主要功能模塊是:
圖1 基于雙分支結(jié)構(gòu)的多層級點(diǎn)云補(bǔ)全網(wǎng)絡(luò)Fig.1 Multi-level point cloud complement network based on dual-branch structure
(1)雙分支編碼器。為了更好地提取部分點(diǎn)云的特定特征,提出了一種雙分支編碼器,分別提取點(diǎn)云的共性特征和個性特征,在學(xué)習(xí)對象的整體特征的同時又能夠有效學(xué)習(xí)局部細(xì)節(jié)和特性。優(yōu)化多層感知機(jī)為五層聯(lián)合感知機(jī),能夠從部分點(diǎn)云的特征點(diǎn)中提取多維特征,這些多尺度特征包括低層特征和高層特征,增強(qiáng)了網(wǎng)絡(luò)提取語義和幾何信息的能力。
(2)多層級解碼器。多層級的解碼器利用三層全連接層以不同分辨率去分層預(yù)測點(diǎn)云,可以保持原始部分的空間排列和幾何特征,有助于網(wǎng)絡(luò)更好地感知缺失部分的位置和結(jié)構(gòu),恢復(fù)原始細(xì)節(jié)形狀并生成高質(zhì)量的缺失區(qū)域點(diǎn)云。
(3)聯(lián)合損失函數(shù)。多級補(bǔ)全損失使網(wǎng)絡(luò)更加關(guān)注特征點(diǎn),基于對抗結(jié)構(gòu)的鑒別器能夠進(jìn)一步改善同一類別不同物體間的特征會相互影響的問題,補(bǔ)全算法結(jié)合對抗損失和多級補(bǔ)全損失去優(yōu)化網(wǎng)絡(luò),使ShapeNet數(shù)據(jù)集上的補(bǔ)全精度有了明顯提升,呈現(xiàn)出更細(xì)致的可視化結(jié)果。
圖中Shared MLP表示共享多層感知機(jī),Maxpooling表示最大池化操作,Expand表示擴(kuò)展操作,{}表示特征維度,F(xiàn)C(fully connected)表示全連接層,Linear表示線性層,N、N1、N2分別表示三層輸出點(diǎn)云的數(shù)量,P1、P2、P3 表示不同分辨率的預(yù)測點(diǎn)云,Q1、Q2、Q3 表示不同分辨率的真實(shí)點(diǎn)云。網(wǎng)絡(luò)采用雙分支結(jié)構(gòu)的編碼器和多層級的解碼器,引入鑒別器網(wǎng)絡(luò)去判別真假點(diǎn)云并優(yōu)化網(wǎng)絡(luò)。編碼階段,將殘缺點(diǎn)云作為輸入,經(jīng)過第一條通道PointNet網(wǎng)絡(luò)逐點(diǎn)提取特征,獲取點(diǎn)云的全局特征;同時經(jīng)過第二條通道PointNet++網(wǎng)絡(luò)對點(diǎn)云的局部特征進(jìn)行提取,將提取到的全局和局部特征進(jìn)行拼接和融合,使其擴(kuò)展成維度統(tǒng)一的特征向量,然后通過五層聯(lián)合感知機(jī)對特征向量進(jìn)行編碼并輸送到解碼器。解碼階段,特征向量經(jīng)過從底端到頂端三個全連接層構(gòu)成的多層級解碼器,在每個全連接層中以不同的分辨率預(yù)測點(diǎn)云。最后,鑒別器網(wǎng)絡(luò)將預(yù)測的缺失點(diǎn)云與真正缺失點(diǎn)云進(jìn)行比較去構(gòu)造對抗損失函數(shù),并結(jié)合多級補(bǔ)全損失函數(shù)聯(lián)合訓(xùn)練網(wǎng)絡(luò),通過最小化整體損失函數(shù)去不斷優(yōu)化網(wǎng)絡(luò)。實(shí)驗(yàn)證明,這種網(wǎng)絡(luò)結(jié)構(gòu)既能在特征提取階段獲取相對全面且具有代表性的語義和幾何信息,又能夠?qū)⑻崛〉降奶卣餍畔⒂行У剡\(yùn)用在預(yù)測點(diǎn)云形狀的過程中,更加準(zhǔn)確、細(xì)致地恢復(fù)殘缺點(diǎn)云的形狀,取得較好的補(bǔ)全效果。
由于點(diǎn)云補(bǔ)全任務(wù)往往要求網(wǎng)絡(luò)基于潛在特征輸出更準(zhǔn)確、更復(fù)雜的結(jié)果,這意味著局部特征提取的波動很可能導(dǎo)致誤報,所以現(xiàn)有的方法試圖從部分點(diǎn)云的局部相鄰點(diǎn)提取特征,通過犧牲局部特征提取提供的詳細(xì)信息以保證全局特征提取提供的穩(wěn)定。然而,在特征提取過程中上述方法總是難以平衡全局和局部特征,從而影響特征提取效果,因此具有局部特征感知模塊的網(wǎng)絡(luò)能夠更好地重構(gòu)目標(biāo)對象的細(xì)節(jié)。事實(shí)上,PointNet的作者曾嘗試在編碼器中引入局部特征提取,但結(jié)果表明其性能不如僅使用全局池化的基于PointNet 編碼器的方法。研究發(fā)現(xiàn)在PointNet 的主干中添加局部特征感知模塊將明顯改善點(diǎn)云分類或分割的網(wǎng)絡(luò)性能,但是上述有效的點(diǎn)云生成和補(bǔ)全方法仍然堅(jiān)持全局特征提取。為此,提出基于雙分支結(jié)構(gòu)的編碼器,該編碼器在全局特征提取網(wǎng)絡(luò)PointNet 的基礎(chǔ)上添加獨(dú)立的局部特征提取單元PointNet++,使得網(wǎng)絡(luò)對空間結(jié)構(gòu)的細(xì)節(jié)更加敏銳,增強(qiáng)點(diǎn)云補(bǔ)全網(wǎng)絡(luò)學(xué)習(xí)局部細(xì)節(jié)和特性的能力。
現(xiàn)有的大多數(shù)提取點(diǎn)云特征的方法,往往能夠做到較好地提取全局特征,但又會不可避免地忽視局部幾何信息的獲??;或者關(guān)注局部特征提取的同時又無法對全局特征達(dá)到較好的提取效果。雙分支編碼器組合全局特征提取模塊(PointNet)、獨(dú)立局部特征提取模塊(PointNet++)和五層聯(lián)合感知機(jī)(FLC-P)模塊三部分,通過并行的兩個獨(dú)立路徑分別提取點(diǎn)云特征,有效避免在提取點(diǎn)云特征的過程中兩者的相互干擾,既能提取到高質(zhì)量的全局特征又能保證局部特征學(xué)習(xí)的準(zhǔn)確性,將輸入的點(diǎn)云數(shù)據(jù)中的幾何信息編碼為用于指導(dǎo)生成完整點(diǎn)云的最終特征向量。
第一部分采用PointNet網(wǎng)絡(luò)提取點(diǎn)云的全局特征,結(jié)合逐點(diǎn)的MLP 和對稱聚合函數(shù),保證點(diǎn)云空間排列的不變性和擾動的魯棒性,有利于在點(diǎn)云上進(jìn)行有效特征學(xué)習(xí)。網(wǎng)絡(luò)輸入M個無序點(diǎn)云,構(gòu)成M×3 的三維坐標(biāo)矩陣,由共享多層感知機(jī)先將每個點(diǎn)坐標(biāo)映射為{128,256}特征向量并構(gòu)成特征矩陣,然后執(zhí)行逐點(diǎn)Maxpooling得到初級全局特征,再將獲得的初級全局特征與特征矩陣進(jìn)行擴(kuò)展和拼接生成特征增強(qiáng)矩陣并送入共享多層感知機(jī),由MLP 進(jìn)一步逐點(diǎn)映射為{512,1 024}維度的特征向量,接著再次采用最大池化操作得到1 024維的全局特征向量vi∈R1024,R 表示特征維度。
第二部分遵循PointNet++網(wǎng)絡(luò)結(jié)構(gòu)通過對輸入點(diǎn)云的幾個局部區(qū)域進(jìn)行迭代最遠(yuǎn)點(diǎn)采樣[30],單獨(dú)提取局部特征,以此來獨(dú)立編碼局部特征向量。在第一個迭代最遠(yuǎn)點(diǎn)采樣(FPS)層中,將局部區(qū)域的點(diǎn)數(shù)下限設(shè)置為8來保證局部特征提取的穩(wěn)定性,將采樣到的點(diǎn)經(jīng)MLP逐步映射為{128,256}維度。接著,繼續(xù)最遠(yuǎn)點(diǎn)采樣過程,直到選擇n個密集區(qū)域,同樣利用共享多層感知機(jī)和最大池化對特征向量進(jìn)行編碼,最終提取n×1 024 維局部特征向量vj∈R1024,其中n表示區(qū)域個數(shù)。之后,網(wǎng)絡(luò)將全局特征向量進(jìn)行擴(kuò)展形成與局部特征向量同等大小的向量并與獨(dú)立提取的局部特征進(jìn)行拼接,再將拼接后的特征向量送入五層聯(lián)合感知機(jī),組合五層維度的特征向量形成包含低級和高級特征信息的最終特征向量V∈RK,K=n×1 984,如公式(1)所示:
在之前的大部分工作中,將MLP 作為特征提取的編碼器,每個點(diǎn)映射到不同的維數(shù)并直接從最后一層的感知機(jī)中提取最大值,形成全局特征向量。但是,這種方法不但忽視了前幾層感知機(jī)的特征信息,而且根據(jù)L-GAN 和PointNet 可知該特征提取器的性能受到最大池化層的維數(shù)的強(qiáng)烈影響,進(jìn)而限制下游任務(wù)的開展[31]。
為此,設(shè)計FLCP 結(jié)構(gòu)如圖2 所示。區(qū)別于MLP 使用最后的單層來提取特征向量,F(xiàn)LCP 依據(jù)編碼過程中點(diǎn)云映射的維數(shù),將特征點(diǎn)的信息編碼成多個維度,在不同維度的五層{64,128,256,512,1 024}中均使用最大池化操作提取多層特征進(jìn)而獲取多維特征向量。這種結(jié)構(gòu)不但充分考慮到了每一層感知機(jī)的特征信息,而且積極緩解最大池化層的維數(shù)對特征提取器性能的干擾,為后續(xù)特征解碼提供幫助。
圖2 五層聯(lián)合感知機(jī)Fig.2 Five levels combine perceptron
目前在解碼階段,大部分補(bǔ)全方法都是通過最后一層的全連接層來預(yù)測點(diǎn)云,導(dǎo)致只保留了全局特征而未充分利用提取到的局部特征[32],影響點(diǎn)云補(bǔ)全效果。另外,之前的方法總是從不完整的點(diǎn)云生成點(diǎn)云的整體形狀,總是改變現(xiàn)有的點(diǎn)伴隨著噪聲和幾何損失。為了更好地重建缺失點(diǎn)云,本算法設(shè)計了多層級的特征解碼結(jié)構(gòu),將不完整點(diǎn)云作為輸入,只輸出缺少部分的點(diǎn)云而不輸出整個物體。這種架構(gòu)不但能夠保留修復(fù)后的原始點(diǎn)云的幾何特征而且有助于網(wǎng)絡(luò)集中感知缺失部分的具體位置和細(xì)微結(jié)構(gòu)。與現(xiàn)有的點(diǎn)云補(bǔ)全網(wǎng)絡(luò)不同,多層級解碼器針對編碼器傳遞的特征向量進(jìn)行不同維度的解碼,充分利用多維度的特征信息,從稀疏到密集分層逐步完成點(diǎn)云補(bǔ)全操作,最大程度恢復(fù)缺失區(qū)域的詳細(xì)幾何結(jié)構(gòu),促進(jìn)網(wǎng)絡(luò)生成高質(zhì)量的點(diǎn)云。
多層級解碼器以最終特征向量V作為輸入,對獲取的特征進(jìn)行降維,分層解碼特征向量,輸出三種尺度的點(diǎn)云數(shù)據(jù)。在解碼過程中,最終特征向量V經(jīng)過Linear在三層全連接層獲得三個子特征向量{256,512,1 024},子特征向量遵循自頂向下的順序,在每層采用卷積和線性變換操作得到64×3、64×2×3、128×4×3的特征矩陣,在各個層級間采取用擴(kuò)展、添加操作和尺寸調(diào)整等操作,將上層結(jié)構(gòu)中低分辨率的信息逐級傳遞給下層結(jié)構(gòu)以此來補(bǔ)充語義信息用于高分辨率的預(yù)測。其中,第一層預(yù)測包含整體關(guān)鍵信息的主要點(diǎn)云P1,第二層預(yù)測中級點(diǎn)云P2,第三層預(yù)測包含更多細(xì)節(jié)信息的點(diǎn)云P3。多層級解碼器采用分層解碼結(jié)構(gòu)在每個層進(jìn)行單獨(dú)預(yù)測,利用連續(xù)的層級結(jié)構(gòu)漸進(jìn)式增強(qiáng)下層必要信息,在上層預(yù)測點(diǎn)的基礎(chǔ)上不斷生成新的點(diǎn)云,通過監(jiān)督每一階段的點(diǎn)云來逐步提升預(yù)測點(diǎn)的質(zhì)量,最后整合全部的預(yù)測結(jié)果生成從粗略到細(xì)致的點(diǎn)云,實(shí)現(xiàn)形狀補(bǔ)全,具體過程如圖3。
圖3 分層預(yù)測點(diǎn)云Fig.3 Hierarchical prediction point clouds
根據(jù)圖3可知,多層級解碼器借鑒圖像處理中經(jīng)典的尺度不變特征變換算法[33],采用特征金字塔加粗樣式的方式,對編碼出的特征進(jìn)行多尺度的解碼,生成不同分辨率的點(diǎn)云。這種解碼結(jié)構(gòu)有效運(yùn)用多種維度信息,通過三個聯(lián)合層產(chǎn)生逐級遞增的預(yù)測,輸出不同數(shù)量的點(diǎn)云,使得預(yù)測結(jié)果具有更少的畸變,合理改善了點(diǎn)云補(bǔ)全精度較低的現(xiàn)狀。
本算法的損失函數(shù)由是多層級補(bǔ)全損失和對抗損失構(gòu)成的,設(shè)置倒角距離(CD)和搬土距離(E-MD)[34]用來評估模型的預(yù)測值與真實(shí)值的誤差大小。Q表示真實(shí)點(diǎn)云集合,P表示生成的點(diǎn)云集合,x、y是Q、P中的點(diǎn)云。在使用倒角距離計算補(bǔ)全損失時,先是對于P中的每個點(diǎn)找到其與Q中距離最近的點(diǎn),計算歐氏距離后求和取平均,作為距離公式的第一部分;然后第二部分相似,對于Q中的每個點(diǎn),找到其與P中距離最近的點(diǎn),計算歐氏距離后求和取平均。其計算公式為:
搬土距離要求兩點(diǎn)之間存在點(diǎn)對點(diǎn)單一映射,φ表示映射函數(shù),其計算公式為:
多層級解碼器預(yù)測出三種不同分辨率的點(diǎn)云,由此產(chǎn)生的多級補(bǔ)全損失Lcom包括式(2)中的三項(xiàng),dCD1、dCD2和dCD3,利用超參數(shù)g加權(quán)。多級補(bǔ)全損失的設(shè)計增加了特征點(diǎn)的比例,使得網(wǎng)絡(luò)更好地關(guān)注特征點(diǎn)。dCD1代表預(yù)測的骨架點(diǎn)與對應(yīng)的真實(shí)點(diǎn)云之間的實(shí)際距離,dCD2、dCD3分別計算中級點(diǎn)云和細(xì)節(jié)特征點(diǎn)云與對應(yīng)真實(shí)點(diǎn)云的損失。生成點(diǎn)云和真實(shí)點(diǎn)云之間的差值越小,表示點(diǎn)云補(bǔ)全的效果越好,質(zhì)量越高。計算公式如下:
式(5)用于計算對抗損失,其中Ladv表示對抗性損失使用交叉熵?fù)p失計算,其中S表示Q、P點(diǎn)集的大小,i表示數(shù)據(jù)集中的點(diǎn),在訓(xùn)練時使用Adam 聯(lián)合優(yōu)化生成點(diǎn)云網(wǎng)絡(luò)和鑒別器D。
設(shè)計的鑒別器結(jié)構(gòu)類似簡化的FLCP,對MLP最后三層{64,128,256}進(jìn)行最大池化操作得到特征向量,然后連接特征向量經(jīng)過三層全連接層{256,128,16,1},最后通過sigmoid 分類器預(yù)測真假點(diǎn)云,輸出二值結(jié)果。在計算整體損失函數(shù)時,對多級補(bǔ)全損失和對抗損失進(jìn)行加權(quán),設(shè)置權(quán)重τcom+τadv=1,L表示整體損失函數(shù):
鑒別器的主要作用是區(qū)分生成點(diǎn)云和真實(shí)點(diǎn)云,使用生成的點(diǎn)云去“迷惑”鑒別器,通過判定結(jié)果計算對抗損失并調(diào)整神經(jīng)網(wǎng)絡(luò)參數(shù),以優(yōu)化整個補(bǔ)全網(wǎng)絡(luò),其目標(biāo)是最大限度地提高識別真假點(diǎn)云的準(zhǔn)確率,指導(dǎo)網(wǎng)絡(luò)生成高質(zhì)量的點(diǎn)云數(shù)據(jù),提高點(diǎn)云補(bǔ)全的性能。
實(shí)驗(yàn)選用ShapeNet數(shù)據(jù)集,ShapeNet是一個由對象的三維CAD 模型表示的形狀存儲庫[35],其包含來自多種語義類別的三維模型,注釋豐富而且規(guī)模龐大,成為計算機(jī)圖形學(xué)和視覺研究的大規(guī)模定量基準(zhǔn)。
在基準(zhǔn)數(shù)據(jù)集ShapeNet中使用13類不同的對象來訓(xùn)練模型,將其中80%作為訓(xùn)練集,20%作為測試集,分別從包、飛機(jī)、滑板、耳機(jī)、帽子、汽車、桌子、杯子等類別中提取了模型,逐個訓(xùn)練每個類別的補(bǔ)全網(wǎng)絡(luò)。在每個形狀上均勻地采樣2 048 個點(diǎn)來生成真實(shí)點(diǎn)云,在多個視點(diǎn)中隨機(jī)選取一個視點(diǎn)作為中心,通過從已有的完整數(shù)據(jù)中去除一定半徑內(nèi)的點(diǎn)來獲取不完整點(diǎn)云數(shù)據(jù)。對于每個模型,在實(shí)驗(yàn)中選用缺失率為25%的點(diǎn)云數(shù)據(jù)進(jìn)行訓(xùn)練和測試,所有輸入點(diǎn)云數(shù)據(jù)均以原始點(diǎn)為中心,將坐標(biāo)歸一化為[-1,1]。
在Pytorch 框架上訓(xùn)練網(wǎng)絡(luò),進(jìn)行了400 個周期的培訓(xùn),批處理大小為36,使用初始學(xué)習(xí)率為0.000 1 的Adam優(yōu)化器(adaptive moment estimation),編碼器、解碼器以及鑒別器均通過使用Adam 優(yōu)化器進(jìn)行交替訓(xùn)練[36]。在鑒別器中使用批歸一化和正則化激活函數(shù)[37],加快模型收斂速度,但在多分辨率解碼過程中,每個共享MLP 的隱藏層均采用RELU 作為激活函數(shù),只在最后一層使用線性激活函數(shù)[38]。訓(xùn)練過程是在一臺32 GB的Nvidia Quadro RTX 6000 GPU上實(shí)現(xiàn)的,配置深度學(xué)習(xí)環(huán)境為python3.6.13、cuda10.0、cudnn7.6.0。
設(shè)置PointNet 網(wǎng)絡(luò)中第一個共享MLP 為{256,512},第二個共享MLP 的參數(shù)為{512,1 024};設(shè)置PointNet++中第一個共享MLP 為{256,512},第二個為{512,1 024},設(shè)置n=16;在解碼階段,根據(jù)每個形狀的點(diǎn)數(shù),通過改變N來控制最終預(yù)測點(diǎn)云的數(shù)量,設(shè)置N1=64,N2=128,N=512。
將本算法在ShapeNet數(shù)據(jù)集上的補(bǔ)全結(jié)果可視化,并與GRNet、PCN、3D-Capsule[39]、PFNet、SnowflakeNet[40]以及PMPNet++的補(bǔ)全結(jié)果相比較。GRNet設(shè)計了網(wǎng)格和網(wǎng)格反向方法將點(diǎn)云轉(zhuǎn)換為三維網(wǎng)格解決點(diǎn)云體素化時引入量化誤差從而丟失物體細(xì)節(jié)的問題,同時提出了立方特征采樣層來提取相鄰點(diǎn)的信息同時保存上下文知識,用于更好地補(bǔ)全缺失點(diǎn)云。PCN連續(xù)使用兩個PointNet層對特征信息進(jìn)行編碼,在解碼過程中采用折疊操作,先將一個規(guī)范的二維網(wǎng)格變換到三維空間,再變形成點(diǎn)云的表面形狀。折疊操作本質(zhì)是一個通用的二維到三維的映射,PCN以自監(jiān)督的學(xué)習(xí)策略由粗到細(xì)的方式生成密集的完整點(diǎn)云。3D-Capsule 是一種無監(jiān)督的膠囊網(wǎng)絡(luò),用于學(xué)習(xí)非結(jié)構(gòu)化三維數(shù)據(jù)通用表示的自動編碼器,采用類似PointNet的輸入層來考慮點(diǎn)云的稀疏性,通過一個無監(jiān)督的動態(tài)路由協(xié)議算法提供支持,尊重各部分之間的幾何關(guān)系,顯示出較好的學(xué)習(xí)能力和泛化屬性。PFNet 只使用部分點(diǎn)云來預(yù)測缺失點(diǎn)云,通過降采樣方式提取不同分辨率的點(diǎn)云特征,利用基于特征點(diǎn)的多尺度分層網(wǎng)絡(luò)生成點(diǎn)云。SnowflakeNet將完整點(diǎn)云的生成轉(zhuǎn)換成一種顯式的且具有局部結(jié)構(gòu)化特性的分裂過程,設(shè)計雪花反卷積(SPD)用于漸進(jìn)地增加點(diǎn)數(shù),通過按點(diǎn)分裂操作將父節(jié)點(diǎn)的形狀特性轉(zhuǎn)移到子節(jié)點(diǎn)當(dāng)中,同時引入Skip-Transformer 用于捕捉局部形狀特性和相鄰SPD 之間的分裂模式,從而使SPD之間能夠相互協(xié)作,并更好地生成具有良好細(xì)節(jié)特征的完整點(diǎn)云。PMPNet++整體上由三層點(diǎn)移動模塊(PMD-module)組成,每一層PMD模塊為點(diǎn)云預(yù)測逐點(diǎn)偏移向量從而達(dá)到變形補(bǔ)全的目的。相較于之前的PMPNet,PMPNet++在每一層PMD 模塊的編碼階段引入Transformer,幫助網(wǎng)絡(luò)利用注意力機(jī)制來更好地捕捉形狀上下文信息,從而提高補(bǔ)全性能。
由于上述方法都是在不同的數(shù)據(jù)集中訓(xùn)練的,為了便于定量評價分析,實(shí)驗(yàn)采用同一數(shù)據(jù)集ShapeNet并按照相同方式對所有方法進(jìn)行訓(xùn)練和測試。
使用本算法對ShapeNet 數(shù)據(jù)集上的殘缺點(diǎn)云進(jìn)行補(bǔ)全測試,將倒角距離和搬土距離作為評價指標(biāo),倒角距離在訓(xùn)練形狀補(bǔ)全網(wǎng)絡(luò)時側(cè)重整體的網(wǎng)絡(luò)結(jié)構(gòu),搬土距離則是以局部細(xì)節(jié)為關(guān)鍵。計算得到的結(jié)果越小,表明網(wǎng)絡(luò)預(yù)測生成的完整點(diǎn)云與實(shí)際點(diǎn)云越接近,網(wǎng)絡(luò)補(bǔ)全點(diǎn)云的性能越好。誤差主要分為前后兩部分,前面是預(yù)測點(diǎn)云指向真實(shí)點(diǎn)云的誤差(P→Q),用于衡量預(yù)測與真實(shí)情況之間的差異;后面是真實(shí)點(diǎn)云指向預(yù)測點(diǎn)云的誤差(Q→P)可以反應(yīng)真值表面被預(yù)測點(diǎn)云覆蓋的程度。
不同方法下整體點(diǎn)云的CD 結(jié)果如表1 所示,每個倒角距離均乘以103,可以明顯看出本算法在大多數(shù)類別上的性能都優(yōu)于其他現(xiàn)有方法,除去汽車、電腦、滑板這些類別外,剩下的10 個類別均較其他方法中的最好結(jié)果有所提升,誤差平均值也降低至0.519/0.385。
表1 不同方法下整體點(diǎn)云的倒角距離(dCD)Table 1 Chamfer distances of overall point cloud under different methods (dCD)
不同方法下整體點(diǎn)云的EMD 如表2 所示,每個搬土距離均乘以102,本算法在九個對象的補(bǔ)全過程中的預(yù)測點(diǎn)云指向真實(shí)點(diǎn)云的EMD 數(shù)值均小于其他方法,同時平均EMD也有所改善。這是因?yàn)槎鄬蛹壗獯a結(jié)構(gòu)更有利于捕捉點(diǎn)云中逐點(diǎn)間的相關(guān)性信息,能夠在補(bǔ)全過程中將核心放在關(guān)鍵性結(jié)構(gòu)的生成上,而不是只關(guān)注如何降低點(diǎn)云EMD值。
表2 不同方法下整體點(diǎn)云的搬土距離(dEMD)Table 2 Earth mover’s distances of overall point cloud under different methods (dEMD)
上述表格中整體點(diǎn)云補(bǔ)全產(chǎn)生誤差由缺失區(qū)域的預(yù)測誤差和原始部分形狀的變化兩部分組成。由于實(shí)驗(yàn)過程中將物體的部分形狀作為輸入,只輸出缺失區(qū)域的點(diǎn)云,保留原有部分的形狀而沒有經(jīng)過調(diào)整,因此表3同樣計算了缺失區(qū)域誤差以保證模型評估的合理性。具體來看,網(wǎng)絡(luò)在飛機(jī)、包、帽子、椅子、吉他、臺燈、杯子、滑板和桌子等九種類別的CD值優(yōu)于其他網(wǎng)絡(luò),結(jié)果證明本算法無論在整體點(diǎn)云還是缺失區(qū)域點(diǎn)云的補(bǔ)全任務(wù)中,都可以生成精度更高、畸變更小的點(diǎn)云。
表3 不同方法下缺失區(qū)域的倒角距離(dCD)Table 3 Chamfer distances of missing regions under different methods (dCD)
比較六種方法與本算法在ShapeNet 數(shù)據(jù)集的補(bǔ)全性能,其可視化結(jié)果如圖4 所示,圖中依次包括殘缺的輸入點(diǎn)云、經(jīng)過PCN、3D-Capsule、PFNet 和本算法得到的補(bǔ)全點(diǎn)云,以及對應(yīng)的真實(shí)點(diǎn)云。
圖4 不同方法下點(diǎn)云補(bǔ)全結(jié)果可視化Fig.4 Visualization of point cloud completion results under different method
其中,PCN 關(guān)注全局特征,解碼時融合兩種操作產(chǎn)生由粗到細(xì)的點(diǎn)云,但由于對局部特征的提取不充分,面對一些包含細(xì)微表面的物體時無法完整恢復(fù)這些結(jié)構(gòu),而且存在預(yù)測點(diǎn)云在空間中的分布不均勻的現(xiàn)象,如桌腿和帶有空隙的椅背。3D-Capsule 運(yùn)用自動編碼器,在處理稀疏的3D點(diǎn)云的同時,能夠有效保留輸入數(shù)據(jù)的空間分布,相比其他自動編碼的方法,其分類的精確度更高,但在面對原始表面較為復(fù)雜的補(bǔ)全任務(wù)時,會造成過度填充缺失結(jié)構(gòu)的問題,進(jìn)而導(dǎo)致物體形狀失真。PFNet雖然利用多個全連接層輸出預(yù)測結(jié)果,使點(diǎn)云生成過程更為平穩(wěn),但在編碼時僅是在輸入點(diǎn)云的基礎(chǔ)上不斷進(jìn)行下采樣提取特征,沒有真正意義上學(xué)習(xí)到點(diǎn)云的全部局部特征,所以對一些細(xì)節(jié)結(jié)構(gòu)進(jìn)行恢復(fù)時產(chǎn)生結(jié)構(gòu)連接斷裂或錯誤補(bǔ)全結(jié)果,如杯子的手柄。本算法基于雙分支編碼器,獨(dú)立編碼全局特征和局部特征同時利用五層聯(lián)合感知機(jī)獲取多尺度特征信息,最后采用分層解碼結(jié)構(gòu)由粗糙到詳細(xì)預(yù)測出三種規(guī)模的點(diǎn)云。在圖中可以明顯看出本算法的補(bǔ)全效果更好,針對不同類別的物體均給出了更精細(xì)的結(jié)果,始終提供一個平滑的全局形狀(如包的邊緣輪廓),且輸出的點(diǎn)云在空間分布上具有較好的均勻性,很好地保留了輸入點(diǎn)云的細(xì)節(jié)特性(如條狀鏤空的椅背),較大程度地提升了點(diǎn)云補(bǔ)全的性能。這說明本算法的重建能力強(qiáng),預(yù)測的點(diǎn)云形狀具有很強(qiáng)的空間連續(xù)性,對于細(xì)微結(jié)構(gòu)也能實(shí)現(xiàn)較為精細(xì)的補(bǔ)全,有效提高了點(diǎn)云補(bǔ)全精度。
另外,在點(diǎn)云補(bǔ)全任務(wù)中GRNet雖然考慮了點(diǎn)云的空間結(jié)構(gòu)和局部信息,但是在轉(zhuǎn)換過程中容易造成特征信息冗余、增大量參數(shù)。SnowflakeNet作為一種局部結(jié)構(gòu)化的點(diǎn)云生成方式,采用漸進(jìn)式粗到細(xì)解碼的方法進(jìn)行補(bǔ)全形狀,傾向于預(yù)測粗糙的缺失形狀特別是對于具有平面或表面的幾何圖形。SnowflakeNet 雖然通過逆向卷積獲取局部形狀信息來更好地捕捉和還原物體的局部幾何特性,但是忽視了全局信息的穩(wěn)定性,產(chǎn)生局部聚集并生成散亂點(diǎn)。此外,PMPNet++將上層偏移特征將作為歷史偏移信息來指導(dǎo)下次變形過程,不斷整合當(dāng)前與歷史移動信息并傳入下一層PMD指導(dǎo)下一次偏移,往往造成錯誤偏移信息持續(xù)傳遞,引發(fā)形狀嚴(yán)重畸變。綜上,本算法既能獨(dú)立且全面地學(xué)習(xí)局部特征和全局特征,又能在不同層次上預(yù)測點(diǎn)云形狀,擁有更精準(zhǔn)的細(xì)微結(jié)構(gòu)補(bǔ)全能力。
為了進(jìn)一步檢驗(yàn)網(wǎng)絡(luò)的合理性和有效性,使用不同缺失程度的點(diǎn)云數(shù)據(jù)來測試算法的補(bǔ)全性能。
實(shí)驗(yàn)選用飛機(jī)、椅子和桌子三個類別分別在三種缺失率25%、50%、75%下進(jìn)行訓(xùn)練??紤]到網(wǎng)絡(luò)的定量評價,通過改變解碼器中的N來控制網(wǎng)絡(luò)輸出點(diǎn)的數(shù)量,以分別訓(xùn)練網(wǎng)絡(luò)在多種缺失率下的修復(fù)能力。具體結(jié)果如表4,顯示了本算法在測試集中的性能。
表4 不同缺失程度下點(diǎn)云補(bǔ)全性能Table 4 Point clouds completion performance under different missing ratio
圖5 可視化了CD 值的變化過程,可以看出盡管輸入點(diǎn)的數(shù)量相較于真實(shí)點(diǎn)云數(shù)據(jù)由25%逐漸減少至75%,網(wǎng)絡(luò)的誤差卻始終保持相對穩(wěn)定,沒有呈現(xiàn)出較大程度的波動。實(shí)驗(yàn)結(jié)果表明,該網(wǎng)絡(luò)在缺失大量點(diǎn)云時,仍然能夠提供與殘缺對象的真實(shí)形狀非常接近的預(yù)測,這意味本算法無論是在稀疏還是稠密的點(diǎn)云空間分布下,都能夠準(zhǔn)確地識別并補(bǔ)全不同類別的對象,較大范圍上保留了原始點(diǎn)云的幾何細(xì)節(jié),證明模型具有很強(qiáng)的健壯性,能夠很好地適應(yīng)各種數(shù)據(jù)缺失的情形,在點(diǎn)云補(bǔ)全任務(wù)中有較為出色的表現(xiàn)。
圖5 不同缺失率下點(diǎn)云的補(bǔ)全結(jié)果折線圖Fig.5 Visualization of point completion results under different missing ratio
為了評估網(wǎng)絡(luò)中不同模塊的性能,實(shí)驗(yàn)還分別統(tǒng)計了刪除PointNet模塊、刪除PointNet++模塊以及將MLP替換為FLCP的補(bǔ)全效果。保證網(wǎng)絡(luò)其他結(jié)構(gòu)不改動的基礎(chǔ)上,進(jìn)行了三個版本的消融實(shí)驗(yàn)。結(jié)果如表5 所示,單獨(dú)使用PointNet 模塊提取特征時,取得了最高的誤差值,其CD 增加到0.605/0.568,EMD 擴(kuò)大至3.429/3.353;單獨(dú)使用PointNet++模塊提取特征時其結(jié)果優(yōu)于前者,CD 為0.595/0.559,EMD 為3.395/3.289;使用MLP代替FLCP 時,CD 達(dá)到了0.582/0.557,EMD 為3.314/3.282,取得了三組實(shí)驗(yàn)中的最優(yōu)值。綜上,無論是去掉PointNet 模塊、PointNet++或者采用MLP 替代FLCP 都對點(diǎn)云的補(bǔ)全精度產(chǎn)生影響,表明三個模塊對網(wǎng)絡(luò)的補(bǔ)全性能均有所貢獻(xiàn)。
表5 消融實(shí)驗(yàn)的點(diǎn)云補(bǔ)全性能Table 5 Point clouds completion performance of ablation experiments
圖6呈現(xiàn)了消融實(shí)驗(yàn)的可視化結(jié)果,完整的基于雙分支結(jié)構(gòu)的多層級補(bǔ)全網(wǎng)絡(luò)的效果最佳。在圖6(b)模型除去PointNet++結(jié)構(gòu)補(bǔ)全椅子時,網(wǎng)絡(luò)只關(guān)注整體形狀的補(bǔ)全,對物體細(xì)節(jié)的恢復(fù)較差,難以給出相對平滑的預(yù)測形狀。椅子邊緣的點(diǎn)的空間分布較為稀疏,存在物體形狀邊界不清晰的現(xiàn)象,如兩只椅子腿中間的橫梁,說明了PointNet++模塊能夠加強(qiáng)網(wǎng)絡(luò)對局部特征的學(xué)習(xí)能力。圖6(c)刪掉PointNet 結(jié)構(gòu)的模型在進(jìn)行補(bǔ)全時,整體輪廓較為分明,但對椅子靠背空白處產(chǎn)生錯誤填充且存在部分點(diǎn)聚集的情況,證明PointNet有助于本算法對全局特征的把握和對缺失對象的整體邊框的還原。圖6(d)顯示了替換FLCP模塊的補(bǔ)全效果,雖然在整體形狀上已經(jīng)非常接近真實(shí)值,但椅子周圍仍有少量噪聲點(diǎn)出現(xiàn),椅背處存在模糊邊界,說明F-LCP 在編碼過程中能夠充分獲取點(diǎn)云數(shù)據(jù)的多維特征,有效提升了網(wǎng)絡(luò)的重建能力??傊鲜鋈齻€模塊都能夠增強(qiáng)補(bǔ)全網(wǎng)絡(luò)的預(yù)測能力,在本算法中有著十分重要的意義。
為了確定檢驗(yàn)鑒別器網(wǎng)絡(luò)在該結(jié)構(gòu)中存在的必要性,在原有網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上刪掉鑒別器網(wǎng)絡(luò),實(shí)驗(yàn)結(jié)果如圖7 和圖8,分別是在相同條件不帶有鑒別器網(wǎng)絡(luò)的和帶有鑒別器網(wǎng)絡(luò)的CD 和EMD。根據(jù)圖中數(shù)據(jù)所示,在大多數(shù)類別上帶有鑒別器的網(wǎng)絡(luò)的表現(xiàn)都要優(yōu)于不帶有鑒別器的網(wǎng)絡(luò),其平均損失函數(shù)值無論是CD還是EMD 都略小于不帶鑒別器模型,說明引入鑒別器結(jié)構(gòu)能夠改善網(wǎng)絡(luò)的補(bǔ)全效果,驗(yàn)證了其重要性。
圖7 帶有/不帶有鑒別器模塊的CD補(bǔ)全結(jié)果Fig.7CD completion results with/without discriminator module
圖8 帶有/不帶有鑒別器模塊的EMD補(bǔ)全結(jié)果Fig.8 EMD completion results with/without discriminator module
在點(diǎn)云數(shù)據(jù)采集時,被測對象特性、測量方法和環(huán)境等因素可能會造成幾何和語義信息的丟失,這就帶來了點(diǎn)云數(shù)據(jù)缺失問題,論文以此為背景提出了一種雙分支結(jié)構(gòu)的多層級點(diǎn)云補(bǔ)全算法,有效解決了現(xiàn)有點(diǎn)云補(bǔ)全方法缺乏局部特征信息且僅從單一維度預(yù)測點(diǎn)云所造成的補(bǔ)全結(jié)果粗糙的問題。結(jié)合PointNet 網(wǎng)絡(luò)和PointNet++網(wǎng)絡(luò)構(gòu)造雙分支編碼器,在并行的通道上獨(dú)立地提取全局和局部特征,同時設(shè)計了多層級的解碼器監(jiān)督每一階段的點(diǎn)云,以更好地保留不同維度的特征用于輸出較高精度的預(yù)測結(jié)果,并且引入鑒別器促進(jìn)網(wǎng)絡(luò)優(yōu)化。在ShapeNet上測試算法的補(bǔ)全性能,使用CD和EMD 去評估結(jié)果。實(shí)驗(yàn)結(jié)果表明,該算法生成的點(diǎn)云最接近地面真實(shí)值,不僅可以輸出平滑的全局形狀,而且可以提供盡可能多的細(xì)節(jié),以更高的精度生成密集的完整點(diǎn)云,面對不同程度的點(diǎn)云數(shù)據(jù)缺失時仍能夠高效地完成形狀補(bǔ)全任務(wù)。
然而,模型針對汽車和臺式電腦等一些表面結(jié)構(gòu)較為復(fù)雜的物體補(bǔ)全時,在點(diǎn)的空間分布上存在部分點(diǎn)錯誤聚集而其余點(diǎn)較為分散的情況,甚至出現(xiàn)物體局部失真的現(xiàn)象。分析產(chǎn)生原因是網(wǎng)絡(luò)缺少特征融合結(jié)構(gòu),對獲得的全局特征和局部特征未能恰當(dāng)選擇和融合利用。之后將致力于構(gòu)建特征融合模塊去聚合局部和全局特征信息,以提高預(yù)測點(diǎn)云的均勻性和保真度,并嘗試將該模型用于處理更復(fù)雜的真實(shí)點(diǎn)云場景。