天天看點

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

本部落格基于論文:SGPN: Similarity Group Proposal Network for 3D Point Cloud Instance Segmentation

論文作者:Weiyue Wang,Ronald Yu,Qiangui Huang,Ulrich Neumann

參考資料及公開課視訊連結:

https://www.leiphone.com/news/201806/mEvy6NJ7tyQtk889.html

http://www.mooc.ai/open/course/501

在這裡感謝王薇月博士的分享以及劉鵬的整理

本部落客要分享SGPN内容

大家好,我是來自南加州大學的在讀phd王薇月,我的主要研究方向是計算機視覺(主要側重于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 資訊也是現在的一個非常關注、非常火的話題。采集點雲的主要方式就是雷射雷達、深度攝像頭(深度攝像頭采集來的 深度圖可以通過照相機的參數計算出 3D 的點雲)。我們今天的講課專注點雲的分割。

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結
(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

所謂點雲的分割,今天我想介紹的有兩層,一層是語義分割和執行個體分割,所謂語義分割就是給每個點指派一個标簽(label),比如說這個點是桌子還是椅子。執行個體分割就是在指派語義分割的同時,把每個不同的物體給分割出來,比如一個房間裡有很多椅子,每個點标label 成椅子1、椅子2。執行個體分割與物體檢測,即對象檢測(目标檢測)是緊密相連的,對象檢測:給一個場景,把你想要的物體檢測出來并給一個bounding box(邊界框)。執行個體分割是比物體檢測要稍微難一點的問題,因為它需要給每個點都要标出來。今天主要介紹在最新的 CVPR 上的工作,對點雲進行執行個體分割的網絡:similarity group proposal network(SGPN)。

介紹 SGPN:執行個體分割的網絡

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

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

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

我們都知道 2D CNN 在物體檢測上取得了比較好的成果,就是R-CNN一系列的工作,包括fast R-CNN,都是從 R-CNN 開始的,R-CNN是使用選擇性搜尋從圖檔中提取一些用Region Proposal,然後把每一個proposal fit到CNN的網絡裡面,然後再進行分類,它用這種方法來進行物體檢測。根據 R-CNN 的工作,faster R-CNN替代了選擇性搜尋,通過 Region Proposal network來回歸每個Region Proposal的相對anchor的offset來擷取proposal,然後這整個是一個end-to-end的網絡,出來的就是一些 像素的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的概念,然後對點雲進行分割,随後我會對此進行詳細的介紹。

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

還有一個相關的工作是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。

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

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

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

注:公式講解可回放視訊至第7分鐘檢視

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

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

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

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

首先是 semantic prediction(語義預測),這裡的semantic prediction 跟 pointnet 的 semantic segmentation 是一樣的,對于每個點生成的是一個類别的可能性,就是對于每個 類别它的機率是多大,比如說我們有 Np 個點,就生成了 Np*NC 的矩陣,NC 就是有多少個對象類,下面的這個結果就是 semantic prediction 的結果,比如下圖(右)黃色區域代表桌子,藍色區域代表椅子。

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

下面來介紹 similarity matrix(相似矩陣),similarity matrix 就是對于每一個點,我們想生成 N 個點相對于它的位置,也就是說對于 similarity matrix 是通過 pointnet 生成的那個 特征,我們管它叫 Fsim,通過它進行計算它的 pointwise 的距離,對于這個 similarity matrix,假設它叫做一個ij的元素,Sij 就是point i和point j在特征空間的距離,如果它距離越遠,說明它們兩個就不在同一個 group,如果距離越近,就說明在同一個群體,也就是說如果兩個點都是椅子1的話,它們兩個在特征裡的距離比較近。如果椅子1和椅子2在特征空間裡面距離比較遠,或者說它們是椅子和桌子的話,它們兩個在 特征空間裡面的距離也要非常遠。然後,我們有這樣一個Np(點的個數),有這樣一個Np * Np的similarity matrix,就是說每一行都可以是一個group proposal,我們要設一個下限,如果小于這個下限,對于每一個小于這個下限,表示這些點在一個group裡面,也就是說我們現在有Np個group proposal,現在的問題就是我們怎麼去 train 這個 matrix(矩陣;模型),它的Ground Truth是什麼?

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

注:該公式詳細解讀可回放視訊至第 10 分鐘檢視

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

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

注:該公式詳細解讀可回放視訊至第12分鐘檢視

大家可以來看一下這些可視化的結果,這些代表的是相似點,越黑的表示特征空間它們的距離越近,顔色越淺,就表示它們特征空間距離越遠。

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

注:此處詳細講解可回放視訊至第 14 分鐘時檢視

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

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

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

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

對于similarity matrix的每一個行,我們是一個 group proposal,對于這一個 group proposal,我們有一個 ground truth,然後我們把這個通過 similarity matrix 預測出來的的預測結果和ground truth進行比較,我們計算IoU,IoU就是inter section over union,也就是說,如果IoU越大的話,表示這一行,也就是這個similarity propose出來的結果更可信。如果IoU更小的話,是更不可信的,這樣我們就回歸出來 confident map,然後在這裡,我們也可視化這些confidence,顔色越深表示confidence越高,顔色越淺表示 confidence越低,我們可以看到着一些連接配接部分,連接配接處的confidence比較低,通過這些方式去排除掉一些噪聲,相當于在similarity matrix的預測削減掉一些similarity matrix confidence比較低的group proposal。

之後,像R-CNN、faster R-CNN它們有一些後置處理,它們會多預測出來一些 region proposal,然後就會用臨界值的方法去證明這些結果,我們也同樣用一個比較簡單的貪婪法去證明這個結果,效果也是非常不錯的,對于網絡預測出來的一些group proposal,對于每一個,先初始化一個大的群集,如果這個group proposal是沒有出現在這個群集裡面,我們就把它放進去,如果出現了的話,我們就進行下一個,這樣就做了一個後置處理,就得到了最終的結果,下面是一些實驗結果。

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

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

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

可以看到,這個是stanford 3D indoor semantic dataset上面,然後我們取得的結果比 seg-cluster好很多。我們有了instance segmentation(執行個體分割)之後,就很容易得到 3D 的object detection(目标檢測)結果,因為我們有了每個執行個體,每個點的位置,我們就可以計算邊界框,然後去跟Ground Truth的邊界框比較,pointnet也給了一個結構去做instance segmentation,可以看到我們比它們也是好很多。

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

注:此放大部分的詳細講解可回放視訊至第 19 分鐘檢視,不同的顔色代表不同的 group,即不同的 instance。

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

seg-cluster有不同的臨界值(下限),臨界值變大的時候,也就是說兩個相同标簽的物體更容易連接配接在一起,如果臨界值變小的時候就更不容易連接配接在一起,臨界值變小的時候,結果就如上圖(右部)所示,将它分成了兩個部分,但是在SGPN中就會避免這個問題,通過 similarity matrix(相似矩陣)的方法,建立了上面和下面的聯系。

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

除此之外,還在NYU dataset上面做了實驗,因為NYU有很多2D的圖像資料,包括depth資訊,然後我們通過2D的CNN去改善SGPN的結果,因為通過相機參數,我們可以把深度圖像換成點雲,也就是說每一個點和每一個圖像的坐标是有聯系的,于是我們通過幾個 CNN layer,然後聯系相同的位置的特征,把 CNN 裡的功能連接配接到 pointnet 的相同point 的特征裡面,然後再進行幾個pointnet的 layer,再生成 SGPN 的3個子子產品去進行point 的執行個體分割,在NYU的dataset上面。

(SGPN)南加州大學 phd 王薇月:深度學習在點雲分割中的應用 | 公開課視訊内容分享總結

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

然後我們看一些更多的可視化的結果,這裡有在stanford 3D indoor semanticdataset上面的,我們還在scannet上面做了很多實驗,大家感興趣的話,可以去閱讀我們的文章,有更多的實驗和應用研究。

再次感謝王薇月博士的分享以及劉鵬的整理

繼續閱讀