Unsupervised Person Image Synthesis in Arbitrary Poses阅读笔记

Unsupervised Person Image Synthesis in Arbitrary Poses

作者:Albert Pumarola ,Antonio Agudo等人 2018 CVPR

1. 摘要:

有监督中的利用图像生成指定pose的行人图像做reid是早就用烂的了,但在无监督中生成带有任意pose的行人图像的方法还很少,同为2018 CVPR的PNGAN可以算是一种无监督方法(普通对抗损失+重建L1损失)。因此作者从无监督reid切入,并将这一任务切分为两个子任务,分别是:首先是设计一个有条件的双向姿态生成器,它需要将生成的具有指定pose的图像映射回具有原始pose的图像,从而直接与输入图像进行比较(CycleGAN思想,主要目的其实还是为了变无监督为监督,在不能直接监督的情况下通过设计网络进行A->B->A‘ 生成的间接监督),而不需要任何训练图像;其次是设计了一个结合了内容和纹理信息的,致力于生成高质量图像的损失函数。

生成示例展示:
在这里插入图片描述
其实生成图像还是具体比较明显的人造痕迹,比如脸部。

2. 方法

问题定义:

用具有pose为 P o P_o Po的图像 I P o ∈ R 3 × H × W I_{P_o}\in R^{3\times H \times W} IPoR3×H×W和指定pose P f P_f Pf一起生成具有指定pose P f P_f Pf的图像 I P f ∈ R 3 × H × W I_{P_f}\in R^{3\times H \times W} IPfR3×H×W。而pose是由 N = 18 N=18 N=18个关键点 p ⃗ = ( u ⃗ 1 , u ⃗ 2 , . . . u ⃗ N ) \vec p=(\vec u_1,\vec u_2,...\vec u_N) p =(u 1,u 2,...u N)组成的2D骨骼图像,其中 u ⃗ i = ( u i , v i ) \vec u_i=(u_i,v_i) u i=(ui,vi)是第 i 个关键点在图像上的像素位置(坐标),整个模型基于无监督训练,因此只有训练样本 { I P o i , P o i , p f i } i = 1 N \{I_{P_o}^i,P_o^i,p_f^i\}_{i=1}^N {IPoi,Poi,pfi}i=1N而没有GT标签。

2.1 整体框架

如图2所示:
在这里插入图片描述
主要由四个组件组成:

  • 生成器 G ( I ∣ p ) G(I|p) G(Ip):棕色
    用两次,第一次进行 I P o → I P f I_{P_o}\rightarrow I_{P_f} IPoIPf的映射,第二次进行 I P f → I P o I_{P_f}\rightarrow I_{P_o} IPfIPo的映射(CycleGAN)。
  • 回归器 Φ \Phi Φ:蓝色
    估计输入图像的2D关键点位置
  • 鉴别器 D I ( I ) D_I(I) DI(I):粉色
    鉴别生成图像和真实图像
  • 损失函数 ψ \psi ψ:绿色
    在没有GT标签的情况下致力于保持id信息不变,其强制给定图像 I P o I_{P_o} IPo和(经过两次生成的)生成图像 I ^ P o \hat{I}_{P_o} I^Po的语义内容信息一致,而强制给定图像 I P o I_{P_o} IPo和(经过一次生成的)生成图像 I ^ P f \hat{I}_{P_f} I^Pf的风格(纹理)相似。

