當前位置:
首頁 > 新聞 > 南加州大學 phd 王薇月:深度學習在點雲分割中的應用

南加州大學 phd 王薇月:深度學習在點雲分割中的應用

雷鋒網 AI 科技評論按:隨著激光雷達,RGBD 相機等 3D 感測器在機器人,無人駕駛領域的廣泛應用,深度學習在三維點雲數據的研究在近兩年取得了廣泛關注。點雲分割、識別、檢測成為學術界、工業界的熱門話題之一。

近期,在 GAIR 大講堂上,南加州大學計算機系在讀博士王薇月分享了其關於點雲分割的最新工作。

分享題目:深度學習在點雲分割中的應用

分享提綱

深度學習在點雲上的應用。

2D 圖像的實例分割與物體檢測。

SGPN [CVPR 2018]:點雲的實例分割與物體檢測。(SGPN: Similarity Group Proposal Network for 3D Point Cloud Instance Segmentation)

RSNet [CVPR 2018]:點雲的語義分割。(Recurrent Slice Networks for 3D Segmentation on Point Clouds)

以下為雷鋒網 AI 科技評論整理的分享內容:

大家好,我是來自南加州大學的在讀 phd 王薇月,我的主要研究方向是 computer vision(主要側重於 3D 的 vision),今天我們介紹的是深度學習在點雲分割中的應用。我們知道三維物體和場景有很多種的表達方式,比如 3D 的 mesh,還有 Volumetric data,distance field 等等。點雲是比較直接,而且很簡單的一種表示方式。首先介紹一下什麼是點雲(Pinot Cloud),點雲是很多三維的點的坐標的集合,這整個集合可以反映場景或者物體的幾何信息,在計算機裡面,它就是一個 N*3 維的一個矩陣,N 代表的是點的個數,三維就是 x、y、z 的坐標(當然也可以是 N*6,即 x、y、z、r、g、b),隨著激光、雷達和深度攝像頭等硬體設備的發展,我們就能更好地捕捉 3D 的場景,處理 3D 信息也是現在的一個非常關注、非常火的話題。採集點雲的主要方式就是激光雷達、深度攝像頭(深度攝像頭採集來的 depth map 可以通過照相機的參數計算出 3D 的點雲)。我們今天的講課專註點雲的分割。

所謂點雲的分割,今天我想介紹的有兩層,一層是語義分割和實例分割,所謂語義分割就是給每個點 assign 一個 label,比如說這個點是桌子還是椅子。實例分割就是在 assign 語義分割的同時,把每個不同的物體給分割出來,比如一個房間里有很多椅子,每個點標 label 成椅子 1、椅子 2。實例分割與物體檢測,即 object detection 是緊密相連的,object detection:給一個場景,把你想要的物體檢測出來並給一個 bounding box。實例分割是比物體檢測要稍微難一點的問題,因為它需要給每個點都要標出來。今天主要介紹在最新的 CVPR 上的兩個工作,一個是對點雲進行實例分割的網路:similarity group proposal network,還有一個是對點雲進行語義分割的網路,recurrent slice network。

首先介紹 SGPN:實例分割的網路

在此之前,我想先回顧一下 2D 是怎麼做實例分割和物體檢測的。

我們都知道 2D CNN 在物體檢測上取得了比較好的成果,就是 R-CNN 一系列的工作,包括 fast R-CNN,都是從 R-CNN 開始的,R-CNN 是使用 selective search 從圖片中提取一些用 Region Proposal,然後把每一個 proposal fit 到 CNN 的網路裡面,然後再進行分類,它用這種方法來進行物體檢測。根據 R-CNN 的工作,faster R-CNN 替代了 selective search,通過 Region Proposal network 來 regress 每個 Region Proposal 的相對 anchor 的 offset 來獲取 proposal,然後這整個是一個 end-to-end 的網路,出來的就是一些 pixel 的 bounding box,還有每個 bounding box 代表的每個物體的概率。根據 faster R-CNN 的 ICCV 的 best paper 是 Mask R-CNN,它是通過做圖像 level 的實例分割來實現,它們沿用了 faster R-CNN 的 Region Proposal network,然後在生成了 bounding box 的基礎上又生成了 object mask,我們也使用這種 Region Proposal 的概念,然後對點雲進行分割,隨後我會對此進行詳細的介紹。

