StyleGAN
PGGAN Progressive Growing of GANs for Improved Quality, Stability, and Variation Tero Karras, Timo Aila Published 27 October 2017(Citations 3711) 是 英伟达实验室 Tero Karras 大神提出的生成对抗网络模型,本文的中心思想是通过 Progressive Growing 的训练方法,加速训练过程并稳定模型,并取得非常好的实验效果。同时本还给出了提出了增加图片多样性,减少G和D恶性竞争的方法。以及衡量GAN的指标。
网络架构 这种渐进式的学习过程是从低分辨率开始,通过向网络中添加新的层逐步增加生成图片的分辨率。该种方法主观上允许我们首先学习图片分布的大的结构特征(低分辨率),在机构特征学习之后,逐步学习图片的细节部分(高分辨率),而不是同时学习所有尺度的特征。倘若同时学习所有尺度的特征网络的训练难度过大,试想当图片的大型结构仍需要继续学习,然而细节部分已经学习成功,又出现一个我们不想看到的问题,图片的大型结构一旦改变,网络的细 ...
pix2pix、CycleGAN
pix2pix论文主页 Image-to-Image Translation with Conditional Adversarial Networks
简介pix2pix算法是解决对于图像域转换翻译问题的奠基地位的一个算法。其中有很多方面的应用(开篇的链接中已经展示实例)
理论基础pix2pix算法实际上是在条件对抗网络(cGAN)上完善的,输入是一组图像对,如下图
转化域 $\boldsymbol X$ 、被转化域 $\boldsymbol Y$ : $\boldsymbol x \in \boldsymbol X,\boldsymbol y \in \boldsymbol Y$ , 完成转换 $\boldsymbol X \rightarrow \boldsymbol Y$
生成器G : 根据输入的 $\boldsymbol x$ 生成虚假的图片 $G(\boldsymbol x)$
判别器D : 判别$G(\boldsymbol x)$和$\boldsymbol y$的真假
生成器我们的生成器的构架使用了U-net的
如上图,左图是一般的图像的信息提取模型,即编 ...
WGAN
WGAN对于原始的GAN,目标函数涉及到了一个JS散度,这个在训练的时候会出现一个很麻烦的事情。我们首先来回顾一下我们在原始GAN中最终要优化的目标函数:
\begin{aligned}
C(G) &=\max _D V(G, D)=\mathbb{E}_{\boldsymbol{x} \sim p_{\text {data }}}\left[\log \frac{p_{\text {data }}(\boldsymbol{x})}{P_{\text {data }}(\boldsymbol{x})+p_g(\boldsymbol{x})}\right]+\mathbb{E}_{\boldsymbol{x} \sim p_g}\left[\log \frac{p_g(\boldsymbol{x})}{p_{\text {data }}(\boldsymbol{x})+p_g(\boldsymbol{x})}\right]
\end{aligned}再观察一下,当 $p_{data}$ 分布和 $p_g$ 分布,完全没有交集,或是说只有很狭窄的一个交际(在这高维空间中是很容易得到的情况 ...
DCGAN、CGAN
DCGANDCGAN 框架DCGAN实在原始GAN的基础上,对于生成器和判别器的模型结构进行了改进,采用可大量的深度卷积代替全连接层。从而提高了处理视觉问题方面上的质量和稳定性。
在论文中给出了稳定DCGAN的方法:
使用跨步卷积代替所有的CNN中的池化层(卷积—判别器、反卷积—生成器)
在生成器和判别器的隐藏层中使用batchnorm ,但是,最后的输出不可以使用(目的:训练更快、更稳定的)
移除所有的全连接层
生成器中的所有激活层都是用的是Relu函数,除了输出使用的是Tanh函数
判别器中的所有激活层都是使用LeakyRelu 函数
DCGAN 训练论文中的参数推荐
所有模型均采用小批量随机梯度下降(SGD)训练,Batch_size大小为128。
所有权重均根据零中心正态分布进行初始化,标准偏差为0.02。
在LeakyReLU中,斜率均设置为0.2。
使用了Adam优化器并调整超参数。基础GAN中建议的学习率0.001太高了,改为使用0.0002。
将动量项β1保留在建议值0.9会导致训练振荡和不稳定性,而将其降低到0.5有助于稳定训练。
评估无监督表示学习算法质 ...
windows终端优化
Terminal Powershell优化首先,展示优化后的结果,
下载 Windows Terminal从微软商店中搜索Windows Terminal,下载即可!
打开配置文件打开Windows Terminal,点击下拉箭头符号,点击设置,出现如下图的界面
选择打开配置json文件
添加透明度配置在json文件中找到profiles这一项中的defaults ,这一项中的所有配置为全局生效,而于default同级别的list中的每项为当前的配置文件中的子项目
对应了上面的每个终端的配置,为局部配置;一般来说配置的优先级为:局部配置 > 全局配置
12345678910"defaults": { "backgroundImage": "D:\\Projcets\\image\\bkg\\3-3.jpg", //终端背景图片设置 "backgroundImageOpacity": 0.40000000000000002, // 图片的透明度设置(0-1) " ...
GAN_start
我们可以了解一下马尔可夫链,但是在GAN中没有涉及到马尔科夫链,可以当作一个扩展来学习一下。
GAN原理解析原理解析GAN译名生成对抗网络,强调为俩个网络(也可以是多个)互相对抗,共同进步最终达到一个稳态。
Generative Adversarial Nets 中GAN可以看成两个模型的整合,即生成器G和判别器D。两者在文中关系被比作了造假者和警察,造假者制造假币,而警察识别假币;造假者可以根据警察的识别真币的能力更新出更难以识别的假币,而警察也可以根据造假者的造假能力强化自己的识别能力;最终,我们希望得到一个收敛的生成器G(D已经无法判别G生成的数据是真实数据还是生成数据)。
我们以图片生成为例,如下
G是一个生成图片的网络,它接受一个随机的噪声z,通过这个噪声生成图片,记作G(z)
D是一个判别网络,判别一张图片是不是真实的。它的输入参数是x(代表一张图片),输出D(x)代表x为真实图片的概率,如果为1,就代表表100%是真实的图片,而输出为0,就代表不可能是真实的图片。
以上为GAN在训练过程中的原理图,其中对于模型的目标函数的设计,Generative Adversar ...
几何图形
几何图形简介几何图形的表示隐式函数表示例如:$f(x,y,z) = x^2+y^2+z^2-1,f(x,y,z) = 0$ 都隐式的表示一个球面,但对于每一个$(x,y,z)$来说都是不直观的,但是对于每一个相对于球面的位置都可以很容易根据$f(x_1,y_1,z_1)$的值判断$(x_1,y_1,z_1)$在球面的内部还是外部
优点:不直观
缺点:可以很容易的确定点与面的关系
隐式函数的有点总结:
描述起来比较简单
某些查询很容易(对象内部,到表面的距离)
适合于光线和表面的求交
对于简单的形状,精确描述/无采样误差
适合用来描述拓扑结构(如流体)
显示函数表示例如:$f(u,v) = ((2+\cos u)\cos v,(2+\cos u)\sin v,\sin u)$表示一个面。可以根据$(u,v)$很容易得到一个确认的$(x,y,z)$的点
优点:可以很快的写出曲面上的任意一个点,直观
缺点:不好判断空间中的任意一点与面的关系
集合思想表示(CSG)通过集合的布尔运算进行运算,如下图:
通过对于简单的几何图形进行集合运算我们可以完成对于一些复杂几何模型的组合 ...
图像处理以及边缘检测
图像梯度★ 对于梯度的运算就是卷积的运算的过程 ★
Sobel算子算子核矩阵如下:
G_x = \begin{bmatrix}
-1 & 0 & 1 \\
-2 & 0 & 2 \\
-1 & 0 & 1
\end{bmatrix} * A
\qquad
G_y = \begin{bmatrix}
-1 & -2 & -1 \\
0 & 0 & 0 \\
1 & 2 & 1
\end{bmatrix} * A
注意这里并不是一成不变的,Sonbel核的大小会影响它对核值的改变
类似于高斯滤波,近的位置对于中心点影响大,远的位置影响小
上述可以看出,对于梯度变换黑到白的变换梯度为正,白到黑的变化梯度为负
代码演示
1234567sobelx = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize=3)sobelx = cv2.convertScaleAbs(sobelx) # 这里因为在展示的时候,会把负数部分覆盖,于是我就要先取绝对值在展示sobely ...
光栅化着色
Z-buffer画家算法:渲染由远到近,近处覆盖远处(对于多层三角形的互叠不可用)
一般不透明三角形深浅度表示,浅的盖住深的部分
深度缓存算法:
1234567for(each triangle T) for(each sample(x,y,z) in T) if(z<zbuffer[x,y]) framebuffer[x,y] =rgb zbuffer[x,y]=z else ;
$R$代表无限大,初始化z-buffer为全部元素为$R$
Shading作用:引入颜色明暗的过程,在不同材质引入不同的影像
Blinn-Phong Reflectance Model
Specular highlights: 高光部分
Diffuse reflection: 漫反射
Ambient lighting:环境光照
计算光反射的部分:
着色这里不考虑其他物体的存在
Inputs
观测方向 $\mathbf{v}$
法线方向 $\mathbf{n}$
光照方向 $\mathb ...