五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

基于三維點(diǎn)云場景的語義及實(shí)例分割:RandLA-Net和3D-BoNet

2020-07-24 11:35 作者:深藍(lán)學(xué)院  | 我要投稿

本文整理自牛津大學(xué)的楊波和胡慶擁在深藍(lán)學(xué)院的線上公開課論文演講。兩位作者都是來自牛津大學(xué)的博士生,RandLA-Net和3D-BoNet分別發(fā)表在CVPR20和NeurIPS19上,兩份工作都具有非常大的貢獻(xiàn)。前者著力于大規(guī)模場景的點(diǎn)云語義分割,后者著力于點(diǎn)云實(shí)例分割的速度和精度的平衡。

本報(bào)告分成了4個(gè)部分,作者先是介紹了深度學(xué)習(xí)在點(diǎn)云領(lǐng)域的相關(guān)背景,然后由RandLA-Net一作胡博士介紹其在大規(guī)模點(diǎn)云語義場景分割的工作,接著由3D-BoNet的一作楊博士介紹其在點(diǎn)云實(shí)例分割的工作,最后作者將對點(diǎn)云分割的領(lǐng)域做一個(gè)未來展望。

點(diǎn)云分割一直是點(diǎn)云研究領(lǐng)域一個(gè)很重要的分支,它在SLAM、自動駕駛、機(jī)器人等領(lǐng)域都有著重要的應(yīng)用。點(diǎn)云相比于2D圖像,其有著更豐富的3D空間信息,對物體的表面描述也更接近實(shí)際。然而,點(diǎn)云的無序的特點(diǎn)以及缺乏直觀的拓?fù)浣Y(jié)構(gòu),以及大場景下的爆炸般的點(diǎn)云數(shù)據(jù)量,一直是點(diǎn)云的核心問題。點(diǎn)云的特征表示、數(shù)據(jù)處理、算法結(jié)構(gòu)都是研究的熱門方向。深度學(xué)習(xí)已經(jīng)在2D圖像領(lǐng)域遍地開花,而在點(diǎn)云領(lǐng)域,尤其是點(diǎn)云分割領(lǐng)域,還有著很長的路要走。


01 深度學(xué)習(xí)在點(diǎn)云領(lǐng)域的背景

MASK RCNN在2D圖像分割領(lǐng)域算是一個(gè)非常有突破性的工作,在圖片或者視頻的每一幀上,車、人等物體,都被精確的分割出來。然而這一切都是在2D上做的,2D照片本身是缺乏3D信息的,我們不能知道照片中的人究竟距離我們有多遠(yuǎn),而這便限制了計(jì)算機(jī)去和這個(gè)世界的理解和交互。我們希望有更理想的計(jì)算機(jī)或者說機(jī)器人,能夠更像人一樣去和所見的東西,進(jìn)行理解和交互,比如機(jī)器人的抓取,自動駕駛的感知,實(shí)時(shí)地圖構(gòu)建,以及室內(nèi)機(jī)器人導(dǎo)航,而這些工作,3D信息將成為十分重要的輸入數(shù)據(jù)。

3D信息在計(jì)算機(jī)中一般有以下幾種表示:

1) projected images:這是一種具有3D效果的2D圖像,可以聯(lián)想生活中一些3D繪畫作品,雖然人可以感受到3D的效果,但是本質(zhì)還是2D,計(jì)算機(jī)并不能識別其3D信息;

2) voxel grids:這是一種體素化的表達(dá)方式,體素是3D中的東西,對應(yīng)到2D就是像素。在空間中用一個(gè)個(gè)小方塊(體素)來對物體進(jìn)行填充,便達(dá)到了3D的效果;

3) implicit surfaces:隱式曲面,計(jì)算機(jī)圖形學(xué)中的概念,用數(shù)學(xué)函數(shù)形式來表達(dá)物體的表面形狀;

4) mesh:用一系列的點(diǎn)和面將物體表面圍起來,來表達(dá)3D信息;

