pix2pix,pix2pix算法(pix2pixgan)

Pix2pix-两个领域匹配图像的转换

图像处理中的许多问题是将输入图像转换成相应的输出图像,例如将灰度图像转换成彩色图像,将素描摹图像转换成物理图像。这类问题本质上是像素到像素的映射。2017年在CVPR发表的一篇文章提出了一种基于gan的Pix2pix网络来解决这类问题。pix2pix可以实现两个领域匹配图像的直接转换,得到的结果清晰。在这个结构中,生成器G的输入为Img_A,大小为(batch_size,A_channel,cols,rows),输出为Img_B,大小为(batch_size,B_channel,cols,rows)。鉴别器D的输入是Img_A和Img_B的图像对,两幅图像需要在通道的维度上进行拼接,所以鉴别器D的输入数据为(batch_size,a _ channel b _ channel,cols,rows),鉴别器的输出为(batch _ size,1,s1,s2)。Pix2pix采用cGAN结构。除了cGAN的基本损失函数,生成器还增加了一个像素损失。(1)发生器的损失函数:发生器的损失函数由电阻损失和像素损失组成。计数器损耗:像素损耗:发生器总损耗为:(2)鉴频器损耗函数:pix2pix中鉴频器损耗与cGAN相同。鉴频器的总损耗为:

Pix2pix-两个领域匹配图像的转换

pix2pix可以生成512*512的图嘛

pix2pix可以生成512*512的图嘛

pix2pix添加通道

Pix2pix增加通道。首先介绍了发生器的组成部分。发电机使用UNET & # 039;s代网络结构如下图所示。我在github截取了这个图。简单介绍一下发电机的结构。首先从上图最左边输入一张图片,经过两次卷积后变成64通道。然后,在一个池层之后,通道的数量不改变,但是图片的尺寸改变为原始尺寸的一半。然后,操作类似,直到它成为1*512*32*32的最低类型(batchsize=1,通道数为512,图片大小为32*32),然后它在两个卷积层之后成为第一类型。之后看中间的箭头,表示合并。比如图片底部的第一个箭头,经过上采样后,由左边的1*512*64*64和右边的1*512*56*56拼接而成。可以看出,这里的图片大小并没有什么不同。查完资料,发现可能要做一些修整。然后,以此类推重复下面的过程,最终生成图像。其实这里没有问题,但是在实现代码中,发现我的生成器结构和文中略有不同。例如,我从来没有使用过池层或两个连续的卷积。经过咨询,它赢了& # 039;只要简单易用,多一点或少一点都没什么问题。如果你的效果比他好,就相当于一个小创新。唐& # 039;不要太在意这些细节,抓住主要的就行了。

pix2pix添加通道

pix2pix网络,Pytorch代码中, valid 和 fake 两个参数表示什么

UNetDown类(nn .Mole):def __init__(self,in_size,out_size,normalize=True,dropout=0.0):super(UNetDown,self).__init__()layers=[nn .Conv2d(in_size,out_size,4,2,1,bias=False)]if normalize:layers。追加(nn .实例norm 2d(out _ size))层。追加(nn。漏relu(0.2))如果漏失:层。追加(nn。辍学(辍学))self.model=nn .顺序(*层)def forward(self,x):返回self。模型(x)级的一个etup(nn .Mole):def __init__(self,in_size,out_size,dropout=0.0):super(UNetUp,self).__init__()layers=[ nn .ConvTranspose2d(in_size,out_size,4,2,1,bias=False),nn .InstanceNorm2d(out_size),nn .ReLU(place=True)]if dropout:layers。追加(nn .辍学(辍学))self.model=nn .顺序(*层)def forward(self,x,skip_input):x=self。型号(x)x=火炬。cat((x,skip _ input),1)返回xclass GeneratorUNet(nn .Mole):def __init__(self,in_channels=3,out _ channels=3):super(GeneratorUNet,self)._ _ init _ _()self。down 1=UNetDown(in _ channels,64,normalize=False)self。down 2=UNetDown(64128)self . down 3=UNetDown(128256)self . down 4=UNetDown(256512,dropout=0.5)self。down 5=UNetDown(512,512,辍学=0.5)自我。降6=未降(512,512,辍学=0.5顺序(nn .上采样(比例因子=2),nn .ZeroPad2d((1,0,1,0)),nn .Conv2d(128,out_channels,4,padding=1),nn .Tanh())def forward(self,x):# U-Net生成器从编码器到解码器有跳跃连接D1=自我。向下1(x)D2=自我。下2(D1)D3=自我。降3(D2)D4=赛尔夫。降4(D3)D5=自己。降5(D4)D6=赛尔夫。降6(D5)D7=自我。降7(D6)D8=自我。降8(D7)u1=自身。up1(D8,d7)u2=自我。up2(u1,d6)u3=自我

pix2pix网络,Pytorch代码中, valid 和 fake 两个参数表示什么

本文《pix2pix,pix2pix算法(pix2pixgan)》为 IC侠 原创文章,不代表 五星号 立场,如若转载,请注明出处:https://www.45qun.com/792249

(0)
上一篇 2022年12月20日 18:18
下一篇 2022年12月20日 18:26

相关推荐