在增強現(xiàn)實(AR)與自動駕駛的時代來臨之際,3D數(shù)據(jù)呈現(xiàn)爆炸式增長。在不久的將來,處理3D數(shù)據(jù)的算法將應(yīng)用于像機器人自動巡航、基于AR的智能用戶界面等應(yīng)用程序上。受此啟發(fā),我們在Matroid公司所著的論文提出了FusionNet,這一框架用于在一個名為Princeton ModelNet的標準數(shù)據(jù)集上做3D CAD物體分類。
FusionNet的核心是全新的、應(yīng)用于3D物體的三維卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)。我們必須在多個方面調(diào)整傳統(tǒng)的CNN以使其有效。為了解釋得清楚些,我們不妨先看一下用于圖像分類的二維CNN。這個思路是,機器學(xué)習(xí)研究者會構(gòu)建數(shù)個隱層形成的模型,每一層與前一層都以不同的形式連接。在第一層,你會擁有一個在二維圖像上滑動的一塊窗口區(qū)域作為輸入。因為這個區(qū)域執(zhí)行了卷積操作——在窗口滑動時它交疊其上,因此它被稱為卷積層。其后還有幾層不同形式的隱層,最后一層用于預(yù)測潛在的輸出;每一種輸出對應(yīng)著圖像標注中的某種分類。在ModelNet40 Challenge數(shù)據(jù)集中,存在40個分類,因此模型中最后一層有40個神經(jīng)元。第一類可能是“貓”,第二類可能是“車輛”,以此類推遍歷數(shù)據(jù)集包含的所有分類。如果第一個神經(jīng)元在40個中激發(fā)的最厲害,那么輸入樣本就會被判別為第一類,一只貓。
整個模型假設(shè)輸入是圖片形式,即二維數(shù)據(jù)。你該如何將它拓展到三維呢?一種可能的方法是,就像顯示器顯示三維物體那樣,先把物體通過投影處理成二維圖像,然后在其上運行標準的二維CNN算法。實際上,現(xiàn)在在Princeton ModelNet Challenge數(shù)據(jù)集上已提交的最優(yōu)算法的思路是,把任何3D物體在多個角度上對物體進行一組2D投影進行“像素表達”,然后使用卷積神經(jīng)網(wǎng)絡(luò)。FusionNet確實也基于像素表達使用了CNN,但關(guān)鍵是,它同時還增加了一種新式的三維CNN。
與在二維圖像上滑動一個區(qū)域不同的是,我們可以在物體上滑動一塊三維空間了!在這種表達之下,沒有必要做投影這一步。這種方法用“體積表達”來處理物體。
在我們的體積表達中,3D物體被離散化為30*30*30的體素(譯者注:volumepixel,文中簡稱voxel)網(wǎng)格。如果物體的任何部分位于1*1*1的體素中,就給體素賦值為1,反之則賦值為0. 與之前的工作不同的是,我們在學(xué)習(xí)物體特征的過程中同時用到了像素表達和體素表達,這種方法對分類3D CAD物體而言,比單獨使用其中一種要好。其中一些例子如下:
圖 1. 兩種表達。 左圖:浴缸、高腳凳、坐便器與衣櫥的2D投影。右圖:體素化之后的浴缸、高腳凳、坐便器與衣櫥。 感謝Reza Zadeh提供圖片
我們建立了兩種處理體素數(shù)據(jù)的卷積神經(jīng)網(wǎng)絡(luò)(V-CNN I與V-CNN II),以及一種處理像素數(shù)據(jù)的網(wǎng)絡(luò)(MV-CNN)。 下圖顯示了這些網(wǎng)絡(luò)是如何結(jié)合在一起工作,并給出對于物體分類的最終判斷的。處理2D圖像的標準CNN就不一樣了,它們只能從圖像中學(xué)到一些空間局部特征。
圖2. FusionNet是三種神經(jīng)網(wǎng)絡(luò)的混合,它們分別是V-CNN I, V-CNN II, and MV-CNN (最后一種神經(jīng)網(wǎng)絡(luò)是基于AlexNet結(jié)構(gòu)構(gòu)建的,并經(jīng)過ImageNet數(shù)據(jù)集預(yù)訓(xùn)練過 ) 這三種網(wǎng)絡(luò)在評分層進行了融合,通過計算打分的線性組合找到最終所預(yù)測的分類。前兩個網(wǎng)絡(luò)使用了體素化的CAD模型,最后一種網(wǎng)絡(luò)則使用2D投影作為輸入。感謝Reza Zadeh提供圖片
我們使用了標準預(yù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型(AlexNet)作為2D網(wǎng)絡(luò)MV-CNN的基礎(chǔ),對3D物體2D投影的網(wǎng)絡(luò)進行暖啟動(warm-start)預(yù)訓(xùn)練基于大規(guī)模2D像素圖片數(shù)據(jù)集ImageNet。受預(yù)訓(xùn)練影響,許多用于2D圖像分類的特征不需要從頭開始訓(xùn)練了。下圖所描繪的框架是我們使用的V-CNN之一種(V-CNN I):
圖 3. 感謝Reza Zadeh提供圖片
V-CNN I所使用的框架受到GoogLeNet(www.cs.unc.edu/~wliu/papers/GoogLeNet.pdf)啟發(fā), 使用了IncepTIon模塊。IncepTIon模塊對不同大小的核處理結(jié)果進行了拼接,它有助于神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)不同尺度的特征,并在緊接著IncepTIon模塊的下一層卷積層中共享參數(shù)。
概括來說,F(xiàn)usionNet是三種神經(jīng)網(wǎng)絡(luò)的融合,其中一種基于像素表達,兩種基于物體的體素化表達。它利用了每一種網(wǎng)絡(luò)的強項,提高了分類器性能。FusionNet中的每一個網(wǎng)絡(luò)組分都在對物體分類之前以多個角度、方向觀察物體。盡管從直覺來說,對物體的多角度觀察確實能比單角度觀察帶來更多信息,但是將信息整合到一起以提高預(yù)測精度并不顯而易見。我們使用了20個像素表達特征與60個CAD物體體素表達特征這么多信息用于進行物體分類。FusionNet的效果超越了在Princeton ModelNet 40類數(shù)據(jù)集榜單上排名第一的提交方案,展示了其獨到的能力。