摘要
本文研究了中国书法图像合成问题:从标准字体(如汉字)合成具有特定风格的中国书法图像。黑体字)图像(图1(a))。
目前的工作多采用行程提取和装配管道,过程复杂,受行程提取效果的限制。我们将书法合成问题视为图像到图像的转换问题,提出了一种基于深度神经网络的模型,可以直接从标准字体图像生成书法图像。此外,我们还构建了一个包含各种风格的中国书法综合的大型基准。我们在所提出的数据集上评估了我们的方法以及一些基线方法,实验结果证明了我们提出的模型的有效性。
code:https://github.com/suker80/Auto-Encoder-Guided-GAN-for-Chinese-Calligraphy-Synthesis
论文:https://arxiv.org/abs/1706.08789
网络结构
图像的上半部分是我们的传输网络,架构的下半部分是监督网络,它是一个自编码器。对整个网络进行端到端的训练,在训练阶段使用监督网络对传输网络解码器的低特征进行监督。
论文和里面的代码没有仔细的去看,只是简单的把代码调通了。
环境配置
tensorboard 2.11.2
tensorflow 2.11.0
tqdm 4.64.0
six 1.15.0
scapy 2.4.5
scipy 1.10.1
opencv-python 4.5.5.62
matplotlip
torch 1.11.0
torchvision 0.12.0
python 3.7.16
numpy 1.21.5
好像就这些配置吧,要是少了你们再试一下
bug解决
感觉作者比较粗心,都是一些小错误。有点像是故意留给别人处理的。
这篇文章比较老,跟rewrite和zi2zi一样老,但是没有它们影响力那么大。
代码是用的CPU跑的。目前已经调好了,数据集也进行了灰度处理。代码正在跑,已经跑了40epoch,跑完估计要4天。上次跑rewrite也是用来4…5天这样。
注意
数据集大小必须是256 * 256的灰度图。如果不是的话,你需要先将他们进行预处理,然后才能进行训练。如果想用128 * 128的,则需要自己将里面的参数进行小幅度的修改,你可以自己去尝试一下,或许你会发现其中的乐趣。
项目目录
下载后的文件里面的目录展示(红色框)
数据的文件夹命名为train,里面包括两个子文件夹(original和target)
model.py
我们先来看看model.py里面错误的bug
1、这个文件里面有些函数需要用到版本tf1里面的函数,所以我们在开头将他import一下。
import tensorflow._api.v2.compat.v1 as tf
tf.disable_v2_behavior()
2、把steps = len(path) / self.batch_size替换成
steps = int(len(path) / self.batch_size)
steps = len(path) / self.batch_size算出来是一个小数,所以是对不上的。
我们不妨将steps打印出来看看结果。----可以看出steps=192.75
3、他那个括号标注错了。是个小错误。正确写法如图示
有个print的也是一样,写法错了。少了括号
ops.py
2、跟第一个问题是一样的
import tensorflow._api.v2.compat.v1 as tf
tf.disable_v2_behavior()
3、将batch_norm的函数换一下
return contrib.layers.batch_norm(inputs=input,decay=0.9,scale=True,epsilon=1e-5,updates_collections=None) 替换成
return tf.layers.batch_normalization(inputs=input, momentum=0.9, scale=True, epsilon=1e-5)
结果展示
这里附上一张正在训练的图像。因为他的代码用的是cpu跑的,所以比较慢,估计要4-6天的时间。后面跑完,然后有时间,还能想起来的话,就把结果展示出来。