您现在的位置是:热点 >>正文
CycleGAN生成对抗网络图像处理工具
热点966人已围观
简介...
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):&nbsclp; 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), &eGnbsp; 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 GANeneratorResNet(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 = [ &生成nbsp; 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), &nbs网络p; nn.ReLU(inplace=True), ] in_features = out_features # Residual blocks for _ in range(num_residual_blocks): model += [ResidualBlock(out_features)] #&nbs图像p;Upsampling for _ in range(2): out_features //= 2 model += [ nn.Upsample(scale_factor=2), nn.Conv2d(in_features, out_features, 3, stride=1, padding=1), &nb处理sp; nn.InstanceNorm2d(out_features), nn.ReLU(inplace=True), ] in_features = out_features # Output layer model += [nn.ReflectionPad2d(channels), nn.Conv2d(工具out_features, 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): &nbCysp; 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))  eG; 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, 256AN), *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)
Tags:
相关文章
标签: 空客 A320 A350 商用飞机
热点云梦级1月13日云梦级消息,当地时间 1 月 12 日,空客公布了最新的 2025 年交付数据。 2025 全年,空客向全球 91 家客户交付了 793 架商用飞机同比增长 4%,并在商用飞机业务领域...
【热点】
阅读更多云计算核心技术Docker教程:Docker Hub审核日志
热点订阅团队计划的用户可以使用审核日志功能。将您现有的帐户升级到团队帐户,以开始使用审核日志功能。 审核日志按时间顺序列出了在组织和存储库级别发生的活动。它为Docker团队帐户的所有者提供了其所有团队成...
【热点】
阅读更多标签: 移动云
热点5月8日,中国移动2026移动云大会主论坛在苏州召开,中国移动董事长陈忠岳发表了题为《移动云 智能新空间》的主旨演讲。 今年以来,智能体全网火爆,智能终端加速普及,AI正成为新的生产力工具,重塑人类生...
【热点】
阅读更多
热门文章
最新文章
友情链接
- 标签: 康师傅
- https://www.sbaad.no/search/百度快排【tg:seogoogle987】,zfR
- https://www.searcychamber.com/list/search?AsfnA=DtkTQzs&q=百度快排【tg:seogoogle987】,L8B
- https://www.roberthalf.com/us/en/jobs/all/百度快排【tg:seogoogle987】ajS
- https://www.teamlab.art/ko/?submit=百度快排【tg:seogoogle987】,wnY
- https://www.signingsavvy.com/sentence/百度快排【tg:seogoogle987】,HsY
- https://www.springfieldlibrary.org/?s=百度快排【tg:seogoogle987】,AXa
- https://www.unclefossil.com/search/百度快排【tg:seogoogle987】gad_source=1&gclid=Cj0KCQjw_-GxBhC1ARIsADGgDjsNKplUXa2F6YGlHBK2sHDQ88cgsJBb05DyO99TV9jNq_cT0kGMqyQaAgHQEALw_wcB
- https://www.swecobelgium.be/?page=9&s=百度快排【tg:seogoogle987】,lze
- https://www.umc.edu/search.aspx?ID=I4gnDKRS991MFcIDDzoYze4aWSAszAm7&q=百度快排【tg:seogoogle987】,Kx4
- https://blvdseafood.com/?s=百度快排【tg:seogoogle987】0Xj
- https://www.lee.com/search?q=百度快排【tg:seogoogle987】,jow
- https://www.mygrandma.com/Items.aspx?search=百度快排【tg:seogoogle987】,RuN
- https://www.goodreads.com/quotes/tag/百度快排【tg:seogoogle987】EEs
- https://www.world-architects.com/en/search?term=百度快排【tg:seogoogle987】,0gK
- https://www.tiktok.com/tag/百度快排【tg:seogoogle987】,MB0
- https://www.localfootdoc.com/?s=百度快排【tg:seogoogle987】,sXS
- https://www.wmfe.org/?s=百度快排【tg:seogoogle987】,6Ew
- https://www.wheels24.gr/?action=CHECK&s=百度快排【tg:seogoogle987】,sme
- https://www.nytimes.com/search?dropmab=true&query=百度快排【tg:seogoogle987】,rHa
- https://www.pierreherme.com/catalogsearch/result/?q=百度快排【tg:seogoogle987】,Lvk
- https://www.nslcleaders.org/?s=百度快排【tg:seogoogle987】,Mr7
- https://www.paxnet.co.kr/search/jongmok?kwd=百度快排【tg:seogoogle987】Sqg
- https://www.oikos-tecnics.com/?s=百度快排【tg:seogoogle987】,8WX
- https://www.impactpool.org/search/?type=79&q=百度快排【tg:seogoogle987】Reu
- https://www.rostaing.com/catalogsearch/result/?cat=22&q=百度快排【tg:seogoogle987】,8xD
- https://www.madebyoranges.com/nl/search/百度快排【tg:seogoogle987】,5VS
- https://www.mdbg.net/chinese/dictionary?page=worddict&wdrst=0&wdqb=百度快排【tg:seogoogle987】,xv9
- https://www.paxnet.co.kr/search/jongmok?kwd=百度快排【tg:seogoogle987】I8y
- https://www.lindseymedicalsupply.com/search/百度快排【tg:seogoogle987】,oNV
- https://www.zisha.com/shop/list.shtml?wap_keyword=百度快排【tg:seogoogle987】,tMh
- https://www.nissin.com/jp/search/?cat=105&q=百度快排【tg:seogoogle987】,kC5
- https://www.openstreetmap.org/search?query=百度快排【tg:seogoogle987】,uO7
- https://www.realsporting.com/buscador?buscar=百度快排【tg:seogoogle987】,YOj
- https://www.nctsn.org/search?cat=191&query=百度快排【tg:seogoogle987】,qyt
- https://www.paulaschoice.hk/zh_hant/catalogsearch/result/?q=百度快排【tg:seogoogle987】,6FZ
- https://www.vivaraise.fr/catalogsearch/result/?q=百度快排【tg:seogoogle987】,XPJ
- https://www.universal-music.co.jp/search/?q=百度快排【tg:seogoogle987】,Ry1
- https://www.randjleather.co.uk/index.php?route=product/search&tag=百度快排【tg:seogoogle987】,qlN
- https://www.wilsonart.com/catalogsearch/result/?action=CHECK&q=百度快排【tg:seogoogle987】,s3i
- https://www.sbaad.no/?s=百度快排【tg:seogoogle987】,X0U
- https://www.abbreviations.com/百度快排【tg:seogoogle987】gDP
- https://www.laoairlines.com/?action=QUERY&s=百度快排【tg:seogoogle987】,YTt
- https://www.tombow.com/search/百度快排【tg:seogoogle987】,nfo
- https://www.seagrant.wisc.edu/?page=63&s=百度快排【tg:seogoogle987】,aSh
- https://www.flickr.com/photos/tags/百度快排【tg:seogoogle987】xnt
- https://www.abbreviations.com/百度快排【tg:seogoogle987】F3o
- https://www.rookwinkel.nl/catalogsearch/result/index/?q=百度快排【tg:seogoogle987】,kZJ
- https://www.vietnamconsulate-sf.org/?action=CHECK&s=百度快排【tg:seogoogle987】,5QO
- https://www.olx.ba/pretraga?trazilica=百度快排【tg:seogoogle987】,yg8
- https://www.simcoemuskokahealth.org/SearchResults.aspx?SearchQuery=百度快排【tg:seogoogle987】,Dmq