3D Vision公開課精華 | 深度三維感知:數據、學習架構與應用

本文總結於弋力博士2021年5月19日在深藍學院關於深度三維感知的公開課——《深度三維感知:數據、學習架構與應用》。

本次公開課圍繞三維數據集構建,三維深度學習骨幹網絡的設計,三維感知的應用以及未來的研究方向來對深度三維感知展開介紹與討論 。

我們先從深度三維感知的簡單介紹開始。

我們生活在三維的世界中,而讓機器理解三維的場景,進而和環境進行交互也是一個非常重要的任務。比如在AR,VR應用中,通過對三維場景的理解可以創建虛擬的內容,增強人們對於3d環境的體驗。又比如在自動駕駛中,通過讓車輛識別路標,其他車輛和行人等,可以幫助汽車分析路況,從而進行預判和安全行駛。

因為三維理解已經超過了傳統三維傳感和捕捉的範疇,我們需要強大的一個感知系統去消化和理解這些信號,比如讓一個機械人離開一個房間,我們需要讓它通過傳感數據分析三維場景,然後能找到房間的門把手,扭動它,最後離開房間。

01.三維數據建構

如何分析三維的傳感數據,可以首先借鑒在二維圖像領域的成功經驗。

在過去十年,深度學習一直是整個AI領域發展最強大的助力,尤其是在二維圖像領域,完成了很多之前被認為很困難的任務。而這些成功首先是基於二維圖像充分的數據集。不過針對三維數據,相比之下,相關的數據集和測試平台的發展卻遠遠落後 。

微信圖片_20210611155050.png

圖1 深度學習在二維圖像理解領域取得眾多成果

在二維圖像領域,ImageNet通過收集大量互聯網的圖像並進行仔細的分類,使其成為二維圖像測試一個非常理想的平台。基於這樣的思路,考慮到互聯網同樣也存在大量的三維模型,因此,在ShapeNet中,我們也添加了4000多個類別物體的三百多萬的模型,當時這樣的數據規模遠遠大於此前存在的三維數據集。

在ShapeNet中,我們添加了三維物體的很多獨特屬性,在構建ShapeNet時,我們對於物體形狀進行了仔細的分類,並對齊了形狀,讓三維物體有類別和位姿的信息。然後,我們研究了子物體級別的屬性,添加了每個物體所包括的語義部件。

接下來,在PartNet的工作中,我們進一步細化了語義標籤,使其到達了一個可以進行交互操作的水平,甚至可以支持對於物體運動性和功能性的研究,此外,PartNet將這些語義信息更加層次化的組織起來,從而支持對於它們更加結構化的感知。

微信圖片_20210611155159.png

圖2 ShapeNet豐富的物體模型

ShapeNet推出後,為三維骨幹網絡的設計提供了首個測試平台,並為三維深度學習算法提供基本的測試,其次,ShapeNet包括了非常豐富的類別屬性,並且在不斷增加,從而支持各種各樣下游的應用程序和新的研究趨勢。

此外,使用ShapeNet可以生成大量自動標籤的合成數據,用以支持一些列標註昂貴的三維感知任務如三維物體的位姿估計等。這些特性讓ShapeNet成為很多新興領域的重要數據源。在2020年我們利用ShapeNet物體的豐富屬性構建了Sapien這一針對機械人的模擬仿真環境,有了Sapien,我們就可以在安全,廉價和高效的仿真環境去訓練機械人的感知算法,而不是在低效昂貴和危險的現實世界去訓練。我們也希望Sapein作為機械人技術和三維感知的交集,能夠幫助領域發展出更多有意思的研究方向。

微信圖片_20210611155256.png

圖3 Sapien仿真環境

除了剛才介紹的三維數據集外,這些年也陸續出現了其他不同特點的三維數據集。

在2016年的工作A large dataset of objects scan中,提供的數據集是由來自真實世界的3D掃描的物體組成,不過並沒有語義的標註,也沒有按類別的信息進行整合,這些也限制了這個數據集的應用。

另外,在Thingi10K數據集中,包括了大量支持3D打印的模型。而在ABC這一數據集中,包含了大量的工業零件CAD模型數據集,為CAD的仿真模擬提供了很好的信息源,並且作者希望通過CAD模型更好的進行幾何深度學習的研究。

此外,場景級別的3D數據集也得到了更多的關注。比如SceneNet,誕生於2016年,是一個合成場景的數據集。這個數據集可以幫助人們更好的思考,如何利用合成數據來理解真實的室內環境。Scannet是一個真實場景掃描的數據集,其中包括豐富的語義和實例標註信息。

