当前位置:首页 > 热点 > CycleGAN生成对抗网络图像处理工具

CycleGAN生成对抗网络图像处理工具

2026-11-13 [峰会资讯] 来源:人文荟萃网

 1. GAN简介

"干饭人,干饭魂,干饭都是人上人"。

此GAN饭人非彼干饭人。本文要讲的GAN是Goodfellow2014提出的生成产生对抗模型,即Generative Adversarial Nets。那么GAN到底有什么神奇的地方?

常规的深度学习任务如图像分类,目标检测以及语义分割或者实例分割,这些任务的结果都可以归结为预测。图像分类是预测单一的类别,目标检测是预测bbox和类别,语义分割或者实例分割是预测每个像素的类别。而GAN是生成一个新的东西如一个图片。

GAN的原理用一句话来说明:

 通过对抗的方式,去学习数据分布的生成式模型。GAN是无监督的过程,能够捕捉数据集的分布,以便于可以从随机噪声中生成同样分布的数据

GAN的组成:判别式模型和生成式模型的左右手博弈

 D判别式模型:学习真假边界,判断数据是真的还是假的  G生成式模型:学习数据分布并生成数据

GAN经典的loss如下(minmax体现的就是对抗)

2. 实战cycleGAN 风格转换

了解了GAN的作用,来体验的GAN的神奇效果。这里以cycleGAN为例子来实现图像的风格转换。所谓的风格转换就是改变原始图片的风格,如下图左边是原图,中间是风格图(梵高画),生成后是右边的具有梵高风格的原图,可以看到总体上生成后的图保留大部分原图的内容。

2.1 cycleGAN简介

cycleGAN本质上和GAN是一样的,是学习数据集中潜在的数据分布。GAN是从随机噪声生成同分布的图片,cycleGAN是在有意义的图上加上学习到的分布从而Cy生成另一个领域的图。cycleGAN假设image-to-image的两个领域存在的潜在的联系。

众所周知,GAN的映射函数很难保证生成图片的有效性。cycleGAN利用cycle consistency来保证生成的图片与输入图片的结构上一致性。我们看下cycleGAN的结构:

特点总结如下:

 两路GAN:两个生成器[ G:X->Y , F:Y->X ]  和两个判别器[Dx, Dy], G和Dy目的是生成的对象,Dy(正类是Y领域)无法判别。同理F和Dx也是一样的。  cycle consistency:G是生成Y的生成器, F是生成X的生成器,cycle consistency是为了约束G和F生成的对象的范围,  是的G生成的对象通过F生成器能够回到原始的领域如:x->G(x)->F(G(x))=x

对抗loss如下:

2.2 实现cycleGAN

2.2.1 生成器

从上面简介中生成器有两个生成器,一个是正向,一个是反向的。结构是参考论文Perceptual Losses for Real-Time Style Transfer and Super-Resolution: Supplementary Material。大致可以分为:下采样 + residual 残差block + 上采样,如下图(摘自论文):

实现上下采样是stride=2的卷积, 上采样用nn.Upsample:

# 残差block  class ResidualBlock(nn.Module): cl     def __init__(self, in_features):          super(ResidualBlock, self).__init__()          self.block = nn.Sequential(              nn.ReflectionPad2d(1),              nn.Conv2d(in_features, in_features, 3),              nn.InstanceNorm2d(in_features),       eG;       nn.ReLU(inplace=True),              nn.ReflectionPad2d(1),              nn.Conv2d(in_features, in_features, 3),              nn.InstanceNorm2d(in_features),          )      def forward(self, x):          return x + self.block(x) class GenerANatorResNet(nn.Module):      def __init__(self, input_shape, num_residual_blocks):          super(GeneratorResNet, self).__init__()          channels = input_shape[0]          # Initial convolution block          out_features = 64          model = [            &nb生成sp; nn.ReflectionPad2d(channels),              nn.Conv2d(channels, out_features, 7),              nn.InstanceNorm2d(out_features),              nn.ReLU(inplace=True),          ]          in_features = out_features          # Downsampling      对抗    for _ in range(2):              out_features *= 2              model += [                  nn.Conv2d(in_features, out_features, 3, stride=2, padding=1),                  nn.InstanceNorm2d(out_features),          &nb网络sp;       nn.ReLU(inplace=True),              ]              in_features = out_features         # Residual blocks          for _ in range(num_residual_blocks):              model += [ResidualBlock(out_features)]          # Upsam图像pling          for _ in range(2):              out_features //= 2              model += [                  nn.Upsample(scale_factor=2),                  nn.Conv2d(in_features, out_features, 3, stride=1, padding=1),    处理              nn.InstanceNorm2d(out_features),                  nn.ReLU(inplace=True),              ]              in_features = out_features          # Output layer          model += [nn.ReflectionPad2d(channels), nn.Conv2d(out_fe工具atures, channels, 7), nn.Tanh()]          self.model = nn.Sequential(*model)      def forward(self, x):          return self.model(x) 

2.2.2 判别器

传统的GAN 判别器输出的是一个值,判断真假的程度。而patchGAN输出是N*N值,每一个值代表着原始图像上的一定大小的感受野,直观上就是对原图上crop下可重复的一部分区域进行判断真假,可以认为是一个全卷积网络,最早是在pix2pix提出(Image-to-Image Translation with Conditional Adversarial Networks)。好处是参数少,另外一个从局部可以更好的抓取高频信息。

