風格遷移1-04:Liquid Warping GAN(Impersonator)-白話給你講論文-翻譯無死角(1)

以下鏈接是個人關於Liquid Warping GAN(Impersonator)-姿態遷移,所有見解,如有錯誤歡迎大家指出,我會第一時間糾正。有興趣的朋友可以加微信:a944284742相互討論技術。若是幫助到了你什麼,一定要記得點贊!因爲這是對我最大的鼓勵。
風格遷移1-00:Liquid Warping GAN(Impersonator)-目錄-史上最新無死角講解

Abstract

我們僅僅使用了一個框架,就處理human motion imitation(人類動作模仿), appearance transfer(外觀轉換),以及 novel view synthesis(新視覺生成),並且訓練其中任意一個模型,就完成這3個任務。一些方法利用2D的keypoints(關鍵點)或者pose(姿態)去估算人類身體的結構,然而他們只能表現了位置信息,沒有能力去體現一個人的形狀(高矮胖瘦)以及四肢的旋轉。在這篇論文中,我們提到了一個3D身體恢復的模型,去處理姿態和形狀的問題,他不僅能表達出位置和旋轉信息,並且還能描述出個人的形狀以及個性化。
爲了保護原圖的信息,比如紋理,風格,顏色,和人臉身份等細節,我們提出了一個Warping GAN(扭曲GAN) 以及Liquid Warping Block (LWB),他能在特徵空間和原圖之間傳遞信息,並且能夠使多張參考圖像合成一張圖像。爲了更好的描述原圖的身份ID,使用的一個auto-encoder(自動編碼)的降噪卷積提取原圖的特徵。
我們提出的模型,能夠很靈活的支持多個sources img的warping(扭曲)。另外,我們還構建的一個新的數據集Impersonator (iPER),後續的實驗對比,如動作模仿,外觀轉換,新視角生成,已經存的先進模型,以及我們的模型,都是在這個數據的基礎上進行實驗的。

1. Introduction

人類圖像合成,包含了動作模仿,外觀轉換,新視角合成。他們有巨大的潛在運用價值,如動漫角色,虛擬換衣服等等。都是給定一張source human image以及一張 reference human image。動作模仿的目標是把source human image的動作,變換成reference human image的動作,外觀轉換是交換兩張圖像中人物的外觀(如衣服,褲子,鞋子等,但是不包含臉部),新視角合成,就是對視角進行轉換,比原圖是一張正面圖,去合成他的背面圖,展示如下:
在這裏插入圖片描述
在圖像合成領域,之前處理上面介紹的三個任務,都是分開來的,換而言之就是一個模型很難同時適用於3種任務。最近,GAN網絡額出現,在三個任務上,都能達到一個很好的效果,比如我們這裏把動作模仿作爲一個例子,做了一些總結,如下圖所示:
在這裏插入圖片描述
圖示翻譯:現在有三種把原圖信息傳播到目標圖像的方法:a 是最早的串聯方式,即把原圖,原條件,和目標條件一起併入顏色通道。b 和 c 是進行紋理或者特徵提取,然後把提取到信息傳入到目標條件之中。

在早期的工作中,如上圖的a所示,source image(帶有姿態條件信息)和target 姿態條件被串接起來,然後被送入網絡對抗神經網絡進行訓練,得到一張預期姿態的圖像。然而,之間拼接,不考慮空間佈局,對於生成器來說,很難再正確的位置上生成想要的像素,因此他得到的圖像總是模糊不清的,經常丟失原圖的身份信息。後來受到到the spatial transformer networks(STN)的啓發,一個紋理扭曲的方法被提出,如上圖的 b 所示,這種方法,他首先擬合一個從source pose 到 reference poses 的反射矩陣,然後使用 STN 利用source image,以及反射矩陣的信息,把source img 扭曲成reference pose 的圖像,然後基於扭曲之後得到的圖像,去生成目標圖像。對於Texture warping(紋理扭曲),其不能很好地保留原圖的細節信息,比如衣服顏色,身份ID,個性風格等,因爲生成網絡在經過幾次下采樣操作之後,選擇性的丟失了這些信息。在此期間,同時出現了一些方法,提出了深度特徵的扭曲,而不是直接在原圖上進行圖像扭曲,如上圖的 c 所示,叫做feature warping,但是這種方法,特徵的提取是通過編碼的方式,這種扭曲很難描述出圖像的細緻特點,所以生成圖像一般都是低逼真度,或者模糊的圖像。
之前的方法,生成的圖像看起來不逼真,主要有以下三個原因。1.網絡捕獲不同衣服的紋理,風格,顏色以及人臉身份是十分弱的。2.關節和可變形人體導致空間幾何的變化十分巨大。3.所有的方法,都不能處理多個source 的輸入,比如外觀轉換,衣服褲子分別來自不同的圖像。