除此之外,隨着無人車的興起,在駕駛場景中通過3D激光雷達掃描得到的數據集也層出不窮,包括Waymo,Kitti和nuScenes等。這些室外數據集也幫助我們思考如何更好的理解激光雷達的數據。

02.三維深度學習骨幹網絡

一旦有效地組織了三維數據集,我們就需要思考如何利用數據去更好的訓練三維數據的骨幹網絡。三維深度學習之所以有趣而且特別,是因為三維數據有豐富的表述形式,比如早期的街景通常通過多視圖幾何來表示;而醫療三維圖像包括MRI通常利用體素化來呈現;三維點雲則是自動駕駛場景下激光雷達可以採集得到的數據形式;針對室內設計,多邊形網格時最受歡迎的數據表述形式。

微信圖片_20210611155349.png

圖4 三維數據的多種表述方式

針對各種三維信息的表述形式,多視角圖像,體素圖和深度圖通常被認為是常規的數據表現形式。它們類似於在二維網格存儲的數據圖像,因此也更容易被卷積神經網絡訓練,從而減輕了我們設計和調整三維骨幹網絡的負擔。

但是,它們也有相應的問題,多視角圖像和深度圖通常難以完整地刻畫一個物體的三維幾何形態,比如深度圖背面的部分視角是光線照射不到的。而對於體素化的表徵,需要對空間進行均勻的切分,它的存儲形式更為複雜,會需要更多的存儲開銷。

不規則和弱結構化的表達形式包括點雲和多邊形網格,這兩種表示形式可以比較緊湊完整的表達三維信息,但是,它們弱結構化的表述方式並不能直接的支持卷積神經網絡的使用。如何針對他們設計高效的三維骨幹網絡也因此成為了一個具有挑戰性的課題。

在我們選擇三維表述方式的時候,需要根據應用需求,選擇不同的形式。比如,在資源有限的移動設備中部署學習系統,我們需要選擇更加緊湊的表述形式,緻密的體素化表示就不是最佳的選擇。如果要通過參考圖像重建三維幾何形狀,那麼接近二維圖像的表述形式可能會更加靈活,比如深度圖或者多視圖。

如果需要設計或者編輯三維形狀,我們會更加關心對於幾何或者拓撲轉換的支持。對於簡單的幾何變換,比如噪聲過濾,形狀修復,點雲和多邊形網格是更好的選擇,所有的變換都可以通過改變點的坐標來實現。如果想做形狀簡化和細節平滑,那麼多邊形網格就更為合適,因為它可以更好的跟蹤三維數據的拓撲信息。

如果是為了支持渲染等圖形學應用,常採用的表現形式是多邊形網格和體素。總之,不同表現形式在不同的應用場景中會體現出各自的優勢,所以設計不同的三維深度學習的架構來支持不同格式的信息也至關重要。對於規則的數據表述形式,我們可以更多的參考二維數據的卷積神經網絡架構,而如何處理點雲等不規則化的數據,方法則沒有那麼的顯而易見。

接下來,我們來介紹一下針對不規則的幾何數據形式(點雲和多邊形網格),該如何設計深度學習的網絡。

2.1 PointNet

首先我們介紹PointNet,這個是第一個能夠在三維點雲上進行深度學習的網絡架構。考慮一個點雲處理網絡,它輸入的N個點每一個都是通過D維(通常是3)的坐標表示,因為點雲的數據排列是無序的,因此我們也希望點的序列的改變不會影響到深度網絡所輸出的物體屬性,即所謂的置換不變性。那麼,哪些函數的處理可以確保這種不變性呢?我們可以想到的是求和,求最大值。但是,它們對於特徵的表述性都太弱,為了增強表述性,我們可以通過增加多層感知器來實現,這其實就是PointNet的基本原理。PointNet是一個簡單而又強大的網絡,因為它的簡便,如今在自動駕駛和機械人領域得到了廣泛應用。

當然,PointNet並不完美,它提取的特徵太過極端,只包含了每個點的特徵以及全局的特徵,除此之外沒有更多的內容,也缺乏層次化的特徵提取功能。然而局部的細節特徵對於一系列感知任務其實是非常重要的。此外,PointNet對於數據的平移和旋轉等操作也是非常敏感的。這也使得PointNet無法用於全新的大型場景理解。

在PointNet++中,我們彌補了PointNet無法提取局部幾何特徵和抽取上下文信息的缺陷。PointNet++的基本思想是在局部區域遞歸地使用PointNet,它類似於CNN,遵從分層設計的原則,並且保留了局部的平移不變性。而且,它還繼承了PointNet的優勢,不會因為輸入點雲次序的變化而改變點雲特徵。

