基於點雲的骨骼感知三維人體形狀重建
Skeleton-Aware 3D Human Shape Reconstruction From Point Clouds
論文鏈接:
摘要
這項工作解決了從點雲重建三維人體形狀的問題。考慮到人體形狀具有高維、大關節的特點,采用最新的參數化人體模型SMPL來降低學習空間的維數,生成平滑有效的重構。然而,由於位姿表示的模糊性和局部性,SMPL參數,特別是位姿參數不易學習。因此,本文建議將骨骼感知融入到三維人體形狀重建中基於深度學習的SMPL參數回歸中。本文的基本思想是使用尖端技術PointNet++提取點特征,然后將點特征映射到骨架關節特征,最后映射到SMPL參數,用於點雲重建。特別地,本文開發了一個端到端的框架,其中本文提出了一個圖聚合模塊,通過提取更好的點特征來擴充PointNet+,一個注意模塊,通過更好地將無序的點特征映射到有序的骨架關節特征,以及一個骨架圖模塊來提取更好的關節特征來進行SMPL參數回歸。整個框架網絡首先在綜合數據集上以端到端的方式進行訓練,然后在線調整到未經觀察的數據集上,在無監督的情況下損失以彌補訓練和測試之間的差距。在多個數據集上的實驗表明,本文的方法與最新的解決方案相當。
1. Introduction
本文提出用點特征到骨架特征,再從骨架特征到SMPL參數的映射來代替點特征到SMPL參數的映射。然而,這條新管道又帶來了另一個障礙。眾所周知,PointNet++提取的點特征是無序的,因為它需要適應點的排列,而后續的關節特征則需要遵循骨架圖的特殊順序。從無序的點特征映射到有序的聯合特征,同時對點的排列具有魯棒性,這是一個重要的問題,為此本文提出了一個注意模塊(AM)。另外,本文注意到PointNet++仍然使用多層感知(MLP)獨立地學習各個點的特征,並通過鄰域間的池來累積局部上下文,因此本文提出了一個基於圖卷積的局部圖聚合(GA)模塊,以充分利用鄰域間的局部上下文而不必承擔巨大的內存負擔需求和點交互損失。
此外,本文還提出了一個基於圖卷積的骨架圖模塊(SGM),利用骨架圖中的關節依賴關系來學習更好的關節特征。圖1描繪了正在對合成數據進行端到端訓練的整個網絡管道。還引入了一個在線調整步驟來利用無監督的損失來緩解數據集的差距。
本文的主要貢獻有兩方面。
•本文建議將骨骼感知納入三維人體重建中基於深度學習的SMPL參數回歸。重點介紹了點特征到骨架關節特征再到點雲重建的SMPL參數映射的一般流程。
•本文開發了一個端到端的框架,在這個框架中,本文提出了一個圖形聚合模塊,它被添加到PointNet++中以提取更好的點特征,一個注意模塊來更好地映射無序的點特征,即添加到有序骨架關節特征中,並通過骨架圖模塊提取出更好的關節特征用於SMPL參數回歸。
2. Related Work
在這一部分中,本文回顧了三維人體形狀重建、基於骨架的人體分析、點雲分析和圖形神經網絡的相關工作。三維人體形狀重建:隨着深度學習的普及,最近的研究嘗試使用神經網絡直接學習從點雲[13,20]或圖像[42,31,16,5,27,1,28]重建三維人體。Groueix等人 [13] 直接學會變形一個給定的模板進行人體重建,但往往得到扭曲的人體形狀,特別是在手臂的形狀上。利塔尼等人 [20] 提出了一種變分自動編碼器來學習可變形形狀的完成,這往往會導致粗糙表面。瓦羅爾等人 [42]學會了用低分辨率的體積表示重建人體的體積形狀。
利用參數化人體模型,從單個圖像[31、16、5]重建也變得可行。另一種不同的方法[40,33,47]是通過預測人體表面的密集對應關系來重建人體形狀。在本文的工作中,本文還使用SMPL模型[21]作為人體形狀的表示。另一項相關研究是動態人體重建或運動捕捉,它探索了行為人的時間一致性[48,15,14],甚至可以重建衣服和紋理[54,4,2]。 然而,魯棒的人體姿態估計仍然是一個有待解決的問題,特別是對於快速運動,基於序列的人體重建嚴重依賴於良好的人體姿態初始化。因此,在最近的工作中,IMU傳感器被引入到魯棒姿態估計中[55,45]。本文的工作側重於不同的場景,即從原始點雲進行三維人體重建。
基於骨骼的人體分析:
骨骼信息廣泛應用於運動捕捉[48,51,52]和人體重建[10,21,22,53]。參數化人體模型,例如SMPL[21],依賴於人體骨架進行形狀蒙皮。一些人類重建方法[10,51,48]也利用骨骼估計作為指導。然而,這些工作主要集中在骨骼關節位置的探索上,而忽略了它們之間的關系。Lee等人[19] 建議使用LSTM來利用關節關系,但它只允許將特征從父關節傳播到子關節。相比之下,本文提出利用圖卷積網絡(GCN)在連接的骨架圖節點間傳播特征,這有助於探索父節點和子節點的特征。另一類相關的工作是關於人體姿態估計的[37,38,9,29,30],其重點是預測二維或三維關節位置。最新的二維姿態估計方法[9]可以很好地預測人體關節,即使存在多人交互,其成功部分歸功於對人體關節之間關系的監督。三維關節姿態估計仍然是一個懸而未決的問題,主要是由於三維標記的困難和三維空間的模糊性。
最近的工作[37,38,30]通過探索多視圖一致性或幾何一致性以無監督的方式獲取3D聯合預測,但是沒有探索用於姿勢估計的聯合相關性。基於學習的點雲分析:點雲分析因其在三維分析中的重要作用而引起了計算機視覺界的廣泛關注[34,35,50,39]。開創性的工作[34,35]介紹了點雲分析中的幾個重要概念,包括點置換的不變性和點相互作用的捕獲。然而,最先進的方法PointNet++[35]使用多層感知(MLP)進行單點特征學習,並在鄰域之間進行融合,以獲得排列不變的特征,從而獲得重要的局部信息。盡管Klokov等人[18] 使用kdtree來解決此問題,但是當點雲旋轉時,kdtree中的分割位置可能會突然變化。EdgeConv[46]是解決這個問題的一個很好的方法,但是它們需要一個全局knn圖,這會導致空間和時間上的O(N2)復雜性。相比之下,本文使用一個由極少數點構成的局部KNN圖來捕捉與鄰居的點交互,並應用快速圖卷積來提取相互關聯的點特征。圖形結構上的神經網絡:不規則圖形上的學習特征在許多應用中都很流行,如三維幾何數據分析[23,44]、社會網絡分析[24]、動作識別[49]和姿勢估計[12,8]。
現有的圖卷積網絡可以分為兩大主流:基於空間的和基於譜的。基於空間的方法[25,41]通過直接過濾圖形上的局部鄰域來學習特征,由於內存限制,每層只能考慮有限數量的鄰居。譜化方法[7,23]通過拉普拉斯矩陣的特征分解來學習傅里葉域的特征。然而,由於特征分解的不穩定性和計算量大,使得它不適合處理噪聲點數據。折衷的方法是圖的快速譜卷積[36,17,11],它使用k階切比雪夫多項式來近似譜卷積,從而避免特征分解。在這項工作中,本文采用了快速譜卷積,並將其應用於點圖和骨架圖。
3. Preliminary
3.1. Parametric Human Model
參數化人體模型,如SCAPE[3]和SMPL[21],通過將人體形狀的變化作為形狀和姿勢參數的函數進行編碼,提供了人體形狀的緊湊表示。特別是,SMPL的最新表現形式提供了許多好處。首先,人體形狀和姿勢是分離的,這允許對形狀或姿勢進行獨立分析或控制[31,16]。其次,SMPL通過使用蒙皮過程對變形進行建模,避免了對粗糙和扭曲形狀的直接建模,這是基於神經網絡的方法[42、20、13]所頭疼的問題。最后,SMPL是可微的,因此可以很容易地與神經網絡集成[31,16]。
在本研究中,本文采用SMPL作為三維人體模型的底層表示。特別地,SMPL由形狀參數、姿態參數和全局平移參數組成。形狀參數β∈R10用於形狀混合,並對全局形狀信息進行編碼。姿態參數用於姿態混合和蒙皮,並對相鄰關節之間的局部信息進行編碼,但根關節的姿態參數表示整個形狀的全局旋轉。請注意,SMPL中的姿勢參數表示從關節到其父關節的相對旋轉。它不同於二維或三維人體姿勢估計[37,9],其中姿勢指關節位置。示例如圖2所示。盡管原始的SMPL模型使用軸角表示作為姿態參數,但本文選擇了四元數表示,因為它消除了軸角表示中的模糊性[56]。這導致24個關節的姿態參數α∈R96,每個關節用4個值的四元數表示。在這項工作中,本文不考慮全局平移參數,因為一旦已知人體姿勢或通過規范化輸入點雲來處理,就很容易推斷出全局平移參數。
3.2. Convolutions on Graph Structures
以往關於人體關節或姿態估計的研究主要是利用多層感知器來估計姿態。本文認為這種設計很難學習關節之間的關系,並建議使用圖卷積運算來利用關節關系進行特征學習。具體來說,本文采用快速局部化光譜卷積[36,17,11]來捕獲聯合相關性。此外,本文還提出利用圖卷積技術,通過構造一個由k近鄰連接而成的鄰域圖來捕捉三維點雲中的點相互作用。
4. The Proposed Method
圖1給出了所提出的網絡體系結構的概述,該網絡體系結構以具有N1個點的3D點雲{pi}N1為輸入,並輸出SMPL形狀和姿勢參數,這些參數隨后被輸入到現成的SMPL模型中以獲得重構的3D人體網格。整個網絡主要由三個模塊組成:一個用於提取點雲特征的改進的PointNet++模塊(PointNet++W/graph aggregation(GA)),一個用於幫助將無序點特征映射到有序骨架關節特征的注意力模塊(AM),以及一個用於提取關節特征的骨架圖模塊(SGM)回歸SMPL參數。最后,將估計出的SMPL參數輸入到現成的SMPL模型中,得到重構的三維人體網格,並與訓練時的地面真值進行比較,與測試時的輸入點雲進行比較,作為在線調整。注意,SMPL模型是可微的,因此通過SMPL函數的后向傳播可以很容易地獲得后向梯度。下面,本文將詳細描述這三個主要模塊。
4.1. Feature Learning for Point Clouds
在這一步中,本文采用PointNet++[35]作為主干,提取N2個采樣點上定義的特征,這些特征通過最遠點采樣獲得,如PointNet++。雖然PointNet++是一個非常強大的點雲特征提取框架,但是它的卷積操作仍然在每個點上執行(參見圖3(a)),這並不能正確地探索點之間的交互。基於卷積神經網絡(CNN)在圖像上的巨大成功,它通過將相鄰像素與不同類型的濾波器卷積來學習特征,本文提出了通過合並圖形卷積來學習局部模式來修改PointNet++。特別是,給定一組點,本文將局部鄰域(S&G模塊)作為PointNet++進行采樣和分組,但是使用圖3(b)所示的圖聚合(GA)模塊來學習每個點組的特征,而不是使用PointNet。具體來說,GA模塊基於相鄰點的歐氏距離構造局部圖,只保留k個最近鄰(實驗中k=2)。然后本文計算拉普拉斯矩陣L,並執行如第3.2節所述的快速局部化譜卷積。該方法有助於學習不同步長鄰居點特征的不同權值。在本文的實現中,對於不同的分辨率,使用不同參數的S&G模塊和SA模塊總共應用三次,並輸出圖1所示的N2點的最終特征,其中本文設置N2=64,對三個S&G模塊使用1024256,64點。
4.2. Attention Module
利用所提取的N2點特征,下一步是將其映射到N3骨架關節的特征中,如圖1所示。然而,由於點雲中的隨機性,N2點沒有任何特定的順序。PointNet++[35]使用池操作將局部點特征聚合為全局特征,如圖4(a)所示,該操作提供對點的排列的不變性,但會導致點特征的丟失。在本研究中,本文提出一個注意模組來保留局部的點特徵,同時保持點序不變。特別地,注意模塊根據點特征動態地學習每個點對不同骨架關節的相對貢獻(參見圖4(b))。根據貢獻權重與骨骼關節的相關性,通過多層感知網絡調整貢獻權重。本文同時利用集合特征和每個點上的特征來預測這些相對權重。圖4(c,d)中顯示了一些備選方案。圖4(c)中的一個直接復制了池特征N3次,這將不能很好地工作,因為不同關節上的特征是相同的。圖4(d)直接使用MLP進行映射。權值一旦學習就固定了,因此不能動態地適應輸入的排列或變化。在本文的實現中,根據SMPL中的定義,N3被設置為24。圖2所示為24個接頭的示例。
4.3. Skeleton Graph for Parameter Estimation
此步驟的目的是回歸SMPL形狀參數β和姿勢參數α。透水解[31,16]通過類似於圖5(a)的MLP網絡直接預測SMPL參數。然而,他們的研究表明,即使在完全監督的訓練中,也很難預測SMPL參數。這是因為SMPL形狀和姿勢參數以非線性方式相互作用。形狀參數用於靜止姿態下的關節預測,並與由姿態參數導出的關節變換進一步耦合。由於細化過程的存在,姿態或形狀參數的誤差會導致人體形狀產生較大的變化,但姿態參數起主要作用。因此,本文建議利用骨架圖來整合領域知識,以獲得更好的SMPL參數回歸,而不是基於MLP的直接回歸。特別地,本文開發了一個骨架圖模塊(SGM)(見圖5(b)),它以24個骨架關節上定義的特征作為輸入,並在兩個不同的分支中復制它們,分別用於回歸形狀和姿勢參數。為了捕獲相鄰關節之間的依賴關系,在第3.2節中描述了圖卷積。用於學習更好的關節特征。姿態分支通過四層圖卷積直接預測每個關節上的四個姿態參數。形狀分支通過三層圖卷積學習局部關節的特征,然后用MLP預測10個形狀參數。注意,SM中的Laplacian矩陣L是以關節為節點構造的,對於任意兩個連接的關節i和j,wij=1。
4.4. Offline Training and Online Tuning
為了以全監督的方式訓練整個網絡,本文需要點雲對和相應的3D地面真值網格,其頂點數(N4=6890)和拓撲結構與SMPL網格相同。構建這樣一個大規模的訓練數據集既費時又費錢。為了避免這種困境,本文求助於綜合數據的培訓。具體來說,本文采樣了一組形狀和姿勢參數作為超現實[43],然后將這些參數輸入到SMPL模型中生成三維人體網格。輸入點雲是通過在SMPL網格上采樣三維曲面點生成的。
5. Experiments
5.1. Datasets and Evaluation Metrics
合成數據集:
本文的網絡是在綜合數據集上訓練的。本文利用超現實數據集[43]為在真實場景中捕獲的模型提供SMPL形狀和姿勢參數,這使得能夠生成具有大變化和合理姿勢的大量人體形狀。具體來說,本文直接將形狀和姿態參數作為超現實的樣本,生成訓練數據5120例,驗證數據128例,測試數據1024例。
動態數據集:
本文還在Dyna數據集[32]上評估了本文的算法,該數據集提供了具有SMPL拓撲的注冊網格。測試數據集是從每個原始網格中隨機抽取6890個點,分為“跳躍千斤頂”和“原地跑”兩個復雜運動序列生成的。DFAUST數據集[6]提供對不同運動中的幾個人的原始掃描。本文在數據集中的所有序列上評估了本文的算法。Berkeley MHAD數據集[26]提供了Kinect的兩個深度序列和人類關節位置。根據所提供的攝像機參數,將深度圖像合並為一個點雲,並利用人體關節所跨越的邊界框裁剪出人體區域。對兩個運動序列進行評估。在圖6中,本文展示了一些測試示例。
評估指標:
本文考慮有和沒有基本真理網格的情況。對於綜合測試數據集和Dyna數據集,已知地面真值網格,因此本文計算從預測到地面真值的平均頂點歐氏距離,如式(3)。注意,本文使用逐點距離而不是逐點距離,因為它可以更好地反映重建結果的失真。對於DFAUST數據集和MHAD數據集,當地面真值網格未知時,本文計算平均點到點距離Dp2v(即等式(4)中的第一項)和平均點到點距離Dv2p(即等式(4)中的第二項)。注意,本文報告所有測試實例的平均值和最大值,以顯示算法的平均性能和糟糕性能。
5.2. Ablation Study
表1顯示了本文的方法及其變體在合成數據集和Dyna數據集上的平均和最大平均距離。注意,所有方法在綜合測試數據集中都會產生較大的最大平均網格誤差。如圖6所示,這是由一些過度彎曲的形狀引起的。為了評估GA模塊的影響,本文創建了一個名為本文的GA的基線,將GA替換為圖3(a)所示的原始PointNet++模塊。通過比較本文的遺傳算法和表1中的結果,本文可以得出這樣的結論:將圖形卷積合並到PointNet++中以促進點交互是有益的,將性能提高了至少4毫米。為了評估注意模塊(AM)的效果,本文通過分別用圖4(c)和(d)所示的兩個替代模塊替換AM來構建兩個基線:本文的AM+池和本文的sam+MLP。從表1可以看出,本文的AM+池的性能很差,因為池操作和特性復制為不同的關節提供了相同的特性。通過簡單的MLP映射(圖4(d)),本文的AM+MLP達到了合理的性能,但與本文的相比仍有至少13mm的間隙。這是因為一旦訓練完成,MLP的映射權矩陣就固定了,這就阻止了網絡捕捉不同輸入排列的動態映射關系。
為了評估骨架圖模塊(SGM),本文用多層感知器代替SGM,構造了一個名為Ours SGM+MLP的基線,在姿態估計中得到了廣泛的應用[31,16]。比較本文的SGM+MLP和本文的結果,可以看出SGM至少可以提高5mm的重建精度。系統的另一個選擇是直接預測SMPL參數,而不是使用注意模塊和骨架圖模塊。這個實驗是通過用池操作和MLP(在Tab1中表示為本文的AM SM+POOL+MLP)替換AM和SGM來進行的) 是的。
本文可以看到,這會導致更糟糕的結果(至少13毫米下降)。 最后,本文在表2的最后一行評估了所提出的在線調整方案。比較不在線和在線微調的結果,分別表示為本文的(初始)和本文的(最終),本文可以看到,在線微調可以通過適應Dyna數據集上的新數據(這不同於合成數據集上的訓練數據)大大提高性能。圖7提供了一些可視化結果,進一步說明了fline訓練和在線調諧的結合使得網絡能夠適應新的領域。
5.3. Comparisons to the State-of-the-art
本文將本文的方法與兩種最新的方法進行了比較,即3DCODED[13]和SMPLify方法[5]。對於3DCODED[13],本文直接使用作者發布的代碼進行比較。本文評估在本文的訓練數據集(表示為3DCODED syn)和作者的預訓練模型(表示為3DCODED author)上訓練的模型,后者使用更多的數據進行訓練(大約200k)。請注意,3DCODED還使用經過訓練的網絡生成初始重建(initial),然后優化其表示以獲得更好的重建(Final)。由於難以使用SMPL模型直接優化SMPL參數,Bogo等人 [5] 提出了幾種重要的姿態預測器,以防止過彎,實現重建的成功。因此,本文用文[5]的方法進行比較,而不是直接用SMPL模型進行優化 [5]的代碼也可用,但速度很慢。因此,本文在GPU上重新實現了它,以加快進程。
本文考慮SMPLify方法的兩個版本:SMPLify mesh和SMPLify-pcd,前者是優化SMPL參數,使重建網格接近給定的SMPL地面真值網格,后者是將重建網格擬合到給定的點雲。請注意,SMPLify網格實際上是上界,這表明SMPL模型在給定具有相同拓撲的基本真值網格的情況下可以生成最好的網格。
表2顯示了Dyna數據集上的比較結果。本文可以看到SMPLify網格可以很好地擬合地面真值網格,但是SMPLify pcd在沒有給出對應關系的點雲中表現不佳。本文的方法在初始網絡輸出和最終重建方面都優於3DCODED。圖8給出了一個示例的視覺比較。三維編碼[13]可以很好地重建人體姿態和粗糙形狀,但其結果可能會受到粗糙或過彎網格的影響,如圖8所示。本文還通過復制[20]中的圖來顯示[20]重建結果的有限質量。其他結果。本文還將本文的框架應用於人類完成和重建的原始掃描。在DFAUST數據集上的比較結果如表3所示,其中本文的方法優於用相同數據訓練的3DCODED[13]和SMPLify[5],而與用更多數據訓練的3DCODED[13]相比。本文還對由Berkeley MHAD數據集的兩幅深度圖像生成的點雲進行了測試,結果如表4所示。
圖9中的視覺比較表明,本文的方法獲得了比其他方法更理想的重建結果。
限制在本文的實驗中,本文發現本文的方法在女性形狀重建中有較大的誤差,尤其是胸部、腹部和臀部(見圖8)。本文推測這是從SMPL表示繼承來的,因為SMPLify網格顯示出類似的問題。可能的原因是SMPL模型只對形狀使用10個參數,這使得用中性形狀的較大派生來建模身體部位變得困難。另一個主要的限制是本文的方法僅限於SMPL模型,只能重建裸體人體的形狀。
6. Conclusion
這項工作解決了從點雲重建三維人體形狀的問題。考慮到人體形狀具有高維、大關節的特點,采用最新的參數化人體模型SMPL來降低學習空間的維數,生成平滑有效的重構。然而,由於位姿表示的模糊性和局部性,SMPL參數,特別是位姿參數不易學習。因此,本文建議將骨骼感知融入到三維人體形狀重建中基於深度學習的SMPL參數回歸中。本文的基本思想是使用尖端技術PointNet++提取點特征,然后將點特征映射到骨架關節特征,最后映射到SMPL參數,用於點雲重建。特別地,本文開發了一個端到端的框架,其中本文提出了一個圖聚合模塊,通過提取更好的點特征來擴充PointNet+,一個注意模塊,通過更好地將無序的點特征映射到有序的骨架關節特征,以及一個骨架圖模塊來提取更好的關節特征來進行SMPL參數回歸。整個框架網絡首先在綜合數據集上以端到端的方式進行訓練,然后在線調整到未經觀察的數據集上,在無監督的情況下損失以彌補訓練和測試之間的差距。在多個數據集上的實驗表明,本文的方法與最新的解決方案相當。