5) point clouds:點(diǎn)云,一堆點(diǎn)的集合{(x1,y1,z1), (x2,y2,z2)……},當(dāng)然每個(gè)點(diǎn)除了3個(gè)坐標(biāo)也可能有其它屬性,如RGD之類。

點(diǎn)云的很大的應(yīng)用優(yōu)勢就是,可以實(shí)時(shí)被傳感器測量出來、可以很緊湊的表示一個(gè)大規(guī)模場景的3D信息、可以非常好的表示物體的3D形狀信息,對光照等外界因素并不敏感(因?yàn)槭侵鲃邮降陌l(fā)射反射光信息,2D只是接受其它光源的反射光)。

當(dāng)然,點(diǎn)云也有其不好處理的一面。點(diǎn)云是不規(guī)則的、不均勻的、無序的。雖然有這些缺點(diǎn),但是其巨大的優(yōu)點(diǎn),讓研究者們不斷去想盡辦法,尋找足夠好的算法,去更好的處理點(diǎn)云。

點(diǎn)云處理可以分為傳統(tǒng)方法和深度學(xué)習(xí)的方法,深度學(xué)習(xí)方法中又分為非點(diǎn)云輸入和直接點(diǎn)云輸入。前者將點(diǎn)云先處理成如多角度圖片集或者體素網(wǎng)格等,后者則直接把點(diǎn)云以原始的點(diǎn)集直接輸入處理。作者提到了一篇19年的點(diǎn)云深度學(xué)習(xí)領(lǐng)域的survey: Deep Learning for 3D Point Clouds: A Survey(鏈接:https://arxiv.org/abs/1912.12033),這是一篇非常好的survey,把點(diǎn)云分類、檢測、分割幾個(gè)領(lǐng)域,詳細(xì)介紹了一遍,并且相關(guān)貢獻(xiàn)都以時(shí)間軸進(jìn)行展示,推薦大家閱讀。

作者挑選了兩套處理點(diǎn)云的方法:Voxel-based?和?Point-based。

Voxel就是之前提到的體素網(wǎng)格,用空間中的體素去填充3D物體,類似于我的世界游戲。它的好處是它可以使用成熟的3D卷積進(jìn)行提取特征,而且體素其實(shí)是完備地體現(xiàn)了3D物體的體素與體素之間的空間結(jié)構(gòu)關(guān)系,因此這種方法的效果往往是非常不錯的。然而,基于體素的這種方法,它的計(jì)算量是非常大,尤其是大場景下。因?yàn)辄c(diǎn)云是相對稀疏的,點(diǎn)云只存在于物體反射的表面,而體素是存在整個(gè)空間,數(shù)據(jù)量不是一個(gè)維度的,因此點(diǎn)云的優(yōu)勢依舊存在。

Point-based就是說我們的系統(tǒng)只輸入點(diǎn)集,不會先把點(diǎn)集處理成規(guī)則化的體素網(wǎng)格或者多視角圖片集,因此數(shù)據(jù)量相比于體素網(wǎng)格明顯下降了。但是帶來的問題之前也提到了,不規(guī)則、不均勻、無序。下圖就是PointNet的網(wǎng)絡(luò)框架。

PointNet和PointNet++是Point-based領(lǐng)域開拓性的工作,PointNet直接輸入點(diǎn)集,然后使用共享多層感知機(jī)及最大池化函數(shù)來提取逐點(diǎn)及全局特征并同時(shí)確保點(diǎn)云特征的置換不變性。PointNet++相比于PointNet,增加了層次的局部特征提取,相比于PointNet直接通過max-pooling得到的全局特征有更好的效果。這兩篇文章是直接在點(diǎn)云上進(jìn)行處理的算法的基礎(chǔ),后續(xù)又有許多跟進(jìn)的工作,進(jìn)一步提升了分類識別及分割的效果。


02 RandLA-Net:大場景下的點(diǎn)云語義分割