在PointNet++中,我們隨機選擇種子點,並裁減一個圓形區域,這樣的局部區域有單個點的周圍信息,並且相對於全局信息,幾何形狀更為簡單。為了抽取局部特徵,我們可以直接使用PointNet,在多次採樣種子點,並覆蓋全局大部分區域後,我們就可以結束這個過程。在這之後,通過PointNet處理這些特徵種子點,我們就可以得到最終的全局特徵。

微信圖片_20210611155453.png

圖5 PointNet++中種子點的選取和處理

2.2 SyncSpecCNN

接下來要介紹的是將圖卷積網絡應用於多邊形網格學習的工作——SyncSpecCNN。

由於在多邊形網格不規則的圖上,直接進行卷積是有困難的,因此,光譜CNN被提出。

光譜CNN不是在整個圖上進行卷積操作,而是將空間域的卷積操作轉換為光譜域的乘積操作。具體而言,我們通過傅里葉變換將信號轉換為譜域里的表示,在譜域里,我們定義卷積核和信號進行乘積操作,再通過傅里葉逆變換就可以實現空間域的卷積。

但是,由於不同的多邊形網格如果圖結構不同,通常具有不同的傅里葉基底,這將阻止譜卷積的濾波器在不同的圖之間的參數共享。這對於處理具有不同圖結構的多邊形網格的集合來說,是一個大麻煩。

在SyncSpecCNN中,我們提出了用來同步基底的方法,利用一種光譜轉換網絡,根據輸入光譜,預測一個線性同步映射,用以將傅里葉基底映射到一個規範域中,從而使得不同的圖結構光譜CNN共享成為了一種可能。

03.三維感知的應用

在接下來的環節,我來介紹一下前沿的三維感知應用方面的工作,其中包括三維實例分割,三維場景的預適應問題,三維與二維圖像的多模態學習問題以及降低標註量需求的自監督三維感知問題。

首先,我們來了解一下三維實例分割。三維點雲實例分割可以說是最重要的感知任務之一,它的定義如下:給定一個三維點雲,我們希望能夠分割出點雲中所有的實例對象,並且將前景點用語義與實例標籤相關聯。

我們這裡介紹的網絡叫**GSPN(Gernerative Shape Proposal Network),**它是第一個利用區域提案網絡(Region Proposal Network)的方法。在二維圖像的分割領域,基於區域的方法至今仍非常成功,也具有非常大的影響力。

這些方案的關鍵組成部分就叫做區域提案網絡,它提取了圖像中可能存在對象的區域,這些區域通常被表現為二維的邊界框,網絡會處理這些區域來進行進一步的預測。比如說對於實例分割的任務,我們可以在邊界框內進行二元分割來獲得物體。

那麼如何在三維信息中進行區域提案來檢測和分割目標對象呢?

如果在三維區域,直接使用邊界框去提出區域提案,質量往往並不高,因為在高維度的空間尋找到確切的對象是個更複雜的任務,因此經常會出現一個提案中包含了多個物體或者只有一部分物體的情況。

2.png

圖6 兩種不同類型的實例分割提案方式

在GSPN這個工作中,我們基於的假設是,三維邊界框提供的監督信息不足,而提出的新想法是使用能夠獲取的最強監督信號來監督區域提案網絡,而所謂最強的監督信號就是三維物體的幾何形狀信息。

不同於邊界框,通過生成目標對象的形狀來迫使提案網絡來理解物體的本質,從而避免生成低質量的局部物體或者多個物體的提案。因為三維物體的形狀具有很強的幾何規整性,並且能夠保持物體比例,所以,三維物體形狀的分佈要比二維物體簡單很多,通過「生成類型」的模型,我們可以描述三維物體形狀的分佈。

具體來說,我們訓練了一個生成模型,通過採樣,生成逼真的三維物體形狀,然後,從分佈中獲取樣本,來生成對象提案。值得注意的是,我們對網絡進行了明確的訓練,讓它了解物體可能出現的外觀,這將顯著提升提案的質量。我們在ScanNet上對於方法進行了評估,證明了GSPN的方法相較於之前的工作會有更加優秀的性能。

相比於室內,在室外的自動駕駛的場景中,由於室外採用的激光雷達傳感器的差異,會引入更多有趣的研究問題。室外場景採集的點雲相較於室內,採樣模式不同,點雲通常比較稀疏。因此,適用於室內場景的網絡架構也要做出相應調整。

