HAYTHEM Alhag,楊 軍
(蘭州交通大學電子與信息工程學院,蘭州 730070)
三維模型具有顯著的幾何信息[1],在三維模型研究初期,學者們就利用這些顯著的幾何信息來進行三維模型分析與處理。現有三維模型對應關系研究是通過基于描述符的方法來完成模型間各部件的準確對應。雖然基于描述符的方法有效利用了豐富的幾何信息,但識別特定模型以及對其進行進一步分析仍然需要人工干預,從而導致計算所得到的描述符具有主觀片面性,嚴重依賴于專家經驗,泛化能力較差。
現有三維模型對應關系計算方法僅通過幾何信息來進行有意義的相似性對應計算,這些算法采用描述符來描述興趣點周圍的局部幾何特征,通過距離度量即可以很容易地進行相似度估計。此外,采用更高級別的描述符(如基于主成分分析和曲率分析的描述符)能夠同時編碼模型的局部屬性,然而,僅依據低層次幾何線索計算出的對應關系準確率并不理想。
從1987 年開始,機器學習方法就被用來計算三維模型的特征描述符,直到2006 年,深度學習方法開始流行起來,將其應用到數據驅動方法中所得到的特征描述符泛化能力較強,能夠推廣到不同的任務場景中,而且不需要人工構建特征描述符,具有更好的模型特征表征能力。鑒于深度學習在計算機視覺領域取得的成功,本文提出一種基于深度學習的三維模型對應關系計算方法。具體地,對文獻[2]中所提的先驗知識表達和應用的方式進行改進,通過將三維模型投影為視圖數據并進行預分割來標記相應的模型“部件”,以提高模型的部分對應關系計算性能,然后采用多視圖卷積神經網絡進行特征提取。在此基礎上,計算緊湊的隱含具有較高表面點之間相似性的信息的數據驅動描述符,并利用已構建的數據驅動描述符推導出最終的三維模型對應關系。
三維模型的部分對應關系計算問題在計算機視覺和計算機圖形學領域均具有重要的研究意義。從傳統意義上來說,模型間對應關系計算問題是在幾何處理的范疇內進行研究的[1],與此密切相關的模型檢索[3]、模型識別[4]以及模型分析處理[5]也是如此。現在的主流三維模型對應關系計算方法是基于語義驅動的方法。文獻[6]允許模型之間存在明顯的形變,但由于它們依賴于幾何相似性,因此沒有達到語義建模的預期效果,文獻[7]也存在相同的問題。
傳統三維模型分割方法利用幾何特征[8]來識別整體模型的各個部件[9]。此外,利用固有的表面度量或曲率進行聚類的方法也很常見[10]。以上方法主要關注拓撲結構[11],雖然這些方法都能取得令人滿意的分割結果,但無法完成模型之間的一致性分割任務[12]。文獻[13]解決了一致性分割問題,但沒有考慮模型在大尺度變化下語義信息不同的情況。文獻[14]在模型的部位處于非均勻拉伸情況下提出一種圖像分割方法。文獻[15]在未進行數據驅動的情況下提出將先驗知識納入模型分割的方法。文獻[16]提出不需要帶標簽分割的高效的模型對應關系計算方法,其中,對應關系計算不需要從模型的構成部分以及特征值中提取信息。文獻[17-18]通過無監督學習的方式完成三維模型的對應關系計算。
本文受到文獻[2]研究內容的啟發,并作出如下改進:
1)文獻[2]通過一致預分割和標記來計算模型的手工特征描述符,相當于在模型表面上分配分割的概率標簽,而本文則通過一致預分割和標記相應模型部件的豐富視圖特征來計算得到數據驅動描述符,這樣可以隱式地將語義標簽分配給緊湊的數據驅動描述符。
2)文獻[2]所提方法采用一種學習的方式來增強算法的特征表示能力,具體地,將訓練集中的模型表面進行對應,同時利用分類器來進行學習,為相關模型的表面間的幾何類型分配概率標簽。上述過程的缺點在于如果目標模型不在訓練集中,這些模型間的對應關系計算則無法使用這個學習結果,同時,如果采用的人工描述符泛化能力較差,那么該方法的有效性會進一步降低。因此,本文利用隱式標記的數據驅動描述符來指導算法的幾何相似性計算,并通過在一個相對大的數據集中訓練本文網絡來解決文獻[2]方法所存在的問題。由于初始的非剛性對齊是由語義標簽引導的,因此即使在同一標簽部分之間存在的任意幾何變形,計算出的描述符編碼也不會受其影響。
3)在文獻[2]中,幾何相似性在建立三維模型對應關系中起到了重要的作用,只有在建立了模型表面之間的對應關系之后,這些模型的各個部位才會被賦予相應的語義標簽。而本文利用深度學習網絡模仿人類計算先驗知識的過程,以此指導對應關系計算,從而提高三維模型對應關系計算的準確率。此外,在現實世界的場景處理中,研究人員往往會先識別出相關模型,然后再推導其各部分之間的對應關系。受此啟發,本文首先采用多視圖卷積神經網絡完成三維模型分割,接著用分割的部件進行對應關系計算。
本文目標是計算2 個三維模型之間的有意義的對應關系,如在模型A和B之間,將A模型上的一組表面映射到B模型上的一組相關面,傳統的低層次特征描述符首先捕捉2 個模型表面的幾何屬性和上下文信息,然后使用基于描述符相似性的方法得出最終的對應關系。
低層次的特征描述符存在幾何信息不足的問題[1],特別是當涉及的模型發生顯著變化時,此時需要在學習網絡中模仿人類識別圖像的先驗知識。與文獻[2]方法不同,本文的語義先驗知識是從一組預先分割和標記的訓練集中得到的,每個模型部分通過一個分類器模型來表征,其中,每個分類器模型捕捉屬于同一標簽的表面特征。本文使用包含豐富視圖特征的視圖數據來計算圖像分類的先驗知識,這些視圖數據傳遞了一致的預分割和標記的相應模型的部件信息,本文將其輸入到多視圖卷積神經網絡中進行特征提取。
本文方法將獲取訓練階段和測試階段的所有特征信息,并對其進行增強,以實現有意義的模型對應關系計算。此外,本文在訓練階段和測試階段采用不同的數據處理方式:
1)在訓練階段,本文采用的數據是一致的預分割和標記的以三角網格或點云表示的三維模型,將這些數據輸入到多視圖卷積神經網絡以提取視圖特征,這些視圖數據既傳遞了語義類別信息,也傳遞了幾何結構信息,本文方法使用其中的語義標簽來指導訓練集模型之間的初始對應關系計算,然后將相應模型部分的視圖輸入到深度學習架構中,并采用孿生網絡進行訓練。但是,如果這個過程發生大尺度形變時,會丟失大量幾何信息,因此,本文采用非剛性配準進行輔助計算,從而提高對應關系計算的準確率。
2)在測試階段,本文采用2 個以三角網格或點云表示的模型。為了進行準確的對應關系計算,本文使用文獻[17,19]中的2 個識別架構和1 個融合層,其中,融合層用來決定2 個輸入模型是否屬于同一類別。從本質上來講,本文方法構建了基于深度學習的三維模型對應關系計算網絡架構,通過訓練可以識別語義相關的模型部件,從而避免了人工設計三維模型特征描述符的弊端。
在整體網絡結構上,本文方法結合了文獻[20-21]的網絡架構:首先對文獻[20]中的多視圖卷積神經網絡架構進行改進,利用它來提取更具鑒別力的特征,使得最終的三維模型對應關系計算結果更準確且平滑;然后優化文獻[21]中計算通用描述符的架構,使其計算出最適合三維模型對應關系計算的描述符。
文獻[21]中通用描述符的計算網絡架構是建立在經過預訓練的CNN 上的,這些CNN 在二維圖像處理領域取得了較大成果。本文對該架構進行優化,如圖1 所示。首先,利用ShapeNetCorel[22]和文獻[2]中的數據集模型進行一致預分割和標記,并使用標簽來指導和初始化非剛性對齊;然后,將表達語義和幾何信息的對應點傳遞給卷積神經網絡進行特征提取。使用照相機對三維模型進行多方位拍照,以得到三維模型的渲染視圖信息,具體地,使用Phong 照相機和單一方向光從每個選定的視點渲染三維模型表面。此外,含有冗余圖像的渲染視圖將被進一步修剪,在選定的觀察方向上調用K-mediods聚類算法來實現修剪,K設置為3。通過將視點M設置為3 來獲取每個表面點的多尺度上下文及其選定的觀察方向信息,這些視點分別放置在模型的邊界球半徑為0.25、0.50 和0.75 距離處。對相應模型的部分設定4 次旋轉,每個點共產生36 幅圖像,所有圖像的分辨率為227×227 像素。

