【三維重建】PIFuHD:Multi-Level Pixel-Aligned Implicit Function for High-Resolution 3D Human Digitization

標題:PIFuHD: Multi-Level Pixel-Aligned Implicit Function for High-Resolution 3D Human Digitization
鏈接:http://xxx.itp.ac.cn/pdf/2004.00452v1.pdf

摘要

基於圖像的3D人體估計已經在深度神經網絡的幫助下取得了重大的進展。即使現在很多的方法已經證明在真實世界應用的潛力,它們仍然難以產生輸入圖呈現出的細節。作者認爲這來自於兩個衝突的需求:精確的預測需要更多的上下文,但是精確的預測需要高分辨率。由於硬件的內存限制,之前的很多方法把低分辨率圖作爲輸入以涵蓋更多的上下文,然後產生較低準確率的3D估計。作者通過形成一個多層次的端對端可循了結構來解決這個問題。粗略的層次在較低的分辨率下觀察整個圖像,並側重於整體推理。這爲通過觀察高分辨率圖像估計細緻的幾何結構提供了上下文信息。作者證明了他們的方法在該領域已經超過了SOTA。

1、介紹

高保真的人體數字化是大多數從醫學影像到虛擬現實的關鍵。儘管測量準確和精確的人體重建現在通過多場景系統已經成爲了可能,但是對於大多數人來講由於它依賴於專業的採集設備還是很難去使用。越來越多的人們開始使用高容量深度學習模型,然後效果比起轉業的採集設備還是有很大的差距。

作者工作的目標是實現從單張圖對着衣人體進行重建,實現一個足以分辨出手指、面部特徵和衣褶的分辨率。作者認爲現在的很多方法沒有充分利用高分辨率,儘管分辨率1k及以上的圖像現在通過手機就能很容易的獲取。這是因爲之前的工作更加依賴整體的推斷在2D外觀和3D形狀之間進行映射,由於內存要求過高,使用了低採樣圖像。儘管現在的圖像有很多能夠進行精細的3D重建的細節,但是由於圖形硬件內存的限制也很少使用。
着力於解決這個限制的可以被認爲是兩個陣營之一。第一個陣營,問題被分解爲一個由粗到細的方法,在低保真度表面上壓印高頻細節。這種方法中,低圖像分辨率被用於去獲取粗略外形,然後細節通過例如Shape From Shading或神經網絡中的合成的方式進行添加。第二個陣營使用人體的高保真模型來產生合理的細節。儘管兩種方法都使重建更加細緻,但是細節並非是原圖中的細節。
本文提出的方法是一個端到端的多層次框架,不需要後處理。不同於從粗到細的方法,作者的方法沒有明確的幾何結構表示被加強,相反,隱式編碼的幾何上下文被傳播到更高的層次,而不必對幾何體的過早性做出明確的決定。作者們基於最近提出的像素對齊隱式函數(Pixel-Aligned Implicit Function, PIFu)表示法。該表示的像素對齊特性使我們能夠以一種原則性的方式將從粗糙推理中學習到的整體嵌入與從高分辨率輸入中學習到的圖像特徵無縫融合。每一級增量地包含在粗略級別中丟失的附加信息,最終確定的幾何圖形僅在最高級別中進行。
最後,爲了完整的重建,系統需要恢復背面,在圖像中並沒有給出的信息。隨着低分辨率輸入,失去一些不可預測的信息是難免的,會造成總體的平滑與模糊。作者通過利用image-to-image轉換網絡產生背部信息來克服這個問題。
本文工作的主要貢獻如下:

  • 實現了一個端到端可訓練的從粗到細的框架來實現1k分辨率圖像的重建
  • 提出了一個能夠有效處理不確定區域的方法,能夠實現精細的完整重建

2、相關工作

Single-View 3D Human Digitization

單視圖三維人體重建是一個不適定問題,其主要原因是攝像機光線的深度模糊。爲了克服這種模糊性,參數化三維模型通常被用於將估計限制在一組小的模型參數上,將解空間限制在特定選擇的參數化實體模型上。然而,結果模型的表達能力受限於使用單個模板網格以及在其上構建模型的數據(通常主要由衣着簡陋的人組成)。雖然使用單獨的參數化模型可以緩解有限的形狀變化,但對於這些形狀表示,大變形和拓撲變化仍然是不容易處理的。
當然也有不適用參數化模型的方法,而是直接從單個視圖迴歸“自由形式”的三維人體幾何。這些方法基於根據使用的輸入輸出表示不同而改變。有些方法通過volumetric representation表示輸出,離散體素表示所要求的例題內存要求,僅僅通過簡單地縮放輸入分辨率就無法獲得高分辨率。另一種方法是在參數模型空間上考慮附加的自由變形,還有多種方法可以預測目標人物的深度圖作爲輸出。
最近提出的 Pixel-Aligned Implicit Function(PIFu)方法效果比較好,作者也採用了這個方法。