還有一個相關的工作是 3D 的 deep learning,從 2D 的 CNN 到 3D 的 CNN,最直接的方法就是 Volumetric CNN,當然這個是因為受到 GPU 內存的限制,沒有辦法做到很高的精度。去年 CVPR 上斯坦福的研究者們提出了 PointNet,是針對 point cloud 的網路,他們把 N*3 的點雲 feed 到網路裡面,然後在最後一層用 max pooling 提取 global feature,然後把這個 global feature concat 到每一個點雲,然後進行分割,我們的網路建立在 pointnet 和它的後續工作 pointnet++的基礎上提取出來 feature。

我們還有一個相關的工作是,deep metric learning,中文:度量學習,在 deep learning 裡面比較典型的 metric learning 就是 siamese network,比如說有兩張圖片,我們想讓它做分類的話,同一類在 feature space 裡面很相近,不同類就是在 feature space 裡面相差比較遠,它們的兩張圖片 feed 到的 CNN,是 share 的 weight,project 到同一個 feature space 上,訓練的時候用的是 Hinge Loss(即圖右公式)。

註:公式講解可回放視頻至第 7 分鐘查看

之後會講我們的工作跟 simaese network 的關係,先簡單介紹一下背景,之前說過,我們的任務是想生成一個 instance label 和一個 semantic segmentation label,也就是說對於每個點雲有兩個 label,一個 label 代表著這個點雲是屬於椅子 1 還是椅子 2 的,另一個 label 代表它是椅子還是桌子,還是電視等等,背景知識已經介紹完畢了。我們是建立在 pointnet 和 pointnet++基礎上進行 feature 提取,然後借用 R-CNN 等工作的 Region Proposal 的思想,提出了一個叫 similarity group proposal 的 network,我們現在把它簡化為 SGPN。

SGPN 的大體思路是這樣的,我們首先是用 pointnet 提取 feature,也可用 pointnet++,提起完 feature 之後,之後有 3 部分(下圖中間部分),similarity matrix,confidence map,semantic prediction,我下面會對這三個部分進行一一介紹。

首先是 semantic prediction,semantic prediction 跟 pointnet 的 semantic segmentation 是一樣的,對於每個點生成的是一個 classic 的 probability,就是對於每個 class 它的概率是多大,比如說我們有 Np 個點,就生成了 Np*NC 的 matrix,NC 就是有多少個 object class,下面的這個結果就是 semantic prediction 的結果,比如下圖(右)黃色區域代表桌子,藍色區域代表椅子。

下面來介紹 similarity matrix,similarity matrix 就是對於每一個點,我們想生成 N 個點相對於它的位置,也就是說對於 similarity matrix 是通過 pointnet 生成的那個 feature,我們管它叫 Fsim,通過它進行計算它的 pointwise 的 distance,對於這個 similarity matrix,假設它叫做一個 ij 的元素,Sij 就是 point i 和 point j 在 feature space 的距離,如果它距離越遠,說明它們兩個就不在同一個 group,如果距離越近,就說明在同一個 group,也就是說如果兩個點都是椅子 1 的話,它們

註:該公式詳細解讀可回放視頻至第 10 分鐘查看

兩個在 feature 里的距離比較近。如果椅子 1 和椅子 2 在 feature space 裡面距離比較遠,或者說它們是椅子和桌子的話,它們兩個在 feature space 裡面的距離也要非常遠。然後,我們有這樣一個 Np(點的個數),有這樣一個 Np*Np 的 similarity matrix,就是說每一行都可以是一個 group proposal,我們要設一個 threshold,如果小於這個 threshold,對於每一個小於這個 threshold,表示這些點在一個 group 裡面,也就是說我們現在有 Np 個 group proposal,現在的問題就是我們怎麼去 train 這個 matrix,它的 Ground Truth 是什麼?

