楊天宇 譚臺(tái)哲 王俊鍇
摘要:隨著三維點(diǎn)云數(shù)據(jù)在計(jì)算機(jī)視覺任務(wù)的逐漸流行,合成或重建高分辨率、高保真點(diǎn)云的能力變得至關(guān)重要。雖然深度學(xué)習(xí)模型最近在點(diǎn)云識(shí)別和點(diǎn)云分類任務(wù)中取得了成功,但點(diǎn)云生成任務(wù)還困難重重。本文提出了一種基于流模型的點(diǎn)云生成模型,使用深度學(xué)習(xí)技術(shù)訓(xùn)練好該模型之后,只需要從簡(jiǎn)單的高斯分布隨機(jī)采樣數(shù)據(jù),然后通過(guò)我們的模型就可以產(chǎn)生全新的高質(zhì)量的點(diǎn)云形狀?;谖覀兡P蜕傻狞c(diǎn)云的質(zhì)量比大多數(shù)現(xiàn)存的模型都要好,可以為其他一些任務(wù)提供很好的先驗(yàn)點(diǎn)云,比如三維重建、點(diǎn)云補(bǔ)全任務(wù)。
關(guān)鍵詞:點(diǎn)云;生成模型;流模型 ;深度學(xué)習(xí);先驗(yàn)點(diǎn)云
中圖分類號(hào):TP18? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)30-0033-04
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
3D Point Cloud Generation Method Based on Flow Model
TAN Tai-zhe, YANG Tian-yu, Wang Jun-kai
(School of computers science, Guangdong University of Technology, Guangzhou 510006, China)
Abstract: With the gradual popularity of 3D point cloud in computer vision tasks, the ability of high-fidelity point cloud to be synthesized or reconstructed gradually. Although the deep learning model has recently proposed a stream model-based point cloud generation model in point cloud recognition and point cloud classification tasks, after training the model using deep learning technology, it only needs to randomly sample data from a simple Gaussian distribution. Then we can generate a new estimated point cloud shape through our model. The quality of the point cloud generated based on our model is better than most existing models. It can provide a good prior point cloud for some other tasks, such as 3D reconstruction, and point cloud completion tasks.
Key words: point cloud; generative model; flow based model; deep learning; prior point cloud
1 引言
隨著點(diǎn)云在自動(dòng)駕駛、三維建模,考古與文物保護(hù)等任務(wù)的流行,研究點(diǎn)云成為了一種趨勢(shì)。目前點(diǎn)云分類任務(wù)和點(diǎn)云目標(biāo)檢測(cè)任務(wù)已經(jīng)取得了不錯(cuò)的成績(jī),然而,點(diǎn)云生成任務(wù)還比較少的研究。Diego等人在2019年提出了tree-GAN模型[8],運(yùn)用GAN來(lái)做點(diǎn)云生成,但是訓(xùn)練起來(lái)非常困難,不能生成指定的點(diǎn)云。P Mandikal在2019年的WACV通過(guò)編碼器-解碼器結(jié)構(gòu)的網(wǎng)絡(luò)生成稀疏的點(diǎn)云,但是其在密集點(diǎn)云的生成任務(wù)表現(xiàn)不佳。自從基于流模型的GLOW提出后,研究人員們視線再一次關(guān)注到流生成模型。來(lái)自康奈爾大學(xué)和英偉達(dá)的研究人員在2019ICCV提出了三維點(diǎn)云生成模型PointFlow,使得更多的研究人員關(guān)注到基于流模型三維點(diǎn)云的生成任務(wù)。
2 生成模型
所謂生成模型,就是給定訓(xùn)練數(shù)據(jù),我們要生成與該數(shù)據(jù)分布相同的新樣本。假設(shè)訓(xùn)練數(shù)據(jù)服從分布,生成樣本服從分布,生成模型的作用就是使得這兩個(gè)分布 和盡可能的相似。所以生成模型的本質(zhì)就是希望用一個(gè)我們知道的概率模型來(lái)擬合給定的訓(xùn)練樣本,即我們能夠?qū)懗鲆粋€(gè)帶參數(shù)θ的分布。深度神經(jīng)網(wǎng)絡(luò)作為萬(wàn)能的函數(shù)擬合器,卻不能夠隨意擬合一個(gè)概率分布,因?yàn)楦怕史植加小胺秦?fù)”和“歸一化”的要求。為了解決這個(gè)問(wèn)題,研究學(xué)者們提出了四種生成模型:自回歸模型、變分編碼器、對(duì)抗生成網(wǎng)絡(luò)、流模型。
2.1 自回歸模型
自回歸模型在PixelCNN和PixelRNN上展示了很不錯(cuò)的實(shí)驗(yàn)效果,但是由于是按照像素點(diǎn)去生成圖像導(dǎo)致計(jì)算成本高,在可并行性上受限,在處理大型數(shù)據(jù)如大型圖像或視頻是具有一定麻煩的。
2.2 變分自編碼器(VAE)
VAE是在自編碼器的基礎(chǔ)上讓圖像編碼的潛在向量服從高斯分布從而實(shí)現(xiàn)圖像的生成,優(yōu)化了數(shù)據(jù)對(duì)數(shù)似然的下界,VAE在圖像生成上是可并行的,但是VAE存在著生成圖像模糊的問(wèn)題。VAE的優(yōu)勢(shì)在于小樣本學(xué)習(xí),他專注于從給定集合中生成新的樣本[3]。
2.3 生成對(duì)抗網(wǎng)絡(luò)(GAN)
GAN拋棄具體的密度分布模型,只要樣本的特征。通過(guò)博弈來(lái)訓(xùn)練一個(gè)分布函數(shù)得到符合的很好的樣本特征。GAN在圖像生成任務(wù)中比較有優(yōu)勢(shì),在很多GAN的拓展工作中也取得了很大的提高。但是GAN生成的樣本多樣性不足以及訓(xùn)練過(guò)程不穩(wěn)定是GAN普遍存在的問(wèn)題,同時(shí)GAN沒有潛在空間編碼器,從而缺乏對(duì)數(shù)據(jù)的全面支持。
2.4 流模型
在使用深度學(xué)習(xí)訓(xùn)練網(wǎng)絡(luò)的時(shí)候,似然對(duì)數(shù)函數(shù)
基于流的生成模型總結(jié)一下具有以下優(yōu)點(diǎn):
a)精確的潛在變量推斷和對(duì)數(shù)似然評(píng)估,在VAE中編碼后只能推理出對(duì)應(yīng)于數(shù)據(jù)點(diǎn)的潛在變量的近似值。在像Glow這樣的可逆生成模型中,可以在沒有近似的情況下實(shí)現(xiàn)潛在變量的精確的推理,還可以優(yōu)化數(shù)據(jù)的精確對(duì)數(shù)似然,而不是其下限[5]。
b)高效的推理和合成,自回歸模型如PixelCNN,也是可逆的,然而這樣的模型合成難以實(shí)現(xiàn)并行化,并且通常在并行硬件上效率低下。而基于流的生成模型如Glow和RealNVP都能有效實(shí)現(xiàn)推理與合成的并行化。
c)自回歸模型的隱藏層有未知的邊際分布,使其執(zhí)行有效的數(shù)據(jù)操作上很困難;由于GAN沒有編碼器,所以很難表征完整的數(shù)據(jù)分布。基于流的模型能夠?qū)W習(xí)高維數(shù)據(jù)中的復(fù)雜依賴關(guān)系,并學(xué)習(xí)語(yǔ)義上有意義的潛在空間,實(shí)時(shí)生成大量合成樣本。
3 流模型在點(diǎn)云生成的應(yīng)用
流模型現(xiàn)在已經(jīng)很成熟的應(yīng)用在圖像生成任務(wù)上,并且效果也還不錯(cuò)比如OpenAI在2018的NeurIPS提出的GLOW模型[5]。而將流模型運(yùn)用在點(diǎn)云生成任務(wù)上的研究相對(duì)比較少。來(lái)自康奈爾大學(xué)和英偉達(dá)的研究人員在2019ICCV提出了一種基于流模型的三維點(diǎn)云生成模型PointFlow,這是流模型第一次應(yīng)用在點(diǎn)云生成任務(wù)[3]。PointFlow通過(guò)為分布的分布建模,分別建立物體形狀的分布和給定物體的點(diǎn)云的分布,以此來(lái)完成對(duì)于物體點(diǎn)云的生成任務(wù)。為了生成點(diǎn)云,作者對(duì)分布的分布進(jìn)行建模,也就是說(shuō)不僅需要為形狀分布進(jìn)行建模,同時(shí)需要對(duì)特定形狀下的點(diǎn)云進(jìn)行建模。研究人員通過(guò)先驗(yàn)分布點(diǎn)的可逆參數(shù)化變換代替了直接對(duì)點(diǎn)云分布的建模。這意味著在給定模型的情況下,首先從通用的高斯先驗(yàn)中進(jìn)行采樣,而后基于參數(shù)變換將他們移動(dòng)到與目標(biāo)形狀對(duì)應(yīng)的新位置,使得參數(shù)化的變化和變量的分布都可以利用這一模型進(jìn)行描述。更重要的是,這種模型還帶來(lái)了更強(qiáng)大的表達(dá)能力。在可以估計(jì)概率密度、提升變分下限的同時(shí),還可以避免由GANs帶來(lái)的復(fù)雜訓(xùn)練。但是PointFlow有著它的缺點(diǎn),一是訓(xùn)練時(shí)間非常久;二是對(duì)于稀疏的點(diǎn)云,生成效果不是很好。
基于PointFlow的不足,我們提出了一種改進(jìn)的模型。我們同樣使用連續(xù)歸一化流來(lái)為給定形狀下點(diǎn)的分布進(jìn)行建模。連續(xù)歸一化流可以視為三維歐式空間中的向量場(chǎng),它可以通過(guò)對(duì)某一通用的先驗(yàn)分布進(jìn)行轉(zhuǎn)換(例如高斯分布)推導(dǎo)出點(diǎn)云的分布。連續(xù)歸一化流是一系列可逆的映射,可以將已知的初始化分布映射到更為復(fù)雜的分布上去。
3.1 點(diǎn)云生成過(guò)程
我們的目標(biāo)是生成點(diǎn)云,根據(jù)圖1將我們的模型網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)如圖2。首先,從高斯分布里面隨機(jī)采樣M個(gè)數(shù)據(jù)y1,y2,…,yM。每個(gè)數(shù)據(jù)表示一個(gè)點(diǎn)云,并且他們各自包含有對(duì)應(yīng)點(diǎn)云的x軸、y軸和z軸坐標(biāo)。然后將這M個(gè)點(diǎn)云通過(guò)可逆的網(wǎng)絡(luò)g,網(wǎng)絡(luò)g就會(huì)移動(dòng)這些點(diǎn)云位置,從而獲得新的點(diǎn)云。因?yàn)橥粋€(gè)類別的點(diǎn)云會(huì)有不同的形狀,比如飛機(jī)這個(gè)類別就有客機(jī),戰(zhàn)斗機(jī)等等,所以為了使我們的模型產(chǎn)生不同形狀的點(diǎn)云,我們使用一個(gè)高維度的隱變量S來(lái)控制生成點(diǎn)云的形狀。我們從高斯分布里面隨機(jī)采樣數(shù)據(jù)(采樣的數(shù)據(jù)維度和S相同),然后將采樣的數(shù)據(jù)送入可逆的網(wǎng)絡(luò)f,這樣就可以獲得一個(gè)S。接著將S送入網(wǎng)絡(luò)g就可以生成不同形狀的點(diǎn)云。
3.2 網(wǎng)絡(luò)訓(xùn)練過(guò)程
根據(jù)圖2可知訓(xùn)練的過(guò)程和點(diǎn)云生成的過(guò)程是逆向的。我們想要從熟知的高斯分布生成點(diǎn)云,而點(diǎn)云所處的分布非常復(fù)雜且我們還不知道表達(dá)式。這時(shí),我們借助于數(shù)據(jù)集的點(diǎn)云,從點(diǎn)云采樣數(shù)據(jù),然后逆向通過(guò)可逆網(wǎng)絡(luò)g和可逆網(wǎng)絡(luò)f,只要這樣產(chǎn)生的分布和高斯分布一樣,則可逆網(wǎng)絡(luò)g和可逆網(wǎng)絡(luò)f訓(xùn)練完成。如圖3,訓(xùn)練過(guò)程我們分成2個(gè)分支,分支1(圖2的上部分):首先把從數(shù)據(jù)集獲得的點(diǎn)云數(shù)據(jù)采樣M個(gè)點(diǎn)。將這M個(gè)點(diǎn)通過(guò)一個(gè)編碼器獲得隱變量S,然后將S喂入可逆網(wǎng)絡(luò)f-1產(chǎn)生S`,f-1訓(xùn)練目標(biāo)是使得S`和從高斯分布采樣得到的高維向量盡量接近。分支2(圖3的下部分):可逆網(wǎng)絡(luò)g-1的訓(xùn)練目標(biāo)是將之前從數(shù)據(jù)集點(diǎn)云數(shù)據(jù)采樣的M個(gè)點(diǎn)移動(dòng)到新的位置,使得他們和從高斯分布采樣的點(diǎn)的位置盡可能的接近。受到圖像分類任務(wù)的啟示,我們對(duì)從數(shù)據(jù)集點(diǎn)云數(shù)據(jù)采樣的M個(gè)點(diǎn)進(jìn)行數(shù)據(jù)增強(qiáng),具體來(lái)說(shuō)就是對(duì)每個(gè)采樣到的點(diǎn)隨機(jī)加一下噪聲擾動(dòng)。得益于流模型的可逆性帶來(lái)的似然計(jì)算,我們的網(wǎng)絡(luò)可以端到端穩(wěn)定地訓(xùn)練。訓(xùn)練結(jié)束后,我們就可以獲得編碼器、可逆網(wǎng)絡(luò)f-1和可逆網(wǎng)絡(luò)g-1的參數(shù)。
4 實(shí)驗(yàn)
與大多數(shù)做點(diǎn)云生成的任務(wù)一樣,我們使用ShapeNet核心數(shù)據(jù)集中的三種不同類別(飛機(jī)、椅子和汽車)進(jìn)行實(shí)驗(yàn),每個(gè)類別分別訓(xùn)練。在模型訓(xùn)練階段,我們隨機(jī)從點(diǎn)云形狀采樣2048個(gè)點(diǎn)作為訓(xùn)練樣本,使用2張2080ti GPU進(jìn)行訓(xùn)練。一共訓(xùn)練了15000個(gè)輪次。
4.1 實(shí)驗(yàn)結(jié)果
圖4展示了基于我們模型的點(diǎn)云生成的大致過(guò)程。最左邊是從高斯分布隨機(jī)采樣的點(diǎn)云,最右邊是我們模型最終生成的點(diǎn)云。從左往右展示了點(diǎn)云的生成過(guò)程。上面的是汽車,中間是椅子,下面的是飛機(jī)。
圖5展示的是從我們模型生成的一些新樣本。第一行飛機(jī),第二行汽車,第三行椅子。從圖中我們知道,模型可以生成不同形狀的點(diǎn)云,比如飛機(jī)類別,可以生成客機(jī)或者戰(zhàn)斗機(jī),機(jī)翼的大小和方向也不同,尾翼形狀也各異。再看椅子類別,或是生成靠背的椅子,或是生成沙發(fā),或是不帶扶手,或是帶扶手的。椅子的凳腳也是各種樣式。
4.2 模型評(píng)估
我們使用由Lopez-Paz和Oquab[7]提出的1-NNA來(lái)評(píng)估我們的模型性能。1-NNA的理想分?jǐn)?shù)為50%。為了計(jì)算1-NNA,可以使用兩種不同的距離度量,倒角距離(CD)和運(yùn)土距離(EMD)來(lái)測(cè)量點(diǎn)云之間的相似度。1-NNA的生成結(jié)果如表1所示。
從表1我們可以看出,我們的模型是全面優(yōu)于的r-GAN,在飛機(jī)和椅子類別上,也優(yōu)于PointFlow。在汽車類別中,我們略差于PointFlow,但是優(yōu)于r-GAN。
5 結(jié)語(yǔ)
在本文中,我們介紹了一種基于流模型的點(diǎn)云生成框架。通過(guò)實(shí)驗(yàn)證明,我們只需要使用簡(jiǎn)單的高斯分布采樣,讓樣本通過(guò)我們的模型之后就可以產(chǎn)生高質(zhì)量的樣本。我們提出的基于流模型的點(diǎn)云生成模型性能比其他的方法效果好很多,甚至逼近目前最先進(jìn)的方法。未來(lái)的工作我們考慮將我們的模型應(yīng)用在單個(gè)圖像重建點(diǎn)云。
參考文獻(xiàn):
[1] Chen T Q, Rubanova Y, Bettencourt J, et al. Neural ordinary differential equations. In Advances in neural information processing systems, pp. 6571–6583, 2018.
[2] Tian Qi Chen, Yulia Rubanova, Jesse Bettencourt, and David K Duvenaud. Neural ordinary differential equations.In NeurIPS, 2018.
[3] Yang G D,Huang X,Hao Z K,et al.PointFlow:3D point cloud generation with continuous normalizing flows[C]//2019 IEEE/CVF International Conference on Computer Vision (ICCV).October 27 - November 2,2019,Seoul,Korea (South).IEEE,2019:4540-4549.
[4] Valsesia, Diego, Fracastoro, Giulia, Magli, Enrico. Learning Localized Generative Models for 3D Point Clouds via Graph Convolution,In ICCV019.
[5] Kingma D P, Dhariwal P. Glow: Generative flow with invertible 1x1 convolutions. In Advances in Neural Information Processing Systems, 2018: 10215-10224.
[6] Panos Achlioptas, Olga Diamanti, Ioannis Mitliagkas, and Leonidas Guibas. Learning representations and generative models for 3d point clouds. In ICML, 2018.
[7] Lopez-Paz D,Oquab M.Revisiting classifier two-sample tests[EB/OL].2016:arXiv:1610.06545[stat.ML].https://arxiv.org/abs/1610.06545
[8] Shu D,Park S W,Kwon J.3D point cloud generative adversarial network based on tree structured graph convolutions[C]//2019 IEEE/CVF International Conference on Computer Vision (ICCV).October 27 - November 2,2019,Seoul,Korea (South).IEEE,2019:3858-3867.
【通聯(lián)編輯:唐一東】