High-Resolution Synthesis in Texture Space

很多現在的放到都通過紋理映射表示來重建高質量的3D紋理或幾何結構。Tex2Shape方法通過迴歸展開的UV空間來重建高質量的3D集合結構。然後這種方法受限於模板網格的拓撲結構(表示不同的拓撲結構,例如不同的髮型或裙子)和UV參數選擇的拓撲(例如在紋理接縫處可見的接縫僞影)。
作者的方法也關於產生高質量和高分辨率的合成人類圖片,現在考慮產生高質量合成臉來克服原生GAN方法侷限。類似的權衡在語義分割中也有。

3、具體方法

作者的方法基於最近提出的Pixelaligned Implicit Function (PIFu) 框架,能夠輸入512 × 512 的圖片產生低分辨率的特徵embeddings(128 × 128)。爲了實現高分辨率的輸出,作者在框架的頂部加入了一個額外的像素對其預測模塊,另一個模塊把高分辨率特徵embeddings和3D embeddings來預測occupancy
probability field。爲了進一步重建的質量和保真度,作者首次預測圖片空間中前後面的正則映射,並將這些信息作爲額外輸入傳入模型。

Pixel-Aligned Implicit Function

下面簡單介紹下PIFu的基礎,組成了作者方法的粗層面。3D 人體數字化的目標可以通過估計密集3D體積的佔用實現(這裏不太懂),決定3D空間中的點是否在人體內。相對於之前的方法目標3D空間被離散化並且算法顯示地關注每個體素,PIFu的目標是建模一個能夠預測每個在連續的相機空間中給的3D位置binary occupancy value的函數。

既然沒有訓練過程中顯式的3D容量被存儲在內存中,這個方法能夠比較節約內存。更重要的是,對於目標3D容量並不需要離散化,這對於獲取目標人體高保真的的3D幾何結構是很重要的。 PIFu通過一個神經網絡結構來擬合這個函數,使用端到端的方法訓練。
另外,函數f最初從映射的2維位置提出一個圖像特徵embedding,通過φ(x, I)表示。正交投影被用於特徵提取變換π中,因此x = π(X) = (Xx, Xy),然後估計3D點的occupancy情況。

這裏這個Z是通過2D投影x沿着射線定義的深度。注意所有沿着一個射線來自一個投影位置x的3D點有一樣的圖像特徵φ(x, I),,所以g應該關注深度Z。其中φ是一個CNN,g是一個MLP。
f使用大量的合成高質量3D人體網格模型來訓練,不同於基於體素的方法,PIFu不產生離散的容量作爲輸出,因此訓練可以通過採樣3D點和計算occupancy loss在實現,不需要產生3D網格。推斷過程中,3D空間非正式的採樣來推斷occupancy並且最後的等值面使用marching cubes根據閾值0.5來提取。
Limitations
現存PIFu的輸入圖像尺寸被限制在最大512 × 512或128 × 128,主要由於硬件設備的限制。很重要的一點是,網絡需要被設計它的感受野能夠覆蓋整個圖像,從而可以被部署到整體的推理。因此一個重複的自底向上和自頂向下的方法在魯棒的三維重建中發揮了重要的作用。這防止了該方法將高分辨率圖像作爲輸入並將分辨率保持在特徵嵌入中,即使這可能允許網絡利用僅在這些高分辨率下存在的關於細節的提示。(這句沒看懂,強行翻譯了一波)作者發現儘管在理論上PIFu連續的表示可以代表任意的方式的3D幾何,但在實際情況下受限於特徵分辨率。因此,需要一個更有效地方式平衡全局觀察的魯棒性和高層特徵嵌入分辨率的表達。

Multi-Level Pixel-Aligned Implicit Function