我們剛才講過了 siamese network,就是說兩個圖片如果是一類的話,就讓它們在 feature specs 裡面的距離很小。如果它們不是一類的話,就讓它們距離比較大,所以我們通過採用這種方式,借用這個思想,來訓練我們的 similarity matrix,如果兩個點屬於不同類的話,我們就讓它們的距離很大。如果它們是相同類的話,我們就讓它們在 feature specs 裡面的距離比較小,我們同樣得使用的是 Hingle loss,兩個點都是椅子 1 的話,我們就 minimize 這個 term(下圖右下公式),在這裡介紹一個 double hinge loss,也就是說兩個點,一個椅子 1、一個椅子 2 的話,我們讓它們的 margin 比 K1 大。如果兩個點是一個桌子、一個椅子的話,我們就讓它們的距離比 K2 大,在訓練的時候 K1 要比 K2 小一點,在實驗中我們發現用這種 double hinge loss 的方式,會讓結果更好一點,比 K1=K2 的時候結果好一點,這樣我們就訓練出了 similarity matrix。

註:該公式詳細解讀可回放視頻至第 12 分鐘查看

大家可以來看一下這些 visualize 的結果,這些代表的是 similarity,越黑的表示 feature specs 它們的距離越近,顏色越淺,就表示它們 feature specs 距離越遠。

註:此處詳細講解可回放視頻至第 14 分鐘時查看

介紹完了 similarity matrix,我們再來介紹另一個部分:confidence map。

因為 similarity matrix 是個 Np*Np 的矩陣,也就是說我們有 Np 個 group proposal,這樣就有很多冗餘,我們想用這個 confidence map 削減一些 group proposal,confidence map 的定義,也就是說它的 ground truth 是如下定義的。

對於 similarity matrix 的每一個行,我們是一個 group proposal,對於這一個 group proposal,我們有一個 ground truth,然後我們把這個通過 similarity matrix 預測出來的 prediction 的結果和 ground truth 進行比較,我們計算 IoU,IoU 就是 inter section over union,也就是說,如果 IoU 越大的話,表示這一行,也就是這個 similarity propose 出來的結果更可信。如果 IoU 更小的話,是更不可信的,這樣我們就 regress 出來 confident map,然後在這裡,我們也 visualize 這些 confidence,顏色越深表示 confidence 越高,顏色越淺表示 confidence 越低,我們可以看到著一些 connection part,連接處的 confidence 比較低,通過這些方式去排除掉一些雜訊,相當於在 similarity matrix 的預測削減掉一些 similarity matrix confidence 比較低的 group proposal。

之後,像 R-CNN、faster R-CNN 它們有一些 post processing,它們會多預測出來一些 region proposal,然後就會用 threshold 的方法去 prove 這些結果,我們也同樣用一個比較簡單的貪婪法去 prove 這個結果,效果也是非常不錯的,對於網路預測出來的一些 group proposal,對於每一個,先 initialize 一個大的 group set,如果這個 group proposal 是沒有出現在這個 group set 裡面,我們就把它放進去,如果出現了的話,我們就進行下一個,這樣就做了一個 post processing,就得到了最終的結果,下面是一些實驗結果。

在介紹實驗結果之前,我們先簡單介紹一種非常簡單的均類方法,就是在所有的點裡面選一些種子,然後進行 BFS 去 search 到最近的零點,然後去尋找跟它最近的相同的 label,如果它們有一個 threshold,如果大於這個 threshold 就停止,如果小於這個 threshold,就繼續尋找。相同的 label group 起來,就形成了一個新的 instance,就是我們的一個 group,然後通過跟這個方法進行比較,因為在 literature 上面進行點雲實例分割的文章比較少,我們就用這種比較簡單的方法進行比較。

