黃萌,汪亞明
(浙江理工大學信息學院,浙江杭州 310018)
二維圖像投影和潛在三維場景的關系研究在光學和攝影領域已有 著悠久的歷 史,而NRSfM(Non-Nigid Structure from Motion)則是一種通過單目攝像頭對非剛體運動序列重建三維非剛體表面的算法。傳統的NRSfM算法在稀疏特征點軌跡三維結構重建任務上取得了不錯效果,但是稀疏特征點表示能力有限,不能完整重建三維非剛體表面。稠密的NRSfM算法是對大量的特征點軌跡進行三維重建,它能很好地恢復完整的三維非剛體表面,相較于稀疏的NRSfM算法而言更實用,因此稠密的NRSfM算法順理成章地成為現階段NRSfM算法研究的重點。
傳統的稠密NRSfM算法通常十分依賴于二維稠密光流質量,需要噪音足夠小的二維稠密光流才能進行較好的重建。因此,傳統稠密NRSfM算法的魯棒性并不高,且需要十分苛刻的條件才能保證重建精度。
在最近研究中,Sidhu等首次提出可學習的稠密NRSfM神經網絡(Neural Non-Nigid Structure from Motion,N-NRSfM)。與傳統稠密NRSfM算法相比,該模型的魯棒性更高,可擴展性更強且在許多場景中都能實現較低的三維重建誤差。但是他們的方法需要分別訓練用于三維重建的解碼器和用于圖像特征提取的編碼器,且只對隱藏層編碼進行周期性約束以提取運動信息,導致網絡對突然較大的變化不能作很好的處理。并且,網絡依賴于Tomas-Kanade分解求得三維剛性形狀,因此對誤差較大的二維運動軌跡十分敏感。
由于傳統的稠密NRSfM算法和可學習的稠密NRSfM神經網絡各有優缺點,本文考慮將傳統三維稠密重建算法和神經網絡高度結合,將三維重建過程嵌入神經網絡學習中,提出基于Transformer改進的稠密三維運動重建網絡。Transformer架構一個序列到序列的模型,它使用大量的自注意力機制提取序列之間的信息。此架構解決了傳統RNN難以并行化的缺點,可以處理長序列數據,避免了梯度消失和梯度爆炸等問題。由于Transformer強大的特征表達能力,近年來各種架構的Transformer被用于計算機視覺方面的研究。同時,Transformer架構中的注意力機制運算規則與三維重建任務較為相似,特別適合進行改造以用于三維重建任務求解。
考慮到單目視覺的非剛體三維重建是提取特征點軌跡的特征,并進行求解的過程,也可以將其看作是一個序列化的特征求解問題。因此,本文嘗試使用Transformer架構求解稠密三維重建問題。本文創新點如下:①由于測量矩陣本身反應特征點是隨時間變化的運動軌跡,且因式分解方法只需提取出形狀基,不需位置信息,因此本文直接將測量矩陣作為網絡輸入;②將三維重建任務所需中間矩陣作為查詢矩陣、鍵矩陣和值矩陣。將三維重建任務嵌入Transformer架構進行求解,同時添加適當的約束;③單個注意力點積計算之后增加Moore-Penrose偽逆操作替代傳統的點積注意力,通過對多個注意力頭的輸出結果進行線性組合,得到多頭注意力的輸出;④類似N-NRSFM中解碼器的方法,將Transformer中的MLP層用于對S
矩陣添加時空平滑、表面平滑等約束,使用漏斗形全連接網絡約束形狀矩陣的低秩性。采用傳統方法進行NRSfM問題研究,目前已有許多解決方案,可以從多幀的二維關鍵點中恢復必要變形對象的三維視點及形狀。然而,由于非剛性物體在發生運動時會發生形變,導致NRSfM實際上擁有較多約束,這也對正確分解三維視點和形狀構成了極大挑戰。因此,利用形狀和攝像機運動的先驗知識降低NRSfM問題的難度成為研究的主流方法,比如假設在時間和空間域上使用低秩子空間,又比如將二維特征點擬合到一組預先設計的DCT基函數中、時空域模型、利用時空間聯合中添加稀疏子空間聚類的形式。
近年來,一些學者鑒于神經網絡在許多領域的優良表現,嘗試利用神經網絡進行非剛體三維重建的求解。然而,在訓練神經網絡時,對大量圖像進行三維姿態的標注是非常繁重且困難的一項工作。因此,文獻[15]提出利用合成圖像對訓練數據進行增強處理,但這些辦法并不能很好地應用于現實場景。于是,研究者開始使用2D的姿態注釋、動作標簽等方式,以提高算法性能,可是這些方法也差強人意。因此,找到一種無監督的算法成為研究者們努力的方向。
由于稠密三維真實數據獲得需要十分昂貴的儀器,以及大量的數據和復雜且困難的激光建模算法,很長一段時間以來,基本上不可能有監督地訓練出有效的三維重建神經網絡。因此,無監督的三維稠密運動重建成為目前可行性較高的方案。Sidhu等在2020年首次利用無監督的神經網絡方法實現稠密的三維重建,他們從潛在空間中約束了三維運動,無監督地訓練神經網絡,第一次實現了端到端的稠密三維重建。但是他們的方法需要復雜的分布訓練,且提供隱藏編碼的周期性以完成運動信息提取,且需要剛性三維先驗,因此方法的限制條件較多,適用性不廣。
傳統的三維重建任務可以表示為:

