ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

PaddleGAN StyleGAN V2 Editing 实战指南:基于属性方向向量的生成图像语义编辑

PaddleGAN StyleGAN V2 Editing 实战指南:基于属性方向向量的生成图像语义编辑 人工智能深度学习计算机视觉媒体生成视频处理图像处理【免费下载链接】PaddleGANPaddlePaddle GAN library, including lots of interesting applications like First-Order motion transfer, Wav2Lip, picture repair, image editing, photo2cartoon, image style transfer, GPEN, and so on.项目地址https://gitcode.com/gh_mirrors/pa/PaddleGAN点击查看免费下载导读StyleGAN V2 擅长以风格向量latent code生成高保真人脸图像而要让生成结果可控——例如让同一个人脸变老、变年轻、微笑或改变性别——就需要对潜空间进行语义方向上的平移。PaddleGAN 的StyleGAN V2 Editing 模块正是为此而生它利用预先对大量图像风格向量做分类回归得到的属性操纵向量attribute manipulation vector在潜空间中对风格向量做线性偏移从而精准操纵生成图像的属性。读完本文你将掌握 Editing 模块的原理、完整命令行用法、全部参数语义以及如何通过 Pixel2Style2Pixel / Fitting 模块准备可编辑的风格向量并理解属性方向向量从何而来、如何自建。StyleGAN V2 Editing 原理潜空间中的线性编辑StyleGAN V2 的核心任务是用风格向量style vector进行 image generation给定特定长度的向量生成该向量对应的图像见 styleganv2.md。它的潜空间是高度解耦的不同维度/层次的信息如姿态、身份、颜色、细节分散在不同风格的层级上这为定向编辑提供了基础。Editing 模块的核心思想可以概括为收集大量图像的风格向量对它们按某一属性如年龄、微笑、性别做分类或回归得到该属性在潜空间中的方向向量direction即沿着这个方向移动风格向量就能单调地改变该属性的强度编辑时将原始风格向量latent与偏移量offset乘以方向向量direction相加得到新向量latent offset * direction再送入生成器即可得到属性被编辑后的图像。这一向量加法式的编辑逻辑在源码中有非常直接的体现。在 styleganv2editing_predictor.py 的run方法中核心计算只有一行latent_n paddle.concat([latent, latent offset * direction], 0)即把原始向量和编辑后的向量拼成一个 batch一次性生成两幅图——第一幅是原始风格向量对应的图像作为对照第二幅是编辑后的图像。随后通过生成器的forwardinput_is_latentTrue完成解码将结果保存为src.editing.png原始与dst.editing.png编辑后同时把编辑后的风格向量保存为dst.editing.npy供后续继续叠加编辑使用。从实现结构上看StyleGANv2EditingPredictor继承自 styleganv2_predictor.py 中的StyleGANv2Predictor复用了其生成器构建与预训练权重加载逻辑仅在之上增加了方向向量的加载与线性偏移。生成器本体为 generator_styleganv2.py 中的StyleGANv2Generator包含 PixelNorm、Mapping Networkn_mlp层 MLP与 Synthesis Network 等标准结构。前置准备获取可编辑的风格向量Editing 模块的输入不是一个图像文件而是一个风格向量文件.npy。根据 styleganv2editing.md 的说明--latent参数可以来自两条途径Pixel2Style2Pixel 编码运行 pixel2style2pixel.py 将输入人像编码为风格向量输出文件为dst.npy见 pixel2style2pixel_predictor.py 中的np.save逻辑。Pixel2Style2Pixel 将 StyleGAN V2 当作解码器把图像映射到其风格向量空间使编码前后图像强关联相关用法见 pixel2style2pixel.md。StyleGAN V2 Fitting 拟合通过 styleganv2fitting.py 对已有图像做潜空间拟合反推出解耦程度高的风格向量输出文件为dst.fitting.npy见 styleganv2fitting_predictor.py。Fitting 使用 LPIPS 感知损失与 MSE 损失联合优化 latent可得到比编码更贴合原图的向量相关用法见 styleganv2fitting.md。# 方式一先用 Pixel2Style2Pixel 得到 dst.npy再进入编辑流程 cd applications/ python -u tools/pixel2style2pixel.py \ --input_image 输入图像路径 \ --output_path 输出文件夹 \ --model_type ffhq-inversion \ --size 1024 \ --style_dim 512 \ --n_mlp 8 \ --channel_multiplier 2 \ --cpu # 方式二或用 Fitting 拟合得到 dst.fitting.npy步骤较多此处省略拿到风格向量后即可将其路径填入 Editing 命令的--latent参数。使用方法编辑命令与完整参数解析在仓库根目录下进入applications/目录执行如下命令对图像属性进行编辑命令原文来自 styleganv2editing.mdcd applications/ python -u tools/styleganv2editing.py \ --latent 替换为要编辑的风格向量的路径 \ --output_path 替换为生成图片存放的文件夹 \ --weight_path 替换为你的预训练模型路径 \ --model_type ffhq-config-f \ --size 1024 \ --style_dim 512 \ --n_mlp 8 \ --channel_multiplier 2 \ --direction_path 替换为存放属性向量的文件路径 \ --direction_name 替换为你操纵的属性名称 \ --direction_offset 0.0 \ --cpu对应的命令行入口实现在 styleganv2editing.py所有参数均通过argparse解析并在末尾构造StyleGANv2EditingPredictor后调用predictor.run(args.latent, args.direction_name, args.direction_offset)完成推理。参数说明表参数类型/默认值含义--latentstr必填代表图像的风格向量路径。可来自 Pixel2Style2Pixel 生成的dst.npy或 StyleGAN V2 Fitting 模块生成的dst.fitting.npy--latent2str第二个风格向量的路径来源同第一个风格向量见下方说明--output_pathstr默认output_dir生成图片存放的文件夹--weight_pathstr默认None预训练模型路径若指定了--model_type此参数失效--model_typestr默认NonePaddleGAN 内置模型类型。若输入已存在的模型类型weight_path将失效。当前建议使用ffhq-config-f--sizeint默认 1024模型参数输出图片的分辨率--style_dimint默认 512模型参数风格 z 的维度--n_mlpint默认 8模型参数风格 z 所输入的多层感知机Mapping Network的层数--channel_multiplierint默认 2模型参数通道乘积影响模型大小和生成图片质量--direction_pathstr默认None存放一系列属性名称及对应属性向量的文件路径。默认为空即使用 ppgan 自带的文件若不使用请在命令中去除该参数--direction_namestr默认None要编辑的属性名称见下文属性列表--direction_offsetfloat默认 0.0属性的偏移强度正负决定属性增强或减弱的方向--cpuflag是否使用 CPU 推理若不使用请在命令中去除几点需要结合源码补充的细节关于--latent2文档参数表中列出的第二个风格向量用于对第二路风格进行编辑需要说明的是从当前仓库 styleganv2editing.py 的argparse定义看目前 CLI 仅暴露了--latent单输入参数使用前请以当前仓库实际支持的参数为准。模型参数必须与预训练模型匹配当指定--model_type ffhq-config-f时weight_path失效内置配置会自动覆盖size1024、style_dim512、n_mlp8、channel_multiplier2见 styleganv2_predictor.py 的model_cfgs。此时命令行中的这四个参数可省略若使用自定义--weight_path则必须保证这四个模型参数与权重训练时的配置一致否则生成器结构不匹配会报错。CPU 推理开关--cpu在入口脚本中会执行paddle.set_device(cpu)见 styleganv2editing.py默认则使用当前可用的 GPU 设备。1024 分辨率的人脸生成在 CPU 上耗时较长建议优先使用 GPU。源码视角Editing 推理链路详解整个编辑过程在 styleganv2editing_predictor.py 的StyleGANv2EditingPredictor中完成关键步骤如下加载属性方向向量构造时若未指定direction_path且指定了model_type则断言该模型类型存在于编辑模块的model_cfgs中并从内置 URL 下载对应的方向文件stylegan2-ffhq-config-f-directions.pdparams随后通过paddle.load将其加载为字典self.directions。注意编辑模块的model_cfgs目前仅内置ffhq-config-f一种方向文件见 styleganv2editing_predictor.py这是文档中当前建议使用ffhq-config-f的底层原因。读取风格向量np.load(latent)读取.npy风格向量并unsqueeze(0)扩充 batch 维转为 float32 张量。构造编辑向量从方向字典中取出direction_name对应的方向向量计算latent offset * direction与原始 latent 拼接为 batch 大小为 2 的输入。生成与保存调用generator([latent_n], input_is_latentTrue, randomize_noiseFalse)一次生成两幅图经make_image从归一化张量转回uint8图像((tensor1)/2*255)反归一化分别保存src.editing.png原始风格向量对应的对照图dst.editing.png编辑后的结果图dst.editing.npy编辑后的风格向量可再次作为--latent输入实现属性的级联叠加编辑。由于randomize_noiseFalse推理时噪声注入使用生成器内置的固定噪声 buffer见 generator_styleganv2.py 的synthesis逻辑保证编辑前后除属性外其余生成细节保持一致编辑效果可对照、可复现。内置属性方向ffhq-config-f支持的属性列表对于ffhq-config-f模型PaddleGAN 预先准备了如下 16 种人脸属性方向来自 styleganv2editing.md 参数说明全局/姿态类pitch俯仰角、roll翻滚角、yaw偏航角面部结构类eye_distance眼距、eye_eyebrow_distance眉眼距离、eye_ratio眼睛比例、lip_ratio嘴唇比例、mouth_open张嘴、mouth_ratio嘴部比例、nose_mouth_distance鼻嘴距离、nose_ratio鼻部比例、nose_tip鼻尖其他语义类age年龄、eyes_open睁眼、gender性别、smile微笑使用时将属性名填入--direction_name。若你自行制作了属性方向文件并通过--direction_path指定则该列表中即可使用你自定义的属性名。偏移强度理解direction_offset--direction_offset控制属性编辑的强度offset 0沿方向向量正方向移动属性向增强方向变化offset 0不编辑生成结果与原始 latent 相同offset 0沿负方向移动属性向减弱/反向变化。其取值没有硬性上限但过大的偏移会显著偏离训练分布导致生成图像失真或出现伪像通常建议在 ±5 的范围内调试。文档中的示例即按[-5, -2.5, 0, 2.5, 5]五个档位对age进行编辑用于观察属性变化的连续性。级联编辑多属性叠加由于编辑后的风格向量会被保存为dst.editing.npy你可以把它当作新的输入继续编辑其他属性实现多属性叠加。例如文档展示的流程是先对风格向量做age偏移-5变年轻再把编辑结果向量进一步做gender编辑得到变年轻 变性别的复合效果。这一能力来自run方法中对dst_latent的持久化保存见 styleganv2editing_predictor.py是串联多次编辑、组合语义属性的关键机制。编辑结果展示下图为风格向量对应的原始图像该向量由 Fitting 模块拟合产生按[-5, -2.5, 0, 2.5, 5]对age年龄属性进行编辑得到的连续结果最左为 -5 即最年轻最右为 5 即最年长中间为 0 即原始对-5偏移得到的风格向量进一步进行gender性别编辑得到的图像从结果可以看出仅改变 latent 的少量维度即可保持人脸身份与姿态大体不变而单一语义属性发生连续、平滑的变化——这正是解耦潜空间线性编辑的直观体现。进阶自制属性方向向量若内置的 16 种属性无法满足需求你可以自行制作属性方向向量。具体方法可参考 StyleGAN 社区的经典实践Puzer 的 stylegan-encoder 项目中 Learn direction in latent space 教程的思路其通用流程为收集一批同一属性具有不同表现如不同年龄的人脸图像用 Pixel2Style2Pixel 或 Fitting 得到各自的风格向量对这批风格向量按属性标注做线性回归或对两组向量做均值差得到一个与属性强相关的方向向量将多个属性的方向向量按{属性名: 向量}的字典结构组织并保存为参数文件通过--direction_path传入 Editing 模块使用。需要说明的是PaddleGAN 内置的ffhq-config-f方向文件正是以属性名 → 方向向量的字典形式加载paddle.load后按self.directions[direction]索引因此自制文件保持相同结构即可无缝接入。参考文献本文核心内容整理自 styleganv2editing.md并参考以下工作Analyzing and Improving the Image Quality of StyleGANTero Karras, Samuli Laine, Miika Aittala, Janne Hellsten, Jaakko Lehtinen, Timo AilaCVPR 2020——StyleGAN V2 原始论文提出改进的生成质量与解耦潜空间article{Karras2019stylegan2, title{Analyzing and Improving the Image Quality of {StyleGAN}}, author{Tero Karras and Samuli Laine and Miika Aittala and Janne Hellsten and Jaakko Lehtinen and Timo Aila}, booktitle{Proc. CVPR}, year{2020} }Encoding in Style: a StyleGAN Encoder for Image-to-Image TranslationRichardson, Elad 等2020——Pixel2Style2Pixel 论文为风格向量编码与属性编辑提供了编码器基础article{richardson2020encoding, title{Encoding in Style: a StyleGAN Encoder for Image-to-Image Translation}, author{Richardson, Elad and Alaluf, Yuval and Patashnik, Or and Nitzan, Yotam and Azar, Yaniv and Shapiro, Stav and Cohen-Or, Daniel}, journal{arXiv preprint arXiv:2008.00951}, year{2020} }相关源码可继续阅读命令行入口 styleganv2editing.py、预测器实现 styleganv2editing_predictor.py、生成器实现 generator_styleganv2.py以及上游风格向量来源模块 pixel2style2pixel.md 与 styleganv2fitting.md。赞分享人工智能深度学习计算机视觉媒体生成视频处理图像处理【免费下载链接】PaddleGANPaddlePaddle GAN library, including lots of interesting applications like First-Order motion transfer, Wav2Lip, picture repair, image editing, photo2cartoon, image style transfer, GPEN, and so on.项目地址https://gitcode.com/gh_mirrors/pa/PaddleGAN点击查看免费下载相关推荐PaddleGAN StyleGAN V2 Editing 属性编辑模块实战指南PaddleGAN StyleGAN V2 Editing 属性编辑模块实战指南 本文以 PaddleGAN 仓库中的 StyleGAN V2 Editing人工智能深度学习计算机视觉媒体生成视频处理图像处理PaddleHub StyleGAN V2 Editing 人脸属性编辑实战指南基于 PaddlePaddle 的风格向量方向操纵PaddleHub StyleGAN V2 Editing 人脸属性编辑实战指南基于 PaddlePaddle 的风格向量方向操纵 导读 本文围绕开源仓库 P人工智能大模型微调模型推理服务PaddleGAN图像生成艺术StyleGAN V2实战指南PaddleGAN图像生成艺术StyleGAN V2实战指南 本文详细介绍了PaddleGAN框架中StyleGAN V2的完整实战指南包括架构改进、FFH人工智能深度学习计算机视觉媒体生成视频处理图像处理上一篇如何掌握Betaflight飞行控制器固件从新手到高手的完整实战指南下一篇Instatic 0.0.1 → 0.0.19 版本演进全解析安全加固、发布管道与 AI/协作能力的三条主线创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表