宫商角徵羽

V1

2022/05/13阅读:38主题:橙心

半小时搞定图像风格迁移从代码到部署

Hello! 这里是GIS宇宙,最近在填坑。 前段时间看到一些玩摄影的朋友们用Dream这款软件创作了不少有意思的图片,什么莫奈风格的图像啦,所以就想着复刻一下,顺便使用最近发现的一款强大的Python构建应用的库来做,从构建到发布大概半小时不到吧(绝对不是标题党!)。

本次代码都是在云端上进行,所以没有设备的同学也可以尝试哦,从构建自己的代码到发布到网站,不需要掌握服务器相关知识轻轻松松做网页。

1 基本步骤

  • 首先在Colab写好代码
  • 然后在huggingface发布网站
  • 访问网站

是不是听起来很简单呢?好的本期就到这里了,我们下期再见~

言归正传,先来介绍一下今天的主角:gradiogradio这个库很方便,首先开源,其次提供了很多丰富的组件,直接无脑使用就完事了,案例如下:

import gradio as gr

def sketch_recognition(img):

iface = gr.Interface(
    fn=sketch_recognition, 
    inputs="sketchpad",
    outputs="label"
    ).launch()

定义了一个处理函数,然后定义一下你的输入组件,输出组件,最后一起传给gr的interface就行,然后你会得到下面的效果:

2 Colab写代码

Colab是一个结合谷歌网盘的服务器,你可以把自己的代码上传到这里运行,它自带GPU和空间,就当做自己的电脑使用,编译代码采用的是Jupyter Notebook的形式, 注意就是有些库是没有需要自己安装一下,不过Tesorflow是有的,所以不需要自己配环境,就很爽。 安装命令:!pip install xxx 本次的图像风格迁移我没有自己构建模型,而是用了别人的,毕竟要半小时嘛,能省时间就省时间(狗头)。

定义函数

首先简单定义一个函数,首先我们会获取两张图片,一张作为提取风格的,一张用作变成这一风格的,然后用TFhub里面的模型预测一下,然后返回即可。

def sepia(input_path,input_path2):
  input_img = load_img(input_path)
  input_img2 = load_img(input_path2)

  hub_model = hub.load('https://tfhub.dev/google/magenta/arbitrary-image-stylization-v1-256/2')
  stylized_image = hub_model(tf.constant(input_img), tf.constant(input_img2))[0]
  pre_img = tensor_to_image(stylized_image)
  return pre_img

可视化界面

然后把前面定义好的函数传给gr.Interface,第一个是函数,第二个是案例,可以给一下例子,然后title是你的标题,input因为有两个参数所以用一个列表传入两个图片组件,output我们也选择图片的组件就行。这样就搞定了。

demo = gr.Interface(
    sepia,examples=[[demo_path,demo_path2],],
    title="上传两个图片,将图片转成另一图片风格",
    inputs=[gr.inputs.Image(label="待转换图片",type="filepath"),gr.inputs.Image(label="风格图片",type="filepath")],
    outputs=gr.outputs.Image(type="auto", label="输出"),theme="dark-seafoam"
          )

写代码算它15分钟吧,还剩15分钟部署一下代码

3 部署代码

来到https://huggingface.co/

创建一个仓库,就和Github一个调调啦,记得选择Gradio:

然后来到我们的仓库(或者美名其曰Space)上传一下我们的Notebook,在Colab文件里导出成py文件,记得改名为app.py,或者你自己创建一个py文件复制代码也可。

上传完后,我们新建一个requirements.txt文件:

这里写着我们的代码需要的库,因为人家服务器是没有这些库的,需要装一下。 之后它就会自动Building啦,看到running就是可以成功访问了

今天就分享这么多吧,感兴趣大家都可以试试,还是比较有意思的,具体的模型原理下来我再好好学习学习,这里是GIS宇宙,我们下期再见!

GIS宇宙公众号

分类:

人工智能

标签:

深度学习

作者介绍

宫商角徵羽
V1