查看原文
其他

ICCV 2019 | COCO-GAN:通过条件坐标的部分图像生成

文永明 PaperWeekly 2022-03-17


作者丨文永明

学校丨中山大学硕士生

研究方向丨Object Manipulation、机器人视觉、GAN


引言




这是一篇发表在 ICCV 2019 的 Oral 论文,是国立清华大学、国立台湾大学以及谷歌 AI 团队的工作。他们从人类观察事物的生理局限性得到启发,每次观察图像都是先分开几次来看局部,最后基于空间关系合理地拼凑到一起,得到整体的理解。

他们基于这一行为的习惯,提出了条件坐标生成对抗网络(COCO-GAN)[1]。也就是分开多次来生成与坐标相关的图像,再拼接起来形成更大的逼真连贯的假图像。这一方法能够通过一部分图像来生成,而且生成完整的全图完全可以达到 state-of-the-art-quality 的效果。
另外,他们的 COCO-GAN 还可以做很多有趣新颖的应用方法,比如超边界图像生成、全景图的生成、小块引导生成,为未来 GAN 的其他应用方向作出了先进性的启发。 
这篇 Oral 的源码将会在在 Github 上放出,不过作者表示还在完善当中,Github 链接是:https://github.com/hubert0527/COCO-GAN
还有一些好玩的应用视频在下面这个项目地址中:https://hubert0527.github.io/COCO-GAN/

模型架构


作者使用与 ACGAN(Auxiliary Classifier GAN)[2] 相似的架构,在 ACGAN 中,判别器 D 不仅需要判断每个样本的真假,还需要完成一个分类任务即预测标签的任务,标签是离散的,需要通过增加一个辅助分类器去实现,一般是用交叉熵损失函数实现。
而在 COCO-GAN 中,判别器 D 不仅需要判断每个样本的真假,还需要完成一个预测坐标位置的任务,损失函数也类似,不过稍有不同的是坐标信息是连续的,所以辅助的预测的损失函数作者使用了 L2 损失,这样子最终就能使得生成器 G 生成对应坐标的小块图像。

▲ Fig 1. COCO-GAN的训练流程示意图


COCO-GAN 的基本流程可以分为以下几步:
1. 将坐标作为条件加入到潜在特征向量中,复制多个输入到生成器 G 当中,独立的分别生成多个小块的图像;
2. 将多个小块图像互不重叠地拼接起来成为大块图像,同时根据坐标条件裁剪真实的大块图像;
3. 用生成拼接的大块图像尽量迷惑判别器 D,使得判别器 D 分不出是真实的大块图像还是生成拼接出来的;
4. 同时坐标信息训练判别器 D,使得具有辅助预测大块图像的坐标的作用,使用 L2 损失函数。

▲ Fig 2. COCO-GAN的生成全图的流程示意图


最后测试阶段只需要共享相同的潜在特征向量和不同的坐标作为条件输入到生成器 G,生成拼接多个小块,使得拼接以后和真实图片大小一致,就可以生成看起来平滑而又真实的假全图了。具体来说作者这样巧妙的设计的有三点好处:
1. 生成图片看起来真实平滑。小块图像拼接以后再给判别器 D 训练能把多个相邻小块图像之间的连续性和一致性也考虑到对抗损失当中,使得生成器 G 生成拼接出来的大块图像看起来不奇怪,很平滑真实,足以迷惑判别器 D;
2. 计算高效,低内存占用。因为内部的分治算法可以有效降低内存占用,而多个小块图像是相互独立地生成的,不依赖于其他块信息,而共享同样的潜在向量,所以具有高并行性,而且计算只用到了局部的视图;
3. 创新性的应用。可以生成比训练样本更大的图像即超边界生成,只需要把学习到的坐标流形往外推算,而这是其他 GAN 都做不到的,是 COCO-GAN 独有的,还有类似的小块引导生成,全景图生成等新颖特别的应用。


损失函数


COCO-GAN 使用了三项损失来进行训练 : 
1. Wasserstein 对抗损失 [4] 使用 Wasserstein 距离,其中 ψ 表示裁剪函数,φ 表示拼接函数,将真实图像 x 根据坐标条件裁剪出大块图像,将潜在的特征向量 z 根据坐标条件 C" 输入到生成器 G,生成多个小块图像 S",在经过 φ 函数拼接出大块的假图像 s',一方面迫使判别器 D 学会区分真实的大块图像 x' 和大块的假图像 s',另一方面鼓励生成器 G 生成拼接以后看起来真实的假图像来尽可能迷惑判别器 D:


2. 梯度惩罚


3. 空间一致性损失,和 ACGAN 的损失相似,这里稍有不同的是 ACGAN 处理多个不同离散的标签的分类问题,一般使用交叉熵。而 COCO-GAN 处理的坐标位置信息是连续的,因此作者使用了 L2 损失,从而可以更好的拉近真实的大块图像的位置分布和判别器估计的位置分布:


