前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手用AI算法实现冰雪奇缘中的“冰雪魔法”

手把手用AI算法实现冰雪奇缘中的“冰雪魔法”

作者头像
千与编程
发布2023-04-28 14:39:24
3310
发布2023-04-28 14:39:24
举报
文章被收录于专栏:公众号:千与编程

大家好,我是千与千寻,相信一定有很多的小伙伴看过动漫电影《冰雪奇缘》~

《冰雪奇缘》讲述的是在一个四面环海、风景如画的阿伦黛尔王国,公主艾莎天生具有制造冰雪的超能力,将任何的场景转眼变成“冰天雪地”般的特效,十分的神奇。

感觉的每次到夏天的时候看《冰雪奇缘》,简直有是夏季败火的首选电影~

感觉接下来我不能接着剧透下去了,有兴趣的一定要去看一看,迪士尼的动漫电影的效果真的不错~

剧中公主艾莎的冰雪魔法的特效~

说个题外话,不知道大家看电影的时候是不是也一样的有代入感呢?记得自己小时候看《蜘蛛侠》的时候,每次看到蜘蛛侠的电影的时候(来张剧照~)

看着蜘蛛侠能自由自在的荡秋千,还能随时随地的从手腕里面吐出来蛛丝,

甚至也想被“蜘蛛”咬上一口...(哈哈哈,开个玩笑,毕竟那只是科幻电影中的特效)。

但是今天不一样,我们今天使用Python语言以及深度学习模型算法来实现《冰雪奇缘》中的公主艾莎的冰雪魔法~

我们先直接看“魔法效果”~

实现原理

在上面的几组对比图片中,我选取了几组比较有代表性的效果图片~

左边的图片为夏季的风景图片,右边是经过“冰雪魔法”处理后的图片

哈哈哈,不卖关子了,这个冰雪魔法的真面目,就是深度学习模型中的CycleGAN,

GAN深度学习网络模型是深度学习模型下的生成对抗网络的范畴,一般来说,我们使用CycleGAN网络来进行图像的风格迁移。

事实上我们在两份图片中所进行的操作是图片景色的“冬夏风格迁移”,具体的实现原理是将夏季的景色图片,或者冬季的景色图片,进入GAN网络进行模型的训练,提取特征参数,进行预测图片的矩阵像素值运算。

简单来理解,生成对抗网络的深度学习模型,其实是生成器与判别器的一场博弈,生成器生成的图片放入判别器进行判别,模型性能最优的时候是生成器生成的假图片,判别器无法正确识别时候,性能最好。

算法实现步骤

Git下载代码仓库

使用Git拷贝下来整个CycleGAN的Python代码工程文件,代码工程为使用pytorch的深度学习框架进行编写,Git仓库的地址:

https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

如果不想自己搭建深度学习的运行环境,可以使用Google colab中的notebook

每个账号大约有12小时的连续免费算力使用~

显卡配置为Tesla K80 14G显存

在notebook终端执行以下指令:

代码语言:javascript
复制
git clone https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

下载预训练模型

由于GAN类型的神经网络模型的训练时间比较长

因为需要进行卷积运算操作进行图片的标签判别同时要进行反卷积的运算进行“假图片”的生成,因此网络结构较深,运算参数复杂,训练时间较长。

notebook终端执行脚本命令,我们所使用的是冬夏风格迁移的运算模型,因此选择summer2winter_yosemite的预训练模型

代码语言:javascript
复制
cd pytorch-CycleGAN-and-pix2pix && bash ./scripts/download_cyclegan_model.sh summer2winter_yosemite

下载测试图片数据集

我们所下载的测试图片数据集中包含四个文件夹,trainA,trainB,testA,testB。

我们只需要使用其中的一个测试文件夹即可,我们选择的模型是夏季风格转换为冬季风格。

因此使用夏季风格的测试图片testA的文件中的图片进行预测结果~

在notebook终端中执行脚本命令,下载冬夏图片数据集文件。

代码语言:javascript
复制
cd /content/pytorch-CycleGAN-and-pix2pix && bash datasets/download_cyclegan_dataset.sh summer2winter_yosemite

执行模型前向推理

准备的资源条件已经完善,接下来进行测试,在终端执行模型测试文件脚本,notebook中执行命令:

代码语言:javascript
复制
python test.py --dataroot datasets/summer2winter_yosemite/testB --name summer2winter_yosemite_pretrained --model test --no_dropout

显示执行完毕,在输出终端输出预测图片结果日志,查看result文件夹下,已经有图片的处理结果,实验完成~

结语

怎么样,你学会了吗?赶快动手试一试吧~

自己亲手实现公主艾莎的“冰雪魔法”~

怎么样,是不是效果很酷炫呢,我是千与千寻,我们下期见~

············END············

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 千与编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实现原理
  • Git下载代码仓库
  • 下载预训练模型
  • 下载测试图片数据集
  • 执行模型前向推理
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档