Unsupervised Person Image Synthesis in Arbitrary Poses 笔记

概述

  Unsupervised Person Image Synthesis in Arbitrary Poses 笔记

这是一篇cvpr2018的oral文章,是在无监督的情况下的情况对给定的图片和姿势生成新的图片,由于训练集的图片不是成对出现的(无监督),所以他借用了cycleGAN的思想,生成器一方面生成新的姿势图片,另一方面将其生成回原来的样子,而loss也由三部分组成,除了判别器的adversial loss外,还有姿势回归器的pose loss和特征提取器的identity loss.

方法

姿势表示方法

每个姿势由N=18个二维像素坐标组成,每个坐标对应生成一张概率密度图,该坐标对应值为1,其余部分是一个以它为峰值,方差为0.03的高斯分布,这样也就生成了N张大小为H*W的概率密度图.

生成器

生成器的结构借用了cycleGAN中的U-Net,除了encoder和decoder外,还加入了skip connection,为了防止低级别的信息损失,将第i层的所有通道都concatenate到了第n-i层.

 Unsupervised Person Image Synthesis in Arbitrary Poses 笔记

判别器

判别器的思想主要来源于pixel2pixel中的patchGAN,对于图片中的每个patch进行判别,最终得到一个26*26的输出,这样的好处主要在于减少了很多计算量,同时对性能并无很大影响。Adversial loss有两项,一项是生成器给定姿势Pf生成得到If的loss,另一项是生成器给定原来图片的姿势Po生成回Io的loss.

Unsupervised Person Image Synthesis in Arbitrary Poses 笔记 

姿势回归器

给定一张图片,姿势回归器会得到用于表示姿势的概率密度图,而pose loss则表示为两个姿势的概率密度图的欧几里得距离:

Unsupervised Person Image Synthesis in Arbitrary Poses 笔记

Identity loss

Identity由两个部分组成,context loss和style loss,context loss用来度量两张照片特征的欧几里得距离,特征从特征提取器(预训练的vgg16的第7层)中得到,style loss用来度量两张照片的质感相似度,用之前得到的特征先点积乘上对于姿势Po作降采样的Bpo,i得到Xpo,i(Xpo,i大小为C * H' * W'),对于每个Xpo,i作通道之间的内积得到C*C的Grim矩阵,最后再对N个Grim矩阵计算MSE,过程如下:

Unsupervised Person Image Synthesis in Arbitrary Poses 笔记

 Unsupervised Person Image Synthesis in Arbitrary Poses 笔记

Unsupervised Person Image Synthesis in Arbitrary Poses 笔记

 Unsupervised Person Image Synthesis in Arbitrary Poses 笔记

最终的loss如下:

Unsupervised Person Image Synthesis in Arbitrary Poses 笔记

不过我个人感觉最后一项应该是减号,姿势回归器对于原图的检测结果应该越小越好.

实验

实验中的adversial loss采用的是least square的形式(感觉已经成了目前GAN的标配),另外用于判别器训练的样本也不是当前生成的,而是之前生成的样本.实验的结果非常丰富,有较为成功的样本和失败的样本,作者还对失败的样本进行分类,并说明当图片有背景时效果会很差,最后比较了提出的Identity loss和普通的l1 loss,发现性能有了很大提升。

总结

这篇文章的优势在于他很好的借助了前人的成果,尤其是CycleGAN在无监督方面的思想,同时对于生成图片的loss考虑的非常全面,并提出了自己的identity loss,特别是基于姿势的style loss部分让人眼前一亮.