基于风格迁移的人工智能国画生成

2020-11-04 09:56
科教导刊·电子版 2020年26期
关键词:国画纹理卷积

(复旦五浦汇实验学校 上海 201700)

0 引言

中国传统绘画,又称国画,是中华文化的传统绘画艺术,也是琴棋书画四艺之一。国画中又以水墨画为主。它是用毛笔蘸水、墨、彩作画于绢或纸上。工具和材料有毛笔、墨、国画颜料、宣纸、绢等,题材可分人物、山水、花鸟等,技法可分为具象和写意。是我国历史文化遗产的重要组成部分。

近年来,由深度学习所引领的人工智能技术浪潮,开始越来越广泛地应用到社会各个领域。其中,人工智能与艺术的交叉碰撞,在相关的技术领域和艺术领域引起了高度关注。以相关技术为基础而开发的各种图像处理软件和滤镜应用更是一推出就立刻吸引了海量用户。根据调研,目前一共有5种主流相关算法,分别是:

(1)基于笔画的渲染,即对笔画的各个特征进行调整,类似各种画图工具的笔刷功能。

(2)图像类比方法,即在数据库中找类似的图像替换目标图像中的对应元素,如照片中的树,通过类比找到数据库中形状类似、颜色类似的树并予以替换。

(3)图像滤波方法,即通过对颜色的调整,实现画面的卡通画或素描化。如通过RGB向灰度变换,形成黑白照片。

(4)纹理合成方法,即将对象的表面纹理材质替换为其他类型,如将大理石材质纹理替换肤色并应用在人的图像上,就能获得大理石质感的人物雕像图片。

(5)神经网络风格迁移,即通过卷积神经网络,自动识别并提取需要的图像特征,并应用到目标图像中。因为这种方法和其他方法相比,不需要人工创建数据库,因此该方法是目前的主流研究方法。

在研究中发现,现有的很多图像风格化迁移技术虽然已经基本可以实现,但是由于开发人员和团队以外国为主,所以常见一些油画、素描、漫画类风格迁移,而较少甚至没有见过带有中国元素的风格迁移项目。而国画作为我国传统文化的重要组成部分,目前在我国甚至全世界都鲜有人通过人工智能的方法实现。

因此,本文计划使用相对较成熟的风格迁移算法,采用人工智能技术对一般风景照片进行国画风格的图像风格迁移处理,尝试直接生成山水类国画。

1 国内外发展现状

在神经网络之前,图像风格迁移算法的思路是分析某一种风格的图像,给那一种风格建立一个数学或者统计模型,再改变要做迁移的图像让它能更好的符合建立的模型。

基于神经网络的图像风格迁移在2015年由 Gatys et al.在两篇论文中提出。它是第一个使用深度学习来给纹理建模的方法。他研究了纹理和风格之间的区别并提出了纹理能够描述一个图像的风格的观点,以及如何只提取图片内容而不包括图片风格的解决方案。随着这两篇文章的出现,图像风格迁移成为了深度学习领域研究的一个热门方向,相关的研究如:多个预设风格的融合,实时任意风格迁移算法,图片类比等大量涌出。同时,随着技术的不断更新和发展,图像风格迁移技术也大量应用于各种软件,为人们的生活带来了便利。

由于国外相关资料丰富且完整,本文主要采用国外典型的风格迁移人工智能算法①进行改写并尝试在国画创作上进行应用。

2 研究方法与过程

2.1 图像卷积算法

数字图像是一个二维的数据,对数字图像做卷积操作其实就是利用卷积核(卷积模板)在图像上滑动,将图像点上的像素灰度值与对应的卷积核上的数值相乘,然后将所有相乘后的值相加作为卷积核中间像素对应的图像上像素的灰度值,并最终滑动完所有图像的过程。通过与不同的卷积算子(一些经过设计的数组)进行卷积计算,可以获得不同类型的图片特征,获得图像的各种隐含信息。

2.2 风格迁移

风格迁移是本文的核心内容,它使用VGGNet神经网络分别从原始图片A(风格)和原始图片B(内容)直接提取特征,然后使用梯度下降法,计算风格和内容损失值,获取最优的输出结果。

