[CVPR2020最佳論文詳細解讀] Unsupervised Learning of Probably Symmetric Deformable 3D Object

本文是基於CVPR2020最佳論文,來自牛津VGG組的吳尚哲學Unsup3D。除了中文的詳細解析外,我在作者的代碼基礎上,將可微分渲染模塊由原來的Neural Renderer替代爲Soft Rasterizer,取得的效果勉強過關~。

0. Abstract

本方法的目的是爲了從raw single-view images(原始單個視角的單張圖片恢復/學習到3D的可變形的對象.

我們的方法基於Auto Encoder, 其將輸入的圖像解耦爲depth, albedo, viewpoint以及illumination.

爲了在無監督的情況下對上述的4個變量進行disentangle(解糾纏).

我們基於一個假設: 即很多對象在原則上是符合對稱結構的。

作者通過爲可能對稱的對象預測一個對稱的probability map來建模。以end2end的方式學習depth, albedo, viewpoint以及illumination等.

相比使用監督信號的2D對手,作者說他們的效果更好!

1. Introduction

在這裏插入圖片描述

圖1說明
根據in-the-wild 圖像恢復3D deformable object.
: 用於訓練的數據格式(只有單一視角的圖像本身,沒有GT的3D 信息, multiple views或者其它任何先驗模型)
: 一旦訓練完成,我們的模型可以以很高的標準完成從單張圖片重建3D模型的pose, shape, albedo以及illumination.

理解圖像中的3D結構對於許多的CV應用來說,有着非常重要的意義。此外,當許多的神經網絡看起來已經對圖像的2D紋理信息(Texture)掌握的越來越好時,3D建模可以解釋自然圖像的許多可變性,並有可能提高圖像的一般理解。

基於此,吳尚哲開始研究從2D圖像中恢復3D結構的問題。我的理解是,吳同學爲了區分同馬普所的RingNet等利用先驗知識的方法。

他的2D-3D恢復任務中,設定的第1個條件就是: no 2D or 3D GT information. 這樣一來,蒐集image collection的問題就被解決了,並極大的降低了將深度學習(Deep Learning)應用於這種任務的數據蒐集難度。

第2個條件是: the algorithm must use an unconstrained collection of single-view images. 這樣一來,通過單人的多個視角圖片恢復3D model的方法的侷限性被打破。這個條件是爲了解決在很多情況下,我們只擁有一張still image(靜態圖片)去處理。

因此,吳同學的基於single-view image恢復3D deformable object的思路在這裏被提出,目的是: 根據單張輸入圖片就能估計出其3D shape (produces as output a deep network that can estimate the 3D shape of any instance given a single image of it).

吳同學和他的老師們通過使用Auto Encoder結構,內在的將image decompose into 反射率, 深度, 光照以及viewpoint. (如上面所講,無任何其它形式的監督信號)。

然而,然而,如果沒有進一步的假設,將圖像分解爲這四個因素是ill-posed (病態) 問題。

爲了尋求達成這一目標的minimal assumptions, 我們認爲大多數物體類別在結構上是對稱的。

假設一個物體是perfectly symmetric的,那麼可以通過簡單的鏡像這張圖來獲得一個virtual的second view。

事實上,如果在mirrored images的對象關係可以獲得(available),那麼可以通過立體重建可以實現3D reconstruction.

基於此, 我們試圖利用對稱作爲幾何線索來約束分解(we seek to leverage symmetry as a geometric cue to constrain the decomposition)。

然而, 對特定物體而言,並沒有完全對稱這回事(無論是外觀appearance還是shape).

舉個例子,即便是一個物體: shape和albedo對稱,但是由於光照不對稱的影響,其appearance仍然有可能是不對稱的

針對這個問題, 我們首先通過explicitly model光照來探索潛在的對稱結構。(我的理解是,即將光照視爲一個額外的線索而非物體的本身屬性?)

第2, 我們對模型進行augment來解釋物體中潛在的不對稱性。

通過1,2這2步,模型預測除了albedo等factor外的一個額外的dense map(其包含給定像素在圖像中具有對稱對等點的概率)

我們將上述的這些內容揉進了一個end2end的學習formulation, 在這個pipeline中,包括confidence map在內的所有components都是隻從RGB圖像中學習得到的。

我們觀察到,可以通過flipping internal表示來強行保證symmetry, which is particularly useful for reasoning about symmetries probabilistically.

通過在一些數據集(包括人臉,貓臉,汽車)的測試。我們的效果很不錯~,不但超過了同樣不依賴於2D or 3D GT information的方法: 45(ICCVW 2019)Lifting AE, 52(2019 arxiv). 還超過了使用keypoint supervision的方法37(NIPS2018的論文).

在這裏插入圖片描述

Lifting AE 45 ICCVW 2019

在這裏插入圖片描述

Szabo´ et al. 52

我們證明了我們訓練過的人臉模型可以不經過微調就可以推廣到非自然的圖像,比如人臉畫和卡通畫。

2. Related Work

爲了評估本文的貢獻與之前的image-based 3D reconstruction的方法的關係。相關工作主要從3個方面來考慮:

  • ① 使用信息的類別
  • ② 採用什麼樣的假設
  • ③ 輸出的情況

在表1中,我們對比了本文方法和之前的論文在這些情況上的異同。

在這裏插入圖片描述

文獻 說明 作者
43 2008年 巴塞爾大學, 引用705. 這篇就是BFM! Pascal Paysan
44 ECCV 2018 熟悉的michael black,熟悉的馬普所…https://coma.is.tue.mpg.de/ 這篇就是大名鼎鼎的coma. Michael J.Black
16 華人做的, 斯坦福和snapchat. 華人
47 相比其它直接預測單張圖片的方法, 馬里蘭大學學院市分校和UCB的研究人員搞了根據圖片預測N, A, L的方法,這個與本文思路很像,可能啓發了本文方法.
60 帝國理工的IJCV2019,也是通過預測disentangled表情等內容,以便進行Face manipulation.
7 Neurips 2019, DIB-R,多倫多大學的Sanja Fidler課題組搞的(與Nvidia)。https://www.cs.utoronto.ca/~fidler/ 這篇論文主要就是在Soft Rasterizer基礎上改了在三角形內部的插值方法. Sanja Fidler
52 瑞士伯爾尼大學 2019 本文進行定性試驗對比的算法 Szebo et al
45 Lifting AE來自2015年成立CentraleSupelec研究所和帝國理工。英法合流~~~
  • Structure from Motion SFM:
    struction from Motion的方法不適合從raw pixels of single view估計/重建3D deformable object. 因爲它需要multiple views或者需要2D keypoint之間的supervision信號.

  • Structure from X SFX:
    很多如shading, silhouettes, texture, symmetry等monocular cues被用於替代SfM方法, 根據images恢復3D shape. 本文主要受到shape from symmetry (Mirror symmetry ⇒ 2-view stereo geometry 11, USC南加州大學 的. 2003年) 和 shape from shading24 1989 MIT的大佬Berthold K.P. Horn & Michael J.Brooks 出版的一本書.的啓發.

在這裏插入圖片描述

Mirror symmetry ⇒ 2-view stereo geometry 11, USC南加州大學 的. 2003年

在這裏插入圖片描述

Shape From Shading 24 1989 MIT的大佬Berthold K.P. Horn & Michael J.Brooks 出版的一本書.

  • Category-specific reconstruction
    基於學習的方法近來被廣泛應用於根據single view圖像構建object. 但是這個task是ill-posed, 所以,有人試圖從訓練數據中學習一個suitable object prior來達到目的。 當然,你也可以用一系列的監督信號來學習這種prior. 因爲我主要關注人臉和人體,像[26, 17, 60, 14]這些方法,需要使用預定義的shape model (SMPL34或BFM43) 來從單張圖像構建出3D deformable object. 這些先驗模型是使用特製的硬件和監督形式構建的,這對image that in-the-wild來說不太友好…(既有蒐集數據的困難,又有構建模型的成本問題)

在這裏插入圖片描述

SMPL 34 馬普所 2015年做的.

在這裏插入圖片描述

著名的Basel Face Model 43 經典的3D Morphable Model

吳同學整理了現在的研究人員的研究思路:

James Thewlis等人(牛津VGG組)通過使用同變性來學習dense landmarks (以便恢復object的2D 幾何結構). Nips2017, Nips2018.

在這裏插入圖片描述

James Thewlis等人於Nips2017發表的論文. 54

DAE(Deforming autoencoders) 來自美國Stony Brook 大學和法國INRIA研究所。
Zhixin Shu 通過爲AE限制一個很小的bottleneck embedding 來預測deformation field. 這種思路的輸出形式與吳同學本文的思路很相似。ECCV2018

同樣,對抗學習的思路也被引入到這裏面來。

加藤裕治(東京大學)在CVPR2019發表的論文在raw images上訓練一個判別器,並使用viewpoint作爲額外的監督信號。

在這裏插入圖片描述

Learning View Priors for Single-view 3D Reconstruction. 來自東京大學的加藤裕治等人, CVPR2019, 28.

瑞士伯爾尼大學的Szabo等人用adversarial learning來重建3D meshes, 但是並沒有定量的進行分析。

在這裏插入圖片描述

還有一些人的試驗有侷限,比如Henzeler的試驗裏面的試驗對象的背景都是白色的。

在試驗部分,吳同學與45 Lifting AR52 Szabo et al.做了對比,並驗證了其方法的有效性。

3. 方法

以人臉爲例,給定unconstrained collection of images,我們的目標是學習一個model, 其輸入是圖片實例,輸出是3D 的shape, albedo, illumination以及光照.

如圖2所示,作者管這個叫做 Photo-geometric Autoencoding
在這裏插入圖片描述

因爲吳同學的方法是基於對稱的結構,但是問題在於類似物體的appearance並不是perfectly symmetric的。非對稱情況很常見,爲了解決這個問題,

吳童鞋:

  • 1 顯式的對不對稱的illumination進行建模。

  • 2 我們的模型可以通過probability map來估計每個像素在image有對稱結構的概率(圖2的conf(σ,σ)(\sigma, \sigma^{'})).

3.1 Photo-geometric autoencoding

Photo-geometric autoencoding的假設: 輸入的圖像是中心對稱的。

目標: 將I 映射爲4個factors: (d, a, w, l).

depth map d
albedo image a.
global light direction l.
viewpoint w.

在這裏插入圖片描述

ΛΛ lighting函數是基於深度圖,光線方向,以及albedo,從官方viewpoint(w=0) 生成的對象。\prod函數是模擬viewpoint從canonical到實際的變化,並基於canonical深度圖d生成image I^\hat{I}. II^I ≈ \hat{I} 用的是reconstruction loss.

3.2 Probably symmetric objects

在3D重建中利用對稱性,需要在圖像中識別對稱的物體點。

本文用implicitly的方式實現:

假設depth和albedo在一個標準座標系中重建,是關於一個固定的垂直面對稱的。

這樣做帶來的好處是可以幫助model發現一個object的"canonical view",這對重建來說很重要。

那麼怎麼實現呢?

對a和d進行水平翻轉: a’, d’. 如果直接要求 d = d’和a = a’, 這樣很難達到一個平衡(我的理解是如果a = a’了,可能會讓d和d’ 遠離,這樣可能就是永遠達不到一個最好的tradeoff)

因此,吳同學天才的試圖用間接的方式達成這個目的: 公式2.

在這裏插入圖片描述

好了, 對稱性的約束通過上面被隱式實現了。

那麼,重建誤差(3.1提到的)到底咋算呢? 請看公式3
在這裏插入圖片描述

對不確定性進行建模對我們的任務尤其重要。

因爲我們不只計算III^\hat{I}的誤差,還計算III^\hat{I}^{'}的誤差。

confidence map的存在使得我們可以挖掘input image的哪些位置可能不是對稱的。

以人臉爲例,頭髮通常不對稱,那麼,confidence map會給頭髮所在的位置assign更大的reconstruction uncertainty(因爲頭髮不對稱!)。

注意,這只是一個說明,具體的confidence map的值還是模型根據data-distribution自己學習出來的。

總而言之,本文的學習目標是公式4。
在這裏插入圖片描述

3.3 Image formation model

將實際世界的P點映射到像素p: 通過公式5的映射來實現。該模型假設有一個帶有視場(FOV)的透視相機(perspective camera)。我們假設物體與攝像機的標稱距離(nominal distance)約爲1米。考慮到這些圖像是圍繞一個特定的物體剪裁的( Given that the images are cropped around a particular object),我們假設一個相對狹窄的FOV: 10度左右。

深度圖d在canonical view下爲每個像素(u, v)配置一個深度值 duv.

viewpoint w表示了歐式變換(R, T). w的前3個值表示rotation angle, 後3個值表示translation value.

map(R, T) 將canonical view的3Dpoints 轉換到實際的view上。將canonical view的像素(u, v)warp到實際view的(u’, v’):黃色部分, 公式6.

在這裏插入圖片描述

最後,reprojection function \prod將深度圖 dd 和viewpoint change ww作爲輸入並將warp應用於canonical image JJ上去得到實際view的圖像I^\hat{I}.

構造每個像素的法線n的方式: tuvut_{uv}^{u}爲例,tuvvt_{uv}^{v}同理易得。法線即由2個向量的叉乘獲得:
在這裏插入圖片描述

有了每個像素的法線方向以及漫反射和高光反射的係數ksk_skdk_d(由模型預測得到, tanh, 在0和1之間)

光的方向,利用tanh預測lxl_xlyl_y,將光方向建模爲一個球面。

在這裏插入圖片描述

3.4 Perceptual Loss

在公式3(衡量重建誤差)的計算式中,L1 loss的應用會有點問題:L1 loss對小的幾何缺陷很敏感,容易導致重建出的圖像比較模糊(blurry).

我們因此在L1 Loss的基礎上,增加了perceptual loss來緩解這個問題。

經過試驗驗證, 吳童鞋法線relu3_3 of VGG16作爲perceptual loss的特徵提取層就很足夠了。然後,結合公式3和公式7,整個網絡的損失函數被設計爲
L+λpLpL + λp Lp 其中, λp=1λp = 1.

4 Experiments

4.1 Setup

數據集: CelebA, 3DFAW, BFM.

Metric: 由於基於投影相機的3D重建有固有的模糊問題,因此我們需要在評價中對此進行考慮。

在吳同學的實現中,他將warped depth map d^\hat{d}於GT depth map dd^*進行了SIDE的計算. (綠色部分). 這裏只比較有效的depth value.

在這裏插入圖片描述

此外,吳童鞋還通過對比normal(computed from ground truth depth and from the predicted depth, )的mean和variance,來有效的衡量surface reconstruction的效果。

按照吳同學的說法,由於本文方法相比baseline 3有較大的提升,而baseline 3是可以access to GT information的。這說明了本文的無監督方法能夠學習到一個很好的3D representation。

在這裏插入圖片描述
由ablation study可以看出,albedo flip影響最大(2),其次是使用預測的陰影貼圖而非根據depth & light direction計算得到(4).
然後就是depth flip(3)…
在這裏插入圖片描述

Table 3 的第7行關閉confidence map的含義是指在公式3和7中的loss裏面,用固定的L1 和L2 loss即可,用固定的value來代替由網絡預測出來的confidence map。 可以看出, 不用confidence map,精度並沒掉太多(因爲BFM的臉是高度對稱的,沒有頭髮)。但是variance 增加了很多。爲了更好的理解confidence map的作用,吳同學對臉做了perturbation,以讓其不對稱

實現細節

① depth & albedo 的AE網絡沒有用skip connection,這是因爲輸入和輸出圖像 are not spatially aligned。

② viewpoint和lighting用簡單的encoder網絡進行迴歸。

③ 對depth, albedo, viewpoint和lighting來說,最後的激活層是tanh;對confidence map來說,最後的激活層則是softplus。 由於光度和感知損失是在不同的分辨率下計算的,所以這四種置信圖都是用相同的網絡在不同的解碼層預測的。而且,depth在過tanh之前,需要normalization一下。

④ Adam優化器,圖像分辨率爲64 x 64. 訓練大約50k個迭代步, bs=64. 詳細細節請看補充材料.

⑤ 我觀察發現,Unsup3D中的所有網絡裏的normalization都是Group Normalization。

4.2 Results

爲了更好的評估confidence map對效果的貢獻(本文對不確定性建模的意義)。

吳童鞋對BFM施加了非對稱擾動(asymmetric perturbation). 生成了隨機顏色的color patches(佔圖片的20到50%大小)並將其以0.5到1的一個alpha值與原來的數據混合。如圖3所示。

接着,用沒有confidence map的結構訓練擾動後的數據。結果如表4所示。

在這裏插入圖片描述

可以看到, confidence maps可以讓模型抵抗這種noise和擾動,而沒有confidence map 的模型沒有這種能力。
(confidence maps allow the model to reject such noise, while the vanilla model without confidence maps breaks.)

圖4是人臉,汽車,貓臉重建的效果(CelebA and 3DFAW, cat faces from [66, 42] and synthetic cars from ShapeNet. )

即使在極端的面部表情的情況下,重建的3D臉也包含了鼻子、眼睛和嘴巴的細節。
在這裏插入圖片描述

爲了進一步驗證模型的效果,吳同學將其在celebA訓練的模型應用於一系列 painting和cartoon drawings來驗證效果。

如圖5所示,儘管我們的方法在訓練過程中從未見過這樣的圖像,但它仍然工作得很好。

在這裏插入圖片描述

由於我們的模型預測的object的canonical view是關於圖像的垂直中心線的對稱的。

我們可以可視化這些對稱平面。 如圖6所示,我們把centerline warp到實際view上去。

在這裏插入圖片描述

從圖6a可以看出,本文方法能夠在不對稱的紋理和光照條件下,準確地發現對稱線。

圖6b是我們在圖像上覆蓋了預測置信映射數據(predicted confidence map),確認了我們的模型能夠爲非對稱區域分配低置信值。

4.3 Comparison with the state of the art

如表1所示,許多重建方法都或多或少的需要image annotations, prior 3D models或者2者都要。

但是如果沒有這些標註或者先驗知識,重建任務就變得非常困難,而且幾乎沒有可以直接比較的先前工作。

4552來講,沒法直接獲得其代碼和訓練好的模型進行測試以便進行比較(定性和定量)。

吳同學從4552的論文中截取相關內容,進行定性比較(圖7),可以看出,我們的效果不錯~。

在這裏插入圖片描述

定性對比. 可以看出本文方法能夠恢復更高質量的shapes.

需要提一嘴的是,52中的輸入圖像是由GAN生成的。

4.4 Limitations

雖然我們的方法在諸如: extreme facial expression, abstract drawing等具有挑戰性的scenarios下表現的不錯。

但是我們也觀察到了一些failure cases(圖8). 在訓練過程中,我們假定的是簡單的Lambert shading model. 忽略了陰影(shadows)和高光(specularity). 這使得對於極端的光照條件或非lambert表面,效果非常差。如圖8a所示。
在這裏插入圖片描述

由8c也可以看出,可能是由於side images的監督信號弱的原因,極端側臉(extreme side face)重建的效果較差。這可以通過施加accurate reconstructions of frontal poses的約束來改善。

5. Conclusions

本文提出了一種可以根據某類對象的unconstrained single-view images(人臉等), 構造出逼真的3D deformable object的方法, 此方法能夠獲得高保真度的單目三維重建個體對象實例。

本文完全基於reconstruction loss而非任何其它監督信號或先驗信息。

通過試驗3,我們證明了對稱關係和光照對於一個理想的非監督重建的重要性。

本文模型比使用2D keypoint supervision的方法效果好。

對於未來的工作,該模型目前使用depth map從一個canonical view表示三維形狀,這對於具有大致凸形和自然標準視點的人臉等對象來說已經足夠了。

對複雜的對象,可以擴展模型以使用多個規範視圖或不同的3D表示,比如mesh或者voxel map。

6. Code

我基於原版本換了一個可微分的renderer, 用的是pytorch3d,歡迎試用~

  • 原版本: https://github.com/elliottwu/unsup3d
  • 我的版本: https://github.com/tomguluson92/unsup3D_pytorch3d

我的版本的效果:
在這裏插入圖片描述
在這裏插入圖片描述

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