Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered.
laixinyi 185e295d5f | 9 months ago | |
---|---|---|
data | 10 months ago | |
imgs | 9 months ago | |
scripts | 9 months ago | |
src | 9 months ago | |
.DS_Store | 10 months ago | |
.gitignore | 10 months ago | |
LICENSE | 10 months ago | |
README.md | 9 months ago | |
eval.py | 9 months ago | |
predict.ipynb | 9 months ago | |
requirements.txt | 9 months ago | |
train.py | 9 months ago |
👋 基于 CycleGAN 风格迁移算法的 风格化字体 生成
本项目为基于Mindspore框架实现的CycleGAN在字体设计方面的衍生应用,我们使用的在线训练平台为 OpenI 启智社区(https://openi.org.cn/)。
准备训练数据集如 dataset
应分为两组:
./data/dataset/trainA
./data/dataset/trainB
通过训练可将 trainB
文件夹内图片风格迁移至 trainA
内容图片上。
提供边训练边验证,若使用验证集,则内容图片的路径为:./data/dataset/devA
❗ 注意:trainA、trainB 文件夹内图片原则上应统一分辨率大小、图片格式,推荐使用 256px * 256px,72dpi 或 512px * 512px,72dpi 大小的 .jpg 或 .png 格式图片。
本项目中,trainA
为楷体字体为带白底的 .png 图片,训练所用字体图片可通过字库解包的 python 代码获得。trainB
为手动收集与处理的竹叶带白底的 .png 图片。本实验通过训练CycleGAN模型,将 trainB 文件夹中竹叶的风格迁移至 trainA
的楷体字体上,从而生成风格独特的竹叶🍃字体。以“粉”字为例,效果如下:
🀄 本项目提供 楷体文字 .png 图片数据 300 张 ,放置于 trainA
文件夹内,数据集概览如下:
🍃 通过手动搜集与处理的 竹叶 png 图片数据 300 张 ,同样将其进行二值化与重置图片大小,放置于 trainB
文件夹内。数据集概览如下:
trainA
与 trainB
文件夹一同放置于数据根目录 data
下的 dataset
内。运行以下命令进行模型训练:
bash scripts/run_train_ascend.sh [DATA_PATH] [EPOCH_SIZE] [BATCH_SIZE] [SAVE_IMG_NUMS]
参数说明:
[DATA_PATH]
:训练数据集 路径[EPOCH_SIZE]
:训练 epoch 数量[BATCH_SIZE]
:batch size 大小[SAVE_IMG_NUMS]
:训练每一个epoch中,想要随机查看训练集图片风格转化结果的数量,若查看数量为 N
的 trainA
全部数据集效果,则此参数设定为 N
。❗❗以上命令中的参数应满足:N
> [SAVE_IMG_NUMS]
* [BATCH_SIZE]
例如,训练200个epoch,bacth size为1,训练集大小为300,每个epoch保存全部训练集图片结果:
bash scripts/run_train_ascend.sh ./data/dataset 200 1 300
生成的训练集风格转换后的图片会按照 epoch 分类保存在 outputs/imgs
路径下。
如果提供的数据集 dataset
中包括验证集,将会自动在每个epoch训练结束后,自动执行模型在验证集上的表现,所有验证集的风格转换后图片都会保存到eval
目录下,同样按照 epoch 进行分类,方便使用者判断各个epoch的效果,并按需选择效果最好的epoch,从而下载对应的模型参数checkpoint文件用于后续推理。
🎉 参考模型在训练集上对应的训练结果如下图所示:
使用以下命令进入指定的epoch压缩训练集结果,便于下载:
cd ./outputs/imgs
zip -r [EPOCH_NUMS].zip [EPOCH_NUMS]
使用以下命令进入指定的epoch压缩验证集结果,便于下载:
cd ./outputs/eval
zip -r epoch_[EPOCH_NUMS].zip epoch_[EPOCH_NUMS]
其中保存图片命名 100_199_0_fake_B.jpg
表示该图片的来源是由Gnerator B在以下时间节点生成的:
模型训练过程中保存checkpoint文件的路径:./outputs/ckpt
,训练过程中每5个epoch保存一次checkpoint文件,其中各文件命名含义:
模型默认后台训练,训练日志:output.train.log
准备测试集放在该组数据集目录./data/dataset
,运行以下命令:
bash scripts/run_eval_ascend.sh
使用您觉得效果最佳的模型参数文件(.ckpt),更改该脚本中涉及参数:
python eval.py --platform Ascend --device_id 0 --model DepthResNet --G_A_ckpt ./outputs/ckpt/G_A_70.ckpt --G_B_ckpt ./outputs/ckpt/G_B_70.ckpt > output.eval.log 2>&1 &
本项目提供针对单张图片推理,加载模型ckpt文件,即可对测试文字图片进行风格转换。
➡️ 文件路径./predict.ipynb
根据需要,修改如下模型参数文件路径和待风格转换的图片路径:
G_A_ckpt, G_B_ckpt = './outputs/ckpt/G_A_70.ckpt', './outputs/ckpt/G_B_70.ckpt'
img_path = './dataset/testA/12.png'
💭 推理结果会直接显示在运行结束后
使用Mindspore框架实现的CycleGAN在字体设计方面的衍生应用。
Jupyter Notebook Python other
Apache-2.0
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》