2.2. 网络结构

  • 生成器
    两次图像生成的过程均是将图像I和姿态图像 p ⃗ \vec p p 进行concat之后的shape为 R ( N + 3 ) ∗ H ∗ W R^{(N+3)*H*W} R(N+3)HW的结果输入生成器,生成具有 p ⃗ \vec p p 中姿态的图像,shape为 R 3 ∗ H ∗ W R^{3*H*W} R3HW
  • 鉴别器
    采样PatchGAN实现,将图像分成26*26个重叠的Patch进行真伪辨别,这种实现的参数更少,而反复重叠的校正导致生成图像减少模糊。
  • 姿态估计
    每一个关节点 u ⃗ i \vec u_i u i的位置可以用图像计算的概率密度图 B i ∈ R H ∗ W B_i\in R^{H*W} BiRHW表示,即:在这里插入图片描述
    其中U是图像I中所有像素位置(u,v)的集合。对于每个关键点 u ⃗ i \vec u_i u i,作者在置信图 B i B_i Bi的位置( u i u_i ui v i v_i vi)处引入方差为0.03的高斯峰值(关键点位置更突出,热图显示时就是attention区域)。整个人的pose可以表示为所有置信图的concat,即 p ⃗ = ( B 1 , . . . , B N ) ∈ R N ∗ H ∗ W \vec p=(B_1,...,B_N)\in R^{N*H*W} p =(B1,...,BN)RNHW
  • 损失函数
    ** 图像对抗损失:让生成图像的分布和训练图像的分布尽量一致
    就是普通的对抗损失,进行min-max博弈:在这里插入图片描述
    ** 条件姿态损失:强制生成器生成图像的pose和指定pose尽量一致在这里插入图片描述
    ** ID损失:维持图像生成过程中ID不变
    分为内容不变和纹理不变两项。内容损失指的是生成器要能够将生成具有指定pose的图像变为原始图像,即第二次生成的结果尽量和原始结果在内容上一致,即保证 I ^ o ≈ I P o \hat{I}_o\approx I_{P_o} I^oIPo,具体为 I ^ o = G ( G ( I P o ∣ P f ) ∣ P o ) \hat{I}_o= G(G(I_{P_o}|P_f)|{P_o}) I^o=G(G(IPoPf)Po),而在像素级比较生成图像的差异就会导致类似于SRGAN中提到了“MSE损失导致生成图像过于平滑,模糊,丢失高频细节” 这一特点,因此这里也同样使用SRGAN中那样的特征级重建损失,SRGAN那里是vgg-loss,这里是:
    在这里插入图片描述
    忽略细节的话,可以说和SRGAN一模一样,类似的认为重建像素级一致图像不好而提倡重建特征级一致图像的文章还有reid中的DPIG,无监督域适应中的DAL,以及上面提到的超分中的SRGAN。风格损失指的是 I P o I_{P_o} IPo I P f I_{P_f} IPf在关节点附近的纹理要一致。具体地,条件姿态patch可由 I P o I_{P_o} IPo的语义特征 ψ z ( I P o ) ∈ R C ∗ H ′ ∗ W ′ \psi_z(I_{P_o})\in R^{C*H'*W'} ψz(IPo)RCHW和pose P o P_o Po的概率图经过avg pool下采样结果 B P o ∈ R N ∗ H ′ ∗ W ′ B_{P_o}\in R^{N*H'*W'} BPoRNHW的乘积表示,即:
    在这里插入图片描述
    然后patch style就可以表示为 X P o , i X_{{P_o},i} XPo,i的不同通道之间的相关性,具体实现可以是计算每一个patch i 的Gram矩阵
    在这里插入图片描述
    其定义为 X P o , i X_{{P_o},i} XPo,i经过向量化后的特征图之间的内积。最后,patch style损失就可以计算为图像 I P o I_{P_o} IPo I P f I_{P_f} IPf的同一个关节点的Gram矩阵对之间的均方差误差,即:在这里插入图片描述
    最终ID损失为:
    在这里插入图片描述
    整个网络的最终损失为:
    在这里插入图片描述
    注意:有人会说 L I L_I LI L p L_p Lp是用来重建图像 I ^ P o \hat{I}_{P_o} I^Po的,而 L C o n t e n t L_{Content} LContent也是这个作用,岂不是重复了。作者说加了前两个损失能让网络训练时更鲁棒,更容易收敛。

2.3 实现细节

在这里插入图片描述
用了训练GAN时的几个常用trick,并且Vgg的设计就和SRGAN非常神似了。

3. 实验

数据集:DeepFashion

3.1. 定量评估

在这里插入图片描述
无监督结果和其他有监督(第二行第三行)差不多,而最后两行分别是VAE和cGAN,也是无监督方法,但比本文差多了。

3.2. 定性评估

效果比起以前其实很好,但不够好,这里主要支出一些缺点在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
主要缺点表现在:

  • 颜色
  • 人造痕迹
  • 衣服材质
  • logo

3.3. 失败的例子

在这里插入图片描述

3.4. 消融实验

在这里插入图片描述

3.5. 带背景的图像生成

在这里插入图片描述
对于reid很友好,就是生成原图质量确实不敢恭维,在DeepFashion上尚且只有这种效果,在Market和Duke上生成结果肯定不能看。2019的ZZD的CVPR oral DG-Net针对reid进行图像生成,效果比这个好得多。
DG-Net传送门:DG-Net

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值