如何讓深度網絡針對不同的激光雷達進行預適應,也因此成為了一個值得關注的問題。

我們在這裡重點關注激光雷達的語義分割問題,這一問題的具體描述是,通過激光雷達的點雲輸入預測每一個點的語義標籤,比如一個點對應的是一棵樹還是路面,我們的目標是通過給定的帶有標籤的原域,去訓練一個語義分割的網絡,它能夠轉移到無標記的目標域。我們非常關注由不同的激光雷達傳感器所引起的差異,因為這會引起知識遷移的困難,因此想探索的是,如何利用對3D數據的理解,來解決這樣的差異帶來的知識遷移的障礙。

3.png

圖7 SVCN網絡架構

我們所提出的觀點是,物理世界是三維的,而激光雷達是對於這些三維信息的採樣,如果能夠恢復採樣點背後的物體表面信息,並且對於物體表面進行密集規範的重採樣,那麼就可以彌合不同的採樣模式導致的差異。

為了實現這樣的想法,我們提出了以下流程,首先學習一個稀疏體素補全的網絡用來補全輸入的稀疏點雲,從而得到更加稠密的採樣點,我們稱這些稠密的點為規範域的點。然後,利用原域的語義標註,可以去訓練體素標記的網絡,來標記這些規範域的點。在測試的階段,我們會使用另外一個稀疏體素補全網絡來對目標域中的點雲進行補全。接下來,我們可以利用訓練好的體素標記網絡應用於規範域中的點,推斷出目標域語義分割的標籤。

根據應用的需要,我們也可以將規範域的語義標籤投影回目標域中,整個方法的流程相對簡單,關鍵在於三維補全的部分,那如何高效的補全激光雷達的點雲呢?

為此,我們需要訓練一個稀疏體素補全網絡。這個網絡包括一個結構生成模塊以及一個結構優化模塊,這兩個模塊都是利用了類似U-Net的結構。其中,結構生成模塊用於高效的生成結構信息,而結構優化模塊用於剔除不準確的信息。

從效果上來說,針對不同類型的雷達,我們都可以生成具有相似的採樣模式的補全信息,而這些補全信息也將支持下游任務中跨域的知識遷移。

7.jpg

圖8 SVCN網絡點雲補全效果對比

P4Contrast這一工作的目標是針對RGBD場景來設計一個對比學習框架,在無需人工監督的情況,學習如果從RGBD的數據中提取密集的點級特徵。這些特徵對對於語義分割和三維對象檢測都非常重要。

那麼, 如何來學習這樣的表徵呢?

一種常見的方法叫對比學習。對比學習方法通過優化一個對比損失函數來解決數據集中的實例判別任務,從而優化特徵提取器。

我們會定義一個錨點樣本,正樣本和負樣本,其中,正樣本和錨點樣本對應同樣的實例,而負樣本和錨點樣本則對應不同的實例。實例判別是為了訓練網絡,從而從大量負樣本中成功找到錨點樣本對應的正樣本。為了實現這樣一個目標,我們通常會去優化對比損失函數來將錨點樣本和正樣本在特徵空間中拉近,和負樣本在特徵空間推遠。

那麼,我們該如果針對RGBD數據來設計對比學習框架並獲取密集特徵呢?

一種原始方法是把二維圖像的RGB像素值附加到三維點上來創建特徵點,我們可以通過對比帶顏色的點來抽取一些特徵。但是,這種方法並不能有效的實現信息的結合。而另一種替代的方法是從RGB和點雲中分別提取特徵,並且在模態之間進行交叉對比,來訓練RGB和點雲各自的特徵提取器。但是這種方法不能有效地利用兩種模態之間的協同作用,因為它是針對兩種模態分別作特徵提取。

在P4Contract中,我們提出了對比點像素對的方式。具體來講,我們的錨點樣本是顏色和點的像素對,我們的正樣本是成對的RGBD點像素對,它可能是通過錨點樣本通過數據增強得到的,正樣本和錨點樣本中的數據對通常是來自己同一個位置的信息。

負樣本則包括了受到了擾動干擾的像素對。比如,RGB點被換成了和三維點雲不匹配的點。在P4Constrast中,我們把數據增強,應用於輸入的兩個版本,從而生成兩組對應的密集的點像素對。

我們還要干擾顏色和幾何形狀,來生成受干擾的像素對。然後,我們將這些點像素對通過神經網絡進行特徵提取。在準備負樣本的過程中,我們會逐漸增加難度,幫助網絡漸進地學習特徵。