可以看到,這個是 stanford 3D indoor semantic dataset 上面,然後我們取得的結果比 seg-cluster 好很多。我們有了 instance segmentation 之後,就很容易得到 3D 的 object detection 結果,因為我們有了每個 instance,每個點的位置,我們就可以計算 bounding box,然後去跟 Ground Truth 的 bounding box 比較,pointnet 也給了一個 framework 去做 instance segmentation,可以看到我們比它們也是好很多。

註:此放大部分的詳細講解可回放視頻至第 19 分鐘查看,不同的顏色代表不同的 group,即不同的 instance。

seg-cluster 有不同的 threshold,hreshold 變大的時候,也就是說兩個相同 label 的物體更容易連接在一起,如果 threshold 變小的時候就更不容易連接在一起,threshold 變小的時候,結果就如上圖(右部)所示,將它分成了兩個部分,但是在 SGPN 中就會避免這個問題,通過 similarity matrix 的方法,建立了上面和下面的聯繫。

除此之外,還在 NYU dataset 上面做了實驗,因為 NYU 有很多 2D 的圖像數據,包括 depth 信息,然後我們通過 2D 的 CNN 去 refine SGPN 的結果,因為通過相機參數,我們可以把深度圖像換成點雲,也就是說每一個點和每一個圖像的坐標是有聯繫的,於是我們通過幾個 CNN layer,然後聯繫相同的位置的 feature,把 CNN 里的 feature concatenate 到 pointnet 的相同 point 的 feature 裡面,然後再進行幾個 pointnet 的 layer,再生成 SGPN 的 3 個 sub module 去進行 point 的 instance segmentation,在 NYU 的 dataset 上面。

這是我們的結果(圖上),SGPN 比 seg-cluster 好很多,我們還進行了 3D detection 跟 literature 的比較,因為 literature 有 Ground Truth 的 bounding box,像床、桌子一些大型的物體,它們的 bounding box 是 loose 的,也就是說,掃描的時候只是掃描一部分點,像有些?clusion,像床、桌子這些點其實都很小,存在的我們能看到的點,在點雲中其實很少的,所以計算 bounding box,不是很準確,就是一個 tide 的 bounding box,沒有辦法跟大的 bounding box 去比,所以我們在這裡(圖右下)只比較了一些小的物體,比 literature 都好一些。

然後我們看一些更多的 visualize 的 result,這裡有在 stanford 3D indoor semanticdataset 上面的,我們還在 scannet 上面做了很多實驗,大家感興趣的話,可以去閱讀我們的 paper,有更多的實驗和 application study。

這個工作主要是針對,使用深度學習的方法去做點雲的實例分割的問題,據我們所知,應該是第一個用深度學習去做這件事情的。

下面來介紹我們組的另一個工作,第一作者是我的朋友黃乾桂,我們的這個工作是做點雲的 semantic segmentation,剛才我已經介紹了 semantic segmentation,就是給一個 input 的點雲,給每一個桌子、椅子的 label。

在此之前,我們先簡單介紹一下相關的工作。剛剛我已經介紹了 pointnet,我們也知道 pointnet 就是經過幾層 mlp 生成了一個大的矩陣 feature,然而對於使用 max pooling 提取 global feature,把每個 global feature concatenate 到 feature 上去,然後進行 semantic segmentation。我們可以看到所有的點只有一個 global feature,點與點之間沒有什麼聯繫,這樣就喪失了很多 local 的信息,很近的點,像 CNN 是可以一層一層傳遞的,這個就沒有辦法做到這一點。

斯坦福他們組同樣的人,去年在 NIPS 上提出了 pointnet++,他們是用了 farthest point sample 和 query KNN 來提取 local 的信息,也就是說對每個點,去找它的 neighborhood,然後去 sample 一些點,這樣以此類推,這樣去進行 local 信息的獲取。但是我們也知道像 KNN 的話,它的複雜度是 O(KN) 的,而且它需要每個點進行 query,複雜度比較高,我們就提出了如下的方法去更好地去做 local dependence 的事情。