圖1 用于提取模型對應關系描述符的CNN 架構Fig.1 CNN architecture for extracting model correspondence descriptor
本文網絡總體框架與AlexNet[23]類似,但去除了AlexNet 的最后2 個全連接層。每一個輸入圖像都要經過2 個卷積層、2 個池化層和ReLU 非線性激活函數層的處理,最后是3 個帶有ReLU 非線性的卷積層、1 個池化層和1 個全連接層。
每幅圖像通過識別架構提取特征得到一個4 096 維的特征描述符。為了產生一個單點特征描述符,本文通過使用最大池化操作來聚合輸入的36 個渲染視圖中的描述符,該操作選擇了各視圖中最具鑒別力的特征描述符。
文獻[20]基于卷積神經網絡,采用預訓練微調的方法來提高模型的識別準確率,該方法使用2 種攝像機設置用于獲得視圖數據:第1 種攝像機設置中假設模型是直立,沿中心軸線間隔均勻地放置12 臺虛擬攝像機,然后調整到與地面成30°,且每個攝像機朝向網格的形心,這樣可以獲得12 個視圖;第2 種攝影機設置中假設沿著模型的豎直方向,將20 個虛擬攝影機放置在環繞該模型的二十面體的20 個頂點上,使用4 個旋轉角度(0°、90°、180°和270°)來創建80 個視圖。
如圖2 所示,本文的識別網絡架構首先使用文獻[23]中 的VGG-M 網 絡,該網絡 由5 個卷積 層conv1,conv2,…,conv5、3 個 全連接層fc6,fc7,fc8以及Softmax 分類層組成。該網絡在ImageNet 圖像上進行預訓練,圖像由1 000 個類別組成,然后在訓練集中進行微調。網絡第1 部分中的所有分支在CNN1中共享參數,并采用1 個視圖池化層進行特征聚合得到一維特征描述符。本文通過添加特征融合層來改進網絡體系結構,識別網絡構架的其余層與文獻[20]相同。