在這篇論文中,爲了保護源信息,如衣服,風格,身份ID等,我們提出了Liquid Warping Block (LWB),其從三個方面解決了這些問題:1.使用降噪的自動編碼網絡,去提取有用的特徵代表souce img的信息,2.爲了保護特徵細節,每個局部的源特徵,通過我們提出的LWB進入到全局特徵。3.我們提出的方法是支持多個source warping的,比如來自一張source img的頭,另外一張source img的身體,一起去聚合成一個全局的特徵stream。

另外,現在存在的方法主要依賴 2D pose,dense pose 以及body parsing,這些方法值關心到了位置佈局,忽略了人物個性形(胖矮高瘦)狀以及四肢(關節)的旋轉。但是在圖片合成時,後者的重要性或許比前者更爲重要,比如,在一種極端的情況,使用基於2D(或者dense pose ,body parsing)的方法,讓一個比較高的人,去模仿一個比較矮的人,將不可避免的去改變這個比較高的人的大小,問題展示如下圖Figure 6所示:
Figure 6
在這裏插入圖片描述
原圖註釋:上圖時候其他的方法,以及我們的方法,在iPER上面的對比,2D pose方法pG2 , DSC ,SHUP 不能保護原圖衣服,面部ID等信息,我們的方法很用藍色或者紅色框去突出細節。

爲了克服這個缺點,我們使用了一個 parametric statistical human body model(SMPL-自行百度瞭解),能使人體的姿態和形狀脫離開來,該網絡的輸出是一個3D mesh (帶顏色),而不是一個關節和姿態的佈局。同時,兩個3D triangulated meshes 之間的轉換流,是很容易被計算出來的,並且相對於使用關鍵反射矩陣的方法,其更加準確。

基於 SMPL model 和 Liquid Warping Block (LWB),我們的方法進一步擴展了其他的任務,包含了人物動作模仿,外觀轉換,新視角合成。我們方法的提出,主要做了以下貢獻:
1.提出了LWB去減少原圖信息損失,比如紋理,顏色以及面部ID等。
2.通過基於LWB的對抗神經網絡,以及3D parametric model,我們的方法集成了一個統一的框架,可以同時完成動作模仿,外貌轉換以及新視角生成。
3.我們創建了一個動作模仿的數據集。

2. Related Work

Human Motion Imitation. 最近很多的方法都是基於條件生成網絡(CGAN),或者變異的自動編碼網絡。他們的關鍵技術在於使用帶有原姿態(2D key-points)的圖像,當做GANs的輸入,去生成目標圖像,這些方法的不同點,主要在於loss定義的不同,一個U-Net 生成器是使用由粗到細的策略去生成256x256的圖像,Si等人提出一個多級對抗loss,並且分別生成前景和背景,或者不同的身體部位。Neverova 等人使用dense correspondences dense(密集對其DensePose)的方法代替了2D 關鍵點的方法。Chan等人使用pix2pixHD 結構去生成一個比較逼真的目標圖像,再後來Wang 等人,擴展到了視頻生成,Liu 等人提出了人體動作的行爲視頻渲染。然而,他們的工作僅僅是訓練了來自每個人2D姿態的映射(現實世界),對於每個人都需要去訓練他們自己的模型,這樣很大程度上,限制了他們的利用

Human Appearance Transfer 人體外觀建模或者轉換是一個比較熱門的話題,尤其是在虛擬試穿領域,計算機圖像建模的方法或者深度學習的利用。基於圖像建模的方法,首先是使用衣服,以及衣服掃描儀或者多個攝像頭組合評估3D human mesh的 細節,然後基於細緻的3D mesh 進行衣服外觀的交換,儘管這些方法能獲得一個比較好的效果,但是他們的消耗比較巨大,容易受到環境的干擾。最近在很多實用深度神經網絡的方法,如SwapNet 首先學習一個基於服裝位置引導的合成網絡,然後將服裝解析結果與紋理特徵從源圖像反饋到編解碼器網絡中,生成所需要的服裝圖像。還有的使用3D形狀模型去結合深度學習,訓練出一個能推斷出圖像看不見圖像位置,的頂點的模型。