這張圖還是能很好地描述基本的架構,輸入圖像在PIFu中計算一個低分辨率的情況,卷積後通過mlp,mlp中還需要加入深度信息,然後得到的結果一個通過mlp輸出,一個與下面前後估計通過cnn後的結果合併,然後通過mlp得到一個高分辨率的情況。
文中提出的模型以1024 × 1024分辨率的圖像作爲輸入,採用了多層次方法來實現高保真的3D人體數字化。作者的方法由兩個層次的PIFu模塊組成,一個類似PIFu的粗略層次,注重通過下采樣的512 × 512作爲輸入合併幾何信息,併產生128 × 128的主幹圖像,另一個細層次的通過原來1024×1024的圖像作爲輸入產生細節,產生512×512分辨率的圖像特徵。值得注意的是,細層面的模型將從出層面而不是絕對深度值提取出3D embedding特徵。作者的粗層面模型被定義的很類似於PIFu,但是作爲一個改良版,它還接受預測的正面和背面normal maps:

IL是低分辨率輸入,FL和BL是預測的normal map
細層次的表示如下:

其實IH, FH和BH分別是輸入圖像、正面normal map和背面normal map
因爲細層面從第一個像素對齊的MLP提取特徵作爲一個3D embedding,全局重建質量不應該退化,並且如果設計的網絡能夠被合理的利用還會提升圖像的分辨率和網絡容量。另外,細層面的網絡不應該處理正則化因此不需要看到整個圖片,從而使作者能夠通過輸入層面的裁剪區域作爲輸入。因此可以使用某一區域更加高分辨率的圖像輸入。

Front-to-Back Inference

精確地預測人背部的集合是一個難以解決的問題,因爲它無法從圖像中看到。背面應該因此由MLP預測,由於問題的歧義和多模態的本質,三維重建趨向於平滑以及沒有太多特徵。部分原因是佔用損失有利於不確定條件下的平均重建,但也因爲最終的MLP層需要學習複雜的預測函數。
作者發現如果轉換推斷問題爲特徵提取階段,那麼網絡可以產生更加不平滑的重建幾何結構,爲了實現這個,作者爲圖像中的3D幾何結構預測normal maps作爲代理,並且將其作爲像素對齊預測期的特徵。從而三維重建就由這些map來引導推斷一個特定的3D集合結構,使MLP能夠更容易地產生細節。作者使用pix2pix網絡來預測前後的normals,從RGB圖像映射到normal maps。類似於最近的一些方法,作者發現這個能在問題域限制下爲看不見的背面產生合理的輸出。

Loss Functions and Surface Sampling

代價函數的設計對於模型的學習效果有重要的作用,作者並沒有使用L1或L2 loss,而是使用了BCE loss。公式如下:

作者使用了uniform volume sample和在表面通過uniformly sampled表面的點使用高斯攝動進行importance sampling。作者發現該方法比採樣點與距離曲面的倒數成比例得到更銳化的結果。事實上,在表面使用混合高斯球得到一個更好的有着高曲率的採樣密度,從而也能增強細節。
//翻譯的很爛,確實很多術語沒怎麼看懂

4、實驗結果

// 使用的數據集和數據處理方式還是有很多值得學習的地方,時間關係暫時略過,具體可以看原論文




總結

作者提出了一個多層次的框架,能夠將總體軀幹信息與具體的細節合併,來實現一個從單張圖片中的高分辨率着衣人體三維重建,不需要任何後處理方法。作者通過作爲隱式三維嵌入的比例金字塔增量傳播全局上下文來實現多層次Pixel-Aligned Implicit Function,防止在先驗不足的情況下進行明確的幾何預測。
由於多層方法依賴於先前階段提取三維嵌入的成功,因此提高基線模型的穩健性將直接提高整體重建精度。未來的工作可能包括合併特定於人類的先驗知識(例如,語義分割、姿勢和參數化三維人臉模型)和添加隱式曲面的二維監督,以進一步支持wild輸入。
總的來說,作者通過兩條分支,分別得到粗層次和細層次的信息,這樣軀幹需要更大區域,而細節需要更大分辨率的問題就得以解決,然後將兩者合併起來,得到最後的三維重建結果,這個多層次、分別處理的思想解決了人體三維重建精度的一個矛盾。然後,跟進比較新的技術,作者使用Pixel-Aligned Implicit Function、pix2pixHD網絡實現分支的具體計算,並設計了很清晰的數學表示。除了使用BCE loss,比較重要技巧還有合適的採樣模式,有利於整體三維重建的效果。
最後,儘管讀的很喫力,很多細節來不及挖掘,但是對人體重建的還是有了一點了解,後面有時間儘量對裏面用到的一些技術與之前的一些工作進行學習,進一步接觸這個領域。就本文而言,最大的貢獻可能就是提出了這個多層次的網絡,妥善地解決了總體信息與細節的問題,但是這個類似confusion的思想在語義分割也是很常見的,所以夠想並不是特別的難,關鍵在於發現這個影響精度的問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章