因為點雲有 3D 的 structure,我們根據這種 structure 提出了 recurrent slice network,比如點雲是有 x,y,z 三個方向的信息,我們對 x,y,z 三個方向進行 slice 的切割,然後把點雲分成一片、一片的。然後對每一片用 pointnet 提取 feature,然後通過 RNN 去 update 相鄰片的信息。在 pointnet 提取完特徵之後,我們通過 RNN 去 update,然後再通過... 這裡我們介紹三個 module 來介紹 local dependence 的信息的建立,下面我一一介紹。

進來一個點雲,沿 z 方向進行切割,然後分成好幾片(slice),然後把每一個 slice 單獨放進每一個 pointnet 裡面去 proper?信息和 feature,同樣的方法去 max pool 整個 global feature,每一片有一個小的 global feature。x,y,z 三個方向都做同樣的操作(如上圖 slice 所示),通過 x 方向 slice,通過 y 方向 slice,同樣的方式做三遍。

提取完這樣的 feature 之後,我們使用 bidirectional RNN 去 update 這個 feature,因為相鄰的 slice 有 local dependence,所以這樣 update feature 的時候,可以考慮到 local 的信息,而且因為是 bidirectional 的,所以不同層的信息也可以相互傳遞,我們通過 bidirectional 傳遞來的、update 過的 feature 是呈現在這個地方(上圖右),在文章中,我們也對不同的 RNN 的 module 做了 application study,比如 GRU、STM 等等,大家感興趣可以閱讀我們的?part。

通過 RNN update 過信息之後,我們通過?,也就是像 pointnet 一樣的方法去把每一層對應的信息、每一 slice 對應的信息提取 propogate 到每一個點上。這樣子每一個點就既有了 local 的信息,也有了 global 的信息,然後我們再通過 pointnet 的幾個 layer 進行 output 做 segmentation。

同樣是在 stanford indoor 3D data 上面做的,不同的顏色就表示不同的類別。圖(中)是 predict 的結果,圖(右)是 ground truth,我們得到的結果還是非常不錯的。

這個是在 stanford indoor 3D 的結果,3D cnn 是在這個資料庫做這個工作的 state-of-the-art,seg-cluster 是用 3D volumatric 的方法去做的,我們的結果可以看出來比 pointnet 好很多,都比 3D CNN 也好很多。

我們在 scanNet 上面也進行了很多的實驗,可以看出來我們比 pointnet++和 pointnet 都要好一些。

剛才我們也說了,因為 pointnet 是有 KNN 或者是 ball query 的方法,會讓它們的速度下降很多,我們在這裡進行速度和 memory 的比較,像我們的 rsnet 是比 pointnet++速度要快很多。這裡(上圖)顯示的是,以 pointnet 為一個 unit,先與 pointnet 比較,再與其他方法進行速度上的比較。這兩篇工作的代碼都已經 release 了,大家可以參看我們的 github。

3D learning 也獲得了大家越來越多的關注,近期的一些比較有趣的 work 在 3D 的形式上,(上圖)第一個和第三個都是在 mesh 上操作的,第一個是把 mesh 當成一個球,然後通過學習的方法把 mesh 捏成它們想要的 single RGB 的樣子,第三個就是對不同的 catergory 學一個 mesh,它的 mesh 也是要 manifold,然後生成一個 mesh 以及它的一個 texture 的信息,然後把 texture map 到 mesh 上,使得它跟它的 image 更相近。第二個工作是通過 sample 在 surface 上的點來生成 mesh,這個也是進行根據 2D image 來進行 3D reconstruction 的,大家感興趣可以都去再看一下。

Q&A

Q:為什麼 curtain 很差?

A:curtain 主要是數據比較少而且很多都連著牆或窗,所以不太容易被識別。

Q:切割的精度怎麼確定?

A:切割精度不同會對結果造成不同影響,我們在實驗部分的 ablation study 裡面對不同精度進行了實驗。

Q:第二個 work x、y、z 都是 align 好的嗎?

A:嗯對 坐標是先 align 好的。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

周產 5000 台目標終於達成!Model 3 這次真要起飛了嗎?
國家千人計劃教授任奎:數據安全的現狀與趨勢

TAG:雷鋒網 |