原生 pix2pix 无法处理 同一字符对应多种字体风格的一对多问题,zi2zi 通过类别嵌入(Category Embedding)解决该问题
zi2zi 的网络流程是基于 pix2pix 的 U-Net 生成器与 PatchGAN 判别器构建的端到端 CJK 字体条件图像翻译流程,融合 AC-GAN 和 DTN 核心设计,整体分训练与推理两个阶段,且适配预训练大模型 + 单风格微调的两步训练策略;训练时生成器先接收宋体字符图像(字符身份条件)与高斯风格嵌入 + 风格类别标识(风格条件)的双条件输入,经编码器下采样提取 CJK 字符通用结构嵌入,再将该嵌入与风格嵌入通道拼接,解码器借助 U-Net 跳跃连接上采样融合特征生成目标风格字符假图,随后判别器对生成假图和对应真实目标风格图做 PatchGAN 局部真假判断与风格分类的双任务输出,再据此计算 GAN 真假、AC-GAN 类别、L1 像素、DTN 常数四类核心损失并加权求和,通过反向传播实现生成器与判别器的对抗参数更新,其中预训练阶段更新生成器编码器 + 解码器与判别器,微调阶段冻结编码器仅更新解码器和判别器,多轮迭代至收敛后,推理阶段则舍弃判别器,仅用训练完成的生成器,输入宋体字符图像与指定风格嵌入,即可完成端到端的字体风格迁移,输出目标风格字符图像。
注意:
- 风格条件 1:风格类别标识 c(独热编码,如第 3 种字体风格为 [0,0,1,0,...]),代表「要生成的字体风格是哪一种」;
- 风格条件 2:高斯风格嵌入 z(随机生成的不可训练高斯噪声,维度固定),是 zi2zi 解决「同一字符对应多种风格」的核心设计,通过噪声表征不同风格的细微特征,与风格类别标识一一对应。
- 损失函数:GAN 真假损失——判别器的真假概率,类别损失——目标风格是否正确,L1 像素损失——像素损失(这个不用编码器提取特征,检查图片二进制编码的差异),常数损失——生成器编码器对 X 和 G (X,z,c) 的嵌入向量差值,可选 TV 损失 L_tv——生成假图的像素梯度(优化图像平滑度(项目中对书法体无效,默认关闭))