如果你看過點(diǎn)云相關(guān)的代碼,你會發(fā)現(xiàn)大部分點(diǎn)云方法都是在一個(gè)塊上進(jìn)行操作的。比方說一間房子的點(diǎn)云,20m×20m,里面的點(diǎn)非常多,所以一般會在俯視視角上,切一個(gè)比如1m×1m×H的長方體,在這個(gè)長方體內(nèi)做操作,而且這個(gè)長方體內(nèi)的點(diǎn)云也是非常多的,所以還要再做一個(gè)采樣,比如采樣4096個(gè)點(diǎn)。那么這種切塊操作帶來的問題就顯而易見了,一個(gè)桌子切成兩半,然后在各自的塊內(nèi)做分割,這就缺少了一種整體的特征。因此,大場景下的點(diǎn)云處理很有必要,也很有挑戰(zhàn)。如下圖,一個(gè)桌子在不同塊里面被預(yù)測成不同的類別。

作者先簡單介紹了兩篇前人的工作,PointCNN和KPConv,這兩篇論文并不是做大場景的,但是它們提出的想法是基礎(chǔ)性的,就是自定義卷積,通過自定義的卷積在點(diǎn)云上進(jìn)行操作,可以提取更好的特征。

在大場景領(lǐng)域,作者也簡單提了兩篇工作,SPG和FCPN。SPG為整個(gè)場景的點(diǎn)云構(gòu)建了一個(gè)超點(diǎn)圖,邊信息表征了點(diǎn)云內(nèi)在的關(guān)聯(lián),然后在graph上進(jìn)行操作。FCPN是結(jié)合了point-based和voxel-based,將無規(guī)則的點(diǎn)云,轉(zhuǎn)換為內(nèi)部有序的數(shù)據(jù)結(jié)構(gòu),然后再使用3D卷積進(jìn)行處理。作者提到之前做大場景的工作,處理起來都非常耗時(shí),因此RandLA-Net工作motivation便有了。

那現(xiàn)有的方法,比如pointnet和pointnet++能直接遷移到大場景領(lǐng)域嗎?作者做了相關(guān)實(shí)驗(yàn),首先pointnet是直接用max pooling來取得全局特征,局部特征的提取是缺失的。隨著切塊的塊越來越大,直接max pooling,必然會損失很多信息,因此pointnet的性能會越來越低。那結(jié)合了局部特征的pointnet++呢?通過實(shí)驗(yàn),我們發(fā)現(xiàn)隨著塊的變大,性能也在變好。然而耗時(shí)也越來越嚴(yán)重,因?yàn)閜ointnet++中使用的點(diǎn)集的降采樣算法,是和點(diǎn)數(shù)的二次方成正比的,塊越大,點(diǎn)數(shù)越多,速度越慢。

那么大場景點(diǎn)云語義分割領(lǐng)域的難點(diǎn)在哪?作者提了三點(diǎn),首先是整體的點(diǎn)云相比于一個(gè)小塊的點(diǎn)云的結(jié)構(gòu)要復(fù)雜很多;其次是點(diǎn)數(shù)的增多勢必會帶來GPU顯存的上升;最后是傳感器采集到的點(diǎn)云數(shù)是非固定的,之前都是切塊后再采固定數(shù)量的點(diǎn)。

作者希望能找到一個(gè)符合以下三點(diǎn)的大場景處理方法:1)不用切塊,直接全局輸入;2)計(jì)算復(fù)雜度和顯存占用要低;3)還要保證精度和能夠自適應(yīng)輸入點(diǎn)數(shù)。

對于大場景的點(diǎn)云,如何直接處理呢?一個(gè)核心的步驟就是降采樣。作者認(rèn)為我們需要一個(gè)更有效的降采樣算法,來保留點(diǎn)云的key points。同時(shí)還希望能夠有一種更好的局部特征提取和聚合的算法來學(xué)到局部特征。

首先是降采樣。