除了預訓練的目標,我們還精心設計了深度學習的主幹網絡來進行特徵的提取。主幹網絡結合了二維和三維的卷積分支,二維卷積分支利用了二維的卷積操作,它的上下文信息由二維的像素決定,而三維分支的上下文信息則來自三維的點。而通過對這種不同上下文信息的融合,就可以增強我們對於RGBD特徵的提取。

99.png

圖9 P4Contrast流程

為了評估我們的表徵學習框架,我們利用p4constrast對於數據進行預訓練,執行語義分割,物體檢測等下游任務,而實驗結果也說明,通過預訓練後,結果要遠優於不進行預訓練或者用其他方法預訓練的效果。

前面幾個項目主要介紹物體級別的三維場景的理解,接下來我想再深入討論一下子物體級別的研究,具體探究零部件的結構和運動性,這對於機械人和物體的交互非常重要。這個工作叫做基於物體的零部件分割。

我們生活的環境充滿了大量的具有關節的物體,人類可以根據各個部分的運動性把物體分成各個功能不同的部分,而如何讓機械人分割物體並理解物體不同部分的運動性呢?

我們對於這個問題的描述如下,通過物體在兩幀下的不同狀態的觀測,推斷出物體做剛體運動的零部件,並且得到這些物體的運動規律。除此之外,在訓練過程中,我們希望採用在合成數據中的無監督訓練取代有監督訓練,並且能夠遷移到真實數據中。

在對於解決這個問題思路的探索中,我們關注的是不同狀態下物體點雲的對應關係,因為利用點的對應關係,不需要對於語義的深刻理解,所以可以泛化到不同的物體類別上,更重要的是,一旦具有了兩幀點的對應關係,我們就可以將遵從相同的剛體運動的點進行分組來完成分割任務,繼而實現泛化的物體分割和部件分析。

10.png

圖10 物體零部件分割的問題定義

為了讓點的估計遷移到真實的數據中,我們利用PointNet++開發了一個魯棒的點對應估計網絡,它對於第一級傳感噪聲並不敏感,而這也是合成數據和真實數據的主要區別,因此這個網絡可以較好的實現知識遷移。

作為評估,我們把我們的數據應用到訓練時沒有接觸的新物體類別中,從實驗結果上看,網絡成功的將物體按照運動性進行了分割,這也驗證了我們算法的泛化性以及可遷移性。

04.三維深度感知未來的發展方向

最後,我們一起討論一下三維深度感知未來的發展方向,三維深度學習仍然是一個比較新興的領域,並且有比較多的發展方向。

首先,不同於具有規則網格結構的二維圖像,三維圖像通常是嵌入三維空間的二維流形,這種非歐幾里得的特性使得諸如卷積之類的基本計算操作的定義變得不同,除了今天介紹的方向,這個領域還有很大的探索空間。

其次,三維深度網絡所遇到的各種挑戰主要來自於多種不同的數據表現形式,除了之前介紹的顯式的表現形式之外,其他的隱式表達形式,比如帶符號的距離函數,也在研究領域引起了廣泛的興趣。

如何利用多樣化的三維數據表現形式滿足各種不同任務的需求,仍然需要大量的研究和分析。

除了對於三維數據的分析,我們還有一個很重要的任務就是去合成高質量的三維幾何物體的形狀,比如我們要進行簡單的三維重建,或者是對於簡單幾何先驗的建模,都需要三維的生成模型,而這一方向雖然在二維圖片領域已經取得了一定成果,但是針對三維圖像,仍然有很多的工作要做。

此外,行業內也在關注從互聯網AI到嵌入式AI的轉變。和針對在互聯網上搜集的圖像進行學習的思路不同,嵌入式AI是通過和環境的交互進行學習。毫無疑問,三維感知是這一領域非常重要的一個問題。這需要我們把三維感知和機械人技術聯繫起來,其中就包括對於動態環境的時域和空間信息的理解,以及與三維空間的交互。

除此之外,我們也需要關注機械人仿真環境的構建,因為在仿真環境的訓練是安全廉價並且公平的,我們能夠對於技術的發展進行合理的評價。不過為了在現實世界部署AI系統,解決從虛擬到現實的預遷移問題也至關重要,這就需要我們把虛擬環境的很多細節比如紋理,動力學特徵等,都和真實環境匹配起來。

希望大家通過這次講座能夠理解,三維深度感知是一個新興領域,並且如今在學術和工業領域都在扮演越來越重要的角色,也希望講座內容能夠對於各位的學習工作和研究有所幫助和啟發!