VGG Net是由牛津大学的视觉几何组(Visual Geometry Group)和GoogleDeepMind公司的研究员一起研发的深度卷积神经网络。它是一个多重卷积的结构:前面的卷积层从图像中提取“特征”,而后面的全连接层把图片的“特征”转换为类别概率。其中,VGGNet中的浅层提取的特征往往是比较简单的(如检测点、线、亮度),VGGNet中的深层提取的特征往往比较复杂(如有无人脸或某种特定物体)。本文采用VGGNet中的VGG16的算法,结构图如图1所示。

图1:VGG16的算法结构图

VGGNet的处理过程是输入图像,提取特征,并输出图像类别。在VGGNet处理程序之后在进行逆操作,先要输入特征,然后输出对应这种特征的图片。这就是一个完整的风格迁移过程。

但是VGGNet中提供的默认卷积计算参数可能不一定能满足风格迁移要求,于是在本文中另外采用了一个基于Tensorflow的训练程序进行训练,并希望获取较理想的计算参数。

2.3 程序流程图

图2:程序流程图

3 试验过程和结果

根据程序流程图,本文用Python语言编写了程序(略),用以实现AI国画的生成。首先输入如下国画,作为被模仿的图像。然后分别考虑简单图像的风格迁移和山水风景图像的风格迁移(见图3)。

3.1 简单图像的风格迁移

图3:输入的模仿图像

从运行结果可以看到(见图4),输入目标图像中的两笔3段曲线在经过风格迁移后,增加了具有水墨韵开的质感。输入图像中,中下部分的纸张的褶皱和光线不均,也被系统提取了并进行了迁移,形成了类似湖泊河流的画面。

3.2 山水风景图像的风格迁移

图5:输入的风景图

从这两次迁移结果可以看出,山和水经过风格迁移算法运算后,都能获得不错的水墨画质感。但是图5中左侧的树林,被算法识别为了山,这可能是因为在模仿图像中,山和水在画面中的占比较高,导致生成的替换特征也是以山和水为主。因此误将树林识别为山,并进行了风格迁移运算。

图4:简单图像的目标图像和生成图像

图6:预处理后的风景图

图7:AI生成的图像

4 总结与展望

通过测试可以发现,输出的结果在色调,颜色变化模型,物体外形上都接近或与一般山水国画类似。但是最终生成结果与真实的国画还有一定的距离。其主要原因可能出现在:

(1)训练集采用的是网络上搜罗的训练集,而非专门为国画准备的训练集,导致在卷积运算参数的训练上,无法与国画风格进行高度匹配。

(2)替换的特征内容在整个VGG16卷积算法的中层,该层主要能提取出类似“笔触”的特征,从而在一定层面上能体现出山水国画中“山”的画面样式。但是对于“水”和山水画中经常出现的“舟”,“林”,“鸟”等,并不能较好的实现模仿。因为这些元素往往在图像中过大或过小,很容易在最初的几次卷积运算中被当做噪声或背景过滤。这些元素没有加入后续运算,因此在反卷积运算中被彻底丢失。

通过以上两个主要问题的分析和总结,本文在下一阶段中将进行四个方向的改进:

(1)通过网络爬虫手段,生成国画图像训练集,并希望从该训练更准确的卷积计算参数。

(2)通过对图像进行后处理,对远近山水进行颜色深度的调整,使其更符合国画特征。

(3)通过对图像进行后处理,通过较简单的图像叠加方式,添加国画中经常出现的“林”,“鸟”,“舟”等元素。

(4)尝试对目标图像先进行目标分类,然后根据不同类目在画面中位置,使用对应的特征,进行相应的风格迁移,最后再通过一些画面平整方法将各部分组合。

注释

① 该算法的网址为https://github.com/marcatmendez/fast-style-transfer-master

猜你喜欢
国画纹理卷积
国画《鲦鱼》
国画《鲿》
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
使用纹理叠加添加艺术画特效
国画欣赏
基于傅里叶域卷积表示的目标跟踪算法
TEXTURE ON TEXTURE质地上的纹理
消除凹凸纹理有妙招!
一种基于卷积神经网络的性别识别方法