圖2 本文識別網絡構架Fig.2 The architecture of the recognition network in this paper
在測試階段,由于本文事先不知道模型間的對應關系,因此通過輸入模型的相關性特征值來縮小對模型相應部分的搜索范圍。
如圖3 所示,本文使用隱式的描述符來完成最終的三維模型對應關系計算。

圖3 基于隱式標記描述符的對應關系計算過程Fig.3 Process of correspondence calculation based on implicit marked descriptor
給定一對一致分割并標記的模型A和B,首先,本文從其網格表示中抽取10 個點,這些點被分配了相應面的部分標簽。對于每個部分,本文為其計算一個初始仿射變換,以使其具有相同的定向邊界框,然后對于這些部分的每個點進行一個平移操作,使其盡可能接近所對應的表面,同時相鄰點的偏移盡可能保持均勻,確保產生的變形是平滑的。為了計算相鄰點的偏移量,本文將表面變形最小化,同時設置正則化項來懲罰2 個部分點集之間的距離以及相鄰點之間偏移量的不一致,如式(1)所示:

其中:N(a)和N(b)分別是a點和b點的鄰域(在本文中,每個點使用6 個最近鄰點);dist 為計算平移點到另一個點集最接近兼容點的距離的操作;ο()是偏移計算分別是各自模型上的點集。
可以使用基于ICP 的方法來最小化式(1)。首先在2 個部分上給定最接近的一對對應點;然后通過最小化式(1)來計算偏移量,更新最接近的點對,通過迭代執行上述過程來計算最終的結果;最后求得的偏移量可用于計算A和B間的密集對應關系。
通過最小化損失函數[24]來估計描述符計算網絡的參數。損失函數對描述符差異較大的對應點進行懲罰,以防止參數值任意變大。該損失函數的計算公式如下:

