小姐姐都是爱美的,现在有美图秀秀,可以非常方便的帮修图。但是有的时候想把自己美美的照片照片,换点花样玩,比如长裤换成裙子,或者是将裙子换成长裤,是不是听上去有点不可思议?
在Python的世界里,没有什么不可能。今天小编就和大家分享一篇利用神经网络来实现将小姐姐的长裤变成裙子的文章。小编会从简单原理,到环境配置和程序运行,再到最终的结果展示,实现一条龙的服务。
01.如何实现
该技术利用到的是神经网络中的生成对抗网络,名字叫做InstaGAN。它不仅仅可以将长裤变为裙子,而且还能将图中的羊变成长颈鹿。
上图中,左边是原图,中间是提取到的要替换的目标的mask,右图是替换之后的效果。它是如何实现的呢?我们以长裤变成裙子为例,InstaGAN就是将下图中的长裤的mask转变为短裤的mask,同时尽量保证除了长裤和裙子之外,其他的背景基本上保持不变,以此来达到长裤变成短裙的操作。02.如何操作这个程序
1. 配置环境
首先大家需要配置深度学习的环境,大家需要自行安装下述的python库,需要注意的是,大家必须按照对应版本进行安装,否则就会报错:
torch==0.4.0
torchvision==0.2.1
dominate>=2.3.1
visdom>=0.1.8.3
大家也可以下载第二步中,小编为大家下载打包好的程序,然后运行 pip install -r requirements.txt来直接安装指定的库。
2. 也可以用打包好的程序
小编已经将程序配置完成,并打包好,大家只需要下载程序,然后解压到指定的文件下,如下图所示:
python ./datasets/generate_mhp_dataset.py --save_root ./datasets/pants2skirt_mhp --cat1 pants --cat2 skirt
就可以在datasets文件夹下生成针对该程序的mhp数据集,然后运行:
python train.py --dataroot ./datasets/pants2skirt_mhp --model insta_gan --name pants2skirt_mhp_instagan --loadSizeH 270 --loadSizeW 180 --fineSizeH 240 --fineSizeW 160
来训练自己的长裤转超短裙的模型,需要注意的是,这样的模型训练需要强大的GPU的支持,那没有办法训练怎么办呢?
小编也为大家准备好了现成的可以直接使用的模型,大家在配置好环境之后,只需要运行下列的运行语句:
python test.py --dataroot ./datasets/pants2skirt_mhp --model insta_gan --name pants2skirt_mhp_instagan --loadSizeH 240 --loadSizeW 160 --fineSizeH 240 --fineSizeW 160 --ins_per 2 --ins_max 20 --phase sample --epoch 200
其中dataroot表示的是测试的数据集文件夹,大家可以改成自己的数据文件夹。model参数我们是默认的名字,name表示我们选择的是将长裤换成裙子的,训练数据集是mhp的模型,而loadSizeH、loadSizeW 、fineSizeH、fineSizeW和后面的参数都是默认的参数。
03.结果展示
最后我们来看一下结果吧。小编采用的就是将长裤变成裙子的模型,结果如下图所示:
可以看到,利用这个程序可以将真实图片中长裤的小姐姐,换上了超短裙,是不是想想还有点刺激!但是你以为这就结束了吗?
谁说超短裙只能女生来穿?我只能说当男生换上超短裙,才知道什么叫“骚气”。
以上就是小编今日的分享,大家看完程序的讲解后,可以自己动手试一试,需要源码的同学可以留言小编哦
目前wx搜索Python 【菜鸟学Python】排第二,汇聚了30万Python爱好者,累计原创近400篇趣味干货(爬虫,数据分析,算法,面试指南,原创趣味实战,Python游戏,机器学习),欢迎一起学Python,交流指正。
网友评论