作者先對現(xiàn)有的點(diǎn)云降采樣技術(shù)做了總結(jié),大范圍可以分為兩類:Heuristic Sampling(啟發(fā)式的)、Learning-based Sampling(可學(xué)習(xí)的)。

對于啟發(fā)式的降采樣:

  • Farthest Point Sampling(FPS):這是一種在點(diǎn)云領(lǐng)域被廣泛使用的降采樣方法,如PointNet系列。每次采樣都去離采上一個(gè)點(diǎn)最遠(yuǎn)的點(diǎn),迭代進(jìn)行,這樣可以把一些邊邊角角的點(diǎn)都能找到,但是算法計(jì)算復(fù)雜度O(N^2);

  • Inverse Density Importance Sampling (IDIS):先對每個(gè)點(diǎn)的密度進(jìn)行排序,然后密集的部分多采樣,稀疏的部分盡可能都保留。然而這種算法會容易受到噪聲的影響,計(jì)算復(fù)雜度O(N);

  • Random Sampling (RS):隨機(jī)采樣,計(jì)算復(fù)雜度為O(1),與輸入點(diǎn)數(shù)無關(guān),當(dāng)然可能會丟掉一些重要的點(diǎn)


對于可學(xué)習(xí)的降采樣:

  • Generator-based Sampling (GS):算法通過學(xué)習(xí)來生成一個(gè)點(diǎn)云子集來實(shí)現(xiàn)降采樣。這是很新穎的方法,然而這種方法可能比FPS方法的復(fù)雜度更高;

  • Continuous Relaxation based Sampling (CRS):通過學(xué)習(xí)一個(gè)矩陣,類似與實(shí)現(xiàn)一個(gè)全連接網(wǎng)絡(luò),然后和輸入點(diǎn)云相乘得到輸出的低維點(diǎn)云空間。然而當(dāng)輸入點(diǎn)數(shù)非常大的時(shí)候,矩陣需要的顯存也將非常大;

  • Policy Gradient based Sampling (PGS):使用一個(gè)馬爾科夫決策來對每一個(gè)點(diǎn)進(jìn)行決策,決定其是否被保留。當(dāng)輸入點(diǎn)數(shù)很多的時(shí)候,其決策過程非常緩慢,搜索空間非常大,而且很容易不收斂。

通過以上的對比,最后作者認(rèn)為也許隨機(jī)采樣才是最適合大場景的點(diǎn)云分割任務(wù)的。然而,隨機(jī)采樣很容易去丟掉那些重要的點(diǎn),我們該如何解決這個(gè)問題呢?作者提出了Local Feature Aggregation。這個(gè)Local Feature Aggregation主要包括三個(gè)子模塊,分別是LocSE、Attentive Pooling、Dilated Residual Block。

  • LocSE,即Local Spatial Encoding

該模塊希望從輸入點(diǎn)云里得到一個(gè)局部空間特征。步驟是先對于每一個(gè)點(diǎn)進(jìn)行K近鄰,找到它的鄰域點(diǎn)集;然后將中心點(diǎn)的坐標(biāo)、鄰域點(diǎn)的坐標(biāo)、鄰域點(diǎn)和中心點(diǎn)的相對坐標(biāo)和鄰域點(diǎn)和中心點(diǎn)的歐式距離連在一起;再過一個(gè)MLP,和鄰域點(diǎn)的特征在連在一起,得到最終輸出。

  • Attentive pooling

將上面提取到的特征聚合在一起,PointNet系列一般都是直接一個(gè)Max Pooling,實(shí)現(xiàn)特征聚合。作者認(rèn)為Max Pooling有些粗暴,容易丟掉一些重要的信息。作者使用Attention機(jī)制,在SeNet工作中提到過,學(xué)習(xí)一個(gè)MASK,來作為每個(gè)特征的權(quán)值,然后加權(quán),再過一個(gè)MLP,實(shí)現(xiàn)聚合。

  • Dilated Residual Block