其中:C是從基于部分的配準過程中得出的一組相應的點對;D是測量一對輸入描述符之間歐幾里得距離的操作。正則化參數被稱為權重衰減,其值設置為0.000 5,余量m設置為1,其絕對值不影響參數的學習,僅縮放距離,以使非對應點對至少留有一個單位距離的余量。
卷積層的參數是在ImageNet[25]數據集上初始化得到的。由于圖像包含模型以及紋理信息,因此在大量圖像數據集上訓練的卷積核可以捕獲模型信息。本文采用批量梯度下降法使損失函數最小化。在每次迭代中,隨機選擇32 對相應的點,并且預先對其進行基于部分的配準計算。另外,選擇32 對非對應點,使總批次為64。實驗采用Adam 優化算法在每次迭代中更新模型參數,與其他算法相比,Adam具有更快的收斂速度。
將本文方法與文獻[2,26]方法進行實驗對比,通過定性和定量對比來驗證本文方法在計算準確率以及所生成的對應關系結果質量上的優越性,其中,文獻[26]方法是目前最新的非等距模型間對應關系計算方法。實驗的軟件及開發環境配置如下:Ubuntu 16.04,RTX 2080TI,CUDA 9.0,cuDNN 7.0,Caffe 深度學習框架。
本文實驗使用3 個數據集,所有數據集均已預先進行了分段和標注,同時對應關系的ground-truth都為已知。第1 個數據集采用文獻[2]中的數據集,由四類人造模型組成,具有明顯的幾何拓撲變化,同時某些形狀在同一模型上重復出現多次;第2 個數據集由網格分割基準[27]中選定的數據集組成,本文使用文獻[16]中的方法為這些模型創建分割的標簽,數據集選擇了具有不同姿勢和較大結構與幾何變化的模型;第3 個數據集使用源自三維模型庫的BHCP 和ShapeNetCore[22]數據集。
圖4 所示為本文方法對應關系計算可視化結果。從圖4 可以看出,本文方法的對應關系計算結果非常平滑,質量較高。

圖4 本文方法的對應關系計算結果Fig.4 The calculation results of the correspondence of the method in this paper
模型對應關系計算結果的準確率一般采用測地誤差(Geodesic Error)來度量,即目標模型上的點與真實對應點(Ground-truth Correspondence)之間的測地距離與目標模型表面積之比。假定點x為源模型X上的一點,目標模型Y上存在與點x對應的點y,(x,y*)為標記的真實對應關系,則定義測地誤差gerr(x)為:

其中:dy(y,y*)為目標模型上的點y與標記的點y*之間的測地距離;area(Y)為目標模型的表面積。測地誤差越小,表明對應關系計算結果準確率越高。
表1 所示為本文方法和文獻[2,26]方法的對應關系測地誤差對比,最優結果加粗表示。從表1 可知,與文獻[2,26]方法相比,本文方法的對應關系計算測地誤差均有所降低,在各個類別中可以獲得更為準確的對應關系結果。

表1 各方法的測地誤差對比Table 1 Comparison of geodesic errors of various methods
文獻[2]方法是以預分割標注形狀部分的形式傳授先驗知識,本文也以預分割標注形狀部分的形式使用先驗知識,將本文方法與文獻[2]方法獲得的結果進行對比,在每一個類別的計算中,本文方法的測地誤差都有所降低,其中,在Vase 這一類別中誤差降幅最大,達到0.155,在Οctopus 這一類別中誤差降幅最小,也有0.041,這是由于不同形狀的三角網格質量不同,有些形狀邊界畫得更準確,結果會較好,而有些形狀邊界不清晰,結果會較差。
相較文獻[26]方法,本文方法在所有類別上表現均更好,在Lamp 這一類別中,本文方法誤差降幅最大,達到0.059,在Airplane 這一類別中,本文方法誤差降幅最小,達到0.004。
本文提出一種基于隱式描述符來計算三維模型對應關系的方法。該方法首先在多個尺度上獲取形狀區域的多個渲染視圖,然后通過多視圖卷積神經網絡對其進行特征提取以計算局部形狀描述符,最后對模型中的相應形狀部分進行非剛性對齊,進而獲得準確的對應關系計算結果。實驗結果驗證了該方法的有效性。但是本文研究仍存在下列不足:用于識別輸入模型的多視圖卷積神經網絡存在視圖信息冗余的問題;最初為訓練集計算的對應關系結果不如人工標注的結果理想;對三維模型進行多方位投影時丟失了其幾何拓撲信息。解決上述問題并提高本文方法的適用性將是下一步的研究方向。