W
∈?,三維形狀矩陣S
∈?,旋轉矩陣R
=blkdiag(R
,R
,…
,R)
∈?。基于分解的三維重建任務就是根據輸入的測量矩陣W,求得三維形狀矩陣S
和旋轉矩陣R
。在傳統的Transformer架構基礎上,結合稠密NRSFM的特點,本文提出了一種新的可用于稠密NRSFM的端到端的Transformer架構。以下將對網絡架構進行詳細分析說明。
2.1.1 將測量矩陣W作為Transformer網絡輸入
考慮到三維重建任務中需要全局的形狀基,而不是只關注相鄰幀,本文提出的Transformer架構直接將包含二維點軌跡信息的測量矩陣W作為Transformer網絡的輸入,去除了位置嵌入的過程。
2.1.2 注意力模型設計
在設計Transformer網絡時,注意力層的運算方法是網絡設計的重點。需要結合待解決問題的特點進行分析和設計。本文注意力層模型架構如圖1所示。
不同于傳統的注意力層,直接將輸入的線性映射作為查詢矩陣Q、鍵矩陣K和值矩陣V。

Fig.1 Attention layer architecture圖1 注意力層架構




2.1.3 多頭注意力模型的設計
本文提出的多頭注意力架構如圖2所示。多頭注意力層將輸入的查詢矩陣、鍵矩陣和值矩陣線性映射成為多個注意力頭進行并行計算,如同傳統的Transformer。在輸出時將各頭的輸出進行聯合線性組合輸出。最終輸出P
×3F
尺度的注意力矩陣,提取出測量矩陣時間尺度的信息。2.1.4 MLP層
MLP層的權值矩陣可以解釋為一個低秩線性子空間,類似文獻[2]中解碼層的全連接神經網絡。在MLP層,希望對形狀細節進行空間尺度上信息的線性組合并添加約束。因此,本文對多頭注意力架構輸出的注意力矩陣進行轉置操作,并將其輸入維度為P
的全連接層。為了約束輸出的秩為3k
,中間層的寬度為3*k,其中k為先驗軌跡基數量。本文MLP層架構如圖3所示,MLP層的輸入是多頭注意力層的輸出,GeLU為文獻[19]中提出的高斯誤差線性單元激活函數,Linear表示全連接層。
Fig.2 Multi-attention layer architecture圖2 多頭注意力架構

Fig.3 MLPlayer architecture圖3 MLP層架構
2.1.5 編碼層
將以上原子層堆疊成為一個Transformer Encoder層,如圖4所示。
Transformer網絡中Encoder層的基本框架如圖4所示。可以看出,本文提出的網絡與經典Transformer
不同的是,查詢矩陣Q和鍵矩陣K是直接通過經典矩陣分解算法求得的固定值,值矩陣則是通過對W矩陣的線性映射得到。2.1.6 Transformer總體框架
堆疊編碼層可以得到總的網絡架構,如圖5所示。在每個編碼層后,進行正則化操作,將數據拉回到均值為0、方差為1的正太分布上,使數據分布一致從而避免發生梯度消失。由于只需要編碼器的輸出,如同ViT(Vision Transformer),本文總體框架中也去除了解碼塊部分。

Fig.4 Basic framework of encoder layer for transformer network圖4 Transformer網絡Encoder層基本框架
值得注意的是,本文網絡中盡量在特征點維度進行正則化操作,因為將正則化操作使用在幀維度上會導致失去運動變化,使三維重建失敗。

Fig.5 NRSfM-Trans former framework圖5 NRSfM-Trans former架構
E
,支持梯度反向傳播并且可以在現代神經網絡框架(如:pytorch
等)中較好的實現和求解。
其中,α,β和γ是權重系數,影響每一項的平衡。下文將詳細解釋每一項損失函數的含義和作用。

E
損失函數約束了矩陣的重投影誤差,由經典的三維重建投影公式提供。
E
損失函數約束了相鄰兩幀之間的形變劇烈程度,增加了時間平滑度。
p
)表示p
的領域點集且p
∈S
(廣泛應用于計算機圖形學,詳細參考文獻[21])。E
損失函數是針對每一幀形狀矩陣的拉普拉斯平滑項。本文將對幾個廣泛使用的基準定量分析數據集和定性分析視頻進行實驗,實驗中出現的數據為廣泛使用的開源數據集,均已取得使用許可。
W
。Garg等提供的密集真實臉部數據集如圖6所示,它由120幀28 332個特征點組成。

