利用neural-style生成和目标图像风格一致的图片(win10一周年更新版可用)

几天前在知乎发现了个问题很有趣:如何评价德国计算机神经网络科学家发表的这篇可以让电脑模仿任何画家的风格作画的论文?

里面附带了一张图:点击查看~(点击后拉到最下面可以放大)

然后我在问题里发现有人已经集成好了,发到了github上面:

https://github.com/jcjohnson/neural-style

怀着不嫌麻烦的精神,为了满足自己的好奇心,开始了这几天的折腾

先是看到这货不支持windows,于是我找到了几个Python版本。。。然而。。也没法运行在windows上。。

后来我想到了,win10一周年更新版好像自带了一个Ubuntu子系统来着(微软大法好

下面讲讲怎么运行这玩意

0x00、打开linux的bash命令行:

你可以:

  1. 直接在linux系统里跑(直接跳过这一段

  2. 在win10一周年更新版中运行(仅限专业版,家庭版貌似没有这个功能)之前疏忽,其实是有的)

开启win10bash方法:

  1. 右击开始菜单-控制面板

  2. 点击“程序”那一栏下面的“卸载程序”

  3. 点击左边栏的“启用或关闭windows功能”

  4. 拉到最下面,选上“适用于linux的windows子系统”(如果没有这一项,说明你的系统不是win10专业版或没进行上一周年更新升级)

5.重启之后,按win+r(windows徽标键+R键)呼出运行窗口,输入“cmd”,然后回车。

这时可能要设置密码和用户名,自己设置吧。

最后在输入框内输入“bash”,并且回车,即可开启bash。

0x01、将源换为国内源:

首先取得root权限,这样方便,如果不想这样的话,可能会权限不足,只要命令前面加一句“sudo”即可:

sudo su
#然后输入密码回车

为了下载软件快点,所以把源还为国内的

输入指令:

sudo vi /etc/apt/sources.list

按一下“INSERT”键,删掉原有的所有文字,换上你要用的源,具体的列表可以见此(点击查看),由于我在学校,所以用的是中国科学技术大学更新服务器的源,如下:

deb http://debian.ustc.edu.cn/ubuntu/ trusty main multiverse restricted universe
deb http://debian.ustc.edu.cn/ubuntu/ trusty-backports main multiverse restricted universe
deb http://debian.ustc.edu.cn/ubuntu/ trusty-proposed main multiverse restricted universe
deb http://debian.ustc.edu.cn/ubuntu/ trusty-security main multiverse restricted universe
deb http://debian.ustc.edu.cn/ubuntu/ trusty-updates main multiverse restricted universe
deb-src http://debian.ustc.edu.cn/ubuntu/ trusty main multiverse restricted universe
deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-backports main multiverse restricted universe
deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-proposed main multiverse restricted universe
deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-security main multiverse restricted universe
deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-updates main multiverse restricted universe

复制之后按右键即可粘贴,输入完毕后按“ESC”然后输入“:wq”回车即可保存。

0x02、安装torch7运行库:

依次运行如下命令:

cd ~/
curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-deps | bash
git clone https://github.com/torch/distro.git ~/torch --recursive
cd ~/torch; ./install.sh

下载过程可能较长,可以喝杯茶冷精一下Σヽ(゚Д ゚; )ノ

然后一小时过去了

设置环境变量,运行如下命令:

source ~/.bashrc

0x03、安装loadcaffe运行库:

输入命令安装必要的包:

sudo apt-get install libprotobuf-dev protobuf-compiler

由于更换了国内源,速度应该是很快的,如果速度只有一秒十几k,请更换源再试

输入指令安装loadcaffe:

luarocks install loadcaffe

这个下载过程也可能较长,可以再喝杯茶冷精一下Σヽ(゚Д ゚; )ノ

然后又一个小时过去了

0x04、下载最后的大boss:

依次运行命令:

cd /mnt/e/test/    # 这里指“E:\test”文件夹,根据自己的需要改吧
git clone https://github.com/jcjohnson/neural-style.git
#上面从github下载比较慢的可以试试我fork到国内的源:
#https://git.oschina.net/chenxuuu/neural-styleneural-style.git
cd neural-style

这个下载过程也可能较长,可以再再喝杯茶冷精一下Σヽ(゚Д ゚; )ノ

然后又一个小时过去了

运行如下命令下载最后需要的大头。几百M,很大,我是直接用qq旋风下载的然后复制进去的2333

sh models/download_models.sh

这个下载过程也可能较长,可以再再再再再再喝杯茶冷精一下Σヽ(゚Д ゚; )ノ

然后又一天过去了

做完这些事之后运行下面的命令测试一下能不能运行:

th neural_style.lua -gpu -1 -print_iter 1

如果显示如下图所示的东西就说明可以运行:

0x05、来运行吧!:

先切换到软件文件夹下(自己看着改吧!路径不一定和我的一样)

cd /mnt/e/test/neural-style

把图片也扔到这个文件夹下面~(必须jpg格式)

运行命令!(CPU燃烧吧!)

th neural_style.lua -style_image the_scream.jpg -content_image in.jpg -gpu -1
#命令解释:th neural_style.lua -style_image 风格图片 -content_image 想处理的图片 -gpu -1 ←win10自带的不支持cuda,所以就让CPU累着吧2333

生成结果很好啊:

选择的图:

风格图:

生成结果:

另外生成的时候会每运行10%放出一张预览图,下面的就是:

最后,小彩蛋:

win10系统禁用笔记本自带键盘的有效方法

今天看书时想把书放外置键盘前面,但是会压到笔记本键盘,所以我在百度搜了一下禁用笔记本自带键盘方法

然后。。。

有的说是直接拔线,这个方法直接pass,拆机多麻烦,到时候装回去也麻烦

还有最常见的是给自带键盘一个不兼容的驱动。。。我尝试了这个方法

。。。

然后

。。。

。。。

电脑蓝屏了。。。

微软你在玩我呢?win10就这么难伺候吗?。

百度了一下“win10 禁用 笔记本 自带键盘 -(失灵 | 没有反应 | 按键音)”这个关键词。。发现基本上没人能解决这个问题。。。

后来我看到一段代码。。。(http://tieba.baidu.com/p/4596570797

试了试

。。。

诶好像能用!

下面说方法:

首先打开开始菜单,找到windows系统–右击命令提示符–更多–以管理员身份运行

输入以下命令,回车:

sc config i8042prt start= disabled

然后重启电脑,就好啦~

是不是很神奇啊2333

你想恢复的时候,只要重复上面的动作,输入的命令改为:

sc config i8042prt start= auto

就行了

这个教程应该是全网首发吧(捂脸

win10默认共享访问权限打开

默认共享就是网上邻居默认开放的共享,但是win10即使登录管理员账号,UAC依旧会拦截

win10默认会进行拦截,弹出对话框显示没有权限

几经查找我找到了解决办法:

1.Open the registry editor.

2.Navigate all the way to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System.

3.Right-click in the pane on the right side and add a new DWORD (32-bit).

4.Give the new setting the name LocalAccountTokenFilterPolicy.

5.Double click on that setting and give it a value of 1.

翻译一下:

1.打开注册表(win+r输入regedit回车)

2.打开HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

3.右击右面空白处并新建DWORD (32 位)

4.把新建的命名为LocalAccountTokenFilterPolicy

5.双击把它的值改为1

教程完毕~