隨機(jī)降采樣不可避免會丟掉一些重要的點(diǎn),如何解決這個(gè)問題,作者認(rèn)為如果每個(gè)點(diǎn)的感受野足夠大,其能夠更好地聚合局部的特征,而且當(dāng)這種感受野足夠大時(shí),即便有些點(diǎn)的特征被隨機(jī)的丟掉了,但整個(gè)點(diǎn)云的大部分信息還是能夠被有效地保留下來。因此我們將多個(gè)LocSE和Attentive Pooling模塊連在一起,組成一個(gè)大的Dilated Residual Block。這樣的話,輸入點(diǎn)云通過不斷的聚合,便增大了保留下點(diǎn)的視野。

基于上面的方法,作者設(shè)計(jì)了一個(gè)沙漏網(wǎng)絡(luò)的結(jié)構(gòu),即點(diǎn)數(shù)先降低,再增加。每一層局部特征聚合和隨機(jī)采樣交替進(jìn)行,點(diǎn)數(shù)下來了,每個(gè)點(diǎn)的視野也上去了。

通過實(shí)驗(yàn),作者發(fā)現(xiàn)隨機(jī)采樣方法,無論是從速度還是顯存,都是對比最優(yōu)的,整體方法的效率,在大場景領(lǐng)域?qū)Ρ纫彩撬俣茸羁?。再看精度,在Semantic3D、SemanticKITTI和S3DIS上,作者的方法也取得的非常好的效果。


03 3D-BoNet:點(diǎn)云實(shí)例分割

實(shí)例分割和語義分割的區(qū)別是,語義分割是將每一個(gè)點(diǎn)進(jìn)行分類,如桌子、椅子等。而實(shí)例分割不僅要分出這個(gè)點(diǎn)是什么類,還要分出來不同的物體,即桌子1、桌子2、椅子1、椅子2等。

點(diǎn)云的實(shí)例分割在深度學(xué)習(xí)中的發(fā)展最早的一篇工作是CVPR18的SPGN,目前一般可以分為兩類方法:Proposal-based methods和Proposal-free methods。前者是基于檢測的,即先檢測出點(diǎn)云中每個(gè)物體的Bounding Box,點(diǎn)云中的BBox是一個(gè)長方體,然后在每一個(gè)BBox中進(jìn)行物體和背景的點(diǎn)的分類。后者是不基于檢測,直接通過點(diǎn)的特征進(jìn)行聚類。兩個(gè)方法都有優(yōu)缺點(diǎn)。基于檢測的,往往是兩階段的,也要進(jìn)行NMS,速度較慢。不基于檢測的雖然相比骨架速度較快,但是它的分割出來的物體的整體性比較差,而且需要比較麻煩的后處理,后處理主要是基于特征空間的度量。

因此作者希望能找到一種方法,結(jié)合兩種方法的優(yōu)點(diǎn)。即單階段、不需要檢測的錨點(diǎn)、端到端訓(xùn)練的一種方法——3D-BoNet。

整體思想很簡單,即點(diǎn)云輸入,然后特征提取,直接吐出來一系列的BBox,這些Bbox沒有類別標(biāo)簽,就是一些框框,然后再在這些Bbox里進(jìn)行點(diǎn)的分類。

說到這里是不是有些疑惑了,這不還是基于檢測的嗎?和基于檢測有區(qū)別嗎?我一開始也不能理解。其實(shí)要注意,這里生成的BBox首先是沒有類別標(biāo)簽的,你可以理解成,它這個(gè)過程只是完成了二階段檢測任務(wù)的第一個(gè)階段,即RPN階段,預(yù)測出一堆可能存在物體的屬于BBox,然后再在里面進(jìn)行點(diǎn)的分類。

先說預(yù)測BBox部分,點(diǎn)云輸入,提取一個(gè)特征,然后過幾個(gè)FC即可得到一系列的BBox,而且這種方法是預(yù)設(shè)一個(gè)K值,表示預(yù)測的BBox的個(gè)數(shù)。在實(shí)際場景中,讓K大于輸入點(diǎn)云最大的實(shí)例數(shù)即可。

