stylegan-encoder代码执行步骤和解释
目录
(一)从图片中抽取并对齐人脸:
(二)找到对齐人脸图片的latent表达:
(三)从对齐的人脸头像提取特征码并生成StyleGAN头像:
(四)用别人的特征码修饰你的照片特征码,并生成混合后的StyleGAN头像:
在github.com 上有若干开源项目提供了源代码,我选用的开源项目是:pbaylies/stylegan-encoder,对应的网址是:https://github.com/pbaylies/stylegan-encoder
他们把解决办法称之为“stochastic clipping”(随机剪裁),其基本原理大致是:
特征码(特征向量)中每个数值通常处于一个有限的空间内,论文指出通常分布在[-1.0, 1.0]这个变动区间内,因此可以从某个特征向量开始(甚至于从全零向量开始),
- 先把超出[-1.0, 1.0]范围的数值剪裁到[-1.0, 1.0]区间,
- 然后以这个特征向量为基准值(平均值),在[-1.0, 1.0]这个变动区间内,按正态分布的规律随机取得新向量,
- 计算新向量通过GAN生成的新图片与原图片之间的损失函数,然后用梯度下降的方法寻找使损失函数最小的最优解。
论文指出,他们可以使损失函数降低到0,这样就找到了真实人脸对应的“相当精确”的特征码。
在这个开源项目里,作者把变动区间调整为[-2.0, 2.0]。有读者指出更好的变动区间是 [-0.25, 1.5],在这个区间内能够取得更优的质量。
这个开源项目实现的效果如下图所示(左一为源图;中间是基于预训练ResNet从源图“反向”生成dlatents,然后再用这个dlatents生成的“假脸”图片;右一是经随机剪裁方法最终找到的人脸dlatens,并用这个人脸dlatents生成的极为接近源图的“假脸”)
下面介绍具体执行步骤:
在工作目录下,新建.\raw_images目录,并把需要提取特征码的真实人脸图片copy到这个目录下。
使用时,可以按一下步骤操作:
(一)从图片中抽取并对齐人脸:
python align_images.py raw_images/ aligned_images/
(二)生成对齐人脸图片的生成的图片和latent表达:
python encode_images.py aligned_images/ generated_images/ latent_representations/
(三)从对齐的人脸头像提取特征码并生成StyleGAN头像:
python encode_images.py aligned_images/ generated_images/ latent_representations/ --iterations 300 --use_mssim_loss 300
(四)用别人的特征码修饰你的照片特征码,并生成混合后的StyleGAN头像:
python mixed_image.py
注意:这里的mixed_image.py是https://blog.csdn.net/weixin_41943311/article/details/103348865下的复制的代码的我自己起的文件名
这个StyleGAN Encoder的核心代码结构如下图所示:
其中一些具体的修改步骤参考:https://blog.csdn.net/weixin_41943311/article/details/103030194
如果你有网关可以在goole等连接,那么上述步骤可以省略
备注:
(2.1)预训练的resnet50模型,用于从源图生成优化迭代的初始dlatents,
对应于karras2019stylegan-ffhq-1024x1024.pkl的反向模型finetuned_resnet.h5
(2.2)预训练的StyleGAN模型,用于从dlatents生成“假”的人脸图片
预训练的StyleGAN人脸生成模型karras2019stylegan-ffhq-1024x1024.pkl
(2.3)预训练的VGG16模型,用于从图片提取features
用于评估图片相似性的vgg16_zhang_perceptual.pkl
- Pre-trained VGG16 network is used for transforming a reference image and generated image into high-level features space
反算潜码并重生成人脸这步主要使用encode-image.py
流程大概是:
- 使用反投影模型(RestNet50)将原始图片反投影出一个初始latent_code.
- 用生成器模型(pkl文件)根据初始latent_code生成一张图片.
- 使用vgg16对比生成图和原图的差距作为loss,反向传播优化latent_code.
- 用生成器模型根据新的latent_code生成一张图片.
第3,4步默认迭代100次,可以用--iterations参数进行更改.
参考:https://blog.csdn.net/weixin_41943311
原文链接:https://blog.csdn.net/DLW__/article/details/104161387
stylegan-encoder代码执行步骤和解释相关推荐
- 快速修复 Log4j2 远程代码执行漏洞步骤
点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/weixin_48990070/ article/details/121861553 目录 漏洞说明 修复步骤 下载源码zip包 ...
- android自定义的生命周期,android 自定义控件之ViewGroup生命周期执行步骤(示例代码)...
前言 了解ViewGroup的生命周期的执行步骤对于自己自定义ViewGroup的时候十分重要,清楚了整个流程才能对ViewGroup有更深的理解.本文从个人的总结,来阐述一下执行的顺序. 执行说明 ...
- 【实战】轻轻松松使用StyleGAN(六):StyleGAN Encoder找到真实人脸对应的特征码,核心源代码+中文注释
在上一篇文章中,我们用了四种方法来寻找真实人脸对应的特征码,都没有成功,内容请参考: https://blog.csdn.net/weixin_41943311/article/details/102 ...
- apache solr远程代码执行漏洞(cve-2019-0193)
简介 Apache Solr是一个企业级搜索平台,用Java编写且开源,基于Apache Lucene项目. 主要功能包括: full-text search 全文搜索 hit highlightin ...
- XXE漏洞利用技巧(XML注入):从XML到远程代码执行
目录 什么是XXE 基本利用 Blind OOB XXE 场景1 - 端口扫描 场景2 - 通过DTD窃取文件 场景3 - 远程代码执行 场景4 - 钓鱼 场景4 - HTTP 内网主机探测 场景5 ...
- python编程代码执行漏洞_代码执行漏洞 - 安全先师的个人空间 - OSCHINA - 中文开源技术交流社区...
0x00 前言 最近发现的一个新站,不妨试试手. 0x01 基础信息 漏洞点:tp5 method 代码执行,payload如下 POST /?s=captcha_method=__construct ...
- 达芬奇调色软件被曝两个远程代码执行缺陷
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 Blackmagci Software 公司最近修复了非常热门的达芬奇调色 (DaVinci Resolve) 软件中的两个漏洞,它们可导致攻击 ...
- log4j2远程代码执行漏洞学习总结
log4j2远程代码执行漏洞学习总结 背景 近期log4j2的漏洞闹得沸沸扬扬,在工作之余也是找了一些资料看一下相关的内容,到现在网上的总结已经很全了,B站上有各种漏洞复现,各大博客类网站关于JNDI ...
- 浅谈PHP代码执行的大致流程(opcode)
说到这个代码执行流程啊,咱也不说太多,先给大家分享一张图片: 怎么样?有点了解了么.说实话,单看这个,我本人是有点懵的,不过,不要怕.咱们来慢慢地看下. 首先,在网上找的信息说 ...
最新文章
- Docker部署配置相关使用总结
- JDK 8的启发性Javadoc
- Java中的硬件事务性内存,或者为什么同步将再次变得很棒
- 10 个十分难得的 javascript 开发经验
- 软件工程复习提纲——第一章
- 查看Python函数含义的快速,准确方法unique
- 为什么函数lamda显示权限不足_一个简单的Vue按钮级权限方案
- 如何进行大数据可视化分析
- en55032最新标准下载_欧盟新EMC标准EN55032强制实施
- 怎么将PDF文件在线转换成JPG图片
- android 简述jni调用过程,Android JNI 开发
- 淘宝以图搜图接口,图片搜索商品接入指南
- python使用win32*模块模拟人工操作——城通网盘下载器(零)
- Mac用VirtualBox虚拟机安装win10教程
- Android截屏截图方法所有方法汇总(包括Activity、View、ScrollView、ListView、RecycleView、WebView截屏截图)
- Linux如何删除用户
- 怎样查找计算机死机日志,死机和日志错误
- 概率论与统计的基础知识(概率空间、最基本的分布、数字特征)
- 设置MyEclipse的编辑器和控制台为护眼色
- 计算机基础知识填空题和选择题,计算机基础知识题库选择题(参考).doc