2020/10/15:PF-Net: Point Fractal Network for 3D Point Cloud Completion
論文地址:https://arxiv.org/abs/2003.00410
前置文章:10/16柴灯、10/17唐断、10/18
本文提出了Point Fractal Network(PF-Net),旨在從不完整的點(diǎn)云數(shù)據(jù)中恢復(fù)點(diǎn)云佃延,克服了之前方法修改現(xiàn)有數(shù)據(jù)點(diǎn)、引入噪聲和產(chǎn)生幾何損失的缺點(diǎn)泼各。
由前置文章可知鞍时,之前的點(diǎn)云修復(fù)方法是輸入不完整的點(diǎn)云,輸出完整的點(diǎn)云扣蜻,但這樣會(huì)導(dǎo)致原有信息的缺失逆巍。這篇文章提出PF-Net,主要特點(diǎn)有三個(gè):
- 輸入不完整的點(diǎn)云弱贼,輸出缺失部分蒸苇,避免信息丟失磷蛹。
- 通過(guò)多分辨率的編碼器來(lái)提取不同分辨率的特征吮旅。
- 使用點(diǎn)金字塔解碼器,輸出由粗到精的修復(fù)結(jié)果味咳。
- 同時(shí)使用完整性損失和對(duì)抗損失來(lái)減少物體的畸變問(wèn)題庇勃。
網(wǎng)絡(luò)的整體結(jié)構(gòu)如下:
網(wǎng)絡(luò)詳細(xì)推理步驟如下:
- 使用PointNet++中提到的IFPS方法將點(diǎn)云進(jìn)行下采樣,得到不同分辨率的點(diǎn)云(分別以黃槽驶、紅责嚷、藍(lán)表示)。
- 對(duì)每種分辨率的點(diǎn)云掂铐,使用提出的CMLP來(lái)提取特征罕拂。作者提到在L-GAN和PointNet中,模型的結(jié)果過(guò)于依賴max pooling之后的特征維度全陨。這是由于MLP不能很好地學(xué)習(xí)到低層次和中層次的特征爆班。作者提出的CMLP,首先將每個(gè)點(diǎn)坐標(biāo)編碼成[64-128-256-512-1024]維辱姨,然后提取后面四個(gè)維度的特征做max pooling柿菩,最后將得到的特征拼接起來(lái),得到1920維的特征雨涛,這樣就可以同時(shí)利用多個(gè)層次的特征枢舶。
- 將三種分辨率的點(diǎn)云的特征拼接起來(lái),得到1930×3的特征替久,然后再經(jīng)過(guò)MLP凉泄,得到1920×1的特征。
-
將特征通過(guò)PPD得到三種分辨率的點(diǎn)云修復(fù)結(jié)果蚯根,其中PPD的具體結(jié)構(gòu)如下圖所示:
損失函數(shù)使用完整性損失和對(duì)抗損失的加權(quán)平均后众,完整性損失使用L-GAN中提出的CD距離:
對(duì)抗損失使用GAN中常見(jiàn)的損失函數(shù)
感覺(jué)這篇文章對(duì)多尺度的運(yùn)用非常極致,在編碼器、解碼器和CMLP中都應(yīng)用了這種思想吼具,最后的效果也非常不錯(cuò)僚纷,很值得借鑒。
2020/10/16:PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
論文地址:https://arxiv.org/abs/1612.00593
PointNet提出一種基礎(chǔ)的網(wǎng)絡(luò)結(jié)構(gòu)拗盒,可以用于點(diǎn)云分類怖竭、部分分割和語(yǔ)義分割等多種任務(wù)。在這篇文章之前陡蝇,點(diǎn)云數(shù)據(jù)的處理方式是將點(diǎn)云數(shù)據(jù)轉(zhuǎn)換為多個(gè)二維的視圖或三維的體素形式痊臭,然后應(yīng)用2D/3D CNN進(jìn)行處理,但這樣引入了多余的體積登夫,效率不高广匙。本文是第一個(gè)直接使用點(diǎn)云數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)。(其實(shí)可以這樣類比恼策,在二維圖像處理中鸦致,假設(shè)圖像是二值化的,傳統(tǒng)方法是將這個(gè)圖像直接丟到CNN里面涣楷,但如果背景特別多會(huì)比較浪費(fèi)資源分唾。直接使用點(diǎn)云數(shù)據(jù)相當(dāng)于直接將前景像素的坐標(biāo)輸入到神經(jīng)網(wǎng)絡(luò)里面,對(duì)稀疏數(shù)據(jù)會(huì)有比較好的性能狮斗,但因?yàn)橐韵氯齻€(gè)問(wèn)題導(dǎo)致直接使用坐標(biāo)信息比較困難)
由于點(diǎn)云的排列是無(wú)序的(可以想象绽乔,點(diǎn)云中任意一點(diǎn)排在前面對(duì)點(diǎn)云的表達(dá)都是相同的)、點(diǎn)云之間是有相互作用的(相鄰的點(diǎn)云才能構(gòu)成形狀)碳褒、點(diǎn)云在某些變換下具有不變性(比如旋轉(zhuǎn)不會(huì)改變點(diǎn)云的類別)這些特性折砸,要求神經(jīng)網(wǎng)絡(luò)既能處理無(wú)序的數(shù)據(jù),又能捕捉全局的結(jié)構(gòu)特征沙峻,同時(shí)對(duì)剛性變換不敏感睦授。基于這些條件专酗,作者提出了如下的網(wǎng)絡(luò)結(jié)構(gòu):
可以簡(jiǎn)要分析一下網(wǎng)絡(luò)的工作流程睹逃,以點(diǎn)云分類問(wèn)題為例:
- 輸入數(shù)據(jù),維度為n*3祷肯。(每個(gè)點(diǎn)有x沉填,y,z三個(gè)坐標(biāo))
- 將輸入通過(guò)一個(gè)T-Net佑笋,得到一個(gè)變換矩陣翼闹,將原始數(shù)據(jù)與變換矩陣相乘,即可得到變換后的數(shù)據(jù)蒋纬。這一步的目的是為了使網(wǎng)絡(luò)對(duì)剛性變換不敏感猎荠。比如一個(gè)任意旋轉(zhuǎn)過(guò)的椅子坚弱,可以給他規(guī)定一個(gè)正確的方向,然后訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)得到一個(gè)變換矩陣关摇,將椅子旋轉(zhuǎn)到正確的方向荒叶,這樣網(wǎng)絡(luò)每次輸入的數(shù)據(jù)就相當(dāng)于沒(méi)有變換過(guò)的數(shù)據(jù)。T-Net的設(shè)計(jì)思路和大網(wǎng)絡(luò)相似输虱。
- 對(duì)每個(gè)點(diǎn)數(shù)據(jù)經(jīng)過(guò)全連接層提取特征些楣,這里的全連接層在所有點(diǎn)上共享。
- 在feature維度上再進(jìn)行一次2中的變換宪睹,再通過(guò)全連接提取特征愁茁。
- 在n的維度上做最大池化,這里是為了整合所有點(diǎn)的信息亭病,同時(shí)也滿足了無(wú)序性鹅很,因?yàn)辄c(diǎn)的輸入順序?qū)ψ畲蟪鼗瘉?lái)說(shuō)是沒(méi)有影響的。
- 全連接罪帖,得到k個(gè)類別的評(píng)分促煮。
感覺(jué)網(wǎng)絡(luò)的結(jié)構(gòu)雖然簡(jiǎn)單,但是卻很好地滿足了點(diǎn)云數(shù)據(jù)自身特性對(duì)神經(jīng)網(wǎng)絡(luò)的要求胸蛛。而且我覺(jué)得在圖像處理中污茵,也有時(shí)候必須用到坐標(biāo)信息或者一些標(biāo)量特征樱报,這篇文章的方法對(duì)于怎樣將這些特征融合進(jìn)CNN里面也有一定的啟發(fā)意義葬项。
2020/10/17:Learning Representations and Generative Models for 3D Point Clouds
論文地址:http://proceedings.mlr.press/v80/achlioptas18a.html
這篇文章的主要工作是:
- 提出一種點(diǎn)云的自動(dòng)編碼器表示,將點(diǎn)云數(shù)據(jù)表示到低維的空間中去迹蛤。
- 提出了針對(duì)點(diǎn)云的生成模型民珍。
- 提出并了衡量?jī)蓚€(gè)點(diǎn)云相似程度的指標(biāo)。
首先來(lái)看衡量?jī)蓚€(gè)點(diǎn)云相似程度的指標(biāo)部分盗飒,作者首先給出了兩個(gè)距離嚷量,EMD和CD:
在計(jì)算上,CD更為簡(jiǎn)便逆趣,而且EMD是不可導(dǎo)的蝶溶。
基于這兩種距離,作者引入了三種衡量?jī)蓚€(gè)點(diǎn)云相似程度的指標(biāo):JSD宣渗、Coverage和MMD:
定義了指標(biāo)后抖所,就可以實(shí)現(xiàn)自動(dòng)編碼器和生成模型了。作者提到了四種結(jié)構(gòu)痕囱,分別是:
- 自動(dòng)編碼器(AE):其分為編碼器和解碼器田轧,編碼器將點(diǎn)云數(shù)據(jù)轉(zhuǎn)化為低維表示,解碼器將低維表示轉(zhuǎn)化回點(diǎn)云數(shù)據(jù)鞍恢,通過(guò)MMD-CD或MMD-EMD訓(xùn)練自動(dòng)編碼器傻粘。
- 原始GAN(R-GAN):利用原始點(diǎn)云數(shù)據(jù)訓(xùn)練的GAN每窖,生成器采用和1中解碼器類似的結(jié)構(gòu),接受一個(gè)隨機(jī)向量弦悉,輸出一個(gè)點(diǎn)云數(shù)據(jù)的表示窒典,然后和真實(shí)的點(diǎn)云數(shù)據(jù)一起訓(xùn)練判別器。
- 隱空間GAN(L-GAN):生成器不直接生成點(diǎn)云數(shù)據(jù)稽莉,而是生成點(diǎn)云數(shù)據(jù)經(jīng)過(guò)AE的隱空間低維表示崇败,然后再利用解碼器解碼成點(diǎn)云數(shù)據(jù)。作者實(shí)驗(yàn)驗(yàn)證L-GAN的效果要好于R-GAN肩祥。
- 高斯混合模型(GMM):通過(guò)高斯混合模型學(xué)習(xí)AE的隱空間低維表示后室,然后從這個(gè)GMM中采樣得到新的低維表示,再經(jīng)過(guò)解碼器即可得到生成的點(diǎn)云數(shù)據(jù)混狠。作者實(shí)驗(yàn)驗(yàn)證這種方法的效果甚至優(yōu)于GAN岸霹,證明傳統(tǒng)方法的效果不一定比神經(jīng)網(wǎng)絡(luò)差。
作者同時(shí)驗(yàn)證了AE的一些其他功能将饺,比如如果給AE的編碼器輸入不完整的點(diǎn)云數(shù)據(jù)贡避,即可訓(xùn)練得到點(diǎn)云復(fù)原的模型。使用SVM對(duì)低維表示進(jìn)行分類予弧,即可進(jìn)行點(diǎn)云分類的任務(wù)刮吧,證明AE在點(diǎn)云數(shù)據(jù)形式中的潛在應(yīng)用較為廣泛。
2020/10/18:PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space
論文地址:http://papers.nips.cc/paper/7095-pointnet-deep-hierarchical-feature-learning-on-point-se
PointNet++針對(duì)PointNet提取局部信息能力不強(qiáng)的弊端掖蛤,提出了一種層次神經(jīng)網(wǎng)絡(luò)杀捻,可以更好地提取局部信息。其中心思想是將整個(gè)點(diǎn)云分割成若干個(gè)小部分來(lái)提取信息蚓庭,然后將每個(gè)小部分整合成較大的部分致讥,提取更高層次的信息。類似于CNN中卷積和下采樣的思想器赞。首先來(lái)看網(wǎng)絡(luò)結(jié)構(gòu)圖:
網(wǎng)絡(luò)大概可以分為兩個(gè)部分垢袱,左邊是層次的點(diǎn)云特征提取網(wǎng)絡(luò),右邊是針對(duì)不同任務(wù)的解碼網(wǎng)絡(luò)港柜。
特征提取分為若干個(gè)set abstraction模塊请契,每個(gè)模塊又分為采樣層、分組層和特征提取層夏醉。
- 采樣層:這一層從點(diǎn)云數(shù)據(jù)中提取一個(gè)點(diǎn)集作為小區(qū)域的中心點(diǎn)爽锥,這里使用的是PF-Net中也用到的FPS算法,具體算法步驟為:
假設(shè)一共有n個(gè)點(diǎn),整個(gè)點(diǎn)集為N = {f1, f2,…,fn}, 目標(biāo)是選取n1個(gè)起始點(diǎn)做為下一步的中心點(diǎn):
隨機(jī)選取一個(gè)點(diǎn)fi為起始點(diǎn)授舟,并寫(xiě)入起始點(diǎn)集 B = {fi};
選取剩余n-1個(gè)點(diǎn)計(jì)算和fi點(diǎn)的距離救恨,選擇最遠(yuǎn)點(diǎn)fj寫(xiě)入起始點(diǎn)集B={fi,fj};
選取剩余n-2個(gè)點(diǎn)計(jì)算和點(diǎn)集B中每個(gè)點(diǎn)的距離, 將最短的那個(gè)距離作為該點(diǎn)到點(diǎn)集的距離, 這樣得到n-2個(gè)到點(diǎn)集的距離,選取最遠(yuǎn)的那個(gè)點(diǎn)寫(xiě)入起始點(diǎn)B = {fi, fj ,fk},同時(shí)剩下n-3個(gè)點(diǎn), 如果n1=3 則到此選擇完畢;
如果n1 > 3則重復(fù)上面步驟直到選取n1個(gè)起始點(diǎn)為止释树。
(該部分為轉(zhuǎn)載肠槽,轉(zhuǎn)載地址) -
分組層:對(duì)每個(gè)中心點(diǎn)擎淤,選取一個(gè)半徑R,將與該點(diǎn)距離小于R的點(diǎn)分為一組秸仙,使用PointNet提取組內(nèi)特征嘴拢,作為下一層該中心點(diǎn)的輸入特征。但作者提到寂纪,因?yàn)辄c(diǎn)云各部分密度不同席吴,這種固定半徑的做法可能導(dǎo)致信息不完整,所以提出了兩種改進(jìn)策略:MSG和MRG捞蛋,如圖所示:
MSG直接選取不同的半徑提取特征孝冒,然后將特征拼接。
MRG先將大區(qū)域分成幾個(gè)小區(qū)域拟杉,將小區(qū)域的特征直接相加作為最終特征的第一部分庄涡。然后將大區(qū)域的特征全部通過(guò)PointNet作為最終特征的第二部分。
MSG思想簡(jiǎn)單但計(jì)算量較大搬设,MRG的計(jì)算量較小穴店,比較合適。 - 特征提取層:使用PointNet對(duì)分組過(guò)后的點(diǎn)云數(shù)據(jù)進(jìn)行特征提取拿穴。
得到了較高層次的特征后泣洞,對(duì)不同的任務(wù)需要不同的解碼網(wǎng)絡(luò)。對(duì)分類網(wǎng)絡(luò)來(lái)說(shuō)比較簡(jiǎn)單默色,使用全連接即可球凰。對(duì)分割網(wǎng)絡(luò)來(lái)說(shuō),由于對(duì)每個(gè)點(diǎn)都需要輸出數(shù)值该窗,則需要類似上采樣的操作弟蚀。具體的實(shí)現(xiàn)作者使用了插值的方法,將較少的點(diǎn)插值到較多的點(diǎn)上去酗失。首先找到插值的目標(biāo)坐標(biāo),然后尋找K個(gè)距離最近的已知點(diǎn)昧绣,以距離的倒數(shù)作為權(quán)重规肴,將K個(gè)點(diǎn)的特征做加權(quán)平均,作為這個(gè)點(diǎn)的特征夜畴。然后使用之前特征提取中得到的該點(diǎn)的特征與當(dāng)前特征做一個(gè)拼接拖刃,即可得到最終特征(類似U-Net的skip connection)。公式如下:
感覺(jué)這篇文章和PF-Net的思想差不多贪绘,都是希望提取多尺度的特征兑牡。但是思路不一樣,都值得借鑒税灌。