王俊鍇,譚臺哲,楊天宇
(廣東工業(yè)大學計算機學院,廣州510006)
隨著三維點云模型的廣泛使用,在數(shù)字化文物、設計制造、虛擬現(xiàn)實等各個領域都產生了越多的點云模型的需求。大多數(shù)的點云生成步驟較為繁瑣或者需要用到專門的采集設備(如激光掃描、RGBD攝像頭等)。這些采集方式所得到的點云模型通常會受到場景中其他物體的相互遮擋、相機精度的原因,出現(xiàn)部分的結構缺失或者產生噪音。特別是對于物體一些必要的精細結構出現(xiàn)的區(qū)域缺失或改變,往往會丟失原有對象的語義信息。另外,在一些場景下比如增強現(xiàn)實交互、動畫游戲,人們通常需要一個簡單快速的方法提取圖像的主要特征進行重建,由于這種情景下缺乏目標的完整信息,使用單個視圖來生成點云具有實用性。
傳統(tǒng)的三維重建方法需要依靠多個角度下的視圖完成。在實際生活中,對于單幅圖像,依靠對現(xiàn)實世界中各類物體的辨識,通??梢匀藶榈赝茢喑瞿硞€圖像的拍攝角度,進而想象出拍攝對象的總體三維結構。近年來,隨著深度學習方法的廣泛應用以及相關數(shù)據(jù)集[1]的開源,基于數(shù)據(jù)驅動的從單幅圖像生成三維模型的需求和應用也隨之引起學者們的興趣。其中生成數(shù)據(jù)主要分為體素和點云兩種。相比體素,點云有著結構更為簡單,分辨率更高且變換方式多樣的特點,在深度學習方法上更具有優(yōu)勢。
Fan等人基于沙漏網絡結構的自編碼器[2],提出把倒角距離和推土機距離用于度量點集之間的相似性,并作為點集真實值和預測值對應點坐標數(shù)值回歸的損失函數(shù),以解決點云這種無序序列的數(shù)據(jù)結構生成的難題。
在深度學習用于三維數(shù)據(jù)的領域,ShapeNet將三維卷積用于體素模型(volumetric pixel)的識別。由于點云數(shù)據(jù)表現(xiàn)出的無序性,即點云是由一組無特定順序的離散點所組成,且點的排列順序改變不影響最終在空間中所呈現(xiàn)的三維點云的形狀,導致不同的點云數(shù)據(jù)可能是同一個三維對象,不能像體素一樣被三維卷積網絡處理。文獻[3]首先提出使用全連接層的操作和全局池化,對點云的特征提取有優(yōu)良的效果。因為其簡單高效的優(yōu)點,本文使用類似的結構作為判別器中的點云特征提取網絡來對生成器所生成的點云模型進一步優(yōu)化。
近年來,距離度量學習在人臉識別、行人重識別、圖像檢索等任務上表現(xiàn)出優(yōu)越的效果。FaceNet[4]將度量學習用于人臉識別上,大幅地降低了表示人臉數(shù)據(jù)的特征維度。距離度量是指原始的樣本通過深度非線性變換映射到某一特征空間,求取該空間中特征向量間的距離或相似度的過程。距離度量學習則是通過設計相應的損失函數(shù),通過優(yōu)化問題以學習其變換矩陣參數(shù)的過程。通過距離度量學習,能夠將不同類標簽的易混淆樣本或者同類標簽的難以辨認樣本區(qū)分開來,拉大類間距離和減小類內距離。
應用在深度學習中的度量學習方法有:對比損失[5]和三元組損失[4]。對比損失需要的是成對的同類或異類的樣本,三元組損失則是構造一個三元組,分別為樣本、樣本的正例和負例。以上方法通過學習到非線性映射函數(shù)來達到最大化類間距離和最小化類內距離的目的。在實驗的過程中可發(fā)現(xiàn):基于三元組損失的方法的一個難點是需要構造大量的數(shù)據(jù)對,占用內存空間隨著訓練數(shù)據(jù)的增加而膨脹,且在類別數(shù)目較多的情況下,各個類別的數(shù)據(jù)對之間沒有明顯的相似度,對網絡的優(yōu)化起到的作用有限。采用相關的技巧一定程度上有所改善,例如增加批處理數(shù)據(jù)大小、嚴格或者半嚴格的三元組檢索方法、基于代理點的度量方法[6]等,后兩者減少抽樣的數(shù)據(jù)對,有效加快了網絡的擬合。
3D-LMNet[7]使用自編碼高斯混合模型,訓練得到具有豐富語義信息的點云自編碼器,基于概率分布的模型生成多個可信輸出。工作側重于在編碼方面的改進,說明通過合理的編碼方法可以有效提高生成樣本的質量。
已有的從單幅圖像生成點云模型工作存在的不足有:圖像的特征提取網絡能力有限,受到視圖角度、遮擋等因素的影響,不能較好地區(qū)分同一對象的不同視圖。由于生成器網絡的輸入信息依賴于特征提取網絡的編碼,且在訓練數(shù)據(jù)規(guī)模有限的條件下,如果未知圖像樣本的特征編碼不具有足夠的區(qū)分度,生成的點云模型就會表現(xiàn)出過于擬合訓練集樣本。
針對該任務場景,提出基于度量學習的對抗生成方法,設計了一個三維點云的生成網絡。圖1為本文方法的整體框架流程。
圖1 網絡總體結構
與原始生成對抗網絡相比,網絡在判別器中的輸出不是對輸入樣本的真假二值判斷,而是一個多維的特征編碼向量。從輸入對象的特征編碼的角度出發(fā),將距離度量學習的策略用于生成對抗網絡中。將中心損失[8]作為判別器網絡的損失函數(shù),增強保存對同類樣本的記憶,生成的點云模型更具有區(qū)分度。
基于點云重建的損失函數(shù)目標是最小化預測所得點云模型中的點與真實值點云模型最近的點之間的平均距離。而對抗的中心損失度量函數(shù)是最小化具有語義信息的編碼之間的距離。聯(lián)合以上二者的監(jiān)督,將相同實例聚集在一起,并增大區(qū)分度較小的不同對象間的距離。通過有效設計的圖像和點云特征提取網絡,可以利用生成對象在同一空間上編碼的一致性來提高生成點云的質量。具體地,通過融合訓練數(shù)據(jù)集中同一實例已有的多個視圖的特征來提高對不同視角下的二維視圖的特征提取能力,從而改進所預測生成對應的三維點云模型的效果。
使用PointNet[3]類似的全連接和1維卷積網絡作為生成點云的特征提取網絡和CNN網絡用于圖像的編碼,經過編碼網絡的點云會得到一個多維的特征變量,將其和輸入圖像的特征向量在同一空間中基于歐氏距離進行度量。
以上步驟中,已有實驗證明對輸入樣本的有效編碼對于最終解碼生成的點云極為重要[7]。為了提高圖像編碼網絡在本任務下的能力,在不同視圖下都能對輸入圖像的特征進行有效提取,在生成網絡G的后端加入點云的判別網絡。生成網絡部分是輸入圖像I的編碼器網絡和解碼器網絡,這一部分將單幅圖像編碼得到一個多維向量,將該向量輸入到解碼器網絡以生成點云模型G(I)。右側是判別器網絡D,使用1維卷積將點云中的每個點都生成一個多維特征,在多層網絡進行一定程度的提取后,采用最大池化得到對應的全局特征編碼向量。
判別器網絡損失函數(shù)包含兩個部分,分別為:真假判別損失和基于中心損失的特征損失。其中Ldis計算的是判別器對輸入真PCgt、假點云G(I)的特征編碼的歐氏距離Lcd(gt)和Lcd(pred)。而Lcd則是最大化真假點云的特征編碼和對應標簽的中心C和C距離的歐氏距離來辨別真假樣本。
倒角距離用于度量真值點云PCgt與生成點云G(I)中匹配的各點之間的平均距離,距離越小,說明生成的點云與真實值更相似。為了獲得更佳的生成效果,生成器損失結合了倒角距離損失和對抗生成損失作為總體的損失函數(shù)。其中倒角距離損失為:
總的判別器、生成器的損失函數(shù)為:
C和C分別是預測和真實樣本經過判別器的中心編碼。訓練開始時,將二者都初始化為0。對每個批數(shù)據(jù)計算誤差反向傳播后,更新其值。更新策略為:
在批大小為m的輸入中,如果滿足條件,則更新第i個實例的真實值中心向量Ci。同理更新預測中心向量Ci。γ是更新的學習率,當γ相對較大時,中心向量更依賴于當前階段學習到的樣本,而對先前的樣本存在更小的記憶。通過與中心編碼距離的約束,可以最小化同個實例之間的距離,又與其他容易混淆的樣本保持足夠的區(qū)分度。
本文實驗采用點云數(shù)據(jù)集ShapeNet。包含以下3個類別:飛機、汽車、椅子。在訓練集、驗證集、測試集的劃分上參照3D-PSRNet提供的標準。實驗中訓練數(shù)據(jù)輸入是每個對象在10個不同角度下的渲染視圖以及對應的真實點云模型。
訓練時的輸入圖像尺寸縮放為224×244,使用Adam優(yōu)化器。學習率為0.0002等超參數(shù)設置下進行200輪的訓練。使用TensorFlow框架完成網絡模型的搭建。
為了驗證算法的可行性以及進行對比實驗,使用結構較為簡單的3D-PSRNet[9]網絡的基線模型結構作為生成器部分。在訓練的過程中,生成器網絡和判別器網絡交替優(yōu)化。生成器的目標是最小化G*,以達到生成一個與真實值點集近似的點云,具體為將輸入圖像編碼為一個多維向量,再使用解碼器將該編碼還原成三維點云物體。判別器則是對該生成的點云進一步利用特征提取網絡得到包含語義信息的編碼與輸入圖像進行對比。該網絡是一個端到端的網絡,不需要對網絡中的編碼器進行預訓練。在測試階段,僅使用完成訓練的生成器網絡即可完成從圖像生成點云的任務。
本文對比了采用對生成點云進行分割的PSGN和3D-PSRNet兩種方法。實驗結果如表1所示。通過實驗結果可發(fā)現(xiàn)在基于倒角距離和推土機距離(更小說明更接近真實值點云)的對比下,提出的方法生成的點云有更高的保真度。由圖2可以看出在直觀上生成的點云也接近原圖的信息。
表1 本文的方法與基準方法在不同評價指標上的對比
圖2 從左側圖像生成的點云的多個視圖
本文提出的方法為從單幅圖像生成三維點云模型的方法引入一個新的思路,通過度量學習的方法結合了圖像編碼網絡和點云特征提取網絡的編碼信息,有效利用原始圖像中的語義信息,使生成的點云更符合輸入圖像的表達。下一步工作重點是增強數(shù)據(jù)集,并繼續(xù)探索更高效的度量學習模塊網絡結構,提升對復雜背景下的圖像特征提取能力和點云生成的泛化能力。