【论文阅读】FITEE2019《SmartPaint》人机协同绘画系统
基本信息
论文标题:《SmartPaint: a co-creative drawing system based on generative adversarial networks》 —— 一种基于生成式对抗神经网络的人机协同绘画系统
论文链接:http://journal.hep.com.cn/ckcest/fitee/CN/10.1631/FITEE.1900386
关键词:深度学习(Deep Learning), 图片生成(Image generation),人机协同绘画(Co-creative drawing)
发表会议:2019 FITEE
主要贡献:SmartPaint可以使得机器和人类协作进行绘制卡通山水画,机器同时了解卡通风格和语义,以及风景图像中对象之间的空间关系。这样用户只需要画出语义标签图,就能生成质量较高的山水画作。
创新点:
- 人机协同的绘画系统
- 边缘图的生成有助于提高绘画的生成质量,并弥合用户输入与计算机输入之间的理解差距。
- 我们提出了一套用于开发共同创造的机器人系统的设计原则。(???)
实验过程
系统绘画效果
用户给出语义标签图,然后机器可以进行画作生成,得到的效果还是非常好的。把可以绘画的内容分成八个类别:山峰、草地、树、房子、天空、小路、石头,外加一个其他,用黑色表示。
比如上面这张图可以大概看出,褐色-山脉,墨绿-树林,青绿-草地,紫色-水,红色:房屋。
整个绘图系统有两种模式,即绘图 & 生成模式。
绘图模式:用于构造和修改草图
生成模式:用于在画布上显示生成的绘画
总体架构
1. Painting Producer
使用三元组数据集训练模型,包括真实场景图、语义标签图和边缘检测图。语义标签图提供图像每个区域中的语义信息,而边缘图提供每个对象的细节。将这两种输入作为网络输入进行组合可以提高计算机生成的绘画质量。
2. Edge synthesizer
边缘合成器会根据用户的输入自动生成边缘图。边缘图的生成是需要利用原始数据集的,去匹配最大的重合区域。
3. Reference recommender
担心新手画家没有灵感,而创作过程中的实时指导和视觉反馈可以激发用户的创造力。 给定任意草图输入,SmartPaint推荐数据集中的八个最相似的语义标签图作为用户参考。
下图显示的是相应的三个部分。
数据集
数据集由7234个三元组组成,三元组是(真实场景图,语义标签图,边缘检测图),是用户从诸多宫崎骏动画和类似风格的动漫中收集的,并且裁剪成了1024*512的尺寸。
1. 真实场景图
数据集资源在附录有相关展示:
其实读这篇论文很大的原因就是它处理的是线稿画,而目前暂时没有公开的线稿图数据集,我就想看看作者都是怎么收集和处理的。
2. 语义标签图
原文没有说自己是怎么对卡通图像进行标注的,盲猜是借助多分类的自动语义标注实现。
3. 边缘检测图
使用opencv的canny边缘检测技术得到。
所以最后一个元组的组成是这样的:
生成网络
PaintingProducer的生成网络是基于Pix2PixHD架构组成的,然后将语义标签图和边缘检测图这两张图片作为生成网络的输入,生成逼真的场景图。判别器则是要尽可能得区别真实场景图和这张生成图。
对Pix2pixHD不是特别熟悉,因为不是重点hhhh
它引入了VGG的损失函数和GAN网络的,以及基于特征匹配的鉴别器损失,最后得到损失函数为:
画作参考算法
系统的右侧会给出8幅参考画作,初始化的时候应该是随机的。随着用户的作画,它会实时给出数据集中和该幅图最相近的8幅语义标签图。整个过程需要借助自动编码器,从图像中提取高纬特征。
在训练网络之前,将所有的语义标签图大小调整为512*256像素,并转换为单通道的灰度图像。接着,标签图在经过自动编码器的处理后,输出4096维的潜向量latent vector,作为语义标签映射表示。再借助PCA算法,把4096缩小为20,并计算两个向量的欧几里得距离,实时获得8个最相似的语义标签图。
另外,可能用户不会在整个画布上绘制,那么系统将通过引用最近的彩色像素来自动填充空白像素。
填充算法如下:
边缘合成器
系统要根据语义标签图和边缘检测图生成逼真的场景画,可是对于测试集而言,应该怎么解决边缘检测图的问题呢?作者提出的边缘合成算法可以解决这个问题。
首先,将找出的八个相似语义标签图的边缘图都输入到边缘合成器中。
其次,通过形状匹配算法提取了用户草图中的语义段()和八个相似的语义标签图()。
把用户草图中的每种语义记为t,中所有相同的语义记为集合ss,s为ss的其中一个元素,也就是该语义的一个局部组成,希望计算出t和s的最大重叠面积,两者具有相同语义。
最后,选择最大的值,并使用s的相应边缘图来计算t的单个边缘图iSE。 通过相同的方法计算出用户草图中每个片段的单个边缘图后,将所有边缘段相加以获得最终的合成边缘图。 边缘图合成的伪代码如下。
效果预览
与pix2pixHD相比
本文的方法生成的图像©具有逼真的卡通风格和清晰的细节, 它还基于草图布局获得了具有不同场景的图像。 例如,它将大片树木解释为森林,将小片树木解释为灌木丛。
原始pix2pixHD方法生成的图像(b)模糊不清,几乎没有描绘出详细的纹理。
新手友好
上面一排是新手画作,下面一排是职业画手,效果差别不大,效果都挺好。
根据文字描述作画
上面一排是新手画作,下面一排是职业画手。因为输入不同,所以生成的画作也各自有区别,但是总体来讲效果都是非常好的。