前两项损失是 WGAN-GP 的损失很常见,最后一项空间一致性损失目标是减少真实的大块图像坐标位置 c' 和判别器 D 辅助估计预测的坐标位置的。COCO-GAN 中判别器 D 和生成器 G 的损失函数如下:


实验效果


人脸和卧室图像的生成 
作者使用 COCO-GAN 对 CelebA 和 LSUN bedroom 的数据集的生成效果,还是看起来挺真实的,并且作者也具体分析了 FID 这一评估指数。

Fig 3. COCO-GAN生成图片的效果
作者使用 FID 作为评估指标,FID 对模型坍塌很敏感,较低的 FID 意味着较高图片的质量和多样性。所以 FID 值越小,那么代表这个 GAN 模型的生成多样性越强,生成质量越高。

▲ Table 1. 不同数据集中不同方法和COCO-GAN的FID分数对比


在 CeleA-HQ1024x1024 数据集中 FID 分数稍微差一点,而在其他四个不同的数据集中 COCO-GAN 的 FID 分数最低,效果最好,作者因此得出 COCO-GAN 有着和其他 state-of-the-art 的生成模型相媲美的效果。


▲ Fig 4. COCO-GAN选取不同大小的micro patches生成的图像 



使用 COCO-GAN 选取不同大小的小块生成的图像,Fig 4 中每个子图对应三行图像从上至下分别是全图、大块图像、小块图像,(a)(b)(c) 三个子图对应选取由大到小的小块生成的图像,可以看出选取不同大小的小块图像生成质量都挺高的,看起来较为平滑真实,除了有些眼睛有点不平行。
超边界图像生成

▲ Fig 5. COCO-GAN独有的超边界生成卧室图像 [3]
COCO-GAN 独有的超边界生成,因为 COCO-GAN 不依赖于生成部分周围的信息,只需要坐标位置作为条件就能预测了。通过固定的潜在特征向量,外推超过训练图片样本坐标信息分布,比如这里原来的训练样本图像是 256 × 256,生成的时候外推一个小块图像(64 × 64 pixels),就可以得到学习推测出外面一圈的图像,得到 384 × 384 的超边界图像,这是该篇 Oral 论文的一大亮点特色。 


全景图生成


▲ Fig 6. COCO-GAN全景图生成[3]


COCO-GAN 还可以做全景图的生成,因为全景图是水平方向循环的,COCO-GAN 只需要使用圆柱形的坐标系统训练即可得到全景图的生成。
小块引导生成

▲ Fig 7. COCO-GAN小块引导生成


COCO-GAN 另外一个有趣的特色应用是小块引导生成,用另外一个新的网络 Q 内嵌在判别器 D 当中,来预测小块图像 s' 对应的潜在的特征向量 z,这样我们把预测出来的小块图像对应的特征向量结合不同的坐标条件输入到 COCO-GAN 的生成器中,这样就可以生成原来完整的全图来,效果还很好很逼真,这也是该篇 Oral 论文的一大亮点特色。而且相比于其他高分辨率图像生成的算法来说,COCO-GAN 计算效率高,内存占用低,因为他们只用到了局部的视图。
插值实验

▲ Fig 8. 选取不同特征向量生成的图像

▲ Fig 9. 选取不同坐标条件生成的图像


插值采样不同的特征向量下生成的图像都是平滑连续的,线性插值选取空间坐标生成的图像也可以看出是基本连续的,除了印堂部分学习的不太好,作者说是因为离散稀疏采样的缘故。

总结思考


非常有趣的一篇 ICCV 的 Oral 论文,文章从人的多次局部视野理解全局信息的行为习惯出发,动机合理可解释强,提出一种引入条件坐标机制的新颖的 GAN,分小块来生成再拼接,把小块之间的连续性一致性都考虑进对抗损失当中了,而且实验做的特别充分,应用的方法也特别新颖有趣,尤其是超边界生成是 COCO-GAN 独有的。类似全景图生成、小块引导生成都为未来 GAN 做其他新颖有趣的方向有了新的启发,可以把 GAN 应用在超分辨率重建、图像修复、图像还原等工作中。


参考文献


[1]. Lin C H, Chang C C, Chen Y S, et al. COCO-GAN: Generation by Parts via Conditional Coordinating [J]. arXiv preprint arXiv:1904.00284, 2019. 

[2]. Odena, Augustus, Christopher Olah, and Jonathon Shlens. "Conditional image synthesis with auxiliary classifier gans." Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017. 

[3]. https://hubert0527.github.io/COCO-GAN/

[4]. https://zhuanlan.zhihu.com/p/83355309




点击以下标题查看更多往期内容: 





#投 稿 通 道#

 让你的论文被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。


📝 来稿标准:

• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向) 

• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接 

• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志


📬 投稿邮箱:

• 投稿邮箱:hr@paperweekly.site 

• 所有文章配图,请单独在附件中发送 

• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通




🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧



关于PaperWeekly


PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。


▽ 点击 | 阅读原文 | 下载论文

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存