那得到了K個(gè)BBox之后,如何結(jié)合Groud Truth來進(jìn)行監(jiān)督學(xué)習(xí)呢?所以這設(shè)計(jì)到一個(gè)匹配問題。比如預(yù)測5個(gè)BBox,GT中有3個(gè)BBox,根據(jù)匹配算法,找到預(yù)測中的3個(gè)BBox,然后去回歸這兩個(gè)BBox,抑制另外2和BBox,這樣就解決了監(jiān)督學(xué)習(xí)的問題。

但是如何設(shè)計(jì)匹配算法呢?作者設(shè)計(jì)了3個(gè)標(biāo)準(zhǔn):

1)? 預(yù)測和GT的BBox的頂點(diǎn)的歐氏距離:空間距離越近越好;

2)? 預(yù)測和GT的BBox的IoU:重合度越高越好;

3)? 預(yù)測和GT的BBox交叉熵:預(yù)測的Bbox越大越好。

  • Loss部分

1)??針對邊框預(yù)測坐標(biāo)部分,將上面三個(gè)標(biāo)準(zhǔn)的loss加和;

2)??針對邊框置信度部分,通過一個(gè)交叉熵,鼓勵匹配上的Bbox的置信度,抑制沒有匹配的Bbox;

3)??針對分割部分,直接使用語義分割領(lǐng)域的loss。

然后將上面三個(gè)部分的loss加和就得到最終的loss。

實(shí)驗(yàn)結(jié)果部分,提交的時(shí)候,在Scannet和S3DIS上,本算法是最優(yōu)的。在速度上,相比之前的算法也是相對比較快的。


04 點(diǎn)云分割領(lǐng)域的未來展望

作者提了幾個(gè)有意義的工作,值得各位未來去探索:

  • 大場景的點(diǎn)云語義分割,很有挑戰(zhàn),也很有意義。大場景點(diǎn)云的理解不僅要精確還要高效;

  • 動態(tài)點(diǎn)云,即視頻點(diǎn)云,在3D點(diǎn)云中,又添加了時(shí)間維度的信息,即點(diǎn)云一幀一幀聯(lián)系在一起,如何去理解;

  • 點(diǎn)云更高效的representation;

  • 如何對點(diǎn)云進(jìn)行更好地采樣;

  • 無監(jiān)督的點(diǎn)云學(xué)習(xí),畢竟點(diǎn)云標(biāo)注還是很耗時(shí)耗力的;

  • 點(diǎn)云更高效的鄰域選擇。

點(diǎn)云是一個(gè)非常有前景的研究領(lǐng)域,這個(gè)領(lǐng)域還有很多很多問題沒有解決,希望大家如果感興趣,就付諸努力,為這個(gè)領(lǐng)域添磚加瓦吧!


聲明:本文為公開課分享的原創(chuàng)文章,如需轉(zhuǎn)載,請聯(lián)系留言申請。

更多人工智能領(lǐng)域內(nèi)公開課點(diǎn)擊下方官網(wǎng)鏈接免費(fèi)觀看。

深藍(lán)學(xué)院——專注人工智能的在線教育

官網(wǎng):https://www.shenlanxueyuan.com/

基于三維點(diǎn)云場景的語義及實(shí)例分割:RandLA-Net和3D-BoNet的評論 (共 條)

分享到微博請遵守國家法律
五莲县| 辽宁省| 霍城县| 安达市| 商南县| 准格尔旗| 台南市| 门源| 庆阳市| 满城县| 客服| 大荔县| 那曲县| 安宁市| 沿河| 那曲县| 阿尔山市| 景洪市| 澄迈县| 临城县| 灵山县| 班玛县| 万年县| 汝城县| 涿鹿县| 宜都市| 宁晋县| 景谷| 内江市| 巴彦淖尔市| 禹城市| 西华县| 榕江县| 余江县| 梅河口市| 东乌珠穆沁旗| 探索| 乌恰县| 门源| 平远县| 上思县|