作者和机构
解决的问题
用少量图像输入完成动作迁移。给定目标姿势和少量人像,生成一个新的人像。
主要贡献
提出几何生成器,用于预测准确的UV map;提出纹理生成器,生成完整的texture map。两个生成器可以共同渲染出高质量人像,用于动作迁移。
方法
给定目标姿势 P P P和一部分人像 { I j } j = 1 b \{I_j\}_{j=1}^b { Ij}j=1b,生成新的人像 I ^ = f ( P , { I j } j = 1 b ) \hat I=f(P,\{I_j\}_{j=1}^b) I^=f(P,{ Ij}j=1b)。 f f f即为要学习得到的模型。生成的人像有源图像的外表,做着目标姿势。假定源图像的背景不变,生成的图像仍使用源图像的背景,可以使用DeepLab V3等图像分割模块提取前景mask。合成的前景用 I ~ \tilde I I~表示。
作者用DensePose将人体分成24个不相交的部分。每个部分有一个映射矩阵 C ∈ R H × W × 2 C\in\R^{H\times W\times2} C∈RH×W×2以及纹理图 T T T,渲染时可以使用双线性插值进行纹理渲染 R [ x , y ] = T [ C [ x , y ] ] R[x,y]=T[C[x,y]] R[x,y]=T[C[x,y]]。对于每个像素 [ x , y ] [x,y] [x,y],设 S [ x , y ] S[x,y] S[x,y]为该像素属于当前部分的概率,则
I ~ = ∑ k = 1 n S k [ x , y ] R k [ x , y ] \tilde I=\sum_{k=1}^nS^k[x,y]R^k[x,y] I~=k=1∑nSk[x,y]Rk[x,y]
S S S和UV图由几何生成器负责生成,而 T T T有纹理生成器来生成。
几何生成器
这部分包含3个Encoder和1个Decoder: E W E_W EW负责计算目标姿势 P P P和源图像提取出的源姿势 { P 1 , … , P b } \{P_1,\dots,P_b\} {
P1,…,Pb}的相似性,以此判断哪个图像应该得到更多的注意力; E I E_I EI负责提取图像的特征; E P E_P EP负责提取目标姿势的特征; D G D_G DG负责生成 S S S和 C C C。生成器的架构类似于U-Net,在每一层Encoder和Decoder之间都会进行图中的交互。具体来说,在第 l l l-th层(Decoder是 ( L − l ) (L-l) (L−l)-th层),进行如下计算( ⊗ \otimes ⊗为矩阵乘法)。
a j l + 1 = E I l ( a j l ) q j l + 1 = E W l ( q j l ) w j l = ( q j l ) T ⊗ q l d a l = ∑ k w j l ⊗ a j l d p l + 1 = D G l ( [ d a l ,