Human Novel View Synthesis. 同一目標的新視角合成,現在存在的方式,核心的步驟是去擬合從原圖視角到目標視角的對應關係圖,有的方法是利用CNN去預測一個外觀,然後基於預測的外觀從source image複製像素到新的目標圖像,其在類似於汽車這種剛性的物體上,取得了比較好的效果。接下來的一些相關工作提出了基於外觀流,使用GAN去推測看不見的紋理信。 Zhu 等人基於外觀流的方法,對於用在可變形的物體上,效果是比較差的,比如人的身體。,爲了新視角圖的合成,他們提出了一個appearance-shape-flow的策略。除此之外Zhao等人設計了一個GAN基於coarse-to-fine 的方法提出一種高分辨率視角合成的方法。

3. Method

我的Liquid Warping GAN包含了3個步驟,body mesh recovery,flow composition以及帶有Liquid Warping Block (LWB)的GAN module。對於不同的任務,他們的訓練方法是相同的,其中的任意一個任務訓練好了,都能夠適用於其他的任務。這裏,我們使用動作模仿作爲一個例子來講解,如下圖Fig. 3所示:
Fig. 3
在這裏插入圖片描述
圖示翻譯:對於我們訓練的方法,我們隨機選取來自同一個視頻的兩幀圖片,注意,他們其中的一張爲source image IsI_s,另外一種爲reference image IrI_r。(a)一個身體網絡恢復模型會估算每一幀圖像的 3D mesh,並且對他們進行渲染,得到Cs,CtC_s,C_t.(b)composition module(這個合成模型)首先基於兩個對應的Mr,MsM_r,M_s計算他們之間的轉換矩陣T,然後將從原圖分離出來的前景圖IftI_{ft}以及背景圖IbgI_{bg},基於轉換矩陣 TT 扭曲 source image 生成一個唄扭曲的圖像IsynI_{syn}。(c)在最右邊的GAN模型,其包含了3個 streams,他們分別是,通過GBGG_{BG}生成背景圖I^s\hat I_s,並且結合通過GTSFG_{TSF}生成的結果,合成I^t\hat I_t。爲了保留圖片的細節信息,我們提出了一個新異的Liquid Warping Block (展示在 Fig. 4),他會在幾個成廣播GBGG_{BG}的信息進入到GTSFG_{TSF}

輸入的圖像source image使用IsI_s,reference image使用IrI_r表示。首先mesh recovery module會去估算 IsI_s 以及 IrI_r 的3D mesh,並且把他們渲染成GsG_sGtG_t,下一步,composition module會基於前面獲得的 GsG_s以及GtG_t計算轉換矩陣 TT ,sourece img IsI_s被分解成前景 IftI_{ft}以及通過mask獲得的背景 IbgI_{bg},並且基於轉換矩陣 TT 扭曲成 IsynI_{syn}, 最後的GAN模型,其包含了3個 streams(上圖註釋翻譯比較詳細,就不重複了)

3.1. Body Mesh Recovery Module

如Fig. 3的(a)所示,送入source img IsI_s 以及 reference img IrI_r, 然後預兩張圖片的kinematic pose(rotation of limbs-四肢的旋轉)與shape parameters(高矮胖瘦)。爲了平衡準確率和運行效率,在這片論文中,我們使用的 HMR 其進行估算。在 HMR 中,首先把通過ResNet-50把輸入圖像編碼成R2048(2048)\mathbb{R}^{2048}(理解成一維2048的向量即可),然後通過3D迴歸網絡去預測SMPL模型的攝像頭參數KR3K \in \mathbb{R}^{3},pose θR72\theta \in \mathbb{R}^{72}(72個人體關鍵點)以及shape βR10\beta \in \mathbb{R}^{10}(身高胖瘦等等)。 SMPL是一個能通過M(θ,β)RNv×3M(\theta ,\beta) \in \mathbb{R}^{N_v\times3}映射的3D人體模型,這個模型能被帶有姿態θR72\theta \in \mathbb{R}^{72}以及βR10\beta \in \mathbb{R}^{10}的,Nv=6890Nv=6890(網孔)個至高點和Nf=13776N_f=13776(網孔)個表面點描述出來。通過這個過程,我們就能獲source image以及reference image的SMPL模型參數{K,θ,β,M}\{K, \theta, \beta, M\}

3.2. Flow Composition Module

