计算机视觉应用开发课件:基于CycleGAN的图像风格迁移_第1页
计算机视觉应用开发课件:基于CycleGAN的图像风格迁移_第2页
计算机视觉应用开发课件:基于CycleGAN的图像风格迁移_第3页
计算机视觉应用开发课件:基于CycleGAN的图像风格迁移_第4页
计算机视觉应用开发课件:基于CycleGAN的图像风格迁移_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于CycleGAN的图像风格迁移案例描述01任务案例目标02任务案例分析03任务案例实施04任务1案例描述1案例描述本案例将学习如何使用搭建一个CycleGAN风格迁移网络,通过训练该网络实现斑马和马的风格互换。2案例目标案例目标学会搭建一个完整的CycleGAN风格迁移网络;

设计出CycleGAN网络的风格迁移损失,包括内容损失和风格损失;使用训练后的CycleGAN网络实现斑马与马的风格转换。23案例分析案例分析上节已经了解到,CycleGAN是由两个生成器和两个判别器组成。如图6-7-6,X表示X域的图像,Y表示Y域的图像。X域的图像经过生成器G生成Y域的图像,再经过生成器F重构回X域输入的原图像;Y域的图像经过生成器F生成X域图像,再经过生成器G重构回Y域输入的原图像。判别器D_x和D_y起到判别作用,确保图像的风格迁移。对于X域转化为Y域的生成器G和判别器D_y建立损失函数如下所示:3案例分析对于重构回Y域的图像,建立循环一致性损失函数如下所示:CycleGAN的训练的总体损失函数以下所示:总而言之,CycleGAN想要达到的目的是,完成两个域之间的风格转换,在风格转换的同时,又要确保图中物体的几何形状和空间关系不发生变化。34案例实施4案例实施 1.导库安装

tensorflow_examples

包,以导入生成器和判别器。pipinstallgit导入程序运行所需要库,其中pix2pix是基于GAN实现图像翻译,更准确地讲是基于cGAN(conditionalGAN,也叫条件GAN)。因为cGAN可以通过添加条件信息来指导图像生成,因此在图像翻译中就可以将输入图像作为条件,学习从输入图像到输出图像之间的映射,从而得到指定的输出图像。而其它基于GAN来做图像翻译的,因为GAN算法的生成器是基于一个随机噪声生成图像,难以控制输出。因此基本上都是通过其他约束条件来指导图像生成,而不是利用cGAN,这是pix2pix和其他基于GAN做图像翻译的差异。4案例实施2.数据预处理加载数据库中训练和测试图片。dataset,metadata=tfds.load('cycle_gan/horse2zebra',with_info=True,as_supervised=True)train_horses,train_zebras=dataset['trainA'],dataset['trainB']test_horses,test_zebras=dataset['testA'],dataset['testB']随机裁剪图片至同一尺寸。cropped_image=tf.image.random_crop(image,size=[IMG_HEIGHT,IMG_WIDTH,3])4案例实施将图片进行标准化处理。image=(image/127.5)–1返回随机抖动的图片。image=tf.image.resize(image,[286,286],method=tf.image.ResizeMethod.NEAREST_NEIGHBOR)3.构建网络模型通过安装的

tensorflow_examples

包导入

Pix2Pix

中的生成器和判别器。这里训练了两个生成器(G和F)以及两个判别器(X和Y)。生成器

G

学习将图片

X

转换为

Y。生成器

F

学习将图片

Y

转换为

X。判别器

D_X

学习区分图片

X

与生成的图片

X

(F(Y))。判别器

D_Y

学习区分图片

Y

与生成的图片

Y

(G(X))。4案例实施generator_g=pix2pix.unet_generator(OUTPUT_CHANNELS,norm_type='instancenorm')generator_f=pix2pix.unet_generator(OUTPUT_CHANNELS,norm_type='instancenorm')discriminator_x=pix2pix.discriminator(norm_type='instancenorm',target=False)discriminator_y=pix2pix.discriminator(norm_type='instancenorm',target=False)在CycleGAN中,没有可训练的成对数据,因此无法保证输入

x

和目标

y

数据对在训练期间是有意义的。所以为了强制网络学习正确的映射,提出了循环一致损失。defdiscriminator_loss(real,generated):real_loss=loss_obj(tf.ones_like(real),real)generated_loss=loss_obj(tf.zeros_like(generated),generated)total_disc_loss=real_loss+generated_lossreturntotal_disc_loss*0.5defgenerator_loss(generated):returnloss_obj(tf.ones_like(generated),generated)4案例实施循环一致意味着结果应接近原始输出。例如,将一句英文译为法文,随后再从法文翻译回英文,最终的结果句应与原始句输入相同。在循环一致损失中,图片

X

通过生成器

G

传递,该生成器生成图片

。生成的图片

通过生成器

F

传递,循环生成图片

。在

X

之间计算平均绝对误差。defcalc_cycle_loss(real_image,cycled_image):loss1=tf.reduce_mean(tf.abs(real_image-cycled_image))returnLAMBDA*loss14案例实施生成器

G

负责将图片

X

转换为

Y。一致性损失表明,如果您将图片

Y

馈送给生成器

G,它应当生成真实图片

Y

或接近于

Y

的图片。defidentity_loss(real_image,same_image):loss=tf.reduce_mean(tf.abs(real_image-same_imag

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论