Fig.6 Reconstruction result of real facedata圖6 真實人臉數據重建結果
圖7給出的是背部序列重建結果,它是一個150幀20 561個特征點的序列。背部序列也是一個十分經典的非剛體序列,盡管運動幅度不大,本文算法還是很好地重建了背部,甚至人物的肩胛骨也能看出來。

Fig.7 Reconstruction result of back sequence圖7 背部序列重建結果
演員動作捕捉序列也是一個經典的可以定性分析比較的數據集,同文獻[2]。將本文方法與Tewari等提出的人臉模型學習(Face Model Learning,FML)方法進行對比,定性比較結果如圖8所示。

Fig.8 Comparison of the proposed algorithms and FML algorithm圖8 本文算法與FML算法對比
心臟序列1重建結果如圖9所示,由80幀68 295個特征點組成。心臟序列有大量的噪音和不明顯的運動軌跡,因而是一個非常難以進行三維重建的數據。在本文算法下依稀能看見輪廓。心臟序列2重建結果如圖2所示,由202幀55 115個特征點組成。由于心臟序列2的清晰度更高,相對于心臟序列1而言,重建效果略好。

Fig.9 Reconstruction result of heart sequence 1圖9 心臟序列1重建結果

Fig.10 Reconstruction result of heart sequence 2圖10 心臟序列2重建結果
e
衡量算法優劣程度。
③
Kinect的paper序列,包含193幀58 000個特征點;④pants序列,包含291幀2 859個特征點。以上數據集在有地面三維真實形狀的情況下,利用正交投影獲取測量矩陣,否則使用多幀稠密光流對應求得測量矩陣。
在合成人臉序列,將本文三維重建框架與經典的傳統方 法MP、VA、PTA、DSTA、CDF、KSTA、CMDR,較新的傳統方法GM、JM、SMSR、PPTA、EM-FEM,以及稠密神經網絡算法N-NRSfM等方法進行比較。各種對比算法的e
值如表1所示。
Table 1 Comparison of the proposed algorithm with other algorithms in adult face sequences表1 本文算法與其他算法7成人臉序列比較
本文算法在Traj.A的重建結果如圖11所示。由于該合成人臉沒有噪音且平滑,是三維重建過程中比較理想的情況,因此最新傳統三維稠密運動方法效果優于神經網絡方法。但本文提出的網絡仍然達到了較高的重建水平。
在Expressions序列上,本文使用了EM-LDS、PTA、CSF2、KSTA、GMLI等方法進行比較。對比的實驗結果取自文獻[2],由于此數據集使用并不廣泛,因此文獻[2]中只使用了經典的方法進行比較,可見本文算法展現出了較大優勢。每個對比算法的e
值如表2所示。圖12展示了Pants序列的原三維結構和本文算法重建結果,表3給出了本文算法與其他方法的e
值。其中,KSTA、BMM和PPTA的實驗數據來源于文獻[32]。
Fig.11 Reconstruction results of synthetic face sequence A圖11 合成人臉序列A的重建結果

Table2 Expressions sequence comparison results表2 Expressions序列對比結果

Table3 Pants sequence comparison results表3 Pants序列對比結果

Fig.12 Reconstruction results of pants sequence圖12 pants序列的重建結果
在Kinect序列,本文按照Kumar等的描述,對Kinect紙張序列進行了預處理,并運行多幀光流算法獲取測量矩陣。在表4中列出了Kinect序列的e
,由于空間平滑項的存在,本文算法相較于傳統NRSFM
算法表現出了較大優勢。
Table 4 Kinect Paper dataset comparison results表4 Kinect Paper數據集對比結果
圖13展示了Kinect序列的原三維結構和本文算法的重建結果。

Fig.13 Reconstruction results of Kinect paper sequence圖13 Kinect paper的重建結果
本文提出一個新型三維重建的神經網絡方法NRSfMTrans former,該架構在各數據集上的表現都比較優良,接近最近較新的傳統三維重建算法。該網絡接受二維稠密光流作為輸入,得到三維運動結構,與現階段復雜的傳統方法對比,神經網絡的方法在工程實踐上要更加容易實現且可擴展性更高,給神經網絡解決稠密NRSFM提供了一個新的思路。但是該網絡對輸入測量矩陣的噪音敏感度較高,且不同視頻序列的測量矩陣維度不同,因此不能同時對多個視頻序列進行訓練。在下一步研究中,將考慮圖像輸入代替測量矩陣輸入。