在上述的基礎上,我們首先在KsK_s的視角視角下,對source mesh MsM_s以及reference mesh MrM_r進行渲染,得到GsG_sGtG_t,在這篇論文中,我們使用的是一個可以微調的渲染-Neural Mesh Renderer (NMR),因此我們投射source VsV_s的向量到 2D 圖像空間,vs=Proj(Vs,Ks)v_s = Proj(V_s,K_s)。然後我們計算每個mesh face(網孔的)的重心座標獲得fsRNf×2f_s \in \mathbb{R}^{N_f \times2}。接下來通過source map對應的mesh face 座標 fsf_s 以及reference map對應的mesh face座標,去計算轉換矩陣TRH×W×2T\in \mathbb{R}^{H \times W \times2}.因此,一個前景圖像IftI_{ft}和通過mask 掩碼獲得的背景圖像IbgI_bg都是基於source img 對應的CsC_s獲得。最後利用轉換矩陣TTIsI_s 扭曲成 IsynI_{syn},在Fig. 3中可見。

3.3. Liquid Warping GAN

這個步驟主要是爲了,在給定的條件下,合成高度逼真的人體圖像,1.合成背景圖像,2.預測隱藏部分的像素顏色,3.生成頭髮,衣服的像素以及其他的超出SMPL模型的部分。
Generator. 我們的生成網絡有3個分支,其中一個分支叫做GBGG_{BG},他的主要職責是輸入經過mask 掩碼處理的IbgI_{bg}然後生成I^bg\hat I_{bg},在Fig. 3 ©中能看到其大致過程。另外的兩個分支分別爲GTSFG_{TSF}GSIDG_{SID}, 前者GTSFG_{TSF}是一個自動編碼器,主要是爲了提取特徵並且保留住圖像細節信息。他的輸入是通過source img獲得的IftI_ft以及對應的GsG_s,然後得到AsA_s以及PsP_s,與GBGG_{BG}生成的I^bg\hat I_{bg}結合,重構得到I^s\hat I_sGTSFG_{TSF}的任務是去合成最終的結果,他的輸入是經過扭曲得到的IsynI_{syn}以及經過渲染的CtC_t(6個通道),爲了保護源圖的細節信息,我們提出了Liquid Warping Block (LWB)去鏈接GTSFG_{TSF}GSIDG_{SID},這樣,在兩個分支之間。就能進行細節信息的傳遞了。
我們提出的Liquid Warping Block(LWB)他能同時接受多個source的輸入,比如在進行外觀轉換的時候,保留source1頭部外觀,source2上衣外貌,source2下身外貌。這些不同的身體特徵通過自己的對應的轉換矩陣TT變換,然後聚合一起送入GTSFG_{TSF}。下面我們來看兩個source 的例子,如下圖所示:
在這裏插入圖片描述
圖示翻譯:這是 Liquid Warping Block的插圖,a是LWB的結構,Xs1lX^l_{s1}Xs2lX^l_{s2}是利用GSIDG_{SID}在不同卷積層提出的各個特徵。如XtlX_t^lGSIDG_{SID}lthl^{th}成提取的特徵。最後輸出一起聚合的特徵X^tl\hat X_t^l,採用雙線性採樣器(BS)對T1和T2的流場進行了彎曲源特徵分析.b .是LWB的結構。最後他們輸出的結果可以表示如下:
X^tl=BS(Xs1l,T1)+S(Xs2l,T2)+Xtl\hat X_t^l = BS(X_{s1}^l,T_1) + S(X_{s2}^l,T_2) + X^l_t
注意的是,上面的例子使用的是兩個 sources 的例子,我們還能接受更多sources。

GBGG_{BG}GTSFG_{TSF}GSIDG_{SID}他們的結構是比較顯示的,都是ResUnet結構,即包含了 ResNet 與 UNet 的組件,但是他們之間的參數不是共享的。對於 GBGG_{BG} 我們直接回歸背景圖像,對於GTSFG_{TSF}GSIDG_{SID}我們會生成一個attention map A和一個color map P,如Fig. 3 ©所示,最後的結果可以用以下公式表示
I^s=PsAs+I^bg(1As)\hat I_s = P_s * A_s + \hat I_{bg} * (1-A_s)I^t=PtAt+I^bg(1At)\hat I_t = P_t * A_t + \hat I_{bg} * (1-A_t)

**Discriminator.**生成器對應的鑑別器我們使用的是Pix2Pix的架構。

好了,就到這裏了,下篇博客我會把剩下的翻譯完成。

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