class Discriminator(nn.Module):      def __init__(self, input_shape):    &nCybsp;     super(Discriminator, self).__init__()          channels, height, width = input_shape          # Calculate output shape of image discriminator (PatchGAN)         self.output_shape = (1, height // 2 ** 4, width // 2 ** 4)          def discriminator_block(in_filters, out_filters, normalize=True): cl             """Returns downsampling layers of each discriminator block"""              layers = [nn.Conv2d(in_filters, out_filters, 4, stride=2, padding=1)]              if normalize:                  layers.append(nn.InstanceNorm2d(out_filters))          &eGnbsp;   layers.append(nn.LeakyReLU(0.2, inplace=True))              return layers          self.model = nn.Sequential(              *discriminator_block(channels, 64, normalize=False),              *discriminator_block(64, 128),              *discriminator_block(128, 256), &nbsANp;            *discriminator_block(256, 512),              nn.ZeroPad2d((1, 0, 1, 0)),             nn.Conv2d(512, 1, 4, padding=1)          )      def forward(self, img):          return self.model(img) 

 

(责任编辑:三、促销活动类(81–110))

推荐文章
  • 标签: 桑尼森迪 IP玩具 高瓴创投 港交所上市

    标签: 桑尼森迪 IP玩具 高瓴创投 港交所上市 云梦级1月9日云梦级消息,桑尼森迪(湖南)集团股份有限公司(以下简称“桑尼森迪”)于2026年1月8日正式向港交所递交招股书,拟主板挂牌上市,高盛和中金公司担任联席保荐人。 成立于2015年的桑尼森迪...[详细]
  • OpenAI震撼发布GPT-realtime!语音AI革命来了,人机对话真假难辨

    OpenAI震撼发布GPT-realtime!语音AI革命来了,人机对话真假难辨 AI语音交互的天花板被彻底突破了!OpenAI刚刚正式发布的GPT-realtime语音模型,以其前所未有的自然流畅度和情感表达力,瞬间引爆了整个科技圈。这不再是那种机械化的合成语音,而是一个能够精准...[详细]
  • 6英寸是多少厘米蛋糕够几个人

    6英寸是多少厘米蛋糕够几个人 6寸蛋糕够几人吃?6英寸为15.24cm,2-4人左右食用,2、8英寸为20.32cm,4-6人食用,适用于生日聚会、各种节庆及探亲访友。3、10英寸为25.4cm,6-10人食用,适用于生日聚会、各...[详细]
  • 人工智能开除147名“摸鱼”员工,“打工人”已被逼到了墙角

    人工智能开除147名“摸鱼”员工,“打工人”已被逼到了墙角 自从科幻小说第一次出现人工智能和机器人以后,人类对未来和人工智能共处的社会充满焦虑,一些影视剧中无限放大了机器人和人工智能对于人类社会的威胁,那些剧中拥有智能的机器人破坏人类社会的场景,在许多人的脑海...[详细]
  • 标签: OPPO FindX 周意保 卓世杰

    标签: OPPO FindX 周意保 卓世杰 云梦级3月24日云梦级消息,OPPO Find系列迎来重要人事变动,原产品负责人周意保23日通过微博宣布,因公司轮岗机制将赴新岗位,其职务由长期深耕影像技术的卓世杰接任。 周意保特别提及,即将于4月亮...[详细]
  • 奥地利对Facebook处以960万欧元罚款

    奥地利对Facebook处以960万欧元罚款 新浪科技讯 北京时间6月7日下午消息,据报道,奥地利对Facebook罚款960万欧元,原因是其没有就与GIFTY公司相关的交易作出通知。...[详细]
  • 标签: 海光芯正 光模块 AI数据中心 胡朝阳

    标签: 海光芯正 光模块 AI数据中心 胡朝阳 云梦级11月3日云梦级消息,10月31日,北京光电互连产品提供商海光芯正正式递表港交所。海光芯正成立于2011年11月,主要产品包括光模块、有源光缆(AOC)及其他,光模块产品组合涵盖100G、200...[详细]
  • 人工智能和物联网――5个新兴的应用案例

    人工智能和物联网――5个新兴的应用案例 AI(人工智能)和IoT(物联网)的融合为全球企业释放了巨大的潜力。 物联网的使用正在激增,预计到今年年底,将有多达500亿台连网设备。与人工智能相结合,这种新技术浪潮可以带来新的机遇,从而改变整个行...[详细]
  • 标签: 鸿蒙智行 问界 华为 渠道调整

    标签: 鸿蒙智行 问界 华为 渠道调整 云梦级11月12日云梦级消息,据雷峰网《新智驾》报道,鸿蒙智行渠道正在大幅调整,全国多地直营门店正转为经销商,2026年年底将调整完毕。目前,包括广东、浙江、四川、江苏等直营门店正在调整。 针对以上内...[详细]
  • 人工智能网络安全威胁图谱

    人工智能网络安全威胁图谱 12月15日,欧盟网络与信息安全局(ENISA)发布了题为《人工智能的网络安全挑战:人工智能威胁图谱》(Artificial Intelligence Cybersecurity Challenges...[详细]
热点阅读