图像风格转移中神经网络模型的使用
2017-05-31 17:43
330 查看
Neural Style 中使用其他的神经网络模型
Taylor Guo, 2017年5月31日Using Other Neural Models
图像风格转移中VGG-19和NIN模型都可以用,还有其他的模型也可以使用。这里就把它们列出来,说明它们能做什么,什么时候使用它们,怎么样使用,它们的性能怎么样,去哪下载。
神经网络模型
神经网络模型比较复杂,有人认为这是人工智能的开始,有人认为这些只是一些小技巧。但对神经网络风格转移,它们可以将图像转移为人画的。训练好的模型 与 未训练的模型
在神经网络风格转移中,神经网络需要用图像进行训练才能使用。这类似于计算机没有软件或有软件的差别,也就是一个神经网络结构和完全训练好的模型的区别。比如,VGG 19,是指一个用prototxt文件定义好的神经网络结构。谈到神经网络风格转移时,VGG 19模型就指的是一个在ILSVRC图像数据集上用以对图像进行分类任务上训练好的网络。应该可以注意到,如果VGG 19网络训练任务不同,会使得它们在神经风格转移中表现也有所不同。一个用不同数据训练好的模型对图像中特征的响应也会不同。这里将会讲解VGG 16和VGG 19上几个不同的训练模型。它们有相同的结构(VGG 16 或 VGG 19, 所以有相同的prototxt文件),但.caffemodel文件中包含的权重是不同的,导致模型以不同的方式工作。权重指的是影响人工神经元运行的权重,而不是神经网络风格转移中的权重参数。
安装新模型
神经网络风格转移可以以.caffemodel格式的模型方式工作,除非它们包含的特征是torch不支持的,(比如AlexNet需要GROUP)。一个模型有两个文件:一个.caffemodel 和一个 .prototxt ,.caffemodel 文件就是模型本身, .prototxt描述的是神经网络的结构。这些模型可以拷贝到任何神经网络风格转移项目的目录中,推荐把它们拷贝到主项目的/model目录下,使得文件更有组织一些。如果要拷贝到别处,需要修改命令。
注意:如果要用更多的模型做实验,在/models目录下创建子目录会更好一些,因为没有约定俗成的方式来命名模型,所以可能会找到几个不同的文件称为model.caffemodel和train.prototxt。
基本使用
为了使用刚安装的模型,需要用参数-model_file models/[modelname]和-proto_file models/[protoname]来调用它们,其中 [modelname] 和[protoname]是完整的文件名带扩展名。然后,用 -content_layers 和-style_layers 参数,调用不同的层,每个模型要调用哪个层可能会有差别。也可以在.prototxt文件中查看哪个层被调用了。比如:
layers { bottom: "conv1_1" top: "conv1_1" name: "relu1_1" // 这里的名字是: -content_layers 或 -style_layers type: RELU // 需要做 RELU 的类型 }
写下所有的类型:ReLU层,用逗号分开,应该像这个样子:
-content_layers relu2,relu5,relu8,relu11 -style_layers relu2,relu5,relu8,relu11
注意:必须对内容和风格调用相同的层。
可以根据需要或想要做的实验,随意使用或忽略内容和风格。但是必须明确给风格和内容指定层。注意:越高的层可能损失值越小,所以当需要增加内容权重时,需要忽略比较低的层。
NIN 例子
th neural_style.lua -style_image [image1] -content_image [image2] -output_image [outimage] -model_file models/nin_imagenet_conv.caffemodel -proto_file models/train_val.prototxt -content_layers relu0,relu3,relu7,relu12 -style_layers relu0,relu3,relu7,relu12
模型列表
模型描述:模型文件: fullmodelname.caffemodel
prototxt文件: fullprotoname.prototxt
使用的Layers: relulayer#, relulayer#, relulayer#, relulayer#, relulayer#
命令:
th neural_style.lua -style_image [image1] -content_image [image2] -output_image [outimage] -model_file models/fullmodelname.caffemodel -proto_file models/fullprotoname.prototxt -content_layers relulayer#,relulayer#,relulayer#,relulayer#,relulayer# -style_layers relulayer#,relulayer#,relulayer#,relulayer#,relulayer#
牛津视觉几何组VGG-19
神经网络风格转移中的标准caffemodel。无需调整就能做出好的结果,但需要使用大量小图片。
标准化版本如下:
Model file: VGG_ILSVRC_19_layers.caffemodel 或 vgg_normalised.caffemodel Proto file: VGG_ILSVRC_19_layers_deploy.prototxt Layers used: relu1_1,relu2_1,relu3_1,relu4_1,relu5_1
这里查看
DeepLab的DeepLab Pre-Trained Model
图像使用量与VGG-16相当。如果只使用3层网络,结果与PASCAL VOC FCN-32s类似,但可以生成更高分辨率的图像。
Model file: model.caffemodel Proto file: deploy_x30.prototxt Layers used: relu5_3,relu7,relu5_2,relu5_1,relu4_1,relu3_3,relu3_1,relu2_2,relu1_2,relu1_1
这里下载
相关文章推荐
- 【神经网络与深度学习】neural-style、chainer-fast-neuralstyle图像风格转换使用
- 使用python写神经网络模型之分类器
- tensorflow17《TensorFlow实战Google深度学习框架》笔记-08-02 使用循环神经网络实现语言模型 code
- Python与人工神经网络:使用神经网络识别手写图像介绍
- 《炼数成金》第八课 保存和载入模型,使用Google的图像识别网络inception-v3进行图像识别。
- 【神经网络与深度学习】Caffe使用step by step:使用自己数据对已经训练好的模型进行finetuning
- tensorflow 核心流程剖析 4-- 使用profiler检测神经网络模型的运行性能
- 关于python 在神经网络训练图像数据预处理时使用的transpose
- 使用python写神经网络模型之分类器
- Google地图发布基于python的神经网络学习模型,自动高效高准确度的从带有地理定位信息的图像文件中提取信息
- 深度卷积网络图像风格转移(二)架构分析
- 百度无人驾驶apollo项目使用的神经网络模型分析
- 使用Matlab结合神经网络模型对多波段影像进行计算
- Python与人工神经网络(2)——使用神经网络识别手写图像
- 深度卷积网络图像风格转移(四)功能泛化
- 神经网络纹理合成和损失函数风格转移
- 《炼数成金》第八课 保存和载入模型,使用Google的图像识别网络inception-v3进行图像识别
- 使用Tensorflow训练神经网络模型---自定义损失函数
- Skoltech联合牛津发布「深度图像先验」:使用随机初始化神经网络实现图片去噪、超分辨率和修补
- 使用TensorFlow训练循环神经网络语言模型